@d-id/client-sdk 1.1.56-staging.253 → 1.1.57

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
@@ -233,7 +233,7 @@ function Ut(e) {
233
233
  maxResponseLength: n == null ? void 0 : n.max_response_length,
234
234
  agentId: e.id,
235
235
  access: e.access,
236
- agentName: e.preview_name,
236
+ name: e.preview_name,
237
237
  ...e.access === "public" ? { from: "agent-template" } : {}
238
238
  };
239
239
  }
@@ -1,4 +1,4 @@
1
- (function($,Me){typeof exports=="object"&&typeof module<"u"?Me(exports):typeof define=="function"&&define.amd?define(["exports"],Me):($=typeof globalThis<"u"?globalThis:$||self,Me($.index={}))})(this,function($){"use strict";var Bg=Object.defineProperty;var jg=($,Me,Vt)=>Me in $?Bg($,Me,{enumerable:!0,configurable:!0,writable:!0,value:Vt}):$[Me]=Vt;var ei=($,Me,Vt)=>jg($,typeof Me!="symbol"?Me+"":Me,Vt);class Me extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));ei(this,"kind");ei(this,"description");ei(this,"error");this.kind=t,this.description=i,this.error=r}}class Vt extends Me{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Bs extends Me{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class qt extends Me{constructor(t,i){super({kind:"ValidationError",description:t});ei(this,"key");this.key=i}}class js extends Me{constructor(e){super({kind:"WSError",description:e})}}var Vs=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Vs||{}),qs=(n=>(n.TRIAL="deid-trial",n.PRO="deid-pro",n.ENTERPRISE="deid-enterprise",n.LITE="deid-lite",n.ADVANCED="deid-advanced",n.BUILD="deid-api-build",n.LAUNCH="deid-api-launch",n.SCALE="deid-api-scale",n))(qs||{}),Ks=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(Ks||{}),Ws=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(Ws||{}),Ce=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(Ce||{}),Ue=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(Ue||{}),Hs=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Hs||{}),Js=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(Js||{}),Gs=(n=>(n.Pdf="pdf",n.Text="text",n.Html="html",n.Word="word",n.Json="json",n.Markdown="markdown",n.Csv="csv",n.Excel="excel",n.Powerpoint="powerpoint",n.Archive="archive",n.Image="image",n.Audio="audio",n.Video="video",n))(Gs||{}),Qi=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(Qi||{});const ml=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var Q=(n=>(n.Start="START",n.Stop="STOP",n))(Q||{}),et=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(et||{}),Ee=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(Ee||{}),ne=(n=>(n.ChatAnswer="chat/answer",n.ChatPartial="chat/partial",n.ChatAudioTranscribed="chat/audio-transcribed",n.StreamDone="stream/done",n.StreamStarted="stream/started",n.StreamFailed="stream/error",n.StreamReady="stream/ready",n.StreamCreated="stream/created",n.StreamInterrupt="stream/interrupt",n.StreamVideoCreated="stream-video/started",n.StreamVideoDone="stream-video/done",n.StreamVideoError="stream-video/error",n.StreamVideoRejected="stream-video/rejected",n.ToolCalling="tool/calling",n.ToolResult="tool/result",n))(ne||{}),se=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnecting="disconnecting",n.Disconnected="disconnected",n))(se||{}),tt=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(tt||{}),ti=(n=>(n.Livekit="livekit",n))(ti||{}),zs=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(zs||{}),$s=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))($s||{});const fl=45*1e3,pl="X-Playground-Chat",Cn="https://api.d-id.com",gl="wss://notifications.d-id.com",vl="79f81a83a67430be2bc0fd61042b8faa",yl=(...n)=>{},Qs=n=>new Promise(e=>setTimeout(e,n)),nn=(n=16)=>{const e=new Uint8Array(n);return window.crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").slice(0,13)},Ys=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,bl=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},kl=n=>n.type==="talk"?n.source_url:n.presenter_id,Yi=n=>n===Qi.Expressive,Tl=n=>[Ce.TextOnly,Ce.Playground,Ce.Maintenance].includes(n),Xs=n=>n&&[Ce.DirectPlayback,Ce.Off].includes(n);function Sl(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function Xi(n,e){const t={limit:(e==null?void 0:e.limit)??3,delayMs:(e==null?void 0:e.delayMs)??0,timeout:(e==null?void 0:e.timeout)??3e4,timeoutErrorMessage:(e==null?void 0:e.timeoutErrorMessage)||"Timeout error",shouldRetryFn:(e==null?void 0:e.shouldRetryFn)??(()=>!0),onRetry:(e==null?void 0:e.onRetry)??(()=>{})};let i;for(let r=1;r<=t.limit;r++)try{if(!t.timeout)return await n();const{promise:s,clear:c}=Sl(t.timeout,t.timeoutErrorMessage),a=n().finally(c);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Qs(t.delayMs),t.onRetry(s)}throw i}function Zi(n){if(n!==void 0)return window.localStorage.setItem("did_external_key_id",n),n;let e=window.localStorage.getItem("did_external_key_id");if(!e){let t=nn();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let Cl=nn();function Zs(n,e){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${Zi(e)}_${Cl}`;throw new Error(`Unknown auth type: ${n}`)}const El=n=>Xi(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function er(n,e=Cn,t,i){const r=async(s,c)=>{const{skipErrorHandler:a,...o}=c||{},d=await El(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...o,headers:{...o.headers,Authorization:Zs(n,i),"Content-Type":"application/json"}}));if(!d.ok){let l=await d.text().catch(()=>`Failed to fetch with status ${d.status}`);const u=new Error(l);throw t&&!a&&t(u,{url:s,options:o,headers:d.headers}),u}return d.json()};return{get(s,c){return r(s,{...c,method:"GET"})},post(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"POST"})},delete(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"DELETE"})},patch(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"PATCH"})}}}function wl(n,e=Cn,t,i){const r=er(n,`${e}/agents`,t,i);return{create(s,c){return r.post("/",s,c)},getAgents(s,c){return r.get(`/${s?`?tag=${s}`:""}`,c).then(a=>a??[])},getById(s,c){return r.get(`/${s}`,c)},delete(s,c){return r.delete(`/${s}`,void 0,c)},update(s,c,a){return r.patch(`/${s}`,c,a)},newChat(s,c,a){return r.post(`/${s}/chat`,c,a)},chat(s,c,a,o){return r.post(`/${s}/chat/${c}`,a,o)},createRating(s,c,a,o){return r.post(`/${s}/chat/${c}/ratings`,a,o)},updateRating(s,c,a,o,d){return r.patch(`/${s}/chat/${c}/ratings/${a}`,o,d)},deleteRating(s,c,a,o){return r.delete(`/${s}/chat/${c}/ratings/${a}`,o)},getSTTToken(s,c){return r.get(`/${s}/stt-token`,c)}}}function Rl(n){var r,s,c,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const o=navigator.platform;return o.toLowerCase().includes("win")?"Windows":o.toLowerCase().includes("mac")?"Mac OS X":o.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Ys(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(c=n.presenter)==null?void 0:c.voice)==null?void 0:a.type}}}function _l(n){var t,i,r,s,c,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Ys(n.presenter),presenterType:bl(n.presenter),presenter:kl(n.presenter),owner_id:n.owner_id??"",promptVersion:(i=n.llm)==null?void 0:i.prompt_version,behavior:{role:e==null?void 0:e.role,personality:e==null?void 0:e.personality,instructions:(r=n.llm)==null?void 0:r.instructions},temperature:(s=n.llm)==null?void 0:s.temperature,knowledgeSource:e==null?void 0:e.knowledge_source,starterQuestionsCount:(a=(c=n.knowledge)==null?void 0:c.starter_message)==null?void 0:a.length,topicsToAvoid:e==null?void 0:e.topics_to_avoid,maxResponseLength:e==null?void 0:e.max_response_length,agentId:n.id,access:n.access,agentName:n.preview_name,...n.access==="public"?{from:"agent-template"}:{}}}const Pl=n=>n.reduce((e,t)=>e+t,0),ea=n=>Pl(n)/n.length;function Il(n,e,t){var o,d,l;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:c}=((o=e==null?void 0:e.presenter)==null?void 0:o.voice)||{};return{...r,llm:{...r.llm,template:s},script:{...r.script,provider:{...(d=r==null?void 0:r.script)==null?void 0:d.provider,language:c}},stitch:(e==null?void 0:e.presenter.type)==="talk"?(l=e==null?void 0:e.presenter)==null?void 0:l.stitch:void 0,...t}}function ta(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}const Ol="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Ml(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:Zi(n.externalId),agentId:n.agentId,additionalProperties:{id:Zi(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:nn,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:c,...a}=r||{},o=s||Date.now(),d={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,token:this.token,time:o,$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(Ol,d).catch(l=>console.error("Analytics tracking error:",l)),Promise.resolve()},linkTrack(i,r,s,c){t[i]||(t[i]={events:{},resolvedDependencies:[]}),c.includes(s)||c.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),c.every(d=>a.resolvedDependencies.includes(d))){const d=c.reduce((l,u)=>a.events[u]?{...l,...a.events[u].props}:l,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(l=>!c.includes(l)),c.forEach(l=>{delete a.events[l]})}}}}function tr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const lt=tr(),nr=tr(),na=tr();function ia(n){return n===Ce.Playground?{headers:{[pl]:"true"}}:{}}async function ra(n,e,t,i,r=!1,s){try{return!s&&!Xs(i)&&(s=await e.newChat(n.id,{persist:r},ia(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(c){throw Dl(c)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const Dl=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function Al(n){return n&&n.length>0?n:[]}function xl(n,e,t,i){const r=er(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const sa=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),Ll={[ne.ChatAnswer]:Ue.Answer,[ne.ChatPartial]:Ue.Partial};function Nl(n,e,t){const i=(e.timestamp-n.timestamp)/1e3;return{duration:i,bytesReceived:e.bytesReceived-n.bytesReceived,bitrate:Math.round((e.bytesReceived-n.bytesReceived)*8/i),packetsReceived:e.packetsReceived-n.packetsReceived,packetsLost:e.packetsLost-n.packetsLost,framesDropped:e.framesDropped-n.framesDropped,framesDecoded:e.framesDecoded-n.framesDecoded,jitter:e.jitter,avgJitterDelayInInterval:(e.jitterBufferDelay-n.jitterBufferDelay)/(e.jitterBufferEmittedCount-n.jitterBufferEmittedCount),jitterBufferEmittedCount:e.jitterBufferEmittedCount-n.jitterBufferEmittedCount,jitterBufferDelay:(e.jitterBufferDelay-n.jitterBufferDelay)/i,framesPerSecond:e.framesPerSecond,freezeCount:e.freezeCount-n.freezeCount,freezeDuration:e.freezeDuration-n.freezeDuration,lowFpsCount:t}}function Ul(n){return n.filter(e=>e.freezeCount>0||e.framesPerSecond<21||e.framesDropped>0||e.packetsLost>0).map(e=>{const{timestamp:t,...i}=e,r=[];return e.freezeCount>0&&r.push("freeze"),e.framesPerSecond<21&&r.push("low fps"),e.framesDropped>0&&r.push("frames dropped"),e.packetsLost>0&&r.push("packet loss"),{...i,causes:r}})}function Fl(n){let e="",t=0;for(const i of n.values()){if(i&&i.type==="codec"&&i.mimeType.startsWith("video")&&(e=i.mimeType.split("/")[1]),i&&i.type==="candidate-pair"){const r=i.currentRoundTripTime,c=i.nominated===!0;r>0&&(c||t===0)&&(t=r)}if(i&&i.type==="inbound-rtp"&&i.kind==="video")return{codec:e,rtt:t,timestamp:i.timestamp,bytesReceived:i.bytesReceived,packetsReceived:i.packetsReceived,packetsLost:i.packetsLost,framesDropped:i.framesDropped,framesDecoded:i.framesDecoded,jitter:i.jitter,jitterBufferDelay:i.jitterBufferDelay,jitterBufferEmittedCount:i.jitterBufferEmittedCount,avgJitterDelayInInterval:i.jitterBufferDelay/i.jitterBufferEmittedCount,frameWidth:i.frameWidth,frameHeight:i.frameHeight,framesPerSecond:i.framesPerSecond,freezeCount:i.freezeCount,freezeDuration:i.totalFreezesDuration}}return{}}function aa(n,e,t){const i=n.map((o,d)=>d===0?t?{timestamp:o.timestamp,duration:0,rtt:o.rtt,bytesReceived:o.bytesReceived-t.bytesReceived,bitrate:(o.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-t.packetsReceived,packetsLost:o.packetsLost-t.packetsLost,framesDropped:o.framesDropped-t.framesDropped,framesDecoded:o.framesDecoded-t.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-t.jitterBufferDelay)/(o.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-t.freezeCount,freezeDuration:o.freezeDuration-t.freezeDuration}:{timestamp:o.timestamp,rtt:o.rtt,duration:0,bytesReceived:o.bytesReceived,bitrate:o.bytesReceived*8/(e/1e3),packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.freezeDuration}:{timestamp:o.timestamp,duration:e*d/1e3,rtt:o.rtt,bytesReceived:o.bytesReceived-n[d-1].bytesReceived,bitrate:(o.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-n[d-1].packetsReceived,packetsLost:o.packetsLost-n[d-1].packetsLost,framesDropped:o.framesDropped-n[d-1].framesDropped,framesDecoded:o.framesDecoded-n[d-1].framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-n[d-1].jitterBufferDelay)/(o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-n[d-1].freezeCount,freezeDuration:o.freezeDuration-n[d-1].freezeDuration}),r=Ul(i),s=r.reduce((o,d)=>o+(d.causes.includes("low fps")?1:0),0),c=i.filter(o=>!!o.avgJitterDelayInInterval).map(o=>o.avgJitterDelayInInterval),a=i.filter(o=>!!o.rtt).map(o=>o.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:ea(a),maxRtt:Math.max(...a),aggregateReport:Nl(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...c),maxJitterDelayInInterval:Math.max(...c),avgJitterDelayInInterval:ea(c)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function oa(n,e){for(const t of n.values())if((t==null?void 0:t.type)==="inbound-rtp"&&t.kind===e)return t;return null}const En=10;function Bl(n,e){let t=!1,i=!1,r=null,s=0,c=0,a={};async function o(){if(t){try{const d=await n();if(!d){r=setTimeout(o,En);return}const l=oa(d,"audio");if(!l){r=setTimeout(o,En);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,c=h,i=!0,r=setTimeout(o,En);return}const f=u-s,v=h-c;if(s=u,c=h,v>0&&f>0){t=!1,e(a);return}}catch{}t&&(r=setTimeout(o,En))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(o,En)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const ni=100,jl=Math.max(Math.ceil(400/ni),1),Vl=.25,ql=.28;function Kl(){let n=0,e,t,i=0;return r=>{const s=oa(r,"video");if(!s)return{isReceiving:!1,avgJitterDelayInInterval:i};const c=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const l=c-e,u=a-t;i=l/u}e=c,t=a;const o=s.framesDecoded,d=o-n>0;return n=o,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}}function ca(n,e,t,i,r){let s=null,c=[],a,o=0,d=!1,l=et.Unknown,u=et.Unknown,h=0,f=0;const v=Kl();async function g(){const C=await n();if(!C)return;const{isReceiving:T,avgJitterDelayInInterval:R,freezeCount:_}=v(C),y=Fl(C);if(T)o=0,h=_-f,u=R<Vl?et.Strong:R>ql&&h>1?et.Weak:l,u!==l&&(r==null||r(u),l=u,f+=h,h=0),d||(i==null||i(Q.Start),a=c[c.length-1],c=[],d=!0),c.push(y);else if(d&&(o++,o>=jl)){const k=aa(c,ni,a);i==null||i(Q.Stop,k),e()||t(),f=_,d=!1}}return{start:()=>{s||(s=setInterval(g,ni))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>aa(c,ni,a)}}const da=2e4;async function Wl(){try{return await Promise.resolve().then(()=>Mg)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Hl={excellent:et.Strong,good:et.Strong,poor:et.Weak,lost:et.Unknown,unknown:et.Unknown},wn=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});var ir=(n=>(n.Chat="lk.chat",n.Speak="did.speak",n.Interrupt="did.interrupt",n))(ir||{});function rr(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,se.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function Jl(n,e,t){var cl;const i=sa(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:c,Track:a}=await Wl(),{callbacks:o,auth:d,baseURL:l,analytics:u}=t;let h=null,f=!1;const v=tt.Fluent;let g=null;const C={isPublishing:!1,publication:null},T={isPublishing:!1,publication:null};let R=null,_=null,y=null,k=!1;h=new r({adaptiveStream:!1,dynacast:!0});let S=null,x=Ee.Idle,F=!0;const U=xl(d,l||Cn,n,o.onError);let b,P,L;try{const I=await U.createStream({transport:e.transport,chat_persist:e.chat_persist??!0}),{id:N,session_token:q,session_url:K}=I;(cl=o.onStreamCreated)==null||cl.call(o,{session_id:N,stream_id:N,agent_id:n}),b=N,P=q,L=K,await h.prepareConnection(L,P)}catch(I){rr(I,i,o)}if(!L||!P||!b)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,Y).on(s.ConnectionQualityChanged,X).on(s.ParticipantConnected,ee).on(s.ParticipantDisconnected,ye).on(s.TrackSubscribed,fe).on(s.TrackUnsubscribed,xe).on(s.DataReceived,Gi).on(s.MediaDevicesError,zi).on(s.TranscriptionReceived,H).on(s.EncryptionError,$i).on(s.TrackSubscriptionFailed,Dg);function H(I,N){var q;N!=null&&N.isLocal&&(lt.update(),x===Ee.Talking&&((q=o.onInterruptDetected)==null||q.call(o,{type:"audio"}),x=Ee.Idle))}try{await h.connect(L,P),i("LiveKit room joined successfully"),S=setTimeout(()=>{var I;i(`Track subscription timeout - no track subscribed within ${da/1e3} seconds after connect`),S=null,u.track("connectivity-error",{error:"Track subscription timeout",sessionId:b}),(I=o.onError)==null||I.call(o,new Error("Track subscription timeout"),{sessionId:b}),Fs("internal:track-subscription-timeout")},da)}catch(I){rr(I,i,o)}u.enrich({"stream-type":v});function Y(I){var N,q,K,ce;switch(i("Connection state changed:",I),I){case c.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(N=o.onConnectionStateChange)==null||N.call(o,se.Connecting,"livekit:connecting");break;case c.Connected:i("LiveKit room connected successfully"),f=!0;break;case c.Disconnected:i("LiveKit room disconnected"),f=!1,k=!1,C.publication=null,T.publication=null,(q=o.onConnectionStateChange)==null||q.call(o,se.Disconnected,"livekit:disconnected");break;case c.Reconnecting:i("LiveKit room reconnecting..."),(K=o.onConnectionStateChange)==null||K.call(o,se.Connecting,"livekit:reconnecting");break;case c.SignalReconnecting:i("LiveKit room signal reconnecting..."),(ce=o.onConnectionStateChange)==null||ce.call(o,se.Connecting,"livekit:signal-reconnecting");break}}function X(I,N){var q;i("Connection quality:",I),N!=null&&N.isLocal&&((q=o.onConnectivityStateChange)==null||q.call(o,Hl[I]))}function ee(I){i("Participant connected:",I.identity)}function ye(I){i("Participant disconnected:",I.identity),Fs("livekit:participant-disconnected")}function Oe(){var I;y!==Q.Start&&(i("CALLBACK: onVideoStateChange(Start)"),y=Q.Start,(I=o.onVideoStateChange)==null||I.call(o,Q.Start))}function de(I){var N;y!==Q.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),y=Q.Stop,(N=o.onVideoStateChange)==null||N.call(o,Q.Stop,I))}function fe(I,N,q){var ce,le,Ne;i(`Track subscribed: ${I.kind} from ${q.identity}`);const K=I.mediaStreamTrack;if(!K){i(`No mediaStreamTrack available for ${I.kind}`);return}g?(g.addTrack(K),i(`Added ${I.kind} track to shared MediaStream`)):(g=new MediaStream([K]),i(`Created shared MediaStream with ${I.kind} track`)),I.kind==="audio"&&(_=Bl(()=>I.getRTCStatsReport(),({sttLatency:Se,serviceLatency:dt})=>{var dl,ll,ul;const Xn=lt.get(!0);let Zn=0;if(Se){const hl=((ll=(dl=R==null?void 0:R.getReport())==null?void 0:dl.webRTCStats)==null?void 0:ll.avgRtt)??0;Zn=hl>0?Math.round(hl*1e3):0}const Sn=Xn>0?Xn+(Se??0)+Zn:void 0,Ot=Sn!==void 0&&dt!==void 0?Sn-dt:void 0;(ul=o.onFirstAudioDetected)==null||ul.call(o,{latency:Sn,networkLatency:Ot})})),I.kind==="video"&&((ce=o.onStreamReady)==null||ce.call(o),i("CALLBACK: onSrcObjectReady"),(le=o.onSrcObjectReady)==null||le.call(o,g),k||(k=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Ne=o.onConnectionStateChange)==null||Ne.call(o,se.Connected,"livekit:track-subscribed")),R=ca(()=>I.getRTCStatsReport(),()=>f,yl,(Se,dt)=>{i(`Video state change: ${Se}`),Se===Q.Start?(S&&(clearTimeout(S),S=null,i("Track subscription timeout cleared")),Oe()):Se===Q.Stop&&de(dt)}),R.start())}function xe(I,N,q){i(`Track unsubscribed: ${I.kind} from ${q.identity}`),I.kind==="audio"&&(_==null||_.destroy(),_=null),I.kind==="video"&&(de(R==null?void 0:R.getReport()),R==null||R.stop(),R=null)}function Ge(I,N){var K;const q=Ll[I];q&&((K=o.onMessage)==null||K.call(o,q,{event:q,...N}))}function j(I,N){var q,K,ce;if(I===ne.ToolCalling){x=Ee.ToolActive,(q=o.onAgentActivityStateChange)==null||q.call(o,Ee.ToolActive),(K=o.onToolEvent)==null||K.call(o,ne.ToolCalling,N);return}I===ne.ToolResult&&((ce=o.onToolEvent)==null||ce.call(o,ne.ToolResult,N))}function B(I,N){var q,K,ce,le,Ne;if(F=((q=N.metadata)==null?void 0:q.interruptible)!==!1,(K=o.onInterruptibleChange)==null||K.call(o,F),I===ne.StreamVideoCreated){x=Ee.Talking,(ce=o.onAgentActivityStateChange)==null||ce.call(o,Ee.Talking),_==null||_.arm({sttLatency:(le=N==null?void 0:N.stt)==null?void 0:le.latency,serviceLatency:N==null?void 0:N.serviceLatency});return}F&&(x=Ee.Idle,(Ne=o.onAgentActivityStateChange)==null||Ne.call(o,Ee.Idle))}function te(I,N){var le,Ne,Se,dt;const q=((Ne=(le=R==null?void 0:R.getReport())==null?void 0:le.webRTCStats)==null?void 0:Ne.avgRtt)??0,K=q>0?Math.round(q/2*1e3):0,ce={...N,downstreamNetworkLatency:K};t.debug&&((Se=N==null?void 0:N.metadata)!=null&&Se.sentiment)&&(ce.sentiment={id:N.metadata.sentiment.id,name:N.metadata.sentiment.sentiment}),(dt=o.onMessage)==null||dt.call(o,I,ce),B(I,N)}function Le(I,N){var q;(q=o.onMessage)==null||q.call(o,Ue.Transcribe,{event:Ue.Transcribe,...N}),queueMicrotask(()=>{var K;(K=o.onAgentActivityStateChange)==null||K.call(o,Ee.Loading)})}const Tn={[ne.ChatAnswer]:Ge,[ne.ChatPartial]:Ge,[ne.ToolCalling]:j,[ne.ToolResult]:j,[ne.StreamVideoCreated]:te,[ne.StreamVideoDone]:te,[ne.StreamVideoError]:te,[ne.StreamVideoRejected]:te,[ne.ChatAudioTranscribed]:Le};function Gi(I,N,q,K){const ce=new TextDecoder().decode(I);try{const le=JSON.parse(ce),Ne=K||le.subject;if(i("Data received:",{subject:Ne,data:le}),!Ne)return;const Se=Tn[Ne];Se==null||Se(Ne,le)}catch(le){i("Failed to parse data channel message:",le)}}function zi(I){var N;i("Media devices error:",I),(N=o.onError)==null||N.call(o,new Error(wn),{sessionId:b})}function $i(I){var N;i("Encryption error:",I),(N=o.onError)==null||N.call(o,new Error(wn),{sessionId:b})}function Dg(I,N,q){i("Track subscription failed:",{trackSid:I,participant:N,reason:q})}function Ag(I,N,q){for(const[K,ce]of q)if(ce.source===N&&ce.track){const le=ce.track.mediaStreamTrack;if(le===I||(le==null?void 0:le.id)===I.id)return ce}return null}async function al(I,N,q,K,ce,le){var Xn,Zn,Sn;if(!f||!h)throw i(`Room is not connected, cannot publish ${K} stream`),new Error("Room is not connected");if(I.isPublishing){i(`${K} publish already in progress, skipping`);return}const Ne=q(N);if(Ne.length===0)throw new Error(`No ${K} track found in the provided MediaStream`);const Se=Ne[0],dt=Ag(Se,K,ce());if(dt){i(`${K} track is already published, skipping`,{trackId:Se.id,publishedTrackId:(Zn=(Xn=dt.track)==null?void 0:Xn.mediaStreamTrack)==null?void 0:Zn.id}),I.publication=dt;return}if((Sn=I.publication)!=null&&Sn.track){const Ot=I.publication.track.mediaStreamTrack;Ot!==Se&&(Ot==null?void 0:Ot.id)!==Se.id&&(i(`Unpublishing existing ${K} track before publishing new one`),await le())}i(`Publishing ${K} track from provided MediaStream`,{trackId:Se.id}),I.isPublishing=!0;try{I.publication=await h.localParticipant.publishTrack(Se,{source:K}),i(`${K} track published successfully`,{trackSid:I.publication.trackSid})}catch(Ot){throw i(`Failed to publish ${K} track:`,Ot),Ot}finally{I.isPublishing=!1}}async function ol(I,N){if(!(!I.publication||!I.publication.track))try{h&&(await h.localParticipant.unpublishTrack(I.publication.track,!1),i(`${N} track unpublished`))}catch(q){i(`Error unpublishing ${N} track:`,q)}finally{I.publication=null}}async function xg(I){return al(C,I,N=>N.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,Ls)}async function Ls(){return ol(C,"Microphone")}async function Lg(I){return al(T,I,N=>N.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Ns)}async function Ns(){return ol(T,"Camera")}function Ng(){g&&(g.getTracks().forEach(I=>I.stop()),g=null)}async function Us(I,N){var q,K;if(!f||!h){i("Room is not connected for sending messages"),(q=o.onError)==null||q.call(o,new Error(wn),{sessionId:b});return}try{await h.localParticipant.sendText(I,{topic:N}),i("Message sent successfully:",I)}catch(ce){i("Failed to send message:",ce),(K=o.onError)==null||K.call(o,new Error(wn),{sessionId:b})}}async function Ug(I){var N;try{const K=JSON.parse(I).topic;return Us("",K)}catch(q){i("Failed to send data channel message:",q),(N=o.onError)==null||N.call(o,new Error(wn),{sessionId:b})}}function Fg(I){return Us(I,"lk.chat")}async function Fs(I){var N,q;S&&(clearTimeout(S),S=null),_==null||_.destroy(),_=null,h&&((N=o.onConnectionStateChange)==null||N.call(o,se.Disconnecting,I),await Promise.all([Ls(),Ns()]),await h.disconnect()),Ng(),f=!1,k=!1,(q=o.onAgentActivityStateChange)==null||q.call(o,Ee.Idle),x=Ee.Idle}return{speak(I){const N=typeof I=="string"?I:JSON.stringify(I);return Us(N,"did.speak")},disconnect:()=>Fs("user:disconnect"),async reconnect(){var I,N;if((h==null?void 0:h.state)===c.Connected){i("Room is already connected");return}if(!h||!L||!P)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),k=!1,(I=o.onConnectionStateChange)==null||I.call(o,se.Connecting,"user:reconnect");try{if(await h.connect(L,P),i("Room reconnected"),f=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(K=>{const ce=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,le),K(!1)},5e3),le=()=>{clearTimeout(ce),h==null||h.off(s.ParticipantConnected,le),K(!0)};h==null||h.on(s.ParticipantConnected,le)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined, reconnection successful")}}catch(q){throw i("Failed to reconnect:",q),(N=o.onConnectionStateChange)==null||N.call(o,se.Fail,"user:reconnect-failed"),q}},sendDataChannelMessage:Ug,sendTextMessage:Fg,publishMicrophoneStream:xg,unpublishMicrophoneStream:Ls,publishCameraStream:Lg,unpublishCameraStream:Ns,sessionId:b,streamId:b,streamType:v,interruptAvailable:!0,isInterruptible:F,triggersAvailable:!1}}const Gl=Object.freeze(Object.defineProperty({__proto__:null,DataChannelTopic:ir,createLiveKitStreamingManager:Jl,handleInitError:rr},Symbol.toStringTag,{value:"Module"}));function zl(n,e,t){if(!n)throw new Error("Please connect to the agent first");if(!n.interruptAvailable)throw new Error("Interrupt is not enabled for this stream");if(e!==tt.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function $l(n,e){const t={type:ne.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}async function Ql(n){const e={topic:ir.Interrupt};n.sendDataChannelMessage(JSON.stringify(e))}function Yl(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:c}=n,{onMessage:a=null,onOpen:o=null,onClose:d=null,onError:l=null}=i||{},u=new WebSocket(`${r}?authorization=${encodeURIComponent(Zs(s,c))}`);u.onmessage=a,u.onclose=d,u.onerror=h=>{console.error(h),l==null||l("Websocket failed to connect",h),t(h)},u.onopen=h=>{o==null||o(h),e(u)}})}async function Xl(n){const{retries:e=1}=n;let t=null;for(let i=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;i++)try{t=await Yl(n)}catch(r){if(i===e)throw r;await Qs(i*500)}return t}async function Zl(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await Xl({auth:n,host:e,externalId:i,callbacks:{onError:c=>{var a;return(a=t.onError)==null?void 0:a.call(t,new js(c))},onMessage(c){const a=JSON.parse(c.data);r.forEach(o=>o(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:c=>r.push(c)}}function eu(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function tu(n,e,t){if(!n.content)return;const i=e.messages[e.messages.length-1];(i==null?void 0:i.role)==="assistant"&&!i.interrupted&&(i.interrupted=!0);const r={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(r),t==null||t([...e.messages],"user")}function nu(n,e,t,i,r){if(n===Ue.Transcribe&&e.content){tu(e,i,r);return}if(!(n===Ue.Partial||n===Ue.Answer))return;const s=i.messages[i.messages.length-1];let c;if(s!=null&&s.transcribed&&s.role==="user")n===Ue.Answer&&e.content,c={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",created_at:e.created_at||new Date().toISOString()},i.messages.push(c);else if((s==null?void 0:s.role)==="assistant")c=s;else return;const{content:a,sequence:o}=e;n===Ue.Partial?t[o]=a:t.answer=a;const d=eu(t);(c.content!==d||n===Ue.Answer)&&(c.content=d,r==null||r([...i.messages],n))}function iu(n,e,t,i,r){let s={};const c=()=>s={};let a="answer";const o=(d,l)=>{var u,h;l==="user"&&c(),a=l,(h=(u=t.callbacks).onNewMessage)==null||h.call(u,d,l)};return{clearQueue:c,onMessage:(d,l)=>{var u,h;if("content"in l){const f=d===ne.ChatAnswer?Ue.Answer:d===ne.ChatAudioTranscribed?Ue.Transcribe:d;nu(f,l,s,e,o),f===Ue.Answer&&n.track("agent-message-received",{content:l.content,messages:e.messages.length,mode:e.chatMode})}else{const f=ne,v=[f.StreamVideoDone,f.StreamVideoError,f.StreamVideoRejected],g=[f.StreamFailed,f.StreamVideoError,f.StreamVideoRejected],C=Il(l,i,{mode:e.chatMode});if(d=d,d===f.StreamVideoCreated&&(n.linkTrack("agent-video",C,f.StreamVideoCreated,["start"]),l.sentiment)){const T=e.messages[e.messages.length-1];if((T==null?void 0:T.role)==="assistant"){const R={...T,sentiment:l.sentiment};e.messages[e.messages.length-1]=R,o==null||o([...e.messages],a)}}if(v.includes(d)){const T=d.split("/")[1];g.includes(d)?n.track("agent-video",{...C,event:T}):n.linkTrack("agent-video",{...C,event:T},d,["done"])}g.includes(d)&&((h=(u=t.callbacks).onError)==null||h.call(u,new Error(`Stream failed with event ${d}`),{data:l})),l.event===f.StreamDone&&r()}}}}function ru(n,e,t,i){const r=er(n,`${e}/agents/${t}`,i);return{createStream(s,c){return r.post("/streams",s,{signal:c})},startConnection(s,c,a,o){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:c},{signal:o})},addIceCandidate(s,c,a,o){return r.post(`/streams/${s}/ice`,{session_id:a,...c},{signal:o})},sendStreamRequest(s,c,a){return r.post(`/streams/${s}`,{session_id:c,...a})},close(s,c){return r.delete(`/streams/${s}`,{session_id:c})}}}const su=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function la(n){switch(n){case"connected":return se.Connected;case"checking":return se.Connecting;case"failed":return se.Fail;case"new":return se.New;case"closed":return se.Closed;case"disconnected":return se.Disconnected;case"completed":return se.Completed;default:return se.New}}const au=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===Q.Start&&e===Q.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&e===Q.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,i))}function cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===Q.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,r)),e===Q.Start?i==null||i(Ee.Talking):e===Q.Stop&&(i==null||i(Ee.Idle))}function ua({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:c}){r===tt.Legacy?ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:c}):r===tt.Fluent&&cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:c})}async function du(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Cn,analytics:c},a){var Ge;const o=sa(t,"WebRTCStreamingManager"),d=au(o);let l=!1,u=!1,h=Q.Stop,f=Q.Stop;const{startConnection:v,sendStreamRequest:g,close:C,createStream:T,addIceCandidate:R}=ru(r,s,n,i.onError),{id:_,offer:y,ice_servers:k,session_id:S,fluent:x,interrupt_enabled:F,triggers_enabled:U}=await T(e,a);(Ge=i.onStreamCreated)==null||Ge.call(i,{stream_id:_,session_id:S,agent_id:n});const b=new su({iceServers:k}),P=b.createDataChannel("JanusDataChannel");if(!S)throw new Error("Could not create session_id");const L=x?tt.Fluent:tt.Legacy;c.enrich({"stream-type":L});const H=e.stream_warmup&&!x,Y=()=>l,X=()=>{var j;l=!0,u&&(o("CALLBACK: onConnectionStateChange(Connected)"),(j=i.onConnectionStateChange)==null||j.call(i,se.Connected))},ee=ca(()=>b.getStats(),Y,X,(j,B)=>ua({statsSignal:f=j,dataChannelSignal:L===tt.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:L,log:o}),j=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,j)});ee.start(),b.onicecandidate=j=>{var B;o("peerConnection.onicecandidate",j);try{j.candidate&&j.candidate.sdpMid&&j.candidate.sdpMLineIndex!==null?R(_,{candidate:j.candidate.candidate,sdpMid:j.candidate.sdpMid,sdpMLineIndex:j.candidate.sdpMLineIndex},S,a):R(_,{candidate:null},S,a)}catch(te){(B=i.onError)==null||B.call(i,te,{streamId:_})}},P.onopen=()=>{u=!0,(!H||l)&&X()};const ye=j=>{var B;(B=i.onVideoIdChange)==null||B.call(i,j)};function Oe(j,B){if(j===ne.StreamStarted&&typeof B=="object"&&"metadata"in B){const te=B.metadata;ye(te.videoId)}j===ne.StreamDone&&ye(null),h=j===ne.StreamStarted?Q.Start:Q.Stop,ua({statsSignal:L===tt.Legacy?f:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:L,log:o})}function de(j,B){var Le;const te=typeof B=="string"?B:B==null?void 0:B.metadata;te&&c.enrich({streamMetadata:te}),(Le=i.onStreamReady)==null||Le.call(i)}const fe={[ne.StreamStarted]:Oe,[ne.StreamDone]:Oe,[ne.StreamReady]:de};P.onmessage=j=>{var Le;const{subject:B,data:te}=d(j.data);(Le=fe[B])==null||Le.call(fe,B,te)},b.oniceconnectionstatechange=()=>{var B;o("peerConnection.oniceconnectionstatechange => "+b.iceConnectionState);const j=la(b.iceConnectionState);j!==se.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,j))},b.ontrack=j=>{var B;o("peerConnection.ontrack",j),o("CALLBACK: onSrcObjectReady"),(B=i.onSrcObjectReady)==null||B.call(i,j.streams[0])},await b.setRemoteDescription(y),o("set remote description OK");const xe=await b.createAnswer();return o("create answer OK"),await b.setLocalDescription(xe),o("set local description OK"),await v(_,xe,S,a),o("start connection OK"),{speak(j){return g(_,S,j)},async disconnect(){var j;if(_){const B=la(b.iceConnectionState);if(b){if(B===se.New){ee.stop();return}b.close(),b.oniceconnectionstatechange=null,b.onnegotiationneeded=null,b.onicecandidate=null,b.ontrack=null}try{B===se.Connected&&await C(_,S).catch(te=>{})}catch(te){o("Error on close stream connection",te)}(j=i.onAgentActivityStateChange)==null||j.call(i,Ee.Idle),ee.stop()}},sendDataChannelMessage(j){var B,te;if(!l||P.readyState!=="open"){o("Data channel is not ready for sending messages"),(B=i.onError)==null||B.call(i,new Error("Data channel is not ready for sending messages"),{streamId:_});return}try{P.send(j)}catch(Le){o("Error sending data channel message",Le),(te=i.onError)==null||te.call(i,Le,{streamId:_})}},sessionId:S,streamId:_,streamType:L,interruptAvailable:F??!1,isInterruptible:!0,triggersAvailable:U??!1}}var sr=(n=>(n.V1="v1",n.V2="v2",n))(sr||{});async function lu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...c}=e;return du(r,c,t,i)}case"v2":{const{version:s,...c}=e;switch(c.transport.provider){case ti.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>Gl);return a(r,c,t);default:throw new Error(`Unsupported transport provider: ${c.transport.provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const uu="cht";function hu(){return{transport:{provider:ti.Livekit}}}function mu(n){var r,s;const{streamOptions:e}=n??{},t=((r=n==null?void 0:n.mixpanelAdditionalProperties)==null?void 0:r.plan)!==void 0?{plan:(s=n.mixpanelAdditionalProperties)==null?void 0:s.plan}:void 0;return{...{output_resolution:e==null?void 0:e.outputResolution,session_timeout:e==null?void 0:e.sessionTimeout,stream_warmup:e==null?void 0:e.streamWarmup,compatibility_mode:e==null?void 0:e.compatibilityMode,fluent:e==null?void 0:e.fluent},...t&&{end_user_data:t}}}function fu(n,e){return Yi(n.presenter.type)?{version:sr.V2,...hu()}:{version:sr.V1,...mu(e)}}function pu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function gu(n,e,t,i,r){r===tt.Fluent?vu(n,e,t,i,r):yu(n,e,t,i,r)}function vu(n,e,t,i,r){n===Q.Start?i.track("stream-session",{event:"start","stream-type":r}):n===Q.Stop&&i.track("stream-session",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t})}function ha(n,e,t,i,r){n===Q.Start?t.linkTrack("agent-video",{event:"start",...r,"stream-type":i},"start",[ne.StreamVideoCreated]):n===Q.Stop&&t.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":i},"done",[ne.StreamVideoDone])}function yu(n,e,t,i,r){n===Q.Start?i.linkTrack("agent-video",{event:"start",latency:lt.get(!0),"stream-type":r},"start",[ne.StreamVideoCreated]):n===Q.Stop&&i.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t},"done",[ne.StreamVideoDone])}function ma(n,e,t,i){return lt.reset(),na.update(),new Promise(async(r,s)=>{try{let c,a=!1;const o=fu(n,e);t.enrich({"stream-version":o.version.toString()});let d=null;const l=n.presenter.type==="expressive";c=await lu(n,o,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onConnectionStateChange)==null||v.call(f,u),pu(u,h,t),u===se.Connected&&(c?r(c):a=!0)},onVideoStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onVideoStateChange)==null||v.call(f,u),gu(u,n,h,t,c.streamType)},onAgentActivityStateChange:u=>{var h,f;(f=(h=e.callbacks).onAgentActivityStateChange)==null||f.call(h,u),u===Ee.Talking?(nr.update(),d=v=>{ha(Q.Start,n,t,c.streamType,v),d=null},l||d({latency:lt.get(!0)})):(nr.reset(),d=null,ha(Q.Stop,n,t,c.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=na.get(!0);t.track("agent-chat",{event:"ready",latency:u})}}},i),a&&r(c)}catch(c){s(c)}})}async function bu(n,e,t,i,r){var l,u,h,f;const s=async()=>{if(Yi(n.presenter.type)){const v=await ma(n,e,i),g=`${uu}_${v.sessionId}`,C=new Date().toISOString();return{chatResult:{chatMode:Ce.Functional,chat:{id:g,agent_id:n.id,owner_id:n.owner_id??"",created:C,modified:C,agent_id__created_at:C,agent_id__modified_at:C,chat_mode:Ce.Functional,messages:[]}},streamingManager:v}}else{const v=new AbortController,g=v.signal;let C;try{const T=ra(n,t,i,e.mode,e.persistentChat,r),R=ma(n,e,i,g).then(k=>(C=k,k)),[_,y]=await Promise.all([T,R]);return{chatResult:_,streamingManager:y}}catch(T){throw v.abort(),C&&await C.disconnect().catch(()=>{}),T}}},{chatResult:c,streamingManager:a}=await s(),{chat:o,chatMode:d}=c;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(u=(l=e.callbacks).onModeChange)==null||u.call(l,d),d!==Ce.Functional)?((f=(h=e.callbacks).onError)==null||f.call(h,new Bs(d)),a==null||a.disconnect(),{chat:o}):{chat:o,streamingManager:a}}async function ku(n,e){var S,x,F,U;let t=!0,i=null;const r=e.mixpanelKey||vl,s=e.wsURL||gl,c=e.baseURL||Cn,a=e.mode||Ce.Functional,o={messages:[],chatMode:a},d=Ml({token:r,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),l=Date.now();ta(()=>{d.track("agent-sdk",{event:"init"},l)});const u=wl(e.auth,c,e.callbacks.onError,e.externalId),h=await u.getById(n);e.debug=e.debug||((S=h==null?void 0:h.advanced_settings)==null?void 0:S.ui_debug_mode);const f=Yi(h.presenter.type);d.enrich(_l(h));const{onMessage:v,clearQueue:g}=iu(d,o,e,h,()=>{var b,P,L;(b=o.socketManager)==null||b.disconnect(),(L=(P=e.callbacks).onConnectionStateChange)==null||L.call(P,se.Disconnected)});o.messages=Al(e.initialMessages),(F=(x=e.callbacks).onNewMessage)==null||F.call(x,[...o.messages],"answer");const C=b=>{i=b},T=({type:b})=>{var L,H,Y,X;if(!((L=o.streamingManager)!=null&&L.isInterruptible))return;const P=o.messages[o.messages.length-1];d.track("agent-video-interrupt",{type:b||"click",video_duration_to_interrupt:nr.get(!0),message_duration_to_interrupt:lt.get(!0)}),P.interrupted=!0,(Y=(H=e.callbacks).onNewMessage)==null||Y.call(H,[...o.messages],"answer"),f?Ql(o.streamingManager):(zl(o.streamingManager,(X=o.streamingManager)==null?void 0:X.streamType,i),$l(o.streamingManager,i))},R=Date.now();ta(()=>{d.track("agent-sdk",{event:"loaded",...Rl(h)},R)});async function _(b){var ee,ye,Oe,de,fe,xe,Ge;(ye=(ee=e.callbacks).onConnectionStateChange)==null||ye.call(ee,se.Connecting),lt.reset(),b&&!t&&(delete o.chat,(de=(Oe=e.callbacks).onNewMessage)==null||de.call(Oe,[...o.messages],"answer"));const P=a===Ce.DirectPlayback||f?Promise.resolve(void 0):Zl(e.auth,s,{onMessage:v,onError:e.callbacks.onError},e.externalId),L=Xi(()=>bu(h,{...e,mode:a,callbacks:{...e.callbacks,onVideoIdChange:C,onMessage:v,onInterruptDetected:T}},u,d,o.chat),{limit:3,timeout:fl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:j=>(j==null?void 0:j.message)!=="Could not connect"&&j.status!==429&&(j==null?void 0:j.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(j=>{var B,te;throw k(Ce.Maintenance),(te=(B=e.callbacks).onConnectionStateChange)==null||te.call(B,se.Fail),j}),[H,{streamingManager:Y,chat:X}]=await Promise.all([P,L]);X&&X.id!==((fe=o.chat)==null?void 0:fe.id)&&((Ge=(xe=e.callbacks).onNewChat)==null||Ge.call(xe,X.id)),o.streamingManager=Y,o.socketManager=H,o.chat=X,t=!1,d.enrich({chatId:X==null?void 0:X.id,streamId:Y==null?void 0:Y.streamId,mode:o.chatMode}),k((X==null?void 0:X.chat_mode)??a)}async function y(){var b,P,L,H;(b=o.socketManager)==null||b.disconnect(),await((P=o.streamingManager)==null?void 0:P.disconnect()),delete o.streamingManager,delete o.socketManager,(H=(L=e.callbacks).onConnectionStateChange)==null||H.call(L,se.Disconnected)}async function k(b){var P,L;b!==o.chatMode&&(d.track("agent-mode-change",{mode:b}),o.chatMode=b,o.chatMode!==Ce.Functional&&await y(),(L=(P=e.callbacks).onModeChange)==null||L.call(P,b))}return{agent:h,getStreamType:()=>{var b;return(b=o.streamingManager)==null?void 0:b.streamType},getIsInterruptAvailable:()=>{var b;return((b=o.streamingManager)==null?void 0:b.interruptAvailable)??!1},getIsTriggersAvailable:()=>{var b;return((b=o.streamingManager)==null?void 0:b.triggersAvailable)??!1},starterMessages:((U=h.knowledge)==null?void 0:U.starter_message)||[],getSTTToken:()=>u.getSTTToken(h.id),changeMode:k,enrichAnalytics:d.enrich,async connect(){await _(!0),d.track("agent-chat",{event:"connect",mode:o.chatMode})},async reconnect(){const b=o.streamingManager;if(f&&(b!=null&&b.reconnect)){try{await b.reconnect(),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})}catch{await y(),await _(!1)}return}await y(),await _(!1),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})},async disconnect(){await y(),d.track("agent-chat",{event:"disconnect",mode:o.chatMode})},async publishMicrophoneStream(b){var P;if(!((P=o.streamingManager)!=null&&P.publishMicrophoneStream))throw new Error("publishMicrophoneStream is not available for this streaming manager");return o.streamingManager.publishMicrophoneStream(b)},async unpublishMicrophoneStream(){var b;if(!((b=o.streamingManager)!=null&&b.unpublishMicrophoneStream))throw new Error("unpublishMicrophoneStream is not available for this streaming manager");return o.streamingManager.unpublishMicrophoneStream()},async publishCameraStream(b){var P;if(!((P=o.streamingManager)!=null&&P.publishCameraStream))throw new Error("publishCameraStream is not available for this streaming manager");return o.streamingManager.publishCameraStream(b)},async unpublishCameraStream(){var b;if(!((b=o.streamingManager)!=null&&b.unpublishCameraStream))throw new Error("unpublishCameraStream is not available for this streaming manager");return o.streamingManager.unpublishCameraStream()},async chat(b){var Y,X,ee,ye,Oe;const P=()=>{if(Xs(a))throw new qt(`${a} is enabled, chat is disabled`);if(b.length>=800)throw new qt("Message cannot be more than 800 characters");if(b.length===0)throw new qt("Message cannot be empty");if(o.chatMode===Ce.Maintenance)throw new qt("Chat is in maintenance mode");if(![Ce.TextOnly,Ce.Playground].includes(o.chatMode)){if(!o.streamingManager)throw new qt("Streaming manager is not initialized");if(!o.chat)throw new qt("Chat is not initialized")}},L=async()=>{var de,fe;if(!o.chat){const xe=await ra(h,u,d,o.chatMode,e.persistentChat);if(!xe.chat)throw new Vt(o.chatMode,!!e.persistentChat);o.chat=xe.chat,(fe=(de=e.callbacks).onNewChat)==null||fe.call(de,o.chat.id)}return o.chat.id},H=async(de,fe)=>{const xe=o.chatMode===Ce.Playground;return Xi(f&&!xe?async()=>{var B,te;return await((te=(B=o.streamingManager)==null?void 0:B.sendTextMessage)==null?void 0:te.call(B,b)),Promise.resolve({})}:async()=>{var B,te;return u.chat(h.id,fe,{chatMode:o.chatMode,streamId:(B=o.streamingManager)==null?void 0:B.streamId,sessionId:(te=o.streamingManager)==null?void 0:te.sessionId,messages:de.map(({matches:Le,...Tn})=>Tn)},{...ia(o.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:B=>{var Tn,Gi,zi,$i;const te=(Tn=B==null?void 0:B.message)==null?void 0:Tn.includes("missing or invalid session_id");return!((Gi=B==null?void 0:B.message)==null?void 0:Gi.includes("Stream Error"))&&!te?(($i=(zi=e.callbacks).onError)==null||$i.call(zi,B),!1):!0},onRetry:async()=>{await y(),await _(!1)}})};try{g(),P(),o.messages.push({id:nn(),role:"user",content:b,created_at:new Date(lt.update()).toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"user");const de=await L(),fe=await H([...o.messages],de);return o.messages.push({id:nn(),role:"assistant",content:fe.result||"",created_at:new Date().toISOString(),context:fe.context,matches:fe.matches}),d.track("agent-message-send",{event:"success",messages:o.messages.length+1}),fe.result&&((ye=(ee=e.callbacks).onNewMessage)==null||ye.call(ee,[...o.messages],"answer"),d.track("agent-message-received",{latency:lt.get(!0),messages:o.messages.length})),fe}catch(de){throw((Oe=o.messages[o.messages.length-1])==null?void 0:Oe.role)==="assistant"&&o.messages.pop(),d.track("agent-message-send",{event:"error",messages:o.messages.length}),de}},rate(b,P,L){var X,ee,ye,Oe;const H=o.messages.find(de=>de.id===b);if(o.chat){if(!H)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const Y=((X=H.matches)==null?void 0:X.map(de=>[de.document_id,de.id]))??[];return d.track("agent-rate",{event:L?"update":"create",thumb:P===1?"up":"down",knowledge_id:((ee=h.knowledge)==null?void 0:ee.id)??"",matches:Y,score:P}),L?u.updateRating(h.id,o.chat.id,L,{knowledge_id:((ye=h.knowledge)==null?void 0:ye.id)??"",message_id:b,matches:Y,score:P}):u.createRating(h.id,o.chat.id,{knowledge_id:((Oe=h.knowledge)==null?void 0:Oe.id)??"",message_id:b,matches:Y,score:P})},deleteRate(b){if(!o.chat)throw new Error("Chat is not initialized");return d.track("agent-rate-delete",{type:"text"}),u.deleteRating(h.id,o.chat.id,b)},async speak(b){var Y,X,ee;function P(){if(typeof b=="string"){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:b,ssml:!1}}if(b.type==="text"&&!b.provider){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:b.input,ssml:b.ssml}}return b}const L=P();if(d.track("agent-speak",L),lt.update(),o.messages&&L.type==="text"&&(o.messages.push({id:nn(),role:"assistant",content:L.input,created_at:new Date().toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"answer")),Tl(o.chatMode))return{duration:0,video_id:"",status:"success"};if(!o.streamingManager)throw new Error("Please connect to the agent first");return o.streamingManager.speak({script:L,metadata:{chat_id:(ee=o.chat)==null?void 0:ee.id,agent_id:h.id}})},interrupt:T}}function Tu(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var Su=Object.defineProperty,Cu=(n,e,t)=>e in n?Su(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,fa=(n,e,t)=>Cu(n,typeof e!="symbol"?e+"":e,t);class Pe{constructor(){fa(this,"_locking"),fa(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const t=new Promise(r=>e=()=>{this._locks-=1,r()}),i=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),i}}function pe(n,e){if(!n)throw new Error(e)}const Eu=34028234663852886e22,wu=-34028234663852886e22,Ru=4294967295,_u=2147483647,Pu=-2147483648;function ii(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>_u||n<Pu)throw new Error("invalid int 32: "+n)}function ar(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>Ru||n<0)throw new Error("invalid uint 32: "+n)}function pa(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Eu||n<wu))throw new Error("invalid float 32: "+n)}const ga=Symbol("@bufbuild/protobuf/enum-type");function Iu(n){const e=n[ga];return pe(e,"missing enum type on enum object"),e}function va(n,e,t,i){n[ga]=ya(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function ya(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const c of e){const a=ba(c);s.push(a),i[c.name]=a,r[c.no]=a}return{typeName:n,values:s,findName(c){return i[c]},findNumber(c){return r[c]}}}function Ou(n,e,t){const i={};for(const r of e){const s=ba(r);i[s.localName]=s.no,i[s.no]=s.localName}return va(i,n,e),i}function ba(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class or{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),r=i.runtime.bin,s=r.makeReadOptions(t);return r.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,t){const i=this.getType(),r=i.runtime.json,s=r.makeReadOptions(t);return r.readMessage(i,e,s,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(r){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(r instanceof Error?r.message:String(r)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,r=i.makeWriteOptions(e),s=r.writerFactory();return i.writeMessage(this,s,r),s.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,r=i.makeWriteOptions(e);return i.writeMessage(this,r)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function Mu(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),c={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(c.prototype,new or),Object.assign(c,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,o){return new c().fromBinary(a,o)},fromJson(a,o){return new c().fromJson(a,o)},fromJsonString(a,o){return new c().fromJsonString(a,o)},equals(a,o){return n.util.equals(c,a,o)}}),c}function Du(){let n=0,e=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(n|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,!(t&128))return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function cr(n,e,t){for(let s=0;s<28;s=s+7){const c=n>>>s,a=!(!(c>>>7)&&e==0),o=(a?c|128:c)&255;if(t.push(o),!a)return}const i=n>>>28&15|(e&7)<<4,r=!!(e>>3);if(t.push((r?i|128:i)&255),!!r){for(let s=3;s<31;s=s+7){const c=e>>>s,a=!!(c>>>7),o=(a?c|128:c)&255;if(t.push(o),!a)return}t.push(e>>>31&1)}}const ri=4294967296;function ka(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(c,a){const o=Number(n.slice(c,a));r*=t,i=i*t+o,i>=ri&&(r=r+(i/ri|0),i=i%ri)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Sa(i,r):dr(i,r)}function Au(n,e){let t=dr(n,e);const i=t.hi&2147483648;i&&(t=Sa(t.lo,t.hi));const r=Ta(t.lo,t.hi);return i?"-"+r:r}function Ta(n,e){if({lo:n,hi:e}=xu(n,e),e<=2097151)return String(ri*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,c=i+r*8147497,a=r*2;const o=1e7;return s>=o&&(c+=Math.floor(s/o),s%=o),c>=o&&(a+=Math.floor(c/o),c%=o),a.toString()+Ca(c)+Ca(s)}function xu(n,e){return{lo:n>>>0,hi:e>>>0}}function dr(n,e){return{lo:n|0,hi:e|0}}function Sa(n,e){return e=~e,n?n=~n+1:e+=1,dr(n,e)}const Ca=n=>{const e=String(n);return"0000000".slice(e.length)+e};function Ea(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function Lu(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Nu(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),c=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error("int64 invalid: ".concat(o));return d},uParse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>a||d<c)throw new Error("uint64 invalid: ".concat(o));return d},enc(o){return n.setBigInt64(0,this.parse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(o){return n.setBigInt64(0,this.uParse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>pe(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>pe(/^[0-9]+$/.test(r),"uint64 invalid: ".concat(r));return{zero:"0",supported:!1,parse(r){return typeof r!="string"&&(r=r.toString()),t(r),r},uParse(r){return typeof r!="string"&&(r=r.toString()),i(r),r},enc(r){return typeof r!="string"&&(r=r.toString()),t(r),ka(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),ka(r)},dec(r,s){return Au(r,s)},uDec(r,s){return Ta(r,s)}}}const ue=Nu();var w;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(w||(w={}));var Mt;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Mt||(Mt={}));function Dt(n,e,t){if(e===t)return!0;if(n==w.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}switch(n){case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==t}return!1}function rn(n,e){switch(n){case w.BOOL:return!1;case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==0?ue.zero:"0";case w.DOUBLE:case w.FLOAT:return 0;case w.BYTES:return new Uint8Array(0);case w.STRING:return"";default:return 0}}function wa(n,e){switch(n){case w.BOOL:return e===!1;case w.STRING:return e==="";case w.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var be;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(be||(be={}));class Uu{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),i=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(ar(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ii(e),Ea(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){pa(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){ar(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ii(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ii(e),e=(e<<1^e>>31)>>>0,Ea(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ue.enc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ue.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=ue.enc(e);return cr(t.lo,t.hi,this.buf),this}sint64(e){let t=ue.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return cr(r,s,this.buf),this}uint64(e){let t=ue.uEnc(e);return cr(t.lo,t.hi,this.buf),this}}class Fu{constructor(e,t){this.varint64=Du,this.uint32=Lu,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case be.Varint:for(;this.buf[this.pos++]&128;);break;case be.Bit64:this.pos+=4;case be.Bit32:this.pos+=4;break;case be.LengthDelimited:let r=this.uint32();this.pos+=r;break;case be.StartGroup:for(;;){const[s,c]=this.tag();if(c===be.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(c,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return ue.dec(...this.varint64())}uint64(){return ue.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,ue.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return ue.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return ue.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function Bu(n,e,t,i){let r;return{typeName:e,extendee:t,get field(){if(!r){const s=typeof i=="function"?i():i;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),r=n.util.newFieldList([s]).list()[0]}return r},runtime:n}}function Ra(n){const e=n.field.localName,t=Object.create(null);return t[e]=ju(n),[t,()=>t[e]]}function ju(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return rn(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function Vu(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let kt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),si=[];for(let n=0;n<kt.length;n++)si[kt[n].charCodeAt(0)]=n;si[45]=kt.indexOf("+"),si[95]=kt.indexOf("/");const _a={dec(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),i=0,r=0,s,c=0;for(let a=0;a<n.length;a++){if(s=si[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
1
+ (function($,Me){typeof exports=="object"&&typeof module<"u"?Me(exports):typeof define=="function"&&define.amd?define(["exports"],Me):($=typeof globalThis<"u"?globalThis:$||self,Me($.index={}))})(this,function($){"use strict";var Bg=Object.defineProperty;var jg=($,Me,Vt)=>Me in $?Bg($,Me,{enumerable:!0,configurable:!0,writable:!0,value:Vt}):$[Me]=Vt;var ei=($,Me,Vt)=>jg($,typeof Me!="symbol"?Me+"":Me,Vt);class Me extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));ei(this,"kind");ei(this,"description");ei(this,"error");this.kind=t,this.description=i,this.error=r}}class Vt extends Me{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Bs extends Me{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class qt extends Me{constructor(t,i){super({kind:"ValidationError",description:t});ei(this,"key");this.key=i}}class js extends Me{constructor(e){super({kind:"WSError",description:e})}}var Vs=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Vs||{}),qs=(n=>(n.TRIAL="deid-trial",n.PRO="deid-pro",n.ENTERPRISE="deid-enterprise",n.LITE="deid-lite",n.ADVANCED="deid-advanced",n.BUILD="deid-api-build",n.LAUNCH="deid-api-launch",n.SCALE="deid-api-scale",n))(qs||{}),Ks=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(Ks||{}),Ws=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(Ws||{}),Ce=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(Ce||{}),Ue=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(Ue||{}),Hs=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Hs||{}),Js=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(Js||{}),Gs=(n=>(n.Pdf="pdf",n.Text="text",n.Html="html",n.Word="word",n.Json="json",n.Markdown="markdown",n.Csv="csv",n.Excel="excel",n.Powerpoint="powerpoint",n.Archive="archive",n.Image="image",n.Audio="audio",n.Video="video",n))(Gs||{}),Qi=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(Qi||{});const ml=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var Q=(n=>(n.Start="START",n.Stop="STOP",n))(Q||{}),et=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(et||{}),Ee=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(Ee||{}),ne=(n=>(n.ChatAnswer="chat/answer",n.ChatPartial="chat/partial",n.ChatAudioTranscribed="chat/audio-transcribed",n.StreamDone="stream/done",n.StreamStarted="stream/started",n.StreamFailed="stream/error",n.StreamReady="stream/ready",n.StreamCreated="stream/created",n.StreamInterrupt="stream/interrupt",n.StreamVideoCreated="stream-video/started",n.StreamVideoDone="stream-video/done",n.StreamVideoError="stream-video/error",n.StreamVideoRejected="stream-video/rejected",n.ToolCalling="tool/calling",n.ToolResult="tool/result",n))(ne||{}),se=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnecting="disconnecting",n.Disconnected="disconnected",n))(se||{}),tt=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(tt||{}),ti=(n=>(n.Livekit="livekit",n))(ti||{}),zs=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(zs||{}),$s=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))($s||{});const fl=45*1e3,pl="X-Playground-Chat",Cn="https://api.d-id.com",gl="wss://notifications.d-id.com",vl="79f81a83a67430be2bc0fd61042b8faa",yl=(...n)=>{},Qs=n=>new Promise(e=>setTimeout(e,n)),nn=(n=16)=>{const e=new Uint8Array(n);return window.crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").slice(0,13)},Ys=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,bl=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},kl=n=>n.type==="talk"?n.source_url:n.presenter_id,Yi=n=>n===Qi.Expressive,Tl=n=>[Ce.TextOnly,Ce.Playground,Ce.Maintenance].includes(n),Xs=n=>n&&[Ce.DirectPlayback,Ce.Off].includes(n);function Sl(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function Xi(n,e){const t={limit:(e==null?void 0:e.limit)??3,delayMs:(e==null?void 0:e.delayMs)??0,timeout:(e==null?void 0:e.timeout)??3e4,timeoutErrorMessage:(e==null?void 0:e.timeoutErrorMessage)||"Timeout error",shouldRetryFn:(e==null?void 0:e.shouldRetryFn)??(()=>!0),onRetry:(e==null?void 0:e.onRetry)??(()=>{})};let i;for(let r=1;r<=t.limit;r++)try{if(!t.timeout)return await n();const{promise:s,clear:c}=Sl(t.timeout,t.timeoutErrorMessage),a=n().finally(c);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Qs(t.delayMs),t.onRetry(s)}throw i}function Zi(n){if(n!==void 0)return window.localStorage.setItem("did_external_key_id",n),n;let e=window.localStorage.getItem("did_external_key_id");if(!e){let t=nn();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let Cl=nn();function Zs(n,e){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${Zi(e)}_${Cl}`;throw new Error(`Unknown auth type: ${n}`)}const El=n=>Xi(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function er(n,e=Cn,t,i){const r=async(s,c)=>{const{skipErrorHandler:a,...o}=c||{},d=await El(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...o,headers:{...o.headers,Authorization:Zs(n,i),"Content-Type":"application/json"}}));if(!d.ok){let l=await d.text().catch(()=>`Failed to fetch with status ${d.status}`);const u=new Error(l);throw t&&!a&&t(u,{url:s,options:o,headers:d.headers}),u}return d.json()};return{get(s,c){return r(s,{...c,method:"GET"})},post(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"POST"})},delete(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"DELETE"})},patch(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"PATCH"})}}}function wl(n,e=Cn,t,i){const r=er(n,`${e}/agents`,t,i);return{create(s,c){return r.post("/",s,c)},getAgents(s,c){return r.get(`/${s?`?tag=${s}`:""}`,c).then(a=>a??[])},getById(s,c){return r.get(`/${s}`,c)},delete(s,c){return r.delete(`/${s}`,void 0,c)},update(s,c,a){return r.patch(`/${s}`,c,a)},newChat(s,c,a){return r.post(`/${s}/chat`,c,a)},chat(s,c,a,o){return r.post(`/${s}/chat/${c}`,a,o)},createRating(s,c,a,o){return r.post(`/${s}/chat/${c}/ratings`,a,o)},updateRating(s,c,a,o,d){return r.patch(`/${s}/chat/${c}/ratings/${a}`,o,d)},deleteRating(s,c,a,o){return r.delete(`/${s}/chat/${c}/ratings/${a}`,o)},getSTTToken(s,c){return r.get(`/${s}/stt-token`,c)}}}function Rl(n){var r,s,c,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const o=navigator.platform;return o.toLowerCase().includes("win")?"Windows":o.toLowerCase().includes("mac")?"Mac OS X":o.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Ys(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(c=n.presenter)==null?void 0:c.voice)==null?void 0:a.type}}}function _l(n){var t,i,r,s,c,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Ys(n.presenter),presenterType:bl(n.presenter),presenter:kl(n.presenter),owner_id:n.owner_id??"",promptVersion:(i=n.llm)==null?void 0:i.prompt_version,behavior:{role:e==null?void 0:e.role,personality:e==null?void 0:e.personality,instructions:(r=n.llm)==null?void 0:r.instructions},temperature:(s=n.llm)==null?void 0:s.temperature,knowledgeSource:e==null?void 0:e.knowledge_source,starterQuestionsCount:(a=(c=n.knowledge)==null?void 0:c.starter_message)==null?void 0:a.length,topicsToAvoid:e==null?void 0:e.topics_to_avoid,maxResponseLength:e==null?void 0:e.max_response_length,agentId:n.id,access:n.access,name:n.preview_name,...n.access==="public"?{from:"agent-template"}:{}}}const Pl=n=>n.reduce((e,t)=>e+t,0),ea=n=>Pl(n)/n.length;function Il(n,e,t){var o,d,l;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:c}=((o=e==null?void 0:e.presenter)==null?void 0:o.voice)||{};return{...r,llm:{...r.llm,template:s},script:{...r.script,provider:{...(d=r==null?void 0:r.script)==null?void 0:d.provider,language:c}},stitch:(e==null?void 0:e.presenter.type)==="talk"?(l=e==null?void 0:e.presenter)==null?void 0:l.stitch:void 0,...t}}function ta(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}const Ol="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Ml(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:Zi(n.externalId),agentId:n.agentId,additionalProperties:{id:Zi(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:nn,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:c,...a}=r||{},o=s||Date.now(),d={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,token:this.token,time:o,$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(Ol,d).catch(l=>console.error("Analytics tracking error:",l)),Promise.resolve()},linkTrack(i,r,s,c){t[i]||(t[i]={events:{},resolvedDependencies:[]}),c.includes(s)||c.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),c.every(d=>a.resolvedDependencies.includes(d))){const d=c.reduce((l,u)=>a.events[u]?{...l,...a.events[u].props}:l,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(l=>!c.includes(l)),c.forEach(l=>{delete a.events[l]})}}}}function tr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const lt=tr(),nr=tr(),na=tr();function ia(n){return n===Ce.Playground?{headers:{[pl]:"true"}}:{}}async function ra(n,e,t,i,r=!1,s){try{return!s&&!Xs(i)&&(s=await e.newChat(n.id,{persist:r},ia(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(c){throw Dl(c)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const Dl=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function Al(n){return n&&n.length>0?n:[]}function xl(n,e,t,i){const r=er(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const sa=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),Ll={[ne.ChatAnswer]:Ue.Answer,[ne.ChatPartial]:Ue.Partial};function Nl(n,e,t){const i=(e.timestamp-n.timestamp)/1e3;return{duration:i,bytesReceived:e.bytesReceived-n.bytesReceived,bitrate:Math.round((e.bytesReceived-n.bytesReceived)*8/i),packetsReceived:e.packetsReceived-n.packetsReceived,packetsLost:e.packetsLost-n.packetsLost,framesDropped:e.framesDropped-n.framesDropped,framesDecoded:e.framesDecoded-n.framesDecoded,jitter:e.jitter,avgJitterDelayInInterval:(e.jitterBufferDelay-n.jitterBufferDelay)/(e.jitterBufferEmittedCount-n.jitterBufferEmittedCount),jitterBufferEmittedCount:e.jitterBufferEmittedCount-n.jitterBufferEmittedCount,jitterBufferDelay:(e.jitterBufferDelay-n.jitterBufferDelay)/i,framesPerSecond:e.framesPerSecond,freezeCount:e.freezeCount-n.freezeCount,freezeDuration:e.freezeDuration-n.freezeDuration,lowFpsCount:t}}function Ul(n){return n.filter(e=>e.freezeCount>0||e.framesPerSecond<21||e.framesDropped>0||e.packetsLost>0).map(e=>{const{timestamp:t,...i}=e,r=[];return e.freezeCount>0&&r.push("freeze"),e.framesPerSecond<21&&r.push("low fps"),e.framesDropped>0&&r.push("frames dropped"),e.packetsLost>0&&r.push("packet loss"),{...i,causes:r}})}function Fl(n){let e="",t=0;for(const i of n.values()){if(i&&i.type==="codec"&&i.mimeType.startsWith("video")&&(e=i.mimeType.split("/")[1]),i&&i.type==="candidate-pair"){const r=i.currentRoundTripTime,c=i.nominated===!0;r>0&&(c||t===0)&&(t=r)}if(i&&i.type==="inbound-rtp"&&i.kind==="video")return{codec:e,rtt:t,timestamp:i.timestamp,bytesReceived:i.bytesReceived,packetsReceived:i.packetsReceived,packetsLost:i.packetsLost,framesDropped:i.framesDropped,framesDecoded:i.framesDecoded,jitter:i.jitter,jitterBufferDelay:i.jitterBufferDelay,jitterBufferEmittedCount:i.jitterBufferEmittedCount,avgJitterDelayInInterval:i.jitterBufferDelay/i.jitterBufferEmittedCount,frameWidth:i.frameWidth,frameHeight:i.frameHeight,framesPerSecond:i.framesPerSecond,freezeCount:i.freezeCount,freezeDuration:i.totalFreezesDuration}}return{}}function aa(n,e,t){const i=n.map((o,d)=>d===0?t?{timestamp:o.timestamp,duration:0,rtt:o.rtt,bytesReceived:o.bytesReceived-t.bytesReceived,bitrate:(o.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-t.packetsReceived,packetsLost:o.packetsLost-t.packetsLost,framesDropped:o.framesDropped-t.framesDropped,framesDecoded:o.framesDecoded-t.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-t.jitterBufferDelay)/(o.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-t.freezeCount,freezeDuration:o.freezeDuration-t.freezeDuration}:{timestamp:o.timestamp,rtt:o.rtt,duration:0,bytesReceived:o.bytesReceived,bitrate:o.bytesReceived*8/(e/1e3),packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.freezeDuration}:{timestamp:o.timestamp,duration:e*d/1e3,rtt:o.rtt,bytesReceived:o.bytesReceived-n[d-1].bytesReceived,bitrate:(o.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-n[d-1].packetsReceived,packetsLost:o.packetsLost-n[d-1].packetsLost,framesDropped:o.framesDropped-n[d-1].framesDropped,framesDecoded:o.framesDecoded-n[d-1].framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-n[d-1].jitterBufferDelay)/(o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-n[d-1].freezeCount,freezeDuration:o.freezeDuration-n[d-1].freezeDuration}),r=Ul(i),s=r.reduce((o,d)=>o+(d.causes.includes("low fps")?1:0),0),c=i.filter(o=>!!o.avgJitterDelayInInterval).map(o=>o.avgJitterDelayInInterval),a=i.filter(o=>!!o.rtt).map(o=>o.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:ea(a),maxRtt:Math.max(...a),aggregateReport:Nl(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...c),maxJitterDelayInInterval:Math.max(...c),avgJitterDelayInInterval:ea(c)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function oa(n,e){for(const t of n.values())if((t==null?void 0:t.type)==="inbound-rtp"&&t.kind===e)return t;return null}const En=10;function Bl(n,e){let t=!1,i=!1,r=null,s=0,c=0,a={};async function o(){if(t){try{const d=await n();if(!d){r=setTimeout(o,En);return}const l=oa(d,"audio");if(!l){r=setTimeout(o,En);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,c=h,i=!0,r=setTimeout(o,En);return}const f=u-s,v=h-c;if(s=u,c=h,v>0&&f>0){t=!1,e(a);return}}catch{}t&&(r=setTimeout(o,En))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(o,En)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const ni=100,jl=Math.max(Math.ceil(400/ni),1),Vl=.25,ql=.28;function Kl(){let n=0,e,t,i=0;return r=>{const s=oa(r,"video");if(!s)return{isReceiving:!1,avgJitterDelayInInterval:i};const c=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const l=c-e,u=a-t;i=l/u}e=c,t=a;const o=s.framesDecoded,d=o-n>0;return n=o,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}}function ca(n,e,t,i,r){let s=null,c=[],a,o=0,d=!1,l=et.Unknown,u=et.Unknown,h=0,f=0;const v=Kl();async function g(){const C=await n();if(!C)return;const{isReceiving:T,avgJitterDelayInInterval:R,freezeCount:_}=v(C),y=Fl(C);if(T)o=0,h=_-f,u=R<Vl?et.Strong:R>ql&&h>1?et.Weak:l,u!==l&&(r==null||r(u),l=u,f+=h,h=0),d||(i==null||i(Q.Start),a=c[c.length-1],c=[],d=!0),c.push(y);else if(d&&(o++,o>=jl)){const k=aa(c,ni,a);i==null||i(Q.Stop,k),e()||t(),f=_,d=!1}}return{start:()=>{s||(s=setInterval(g,ni))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>aa(c,ni,a)}}const da=2e4;async function Wl(){try{return await Promise.resolve().then(()=>Mg)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Hl={excellent:et.Strong,good:et.Strong,poor:et.Weak,lost:et.Unknown,unknown:et.Unknown},wn=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});var ir=(n=>(n.Chat="lk.chat",n.Speak="did.speak",n.Interrupt="did.interrupt",n))(ir||{});function rr(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,se.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function Jl(n,e,t){var cl;const i=sa(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:c,Track:a}=await Wl(),{callbacks:o,auth:d,baseURL:l,analytics:u}=t;let h=null,f=!1;const v=tt.Fluent;let g=null;const C={isPublishing:!1,publication:null},T={isPublishing:!1,publication:null};let R=null,_=null,y=null,k=!1;h=new r({adaptiveStream:!1,dynacast:!0});let S=null,x=Ee.Idle,F=!0;const U=xl(d,l||Cn,n,o.onError);let b,P,L;try{const I=await U.createStream({transport:e.transport,chat_persist:e.chat_persist??!0}),{id:N,session_token:q,session_url:K}=I;(cl=o.onStreamCreated)==null||cl.call(o,{session_id:N,stream_id:N,agent_id:n}),b=N,P=q,L=K,await h.prepareConnection(L,P)}catch(I){rr(I,i,o)}if(!L||!P||!b)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,Y).on(s.ConnectionQualityChanged,X).on(s.ParticipantConnected,ee).on(s.ParticipantDisconnected,ye).on(s.TrackSubscribed,fe).on(s.TrackUnsubscribed,xe).on(s.DataReceived,Gi).on(s.MediaDevicesError,zi).on(s.TranscriptionReceived,H).on(s.EncryptionError,$i).on(s.TrackSubscriptionFailed,Dg);function H(I,N){var q;N!=null&&N.isLocal&&(lt.update(),x===Ee.Talking&&((q=o.onInterruptDetected)==null||q.call(o,{type:"audio"}),x=Ee.Idle))}try{await h.connect(L,P),i("LiveKit room joined successfully"),S=setTimeout(()=>{var I;i(`Track subscription timeout - no track subscribed within ${da/1e3} seconds after connect`),S=null,u.track("connectivity-error",{error:"Track subscription timeout",sessionId:b}),(I=o.onError)==null||I.call(o,new Error("Track subscription timeout"),{sessionId:b}),Fs("internal:track-subscription-timeout")},da)}catch(I){rr(I,i,o)}u.enrich({"stream-type":v});function Y(I){var N,q,K,ce;switch(i("Connection state changed:",I),I){case c.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(N=o.onConnectionStateChange)==null||N.call(o,se.Connecting,"livekit:connecting");break;case c.Connected:i("LiveKit room connected successfully"),f=!0;break;case c.Disconnected:i("LiveKit room disconnected"),f=!1,k=!1,C.publication=null,T.publication=null,(q=o.onConnectionStateChange)==null||q.call(o,se.Disconnected,"livekit:disconnected");break;case c.Reconnecting:i("LiveKit room reconnecting..."),(K=o.onConnectionStateChange)==null||K.call(o,se.Connecting,"livekit:reconnecting");break;case c.SignalReconnecting:i("LiveKit room signal reconnecting..."),(ce=o.onConnectionStateChange)==null||ce.call(o,se.Connecting,"livekit:signal-reconnecting");break}}function X(I,N){var q;i("Connection quality:",I),N!=null&&N.isLocal&&((q=o.onConnectivityStateChange)==null||q.call(o,Hl[I]))}function ee(I){i("Participant connected:",I.identity)}function ye(I){i("Participant disconnected:",I.identity),Fs("livekit:participant-disconnected")}function Oe(){var I;y!==Q.Start&&(i("CALLBACK: onVideoStateChange(Start)"),y=Q.Start,(I=o.onVideoStateChange)==null||I.call(o,Q.Start))}function de(I){var N;y!==Q.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),y=Q.Stop,(N=o.onVideoStateChange)==null||N.call(o,Q.Stop,I))}function fe(I,N,q){var ce,le,Ne;i(`Track subscribed: ${I.kind} from ${q.identity}`);const K=I.mediaStreamTrack;if(!K){i(`No mediaStreamTrack available for ${I.kind}`);return}g?(g.addTrack(K),i(`Added ${I.kind} track to shared MediaStream`)):(g=new MediaStream([K]),i(`Created shared MediaStream with ${I.kind} track`)),I.kind==="audio"&&(_=Bl(()=>I.getRTCStatsReport(),({sttLatency:Se,serviceLatency:dt})=>{var dl,ll,ul;const Xn=lt.get(!0);let Zn=0;if(Se){const hl=((ll=(dl=R==null?void 0:R.getReport())==null?void 0:dl.webRTCStats)==null?void 0:ll.avgRtt)??0;Zn=hl>0?Math.round(hl*1e3):0}const Sn=Xn>0?Xn+(Se??0)+Zn:void 0,Ot=Sn!==void 0&&dt!==void 0?Sn-dt:void 0;(ul=o.onFirstAudioDetected)==null||ul.call(o,{latency:Sn,networkLatency:Ot})})),I.kind==="video"&&((ce=o.onStreamReady)==null||ce.call(o),i("CALLBACK: onSrcObjectReady"),(le=o.onSrcObjectReady)==null||le.call(o,g),k||(k=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Ne=o.onConnectionStateChange)==null||Ne.call(o,se.Connected,"livekit:track-subscribed")),R=ca(()=>I.getRTCStatsReport(),()=>f,yl,(Se,dt)=>{i(`Video state change: ${Se}`),Se===Q.Start?(S&&(clearTimeout(S),S=null,i("Track subscription timeout cleared")),Oe()):Se===Q.Stop&&de(dt)}),R.start())}function xe(I,N,q){i(`Track unsubscribed: ${I.kind} from ${q.identity}`),I.kind==="audio"&&(_==null||_.destroy(),_=null),I.kind==="video"&&(de(R==null?void 0:R.getReport()),R==null||R.stop(),R=null)}function Ge(I,N){var K;const q=Ll[I];q&&((K=o.onMessage)==null||K.call(o,q,{event:q,...N}))}function j(I,N){var q,K,ce;if(I===ne.ToolCalling){x=Ee.ToolActive,(q=o.onAgentActivityStateChange)==null||q.call(o,Ee.ToolActive),(K=o.onToolEvent)==null||K.call(o,ne.ToolCalling,N);return}I===ne.ToolResult&&((ce=o.onToolEvent)==null||ce.call(o,ne.ToolResult,N))}function B(I,N){var q,K,ce,le,Ne;if(F=((q=N.metadata)==null?void 0:q.interruptible)!==!1,(K=o.onInterruptibleChange)==null||K.call(o,F),I===ne.StreamVideoCreated){x=Ee.Talking,(ce=o.onAgentActivityStateChange)==null||ce.call(o,Ee.Talking),_==null||_.arm({sttLatency:(le=N==null?void 0:N.stt)==null?void 0:le.latency,serviceLatency:N==null?void 0:N.serviceLatency});return}F&&(x=Ee.Idle,(Ne=o.onAgentActivityStateChange)==null||Ne.call(o,Ee.Idle))}function te(I,N){var le,Ne,Se,dt;const q=((Ne=(le=R==null?void 0:R.getReport())==null?void 0:le.webRTCStats)==null?void 0:Ne.avgRtt)??0,K=q>0?Math.round(q/2*1e3):0,ce={...N,downstreamNetworkLatency:K};t.debug&&((Se=N==null?void 0:N.metadata)!=null&&Se.sentiment)&&(ce.sentiment={id:N.metadata.sentiment.id,name:N.metadata.sentiment.sentiment}),(dt=o.onMessage)==null||dt.call(o,I,ce),B(I,N)}function Le(I,N){var q;(q=o.onMessage)==null||q.call(o,Ue.Transcribe,{event:Ue.Transcribe,...N}),queueMicrotask(()=>{var K;(K=o.onAgentActivityStateChange)==null||K.call(o,Ee.Loading)})}const Tn={[ne.ChatAnswer]:Ge,[ne.ChatPartial]:Ge,[ne.ToolCalling]:j,[ne.ToolResult]:j,[ne.StreamVideoCreated]:te,[ne.StreamVideoDone]:te,[ne.StreamVideoError]:te,[ne.StreamVideoRejected]:te,[ne.ChatAudioTranscribed]:Le};function Gi(I,N,q,K){const ce=new TextDecoder().decode(I);try{const le=JSON.parse(ce),Ne=K||le.subject;if(i("Data received:",{subject:Ne,data:le}),!Ne)return;const Se=Tn[Ne];Se==null||Se(Ne,le)}catch(le){i("Failed to parse data channel message:",le)}}function zi(I){var N;i("Media devices error:",I),(N=o.onError)==null||N.call(o,new Error(wn),{sessionId:b})}function $i(I){var N;i("Encryption error:",I),(N=o.onError)==null||N.call(o,new Error(wn),{sessionId:b})}function Dg(I,N,q){i("Track subscription failed:",{trackSid:I,participant:N,reason:q})}function Ag(I,N,q){for(const[K,ce]of q)if(ce.source===N&&ce.track){const le=ce.track.mediaStreamTrack;if(le===I||(le==null?void 0:le.id)===I.id)return ce}return null}async function al(I,N,q,K,ce,le){var Xn,Zn,Sn;if(!f||!h)throw i(`Room is not connected, cannot publish ${K} stream`),new Error("Room is not connected");if(I.isPublishing){i(`${K} publish already in progress, skipping`);return}const Ne=q(N);if(Ne.length===0)throw new Error(`No ${K} track found in the provided MediaStream`);const Se=Ne[0],dt=Ag(Se,K,ce());if(dt){i(`${K} track is already published, skipping`,{trackId:Se.id,publishedTrackId:(Zn=(Xn=dt.track)==null?void 0:Xn.mediaStreamTrack)==null?void 0:Zn.id}),I.publication=dt;return}if((Sn=I.publication)!=null&&Sn.track){const Ot=I.publication.track.mediaStreamTrack;Ot!==Se&&(Ot==null?void 0:Ot.id)!==Se.id&&(i(`Unpublishing existing ${K} track before publishing new one`),await le())}i(`Publishing ${K} track from provided MediaStream`,{trackId:Se.id}),I.isPublishing=!0;try{I.publication=await h.localParticipant.publishTrack(Se,{source:K}),i(`${K} track published successfully`,{trackSid:I.publication.trackSid})}catch(Ot){throw i(`Failed to publish ${K} track:`,Ot),Ot}finally{I.isPublishing=!1}}async function ol(I,N){if(!(!I.publication||!I.publication.track))try{h&&(await h.localParticipant.unpublishTrack(I.publication.track,!1),i(`${N} track unpublished`))}catch(q){i(`Error unpublishing ${N} track:`,q)}finally{I.publication=null}}async function xg(I){return al(C,I,N=>N.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,Ls)}async function Ls(){return ol(C,"Microphone")}async function Lg(I){return al(T,I,N=>N.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Ns)}async function Ns(){return ol(T,"Camera")}function Ng(){g&&(g.getTracks().forEach(I=>I.stop()),g=null)}async function Us(I,N){var q,K;if(!f||!h){i("Room is not connected for sending messages"),(q=o.onError)==null||q.call(o,new Error(wn),{sessionId:b});return}try{await h.localParticipant.sendText(I,{topic:N}),i("Message sent successfully:",I)}catch(ce){i("Failed to send message:",ce),(K=o.onError)==null||K.call(o,new Error(wn),{sessionId:b})}}async function Ug(I){var N;try{const K=JSON.parse(I).topic;return Us("",K)}catch(q){i("Failed to send data channel message:",q),(N=o.onError)==null||N.call(o,new Error(wn),{sessionId:b})}}function Fg(I){return Us(I,"lk.chat")}async function Fs(I){var N,q;S&&(clearTimeout(S),S=null),_==null||_.destroy(),_=null,h&&((N=o.onConnectionStateChange)==null||N.call(o,se.Disconnecting,I),await Promise.all([Ls(),Ns()]),await h.disconnect()),Ng(),f=!1,k=!1,(q=o.onAgentActivityStateChange)==null||q.call(o,Ee.Idle),x=Ee.Idle}return{speak(I){const N=typeof I=="string"?I:JSON.stringify(I);return Us(N,"did.speak")},disconnect:()=>Fs("user:disconnect"),async reconnect(){var I,N;if((h==null?void 0:h.state)===c.Connected){i("Room is already connected");return}if(!h||!L||!P)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),k=!1,(I=o.onConnectionStateChange)==null||I.call(o,se.Connecting,"user:reconnect");try{if(await h.connect(L,P),i("Room reconnected"),f=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(K=>{const ce=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,le),K(!1)},5e3),le=()=>{clearTimeout(ce),h==null||h.off(s.ParticipantConnected,le),K(!0)};h==null||h.on(s.ParticipantConnected,le)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined, reconnection successful")}}catch(q){throw i("Failed to reconnect:",q),(N=o.onConnectionStateChange)==null||N.call(o,se.Fail,"user:reconnect-failed"),q}},sendDataChannelMessage:Ug,sendTextMessage:Fg,publishMicrophoneStream:xg,unpublishMicrophoneStream:Ls,publishCameraStream:Lg,unpublishCameraStream:Ns,sessionId:b,streamId:b,streamType:v,interruptAvailable:!0,isInterruptible:F,triggersAvailable:!1}}const Gl=Object.freeze(Object.defineProperty({__proto__:null,DataChannelTopic:ir,createLiveKitStreamingManager:Jl,handleInitError:rr},Symbol.toStringTag,{value:"Module"}));function zl(n,e,t){if(!n)throw new Error("Please connect to the agent first");if(!n.interruptAvailable)throw new Error("Interrupt is not enabled for this stream");if(e!==tt.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function $l(n,e){const t={type:ne.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}async function Ql(n){const e={topic:ir.Interrupt};n.sendDataChannelMessage(JSON.stringify(e))}function Yl(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:c}=n,{onMessage:a=null,onOpen:o=null,onClose:d=null,onError:l=null}=i||{},u=new WebSocket(`${r}?authorization=${encodeURIComponent(Zs(s,c))}`);u.onmessage=a,u.onclose=d,u.onerror=h=>{console.error(h),l==null||l("Websocket failed to connect",h),t(h)},u.onopen=h=>{o==null||o(h),e(u)}})}async function Xl(n){const{retries:e=1}=n;let t=null;for(let i=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;i++)try{t=await Yl(n)}catch(r){if(i===e)throw r;await Qs(i*500)}return t}async function Zl(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await Xl({auth:n,host:e,externalId:i,callbacks:{onError:c=>{var a;return(a=t.onError)==null?void 0:a.call(t,new js(c))},onMessage(c){const a=JSON.parse(c.data);r.forEach(o=>o(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:c=>r.push(c)}}function eu(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function tu(n,e,t){if(!n.content)return;const i=e.messages[e.messages.length-1];(i==null?void 0:i.role)==="assistant"&&!i.interrupted&&(i.interrupted=!0);const r={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(r),t==null||t([...e.messages],"user")}function nu(n,e,t,i,r){if(n===Ue.Transcribe&&e.content){tu(e,i,r);return}if(!(n===Ue.Partial||n===Ue.Answer))return;const s=i.messages[i.messages.length-1];let c;if(s!=null&&s.transcribed&&s.role==="user")n===Ue.Answer&&e.content,c={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",created_at:e.created_at||new Date().toISOString()},i.messages.push(c);else if((s==null?void 0:s.role)==="assistant")c=s;else return;const{content:a,sequence:o}=e;n===Ue.Partial?t[o]=a:t.answer=a;const d=eu(t);(c.content!==d||n===Ue.Answer)&&(c.content=d,r==null||r([...i.messages],n))}function iu(n,e,t,i,r){let s={};const c=()=>s={};let a="answer";const o=(d,l)=>{var u,h;l==="user"&&c(),a=l,(h=(u=t.callbacks).onNewMessage)==null||h.call(u,d,l)};return{clearQueue:c,onMessage:(d,l)=>{var u,h;if("content"in l){const f=d===ne.ChatAnswer?Ue.Answer:d===ne.ChatAudioTranscribed?Ue.Transcribe:d;nu(f,l,s,e,o),f===Ue.Answer&&n.track("agent-message-received",{content:l.content,messages:e.messages.length,mode:e.chatMode})}else{const f=ne,v=[f.StreamVideoDone,f.StreamVideoError,f.StreamVideoRejected],g=[f.StreamFailed,f.StreamVideoError,f.StreamVideoRejected],C=Il(l,i,{mode:e.chatMode});if(d=d,d===f.StreamVideoCreated&&(n.linkTrack("agent-video",C,f.StreamVideoCreated,["start"]),l.sentiment)){const T=e.messages[e.messages.length-1];if((T==null?void 0:T.role)==="assistant"){const R={...T,sentiment:l.sentiment};e.messages[e.messages.length-1]=R,o==null||o([...e.messages],a)}}if(v.includes(d)){const T=d.split("/")[1];g.includes(d)?n.track("agent-video",{...C,event:T}):n.linkTrack("agent-video",{...C,event:T},d,["done"])}g.includes(d)&&((h=(u=t.callbacks).onError)==null||h.call(u,new Error(`Stream failed with event ${d}`),{data:l})),l.event===f.StreamDone&&r()}}}}function ru(n,e,t,i){const r=er(n,`${e}/agents/${t}`,i);return{createStream(s,c){return r.post("/streams",s,{signal:c})},startConnection(s,c,a,o){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:c},{signal:o})},addIceCandidate(s,c,a,o){return r.post(`/streams/${s}/ice`,{session_id:a,...c},{signal:o})},sendStreamRequest(s,c,a){return r.post(`/streams/${s}`,{session_id:c,...a})},close(s,c){return r.delete(`/streams/${s}`,{session_id:c})}}}const su=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function la(n){switch(n){case"connected":return se.Connected;case"checking":return se.Connecting;case"failed":return se.Fail;case"new":return se.New;case"closed":return se.Closed;case"disconnected":return se.Disconnected;case"completed":return se.Completed;default:return se.New}}const au=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===Q.Start&&e===Q.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&e===Q.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,i))}function cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===Q.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,r)),e===Q.Start?i==null||i(Ee.Talking):e===Q.Stop&&(i==null||i(Ee.Idle))}function ua({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:c}){r===tt.Legacy?ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:c}):r===tt.Fluent&&cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:c})}async function du(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Cn,analytics:c},a){var Ge;const o=sa(t,"WebRTCStreamingManager"),d=au(o);let l=!1,u=!1,h=Q.Stop,f=Q.Stop;const{startConnection:v,sendStreamRequest:g,close:C,createStream:T,addIceCandidate:R}=ru(r,s,n,i.onError),{id:_,offer:y,ice_servers:k,session_id:S,fluent:x,interrupt_enabled:F,triggers_enabled:U}=await T(e,a);(Ge=i.onStreamCreated)==null||Ge.call(i,{stream_id:_,session_id:S,agent_id:n});const b=new su({iceServers:k}),P=b.createDataChannel("JanusDataChannel");if(!S)throw new Error("Could not create session_id");const L=x?tt.Fluent:tt.Legacy;c.enrich({"stream-type":L});const H=e.stream_warmup&&!x,Y=()=>l,X=()=>{var j;l=!0,u&&(o("CALLBACK: onConnectionStateChange(Connected)"),(j=i.onConnectionStateChange)==null||j.call(i,se.Connected))},ee=ca(()=>b.getStats(),Y,X,(j,B)=>ua({statsSignal:f=j,dataChannelSignal:L===tt.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:L,log:o}),j=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,j)});ee.start(),b.onicecandidate=j=>{var B;o("peerConnection.onicecandidate",j);try{j.candidate&&j.candidate.sdpMid&&j.candidate.sdpMLineIndex!==null?R(_,{candidate:j.candidate.candidate,sdpMid:j.candidate.sdpMid,sdpMLineIndex:j.candidate.sdpMLineIndex},S,a):R(_,{candidate:null},S,a)}catch(te){(B=i.onError)==null||B.call(i,te,{streamId:_})}},P.onopen=()=>{u=!0,(!H||l)&&X()};const ye=j=>{var B;(B=i.onVideoIdChange)==null||B.call(i,j)};function Oe(j,B){if(j===ne.StreamStarted&&typeof B=="object"&&"metadata"in B){const te=B.metadata;ye(te.videoId)}j===ne.StreamDone&&ye(null),h=j===ne.StreamStarted?Q.Start:Q.Stop,ua({statsSignal:L===tt.Legacy?f:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:L,log:o})}function de(j,B){var Le;const te=typeof B=="string"?B:B==null?void 0:B.metadata;te&&c.enrich({streamMetadata:te}),(Le=i.onStreamReady)==null||Le.call(i)}const fe={[ne.StreamStarted]:Oe,[ne.StreamDone]:Oe,[ne.StreamReady]:de};P.onmessage=j=>{var Le;const{subject:B,data:te}=d(j.data);(Le=fe[B])==null||Le.call(fe,B,te)},b.oniceconnectionstatechange=()=>{var B;o("peerConnection.oniceconnectionstatechange => "+b.iceConnectionState);const j=la(b.iceConnectionState);j!==se.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,j))},b.ontrack=j=>{var B;o("peerConnection.ontrack",j),o("CALLBACK: onSrcObjectReady"),(B=i.onSrcObjectReady)==null||B.call(i,j.streams[0])},await b.setRemoteDescription(y),o("set remote description OK");const xe=await b.createAnswer();return o("create answer OK"),await b.setLocalDescription(xe),o("set local description OK"),await v(_,xe,S,a),o("start connection OK"),{speak(j){return g(_,S,j)},async disconnect(){var j;if(_){const B=la(b.iceConnectionState);if(b){if(B===se.New){ee.stop();return}b.close(),b.oniceconnectionstatechange=null,b.onnegotiationneeded=null,b.onicecandidate=null,b.ontrack=null}try{B===se.Connected&&await C(_,S).catch(te=>{})}catch(te){o("Error on close stream connection",te)}(j=i.onAgentActivityStateChange)==null||j.call(i,Ee.Idle),ee.stop()}},sendDataChannelMessage(j){var B,te;if(!l||P.readyState!=="open"){o("Data channel is not ready for sending messages"),(B=i.onError)==null||B.call(i,new Error("Data channel is not ready for sending messages"),{streamId:_});return}try{P.send(j)}catch(Le){o("Error sending data channel message",Le),(te=i.onError)==null||te.call(i,Le,{streamId:_})}},sessionId:S,streamId:_,streamType:L,interruptAvailable:F??!1,isInterruptible:!0,triggersAvailable:U??!1}}var sr=(n=>(n.V1="v1",n.V2="v2",n))(sr||{});async function lu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...c}=e;return du(r,c,t,i)}case"v2":{const{version:s,...c}=e;switch(c.transport.provider){case ti.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>Gl);return a(r,c,t);default:throw new Error(`Unsupported transport provider: ${c.transport.provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const uu="cht";function hu(){return{transport:{provider:ti.Livekit}}}function mu(n){var r,s;const{streamOptions:e}=n??{},t=((r=n==null?void 0:n.mixpanelAdditionalProperties)==null?void 0:r.plan)!==void 0?{plan:(s=n.mixpanelAdditionalProperties)==null?void 0:s.plan}:void 0;return{...{output_resolution:e==null?void 0:e.outputResolution,session_timeout:e==null?void 0:e.sessionTimeout,stream_warmup:e==null?void 0:e.streamWarmup,compatibility_mode:e==null?void 0:e.compatibilityMode,fluent:e==null?void 0:e.fluent},...t&&{end_user_data:t}}}function fu(n,e){return Yi(n.presenter.type)?{version:sr.V2,...hu()}:{version:sr.V1,...mu(e)}}function pu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function gu(n,e,t,i,r){r===tt.Fluent?vu(n,e,t,i,r):yu(n,e,t,i,r)}function vu(n,e,t,i,r){n===Q.Start?i.track("stream-session",{event:"start","stream-type":r}):n===Q.Stop&&i.track("stream-session",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t})}function ha(n,e,t,i,r){n===Q.Start?t.linkTrack("agent-video",{event:"start",...r,"stream-type":i},"start",[ne.StreamVideoCreated]):n===Q.Stop&&t.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":i},"done",[ne.StreamVideoDone])}function yu(n,e,t,i,r){n===Q.Start?i.linkTrack("agent-video",{event:"start",latency:lt.get(!0),"stream-type":r},"start",[ne.StreamVideoCreated]):n===Q.Stop&&i.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t},"done",[ne.StreamVideoDone])}function ma(n,e,t,i){return lt.reset(),na.update(),new Promise(async(r,s)=>{try{let c,a=!1;const o=fu(n,e);t.enrich({"stream-version":o.version.toString()});let d=null;const l=n.presenter.type==="expressive";c=await lu(n,o,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onConnectionStateChange)==null||v.call(f,u),pu(u,h,t),u===se.Connected&&(c?r(c):a=!0)},onVideoStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onVideoStateChange)==null||v.call(f,u),gu(u,n,h,t,c.streamType)},onAgentActivityStateChange:u=>{var h,f;(f=(h=e.callbacks).onAgentActivityStateChange)==null||f.call(h,u),u===Ee.Talking?(nr.update(),d=v=>{ha(Q.Start,n,t,c.streamType,v),d=null},l||d({latency:lt.get(!0)})):(nr.reset(),d=null,ha(Q.Stop,n,t,c.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=na.get(!0);t.track("agent-chat",{event:"ready",latency:u})}}},i),a&&r(c)}catch(c){s(c)}})}async function bu(n,e,t,i,r){var l,u,h,f;const s=async()=>{if(Yi(n.presenter.type)){const v=await ma(n,e,i),g=`${uu}_${v.sessionId}`,C=new Date().toISOString();return{chatResult:{chatMode:Ce.Functional,chat:{id:g,agent_id:n.id,owner_id:n.owner_id??"",created:C,modified:C,agent_id__created_at:C,agent_id__modified_at:C,chat_mode:Ce.Functional,messages:[]}},streamingManager:v}}else{const v=new AbortController,g=v.signal;let C;try{const T=ra(n,t,i,e.mode,e.persistentChat,r),R=ma(n,e,i,g).then(k=>(C=k,k)),[_,y]=await Promise.all([T,R]);return{chatResult:_,streamingManager:y}}catch(T){throw v.abort(),C&&await C.disconnect().catch(()=>{}),T}}},{chatResult:c,streamingManager:a}=await s(),{chat:o,chatMode:d}=c;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(u=(l=e.callbacks).onModeChange)==null||u.call(l,d),d!==Ce.Functional)?((f=(h=e.callbacks).onError)==null||f.call(h,new Bs(d)),a==null||a.disconnect(),{chat:o}):{chat:o,streamingManager:a}}async function ku(n,e){var S,x,F,U;let t=!0,i=null;const r=e.mixpanelKey||vl,s=e.wsURL||gl,c=e.baseURL||Cn,a=e.mode||Ce.Functional,o={messages:[],chatMode:a},d=Ml({token:r,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),l=Date.now();ta(()=>{d.track("agent-sdk",{event:"init"},l)});const u=wl(e.auth,c,e.callbacks.onError,e.externalId),h=await u.getById(n);e.debug=e.debug||((S=h==null?void 0:h.advanced_settings)==null?void 0:S.ui_debug_mode);const f=Yi(h.presenter.type);d.enrich(_l(h));const{onMessage:v,clearQueue:g}=iu(d,o,e,h,()=>{var b,P,L;(b=o.socketManager)==null||b.disconnect(),(L=(P=e.callbacks).onConnectionStateChange)==null||L.call(P,se.Disconnected)});o.messages=Al(e.initialMessages),(F=(x=e.callbacks).onNewMessage)==null||F.call(x,[...o.messages],"answer");const C=b=>{i=b},T=({type:b})=>{var L,H,Y,X;if(!((L=o.streamingManager)!=null&&L.isInterruptible))return;const P=o.messages[o.messages.length-1];d.track("agent-video-interrupt",{type:b||"click",video_duration_to_interrupt:nr.get(!0),message_duration_to_interrupt:lt.get(!0)}),P.interrupted=!0,(Y=(H=e.callbacks).onNewMessage)==null||Y.call(H,[...o.messages],"answer"),f?Ql(o.streamingManager):(zl(o.streamingManager,(X=o.streamingManager)==null?void 0:X.streamType,i),$l(o.streamingManager,i))},R=Date.now();ta(()=>{d.track("agent-sdk",{event:"loaded",...Rl(h)},R)});async function _(b){var ee,ye,Oe,de,fe,xe,Ge;(ye=(ee=e.callbacks).onConnectionStateChange)==null||ye.call(ee,se.Connecting),lt.reset(),b&&!t&&(delete o.chat,(de=(Oe=e.callbacks).onNewMessage)==null||de.call(Oe,[...o.messages],"answer"));const P=a===Ce.DirectPlayback||f?Promise.resolve(void 0):Zl(e.auth,s,{onMessage:v,onError:e.callbacks.onError},e.externalId),L=Xi(()=>bu(h,{...e,mode:a,callbacks:{...e.callbacks,onVideoIdChange:C,onMessage:v,onInterruptDetected:T}},u,d,o.chat),{limit:3,timeout:fl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:j=>(j==null?void 0:j.message)!=="Could not connect"&&j.status!==429&&(j==null?void 0:j.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(j=>{var B,te;throw k(Ce.Maintenance),(te=(B=e.callbacks).onConnectionStateChange)==null||te.call(B,se.Fail),j}),[H,{streamingManager:Y,chat:X}]=await Promise.all([P,L]);X&&X.id!==((fe=o.chat)==null?void 0:fe.id)&&((Ge=(xe=e.callbacks).onNewChat)==null||Ge.call(xe,X.id)),o.streamingManager=Y,o.socketManager=H,o.chat=X,t=!1,d.enrich({chatId:X==null?void 0:X.id,streamId:Y==null?void 0:Y.streamId,mode:o.chatMode}),k((X==null?void 0:X.chat_mode)??a)}async function y(){var b,P,L,H;(b=o.socketManager)==null||b.disconnect(),await((P=o.streamingManager)==null?void 0:P.disconnect()),delete o.streamingManager,delete o.socketManager,(H=(L=e.callbacks).onConnectionStateChange)==null||H.call(L,se.Disconnected)}async function k(b){var P,L;b!==o.chatMode&&(d.track("agent-mode-change",{mode:b}),o.chatMode=b,o.chatMode!==Ce.Functional&&await y(),(L=(P=e.callbacks).onModeChange)==null||L.call(P,b))}return{agent:h,getStreamType:()=>{var b;return(b=o.streamingManager)==null?void 0:b.streamType},getIsInterruptAvailable:()=>{var b;return((b=o.streamingManager)==null?void 0:b.interruptAvailable)??!1},getIsTriggersAvailable:()=>{var b;return((b=o.streamingManager)==null?void 0:b.triggersAvailable)??!1},starterMessages:((U=h.knowledge)==null?void 0:U.starter_message)||[],getSTTToken:()=>u.getSTTToken(h.id),changeMode:k,enrichAnalytics:d.enrich,async connect(){await _(!0),d.track("agent-chat",{event:"connect",mode:o.chatMode})},async reconnect(){const b=o.streamingManager;if(f&&(b!=null&&b.reconnect)){try{await b.reconnect(),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})}catch{await y(),await _(!1)}return}await y(),await _(!1),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})},async disconnect(){await y(),d.track("agent-chat",{event:"disconnect",mode:o.chatMode})},async publishMicrophoneStream(b){var P;if(!((P=o.streamingManager)!=null&&P.publishMicrophoneStream))throw new Error("publishMicrophoneStream is not available for this streaming manager");return o.streamingManager.publishMicrophoneStream(b)},async unpublishMicrophoneStream(){var b;if(!((b=o.streamingManager)!=null&&b.unpublishMicrophoneStream))throw new Error("unpublishMicrophoneStream is not available for this streaming manager");return o.streamingManager.unpublishMicrophoneStream()},async publishCameraStream(b){var P;if(!((P=o.streamingManager)!=null&&P.publishCameraStream))throw new Error("publishCameraStream is not available for this streaming manager");return o.streamingManager.publishCameraStream(b)},async unpublishCameraStream(){var b;if(!((b=o.streamingManager)!=null&&b.unpublishCameraStream))throw new Error("unpublishCameraStream is not available for this streaming manager");return o.streamingManager.unpublishCameraStream()},async chat(b){var Y,X,ee,ye,Oe;const P=()=>{if(Xs(a))throw new qt(`${a} is enabled, chat is disabled`);if(b.length>=800)throw new qt("Message cannot be more than 800 characters");if(b.length===0)throw new qt("Message cannot be empty");if(o.chatMode===Ce.Maintenance)throw new qt("Chat is in maintenance mode");if(![Ce.TextOnly,Ce.Playground].includes(o.chatMode)){if(!o.streamingManager)throw new qt("Streaming manager is not initialized");if(!o.chat)throw new qt("Chat is not initialized")}},L=async()=>{var de,fe;if(!o.chat){const xe=await ra(h,u,d,o.chatMode,e.persistentChat);if(!xe.chat)throw new Vt(o.chatMode,!!e.persistentChat);o.chat=xe.chat,(fe=(de=e.callbacks).onNewChat)==null||fe.call(de,o.chat.id)}return o.chat.id},H=async(de,fe)=>{const xe=o.chatMode===Ce.Playground;return Xi(f&&!xe?async()=>{var B,te;return await((te=(B=o.streamingManager)==null?void 0:B.sendTextMessage)==null?void 0:te.call(B,b)),Promise.resolve({})}:async()=>{var B,te;return u.chat(h.id,fe,{chatMode:o.chatMode,streamId:(B=o.streamingManager)==null?void 0:B.streamId,sessionId:(te=o.streamingManager)==null?void 0:te.sessionId,messages:de.map(({matches:Le,...Tn})=>Tn)},{...ia(o.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:B=>{var Tn,Gi,zi,$i;const te=(Tn=B==null?void 0:B.message)==null?void 0:Tn.includes("missing or invalid session_id");return!((Gi=B==null?void 0:B.message)==null?void 0:Gi.includes("Stream Error"))&&!te?(($i=(zi=e.callbacks).onError)==null||$i.call(zi,B),!1):!0},onRetry:async()=>{await y(),await _(!1)}})};try{g(),P(),o.messages.push({id:nn(),role:"user",content:b,created_at:new Date(lt.update()).toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"user");const de=await L(),fe=await H([...o.messages],de);return o.messages.push({id:nn(),role:"assistant",content:fe.result||"",created_at:new Date().toISOString(),context:fe.context,matches:fe.matches}),d.track("agent-message-send",{event:"success",messages:o.messages.length+1}),fe.result&&((ye=(ee=e.callbacks).onNewMessage)==null||ye.call(ee,[...o.messages],"answer"),d.track("agent-message-received",{latency:lt.get(!0),messages:o.messages.length})),fe}catch(de){throw((Oe=o.messages[o.messages.length-1])==null?void 0:Oe.role)==="assistant"&&o.messages.pop(),d.track("agent-message-send",{event:"error",messages:o.messages.length}),de}},rate(b,P,L){var X,ee,ye,Oe;const H=o.messages.find(de=>de.id===b);if(o.chat){if(!H)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const Y=((X=H.matches)==null?void 0:X.map(de=>[de.document_id,de.id]))??[];return d.track("agent-rate",{event:L?"update":"create",thumb:P===1?"up":"down",knowledge_id:((ee=h.knowledge)==null?void 0:ee.id)??"",matches:Y,score:P}),L?u.updateRating(h.id,o.chat.id,L,{knowledge_id:((ye=h.knowledge)==null?void 0:ye.id)??"",message_id:b,matches:Y,score:P}):u.createRating(h.id,o.chat.id,{knowledge_id:((Oe=h.knowledge)==null?void 0:Oe.id)??"",message_id:b,matches:Y,score:P})},deleteRate(b){if(!o.chat)throw new Error("Chat is not initialized");return d.track("agent-rate-delete",{type:"text"}),u.deleteRating(h.id,o.chat.id,b)},async speak(b){var Y,X,ee;function P(){if(typeof b=="string"){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:b,ssml:!1}}if(b.type==="text"&&!b.provider){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:b.input,ssml:b.ssml}}return b}const L=P();if(d.track("agent-speak",L),lt.update(),o.messages&&L.type==="text"&&(o.messages.push({id:nn(),role:"assistant",content:L.input,created_at:new Date().toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"answer")),Tl(o.chatMode))return{duration:0,video_id:"",status:"success"};if(!o.streamingManager)throw new Error("Please connect to the agent first");return o.streamingManager.speak({script:L,metadata:{chat_id:(ee=o.chat)==null?void 0:ee.id,agent_id:h.id}})},interrupt:T}}function Tu(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var Su=Object.defineProperty,Cu=(n,e,t)=>e in n?Su(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,fa=(n,e,t)=>Cu(n,typeof e!="symbol"?e+"":e,t);class Pe{constructor(){fa(this,"_locking"),fa(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const t=new Promise(r=>e=()=>{this._locks-=1,r()}),i=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),i}}function pe(n,e){if(!n)throw new Error(e)}const Eu=34028234663852886e22,wu=-34028234663852886e22,Ru=4294967295,_u=2147483647,Pu=-2147483648;function ii(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>_u||n<Pu)throw new Error("invalid int 32: "+n)}function ar(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>Ru||n<0)throw new Error("invalid uint 32: "+n)}function pa(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Eu||n<wu))throw new Error("invalid float 32: "+n)}const ga=Symbol("@bufbuild/protobuf/enum-type");function Iu(n){const e=n[ga];return pe(e,"missing enum type on enum object"),e}function va(n,e,t,i){n[ga]=ya(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function ya(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const c of e){const a=ba(c);s.push(a),i[c.name]=a,r[c.no]=a}return{typeName:n,values:s,findName(c){return i[c]},findNumber(c){return r[c]}}}function Ou(n,e,t){const i={};for(const r of e){const s=ba(r);i[s.localName]=s.no,i[s.no]=s.localName}return va(i,n,e),i}function ba(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class or{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),r=i.runtime.bin,s=r.makeReadOptions(t);return r.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,t){const i=this.getType(),r=i.runtime.json,s=r.makeReadOptions(t);return r.readMessage(i,e,s,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(r){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(r instanceof Error?r.message:String(r)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,r=i.makeWriteOptions(e),s=r.writerFactory();return i.writeMessage(this,s,r),s.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,r=i.makeWriteOptions(e);return i.writeMessage(this,r)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function Mu(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),c={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(c.prototype,new or),Object.assign(c,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,o){return new c().fromBinary(a,o)},fromJson(a,o){return new c().fromJson(a,o)},fromJsonString(a,o){return new c().fromJsonString(a,o)},equals(a,o){return n.util.equals(c,a,o)}}),c}function Du(){let n=0,e=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(n|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,!(t&128))return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function cr(n,e,t){for(let s=0;s<28;s=s+7){const c=n>>>s,a=!(!(c>>>7)&&e==0),o=(a?c|128:c)&255;if(t.push(o),!a)return}const i=n>>>28&15|(e&7)<<4,r=!!(e>>3);if(t.push((r?i|128:i)&255),!!r){for(let s=3;s<31;s=s+7){const c=e>>>s,a=!!(c>>>7),o=(a?c|128:c)&255;if(t.push(o),!a)return}t.push(e>>>31&1)}}const ri=4294967296;function ka(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(c,a){const o=Number(n.slice(c,a));r*=t,i=i*t+o,i>=ri&&(r=r+(i/ri|0),i=i%ri)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Sa(i,r):dr(i,r)}function Au(n,e){let t=dr(n,e);const i=t.hi&2147483648;i&&(t=Sa(t.lo,t.hi));const r=Ta(t.lo,t.hi);return i?"-"+r:r}function Ta(n,e){if({lo:n,hi:e}=xu(n,e),e<=2097151)return String(ri*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,c=i+r*8147497,a=r*2;const o=1e7;return s>=o&&(c+=Math.floor(s/o),s%=o),c>=o&&(a+=Math.floor(c/o),c%=o),a.toString()+Ca(c)+Ca(s)}function xu(n,e){return{lo:n>>>0,hi:e>>>0}}function dr(n,e){return{lo:n|0,hi:e|0}}function Sa(n,e){return e=~e,n?n=~n+1:e+=1,dr(n,e)}const Ca=n=>{const e=String(n);return"0000000".slice(e.length)+e};function Ea(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function Lu(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Nu(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),c=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error("int64 invalid: ".concat(o));return d},uParse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>a||d<c)throw new Error("uint64 invalid: ".concat(o));return d},enc(o){return n.setBigInt64(0,this.parse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(o){return n.setBigInt64(0,this.uParse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>pe(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>pe(/^[0-9]+$/.test(r),"uint64 invalid: ".concat(r));return{zero:"0",supported:!1,parse(r){return typeof r!="string"&&(r=r.toString()),t(r),r},uParse(r){return typeof r!="string"&&(r=r.toString()),i(r),r},enc(r){return typeof r!="string"&&(r=r.toString()),t(r),ka(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),ka(r)},dec(r,s){return Au(r,s)},uDec(r,s){return Ta(r,s)}}}const ue=Nu();var w;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(w||(w={}));var Mt;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Mt||(Mt={}));function Dt(n,e,t){if(e===t)return!0;if(n==w.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}switch(n){case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==t}return!1}function rn(n,e){switch(n){case w.BOOL:return!1;case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==0?ue.zero:"0";case w.DOUBLE:case w.FLOAT:return 0;case w.BYTES:return new Uint8Array(0);case w.STRING:return"";default:return 0}}function wa(n,e){switch(n){case w.BOOL:return e===!1;case w.STRING:return e==="";case w.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var be;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(be||(be={}));class Uu{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),i=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(ar(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ii(e),Ea(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){pa(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){ar(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ii(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ii(e),e=(e<<1^e>>31)>>>0,Ea(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ue.enc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ue.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=ue.enc(e);return cr(t.lo,t.hi,this.buf),this}sint64(e){let t=ue.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return cr(r,s,this.buf),this}uint64(e){let t=ue.uEnc(e);return cr(t.lo,t.hi,this.buf),this}}class Fu{constructor(e,t){this.varint64=Du,this.uint32=Lu,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case be.Varint:for(;this.buf[this.pos++]&128;);break;case be.Bit64:this.pos+=4;case be.Bit32:this.pos+=4;break;case be.LengthDelimited:let r=this.uint32();this.pos+=r;break;case be.StartGroup:for(;;){const[s,c]=this.tag();if(c===be.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(c,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return ue.dec(...this.varint64())}uint64(){return ue.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,ue.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return ue.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return ue.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function Bu(n,e,t,i){let r;return{typeName:e,extendee:t,get field(){if(!r){const s=typeof i=="function"?i():i;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),r=n.util.newFieldList([s]).list()[0]}return r},runtime:n}}function Ra(n){const e=n.field.localName,t=Object.create(null);return t[e]=ju(n),[t,()=>t[e]]}function ju(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return rn(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function Vu(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let kt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),si=[];for(let n=0;n<kt.length;n++)si[kt[n].charCodeAt(0)]=n;si[45]=kt.indexOf("+"),si[95]=kt.indexOf("/");const _a={dec(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),i=0,r=0,s,c=0;for(let a=0;a<n.length;a++){if(s=si[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
2
2
  `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:c=s,r=1;break;case 1:t[i++]=c<<2|(s&48)>>4,c=s,r=2;break;case 2:t[i++]=(c&15)<<4|(s&60)>>2,c=s,r=3;break;case 3:t[i++]=(c&3)<<6|s,r=0;break}}if(r==1)throw Error("invalid base64 string.");return t.subarray(0,i)},enc(n){let e="",t=0,i,r=0;for(let s=0;s<n.length;s++)switch(i=n[s],t){case 0:e+=kt[i>>2],r=(i&3)<<4,t=1;break;case 1:e+=kt[r|i>>4],r=(i&15)<<2,t=2;break;case 2:e+=kt[r|i>>6],e+=kt[i&63],t=0;break}return t&&(e+=kt[r],e+="=",t==1&&(e+="=")),e}};function qu(n,e,t){Ia(e,n);const i=e.runtime.bin.makeReadOptions(t),r=Vu(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,c]=Ra(e);for(const a of r)e.runtime.bin.readField(s,i.readerFactory(a.data),e.field,a.wireType,i);return c()}function Ku(n,e,t,i){Ia(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(Pa(n,e)){const d=n.getType().runtime.bin.listUnknownFields(n).filter(l=>l.no!=e.field.no);n.getType().runtime.bin.discardUnknownFields(n);for(const l of d)n.getType().runtime.bin.onUnknownField(n,l.no,l.wireType,l.data)}const c=s.writerFactory();let a=e.field;!a.opt&&!a.repeated&&(a.kind=="enum"||a.kind=="scalar")&&(a=Object.assign(Object.assign({},e.field),{opt:!0})),e.runtime.bin.writeField(a,t,c,s);const o=r.readerFactory(c.finish());for(;o.pos<o.len;){const[d,l]=o.tag(),u=o.skip(l,d);n.getType().runtime.bin.onUnknownField(n,d,l,u)}}function Pa(n,e){const t=n.getType();return e.extendee.typeName===t.typeName&&!!t.runtime.bin.listUnknownFields(n).find(i=>i.no==e.field.no)}function Ia(n,e){pe(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function Oa(n,e){const t=n.localName;if(n.repeated)return e[t].length>0;if(n.oneof)return e[n.oneof.localName].case===t;switch(n.kind){case"enum":case"scalar":return n.opt||n.req?e[t]!==void 0:n.kind=="enum"?e[t]!==n.T.values[0].no:!wa(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function Ma(n,e){const t=n.localName,i=!n.opt&&!n.req;if(n.repeated)e[t]=[];else if(n.oneof)e[n.oneof.localName]={case:void 0};else switch(n.kind){case"map":e[t]={};break;case"enum":e[t]=i?n.T.values[0].no:void 0;break;case"scalar":e[t]=i?rn(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function Tt(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(or.prototype).every(i=>i in n&&typeof n[i]=="function"))return!1;const t=n.getType();return t===null||typeof t!="function"||!("typeName"in t)||typeof t.typeName!="string"?!1:e===void 0?!0:t.typeName==e.typeName}function Da(n,e){return Tt(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}w.DOUBLE,w.FLOAT,w.INT64,w.UINT64,w.INT32,w.UINT32,w.BOOL,w.STRING,w.BYTES;const Aa={ignoreUnknownFields:!1},xa={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Wu(n){return n?Object.assign(Object.assign({},Aa),n):Aa}function Hu(n){return n?Object.assign(Object.assign({},xa),n):xa}const ai=Symbol(),oi=Symbol();function Ju(){return{makeReadOptions:Wu,makeWriteOptions:Hu,readMessage(n,e,t,i){if(e==null||Array.isArray(e)||typeof e!="object")throw new Error("cannot decode message ".concat(n.typeName," from JSON: ").concat(ut(e)));i=i??new n;const r=new Map,s=t.typeRegistry;for(const[c,a]of Object.entries(e)){const o=n.fields.findJsonName(c);if(o){if(o.oneof){if(a===null&&o.kind=="scalar")continue;const d=r.get(o.oneof);if(d!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(o.oneof.name,'" present: "').concat(d,'", "').concat(c,'"'));r.set(o.oneof,c)}La(i,a,o,t,n)}else{let d=!1;if(s!=null&&s.findExtension&&c.startsWith("[")&&c.endsWith("]")){const l=s.findExtension(c.substring(1,c.length-1));if(l&&l.extendee.typeName==n.typeName){d=!0;const[u,h]=Ra(l);La(u,a,l.field,t,l),Ku(i,l,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(c,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!Oa(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!zu(r))continue}const c=r.oneof?n[r.oneof.localName].value:n[r.localName],a=Na(r,c,e);a!==void 0&&(i[e.useProtoFieldName?r.name:r.jsonName]=a)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const c of t.runtime.bin.listUnknownFields(n)){const a=s.findExtensionFor(t.typeName,c.no);if(a&&Pa(n,a)){const o=qu(n,a,e),d=Na(a.field,o,e);d!==void 0&&(i[a.field.jsonName]=d)}}}catch(s){const c=r?"cannot encode field ".concat(t.typeName,".").concat(r.name," to JSON"):"cannot encode message ".concat(t.typeName," to JSON"),a=s instanceof Error?s.message:String(s);throw new Error(c+(a.length>0?": ".concat(a):""))}return i},readScalar(n,e,t){return Rn(n,e,t??Mt.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||wa(n,e)))return ci(n,e)},debug:ut}}function ut(n){if(n===null)return"null";switch(typeof n){case"object":return Array.isArray(n)?"array":"object";case"string":return n.length>100?"string":'"'.concat(n.split('"').join('\\"'),'"');default:return String(n)}}function La(n,e,t,i,r){let s=t.localName;if(t.repeated){if(pe(t.kind!="map"),e===null)return;if(!Array.isArray(e))throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e)));const c=n[s];for(const a of e){if(a===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(a)));switch(t.kind){case"message":c.push(t.T.fromJson(a,i));break;case"enum":const o=lr(t.T,a,i.ignoreUnknownFields,!0);o!==oi&&c.push(o);break;case"scalar":try{c.push(Rn(t.T,a,t.L,!0))}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(a));throw d instanceof Error&&d.message.length>0&&(l+=": ".concat(d.message)),new Error(l)}break}}}else if(t.kind=="map"){if(e===null)return;if(typeof e!="object"||Array.isArray(e))throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e)));const c=n[s];for(const[a,o]of Object.entries(e)){if(o===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: map value null"));let d;try{d=Gu(t.K,a)}catch(l){let u="cannot decode map key for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e));throw l instanceof Error&&l.message.length>0&&(u+=": ".concat(l.message)),new Error(u)}switch(t.V.kind){case"message":c[d]=t.V.T.fromJson(o,i);break;case"enum":const l=lr(t.V.T,o,i.ignoreUnknownFields,!0);l!==oi&&(c[d]=l);break;case"scalar":try{c[d]=Rn(t.V.T,o,Mt.BIGINT,!0)}catch(u){let h="cannot decode map value for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e));throw u instanceof Error&&u.message.length>0&&(h+=": ".concat(u.message)),new Error(h)}break}}}else switch(t.oneof&&(n=n[t.oneof.localName]={case:s},s="value"),t.kind){case"message":const c=t.T;if(e===null&&c.typeName!="google.protobuf.Value")return;let a=n[s];Tt(a)?a.fromJson(e,i):(n[s]=a=c.fromJson(e,i),c.fieldWrapper&&!t.oneof&&(n[s]=c.fieldWrapper.unwrapField(a)));break;case"enum":const o=lr(t.T,e,i.ignoreUnknownFields,!1);switch(o){case ai:Ma(t,n);break;case oi:break;default:n[s]=o;break}break;case"scalar":try{const d=Rn(t.T,e,t.L,!1);switch(d){case ai:Ma(t,n);break;default:n[s]=d;break}}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e));throw d instanceof Error&&d.message.length>0&&(l+=": ".concat(d.message)),new Error(l)}break}}function Gu(n,e){if(n===w.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return Rn(n,e,Mt.BIGINT,!0).toString()}function Rn(n,e,t,i){if(e===null)return i?rn(n,t):ai;switch(n){case w.DOUBLE:case w.FLOAT:if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;const r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return n==w.FLOAT&&pa(r),r;case w.INT32:case w.FIXED32:case w.SFIXED32:case w.SINT32:case w.UINT32:let s;if(typeof e=="number"?s=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(s=Number(e)),s===void 0)break;return n==w.UINT32||n==w.FIXED32?ar(s):ii(s),s;case w.INT64:case w.SFIXED64:case w.SINT64:if(typeof e!="number"&&typeof e!="string")break;const c=ue.parse(e);return t?c.toString():c;case w.FIXED64:case w.UINT64:if(typeof e!="number"&&typeof e!="string")break;const a=ue.uParse(e);return t?a.toString():a;case w.BOOL:if(typeof e!="boolean")break;return e;case w.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case w.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return _a.dec(e)}throw new Error}function lr(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:ai;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":const r=n.findName(e);if(r!==void 0)return r.no;if(t)return oi;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(ut(e)))}function zu(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function Na(n,e,t){if(n.kind=="map"){pe(typeof e=="object"&&e!=null);const i={},r=Object.entries(e);switch(n.V.kind){case"scalar":for(const[c,a]of r)i[c.toString()]=ci(n.V.T,a);break;case"message":for(const[c,a]of r)i[c.toString()]=a.toJson(t);break;case"enum":const s=n.V.T;for(const[c,a]of r)i[c.toString()]=ur(s,a,t.enumAsInteger);break}return t.emitDefaultValues||r.length>0?i:void 0}if(n.repeated){pe(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let r=0;r<e.length;r++)i.push(ci(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(ur(n.T,e[r],t.enumAsInteger));break;case"message":for(let r=0;r<e.length;r++)i.push(e[r].toJson(t));break}return t.emitDefaultValues||i.length>0?i:void 0}switch(n.kind){case"scalar":return ci(n.T,e);case"enum":return ur(n.T,e,t.enumAsInteger);case"message":return Da(n.T,e).toJson(t)}}function ur(n,e,t){var i;if(pe(typeof e=="number"),n.typeName=="google.protobuf.NullValue")return null;if(t)return e;const r=n.findNumber(e);return(i=r==null?void 0:r.name)!==null&&i!==void 0?i:e}function ci(n,e){switch(n){case w.INT32:case w.SFIXED32:case w.SINT32:case w.FIXED32:case w.UINT32:return pe(typeof e=="number"),e;case w.FLOAT:case w.DOUBLE:return pe(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case w.STRING:return pe(typeof e=="string"),e;case w.BOOL:return pe(typeof e=="boolean"),e;case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return pe(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case w.BYTES:return pe(e instanceof Uint8Array),_a.enc(e)}}const sn=Symbol("@bufbuild/protobuf/unknown-fields"),Ua={readUnknownFields:!0,readerFactory:n=>new Fu(n)},Fa={writeUnknownFields:!0,writerFactory:()=>new Uu};function $u(n){return n?Object.assign(Object.assign({},Ua),n):Ua}function Qu(n){return n?Object.assign(Object.assign({},Fa),n):Fa}function Yu(){return{makeReadOptions:$u,makeWriteOptions:Qu,listUnknownFields(n){var e;return(e=n[sn])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[sn]},writeUnknownFields(n,e){const i=n[sn];if(i)for(const r of i)e.tag(r.no,r.wireType).raw(r.data)},onUnknownField(n,e,t,i){const r=n;Array.isArray(r[sn])||(r[sn]=[]),r[sn].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),c=r?e.len:e.pos+t;let a,o;for(;e.pos<c&&([a,o]=e.tag(),!(r===!0&&o==be.EndGroup));){const d=s.fields.find(a);if(!d){const l=e.skip(o,a);i.readUnknownFields&&this.onUnknownField(n,a,o,l);continue}Ba(n,e,d,o,i)}if(r&&(o!=be.EndGroup||a!==t))throw new Error("invalid end group tag")},readField:Ba,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!Oa(r,n)){if(r.req)throw new Error("cannot encode field ".concat(i.typeName,".").concat(r.name," to binary: required field not set"));continue}const s=r.oneof?n[r.oneof.localName].value:n[r.localName];ja(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&ja(n,e,t,i)}}}function Ba(n,e,t,i,r){let{repeated:s,localName:c}=t;switch(t.oneof&&(n=n[t.oneof.localName],n.case!=c&&delete n.value,n.case=c,c="value"),t.kind){case"scalar":case"enum":const a=t.kind=="enum"?w.INT32:t.T;let o=li;if(t.kind=="scalar"&&t.L>0&&(o=Zu),s){let h=n[c];if(i==be.LengthDelimited&&a!=w.STRING&&a!=w.BYTES){let v=e.uint32()+e.pos;for(;e.pos<v;)h.push(o(e,a))}else h.push(o(e,a))}else n[c]=o(e,a);break;case"message":const d=t.T;s?n[c].push(di(e,new d,r,t)):Tt(n[c])?di(e,n[c],r,t):(n[c]=di(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[c]=d.fieldWrapper.unwrapField(n[c])));break;case"map":let[l,u]=Xu(t,e,r);n[c][l]=u;break}}function di(n,e,t,i){const r=e.getType().runtime.bin,s=i==null?void 0:i.delimited;return r.readMessage(e,n,s?i.no:n.uint32(),t,s),e}function Xu(n,e,t){const i=e.uint32(),r=e.pos+i;let s,c;for(;e.pos<r;){const[a]=e.tag();switch(a){case 1:s=li(e,n.K);break;case 2:switch(n.V.kind){case"scalar":c=li(e,n.V.T);break;case"enum":c=e.int32();break;case"message":c=di(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=rn(n.K,Mt.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),c===void 0)switch(n.V.kind){case"scalar":c=rn(n.V.T,Mt.BIGINT);break;case"enum":c=n.V.T.values[0].no;break;case"message":c=new n.V.T;break}return[s,c]}function Zu(n,e){const t=li(n,e);return typeof t=="bigint"?t.toString():t}function li(n,e){switch(e){case w.STRING:return n.string();case w.BOOL:return n.bool();case w.DOUBLE:return n.double();case w.FLOAT:return n.float();case w.INT32:return n.int32();case w.INT64:return n.int64();case w.UINT64:return n.uint64();case w.FIXED64:return n.fixed64();case w.BYTES:return n.bytes();case w.FIXED32:return n.fixed32();case w.SFIXED32:return n.sfixed32();case w.SFIXED64:return n.sfixed64();case w.SINT64:return n.sint64();case w.UINT32:return n.uint32();case w.SINT32:return n.sint32()}}function ja(n,e,t,i){pe(e!==void 0);const r=n.repeated;switch(n.kind){case"scalar":case"enum":let s=n.kind=="enum"?w.INT32:n.T;if(r)if(pe(Array.isArray(e)),n.packed)th(t,s,n.no,e);else for(const c of e)_n(t,s,n.no,c);else _n(t,s,n.no,e);break;case"message":if(r){pe(Array.isArray(e));for(const c of e)Va(t,i,n,c)}else Va(t,i,n,e);break;case"map":pe(typeof e=="object"&&e!=null);for(const[c,a]of Object.entries(e))eh(t,i,n,c,a);break}}function eh(n,e,t,i,r){n.tag(t.no,be.LengthDelimited),n.fork();let s=i;switch(t.K){case w.INT32:case w.FIXED32:case w.UINT32:case w.SFIXED32:case w.SINT32:s=Number.parseInt(i);break;case w.BOOL:pe(i=="true"||i=="false"),s=i=="true";break}switch(_n(n,t.K,1,s),t.V.kind){case"scalar":_n(n,t.V.T,2,r);break;case"enum":_n(n,w.INT32,2,r);break;case"message":pe(r!==void 0),n.tag(2,be.LengthDelimited).bytes(r.toBinary(e));break}n.join()}function Va(n,e,t,i){const r=Da(t.T,i);t.delimited?n.tag(t.no,be.StartGroup).raw(r.toBinary(e)).tag(t.no,be.EndGroup):n.tag(t.no,be.LengthDelimited).bytes(r.toBinary(e))}function _n(n,e,t,i){pe(i!==void 0);let[r,s]=qa(e);n.tag(t,r)[s](i)}function th(n,e,t,i){if(!i.length)return;n.tag(t,be.LengthDelimited).fork();let[,r]=qa(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function qa(n){let e=be.Varint;switch(n){case w.BYTES:case w.STRING:e=be.LengthDelimited;break;case w.DOUBLE:case w.FIXED64:case w.SFIXED64:e=be.Bit64;break;case w.FIXED32:case w.SFIXED32:case w.FLOAT:e=be.Bit32;break}const t=w[n].toLowerCase();return[e,t]}function nh(){return{setEnumType:va,initPartial(n,e){if(n===void 0)return;const t=e.getType();for(const i of t.fields.byMember()){const r=i.localName,s=e,c=n;if(c[r]!=null)switch(i.kind){case"oneof":const a=c[r].case;if(a===void 0)continue;const o=i.findField(a);let d=c[r].value;o&&o.kind=="message"&&!Tt(d,o.T)?d=new o.T(d):o&&o.kind==="scalar"&&o.T===w.BYTES&&(d=Pn(d)),s[r]={case:a,value:d};break;case"scalar":case"enum":let l=c[r];i.T===w.BYTES&&(l=i.repeated?l.map(Pn):Pn(l)),s[r]=l;break;case"map":switch(i.V.kind){case"scalar":case"enum":if(i.V.T===w.BYTES)for(const[f,v]of Object.entries(c[r]))s[r][f]=Pn(v);else Object.assign(s[r],c[r]);break;case"message":const h=i.V.T;for(const f of Object.keys(c[r])){let v=c[r][f];h.fieldWrapper||(v=new h(v)),s[r][f]=v}break}break;case"message":const u=i.T;if(i.repeated)s[r]=c[r].map(h=>Tt(h,u)?h:new u(h));else{const h=c[r];u.fieldWrapper?u.typeName==="google.protobuf.BytesValue"?s[r]=Pn(h):s[r]=h:s[r]=Tt(h,u)?h:new u(h)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(i=>{const r=e[i.localName],s=t[i.localName];if(i.repeated){if(r.length!==s.length)return!1;switch(i.kind){case"message":return r.every((c,a)=>i.T.equals(c,s[a]));case"scalar":return r.every((c,a)=>Dt(i.T,c,s[a]));case"enum":return r.every((c,a)=>Dt(w.INT32,c,s[a]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":let c=r,a=s;return i.T.fieldWrapper&&(c!==void 0&&!Tt(c)&&(c=i.T.fieldWrapper.wrapField(c)),a!==void 0&&!Tt(a)&&(a=i.T.fieldWrapper.wrapField(a))),i.T.equals(c,a);case"enum":return Dt(w.INT32,r,s);case"scalar":return Dt(i.T,r,s);case"oneof":if(r.case!==s.case)return!1;const o=i.findField(r.case);if(o===void 0)return!0;switch(o.kind){case"message":return o.T.equals(r.value,s.value);case"enum":return Dt(w.INT32,r.value,s.value);case"scalar":return Dt(o.T,r.value,s.value)}throw new Error("oneof cannot contain ".concat(o.kind));case"map":const d=Object.keys(r).concat(Object.keys(s));switch(i.V.kind){case"message":const l=i.V.T;return d.every(h=>l.equals(r[h],s[h]));case"enum":return d.every(h=>Dt(w.INT32,r[h],s[h]));case"scalar":const u=i.V.T;return d.every(h=>Dt(u,r[h],s[h]))}break}})},clone(n){const e=n.getType(),t=new e,i=t;for(const r of e.fields.byMember()){const s=n[r.localName];let c;if(r.repeated)c=s.map(ui);else if(r.kind=="map"){c=i[r.localName];for(const[a,o]of Object.entries(s))c[a]=ui(o)}else r.kind=="oneof"?c=r.findField(s.case)?{case:s.case,value:ui(s.value)}:{case:void 0}:c=ui(s);i[r.localName]=c}for(const r of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,r.no,r.wireType,r.data);return t}}}function ui(n){if(n===void 0)return n;if(Tt(n))return n.clone();if(n instanceof Uint8Array){const e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function Pn(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function ih(n,e,t){return{syntax:n,json:Ju(),bin:Yu(),util:Object.assign(Object.assign({},nh()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return Mu(this,i,r,s)},makeEnum:Ou,makeEnumType:ya,getEnumType:Iu,makeExtension(i,r,s){return Bu(this,i,r,s)}}}class rh{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){const t={};for(const i of this.list())t[i.jsonName]=t[i.name]=i;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){const t={};for(const i of this.list())t[i.no]=i;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];const e=this.members;let t;for(const i of this.list())i.oneof?i.oneof!==t&&(t=i.oneof,e.push(t)):e.push(i)}return this.members}}function Ka(n,e){const t=Wa(n);return e?t:lh(dh(t))}function sh(n){return Ka(n,!1)}const ah=Wa;function Wa(n){let e=!1;const t=[];for(let i=0;i<n.length;i++){let r=n.charAt(i);switch(r){case"_":e=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":t.push(r),e=!1;break;default:e&&(e=!1,r=r.toUpperCase()),t.push(r);break}}return t.join("")}const oh=new Set(["constructor","toString","toJSON","valueOf"]),ch=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),Ha=n=>"".concat(n,"$"),dh=n=>ch.has(n)?Ha(n):n,lh=n=>oh.has(n)?Ha(n):n;class uh{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=sh(e)}addField(e){pe(e.oneof===this,"field ".concat(e.name," not one of ").concat(this.name)),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let t=0;t<this.fields.length;t++)this._lookup[this.fields[t].localName]=this.fields[t]}return this._lookup[e]}}function hh(n,e){var t,i,r,s,c,a;const o=[];let d;for(const l of typeof n=="function"?n():n){const u=l;if(u.localName=Ka(l.name,l.oneof!==void 0),u.jsonName=(t=l.jsonName)!==null&&t!==void 0?t:ah(l.name),u.repeated=(i=l.repeated)!==null&&i!==void 0?i:!1,l.kind=="scalar"&&(u.L=(r=l.L)!==null&&r!==void 0?r:Mt.BIGINT),u.delimited=(s=l.delimited)!==null&&s!==void 0?s:!1,u.req=(c=l.req)!==null&&c!==void 0?c:!1,u.opt=(a=l.opt)!==null&&a!==void 0?a:!1,l.packed===void 0&&(u.packed=l.kind=="enum"||l.kind=="scalar"&&l.T!=w.BYTES&&l.T!=w.STRING),l.oneof!==void 0){const h=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!d||d.name!=h)&&(d=new uh(h)),u.oneof=d,d.addField(u)}o.push(u)}return o}const p=ih("proto3",n=>new rh(n,e=>hh(e)),n=>{for(const e of n.getType().fields.byMember()){if(e.opt)continue;const t=e.localName,i=n;if(e.repeated){i[t]=[];continue}switch(e.kind){case"oneof":i[t]={case:void 0};break;case"enum":i[t]=0;break;case"map":i[t]={};break;case"scalar":i[t]=rn(e.T,e.L);break}}});class qe extends or{constructor(e){super(),this.seconds=ue.zero,this.nanos=0,p.util.initPartial(e,this)}fromJson(e,t){if(typeof e!="string")throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(p.json.debug(e)));const i=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!i)throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");const r=Date.parse(i[1]+"-"+i[2]+"-"+i[3]+"T"+i[4]+":"+i[5]+":"+i[6]+(i[8]?i[8]:"Z"));if(Number.isNaN(r))throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");if(r<Date.parse("0001-01-01T00:00:00Z")||r>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");return this.seconds=ue.parse(r/1e3),this.nanos=0,i[7]&&(this.nanos=parseInt("1"+i[7]+"0".repeat(9-i[7].length))-1e9),this}toJson(e){const t=Number(this.seconds)*1e3;if(t<Date.parse("0001-01-01T00:00:00Z")||t>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");if(this.nanos<0)throw new Error("cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative");let i="Z";if(this.nanos>0){const r=(this.nanos+1e9).toString().substring(1);r.substring(3)==="000000"?i="."+r.substring(0,3)+"Z":r.substring(6)==="000"?i="."+r.substring(0,6)+"Z":i="."+r+"Z"}return new Date(t).toISOString().replace(".000Z",i)}toDate(){return new Date(Number(this.seconds)*1e3+Math.ceil(this.nanos/1e6))}static now(){return qe.fromDate(new Date)}static fromDate(e){const t=e.getTime();return new qe({seconds:ue.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return new qe().fromBinary(e,t)}static fromJson(e,t){return new qe().fromJson(e,t)}static fromJsonString(e,t){return new qe().fromJsonString(e,t)}static equals(e,t){return p.util.equals(qe,e,t)}}qe.runtime=p,qe.typeName="google.protobuf.Timestamp",qe.fields=p.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const mh=p.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:qe},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:fh,repeated:!0},{no:5,name:"events",kind:"message",T:gh,repeated:!0}]),fh=p.makeMessageType("livekit.TimeSeriesMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"samples",kind:"message",T:ph,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),ph=p.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:qe},{no:3,name:"value",kind:"scalar",T:2}]),gh=p.makeMessageType("livekit.EventMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"start_timestamp_ms",kind:"scalar",T:3},{no:5,name:"end_timestamp_ms",kind:"scalar",T:3,opt:!0},{no:6,name:"normalized_start_timestamp",kind:"message",T:qe},{no:7,name:"normalized_end_timestamp",kind:"message",T:qe,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),vh=p.makeEnum("livekit.AudioCodec",[{no:0,name:"DEFAULT_AC"},{no:1,name:"OPUS"},{no:2,name:"AAC"},{no:3,name:"AC_MP3"}]),yh=p.makeEnum("livekit.VideoCodec",[{no:0,name:"DEFAULT_VC"},{no:1,name:"H264_BASELINE"},{no:2,name:"H264_MAIN"},{no:3,name:"H264_HIGH"},{no:4,name:"VP8"}]),bh=p.makeEnum("livekit.ImageCodec",[{no:0,name:"IC_DEFAULT"},{no:1,name:"IC_JPEG"}]),Ja=p.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),ze=p.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),Te=p.makeEnum("livekit.TrackSource",[{no:0,name:"UNKNOWN"},{no:1,name:"CAMERA"},{no:2,name:"MICROPHONE"},{no:3,name:"SCREEN_SHARE"},{no:4,name:"SCREEN_SHARE_AUDIO"}]),hr=p.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),In=p.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),On=p.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),$e=p.makeEnum("livekit.DisconnectReason",[{no:0,name:"UNKNOWN_REASON"},{no:1,name:"CLIENT_INITIATED"},{no:2,name:"DUPLICATE_IDENTITY"},{no:3,name:"SERVER_SHUTDOWN"},{no:4,name:"PARTICIPANT_REMOVED"},{no:5,name:"ROOM_DELETED"},{no:6,name:"STATE_MISMATCH"},{no:7,name:"JOIN_FAILURE"},{no:8,name:"MIGRATION"},{no:9,name:"SIGNAL_CLOSE"},{no:10,name:"ROOM_CLOSED"},{no:11,name:"USER_UNAVAILABLE"},{no:12,name:"USER_REJECTED"},{no:13,name:"SIP_TRUNK_FAILURE"},{no:14,name:"CONNECTION_TIMEOUT"},{no:15,name:"MEDIA_FAILURE"}]),Kt=p.makeEnum("livekit.ReconnectReason",[{no:0,name:"RR_UNKNOWN"},{no:1,name:"RR_SIGNAL_DISCONNECTED"},{no:2,name:"RR_PUBLISHER_FAILED"},{no:3,name:"RR_SUBSCRIBER_FAILED"},{no:4,name:"RR_SWITCH_CANDIDATE"}]),Ga=p.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),we=p.makeEnum("livekit.AudioTrackFeature",[{no:0,name:"TF_STEREO"},{no:1,name:"TF_NO_DTX"},{no:2,name:"TF_AUTO_GAIN_CONTROL"},{no:3,name:"TF_ECHO_CANCELLATION"},{no:4,name:"TF_NOISE_SUPPRESSION"},{no:5,name:"TF_ENHANCED_NOISE_CANCELLATION"},{no:6,name:"TF_PRECONNECT_BUFFER"}]),hi=p.makeMessageType("livekit.Room",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"empty_timeout",kind:"scalar",T:13},{no:14,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:5,name:"creation_time",kind:"scalar",T:3},{no:15,name:"creation_time_ms",kind:"scalar",T:3},{no:6,name:"turn_password",kind:"scalar",T:9},{no:7,name:"enabled_codecs",kind:"message",T:mi,repeated:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"num_participants",kind:"scalar",T:13},{no:11,name:"num_publishers",kind:"scalar",T:13},{no:10,name:"active_recording",kind:"scalar",T:8},{no:13,name:"version",kind:"message",T:oo}]),mi=p.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),kh=p.makeMessageType("livekit.ParticipantPermission",()=>[{no:1,name:"can_subscribe",kind:"scalar",T:8},{no:2,name:"can_publish",kind:"scalar",T:8},{no:3,name:"can_publish_data",kind:"scalar",T:8},{no:9,name:"can_publish_sources",kind:"enum",T:p.getEnumType(Te),repeated:!0},{no:7,name:"hidden",kind:"scalar",T:8},{no:8,name:"recorder",kind:"scalar",T:8},{no:10,name:"can_update_metadata",kind:"scalar",T:8},{no:11,name:"agent",kind:"scalar",T:8},{no:12,name:"can_subscribe_metrics",kind:"scalar",T:8}]),Wt=p.makeMessageType("livekit.ParticipantInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"identity",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:p.getEnumType(an)},{no:4,name:"tracks",kind:"message",T:cn,repeated:!0},{no:5,name:"metadata",kind:"scalar",T:9},{no:6,name:"joined_at",kind:"scalar",T:3},{no:17,name:"joined_at_ms",kind:"scalar",T:3},{no:9,name:"name",kind:"scalar",T:9},{no:10,name:"version",kind:"scalar",T:13},{no:11,name:"permission",kind:"message",T:kh},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:p.getEnumType(on)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:p.getEnumType($e)},{no:18,name:"kind_details",kind:"enum",T:p.getEnumType(Th),repeated:!0},{no:19,name:"data_tracks",kind:"message",T:mr,repeated:!0}]),an=p.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),on=p.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"},{no:7,name:"CONNECTOR"},{no:8,name:"BRIDGE"}]),Th=p.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"},{no:2,name:"CONNECTOR_WHATSAPP"},{no:3,name:"CONNECTOR_TWILIO"},{no:4,name:"BRIDGE_RTSP"}]),ge=p.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),Sh=p.makeMessageType("livekit.SimulcastCodecInfo",()=>[{no:1,name:"mime_type",kind:"scalar",T:9},{no:2,name:"mid",kind:"scalar",T:9},{no:3,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:At,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(za)},{no:6,name:"sdp_cid",kind:"scalar",T:9}]),cn=p.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:p.getEnumType(ze)},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"muted",kind:"scalar",T:8},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"simulcast",kind:"scalar",T:8},{no:8,name:"disable_dtx",kind:"scalar",T:8},{no:9,name:"source",kind:"enum",T:p.getEnumType(Te)},{no:10,name:"layers",kind:"message",T:At,repeated:!0},{no:11,name:"mime_type",kind:"scalar",T:9},{no:12,name:"mid",kind:"scalar",T:9},{no:13,name:"codecs",kind:"message",T:Sh,repeated:!0},{no:14,name:"stereo",kind:"scalar",T:8},{no:15,name:"disable_red",kind:"scalar",T:8},{no:16,name:"encryption",kind:"enum",T:p.getEnumType(ge)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:oo},{no:19,name:"audio_features",kind:"enum",T:p.getEnumType(we),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(Ja)}]),mr=p.makeMessageType("livekit.DataTrackInfo",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13},{no:2,name:"sid",kind:"scalar",T:9},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"encryption",kind:"enum",T:p.getEnumType(ge)}]),Ch=p.makeMessageType("livekit.DataTrackSubscriptionOptions",()=>[{no:1,name:"target_fps",kind:"scalar",T:13,opt:!0}]),At=p.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(hr)},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13},{no:4,name:"bitrate",kind:"scalar",T:13},{no:5,name:"ssrc",kind:"scalar",T:13},{no:6,name:"spatial_layer",kind:"scalar",T:5},{no:7,name:"rid",kind:"scalar",T:9},{no:8,name:"repair_ssrc",kind:"scalar",T:13}]),za=p.makeEnum("livekit.VideoLayer.Mode",[{no:0,name:"MODE_UNUSED"},{no:1,name:"ONE_SPATIAL_LAYER_PER_STREAM"},{no:2,name:"MULTIPLE_SPATIAL_LAYERS_PER_STREAM"},{no:3,name:"ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR"}]),Fe=p.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:p.getEnumType(J)},{no:4,name:"participant_identity",kind:"scalar",T:9},{no:5,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:2,name:"user",kind:"message",T:fr,oneof:"value"},{no:3,name:"speaker",kind:"message",T:Eh,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:Xa,oneof:"value"},{no:7,name:"transcription",kind:"message",T:wh,oneof:"value"},{no:8,name:"metrics",kind:"message",T:mh,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:fi,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:pr,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:gr,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:vr,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:pi,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:gi,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:vi,oneof:"value"},{no:18,name:"encrypted_packet",kind:"message",T:$a,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),J=p.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),$a=p.makeMessageType("livekit.EncryptedPacket",()=>[{no:1,name:"encryption_type",kind:"enum",T:p.getEnumType(ge)},{no:2,name:"iv",kind:"scalar",T:12},{no:3,name:"key_index",kind:"scalar",T:13},{no:4,name:"encrypted_value",kind:"scalar",T:12}]),Qa=p.makeMessageType("livekit.EncryptedPacketPayload",()=>[{no:1,name:"user",kind:"message",T:fr,oneof:"value"},{no:3,name:"chat_message",kind:"message",T:fi,oneof:"value"},{no:4,name:"rpc_request",kind:"message",T:pr,oneof:"value"},{no:5,name:"rpc_ack",kind:"message",T:gr,oneof:"value"},{no:6,name:"rpc_response",kind:"message",T:vr,oneof:"value"},{no:7,name:"stream_header",kind:"message",T:pi,oneof:"value"},{no:8,name:"stream_chunk",kind:"message",T:gi,oneof:"value"},{no:9,name:"stream_trailer",kind:"message",T:vi,oneof:"value"}]),Eh=p.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:Ya,repeated:!0}]),Ya=p.makeMessageType("livekit.SpeakerInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"level",kind:"scalar",T:2},{no:3,name:"active",kind:"scalar",T:8}]),fr=p.makeMessageType("livekit.UserPacket",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:5,name:"participant_identity",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"destination_sids",kind:"scalar",T:9,repeated:!0},{no:6,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:4,name:"topic",kind:"scalar",T:9,opt:!0},{no:8,name:"id",kind:"scalar",T:9,opt:!0},{no:9,name:"start_time",kind:"scalar",T:4,opt:!0},{no:10,name:"end_time",kind:"scalar",T:4,opt:!0},{no:11,name:"nonce",kind:"scalar",T:12}]),Xa=p.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),wh=p.makeMessageType("livekit.Transcription",()=>[{no:2,name:"transcribed_participant_identity",kind:"scalar",T:9},{no:3,name:"track_id",kind:"scalar",T:9},{no:4,name:"segments",kind:"message",T:Rh,repeated:!0}]),Rh=p.makeMessageType("livekit.TranscriptionSegment",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"start_time",kind:"scalar",T:4},{no:4,name:"end_time",kind:"scalar",T:4},{no:5,name:"final",kind:"scalar",T:8},{no:6,name:"language",kind:"scalar",T:9}]),fi=p.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),pr=p.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),gr=p.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),vr=p.makeMessageType("livekit.RpcResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:9,oneof:"value"},{no:3,name:"error",kind:"message",T:Za,oneof:"value"}]),Za=p.makeMessageType("livekit.RpcError",()=>[{no:1,name:"code",kind:"scalar",T:13},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"data",kind:"scalar",T:9}]),eo=p.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),to=p.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:p.getEnumType(no)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"region",kind:"scalar",T:9},{no:5,name:"node_id",kind:"scalar",T:9},{no:6,name:"debug_info",kind:"scalar",T:9},{no:7,name:"agent_protocol",kind:"scalar",T:5}]),no=p.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),io=p.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:p.getEnumType(ro)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"os",kind:"scalar",T:9},{no:5,name:"os_version",kind:"scalar",T:9},{no:6,name:"device_model",kind:"scalar",T:9},{no:7,name:"browser",kind:"scalar",T:9},{no:8,name:"browser_version",kind:"scalar",T:9},{no:9,name:"address",kind:"scalar",T:9},{no:10,name:"network",kind:"scalar",T:9},{no:11,name:"other_sdks",kind:"scalar",T:9}]),ro=p.makeEnum("livekit.ClientInfo.SDK",[{no:0,name:"UNKNOWN"},{no:1,name:"JS"},{no:2,name:"SWIFT"},{no:3,name:"ANDROID"},{no:4,name:"FLUTTER"},{no:5,name:"GO"},{no:6,name:"UNITY"},{no:7,name:"REACT_NATIVE"},{no:8,name:"RUST"},{no:9,name:"PYTHON"},{no:10,name:"CPP"},{no:11,name:"UNITY_WEB"},{no:12,name:"NODE"},{no:13,name:"UNREAL"},{no:14,name:"ESP32"}]),so=p.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:ao},{no:2,name:"screen",kind:"message",T:ao},{no:3,name:"resume_connection",kind:"enum",T:p.getEnumType(On)},{no:4,name:"disabled_codecs",kind:"message",T:_h},{no:5,name:"force_relay",kind:"enum",T:p.getEnumType(On)}]),ao=p.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:p.getEnumType(On)}]),_h=p.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:mi,repeated:!0},{no:2,name:"publish",kind:"message",T:mi,repeated:!0}]),oo=p.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),yr=p.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),co=p.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:p.getEnumType(yr)},{no:2,name:"version",kind:"scalar",T:5},{no:3,name:"reply_to_stream_id",kind:"scalar",T:9},{no:4,name:"attached_stream_ids",kind:"scalar",T:9,repeated:!0},{no:5,name:"generated",kind:"scalar",T:8}],{localName:"DataStream_TextHeader"}),lo=p.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),pi=p.makeMessageType("livekit.DataStream.Header",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"topic",kind:"scalar",T:9},{no:4,name:"mime_type",kind:"scalar",T:9},{no:5,name:"total_length",kind:"scalar",T:4,opt:!0},{no:7,name:"encryption_type",kind:"enum",T:p.getEnumType(ge)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:co,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:lo,oneof:"content_header"}],{localName:"DataStream_Header"}),gi=p.makeMessageType("livekit.DataStream.Chunk",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"chunk_index",kind:"scalar",T:4},{no:3,name:"content",kind:"scalar",T:12},{no:4,name:"version",kind:"scalar",T:5},{no:5,name:"iv",kind:"scalar",T:12,opt:!0}],{localName:"DataStream_Chunk"}),vi=p.makeMessageType("livekit.DataStream.Trailer",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"reason",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}],{localName:"DataStream_Trailer"}),Ph=p.makeMessageType("livekit.FilterParams",()=>[{no:1,name:"include_events",kind:"scalar",T:9,repeated:!0},{no:2,name:"exclude_events",kind:"scalar",T:9,repeated:!0}]),Ih=p.makeMessageType("livekit.WebhookConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"signing_key",kind:"scalar",T:9},{no:3,name:"filter_params",kind:"message",T:Ph}]),Oh=p.makeMessageType("livekit.SubscribedAudioCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"enabled",kind:"scalar",T:8}]),br=p.makeMessageType("livekit.RoomAgentDispatch",()=>[{no:1,name:"agent_name",kind:"scalar",T:9},{no:2,name:"metadata",kind:"scalar",T:9}]),nt=p.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),kr=p.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),Mh=p.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),Dh=p.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:xt,oneof:"message"},{no:2,name:"answer",kind:"message",T:xt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:yi,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Mn,oneof:"message"},{no:5,name:"mute",kind:"message",T:bi,oneof:"message"},{no:6,name:"subscription",kind:"message",T:ki,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:po,oneof:"message"},{no:8,name:"leave",kind:"message",T:Ti,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:vo,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:ko,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Rr,oneof:"message"},{no:13,name:"simulate",kind:"message",T:ht,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:Er,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:Co,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:Cr,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:go,oneof:"message"},{no:19,name:"publish_data_track_request",kind:"message",T:ho,oneof:"message"},{no:20,name:"unpublish_data_track_request",kind:"message",T:fo,oneof:"message"},{no:21,name:"update_data_subscription",kind:"message",T:jh,oneof:"message"}]),uo=p.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:Nh,oneof:"message"},{no:2,name:"answer",kind:"message",T:xt,oneof:"message"},{no:3,name:"offer",kind:"message",T:xt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:yi,oneof:"message"},{no:5,name:"update",kind:"message",T:Bh,oneof:"message"},{no:6,name:"track_published",kind:"message",T:Sr,oneof:"message"},{no:8,name:"leave",kind:"message",T:Ti,oneof:"message"},{no:9,name:"mute",kind:"message",T:bi,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:qh,oneof:"message"},{no:11,name:"room_update",kind:"message",T:Kh,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:Hh,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:Gh,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:$h,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Yh,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:Fh,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:Uh,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Zh,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:nm,oneof:"message"},{no:22,name:"request_response",kind:"message",T:im,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:rm,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:Xh,oneof:"message"},{no:25,name:"media_sections_requirement",kind:"message",T:cm,oneof:"message"},{no:26,name:"subscribed_audio_codec_update",kind:"message",T:Qh,oneof:"message"},{no:27,name:"publish_data_track_response",kind:"message",T:mo,oneof:"message"},{no:28,name:"unpublish_data_track_response",kind:"message",T:Ah,oneof:"message"},{no:29,name:"data_track_subscriber_handles",kind:"message",T:xh,oneof:"message"}]),Tr=p.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:At,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(za)}]),Mn=p.makeMessageType("livekit.AddTrackRequest",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"type",kind:"enum",T:p.getEnumType(ze)},{no:4,name:"width",kind:"scalar",T:13},{no:5,name:"height",kind:"scalar",T:13},{no:6,name:"muted",kind:"scalar",T:8},{no:7,name:"disable_dtx",kind:"scalar",T:8},{no:8,name:"source",kind:"enum",T:p.getEnumType(Te)},{no:9,name:"layers",kind:"message",T:At,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:Tr,repeated:!0},{no:11,name:"sid",kind:"scalar",T:9},{no:12,name:"stereo",kind:"scalar",T:8},{no:13,name:"disable_red",kind:"scalar",T:8},{no:14,name:"encryption",kind:"enum",T:p.getEnumType(ge)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(Ja)},{no:17,name:"audio_features",kind:"enum",T:p.getEnumType(we),repeated:!0}]),ho=p.makeMessageType("livekit.PublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"encryption",kind:"enum",T:p.getEnumType(ge)}]),mo=p.makeMessageType("livekit.PublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:mr}]),fo=p.makeMessageType("livekit.UnpublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13}]),Ah=p.makeMessageType("livekit.UnpublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:mr}]),xh=p.makeMessageType("livekit.DataTrackSubscriberHandles",()=>[{no:1,name:"sub_handles",kind:"map",K:13,V:{kind:"message",T:Lh}}]),Lh=p.makeMessageType("livekit.DataTrackSubscriberHandles.PublishedDataTrack",()=>[{no:1,name:"publisher_identity",kind:"scalar",T:9},{no:2,name:"publisher_sid",kind:"scalar",T:9},{no:3,name:"track_sid",kind:"scalar",T:9}],{localName:"DataTrackSubscriberHandles_PublishedDataTrack"}),yi=p.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:p.getEnumType(nt)},{no:3,name:"final",kind:"scalar",T:8}]),bi=p.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),Nh=p.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:hi},{no:2,name:"participant",kind:"message",T:Wt},{no:3,name:"other_participants",kind:"message",T:Wt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:yo,repeated:!0},{no:6,name:"subscriber_primary",kind:"scalar",T:8},{no:7,name:"alternative_url",kind:"scalar",T:9},{no:8,name:"client_configuration",kind:"message",T:so},{no:9,name:"server_region",kind:"scalar",T:9},{no:10,name:"ping_timeout",kind:"scalar",T:5},{no:11,name:"ping_interval",kind:"scalar",T:5},{no:12,name:"server_info",kind:"message",T:to},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:mi,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),Uh=p.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:yo,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:so},{no:3,name:"server_info",kind:"message",T:to},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),Sr=p.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:cn}]),Fh=p.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),xt=p.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9},{no:3,name:"id",kind:"scalar",T:13},{no:4,name:"mid_to_track_id",kind:"map",K:9,V:{kind:"scalar",T:9}}]),Bh=p.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:Wt,repeated:!0}]),ki=p.makeMessageType("livekit.UpdateSubscription",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"participant_tracks",kind:"message",T:eo,repeated:!0}]),jh=p.makeMessageType("livekit.UpdateDataSubscription",()=>[{no:1,name:"updates",kind:"message",T:Vh,repeated:!0}]),Vh=p.makeMessageType("livekit.UpdateDataSubscription.Update",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"options",kind:"message",T:Ch}],{localName:"UpdateDataSubscription_Update"}),po=p.makeMessageType("livekit.UpdateTrackSettings",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:3,name:"disabled",kind:"scalar",T:8},{no:4,name:"quality",kind:"enum",T:p.getEnumType(hr)},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"fps",kind:"scalar",T:13},{no:8,name:"priority",kind:"scalar",T:13}]),Cr=p.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:p.getEnumType(we),repeated:!0}]),go=p.makeMessageType("livekit.UpdateLocalVideoTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13}]),Ti=p.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:p.getEnumType($e)},{no:3,name:"action",kind:"enum",T:p.getEnumType(dn)},{no:4,name:"regions",kind:"message",T:em}]),dn=p.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),vo=p.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:At,repeated:!0}]),Er=p.makeMessageType("livekit.UpdateParticipantMetadata",()=>[{no:1,name:"metadata",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:4,name:"request_id",kind:"scalar",T:13}]),yo=p.makeMessageType("livekit.ICEServer",()=>[{no:1,name:"urls",kind:"scalar",T:9,repeated:!0},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"credential",kind:"scalar",T:9}]),qh=p.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:Ya,repeated:!0}]),Kh=p.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:hi}]),Wh=p.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:p.getEnumType(In)},{no:3,name:"score",kind:"scalar",T:2}]),Hh=p.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:Wh,repeated:!0}]),Jh=p.makeMessageType("livekit.StreamStateInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:p.getEnumType(kr)}]),Gh=p.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:Jh,repeated:!0}]),wr=p.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(hr)},{no:2,name:"enabled",kind:"scalar",T:8}]),zh=p.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:wr,repeated:!0}]),$h=p.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:wr,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:zh,repeated:!0}]),Qh=p.makeMessageType("livekit.SubscribedAudioCodecUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_audio_codecs",kind:"message",T:Oh,repeated:!0}]),bo=p.makeMessageType("livekit.TrackPermission",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"all_tracks",kind:"scalar",T:8},{no:3,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:4,name:"participant_identity",kind:"scalar",T:9}]),ko=p.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:bo,repeated:!0}]),Yh=p.makeMessageType("livekit.SubscriptionPermissionUpdate",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"allowed",kind:"scalar",T:8}]),Xh=p.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:hi},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:Wt},{no:4,name:"other_participants",kind:"message",T:Wt,repeated:!0}]),Rr=p.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:xt},{no:2,name:"subscription",kind:"message",T:ki},{no:3,name:"publish_tracks",kind:"message",T:Sr,repeated:!0},{no:4,name:"data_channels",kind:"message",T:So,repeated:!0},{no:5,name:"offer",kind:"message",T:xt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:To,repeated:!0},{no:8,name:"publish_data_tracks",kind:"message",T:mo,repeated:!0}]),To=p.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),So=p.makeMessageType("livekit.DataChannelInfo",()=>[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"id",kind:"scalar",T:13},{no:3,name:"target",kind:"enum",T:p.getEnumType(nt)}]),ht=p.makeMessageType("livekit.SimulateScenario",()=>[{no:1,name:"speaker_update",kind:"scalar",T:5,oneof:"scenario"},{no:2,name:"node_failure",kind:"scalar",T:8,oneof:"scenario"},{no:3,name:"migration",kind:"scalar",T:8,oneof:"scenario"},{no:4,name:"server_leave",kind:"scalar",T:8,oneof:"scenario"},{no:5,name:"switch_candidate_protocol",kind:"enum",T:p.getEnumType(Mh),oneof:"scenario"},{no:6,name:"subscriber_bandwidth",kind:"scalar",T:3,oneof:"scenario"},{no:7,name:"disconnect_signal_on_resume",kind:"scalar",T:8,oneof:"scenario"},{no:8,name:"disconnect_signal_on_resume_no_messages",kind:"scalar",T:8,oneof:"scenario"},{no:9,name:"leave_request_full_reconnect",kind:"scalar",T:8,oneof:"scenario"}]),Co=p.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Zh=p.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),em=p.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:tm,repeated:!0}]),tm=p.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),nm=p.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:p.getEnumType(Ga)}]),im=p.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:p.getEnumType(_r)},{no:3,name:"message",kind:"scalar",T:9},{no:4,name:"trickle",kind:"message",T:yi,oneof:"request"},{no:5,name:"add_track",kind:"message",T:Mn,oneof:"request"},{no:6,name:"mute",kind:"message",T:bi,oneof:"request"},{no:7,name:"update_metadata",kind:"message",T:Er,oneof:"request"},{no:8,name:"update_audio_track",kind:"message",T:Cr,oneof:"request"},{no:9,name:"update_video_track",kind:"message",T:go,oneof:"request"},{no:10,name:"publish_data_track",kind:"message",T:ho,oneof:"request"},{no:11,name:"unpublish_data_track",kind:"message",T:fo,oneof:"request"}]),_r=p.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"},{no:4,name:"QUEUED"},{no:5,name:"UNSUPPORTED_TYPE"},{no:6,name:"UNCLASSIFIED_ERROR"},{no:7,name:"INVALID_HANDLE"},{no:8,name:"INVALID_NAME"},{no:9,name:"DUPLICATE_HANDLE"},{no:10,name:"DUPLICATE_NAME"}]),rm=p.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Eo=p.makeMessageType("livekit.ConnectionSettings",()=>[{no:1,name:"auto_subscribe",kind:"scalar",T:8},{no:2,name:"adaptive_stream",kind:"scalar",T:8},{no:3,name:"subscriber_allow_pause",kind:"scalar",T:8,opt:!0},{no:4,name:"disable_ice_lite",kind:"scalar",T:8},{no:5,name:"auto_subscribe_data_track",kind:"scalar",T:8,opt:!0}]),sm=p.makeMessageType("livekit.JoinRequest",()=>[{no:1,name:"client_info",kind:"message",T:io},{no:2,name:"connection_settings",kind:"message",T:Eo},{no:3,name:"metadata",kind:"scalar",T:9},{no:4,name:"participant_attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"add_track_requests",kind:"message",T:Mn,repeated:!0},{no:6,name:"publisher_offer",kind:"message",T:xt},{no:7,name:"reconnect",kind:"scalar",T:8},{no:8,name:"reconnect_reason",kind:"enum",T:p.getEnumType(Kt)},{no:9,name:"participant_sid",kind:"scalar",T:9},{no:10,name:"sync_state",kind:"message",T:Rr}]),am=p.makeMessageType("livekit.WrappedJoinRequest",()=>[{no:1,name:"compression",kind:"enum",T:p.getEnumType(om)},{no:2,name:"join_request",kind:"scalar",T:12}]),om=p.makeEnum("livekit.WrappedJoinRequest.Compression",[{no:0,name:"NONE"},{no:1,name:"GZIP"}]),cm=p.makeMessageType("livekit.MediaSectionsRequirement",()=>[{no:1,name:"num_audios",kind:"scalar",T:13},{no:2,name:"num_videos",kind:"scalar",T:13}]),dm=p.makeEnum("livekit.EncodedFileType",[{no:0,name:"DEFAULT_FILETYPE"},{no:1,name:"MP4"},{no:2,name:"OGG"},{no:3,name:"MP3"}]),lm=p.makeEnum("livekit.SegmentedFileProtocol",[{no:0,name:"DEFAULT_SEGMENTED_FILE_PROTOCOL"},{no:1,name:"HLS_PROTOCOL"}]),um=p.makeEnum("livekit.SegmentedFileSuffix",[{no:0,name:"INDEX"},{no:1,name:"TIMESTAMP"}]),hm=p.makeEnum("livekit.ImageFileSuffix",[{no:0,name:"IMAGE_SUFFIX_INDEX"},{no:1,name:"IMAGE_SUFFIX_TIMESTAMP"},{no:2,name:"IMAGE_SUFFIX_NONE_OVERWRITE"}]),mm=p.makeEnum("livekit.StreamProtocol",[{no:0,name:"DEFAULT_PROTOCOL"},{no:1,name:"RTMP"},{no:2,name:"SRT"}]),fm=p.makeEnum("livekit.AudioMixing",[{no:0,name:"DEFAULT_MIXING"},{no:1,name:"DUAL_CHANNEL_AGENT"},{no:2,name:"DUAL_CHANNEL_ALTERNATE"}]),wo=p.makeEnum("livekit.EncodingOptionsPreset",[{no:0,name:"H264_720P_30"},{no:1,name:"H264_720P_60"},{no:2,name:"H264_1080P_30"},{no:3,name:"H264_1080P_60"},{no:4,name:"PORTRAIT_H264_720P_30"},{no:5,name:"PORTRAIT_H264_720P_60"},{no:6,name:"PORTRAIT_H264_1080P_30"},{no:7,name:"PORTRAIT_H264_1080P_60"}]),pm=p.makeMessageType("livekit.RoomCompositeEgressRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9},{no:2,name:"layout",kind:"scalar",T:9},{no:3,name:"audio_only",kind:"scalar",T:8},{no:15,name:"audio_mixing",kind:"enum",T:p.getEnumType(fm)},{no:4,name:"video_only",kind:"scalar",T:8},{no:5,name:"custom_base_url",kind:"scalar",T:9},{no:6,name:"file",kind:"message",T:Pr,oneof:"output"},{no:7,name:"stream",kind:"message",T:_o,oneof:"output"},{no:10,name:"segments",kind:"message",T:Ir,oneof:"output"},{no:8,name:"preset",kind:"enum",T:p.getEnumType(wo),oneof:"options"},{no:9,name:"advanced",kind:"message",T:Po,oneof:"options"},{no:11,name:"file_outputs",kind:"message",T:Pr,repeated:!0},{no:12,name:"stream_outputs",kind:"message",T:_o,repeated:!0},{no:13,name:"segment_outputs",kind:"message",T:Ir,repeated:!0},{no:14,name:"image_outputs",kind:"message",T:gm,repeated:!0},{no:16,name:"webhooks",kind:"message",T:Ih,repeated:!0}]),Pr=p.makeMessageType("livekit.EncodedFileOutput",()=>[{no:1,name:"file_type",kind:"enum",T:p.getEnumType(dm)},{no:2,name:"filepath",kind:"scalar",T:9},{no:6,name:"disable_manifest",kind:"scalar",T:8},{no:3,name:"s3",kind:"message",T:Si,oneof:"output"},{no:4,name:"gcp",kind:"message",T:Ci,oneof:"output"},{no:5,name:"azure",kind:"message",T:Ei,oneof:"output"},{no:7,name:"aliOSS",kind:"message",T:wi,oneof:"output"}]),Ir=p.makeMessageType("livekit.SegmentedFileOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(lm)},{no:2,name:"filename_prefix",kind:"scalar",T:9},{no:3,name:"playlist_name",kind:"scalar",T:9},{no:11,name:"live_playlist_name",kind:"scalar",T:9},{no:4,name:"segment_duration",kind:"scalar",T:13},{no:10,name:"filename_suffix",kind:"enum",T:p.getEnumType(um)},{no:8,name:"disable_manifest",kind:"scalar",T:8},{no:5,name:"s3",kind:"message",T:Si,oneof:"output"},{no:6,name:"gcp",kind:"message",T:Ci,oneof:"output"},{no:7,name:"azure",kind:"message",T:Ei,oneof:"output"},{no:9,name:"aliOSS",kind:"message",T:wi,oneof:"output"}]),gm=p.makeMessageType("livekit.ImageOutput",()=>[{no:1,name:"capture_interval",kind:"scalar",T:13},{no:2,name:"width",kind:"scalar",T:5},{no:3,name:"height",kind:"scalar",T:5},{no:4,name:"filename_prefix",kind:"scalar",T:9},{no:5,name:"filename_suffix",kind:"enum",T:p.getEnumType(hm)},{no:6,name:"image_codec",kind:"enum",T:p.getEnumType(bh)},{no:7,name:"disable_manifest",kind:"scalar",T:8},{no:8,name:"s3",kind:"message",T:Si,oneof:"output"},{no:9,name:"gcp",kind:"message",T:Ci,oneof:"output"},{no:10,name:"azure",kind:"message",T:Ei,oneof:"output"},{no:11,name:"aliOSS",kind:"message",T:wi,oneof:"output"}]),Si=p.makeMessageType("livekit.S3Upload",()=>[{no:1,name:"access_key",kind:"scalar",T:9},{no:2,name:"secret",kind:"scalar",T:9},{no:11,name:"session_token",kind:"scalar",T:9},{no:12,name:"assume_role_arn",kind:"scalar",T:9},{no:13,name:"assume_role_external_id",kind:"scalar",T:9},{no:3,name:"region",kind:"scalar",T:9},{no:4,name:"endpoint",kind:"scalar",T:9},{no:5,name:"bucket",kind:"scalar",T:9},{no:6,name:"force_path_style",kind:"scalar",T:8},{no:7,name:"metadata",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:8,name:"tagging",kind:"scalar",T:9},{no:9,name:"content_disposition",kind:"scalar",T:9},{no:10,name:"proxy",kind:"message",T:Ro}]),Ci=p.makeMessageType("livekit.GCPUpload",()=>[{no:1,name:"credentials",kind:"scalar",T:9},{no:2,name:"bucket",kind:"scalar",T:9},{no:3,name:"proxy",kind:"message",T:Ro}]),Ei=p.makeMessageType("livekit.AzureBlobUpload",()=>[{no:1,name:"account_name",kind:"scalar",T:9},{no:2,name:"account_key",kind:"scalar",T:9},{no:3,name:"container_name",kind:"scalar",T:9}]),wi=p.makeMessageType("livekit.AliOSSUpload",()=>[{no:1,name:"access_key",kind:"scalar",T:9},{no:2,name:"secret",kind:"scalar",T:9},{no:3,name:"region",kind:"scalar",T:9},{no:4,name:"endpoint",kind:"scalar",T:9},{no:5,name:"bucket",kind:"scalar",T:9}]),Ro=p.makeMessageType("livekit.ProxyConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"password",kind:"scalar",T:9}]),_o=p.makeMessageType("livekit.StreamOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(mm)},{no:2,name:"urls",kind:"scalar",T:9,repeated:!0}]),Po=p.makeMessageType("livekit.EncodingOptions",()=>[{no:1,name:"width",kind:"scalar",T:5},{no:2,name:"height",kind:"scalar",T:5},{no:3,name:"depth",kind:"scalar",T:5},{no:4,name:"framerate",kind:"scalar",T:5},{no:5,name:"audio_codec",kind:"enum",T:p.getEnumType(vh)},{no:6,name:"audio_bitrate",kind:"scalar",T:5},{no:11,name:"audio_quality",kind:"scalar",T:5},{no:7,name:"audio_frequency",kind:"scalar",T:5},{no:8,name:"video_codec",kind:"enum",T:p.getEnumType(yh)},{no:9,name:"video_bitrate",kind:"scalar",T:5},{no:12,name:"video_quality",kind:"scalar",T:5},{no:10,name:"key_frame_interval",kind:"scalar",T:1}]),vm=p.makeMessageType("livekit.AutoParticipantEgress",()=>[{no:1,name:"preset",kind:"enum",T:p.getEnumType(wo),oneof:"options"},{no:2,name:"advanced",kind:"message",T:Po,oneof:"options"},{no:3,name:"file_outputs",kind:"message",T:Pr,repeated:!0},{no:4,name:"segment_outputs",kind:"message",T:Ir,repeated:!0}]),ym=p.makeMessageType("livekit.AutoTrackEgress",()=>[{no:1,name:"filepath",kind:"scalar",T:9},{no:5,name:"disable_manifest",kind:"scalar",T:8},{no:2,name:"s3",kind:"message",T:Si,oneof:"output"},{no:3,name:"gcp",kind:"message",T:Ci,oneof:"output"},{no:4,name:"azure",kind:"message",T:Ei,oneof:"output"},{no:6,name:"aliOSS",kind:"message",T:wi,oneof:"output"}]),bm=p.makeMessageType("livekit.RoomEgress",()=>[{no:1,name:"room",kind:"message",T:pm},{no:3,name:"participant",kind:"message",T:vm},{no:2,name:"tracks",kind:"message",T:ym}]),Ri=p.makeMessageType("livekit.RoomConfiguration",()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"empty_timeout",kind:"scalar",T:13},{no:3,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:11,name:"metadata",kind:"scalar",T:9},{no:5,name:"egress",kind:"message",T:bm},{no:7,name:"min_playout_delay",kind:"scalar",T:13},{no:8,name:"max_playout_delay",kind:"scalar",T:13},{no:9,name:"sync_streams",kind:"scalar",T:8},{no:10,name:"agents",kind:"message",T:br,repeated:!0}]),km=p.makeMessageType("livekit.TokenSourceRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9,opt:!0},{no:2,name:"participant_name",kind:"scalar",T:9,opt:!0},{no:3,name:"participant_identity",kind:"scalar",T:9,opt:!0},{no:4,name:"participant_metadata",kind:"scalar",T:9,opt:!0},{no:5,name:"participant_attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:6,name:"room_config",kind:"message",T:Ri,opt:!0}]),Io=p.makeMessageType("livekit.TokenSourceResponse",()=>[{no:1,name:"server_url",kind:"scalar",T:9},{no:2,name:"participant_token",kind:"scalar",T:9}]);function Tm(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var _i={exports:{}},Sm=_i.exports,Oo;function Cm(){return Oo||(Oo=1,function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(Sm,function(){var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],s={},c=null;function a(g,C){var T=g[C];if(typeof T.bind=="function")return T.bind(g);try{return Function.prototype.bind.call(T,g)}catch{return function(){return Function.prototype.apply.apply(T,[g,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function d(g){return g==="debug"&&(g="log"),typeof console===t?!1:g==="trace"&&i?o:console[g]!==void 0?a(console,g):console.log!==void 0?a(console,"log"):e}function l(){for(var g=this.getLevel(),C=0;C<r.length;C++){var T=r[C];this[T]=C<g?e:this.methodFactory(T,g,this.name)}if(this.log=this.debug,typeof console===t&&g<this.levels.SILENT)return"No console available for logging"}function u(g){return function(){typeof console!==t&&(l.call(this),this[g].apply(this,arguments))}}function h(g,C,T){return d(g)||u.apply(this,arguments)}function f(g,C){var T=this,R,_,y,k="loglevel";typeof g=="string"?k+=":"+g:typeof g=="symbol"&&(k=void 0);function S(P){var L=(r[P]||"silent").toUpperCase();if(!(typeof window===t||!k)){try{window.localStorage[k]=L;return}catch{}try{window.document.cookie=encodeURIComponent(k)+"="+L+";"}catch{}}}function x(){var P;if(!(typeof window===t||!k)){try{P=window.localStorage[k]}catch{}if(typeof P===t)try{var L=window.document.cookie,H=encodeURIComponent(k),Y=L.indexOf(H+"=");Y!==-1&&(P=/^([^;]+)/.exec(L.slice(Y+H.length+1))[1])}catch{}return T.levels[P]===void 0&&(P=void 0),P}}function F(){if(!(typeof window===t||!k)){try{window.localStorage.removeItem(k)}catch{}try{window.document.cookie=encodeURIComponent(k)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function U(P){var L=P;if(typeof L=="string"&&T.levels[L.toUpperCase()]!==void 0&&(L=T.levels[L.toUpperCase()]),typeof L=="number"&&L>=0&&L<=T.levels.SILENT)return L;throw new TypeError("log.setLevel() called with invalid level: "+P)}T.name=g,T.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},T.methodFactory=C||h,T.getLevel=function(){return y??_??R},T.setLevel=function(P,L){return y=U(P),L!==!1&&S(y),l.call(T)},T.setDefaultLevel=function(P){_=U(P),x()||T.setLevel(P,!1)},T.resetLevel=function(){y=null,F(),l.call(T)},T.enableAll=function(P){T.setLevel(T.levels.TRACE,P)},T.disableAll=function(P){T.setLevel(T.levels.SILENT,P)},T.rebuild=function(){if(c!==T&&(R=U(c.getLevel())),l.call(T),c===T)for(var P in s)s[P].rebuild()},R=U(c?c.getLevel():"WARN");var b=x();b!=null&&(y=U(b)),l.call(T)}c=new f,c.getLogger=function(C){if(typeof C!="symbol"&&typeof C!="string"||C==="")throw new TypeError("You must supply a name when creating a logger.");var T=s[C];return T||(T=s[C]=new f(C,c.methodFactory)),T};var v=typeof window!==t?window.log:void 0;return c.noConflict=function(){return typeof window!==t&&window.log===c&&(window.log=v),c},c.getLoggers=function(){return s},c.default=c,c})}(_i)),_i.exports}var Dn=Cm(),ln;(function(n){n[n.trace=0]="trace",n[n.debug=1]="debug",n[n.info=2]="info",n[n.warn=3]="warn",n[n.error=4]="error",n[n.silent=5]="silent"})(ln||(ln={}));var He;(function(n){n.Default="livekit",n.Room="livekit-room",n.TokenSource="livekit-token-source",n.Participant="livekit-participant",n.Track="livekit-track",n.Publication="livekit-track-publication",n.Engine="livekit-engine",n.Signal="livekit-signal",n.PCManager="livekit-pc-manager",n.PCTransport="livekit-pc-transport",n.E2EE="lk-e2ee",n.DataTracks="livekit-data-tracks"})(He||(He={}));let W=Dn.getLogger("livekit");const Mo=Object.values(He).map(n=>Dn.getLogger(n));W.setDefaultLevel(ln.info);function it(n){const e=Dn.getLogger(n);return e.setDefaultLevel(W.getLevel()),e}function Em(n,e){if(e)Dn.getLogger(e).setLevel(n);else for(const t of Mo)t.setLevel(n)}function wm(n,e){(e?[e]:Mo).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,c,a)=>{const o=r(s,c,a),d=ln[s],l=d>=c&&d<ln.silent;return(u,h)=>{h?o(u,h):o(u),l&&n(d,u,h)}},i.setLevel(i.getLevel())})}const Rm=Dn.getLogger("lk-e2ee"),An=7e3,_m=[0,300,2*2*300,3*3*300,4*4*300,An,An,An,An,An];class Do{constructor(e){this._retryDelays=e!==void 0?[...e]:_m}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;const t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+Math.random()*1e3}}function Or(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(n,i[r])&&(t[i[r]]=n[i[r]]);return t}function m(n,e,t,i){function r(s){return s instanceof t?s:new t(function(c){c(s)})}return new(t||(t=Promise))(function(s,c){function a(l){try{d(i.next(l))}catch(u){c(u)}}function o(l){try{d(i.throw(l))}catch(u){c(u)}}function d(l){l.done?s(l.value):r(l.value).then(a,o)}d((i=i.apply(n,e||[])).next())})}function Ao(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function St(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof Ao=="function"?Ao(n):n[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(s){t[s]=n[s]&&function(c){return new Promise(function(a,o){c=n[s](c),r(a,o,c.done,c.value)})}}function r(s,c,a,o){Promise.resolve(o).then(function(d){s({value:d,done:a})},c)}}typeof SuppressedError=="function"&&SuppressedError;var Pi={exports:{}},xo;function Pm(){if(xo)return Pi.exports;xo=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(k,S,x){return Function.prototype.apply.call(k,S,x)},t;n&&typeof n.ownKeys=="function"?t=n.ownKeys:Object.getOwnPropertySymbols?t=function(k){return Object.getOwnPropertyNames(k).concat(Object.getOwnPropertySymbols(k))}:t=function(k){return Object.getOwnPropertyNames(k)};function i(y){console&&console.warn&&console.warn(y)}var r=Number.isNaN||function(k){return k!==k};function s(){s.init.call(this)}Pi.exports=s,Pi.exports.once=T,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function a(y){if(typeof y!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof y)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(y){if(typeof y!="number"||y<0||r(y))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+y+".");c=y}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(k){if(typeof k!="number"||k<0||r(k))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+k+".");return this._maxListeners=k,this};function o(y){return y._maxListeners===void 0?s.defaultMaxListeners:y._maxListeners}s.prototype.getMaxListeners=function(){return o(this)},s.prototype.emit=function(k){for(var S=[],x=1;x<arguments.length;x++)S.push(arguments[x]);var F=k==="error",U=this._events;if(U!==void 0)F=F&&U.error===void 0;else if(!F)return!1;if(F){var b;if(S.length>0&&(b=S[0]),b instanceof Error)throw b;var P=new Error("Unhandled error."+(b?" ("+b.message+")":""));throw P.context=b,P}var L=U[k];if(L===void 0)return!1;if(typeof L=="function")e(L,this,S);else for(var H=L.length,Y=v(L,H),x=0;x<H;++x)e(Y[x],this,S);return!0};function d(y,k,S,x){var F,U,b;if(a(S),U=y._events,U===void 0?(U=y._events=Object.create(null),y._eventsCount=0):(U.newListener!==void 0&&(y.emit("newListener",k,S.listener?S.listener:S),U=y._events),b=U[k]),b===void 0)b=U[k]=S,++y._eventsCount;else if(typeof b=="function"?b=U[k]=x?[S,b]:[b,S]:x?b.unshift(S):b.push(S),F=o(y),F>0&&b.length>F&&!b.warned){b.warned=!0;var P=new Error("Possible EventEmitter memory leak detected. "+b.length+" "+String(k)+" listeners added. Use emitter.setMaxListeners() to increase limit");P.name="MaxListenersExceededWarning",P.emitter=y,P.type=k,P.count=b.length,i(P)}return y}s.prototype.addListener=function(k,S){return d(this,k,S,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(k,S){return d(this,k,S,!0)};function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(y,k,S){var x={fired:!1,wrapFn:void 0,target:y,type:k,listener:S},F=l.bind(x);return F.listener=S,x.wrapFn=F,F}s.prototype.once=function(k,S){return a(S),this.on(k,u(this,k,S)),this},s.prototype.prependOnceListener=function(k,S){return a(S),this.prependListener(k,u(this,k,S)),this},s.prototype.removeListener=function(k,S){var x,F,U,b,P;if(a(S),F=this._events,F===void 0)return this;if(x=F[k],x===void 0)return this;if(x===S||x.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete F[k],F.removeListener&&this.emit("removeListener",k,x.listener||S));else if(typeof x!="function"){for(U=-1,b=x.length-1;b>=0;b--)if(x[b]===S||x[b].listener===S){P=x[b].listener,U=b;break}if(U<0)return this;U===0?x.shift():g(x,U),x.length===1&&(F[k]=x[0]),F.removeListener!==void 0&&this.emit("removeListener",k,P||S)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(k){var S,x,F;if(x=this._events,x===void 0)return this;if(x.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):x[k]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete x[k]),this;if(arguments.length===0){var U=Object.keys(x),b;for(F=0;F<U.length;++F)b=U[F],b!=="removeListener"&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(S=x[k],typeof S=="function")this.removeListener(k,S);else if(S!==void 0)for(F=S.length-1;F>=0;F--)this.removeListener(k,S[F]);return this};function h(y,k,S){var x=y._events;if(x===void 0)return[];var F=x[k];return F===void 0?[]:typeof F=="function"?S?[F.listener||F]:[F]:S?C(F):v(F,F.length)}s.prototype.listeners=function(k){return h(this,k,!0)},s.prototype.rawListeners=function(k){return h(this,k,!1)},s.listenerCount=function(y,k){return typeof y.listenerCount=="function"?y.listenerCount(k):f.call(y,k)},s.prototype.listenerCount=f;function f(y){var k=this._events;if(k!==void 0){var S=k[y];if(typeof S=="function")return 1;if(S!==void 0)return S.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function v(y,k){for(var S=new Array(k),x=0;x<k;++x)S[x]=y[x];return S}function g(y,k){for(;k+1<y.length;k++)y[k]=y[k+1];y.pop()}function C(y){for(var k=new Array(y.length),S=0;S<k.length;++S)k[S]=y[S].listener||y[S];return k}function T(y,k){return new Promise(function(S,x){function F(b){y.removeListener(k,U),x(b)}function U(){typeof y.removeListener=="function"&&y.removeListener("error",F),S([].slice.call(arguments))}_(y,k,U,{once:!0}),k!=="error"&&R(y,F,{once:!0})})}function R(y,k,S){typeof y.on=="function"&&_(y,"error",k,S)}function _(y,k,S,x){if(typeof y.on=="function")x.once?y.once(k,S):y.on(k,S);else if(typeof y.addEventListener=="function")y.addEventListener(k,function F(U){x.once&&y.removeEventListener(k,F),S(U)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof y)}return Pi.exports}var mt=Pm();let Lo=!0,No=!0;function xn(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function Ht(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(c,a){if(c!==e)return r.apply(this,arguments);const o=d=>{const l=t(d);l&&(a.handleEvent?a.handleEvent(l):a(l))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(a,o),r.apply(this,[c,o])};const s=i.removeEventListener;i.removeEventListener=function(c,a){if(c!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(a))return s.apply(this,arguments);const o=this._eventMap[e].get(a);return this._eventMap[e].delete(a),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[c,o])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(c){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),c&&this.addEventListener(e,this["_on"+e]=c)},enumerable:!0,configurable:!0})}function Im(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Lo=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function Om(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(No=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function Uo(){if(typeof window=="object"){if(Lo)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Mr(n,e){No&&console.warn(n+" is deprecated, please use "+e+" instead.")}function Mm(n){const e={browser:null,version:null};if(typeof n>"u"||!n.navigator||!n.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:t}=n;if(t.userAgentData&&t.userAgentData.brands){const i=t.userAgentData.brands.find(r=>r.brand==="Chromium");if(i)return{browser:"chrome",version:parseInt(i.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=parseInt(xn(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(xn(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(xn(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=xn(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function Fo(n){return Object.prototype.toString.call(n)==="[object Object]"}function Bo(n){return Fo(n)?Object.keys(n).reduce(function(e,t){const i=Fo(n[t]),r=i?Bo(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function Dr(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Dr(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{Dr(n,n.get(r),t)})}))}function jo(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",r=new Map;if(e===null)return r;const s=[];return n.forEach(c=>{c.type==="track"&&c.trackIdentifier===e.id&&s.push(c)}),s.forEach(c=>{n.forEach(a=>{a.type===i&&a.trackId===c.id&&Dr(n,a,r)})}),r}const Vo=Uo;function qo(n,e){const t=n&&n.navigator;if(!t.mediaDevices)return;const i=function(a){if(typeof a!="object"||a.mandatory||a.optional)return a;const o={};return Object.keys(a).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const l=typeof a[d]=="object"?a[d]:{ideal:a[d]};l.exact!==void 0&&typeof l.exact=="number"&&(l.min=l.max=l.exact);const u=function(h,f){return h?h+f.charAt(0).toUpperCase()+f.slice(1):f==="deviceId"?"sourceId":f};if(l.ideal!==void 0){o.optional=o.optional||[];let h={};typeof l.ideal=="number"?(h[u("min",d)]=l.ideal,o.optional.push(h),h={},h[u("max",d)]=l.ideal,o.optional.push(h)):(h[u("",d)]=l.ideal,o.optional.push(h))}l.exact!==void 0&&typeof l.exact!="number"?(o.mandatory=o.mandatory||{},o.mandatory[u("",d)]=l.exact):["min","max"].forEach(h=>{l[h]!==void 0&&(o.mandatory=o.mandatory||{},o.mandatory[u(h,d)]=l[h])})}),a.advanced&&(o.optional=(o.optional||[]).concat(a.advanced)),o},r=function(a,o){if(e.version>=61)return o(a);if(a=JSON.parse(JSON.stringify(a)),a&&typeof a.audio=="object"){const d=function(l,u,h){u in l&&!(h in l)&&(l[h]=l[u],delete l[u])};a=JSON.parse(JSON.stringify(a)),d(a.audio,"autoGainControl","googAutoGainControl"),d(a.audio,"noiseSuppression","googNoiseSuppression"),a.audio=i(a.audio)}if(a&&typeof a.video=="object"){let d=a.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const l=e.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!l)){delete a.video.facingMode;let u;if(d.exact==="environment"||d.ideal==="environment"?u=["back","rear"]:(d.exact==="user"||d.ideal==="user")&&(u=["front"]),u)return t.mediaDevices.enumerateDevices().then(h=>{h=h.filter(v=>v.kind==="videoinput");let f=h.find(v=>u.some(g=>v.label.toLowerCase().includes(g)));return!f&&h.length&&u.includes("back")&&(f=h[h.length-1]),f&&(a.video.deviceId=d.exact?{exact:f.deviceId}:{ideal:f.deviceId}),a.video=i(a.video),Vo("chrome: "+JSON.stringify(a)),o(a)})}a.video=i(a.video)}return Vo("chrome: "+JSON.stringify(a)),o(a)},s=function(a){return e.version>=64?a:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[a.name]||a.name,message:a.message,constraint:a.constraint||a.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},c=function(a,o,d){r(a,l=>{t.webkitGetUserMedia(l,o,u=>{d&&d(s(u))})})};if(t.getUserMedia=c.bind(t),t.mediaDevices.getUserMedia){const a=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(o){return r(o,d=>a(d).then(l=>{if(d.audio&&!l.getAudioTracks().length||d.video&&!l.getVideoTracks().length)throw l.getTracks().forEach(u=>{u.stop()}),new DOMException("","NotFoundError");return l},l=>Promise.reject(s(l))))}}}function Ko(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function Wo(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("ontrack"in n.RTCPeerConnection.prototype)){Object.defineProperty(n.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=i=>{i.stream.addEventListener("addtrack",r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===r.track.id):s={track:r.track};const c=new Event("track");c.track=r.track,c.receiver=s,c.transceiver={receiver:s},c.streams=[i.stream],this.dispatchEvent(c)}),i.stream.getTracks().forEach(r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===r.id):s={track:r};const c=new Event("track");c.track=r,c.receiver=s,c.transceiver={receiver:s},c.streams=[i.stream],this.dispatchEvent(c)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Ht(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function Ho(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("getSenders"in n.RTCPeerConnection.prototype)&&"createDTMFSender"in n.RTCPeerConnection.prototype){const e=function(r,s){return{track:s,get dtmf(){return this._dtmf===void 0&&(s.kind==="audio"?this._dtmf=r.createDTMFSender(s):this._dtmf=null),this._dtmf},_pc:r}};if(!n.RTCPeerConnection.prototype.getSenders){n.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(a,o){let d=r.apply(this,arguments);return d||(d=e(this,a),this._senders.push(d)),d};const s=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(a){s.apply(this,arguments);const o=this._senders.indexOf(a);o!==-1&&this._senders.splice(o,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(c=>{this._senders.push(e(this,c))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],i.apply(this,[s]),s.getTracks().forEach(c=>{const a=this._senders.find(o=>o.track===c);a&&this._senders.splice(this._senders.indexOf(a),1)})}}else if(typeof n=="object"&&n.RTCPeerConnection&&"getSenders"in n.RTCPeerConnection.prototype&&"createDTMFSender"in n.RTCPeerConnection.prototype&&n.RTCRtpSender&&!("dtmf"in n.RTCRtpSender.prototype)){const e=n.RTCPeerConnection.prototype.getSenders;n.RTCPeerConnection.prototype.getSenders=function(){const i=e.apply(this,[]);return i.forEach(r=>r._pc=this),i},Object.defineProperty(n.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Jo(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender&&n.RTCRtpReceiver))return;if(!("getStats"in n.RTCRtpSender.prototype)){const t=n.RTCPeerConnection.prototype.getSenders;t&&(n.RTCPeerConnection.prototype.getSenders=function(){const s=t.apply(this,[]);return s.forEach(c=>c._pc=this),s});const i=n.RTCPeerConnection.prototype.addTrack;i&&(n.RTCPeerConnection.prototype.addTrack=function(){const s=i.apply(this,arguments);return s._pc=this,s}),n.RTCRtpSender.prototype.getStats=function(){const s=this;return this._pc.getStats().then(c=>jo(c,s.track,!0))}}if(!("getStats"in n.RTCRtpReceiver.prototype)){const t=n.RTCPeerConnection.prototype.getReceivers;t&&(n.RTCPeerConnection.prototype.getReceivers=function(){const r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r}),Ht(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>jo(s,r.track,!1))}}if(!("getStats"in n.RTCRtpSender.prototype&&"getStats"in n.RTCRtpReceiver.prototype))return;const e=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof n.MediaStreamTrack){const i=arguments[0];let r,s,c;return this.getSenders().forEach(a=>{a.track===i&&(r?c=!0:r=a)}),this.getReceivers().forEach(a=>(a.track===i&&(s?c=!0:s=a),a.track===i)),c||r&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):r?r.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function Go(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(c=>this._shimmedLocalStreams[c][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(c,a){if(!a)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const o=e.apply(this,arguments);return this._shimmedLocalStreams[a.id]?this._shimmedLocalStreams[a.id].indexOf(o)===-1&&this._shimmedLocalStreams[a.id].push(o):this._shimmedLocalStreams[a.id]=[a,o],o};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(c){this._shimmedLocalStreams=this._shimmedLocalStreams||{},c.getTracks().forEach(d=>{if(this.getSenders().find(u=>u.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const a=this.getSenders();t.apply(this,arguments);const o=this.getSenders().filter(d=>a.indexOf(d)===-1);this._shimmedLocalStreams[c.id]=[c].concat(o)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[c.id],i.apply(this,arguments)};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},c&&Object.keys(this._shimmedLocalStreams).forEach(a=>{const o=this._shimmedLocalStreams[a].indexOf(c);o!==-1&&this._shimmedLocalStreams[a].splice(o,1),this._shimmedLocalStreams[a].length===1&&delete this._shimmedLocalStreams[a]}),r.apply(this,arguments)}}function zo(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return Go(n);const t=n.RTCPeerConnection.prototype.getLocalStreams;n.RTCPeerConnection.prototype.getLocalStreams=function(){const l=t.apply(this);return this._reverseStreams=this._reverseStreams||{},l.map(u=>this._reverseStreams[u.id])};const i=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(l){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},l.getTracks().forEach(u=>{if(this.getSenders().find(f=>f.track===u))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[l.id]){const u=new n.MediaStream(l.getTracks());this._streams[l.id]=u,this._reverseStreams[u.id]=l,l=u}i.apply(this,[l])};const r=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(l){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[l.id]||l]),delete this._reverseStreams[this._streams[l.id]?this._streams[l.id].id:l.id],delete this._streams[l.id]},n.RTCPeerConnection.prototype.addTrack=function(l,u){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const h=[].slice.call(arguments,1);if(h.length!==1||!h[0].getTracks().find(g=>g===l))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(g=>g.track===l))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const v=this._streams[u.id];if(v)v.addTrack(l),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const g=new n.MediaStream([l]);this._streams[u.id]=g,this._reverseStreams[g.id]=u,this.addStream(g)}return this.getSenders().find(g=>g.track===l)};function s(d,l){let u=l.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const f=d._reverseStreams[h],v=d._streams[f.id];u=u.replace(new RegExp(v.id,"g"),f.id)}),new RTCSessionDescription({type:l.type,sdp:u})}function c(d,l){let u=l.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const f=d._reverseStreams[h],v=d._streams[f.id];u=u.replace(new RegExp(f.id,"g"),v.id)}),new RTCSessionDescription({type:l.type,sdp:u})}["createOffer","createAnswer"].forEach(function(d){const l=n.RTCPeerConnection.prototype[d],u={[d](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?l.apply(this,[v=>{const g=s(this,v);h[0].apply(null,[g])},v=>{h[1]&&h[1].apply(null,v)},arguments[2]]):l.apply(this,arguments).then(v=>s(this,v))}};n.RTCPeerConnection.prototype[d]=u[d]});const a=n.RTCPeerConnection.prototype.setLocalDescription;n.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?a.apply(this,arguments):(arguments[0]=c(this,arguments[0]),a.apply(this,arguments))};const o=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const d=o.get.apply(this);return d.type===""?d:s(this,d)}}),n.RTCPeerConnection.prototype.removeTrack=function(l){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!l._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(l._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(f=>{this._streams[f].getTracks().find(g=>l.track===g)&&(h=this._streams[f])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(l.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Ar(n,e){!n.RTCPeerConnection&&n.webkitRTCPeerConnection&&(n.RTCPeerConnection=n.webkitRTCPeerConnection),n.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const i=n.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new(t==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};n.RTCPeerConnection.prototype[t]=r[t]})}function $o(n,e){Ht(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var Qo=Object.freeze({__proto__:null,fixNegotiationNeeded:$o,shimAddTrackRemoveTrack:zo,shimAddTrackRemoveTrackWithNative:Go,shimGetSendersWithDtmf:Ho,shimGetUserMedia:qo,shimMediaStream:Ko,shimOnTrack:Wo,shimPeerConnection:Ar,shimSenderReceiverGetStats:Jo});function Yo(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,c){Mr("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(r).then(s,c)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const r=function(c,a,o){a in c&&!(o in c)&&(c[o]=c[a],delete c[a])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(c){return typeof c=="object"&&typeof c.audio=="object"&&(c=JSON.parse(JSON.stringify(c)),r(c.audio,"autoGainControl","mozAutoGainControl"),r(c.audio,"noiseSuppression","mozNoiseSuppression")),s(c)},i&&i.prototype.getSettings){const c=i.prototype.getSettings;i.prototype.getSettings=function(){const a=c.apply(this,arguments);return r(a,"mozAutoGainControl","autoGainControl"),r(a,"mozNoiseSuppression","noiseSuppression"),a}}if(i&&i.prototype.applyConstraints){const c=i.prototype.applyConstraints;i.prototype.applyConstraints=function(a){return this.kind==="audio"&&typeof a=="object"&&(a=JSON.parse(JSON.stringify(a)),r(a,"autoGainControl","mozAutoGainControl"),r(a,"noiseSuppression","mozNoiseSuppression")),c.apply(this,[a])}}}}function Dm(n,e){n.navigator.mediaDevices&&"getDisplayMedia"in n.navigator.mediaDevices||n.navigator.mediaDevices&&(n.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){const r=new DOMException("getDisplayMedia without video constraints is undefined");return r.name="NotFoundError",r.code=8,Promise.reject(r)}return i.video===!0?i.video={mediaSource:e}:i.video.mediaSource=e,n.navigator.mediaDevices.getUserMedia(i)})}function Xo(n){typeof n=="object"&&n.RTCTrackEvent&&"receiver"in n.RTCTrackEvent.prototype&&!("transceiver"in n.RTCTrackEvent.prototype)&&Object.defineProperty(n.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function xr(n,e){if(typeof n!="object"||!(n.RTCPeerConnection||n.mozRTCPeerConnection))return;!n.RTCPeerConnection&&n.mozRTCPeerConnection&&(n.RTCPeerConnection=n.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){const s=n.RTCPeerConnection.prototype[r],c={[r](){return arguments[0]=new(r==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};n.RTCPeerConnection.prototype[r]=c[r]});const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},i=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){const[s,c,a]=arguments;return i.apply(this,[s||null]).then(o=>{if(e.version<53&&!c)try{o.forEach(d=>{d.type=t[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;o.forEach((l,u)=>{o.set(u,Object.assign({},l,{type:t[l.type]||l.type}))})}return o}).then(c,a)}}function Zo(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpSender.prototype)return;const e=n.RTCPeerConnection.prototype.getSenders;e&&(n.RTCPeerConnection.prototype.getSenders=function(){const r=e.apply(this,[]);return r.forEach(s=>s._pc=this),r});const t=n.RTCPeerConnection.prototype.addTrack;t&&(n.RTCPeerConnection.prototype.addTrack=function(){const r=t.apply(this,arguments);return r._pc=this,r}),n.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function ec(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpReceiver.prototype)return;const e=n.RTCPeerConnection.prototype.getReceivers;e&&(n.RTCPeerConnection.prototype.getReceivers=function(){const i=e.apply(this,[]);return i.forEach(r=>r._pc=this),i}),Ht(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function tc(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){Mr("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function nc(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function ic(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.addTransceiver;e&&(n.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let i=arguments[1]&&arguments[1].sendEncodings;i===void 0&&(i=[]),i=[...i];const r=i.length>0;r&&i.forEach(c=>{if("rid"in c&&!/^[a-z0-9]{0,16}$/i.test(c.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in c&&!(parseFloat(c.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in c&&!(parseFloat(c.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(r){const{sender:c}=s,a=c.getParameters();(!("encodings"in a)||a.encodings.length===1&&Object.keys(a.encodings[0]).length===0)&&(a.encodings=i,c.sendEncodings=i,this.setParametersPromises.push(c.setParameters(a).then(()=>{delete c.sendEncodings}).catch(()=>{delete c.sendEncodings})))}return s})}function rc(n){if(!(typeof n=="object"&&n.RTCRtpSender))return;const e=n.RTCRtpSender.prototype.getParameters;e&&(n.RTCRtpSender.prototype.getParameters=function(){const i=e.apply(this,arguments);return"encodings"in i||(i.encodings=[].concat(this.sendEncodings||[{}])),i})}function sc(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.createOffer;n.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function ac(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.createAnswer;n.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}var oc=Object.freeze({__proto__:null,shimAddTransceiver:ic,shimCreateAnswer:ac,shimCreateOffer:sc,shimGetDisplayMedia:Dm,shimGetParameters:rc,shimGetUserMedia:Yo,shimOnTrack:Xo,shimPeerConnection:xr,shimRTCDataChannel:nc,shimReceiverGetStats:ec,shimRemoveStream:tc,shimSenderGetStats:Zo});function cc(n){if(!(typeof n!="object"||!n.RTCPeerConnection)){if("getLocalStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in n.RTCPeerConnection.prototype)){const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addStream=function(i){this._localStreams||(this._localStreams=[]),this._localStreams.includes(i)||this._localStreams.push(i),i.getAudioTracks().forEach(r=>e.call(this,r,i)),i.getVideoTracks().forEach(r=>e.call(this,r,i))},n.RTCPeerConnection.prototype.addTrack=function(i){for(var r=arguments.length,s=new Array(r>1?r-1:0),c=1;c<r;c++)s[c-1]=arguments[c];return s&&s.forEach(a=>{this._localStreams?this._localStreams.includes(a)||this._localStreams.push(a):this._localStreams=[a]}),e.apply(this,arguments)}}"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){this._localStreams||(this._localStreams=[]);const i=this._localStreams.indexOf(t);if(i===-1)return;this._localStreams.splice(i,1);const r=t.getTracks();this.getSenders().forEach(s=>{r.includes(s.track)&&this.removeTrack(s)})})}}function dc(n){if(!(typeof n!="object"||!n.RTCPeerConnection)&&("getRemoteStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in n.RTCPeerConnection.prototype))){Object.defineProperty(n.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=i=>{i.streams.forEach(r=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(r))return;this._remoteStreams.push(r);const s=new Event("addstream");s.stream=r,this.dispatchEvent(s)})})}});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){const i=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(s=>{if(i._remoteStreams||(i._remoteStreams=[]),i._remoteStreams.indexOf(s)>=0)return;i._remoteStreams.push(s);const c=new Event("addstream");c.stream=s,i.dispatchEvent(c)})}),e.apply(i,arguments)}}}function lc(n){if(typeof n!="object"||!n.RTCPeerConnection)return;const e=n.RTCPeerConnection.prototype,t=e.createOffer,i=e.createAnswer,r=e.setLocalDescription,s=e.setRemoteDescription,c=e.addIceCandidate;e.createOffer=function(d,l){const u=arguments.length>=2?arguments[2]:arguments[0],h=t.apply(this,[u]);return l?(h.then(d,l),Promise.resolve()):h},e.createAnswer=function(d,l){const u=arguments.length>=2?arguments[2]:arguments[0],h=i.apply(this,[u]);return l?(h.then(d,l),Promise.resolve()):h};let a=function(o,d,l){const u=r.apply(this,[o]);return l?(u.then(d,l),Promise.resolve()):u};e.setLocalDescription=a,a=function(o,d,l){const u=s.apply(this,[o]);return l?(u.then(d,l),Promise.resolve()):u},e.setRemoteDescription=a,a=function(o,d,l){const u=c.apply(this,[o]);return l?(u.then(d,l),Promise.resolve()):u},e.addIceCandidate=a}function uc(n){const e=n&&n.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,i=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=r=>i(hc(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function hc(n){return n&&n.video!==void 0?Object.assign({},n,{video:Bo(n.video)}):n}function mc(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,r){if(i&&i.iceServers){const s=[];for(let c=0;c<i.iceServers.length;c++){let a=i.iceServers[c];a.urls===void 0&&a.url?(Mr("RTCIceServer.url","RTCIceServer.urls"),a=JSON.parse(JSON.stringify(a)),a.urls=a.url,delete a.url,s.push(a)):s.push(i.iceServers[c])}i.iceServers=s}return new e(i,r)},n.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(n.RTCPeerConnection,"generateCertificate",{get(){return e.generateCertificate}})}function fc(n){typeof n=="object"&&n.RTCTrackEvent&&"receiver"in n.RTCTrackEvent.prototype&&!("transceiver"in n.RTCTrackEvent.prototype)&&Object.defineProperty(n.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function pc(n){const e=n.RTCPeerConnection.prototype.createOffer;n.RTCPeerConnection.prototype.createOffer=function(i){if(i){typeof i.offerToReceiveAudio<"u"&&(i.offerToReceiveAudio=!!i.offerToReceiveAudio);const r=this.getTransceivers().find(c=>c.receiver.track.kind==="audio");i.offerToReceiveAudio===!1&&r?r.direction==="sendrecv"?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":r.direction==="recvonly"&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):i.offerToReceiveAudio===!0&&!r&&this.addTransceiver("audio",{direction:"recvonly"}),typeof i.offerToReceiveVideo<"u"&&(i.offerToReceiveVideo=!!i.offerToReceiveVideo);const s=this.getTransceivers().find(c=>c.receiver.track.kind==="video");i.offerToReceiveVideo===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):i.offerToReceiveVideo===!0&&!s&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function gc(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var vc=Object.freeze({__proto__:null,shimAudioContext:gc,shimCallbacksAPI:lc,shimConstraints:hc,shimCreateOfferLegacy:pc,shimGetUserMedia:uc,shimLocalStreamsAPI:cc,shimRTCIceServerUrls:mc,shimRemoteStreamsAPI:dc,shimTrackEventTransceiver:fc}),Lr={exports:{}},yc;function Am(){return yc||(yc=1,function(n){const e={};e.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(t){return t.trim().split(`
3
3
  `).map(i=>i.trim())},e.splitSections=function(t){return t.split(`
4
4
  m=`).map((r,s)=>(s>0?"m="+r:r).trim()+`\r
@@ -30,7 +30,7 @@ export declare function getAgentInfo(agent: Agent): {
30
30
  maxResponseLength: number | undefined;
31
31
  agentId: string;
32
32
  access: "public" | "private" | "rejected" | "pending-public" | "unlisted" | undefined;
33
- agentName: string | undefined;
33
+ name: string | undefined;
34
34
  };
35
35
  export declare const sumFunc: (numbers: number[]) => number;
36
36
  export declare const average: (numbers: number[]) => number;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@d-id/client-sdk",
3
3
  "private": false,
4
- "version": "1.1.56-staging.253",
4
+ "version": "1.1.57",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {