@d-id/client-sdk 1.1.63-staging.290 → 1.1.64-staging.299

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.
@@ -1,4 +1,4 @@
1
- (function(Q,Ne){typeof exports=="object"&&typeof module<"u"?Ne(exports):typeof define=="function"&&define.amd?define(["exports"],Ne):(Q=typeof globalThis<"u"?globalThis:Q||self,Ne(Q.index={}))})(this,function(Q){"use strict";var Hg=Object.defineProperty;var Jg=(Q,Ne,Wt)=>Ne in Q?Hg(Q,Ne,{enumerable:!0,configurable:!0,writable:!0,value:Wt}):Q[Ne]=Wt;var si=(Q,Ne,Wt)=>Jg(Q,typeof Ne!="symbol"?Ne+"":Ne,Wt);class Ne extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));si(this,"kind");si(this,"description");si(this,"error");this.kind=t,this.description=i,this.error=r}}class Wt extends Ne{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Ws extends Ne{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class Ht extends Ne{constructor(t,i){super({kind:"ValidationError",description:t});si(this,"key");this.key=i}}class Hs extends Ne{constructor(e){super({kind:"WSError",description:e})}}var Js=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Js||{}),Gs=(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))(Gs||{}),zs=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(zs||{}),$s=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))($s||{}),_e=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(_e||{}),We=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(We||{}),Qs=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Qs||{}),Ys=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(Ys||{}),Xs=(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))(Xs||{}),er=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(er||{});const El=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var ee=(n=>(n.Start="START",n.Stop="STOP",n))(ee||{}),it=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(it||{}),Pe=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(Pe||{}),Y=(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.ToolCallStarted="tool-call/started",n.ToolCallDone="tool-call/done",n.ToolCallError="tool-call/error",n))(Y||{}),ce=(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))(ce||{}),rt=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(rt||{}),ai=(n=>(n.Livekit="livekit",n))(ai||{}),Zs=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(Zs||{}),ea=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(ea||{});const wl=45*1e3,Rl="X-Playground-Chat",wn="https://api.d-id.com",_l="wss://notifications.d-id.com",Pl="79f81a83a67430be2bc0fd61042b8faa",Il=(...n)=>{},ta=n=>new Promise(e=>setTimeout(e,n)),Rn=(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)},na=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,Ml=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},Ol=n=>n.type==="talk"?n.source_url:n.presenter_id,tr=n=>n===er.Expressive,Dl=n=>[_e.TextOnly,_e.Playground,_e.Maintenance].includes(n),ia=n=>n&&[_e.DirectPlayback,_e.Off].includes(n),ra=/\[!\[([^\[\]]*)\]\(([^)\s]+)\)\]\(([^)\s]+)\)/g,sa=/!\[([^\[\]]*)\]\(([^)\s]+)\)/g,aa=new RegExp("(?<!!)\\[([^\\[\\]]+)\\]\\(([^)\\s]+)\\)","g"),oa=/<a\s+href="([^"]*)"[^>]*?>([^<]*)<\/a>/gi;function ca(n){if(n.length===0)return[];const e=[];let t;for(ra.lastIndex=0;(t=ra.exec(n))!==null;)e.push({index:t.index,length:t[0].length,part:{type:"video",src:t[3],alt:t[1],thumbnail:t[2]}});for(sa.lastIndex=0;(t=sa.exec(n))!==null;)if(!e.some(o=>t.index>=o.index&&t.index<o.index+o.length)){const o=t[2],a={type:"image",src:o,alt:t[1]};o.toLowerCase().endsWith(".gif")&&(a.mimeType="image/gif"),e.push({index:t.index,length:t[0].length,part:a})}for(aa.lastIndex=0;(t=aa.exec(n))!==null;)e.some(o=>t.index>=o.index&&t.index<o.index+o.length)||e.push({index:t.index,length:t[0].length,part:{type:"link",href:t[2],label:t[1]}});for(oa.lastIndex=0;(t=oa.exec(n))!==null;)e.some(o=>t.index>=o.index&&t.index<o.index+o.length)||e.push({index:t.index,length:t[0].length,part:{type:"link",href:t[1],label:t[2]}});if(e.length===0)return[{type:"text",text:n}];e.sort((s,o)=>s.index-o.index);const i=[];let r=0;for(const s of e)s.index>r&&i.push({type:"text",text:n.slice(r,s.index)}),i.push(s.part),r=s.index+s.length;return r<n.length&&i.push({type:"text",text:n.slice(r)}),i}let da="",nr=[];function _n(n){return n===da||(da=n,nr=ca(n)),nr}function Al(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function ir(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:o}=Al(t.timeout,t.timeoutErrorMessage),a=n().finally(o);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await ta(t.delayMs),t.onRetry(s)}throw i}function rr(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=Rn();window.localStorage.setItem("did_external_key_id",t),e=t}return e}function la(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}.${rr(e)}`;throw new Error(`Unknown auth type: ${n}`)}const xl=n=>ir(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function sr(n,e=wn,t,i){const r=async(s,o)=>{const{skipErrorHandler:a,...c}=o||{},d=await xl(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...c,headers:{...c.headers,Authorization:la(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:c,headers:d.headers}),u}return d.json()};return{get(s,o){return r(s,{...o,method:"GET"})},post(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"POST"})},delete(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"DELETE"})},patch(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"PATCH"})}}}function Ll(n,e=wn,t,i){const r=sr(n,`${e}/agents`,t,i);return{create(s,o){return r.post("/",s,o)},getAgents(s,o){return r.get(`/${s?`?tag=${s}`:""}`,o).then(a=>a??[])},getById(s,o){return r.get(`/${s}`,o)},delete(s,o){return r.delete(`/${s}`,void 0,o)},update(s,o,a){return r.patch(`/${s}`,o,a)},newChat(s,o,a){return r.post(`/${s}/chat`,o,a)},chat(s,o,a,c){return r.post(`/${s}/chat/${o}`,a,c)},createRating(s,o,a,c){return r.post(`/${s}/chat/${o}/ratings`,a,c)},updateRating(s,o,a,c,d){return r.patch(`/${s}/chat/${o}/ratings/${a}`,c,d)},deleteRating(s,o,a,c){return r.delete(`/${s}/chat/${o}/ratings/${a}`,c)},getSTTToken(s,o){return r.get(`/${s}/stt-token`,o)}}}function Nl(n){var r,s,o,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const c=navigator.platform;return c.toLowerCase().includes("win")?"Windows":c.toLowerCase().includes("mac")?"Mac OS X":c.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:na(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(o=n.presenter)==null?void 0:o.voice)==null?void 0:a.type}}}function Ul(n){var t,i,r,s,o,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:na(n.presenter),presenterType:Ml(n.presenter),presenter:Ol(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=(o=n.knowledge)==null?void 0:o.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 Fl=n=>n.reduce((e,t)=>e+t,0),ua=n=>Fl(n)/n.length;function Bl(n,e,t){var c,d,l;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:o}=((c=e==null?void 0:e.presenter)==null?void 0:c.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:o}},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 ha(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}const jl="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Vl(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:rr(n.externalId),agentId:n.agentId,additionalProperties:{id:rr(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Rn,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:o,...a}=r||{},c=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:c,$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(jl,d).catch(l=>console.error("Analytics tracking error:",l)),Promise.resolve()},linkTrack(i,r,s,o){t[i]||(t[i]={events:{},resolvedDependencies:[]}),o.includes(s)||o.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),o.every(d=>a.resolvedDependencies.includes(d))){const d=o.reduce((l,u)=>a.events[u]?{...l,...a.events[u].props}:l,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(l=>!o.includes(l)),o.forEach(l=>{delete a.events[l]})}}}}function ar(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const mt=ar(),or=ar(),ma=ar();function fa(n){return n===_e.Playground?{headers:{[Rl]:"true"}}:{}}async function pa(n,e,t,i,r=!1,s){try{return!s&&!ia(i)&&(s=await e.newChat(n.id,{persist:r},fa(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(o){throw ql(o)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const ql=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function Kl(n){return n&&n.length>0?n:[]}function Wl(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:o}=n,{onMessage:a=null,onOpen:c=null,onClose:d=null,onError:l=null}=i||{},u=new WebSocket(`${r}?authorization=${encodeURIComponent(la(s,o))}`);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=>{c==null||c(h),e(u)}})}async function Hl(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 Wl(n)}catch(r){if(i===e)throw r;await ta(i*500)}return t}async function Jl(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await Hl({auth:n,host:e,externalId:i,callbacks:{onError:o=>{var a;return(a=t.onError)==null?void 0:a.call(t,new Hs(o))},onMessage(o){const a=JSON.parse(o.data);r.forEach(c=>c(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:o=>r.push(o)}}function Gl(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function zl(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,parts:_n(n.content),created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(r),t==null||t([...e.messages],"user")}function $l(n,e,t,i,r,s){if(n===We.Transcribe&&e.content){zl(e,i,r);return}if(!(n===We.Partial||n===We.Answer))return;const o=i.messages[i.messages.length-1],a=e.id&&(o==null?void 0:o.role)==="assistant"&&o.id!==e.id;let c;if((o==null?void 0:o.role)==="assistant"&&!a)c=o;else if(!o||o.transcribed&&o.role==="user"||a)a&&s(),c={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",parts:[],created_at:e.created_at||new Date().toISOString()},i.messages.push(c);else return;const{content:d,sequence:l}=e;n===We.Partial?t[l]=d:t.answer=d;const u=Gl(t);(c.content!==u||n===We.Answer)&&(c.content=u,c.parts=_n(u),r==null||r([...i.messages],n))}function Ql(n,e,t,i,r){let s={};const o=()=>s={};let a="answer";const c=(d,l)=>{var u,h;l==="user"&&o(),a=l,(h=(u=t.callbacks).onNewMessage)==null||h.call(u,d,l)};return{clearQueue:o,onMessage:(d,l)=>{var u,h;if("content"in l){const f=d===Y.ChatAnswer?We.Answer:d===Y.ChatAudioTranscribed?We.Transcribe:d;$l(f,l,s,e,c,o),f===We.Answer&&n.track("agent-message-received",{content:l.content,messages:e.messages.length,mode:e.chatMode})}else{const f=Y,v=[f.StreamVideoDone,f.StreamVideoError,f.StreamVideoRejected],g=[f.StreamFailed,f.StreamVideoError,f.StreamVideoRejected],S=Bl(l,i,{mode:e.chatMode});if(d=d,d===f.StreamVideoCreated&&(n.linkTrack("agent-video",S,f.StreamVideoCreated,["start"]),l.sentiment)){const k=e.messages[e.messages.length-1];if((k==null?void 0:k.role)==="assistant"){const R={...k,sentiment:l.sentiment};e.messages[e.messages.length-1]=R,c==null||c([...e.messages],a)}}if(v.includes(d)){const k=d.split("/")[1];g.includes(d)?n.track("agent-video",{...S,event:k}):n.linkTrack("agent-video",{...S,event:k},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 Yl(n,e,t,i){const r=sr(n,`${e}/agents/${t}`,i);return{createStream(s,o){return r.post("/streams",s,{signal:o})},startConnection(s,o,a,c){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:o},{signal:c})},addIceCandidate(s,o,a,c){return r.post(`/streams/${s}/ice`,{session_id:a,...o},{signal:c})},sendStreamRequest(s,o,a){return r.post(`/streams/${s}`,{session_id:o,...a})},close(s,o){return r.delete(`/streams/${s}`,{session_id:o})}}}const ga=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??"");function Xl(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 Zl(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 eu(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,o=i.nominated===!0;r>0&&(o||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 va(n,e,t){const i=n.map((c,d)=>d===0?t?{timestamp:c.timestamp,duration:0,rtt:c.rtt,bytesReceived:c.bytesReceived-t.bytesReceived,bitrate:(c.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-t.packetsReceived,packetsLost:c.packetsLost-t.packetsLost,framesDropped:c.framesDropped-t.framesDropped,framesDecoded:c.framesDecoded-t.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-t.jitterBufferDelay)/(c.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-t.freezeCount,freezeDuration:c.freezeDuration-t.freezeDuration}:{timestamp:c.timestamp,rtt:c.rtt,duration:0,bytesReceived:c.bytesReceived,bitrate:c.bytesReceived*8/(e/1e3),packetsReceived:c.packetsReceived,packetsLost:c.packetsLost,framesDropped:c.framesDropped,framesDecoded:c.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount,avgJitterDelayInInterval:c.jitterBufferDelay/c.jitterBufferEmittedCount,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.freezeDuration}:{timestamp:c.timestamp,duration:e*d/1e3,rtt:c.rtt,bytesReceived:c.bytesReceived-n[d-1].bytesReceived,bitrate:(c.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-n[d-1].packetsReceived,packetsLost:c.packetsLost-n[d-1].packetsLost,framesDropped:c.framesDropped-n[d-1].framesDropped,framesDecoded:c.framesDecoded-n[d-1].framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-n[d-1].jitterBufferDelay)/(c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-n[d-1].freezeCount,freezeDuration:c.freezeDuration-n[d-1].freezeDuration}),r=Zl(i),s=r.reduce((c,d)=>c+(d.causes.includes("low fps")?1:0),0),o=i.filter(c=>!!c.avgJitterDelayInInterval).map(c=>c.avgJitterDelayInInterval),a=i.filter(c=>!!c.rtt).map(c=>c.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:ua(a),maxRtt:Math.max(...a),aggregateReport:Xl(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...o),maxJitterDelayInInterval:Math.max(...o),avgJitterDelayInInterval:ua(o)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function ya(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 Pn=10;function tu(n,e){let t=!1,i=!1,r=null,s=0,o=0,a={};async function c(){if(t){try{const d=await n();if(!d){r=setTimeout(c,Pn);return}const l=ya(d,"audio");if(!l){r=setTimeout(c,Pn);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,o=h,i=!0,r=setTimeout(c,Pn);return}const f=u-s,v=h-o;if(s=u,o=h,v>0&&f>0){t=!1,e(a);return}}catch{}t&&(r=setTimeout(c,Pn))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(c,Pn)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const oi=100,nu=Math.max(Math.ceil(400/oi),1),iu=.25,ru=.28;function su(){let n=0,e,t,i=0;return r=>{const s=ya(r,"video");if(!s)return{isReceiving:!1,avgJitterDelayInInterval:i};const o=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const l=o-e,u=a-t;i=l/u}e=o,t=a;const c=s.framesDecoded,d=c-n>0;return n=c,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}}function ba(n,e,t,i,r){let s=null,o=[],a,c=0,d=!1,l=it.Unknown,u=it.Unknown,h=0,f=0;const v=su();async function g(){const S=await n();if(!S)return;const{isReceiving:k,avgJitterDelayInInterval:R,freezeCount:_}=v(S),y=eu(S);if(k)c=0,h=_-f,u=R<iu?it.Strong:R>ru&&h>1?it.Weak:l,u!==l&&(r==null||r(u),l=u,f+=h,h=0),d||(i==null||i(ee.Start),a=o[o.length-1],o=[],d=!0),o.push(y);else if(d&&(c++,c>=nu)){const b=va(o,oi,a);i==null||i(ee.Stop,b),e()||t(),f=_,d=!1}}return{start:()=>{s||(s=setInterval(g,oi))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>va(o,oi,a)}}const au=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ka(n){switch(n){case"connected":return ce.Connected;case"checking":return ce.Connecting;case"failed":return ce.Fail;case"new":return ce.New;case"closed":return ce.Closed;case"disconnected":return ce.Disconnected;case"completed":return ce.Completed;default:return ce.New}}const ou=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 cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===ee.Start&&e===ee.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(ee.Start)):n===ee.Stop&&e===ee.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(ee.Stop,i))}function du({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===ee.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(ee.Start)):n===ee.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(ee.Stop,r)),e===ee.Start?i==null||i(Pe.Talking):e===ee.Stop&&(i==null||i(Pe.Idle))}function Ta({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:o}){r===rt.Legacy?cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:o}):r===rt.Fluent&&du({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:o})}async function lu(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=wn,analytics:o},a){var me;const c=ga(t,"WebRTCStreamingManager"),d=ou(c);let l=!1,u=!1,h=ee.Stop,f=ee.Stop;const{startConnection:v,sendStreamRequest:g,close:S,createStream:k,addIceCandidate:R}=Yl(r,s,n,i.onError),{id:_,offer:y,ice_servers:b,session_id:T,fluent:N,interrupt_enabled:F}=await k(e,a);(me=i.onStreamCreated)==null||me.call(i,{stream_id:_,session_id:T,agent_id:n});const O=new au({iceServers:b}),D=O.createDataChannel("JanusDataChannel");if(!T)throw new Error("Could not create session_id");const U=N?rt.Fluent:rt.Legacy;o.enrich({"stream-type":U});const K=e.stream_warmup&&!N,re=()=>l,P=()=>{var j;l=!0,u&&(c("CALLBACK: onConnectionStateChange(Connected)"),(j=i.onConnectionStateChange)==null||j.call(i,ce.Connected))},V=ba(()=>O.getStats(),re,P,(j,W)=>Ta({statsSignal:f=j,dataChannelSignal:U===rt.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:W,streamType:U,log:c}),j=>{var W;return(W=i.onConnectivityStateChange)==null?void 0:W.call(i,j)});V.start(),O.onicecandidate=j=>{var W;c("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},T,a):R(_,{candidate:null},T,a)}catch(he){(W=i.onError)==null||W.call(i,he,{streamId:_})}},D.onopen=()=>{u=!0,(!K||l)&&P()};let B=null;const $=j=>{var W;B=j,(W=i.onVideoIdChange)==null||W.call(i,j)};function ne(j,W){if(j===Y.StreamStarted&&typeof W=="object"&&"metadata"in W){const he=W.metadata;$(he.videoId)}j===Y.StreamDone&&$(null),h=j===Y.StreamStarted?ee.Start:ee.Stop,Ta({statsSignal:U===rt.Legacy?f:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:U,log:c})}function se(j,W){var Ce;const he=typeof W=="string"?W:W==null?void 0:W.metadata;he&&o.enrich({streamMetadata:he}),(Ce=i.onStreamReady)==null||Ce.call(i)}const ke={[Y.StreamStarted]:ne,[Y.StreamDone]:ne,[Y.StreamReady]:se};D.onmessage=j=>{var Ce;const{subject:W,data:he}=d(j.data);(Ce=ke[W])==null||Ce.call(ke,W,he)},O.oniceconnectionstatechange=()=>{var W;c("peerConnection.oniceconnectionstatechange => "+O.iceConnectionState);const j=ka(O.iceConnectionState);j!==ce.Connected&&((W=i.onConnectionStateChange)==null||W.call(i,j))},O.ontrack=j=>{var W;c("peerConnection.ontrack",j),c("CALLBACK: onSrcObjectReady"),(W=i.onSrcObjectReady)==null||W.call(i,j.streams[0])},await O.setRemoteDescription(y),c("set remote description OK");const xe=await O.createAnswer();c("create answer OK"),await O.setLocalDescription(xe),c("set local description OK"),await v(_,xe,T,a),c("start connection OK");function Le(j){var W,he;if(!l||D.readyState!=="open"){c("Data channel is not ready for sending messages"),(W=i.onError)==null||W.call(i,new Error("Data channel is not ready for sending messages"),{streamId:_});return}try{D.send(j)}catch(Ce){c("Error sending data channel message",Ce),(he=i.onError)==null||he.call(i,Ce,{streamId:_})}}return{speak(j){return g(_,T,j)},async disconnect(){var j;if(_){const W=ka(O.iceConnectionState);if(O){if(W===ce.New){V.stop();return}O.close(),O.oniceconnectionstatechange=null,O.onnegotiationneeded=null,O.onicecandidate=null,O.ontrack=null}try{W===ce.Connected&&await S(_,T).catch(he=>{})}catch(he){c("Error on close stream connection",he)}(j=i.onAgentActivityStateChange)==null||j.call(i,Pe.Idle),V.stop()}},sendDataChannelMessage:Le,sessionId:T,streamId:_,streamType:U,interruptAvailable:F??!1,isInterruptible:!0,interrupt(j){if(!F)throw new Error("Interrupt is not enabled for this stream");if(U!==rt.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!B)throw new Error("No active video to interrupt");const W={type:Y.StreamInterrupt,videoId:B,timestamp:Date.now()};Le(JSON.stringify(W))}}}var cr=(n=>(n.V1="v1",n.V2="v2",n))(cr||{});async function uu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...o}=e;return lu(r,o,t,i)}case"v2":{const{version:s,...o}=e;switch(o.transport.provider){case ai.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>Pu);return a(r,o,t);default:throw new Error(`Unsupported transport provider: ${o.transport.provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const hu="cht";function mu(){return{transport:{provider:ai.Livekit}}}function fu(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 pu(n,e){return tr(n.presenter.type)?{version:cr.V2,...mu()}:{version:cr.V1,...fu(e)}}function gu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function vu(n,e,t,i,r){r===rt.Fluent?yu(n,e,t,i,r):bu(n,e,t,i,r)}function yu(n,e,t,i,r){n===ee.Start?i.track("stream-session",{event:"start","stream-type":r}):n===ee.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 Sa(n,e,t,i,r){n===ee.Start?t.linkTrack("agent-video",{event:"start",...r,"stream-type":i},"start",[Y.StreamVideoCreated]):n===ee.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",[Y.StreamVideoDone])}function bu(n,e,t,i,r){n===ee.Start?i.linkTrack("agent-video",{event:"start",latency:mt.get(!0),"stream-type":r},"start",[Y.StreamVideoCreated]):n===ee.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",[Y.StreamVideoDone])}function ku(n,e,t){const i={call_id:e.call_id,name:e.name};if(n===Y.ToolCallStarted){t.track("agent-tool-call",{...i,event:"started"});return}const r=e;t.track("agent-tool-call",{...i,event:n===Y.ToolCallDone?"done":"error",duration_ms:r.duration_ms,extra_keys:r.extra?Object.keys(r.extra).length:0})}function Ca(n,e,t,i){return mt.reset(),ma.update(),new Promise(async(r,s)=>{try{let o,a=!1;const c=pu(n,e);t.enrich({"stream-version":c.version.toString()});let d=null;const l=n.presenter.type==="expressive";o=await uu(n,c,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onConnectionStateChange)==null||v.call(f,u),gu(u,h,t),u===ce.Connected&&(o?r(o):a=!0)},onVideoStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onVideoStateChange)==null||v.call(f,u),vu(u,n,h,t,o.streamType)},onAgentActivityStateChange:u=>{var h,f;(f=(h=e.callbacks).onAgentActivityStateChange)==null||f.call(h,u),u===Pe.Talking?(or.update(),d=v=>{Sa(ee.Start,n,t,o.streamType,v),d=null},l||d({latency:mt.get(!0)})):(or.reset(),d=null,Sa(ee.Stop,n,t,o.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=ma.get(!0);t.track("agent-chat",{event:"ready",latency:u})},onToolEvent:(u,h)=>{var f,v;(v=(f=e.callbacks).onToolEvent)==null||v.call(f,u,h),ku(u,h,t)}}},i),a&&r(o)}catch(o){s(o)}})}async function Tu(n,e,t,i,r){var l,u,h,f;const s=async()=>{if(tr(n.presenter.type)){const v=await Ca(n,e,i),g=`${hu}_${v.sessionId}`,S=new Date().toISOString();return{chatResult:{chatMode:_e.Functional,chat:{id:g,agent_id:n.id,owner_id:n.owner_id??"",created:S,modified:S,agent_id__created_at:S,agent_id__modified_at:S,chat_mode:_e.Functional,messages:[]}},streamingManager:v}}else{const v=new AbortController,g=v.signal;let S;try{const k=pa(n,t,i,e.mode,e.persistentChat,r),R=Ca(n,e,i,g).then(b=>(S=b,b)),[_,y]=await Promise.all([k,R]);return{chatResult:_,streamingManager:y}}catch(k){throw v.abort(),S&&await S.disconnect().catch(()=>{}),k}}},{chatResult:o,streamingManager:a}=await s(),{chat:c,chatMode:d}=o;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(u=(l=e.callbacks).onModeChange)==null||u.call(l,d),d!==_e.Functional)?((f=(h=e.callbacks).onError)==null||f.call(h,new Ws(d)),a==null||a.disconnect(),{chat:c}):{chat:c,streamingManager:a}}async function Su(n,e){var D,U,K,re;let t=!0;const i=e.mixpanelKey||Pl,r=e.wsURL||_l,s=e.baseURL||wn,o=e.mode||_e.Functional,a={messages:[],chatMode:o},c=Vl({token:i,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),d=Date.now();ha(()=>{c.track("agent-sdk",{event:"init"},d)});const l=Ll(e.auth,s,e.callbacks.onError,e.externalId),u=await l.getById(n);e.debug=e.debug||((D=u==null?void 0:u.advanced_settings)==null?void 0:D.ui_debug_mode);const h=tr(u.presenter.type);c.enrich(Ul(u));const{onMessage:f,clearQueue:v}=Ql(c,a,e,u,()=>{var P,V,B;(P=a.socketManager)==null||P.disconnect(),(B=(V=e.callbacks).onConnectionStateChange)==null||B.call(V,ce.Disconnected)});a.messages=Kl(e.initialMessages),(K=(U=e.callbacks).onNewMessage)==null||K.call(U,[...a.messages],"answer");const g=P=>{},S=({type:P})=>{var B,$,ne,se;if(!((B=a.streamingManager)!=null&&B.interruptAvailable)||!(($=a.streamingManager)!=null&&$.isInterruptible))return;const V=a.messages[a.messages.length-1];c.track("agent-video-interrupt",{type:P||"click",video_duration_to_interrupt:or.get(!0),message_duration_to_interrupt:mt.get(!0)}),V.interrupted=!0,(se=(ne=e.callbacks).onNewMessage)==null||se.call(ne,[...a.messages],"answer"),a.streamingManager.interrupt(P)},k=new Map;function R(P){return async V=>{const B=k.get(P);if(!B)throw new Error(`No handler registered for client tool: ${P}`);try{const $=JSON.parse(V.payload);return await B($)}catch($){throw new Error(`Client tool "${P}" failed: ${$.message}`)}}}function _(){var P,V,B,$;for(const[ne]of k)(V=(P=a.streamingManager)==null?void 0:P.unregisterRpcMethod)==null||V.call(P,ne),($=(B=a.streamingManager)==null?void 0:B.registerRpcMethod)==null||$.call(B,ne,R(ne))}function y(P,V){var $,ne;const B=!k.has(P);k.set(P,V),B&&((ne=($=a.streamingManager)==null?void 0:$.registerRpcMethod)==null||ne.call($,P,R(P)))}function b(P){var V,B;k.delete(P),(B=(V=a.streamingManager)==null?void 0:V.unregisterRpcMethod)==null||B.call(V,P)}const T=Date.now();ha(()=>{c.track("agent-sdk",{event:"loaded",...Nl(u)},T)});async function N(P){var ke,xe,Le,me,j,W,he;(xe=(ke=e.callbacks).onConnectionStateChange)==null||xe.call(ke,ce.Connecting),mt.reset(),P&&!t&&(delete a.chat,(me=(Le=e.callbacks).onNewMessage)==null||me.call(Le,[...a.messages],"answer"));const V=o===_e.DirectPlayback||h?Promise.resolve(void 0):Jl(e.auth,r,{onMessage:f,onError:e.callbacks.onError},e.externalId),B=ir(()=>Tu(u,{...e,mode:o,callbacks:{...e.callbacks,onVideoIdChange:g,onMessage:f}},l,c,a.chat),{limit:3,timeout:wl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:Ce=>(Ce==null?void 0:Ce.message)!=="Could not connect"&&Ce.status!==429&&(Ce==null?void 0:Ce.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(Ce=>{var we,nt;throw O(_e.Maintenance),(nt=(we=e.callbacks).onConnectionStateChange)==null||nt.call(we,ce.Fail),Ce}),[$,{streamingManager:ne,chat:se}]=await Promise.all([V,B]);se&&se.id!==((j=a.chat)==null?void 0:j.id)&&((he=(W=e.callbacks).onNewChat)==null||he.call(W,se.id)),a.streamingManager=ne,a.socketManager=$,a.chat=se,_(),t=!1,c.enrich({chatId:se==null?void 0:se.id,streamId:ne==null?void 0:ne.streamId,mode:a.chatMode}),O((se==null?void 0:se.chat_mode)??o)}async function F(){var P,V,B,$;(P=a.socketManager)==null||P.disconnect(),await((V=a.streamingManager)==null?void 0:V.disconnect()),delete a.streamingManager,delete a.socketManager,($=(B=e.callbacks).onConnectionStateChange)==null||$.call(B,ce.Disconnected)}async function O(P){var V,B;P!==a.chatMode&&(c.track("agent-mode-change",{mode:P}),a.chatMode=P,a.chatMode!==_e.Functional&&await F(),(B=(V=e.callbacks).onModeChange)==null||B.call(V,P))}return{agent:u,getStreamType:()=>{var P;return(P=a.streamingManager)==null?void 0:P.streamType},getIsInterruptAvailable:()=>{var P;return((P=a.streamingManager)==null?void 0:P.interruptAvailable)??!1},starterMessages:((re=u.knowledge)==null?void 0:re.starter_message)||[],getSTTToken:()=>l.getSTTToken(u.id),changeMode:O,enrichAnalytics:c.enrich,async connect(){await N(!0),c.track("agent-chat",{event:"connect",mode:a.chatMode})},async reconnect(){const P=a.streamingManager;if(h&&(P!=null&&P.reconnect)){try{await P.reconnect(),c.track("agent-chat",{event:"reconnect",mode:a.chatMode})}catch{await F(),await N(!1)}return}await F(),await N(!1),c.track("agent-chat",{event:"reconnect",mode:a.chatMode})},async disconnect(){await F(),c.track("agent-chat",{event:"disconnect",mode:a.chatMode})},publishMicrophoneStream(P){var V;return(V=a.streamingManager)!=null&&V.publishMicrophoneStream?a.streamingManager.publishMicrophoneStream(P):Promise.reject(new Error("publishMicrophoneStream is not available for this streaming manager"))},unpublishMicrophoneStream(){var P;return(P=a.streamingManager)!=null&&P.unpublishMicrophoneStream?a.streamingManager.unpublishMicrophoneStream():Promise.resolve()},replaceMicrophoneTrack(P){var V;return(V=a.streamingManager)!=null&&V.replaceMicrophoneTrack?a.streamingManager.replaceMicrophoneTrack(P):Promise.reject(new Error("replaceMicrophoneTrack is not available for this streaming manager"))},publishCameraStream(P){var V;return(V=a.streamingManager)!=null&&V.publishCameraStream?a.streamingManager.publishCameraStream(P):Promise.reject(new Error("publishCameraStream is not available for this streaming manager"))},unpublishCameraStream(){var P;return(P=a.streamingManager)!=null&&P.unpublishCameraStream?a.streamingManager.unpublishCameraStream():Promise.resolve()},async chat(P){var ne,se,ke,xe,Le;const V=()=>{if(ia(o))throw new Ht(`${o} is enabled, chat is disabled`);if(P.length>=800)throw new Ht("Message cannot be more than 800 characters");if(P.length===0)throw new Ht("Message cannot be empty");if(a.chatMode===_e.Maintenance)throw new Ht("Chat is in maintenance mode");if(![_e.TextOnly,_e.Playground].includes(a.chatMode)){if(!a.streamingManager)throw new Ht("Streaming manager is not initialized");if(!a.chat)throw new Ht("Chat is not initialized")}},B=async()=>{var me,j;if(!a.chat){const W=await pa(u,l,c,a.chatMode,e.persistentChat);if(!W.chat)throw new Wt(a.chatMode,!!e.persistentChat);a.chat=W.chat,(j=(me=e.callbacks).onNewChat)==null||j.call(me,a.chat.id)}return a.chat.id},$=async(me,j)=>{const W=a.chatMode===_e.Playground;return ir(h&&!W?async()=>{var we,nt;return await((nt=(we=a.streamingManager)==null?void 0:we.sendTextMessage)==null?void 0:nt.call(we,P)),Promise.resolve({})}:async()=>{var we,nt;return l.chat(u.id,j,{chatMode:a.chatMode,streamId:(we=a.streamingManager)==null?void 0:we.streamId,sessionId:(nt=a.streamingManager)==null?void 0:nt.sessionId,messages:me.map(({matches:Bs,...Cn})=>Cn)},{...fa(a.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:we=>{var Cn,Xi,Zi,ni;const nt=(Cn=we==null?void 0:we.message)==null?void 0:Cn.includes("missing or invalid session_id");return!((Xi=we==null?void 0:we.message)==null?void 0:Xi.includes("Stream Error"))&&!nt?((ni=(Zi=e.callbacks).onError)==null||ni.call(Zi,we),!1):!0},onRetry:async()=>{await F(),await N(!1)}})};try{v(),V(),a.messages.push({id:Rn(),role:"user",content:P,parts:_n(P),created_at:new Date(mt.update()).toISOString()}),(se=(ne=e.callbacks).onNewMessage)==null||se.call(ne,[...a.messages],"user");const me=await B(),j=await $([...a.messages],me);return a.messages.push({id:Rn(),role:"assistant",content:j.result||"",parts:_n(j.result||""),created_at:new Date().toISOString(),context:j.context,matches:j.matches}),c.track("agent-message-send",{event:"success",messages:a.messages.length+1}),j.result&&((xe=(ke=e.callbacks).onNewMessage)==null||xe.call(ke,[...a.messages],"answer"),c.track("agent-message-received",{latency:mt.get(!0),messages:a.messages.length})),j}catch(me){throw((Le=a.messages[a.messages.length-1])==null?void 0:Le.role)==="assistant"&&a.messages.pop(),c.track("agent-message-send",{event:"error",messages:a.messages.length}),me}},rate(P,V,B){var se,ke,xe,Le;const $=a.messages.find(me=>me.id===P);if(a.chat){if(!$)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const ne=((se=$.matches)==null?void 0:se.map(me=>[me.document_id,me.id]))??[];return c.track("agent-rate",{event:B?"update":"create",thumb:V===1?"up":"down",knowledge_id:((ke=u.knowledge)==null?void 0:ke.id)??"",matches:ne,score:V}),B?l.updateRating(u.id,a.chat.id,B,{knowledge_id:((xe=u.knowledge)==null?void 0:xe.id)??"",message_id:P,matches:ne,score:V}):l.createRating(u.id,a.chat.id,{knowledge_id:((Le=u.knowledge)==null?void 0:Le.id)??"",message_id:P,matches:ne,score:V})},deleteRate(P){if(!a.chat)throw new Error("Chat is not initialized");return c.track("agent-rate-delete",{type:"text"}),l.deleteRating(u.id,a.chat.id,P)},async speak(P){var ne,se,ke;function V(){if(typeof P=="string"){if(!u.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:u.presenter.voice,input:P,ssml:!1}}if(P.type==="text"&&!P.provider){if(!u.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:u.presenter.voice,input:P.input,ssml:P.ssml}}return P}const B=V();if(c.track("agent-speak",B),mt.update(),a.messages&&B.type==="text"&&(a.messages.push({id:Rn(),role:"assistant",content:B.input,parts:_n(B.input),created_at:new Date().toISOString()}),(se=(ne=e.callbacks).onNewMessage)==null||se.call(ne,[...a.messages],"answer")),Dl(a.chatMode))return{duration:0,video_id:"",status:"success"};if(!a.streamingManager)throw new Error("Please connect to the agent first");return a.streamingManager.speak({script:B,metadata:{chat_id:(ke=a.chat)==null?void 0:ke.id,agent_id:u.id}})},interrupt:S,registerClientTool:y,unregisterClientTool:b}}function Cu(n,e,t,i){const r=sr(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const Eu={[Y.ChatAnswer]:We.Answer,[Y.ChatPartial]:We.Partial},Ea=2e4;async function wu(){try{return await Promise.resolve().then(()=>Bg)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Ru={excellent:it.Strong,good:it.Strong,poor:it.Weak,lost:it.Unknown,unknown:it.Unknown},In=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});function dr(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,ce.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function _u(n,e,t){var bl;const i=ga(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:o,Track:a}=await wu(),{callbacks:c,auth:d,baseURL:l,analytics:u}=t;let h=null,f=!1;const v=rt.Fluent;let g=null;const S={isPublishing:!1,publication:null},k={isPublishing:!1,publication:null};let R=null,_=null,y=null,b=!1;h=new r({adaptiveStream:!1,dynacast:!0});let T=null,N=Pe.Idle,F=!0;const O=Cu(d,l||wn,n,c.onError);let D,U,K,re=!0;try{const w=await O.createStream({transport:e.transport,chat_persist:e.chat_persist??!0}),{id:x,session_token:H,session_url:J,interrupt_enabled:oe}=w;(bl=c.onStreamCreated)==null||bl.call(c,{session_id:x,stream_id:x,agent_id:n}),D=x,U=H,K=J,re=oe??!0,await h.prepareConnection(K,U)}catch(w){dr(w,i,c)}if(!K||!U||!D)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,V).on(s.ConnectionQualityChanged,B).on(s.ParticipantConnected,$).on(s.ParticipantDisconnected,ne).on(s.TrackSubscribed,xe).on(s.TrackUnsubscribed,Le).on(s.DataReceived,nt).on(s.MediaDevicesError,Bs).on(s.TranscriptionReceived,P).on(s.EncryptionError,Cn).on(s.TrackSubscriptionFailed,Xi);function P(w,x){x!=null&&x.isLocal&&(mt.update(),N===Pe.Talking&&(N=Pe.Idle))}try{await h.connect(K,U),i("LiveKit room joined successfully"),T=setTimeout(()=>{var w;i(`Track subscription timeout - no track subscribed within ${Ea/1e3} seconds after connect`),T=null,u.track("connectivity-error",{error:"Track subscription timeout",sessionId:D}),(w=c.onError)==null||w.call(c,new Error("Track subscription timeout"),{sessionId:D}),Ks("internal:track-subscription-timeout")},Ea)}catch(w){dr(w,i,c)}u.enrich({"stream-type":v});function V(w){var x,H,J,oe;switch(i("Connection state changed:",w),w){case o.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(x=c.onConnectionStateChange)==null||x.call(c,ce.Connecting,"livekit:connecting");break;case o.Connected:i("LiveKit room connected successfully"),f=!0;break;case o.Disconnected:i("LiveKit room disconnected"),f=!1,b=!1,S.publication=null,k.publication=null,(H=c.onConnectionStateChange)==null||H.call(c,ce.Disconnected,"livekit:disconnected");break;case o.Reconnecting:i("LiveKit room reconnecting..."),(J=c.onConnectionStateChange)==null||J.call(c,ce.Connecting,"livekit:reconnecting");break;case o.SignalReconnecting:i("LiveKit room signal reconnecting..."),(oe=c.onConnectionStateChange)==null||oe.call(c,ce.Connecting,"livekit:signal-reconnecting");break}}function B(w,x){var H;i("Connection quality:",w),x!=null&&x.isLocal&&((H=c.onConnectivityStateChange)==null||H.call(c,Ru[w]))}function $(w){i("Participant connected:",w.identity)}function ne(w){i("Participant disconnected:",w.identity),Ks("livekit:participant-disconnected")}function se(){var w;y!==ee.Start&&(i("CALLBACK: onVideoStateChange(Start)"),y=ee.Start,(w=c.onVideoStateChange)==null||w.call(c,ee.Start))}function ke(w){var x;y!==ee.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),y=ee.Stop,(x=c.onVideoStateChange)==null||x.call(c,ee.Stop,w))}function xe(w,x,H){var oe,le,Be;i(`Track subscribed: ${w.kind} from ${H.identity}`);const J=w.mediaStreamTrack;if(!J){i(`No mediaStreamTrack available for ${w.kind}`);return}g?(g.addTrack(J),i(`Added ${w.kind} track to shared MediaStream`)):(g=new MediaStream([J]),i(`Created shared MediaStream with ${w.kind} track`)),w.kind==="audio"&&(_=tu(()=>w.getRTCStatsReport(),({sttLatency:Re,serviceLatency:ht})=>{var kl,Tl,Sl;const ii=mt.get(!0);let ri=0;if(Re){const Cl=((Tl=(kl=R==null?void 0:R.getReport())==null?void 0:kl.webRTCStats)==null?void 0:Tl.avgRtt)??0;ri=Cl>0?Math.round(Cl*1e3):0}const En=ii>0?ii+(Re??0)+ri:void 0,At=En!==void 0&&ht!==void 0?En-ht:void 0;(Sl=c.onFirstAudioDetected)==null||Sl.call(c,{latency:En,networkLatency:At})})),w.kind==="video"&&((oe=c.onStreamReady)==null||oe.call(c),i("CALLBACK: onSrcObjectReady"),(le=c.onSrcObjectReady)==null||le.call(c,g),b||(b=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Be=c.onConnectionStateChange)==null||Be.call(c,ce.Connected,"livekit:track-subscribed")),R=ba(()=>w.getRTCStatsReport(),()=>f,Il,(Re,ht)=>{i(`Video state change: ${Re}`),Re===ee.Start?(T&&(clearTimeout(T),T=null,i("Track subscription timeout cleared")),se()):Re===ee.Stop&&ke(ht)}),R.start())}function Le(w,x,H){i(`Track unsubscribed: ${w.kind} from ${H.identity}`),w.kind==="audio"&&(_==null||_.destroy(),_=null),w.kind==="video"&&(ke(R==null?void 0:R.getReport()),R==null||R.stop(),R=null)}function me(w,x){var J;const H=Eu[w];H&&((J=c.onMessage)==null||J.call(c,H,{event:H,...x}))}function j(w,x){var H,J,oe,le;if(w===Y.ToolCallStarted){N=Pe.ToolActive,(H=c.onAgentActivityStateChange)==null||H.call(c,Pe.ToolActive),(J=c.onToolEvent)==null||J.call(c,Y.ToolCallStarted,x);return}if(w===Y.ToolCallDone){(oe=c.onToolEvent)==null||oe.call(c,Y.ToolCallDone,x);return}w===Y.ToolCallError&&((le=c.onToolEvent)==null||le.call(c,Y.ToolCallError,x))}function W(w,x){var H,J,oe,le,Be;if(F=((H=x.metadata)==null?void 0:H.interruptible)!==!1,(J=c.onInterruptibleChange)==null||J.call(c,F),w===Y.StreamVideoCreated){N=Pe.Talking,(oe=c.onAgentActivityStateChange)==null||oe.call(c,Pe.Talking),_==null||_.arm({sttLatency:(le=x==null?void 0:x.stt)==null?void 0:le.latency,serviceLatency:x==null?void 0:x.serviceLatency});return}F&&(N=Pe.Idle,(Be=c.onAgentActivityStateChange)==null||Be.call(c,Pe.Idle))}function he(w,x){var le,Be,Re,ht;const H=((Be=(le=R==null?void 0:R.getReport())==null?void 0:le.webRTCStats)==null?void 0:Be.avgRtt)??0,J=H>0?Math.round(H/2*1e3):0,oe={...x,downstreamNetworkLatency:J};t.debug&&((Re=x==null?void 0:x.metadata)!=null&&Re.sentiment)&&(oe.sentiment={id:x.metadata.sentiment.id,name:x.metadata.sentiment.sentiment}),(ht=c.onMessage)==null||ht.call(c,w,oe),W(w,x)}function Ce(w,x){var H;(H=c.onMessage)==null||H.call(c,We.Transcribe,{event:We.Transcribe,...x}),queueMicrotask(()=>{var J;(J=c.onAgentActivityStateChange)==null||J.call(c,Pe.Loading)})}const we={[Y.ChatAnswer]:me,[Y.ChatPartial]:me,[Y.ToolCallStarted]:j,[Y.ToolCallDone]:j,[Y.ToolCallError]:j,[Y.StreamVideoCreated]:he,[Y.StreamVideoDone]:he,[Y.StreamVideoError]:he,[Y.StreamVideoRejected]:he,[Y.ChatAudioTranscribed]:Ce};function nt(w,x,H,J){const oe=new TextDecoder().decode(w);try{const le=JSON.parse(oe),Be=J||le.subject;if(i("Data received:",{subject:Be,data:le}),!Be)return;const Re=we[Be];Re==null||Re(Be,le)}catch(le){i("Failed to parse data channel message:",le)}}function Bs(w){var x;i("Media devices error:",w),(x=c.onError)==null||x.call(c,new Error(In),{sessionId:D})}function Cn(w){var x;i("Encryption error:",w),(x=c.onError)==null||x.call(c,new Error(In),{sessionId:D})}function Xi(w,x,H){i("Track subscription failed:",{trackSid:w,participant:x,reason:H})}function Zi(w,x,H){for(const[J,oe]of H)if(oe.source===x&&oe.track){const le=oe.track.mediaStreamTrack;if(le===w||(le==null?void 0:le.id)===w.id)return oe}return null}async function ni(w,x,H,J,oe,le){var ii,ri,En;if(!f||!h)throw i(`Room is not connected, cannot publish ${J} stream`),new Error("Room is not connected");if(w.isPublishing){i(`${J} publish already in progress, skipping`);return}const Be=H(x);if(Be.length===0)throw new Error(`No ${J} track found in the provided MediaStream`);const Re=Be[0],ht=Zi(Re,J,oe());if(ht){i(`${J} track is already published, skipping`,{trackId:Re.id,publishedTrackId:(ri=(ii=ht.track)==null?void 0:ii.mediaStreamTrack)==null?void 0:ri.id}),w.publication=ht;return}if((En=w.publication)!=null&&En.track){const At=w.publication.track.mediaStreamTrack;At!==Re&&(At==null?void 0:At.id)!==Re.id&&(i(`Unpublishing existing ${J} track before publishing new one`),await le())}i(`Publishing ${J} track from provided MediaStream`,{trackId:Re.id}),w.isPublishing=!0;try{w.publication=await h.localParticipant.publishTrack(Re,{source:J}),i(`${J} track published successfully`,{trackSid:w.publication.trackSid})}catch(At){throw i(`Failed to publish ${J} track:`,At),At}finally{w.isPublishing=!1}}async function vl(w,x){if(!(!w.publication||!w.publication.track))try{h&&(await h.localParticipant.unpublishTrack(w.publication.track,!1),i(`${x} track unpublished`))}catch(H){i(`Error unpublishing ${x} track:`,H)}finally{w.publication=null}}async function jg(w){return ni(S,w,x=>x.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,js)}async function js(){return vl(S,"Microphone")}async function Vg(w){if(!f||!h)throw i("Cannot replace microphone track: room is not connected"),new Error("Room is not connected");if(w.kind!=="audio")throw i("Cannot replace microphone track: not an audio track",{kind:w.kind}),new Error("Microphone track must be an audio track");if(S.isPublishing)throw i("Cannot replace microphone track: publish in progress"),new Error("Microphone publish in progress");const x=S.publication;if(!x||!x.track)throw i("Cannot replace microphone track: no publication to replace"),new Error("No microphone publication to replace");try{S.isPublishing=!0,await x.track.replaceTrack(w),i("Microphone track replaced",{trackId:w.id,trackSid:x.trackSid})}finally{S.isPublishing=!1}}async function qg(w){return ni(k,w,x=>x.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Vs)}async function Vs(){return vl(k,"Camera")}function Kg(){g&&(g.getTracks().forEach(w=>w.stop()),g=null)}async function qs(w,x){var H,J;if(!f||!h){i("Room is not connected for sending messages"),(H=c.onError)==null||H.call(c,new Error(In),{sessionId:D});return}try{await h.localParticipant.sendText(w,{topic:x}),i("Message sent successfully:",w)}catch(oe){i("Failed to send message:",oe),(J=c.onError)==null||J.call(c,new Error(In),{sessionId:D})}}async function yl(w){var x;try{const J=JSON.parse(w).topic;return qs("",J)}catch(H){i("Failed to send data channel message:",H),(x=c.onError)==null||x.call(c,new Error(In),{sessionId:D})}}function Wg(w){return qs(w,"lk.chat")}async function Ks(w){var x,H;T&&(clearTimeout(T),T=null),_==null||_.destroy(),_=null,h&&((x=c.onConnectionStateChange)==null||x.call(c,ce.Disconnecting,w),await Promise.all([js(),Vs()]),await h.disconnect()),Kg(),f=!1,b=!1,(H=c.onAgentActivityStateChange)==null||H.call(c,Pe.Idle),N=Pe.Idle}return{speak(w){const x=typeof w=="string"?w:JSON.stringify(w);return qs(x,"did.speak")},disconnect:()=>Ks("user:disconnect"),async reconnect(){var w,x;if((h==null?void 0:h.state)===o.Connected){i("Room is already connected");return}if(!h||!K||!U)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),b=!1,(w=c.onConnectionStateChange)==null||w.call(c,ce.Connecting,"user:reconnect");try{if(await h.connect(K,U),i("Room reconnected"),f=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(J=>{const oe=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,le),J(!1)},5e3),le=()=>{clearTimeout(oe),h==null||h.off(s.ParticipantConnected,le),J(!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(H){throw i("Failed to reconnect:",H),(x=c.onConnectionStateChange)==null||x.call(c,ce.Fail,"user:reconnect-failed"),H}},sendDataChannelMessage:yl,sendTextMessage:Wg,publishMicrophoneStream:jg,unpublishMicrophoneStream:js,replaceMicrophoneTrack:Vg,publishCameraStream:qg,unpublishCameraStream:Vs,interrupt(w){w!=="text"&&yl(JSON.stringify({topic:"did.interrupt"}))},registerRpcMethod(w,x){h==null||h.registerRpcMethod(w,x)},unregisterRpcMethod(w){h==null||h.unregisterRpcMethod(w)},sessionId:D,streamId:D,streamType:v,interruptAvailable:re,isInterruptible:F}}const Pu=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:_u,handleInitError:dr},Symbol.toStringTag,{value:"Module"}));function Iu(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 Mu=Object.defineProperty,Ou=(n,e,t)=>e in n?Mu(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,wa=(n,e,t)=>Ou(n,typeof e!="symbol"?e+"":e,t);class De{constructor(){wa(this,"_locking"),wa(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 ve(n,e){if(!n)throw new Error(e)}const Du=34028234663852886e22,Au=-34028234663852886e22,xu=4294967295,Lu=2147483647,Nu=-2147483648;function ci(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>Lu||n<Nu)throw new Error("invalid int 32: "+n)}function lr(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>xu||n<0)throw new Error("invalid uint 32: "+n)}function Ra(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Du||n<Au))throw new Error("invalid float 32: "+n)}const _a=Symbol("@bufbuild/protobuf/enum-type");function Uu(n){const e=n[_a];return ve(e,"missing enum type on enum object"),e}function Pa(n,e,t,i){n[_a]=Ia(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function Ia(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const o of e){const a=Ma(o);s.push(a),i[o.name]=a,r[o.no]=a}return{typeName:n,values:s,findName(o){return i[o]},findNumber(o){return r[o]}}}function Fu(n,e,t){const i={};for(const r of e){const s=Ma(r);i[s.localName]=s.no,i[s.no]=s.localName}return Pa(i,n,e),i}function Ma(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class ur{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 Bu(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),o={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new ur),Object.assign(o,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,c){return new o().fromBinary(a,c)},fromJson(a,c){return new o().fromJson(a,c)},fromJsonString(a,c){return new o().fromJsonString(a,c)},equals(a,c){return n.util.equals(o,a,c)}}),o}function ju(){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 hr(n,e,t){for(let s=0;s<28;s=s+7){const o=n>>>s,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(t.push(c),!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 o=e>>>s,a=!!(o>>>7),c=(a?o|128:o)&255;if(t.push(c),!a)return}t.push(e>>>31&1)}}const di=4294967296;function Oa(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(o,a){const c=Number(n.slice(o,a));r*=t,i=i*t+c,i>=di&&(r=r+(i/di|0),i=i%di)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Aa(i,r):mr(i,r)}function Vu(n,e){let t=mr(n,e);const i=t.hi&2147483648;i&&(t=Aa(t.lo,t.hi));const r=Da(t.lo,t.hi);return i?"-"+r:r}function Da(n,e){if({lo:n,hi:e}=qu(n,e),e<=2097151)return String(di*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,o=i+r*8147497,a=r*2;const c=1e7;return s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c),a.toString()+xa(o)+xa(s)}function qu(n,e){return{lo:n>>>0,hi:e>>>0}}function mr(n,e){return{lo:n|0,hi:e|0}}function Aa(n,e){return e=~e,n?n=~n+1:e+=1,mr(n,e)}const xa=n=>{const e=String(n);return"0000000".slice(e.length)+e};function La(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 Ku(){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 Wu(){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"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>s||d<r)throw new Error("int64 invalid: ".concat(c));return d},uParse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>a||d<o)throw new Error("uint64 invalid: ".concat(c));return d},enc(c){return n.setBigInt64(0,this.parse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(c){return n.setBigInt64(0,this.uParse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>ve(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>ve(/^[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),Oa(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),Oa(r)},dec(r,s){return Vu(r,s)},uDec(r,s){return Da(r,s)}}}const fe=Wu();var E;(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"})(E||(E={}));var xt;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(xt||(xt={}));function Lt(n,e,t){if(e===t)return!0;if(n==E.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 E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==t}return!1}function an(n,e){switch(n){case E.BOOL:return!1;case E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==0?fe.zero:"0";case E.DOUBLE:case E.FLOAT:return 0;case E.BYTES:return new Uint8Array(0);case E.STRING:return"";default:return 0}}function Na(n,e){switch(n){case E.BOOL:return e===!1;case E.STRING:return e==="";case E.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Te;(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"})(Te||(Te={}));class Hu{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(lr(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ci(e),La(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){Ra(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){lr(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ci(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ci(e),e=(e<<1^e>>31)>>>0,La(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=fe.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=fe.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=fe.enc(e);return hr(t.lo,t.hi,this.buf),this}sint64(e){let t=fe.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return hr(r,s,this.buf),this}uint64(e){let t=fe.uEnc(e);return hr(t.lo,t.hi,this.buf),this}}class Ju{constructor(e,t){this.varint64=ju,this.uint32=Ku,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 Te.Varint:for(;this.buf[this.pos++]&128;);break;case Te.Bit64:this.pos+=4;case Te.Bit32:this.pos+=4;break;case Te.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Te.StartGroup:for(;;){const[s,o]=this.tag();if(o===Te.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(o,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 fe.dec(...this.varint64())}uint64(){return fe.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,fe.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 fe.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return fe.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 Gu(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 Ua(n){const e=n.field.localName,t=Object.create(null);return t[e]=zu(n),[t,()=>t[e]]}function zu(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 an(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 $u(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 Ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),li=[];for(let n=0;n<Ct.length;n++)li[Ct[n].charCodeAt(0)]=n;li[45]=Ct.indexOf("+"),li[95]=Ct.indexOf("/");const Fa={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,o=0;for(let a=0;a<n.length;a++){if(s=li[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
1
+ (function(Q,Ne){typeof exports=="object"&&typeof module<"u"?Ne(exports):typeof define=="function"&&define.amd?define(["exports"],Ne):(Q=typeof globalThis<"u"?globalThis:Q||self,Ne(Q.index={}))})(this,function(Q){"use strict";var Hg=Object.defineProperty;var Jg=(Q,Ne,Wt)=>Ne in Q?Hg(Q,Ne,{enumerable:!0,configurable:!0,writable:!0,value:Wt}):Q[Ne]=Wt;var si=(Q,Ne,Wt)=>Jg(Q,typeof Ne!="symbol"?Ne+"":Ne,Wt);class Ne extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));si(this,"kind");si(this,"description");si(this,"error");this.kind=t,this.description=i,this.error=r}}class Wt extends Ne{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Ws extends Ne{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class Ht extends Ne{constructor(t,i){super({kind:"ValidationError",description:t});si(this,"key");this.key=i}}class Hs extends Ne{constructor(e){super({kind:"WSError",description:e})}}var Js=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Js||{}),Gs=(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))(Gs||{}),zs=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(zs||{}),$s=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))($s||{}),_e=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(_e||{}),We=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(We||{}),Qs=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Qs||{}),Ys=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(Ys||{}),Xs=(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))(Xs||{}),er=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(er||{});const El=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var ee=(n=>(n.Start="START",n.Stop="STOP",n))(ee||{}),it=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(it||{}),Pe=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(Pe||{}),Y=(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.ToolCallStarted="tool-call/started",n.ToolCallDone="tool-call/done",n.ToolCallError="tool-call/error",n))(Y||{}),ce=(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))(ce||{}),rt=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(rt||{}),ai=(n=>(n.Livekit="livekit",n))(ai||{}),Zs=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(Zs||{}),ea=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(ea||{});const wl=45*1e3,Rl="X-Playground-Chat",wn="https://api.d-id.com",_l="wss://notifications.d-id.com",Pl="79f81a83a67430be2bc0fd61042b8faa",Il=(...n)=>{},ta=n=>new Promise(e=>setTimeout(e,n)),Rn=(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)},na=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,Ml=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},Ol=n=>n.type==="talk"?n.source_url:n.presenter_id,tr=n=>n===er.Expressive,Dl=n=>[_e.TextOnly,_e.Playground,_e.Maintenance].includes(n),ia=n=>n&&[_e.DirectPlayback,_e.Off].includes(n),ra=/\[!\[([^\[\]]*)\]\(([^)\s]+)\)\]\(([^)\s]+)\)/g,sa=/!\[([^\[\]]*)\]\(([^)\s]+)\)/g,aa=new RegExp("(?<!!)\\[([^\\[\\]]+)\\]\\(([^)\\s]+)\\)","g"),oa=/<a\s+href="([^"]*)"[^>]*?>([^<]*)<\/a>/gi;function ca(n){if(n.length===0)return[];const e=[];let t;for(ra.lastIndex=0;(t=ra.exec(n))!==null;)e.push({index:t.index,length:t[0].length,part:{type:"video",src:t[3],alt:t[1],thumbnail:t[2]}});for(sa.lastIndex=0;(t=sa.exec(n))!==null;)if(!e.some(o=>t.index>=o.index&&t.index<o.index+o.length)){const o=t[2],a={type:"image",src:o,alt:t[1]};o.toLowerCase().endsWith(".gif")&&(a.mimeType="image/gif"),e.push({index:t.index,length:t[0].length,part:a})}for(aa.lastIndex=0;(t=aa.exec(n))!==null;)e.some(o=>t.index>=o.index&&t.index<o.index+o.length)||e.push({index:t.index,length:t[0].length,part:{type:"link",href:t[2],label:t[1]}});for(oa.lastIndex=0;(t=oa.exec(n))!==null;)e.some(o=>t.index>=o.index&&t.index<o.index+o.length)||e.push({index:t.index,length:t[0].length,part:{type:"link",href:t[1],label:t[2]}});if(e.length===0)return[{type:"text",text:n}];e.sort((s,o)=>s.index-o.index);const i=[];let r=0;for(const s of e)s.index>r&&i.push({type:"text",text:n.slice(r,s.index)}),i.push(s.part),r=s.index+s.length;return r<n.length&&i.push({type:"text",text:n.slice(r)}),i}let da="",nr=[];function _n(n){return n===da||(da=n,nr=ca(n)),nr}function Al(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function ir(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:o}=Al(t.timeout,t.timeoutErrorMessage),a=n().finally(o);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await ta(t.delayMs),t.onRetry(s)}throw i}function rr(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=Rn();window.localStorage.setItem("did_external_key_id",t),e=t}return e}function la(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}.${rr(e)}`;throw new Error(`Unknown auth type: ${n}`)}const xl=n=>ir(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function sr(n,e=wn,t,i){const r=async(s,o)=>{const{skipErrorHandler:a,...c}=o||{},d=await xl(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...c,headers:{...c.headers,Authorization:la(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:c,headers:d.headers}),u}return d.json()};return{get(s,o){return r(s,{...o,method:"GET"})},post(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"POST"})},delete(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"DELETE"})},patch(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"PATCH"})}}}function Ll(n,e=wn,t,i){const r=sr(n,`${e}/agents`,t,i);return{create(s,o){return r.post("/",s,o)},getAgents(s,o){return r.get(`/${s?`?tag=${s}`:""}`,o).then(a=>a??[])},getById(s,o){return r.get(`/${s}`,o)},delete(s,o){return r.delete(`/${s}`,void 0,o)},update(s,o,a){return r.patch(`/${s}`,o,a)},newChat(s,o,a){return r.post(`/${s}/chat`,o,a)},chat(s,o,a,c){return r.post(`/${s}/chat/${o}`,a,c)},createRating(s,o,a,c){return r.post(`/${s}/chat/${o}/ratings`,a,c)},updateRating(s,o,a,c,d){return r.patch(`/${s}/chat/${o}/ratings/${a}`,c,d)},deleteRating(s,o,a,c){return r.delete(`/${s}/chat/${o}/ratings/${a}`,c)},getSTTToken(s,o){return r.get(`/${s}/stt-token`,o)}}}function Nl(n){var r,s,o,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const c=navigator.platform;return c.toLowerCase().includes("win")?"Windows":c.toLowerCase().includes("mac")?"Mac OS X":c.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:na(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(o=n.presenter)==null?void 0:o.voice)==null?void 0:a.type}}}function Ul(n){var t,i,r,s,o,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:na(n.presenter),presenterType:Ml(n.presenter),presenter:Ol(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=(o=n.knowledge)==null?void 0:o.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 Fl=n=>n.reduce((e,t)=>e+t,0),ua=n=>Fl(n)/n.length;function Bl(n,e,t){var c,d,l;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:o}=((c=e==null?void 0:e.presenter)==null?void 0:c.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:o}},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 ha(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}const jl="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Vl(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:rr(n.externalId),agentId:n.agentId,additionalProperties:{id:rr(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Rn,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:o,...a}=r||{},c=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:c,$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(jl,d).catch(l=>console.error("Analytics tracking error:",l)),Promise.resolve()},linkTrack(i,r,s,o){t[i]||(t[i]={events:{},resolvedDependencies:[]}),o.includes(s)||o.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),o.every(d=>a.resolvedDependencies.includes(d))){const d=o.reduce((l,u)=>a.events[u]?{...l,...a.events[u].props}:l,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(l=>!o.includes(l)),o.forEach(l=>{delete a.events[l]})}}}}function ar(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const mt=ar(),or=ar(),ma=ar();function fa(n){return n===_e.Playground?{headers:{[Rl]:"true"}}:{}}async function pa(n,e,t,i,r=!1,s){try{return!s&&!ia(i)&&(s=await e.newChat(n.id,{persist:r},fa(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(o){throw ql(o)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const ql=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function Kl(n){return n&&n.length>0?n:[]}function Wl(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:o}=n,{onMessage:a=null,onOpen:c=null,onClose:d=null,onError:l=null}=i||{},u=new WebSocket(`${r}?authorization=${encodeURIComponent(la(s,o))}`);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=>{c==null||c(h),e(u)}})}async function Hl(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 Wl(n)}catch(r){if(i===e)throw r;await ta(i*500)}return t}async function Jl(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await Hl({auth:n,host:e,externalId:i,callbacks:{onError:o=>{var a;return(a=t.onError)==null?void 0:a.call(t,new Hs(o))},onMessage(o){const a=JSON.parse(o.data);r.forEach(c=>c(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:o=>r.push(o)}}function Gl(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function zl(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,parts:_n(n.content),created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(r),t==null||t([...e.messages],"user")}function $l(n,e,t,i,r,s){if(n===We.Transcribe&&e.content){zl(e,i,r);return}if(!(n===We.Partial||n===We.Answer))return;const o=i.messages[i.messages.length-1],a=e.id&&(o==null?void 0:o.role)==="assistant"&&o.id!==e.id;let c;if((o==null?void 0:o.role)==="assistant"&&!a)c=o;else if(!o||o.transcribed&&o.role==="user"||a)a&&s(),c={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",parts:[],created_at:e.created_at||new Date().toISOString()},i.messages.push(c);else return;const{content:d,sequence:l}=e;n===We.Partial?t[l]=d:t.answer=d;const u=Gl(t);(c.content!==u||n===We.Answer)&&(c.content=u,c.parts=_n(u),r==null||r([...i.messages],n))}function Ql(n,e,t,i,r){let s={};const o=()=>s={};let a="answer";const c=(d,l)=>{var u,h;l==="user"&&o(),a=l,(h=(u=t.callbacks).onNewMessage)==null||h.call(u,d,l)};return{clearQueue:o,onMessage:(d,l)=>{var u,h;if("content"in l){const f=d===Y.ChatAnswer?We.Answer:d===Y.ChatAudioTranscribed?We.Transcribe:d;$l(f,l,s,e,c,o),f===We.Answer&&n.track("agent-message-received",{content:l.content,messages:e.messages.length,mode:e.chatMode})}else{const f=Y,v=[f.StreamVideoDone,f.StreamVideoError,f.StreamVideoRejected],g=[f.StreamFailed,f.StreamVideoError,f.StreamVideoRejected],S=Bl(l,i,{mode:e.chatMode});if(d=d,d===f.StreamVideoCreated&&(n.linkTrack("agent-video",S,f.StreamVideoCreated,["start"]),l.sentiment)){const k=e.messages[e.messages.length-1];if((k==null?void 0:k.role)==="assistant"){const R={...k,sentiment:l.sentiment};e.messages[e.messages.length-1]=R,c==null||c([...e.messages],a)}}if(v.includes(d)){const k=d.split("/")[1];g.includes(d)?n.track("agent-video",{...S,event:k}):n.linkTrack("agent-video",{...S,event:k},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 Yl(n,e,t,i){const r=sr(n,`${e}/agents/${t}`,i);return{createStream(s,o){return r.post("/streams",s,{signal:o})},startConnection(s,o,a,c){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:o},{signal:c})},addIceCandidate(s,o,a,c){return r.post(`/streams/${s}/ice`,{session_id:a,...o},{signal:c})},sendStreamRequest(s,o,a){return r.post(`/streams/${s}`,{session_id:o,...a})},close(s,o){return r.delete(`/streams/${s}`,{session_id:o})}}}const ga=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??"");function Xl(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 Zl(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 eu(n){var o;let e="",t=0,i=null;const r=new Map;for(const a of n.values())if(a)if(a.type==="codec"&&((o=a.mimeType)!=null&&o.startsWith("video")))r.set(a.id,a.mimeType.split("/")[1]);else if(a.type==="candidate-pair"){const c=a,d=c.currentRoundTripTime??0;d>0&&(c.nominated===!0||t===0)&&(t=d)}else a.type==="inbound-rtp"&&a.kind==="video"&&(i=a);if(!i)return{};const s=i;return s.codecId&&r.has(s.codecId)?e=r.get(s.codecId):r.size>0&&(e=r.values().next().value??""),{codec:e,rtt:t,timestamp:s.timestamp,bytesReceived:s.bytesReceived,packetsReceived:s.packetsReceived,packetsLost:s.packetsLost,framesDropped:s.framesDropped,framesDecoded:s.framesDecoded,jitter:s.jitter,jitterBufferDelay:s.jitterBufferDelay,jitterBufferEmittedCount:s.jitterBufferEmittedCount,avgJitterDelayInInterval:s.jitterBufferDelay/s.jitterBufferEmittedCount,frameWidth:s.frameWidth,frameHeight:s.frameHeight,framesPerSecond:s.framesPerSecond,freezeCount:s.freezeCount,freezeDuration:s.totalFreezesDuration}}function va(n,e,t){const i=n.map((c,d)=>d===0?t?{timestamp:c.timestamp,duration:0,rtt:c.rtt,bytesReceived:c.bytesReceived-t.bytesReceived,bitrate:(c.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-t.packetsReceived,packetsLost:c.packetsLost-t.packetsLost,framesDropped:c.framesDropped-t.framesDropped,framesDecoded:c.framesDecoded-t.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-t.jitterBufferDelay)/(c.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-t.freezeCount,freezeDuration:c.freezeDuration-t.freezeDuration}:{timestamp:c.timestamp,rtt:c.rtt,duration:0,bytesReceived:c.bytesReceived,bitrate:c.bytesReceived*8/(e/1e3),packetsReceived:c.packetsReceived,packetsLost:c.packetsLost,framesDropped:c.framesDropped,framesDecoded:c.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount,avgJitterDelayInInterval:c.jitterBufferDelay/c.jitterBufferEmittedCount,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.freezeDuration}:{timestamp:c.timestamp,duration:e*d/1e3,rtt:c.rtt,bytesReceived:c.bytesReceived-n[d-1].bytesReceived,bitrate:(c.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-n[d-1].packetsReceived,packetsLost:c.packetsLost-n[d-1].packetsLost,framesDropped:c.framesDropped-n[d-1].framesDropped,framesDecoded:c.framesDecoded-n[d-1].framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-n[d-1].jitterBufferDelay)/(c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-n[d-1].freezeCount,freezeDuration:c.freezeDuration-n[d-1].freezeDuration}),r=Zl(i),s=r.reduce((c,d)=>c+(d.causes.includes("low fps")?1:0),0),o=i.filter(c=>!!c.avgJitterDelayInInterval).map(c=>c.avgJitterDelayInInterval),a=i.filter(c=>!!c.rtt).map(c=>c.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:ua(a),maxRtt:Math.max(...a),aggregateReport:Xl(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...o),maxJitterDelayInInterval:Math.max(...o),avgJitterDelayInInterval:ua(o)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function ya(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 Pn=10;function tu(n,e){let t=!1,i=!1,r=null,s=0,o=0,a={};async function c(){if(t){try{const d=await n();if(!d){r=setTimeout(c,Pn);return}const l=ya(d,"audio");if(!l){r=setTimeout(c,Pn);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,o=h,i=!0,r=setTimeout(c,Pn);return}const f=u-s,v=h-o;if(s=u,o=h,v>0&&f>0){t=!1,e(a);return}}catch{}t&&(r=setTimeout(c,Pn))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(c,Pn)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const oi=100,nu=Math.max(Math.ceil(400/oi),1),iu=.25,ru=.28;function su(){let n=0,e,t,i=0;return r=>{const s=ya(r,"video");if(!s)return{isReceiving:!1,avgJitterDelayInInterval:i};const o=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const l=o-e,u=a-t;i=l/u}e=o,t=a;const c=s.framesDecoded,d=c-n>0;return n=c,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}}function ba(n,e,t,i,r){let s=null,o=[],a,c=0,d=!1,l=it.Unknown,u=it.Unknown,h=0,f=0;const v=su();async function g(){const S=await n();if(!S)return;const{isReceiving:k,avgJitterDelayInInterval:R,freezeCount:_}=v(S),y=eu(S);if(k)c=0,h=_-f,u=R<iu?it.Strong:R>ru&&h>1?it.Weak:l,u!==l&&(r==null||r(u),l=u,f+=h,h=0),d||(i==null||i(ee.Start),a=o[o.length-1],o=[],d=!0),o.push(y);else if(d&&(c++,c>=nu)){const b=va(o,oi,a);i==null||i(ee.Stop,b),e()||t(),f=_,d=!1}}return{start:()=>{s||(s=setInterval(g,oi))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>va(o,oi,a)}}const au=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ka(n){switch(n){case"connected":return ce.Connected;case"checking":return ce.Connecting;case"failed":return ce.Fail;case"new":return ce.New;case"closed":return ce.Closed;case"disconnected":return ce.Disconnected;case"completed":return ce.Completed;default:return ce.New}}const ou=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 cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===ee.Start&&e===ee.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(ee.Start)):n===ee.Stop&&e===ee.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(ee.Stop,i))}function du({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===ee.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(ee.Start)):n===ee.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(ee.Stop,r)),e===ee.Start?i==null||i(Pe.Talking):e===ee.Stop&&(i==null||i(Pe.Idle))}function Ta({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:o}){r===rt.Legacy?cu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:o}):r===rt.Fluent&&du({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:o})}async function lu(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=wn,analytics:o},a){var me;const c=ga(t,"WebRTCStreamingManager"),d=ou(c);let l=!1,u=!1,h=ee.Stop,f=ee.Stop;const{startConnection:v,sendStreamRequest:g,close:S,createStream:k,addIceCandidate:R}=Yl(r,s,n,i.onError),{id:_,offer:y,ice_servers:b,session_id:T,fluent:N,interrupt_enabled:F}=await k(e,a);(me=i.onStreamCreated)==null||me.call(i,{stream_id:_,session_id:T,agent_id:n});const O=new au({iceServers:b}),D=O.createDataChannel("JanusDataChannel");if(!T)throw new Error("Could not create session_id");const U=N?rt.Fluent:rt.Legacy;o.enrich({"stream-type":U});const K=e.stream_warmup&&!N,re=()=>l,P=()=>{var j;l=!0,u&&(c("CALLBACK: onConnectionStateChange(Connected)"),(j=i.onConnectionStateChange)==null||j.call(i,ce.Connected))},V=ba(()=>O.getStats(),re,P,(j,W)=>Ta({statsSignal:f=j,dataChannelSignal:U===rt.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:W,streamType:U,log:c}),j=>{var W;return(W=i.onConnectivityStateChange)==null?void 0:W.call(i,j)});V.start(),O.onicecandidate=j=>{var W;c("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},T,a):R(_,{candidate:null},T,a)}catch(he){(W=i.onError)==null||W.call(i,he,{streamId:_})}},D.onopen=()=>{u=!0,(!K||l)&&P()};let B=null;const $=j=>{var W;B=j,(W=i.onVideoIdChange)==null||W.call(i,j)};function ne(j,W){if(j===Y.StreamStarted&&typeof W=="object"&&"metadata"in W){const he=W.metadata;$(he.videoId)}j===Y.StreamDone&&$(null),h=j===Y.StreamStarted?ee.Start:ee.Stop,Ta({statsSignal:U===rt.Legacy?f:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:U,log:c})}function se(j,W){var Ce;const he=typeof W=="string"?W:W==null?void 0:W.metadata;he&&o.enrich({streamMetadata:he}),(Ce=i.onStreamReady)==null||Ce.call(i)}const ke={[Y.StreamStarted]:ne,[Y.StreamDone]:ne,[Y.StreamReady]:se};D.onmessage=j=>{var Ce;const{subject:W,data:he}=d(j.data);(Ce=ke[W])==null||Ce.call(ke,W,he)},O.oniceconnectionstatechange=()=>{var W;c("peerConnection.oniceconnectionstatechange => "+O.iceConnectionState);const j=ka(O.iceConnectionState);j!==ce.Connected&&((W=i.onConnectionStateChange)==null||W.call(i,j))},O.ontrack=j=>{var W;c("peerConnection.ontrack",j),c("CALLBACK: onSrcObjectReady"),(W=i.onSrcObjectReady)==null||W.call(i,j.streams[0])},await O.setRemoteDescription(y),c("set remote description OK");const xe=await O.createAnswer();c("create answer OK"),await O.setLocalDescription(xe),c("set local description OK"),await v(_,xe,T,a),c("start connection OK");function Le(j){var W,he;if(!l||D.readyState!=="open"){c("Data channel is not ready for sending messages"),(W=i.onError)==null||W.call(i,new Error("Data channel is not ready for sending messages"),{streamId:_});return}try{D.send(j)}catch(Ce){c("Error sending data channel message",Ce),(he=i.onError)==null||he.call(i,Ce,{streamId:_})}}return{speak(j){return g(_,T,j)},async disconnect(){var j;if(_){const W=ka(O.iceConnectionState);if(O){if(W===ce.New){V.stop();return}O.close(),O.oniceconnectionstatechange=null,O.onnegotiationneeded=null,O.onicecandidate=null,O.ontrack=null}try{W===ce.Connected&&await S(_,T).catch(he=>{})}catch(he){c("Error on close stream connection",he)}(j=i.onAgentActivityStateChange)==null||j.call(i,Pe.Idle),V.stop()}},sendDataChannelMessage:Le,sessionId:T,streamId:_,streamType:U,interruptAvailable:F??!1,isInterruptible:!0,interrupt(j){if(!F)throw new Error("Interrupt is not enabled for this stream");if(U!==rt.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!B)throw new Error("No active video to interrupt");const W={type:Y.StreamInterrupt,videoId:B,timestamp:Date.now()};Le(JSON.stringify(W))}}}var cr=(n=>(n.V1="v1",n.V2="v2",n))(cr||{});async function uu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...o}=e;return lu(r,o,t,i)}case"v2":{const{version:s,...o}=e;switch(o.transport.provider){case ai.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>Pu);return a(r,o,t);default:throw new Error(`Unsupported transport provider: ${o.transport.provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const hu="cht";function mu(){return{transport:{provider:ai.Livekit}}}function fu(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 pu(n,e){return tr(n.presenter.type)?{version:cr.V2,...mu()}:{version:cr.V1,...fu(e)}}function gu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function vu(n,e,t,i,r){r===rt.Fluent?yu(n,e,t,i,r):bu(n,e,t,i,r)}function yu(n,e,t,i,r){n===ee.Start?i.track("stream-session",{event:"start","stream-type":r}):n===ee.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 Sa(n,e,t,i,r){n===ee.Start?t.linkTrack("agent-video",{event:"start",...r,"stream-type":i},"start",[Y.StreamVideoCreated]):n===ee.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",[Y.StreamVideoDone])}function bu(n,e,t,i,r){n===ee.Start?i.linkTrack("agent-video",{event:"start",latency:mt.get(!0),"stream-type":r},"start",[Y.StreamVideoCreated]):n===ee.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",[Y.StreamVideoDone])}function ku(n,e,t){const i={call_id:e.call_id,name:e.name};if(n===Y.ToolCallStarted){t.track("agent-tool-call",{...i,event:"started"});return}const r=e;t.track("agent-tool-call",{...i,event:n===Y.ToolCallDone?"done":"error",duration_ms:r.duration_ms,extra_keys:r.extra?Object.keys(r.extra).length:0})}function Ca(n,e,t,i){return mt.reset(),ma.update(),new Promise(async(r,s)=>{try{let o,a=!1;const c=pu(n,e);t.enrich({"stream-version":c.version.toString()});let d=null;const l=n.presenter.type==="expressive";o=await uu(n,c,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onConnectionStateChange)==null||v.call(f,u),gu(u,h,t),u===ce.Connected&&(o?r(o):a=!0)},onVideoStateChange:(u,h)=>{var f,v;(v=(f=e.callbacks).onVideoStateChange)==null||v.call(f,u),vu(u,n,h,t,o.streamType)},onAgentActivityStateChange:u=>{var h,f;(f=(h=e.callbacks).onAgentActivityStateChange)==null||f.call(h,u),u===Pe.Talking?(or.update(),d=v=>{Sa(ee.Start,n,t,o.streamType,v),d=null},l||d({latency:mt.get(!0)})):(or.reset(),d=null,Sa(ee.Stop,n,t,o.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=ma.get(!0);t.track("agent-chat",{event:"ready",latency:u})},onToolEvent:(u,h)=>{var f,v;(v=(f=e.callbacks).onToolEvent)==null||v.call(f,u,h),ku(u,h,t)}}},i),a&&r(o)}catch(o){s(o)}})}async function Tu(n,e,t,i,r){var l,u,h,f;const s=async()=>{if(tr(n.presenter.type)){const v=await Ca(n,e,i),g=`${hu}_${v.sessionId}`,S=new Date().toISOString();return{chatResult:{chatMode:_e.Functional,chat:{id:g,agent_id:n.id,owner_id:n.owner_id??"",created:S,modified:S,agent_id__created_at:S,agent_id__modified_at:S,chat_mode:_e.Functional,messages:[]}},streamingManager:v}}else{const v=new AbortController,g=v.signal;let S;try{const k=pa(n,t,i,e.mode,e.persistentChat,r),R=Ca(n,e,i,g).then(b=>(S=b,b)),[_,y]=await Promise.all([k,R]);return{chatResult:_,streamingManager:y}}catch(k){throw v.abort(),S&&await S.disconnect().catch(()=>{}),k}}},{chatResult:o,streamingManager:a}=await s(),{chat:c,chatMode:d}=o;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(u=(l=e.callbacks).onModeChange)==null||u.call(l,d),d!==_e.Functional)?((f=(h=e.callbacks).onError)==null||f.call(h,new Ws(d)),a==null||a.disconnect(),{chat:c}):{chat:c,streamingManager:a}}async function Su(n,e){var D,U,K,re;let t=!0;const i=e.mixpanelKey||Pl,r=e.wsURL||_l,s=e.baseURL||wn,o=e.mode||_e.Functional,a={messages:[],chatMode:o},c=Vl({token:i,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),d=Date.now();ha(()=>{c.track("agent-sdk",{event:"init"},d)});const l=Ll(e.auth,s,e.callbacks.onError,e.externalId),u=await l.getById(n);e.debug=e.debug||((D=u==null?void 0:u.advanced_settings)==null?void 0:D.ui_debug_mode);const h=tr(u.presenter.type);c.enrich(Ul(u));const{onMessage:f,clearQueue:v}=Ql(c,a,e,u,()=>{var P,V,B;(P=a.socketManager)==null||P.disconnect(),(B=(V=e.callbacks).onConnectionStateChange)==null||B.call(V,ce.Disconnected)});a.messages=Kl(e.initialMessages),(K=(U=e.callbacks).onNewMessage)==null||K.call(U,[...a.messages],"answer");const g=P=>{},S=({type:P})=>{var B,$,ne,se;if(!((B=a.streamingManager)!=null&&B.interruptAvailable)||!(($=a.streamingManager)!=null&&$.isInterruptible))return;const V=a.messages[a.messages.length-1];c.track("agent-video-interrupt",{type:P||"click",video_duration_to_interrupt:or.get(!0),message_duration_to_interrupt:mt.get(!0)}),V.interrupted=!0,(se=(ne=e.callbacks).onNewMessage)==null||se.call(ne,[...a.messages],"answer"),a.streamingManager.interrupt(P)},k=new Map;function R(P){return async V=>{const B=k.get(P);if(!B)throw new Error(`No handler registered for client tool: ${P}`);try{const $=JSON.parse(V.payload);return await B($)}catch($){throw new Error(`Client tool "${P}" failed: ${$.message}`)}}}function _(){var P,V,B,$;for(const[ne]of k)(V=(P=a.streamingManager)==null?void 0:P.unregisterRpcMethod)==null||V.call(P,ne),($=(B=a.streamingManager)==null?void 0:B.registerRpcMethod)==null||$.call(B,ne,R(ne))}function y(P,V){var $,ne;const B=!k.has(P);k.set(P,V),B&&((ne=($=a.streamingManager)==null?void 0:$.registerRpcMethod)==null||ne.call($,P,R(P)))}function b(P){var V,B;k.delete(P),(B=(V=a.streamingManager)==null?void 0:V.unregisterRpcMethod)==null||B.call(V,P)}const T=Date.now();ha(()=>{c.track("agent-sdk",{event:"loaded",...Nl(u)},T)});async function N(P){var ke,xe,Le,me,j,W,he;(xe=(ke=e.callbacks).onConnectionStateChange)==null||xe.call(ke,ce.Connecting),mt.reset(),P&&!t&&(delete a.chat,(me=(Le=e.callbacks).onNewMessage)==null||me.call(Le,[...a.messages],"answer"));const V=o===_e.DirectPlayback||h?Promise.resolve(void 0):Jl(e.auth,r,{onMessage:f,onError:e.callbacks.onError},e.externalId),B=ir(()=>Tu(u,{...e,mode:o,callbacks:{...e.callbacks,onVideoIdChange:g,onMessage:f}},l,c,a.chat),{limit:3,timeout:wl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:Ce=>(Ce==null?void 0:Ce.message)!=="Could not connect"&&Ce.status!==429&&(Ce==null?void 0:Ce.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(Ce=>{var we,nt;throw O(_e.Maintenance),(nt=(we=e.callbacks).onConnectionStateChange)==null||nt.call(we,ce.Fail),Ce}),[$,{streamingManager:ne,chat:se}]=await Promise.all([V,B]);se&&se.id!==((j=a.chat)==null?void 0:j.id)&&((he=(W=e.callbacks).onNewChat)==null||he.call(W,se.id)),a.streamingManager=ne,a.socketManager=$,a.chat=se,_(),t=!1,c.enrich({chatId:se==null?void 0:se.id,streamId:ne==null?void 0:ne.streamId,mode:a.chatMode}),O((se==null?void 0:se.chat_mode)??o)}async function F(){var P,V,B,$;(P=a.socketManager)==null||P.disconnect(),await((V=a.streamingManager)==null?void 0:V.disconnect()),delete a.streamingManager,delete a.socketManager,($=(B=e.callbacks).onConnectionStateChange)==null||$.call(B,ce.Disconnected)}async function O(P){var V,B;P!==a.chatMode&&(c.track("agent-mode-change",{mode:P}),a.chatMode=P,a.chatMode!==_e.Functional&&await F(),(B=(V=e.callbacks).onModeChange)==null||B.call(V,P))}return{agent:u,getStreamType:()=>{var P;return(P=a.streamingManager)==null?void 0:P.streamType},getIsInterruptAvailable:()=>{var P;return((P=a.streamingManager)==null?void 0:P.interruptAvailable)??!1},starterMessages:((re=u.knowledge)==null?void 0:re.starter_message)||[],getSTTToken:()=>l.getSTTToken(u.id),changeMode:O,enrichAnalytics:c.enrich,async connect(){await N(!0),c.track("agent-chat",{event:"connect",mode:a.chatMode})},async reconnect(){const P=a.streamingManager;if(h&&(P!=null&&P.reconnect)){try{await P.reconnect(),c.track("agent-chat",{event:"reconnect",mode:a.chatMode})}catch{await F(),await N(!1)}return}await F(),await N(!1),c.track("agent-chat",{event:"reconnect",mode:a.chatMode})},async disconnect(){await F(),c.track("agent-chat",{event:"disconnect",mode:a.chatMode})},publishMicrophoneStream(P){var V;return(V=a.streamingManager)!=null&&V.publishMicrophoneStream?a.streamingManager.publishMicrophoneStream(P):Promise.reject(new Error("publishMicrophoneStream is not available for this streaming manager"))},unpublishMicrophoneStream(){var P;return(P=a.streamingManager)!=null&&P.unpublishMicrophoneStream?a.streamingManager.unpublishMicrophoneStream():Promise.resolve()},replaceMicrophoneTrack(P){var V;return(V=a.streamingManager)!=null&&V.replaceMicrophoneTrack?a.streamingManager.replaceMicrophoneTrack(P):Promise.reject(new Error("replaceMicrophoneTrack is not available for this streaming manager"))},publishCameraStream(P){var V;return(V=a.streamingManager)!=null&&V.publishCameraStream?a.streamingManager.publishCameraStream(P):Promise.reject(new Error("publishCameraStream is not available for this streaming manager"))},unpublishCameraStream(){var P;return(P=a.streamingManager)!=null&&P.unpublishCameraStream?a.streamingManager.unpublishCameraStream():Promise.resolve()},async chat(P){var ne,se,ke,xe,Le;const V=()=>{if(ia(o))throw new Ht(`${o} is enabled, chat is disabled`);if(P.length>=800)throw new Ht("Message cannot be more than 800 characters");if(P.length===0)throw new Ht("Message cannot be empty");if(a.chatMode===_e.Maintenance)throw new Ht("Chat is in maintenance mode");if(![_e.TextOnly,_e.Playground].includes(a.chatMode)){if(!a.streamingManager)throw new Ht("Streaming manager is not initialized");if(!a.chat)throw new Ht("Chat is not initialized")}},B=async()=>{var me,j;if(!a.chat){const W=await pa(u,l,c,a.chatMode,e.persistentChat);if(!W.chat)throw new Wt(a.chatMode,!!e.persistentChat);a.chat=W.chat,(j=(me=e.callbacks).onNewChat)==null||j.call(me,a.chat.id)}return a.chat.id},$=async(me,j)=>{const W=a.chatMode===_e.Playground;return ir(h&&!W?async()=>{var we,nt;return await((nt=(we=a.streamingManager)==null?void 0:we.sendTextMessage)==null?void 0:nt.call(we,P)),Promise.resolve({})}:async()=>{var we,nt;return l.chat(u.id,j,{chatMode:a.chatMode,streamId:(we=a.streamingManager)==null?void 0:we.streamId,sessionId:(nt=a.streamingManager)==null?void 0:nt.sessionId,messages:me.map(({matches:Bs,...Cn})=>Cn)},{...fa(a.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:we=>{var Cn,Xi,Zi,ni;const nt=(Cn=we==null?void 0:we.message)==null?void 0:Cn.includes("missing or invalid session_id");return!((Xi=we==null?void 0:we.message)==null?void 0:Xi.includes("Stream Error"))&&!nt?((ni=(Zi=e.callbacks).onError)==null||ni.call(Zi,we),!1):!0},onRetry:async()=>{await F(),await N(!1)}})};try{v(),V(),a.messages.push({id:Rn(),role:"user",content:P,parts:_n(P),created_at:new Date(mt.update()).toISOString()}),(se=(ne=e.callbacks).onNewMessage)==null||se.call(ne,[...a.messages],"user");const me=await B(),j=await $([...a.messages],me);return a.messages.push({id:Rn(),role:"assistant",content:j.result||"",parts:_n(j.result||""),created_at:new Date().toISOString(),context:j.context,matches:j.matches}),c.track("agent-message-send",{event:"success",messages:a.messages.length+1}),j.result&&((xe=(ke=e.callbacks).onNewMessage)==null||xe.call(ke,[...a.messages],"answer"),c.track("agent-message-received",{latency:mt.get(!0),messages:a.messages.length})),j}catch(me){throw((Le=a.messages[a.messages.length-1])==null?void 0:Le.role)==="assistant"&&a.messages.pop(),c.track("agent-message-send",{event:"error",messages:a.messages.length}),me}},rate(P,V,B){var se,ke,xe,Le;const $=a.messages.find(me=>me.id===P);if(a.chat){if(!$)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const ne=((se=$.matches)==null?void 0:se.map(me=>[me.document_id,me.id]))??[];return c.track("agent-rate",{event:B?"update":"create",thumb:V===1?"up":"down",knowledge_id:((ke=u.knowledge)==null?void 0:ke.id)??"",matches:ne,score:V}),B?l.updateRating(u.id,a.chat.id,B,{knowledge_id:((xe=u.knowledge)==null?void 0:xe.id)??"",message_id:P,matches:ne,score:V}):l.createRating(u.id,a.chat.id,{knowledge_id:((Le=u.knowledge)==null?void 0:Le.id)??"",message_id:P,matches:ne,score:V})},deleteRate(P){if(!a.chat)throw new Error("Chat is not initialized");return c.track("agent-rate-delete",{type:"text"}),l.deleteRating(u.id,a.chat.id,P)},async speak(P){var ne,se,ke;function V(){if(typeof P=="string"){if(!u.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:u.presenter.voice,input:P,ssml:!1}}if(P.type==="text"&&!P.provider){if(!u.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:u.presenter.voice,input:P.input,ssml:P.ssml}}return P}const B=V();if(c.track("agent-speak",B),mt.update(),a.messages&&B.type==="text"&&(a.messages.push({id:Rn(),role:"assistant",content:B.input,parts:_n(B.input),created_at:new Date().toISOString()}),(se=(ne=e.callbacks).onNewMessage)==null||se.call(ne,[...a.messages],"answer")),Dl(a.chatMode))return{duration:0,video_id:"",status:"success"};if(!a.streamingManager)throw new Error("Please connect to the agent first");return a.streamingManager.speak({script:B,metadata:{chat_id:(ke=a.chat)==null?void 0:ke.id,agent_id:u.id}})},interrupt:S,registerClientTool:y,unregisterClientTool:b}}function Cu(n,e,t,i){const r=sr(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const Eu={[Y.ChatAnswer]:We.Answer,[Y.ChatPartial]:We.Partial},Ea=2e4;async function wu(){try{return await Promise.resolve().then(()=>Bg)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Ru={excellent:it.Strong,good:it.Strong,poor:it.Weak,lost:it.Unknown,unknown:it.Unknown},In=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});function dr(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,ce.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function _u(n,e,t){var bl;const i=ga(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:o,Track:a}=await wu(),{callbacks:c,auth:d,baseURL:l,analytics:u}=t;let h=null,f=!1;const v=rt.Fluent;let g=null;const S={isPublishing:!1,publication:null},k={isPublishing:!1,publication:null};let R=null,_=null,y=null,b=!1;h=new r({adaptiveStream:!1,dynacast:!0});let T=null,N=Pe.Idle,F=!0;const O=Cu(d,l||wn,n,c.onError);let D,U,K,re=!0;try{const w=await O.createStream({transport:e.transport,chat_persist:e.chat_persist??!0}),{id:x,session_token:H,session_url:J,interrupt_enabled:oe}=w;(bl=c.onStreamCreated)==null||bl.call(c,{session_id:x,stream_id:x,agent_id:n}),D=x,U=H,K=J,re=oe??!0,await h.prepareConnection(K,U)}catch(w){dr(w,i,c)}if(!K||!U||!D)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,V).on(s.ConnectionQualityChanged,B).on(s.ParticipantConnected,$).on(s.ParticipantDisconnected,ne).on(s.TrackSubscribed,xe).on(s.TrackUnsubscribed,Le).on(s.DataReceived,nt).on(s.MediaDevicesError,Bs).on(s.TranscriptionReceived,P).on(s.EncryptionError,Cn).on(s.TrackSubscriptionFailed,Xi);function P(w,x){x!=null&&x.isLocal&&(mt.update(),N===Pe.Talking&&(N=Pe.Idle))}try{await h.connect(K,U),i("LiveKit room joined successfully"),T=setTimeout(()=>{var w;i(`Track subscription timeout - no track subscribed within ${Ea/1e3} seconds after connect`),T=null,u.track("connectivity-error",{error:"Track subscription timeout",sessionId:D}),(w=c.onError)==null||w.call(c,new Error("Track subscription timeout"),{sessionId:D}),Ks("internal:track-subscription-timeout")},Ea)}catch(w){dr(w,i,c)}u.enrich({"stream-type":v});function V(w){var x,H,J,oe;switch(i("Connection state changed:",w),w){case o.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(x=c.onConnectionStateChange)==null||x.call(c,ce.Connecting,"livekit:connecting");break;case o.Connected:i("LiveKit room connected successfully"),f=!0;break;case o.Disconnected:i("LiveKit room disconnected"),f=!1,b=!1,S.publication=null,k.publication=null,(H=c.onConnectionStateChange)==null||H.call(c,ce.Disconnected,"livekit:disconnected");break;case o.Reconnecting:i("LiveKit room reconnecting..."),(J=c.onConnectionStateChange)==null||J.call(c,ce.Connecting,"livekit:reconnecting");break;case o.SignalReconnecting:i("LiveKit room signal reconnecting..."),(oe=c.onConnectionStateChange)==null||oe.call(c,ce.Connecting,"livekit:signal-reconnecting");break}}function B(w,x){var H;i("Connection quality:",w),x!=null&&x.isLocal&&((H=c.onConnectivityStateChange)==null||H.call(c,Ru[w]))}function $(w){i("Participant connected:",w.identity)}function ne(w){i("Participant disconnected:",w.identity),Ks("livekit:participant-disconnected")}function se(){var w;y!==ee.Start&&(i("CALLBACK: onVideoStateChange(Start)"),y=ee.Start,(w=c.onVideoStateChange)==null||w.call(c,ee.Start))}function ke(w){var x;y!==ee.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),y=ee.Stop,(x=c.onVideoStateChange)==null||x.call(c,ee.Stop,w))}function xe(w,x,H){var oe,le,Be;i(`Track subscribed: ${w.kind} from ${H.identity}`);const J=w.mediaStreamTrack;if(!J){i(`No mediaStreamTrack available for ${w.kind}`);return}g?(g.addTrack(J),i(`Added ${w.kind} track to shared MediaStream`)):(g=new MediaStream([J]),i(`Created shared MediaStream with ${w.kind} track`)),w.kind==="audio"&&(_=tu(()=>w.getRTCStatsReport(),({sttLatency:Re,serviceLatency:ht})=>{var kl,Tl,Sl;const ii=mt.get(!0);let ri=0;if(Re){const Cl=((Tl=(kl=R==null?void 0:R.getReport())==null?void 0:kl.webRTCStats)==null?void 0:Tl.avgRtt)??0;ri=Cl>0?Math.round(Cl*1e3):0}const En=ii>0?ii+(Re??0)+ri:void 0,At=En!==void 0&&ht!==void 0?En-ht:void 0;(Sl=c.onFirstAudioDetected)==null||Sl.call(c,{latency:En,networkLatency:At})})),w.kind==="video"&&((oe=c.onStreamReady)==null||oe.call(c),i("CALLBACK: onSrcObjectReady"),(le=c.onSrcObjectReady)==null||le.call(c,g),b||(b=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Be=c.onConnectionStateChange)==null||Be.call(c,ce.Connected,"livekit:track-subscribed")),R=ba(()=>w.getRTCStatsReport(),()=>f,Il,(Re,ht)=>{i(`Video state change: ${Re}`),Re===ee.Start?(T&&(clearTimeout(T),T=null,i("Track subscription timeout cleared")),se()):Re===ee.Stop&&ke(ht)}),R.start())}function Le(w,x,H){i(`Track unsubscribed: ${w.kind} from ${H.identity}`),w.kind==="audio"&&(_==null||_.destroy(),_=null),w.kind==="video"&&(ke(R==null?void 0:R.getReport()),R==null||R.stop(),R=null)}function me(w,x){var J;const H=Eu[w];H&&((J=c.onMessage)==null||J.call(c,H,{event:H,...x}))}function j(w,x){var H,J,oe,le;if(w===Y.ToolCallStarted){N=Pe.ToolActive,(H=c.onAgentActivityStateChange)==null||H.call(c,Pe.ToolActive),(J=c.onToolEvent)==null||J.call(c,Y.ToolCallStarted,x);return}if(w===Y.ToolCallDone){(oe=c.onToolEvent)==null||oe.call(c,Y.ToolCallDone,x);return}w===Y.ToolCallError&&((le=c.onToolEvent)==null||le.call(c,Y.ToolCallError,x))}function W(w,x){var H,J,oe,le,Be;if(F=((H=x.metadata)==null?void 0:H.interruptible)!==!1,(J=c.onInterruptibleChange)==null||J.call(c,F),w===Y.StreamVideoCreated){N=Pe.Talking,(oe=c.onAgentActivityStateChange)==null||oe.call(c,Pe.Talking),_==null||_.arm({sttLatency:(le=x==null?void 0:x.stt)==null?void 0:le.latency,serviceLatency:x==null?void 0:x.serviceLatency});return}F&&(N=Pe.Idle,(Be=c.onAgentActivityStateChange)==null||Be.call(c,Pe.Idle))}function he(w,x){var le,Be,Re,ht;const H=((Be=(le=R==null?void 0:R.getReport())==null?void 0:le.webRTCStats)==null?void 0:Be.avgRtt)??0,J=H>0?Math.round(H/2*1e3):0,oe={...x,downstreamNetworkLatency:J};t.debug&&((Re=x==null?void 0:x.metadata)!=null&&Re.sentiment)&&(oe.sentiment={id:x.metadata.sentiment.id,name:x.metadata.sentiment.sentiment}),(ht=c.onMessage)==null||ht.call(c,w,oe),W(w,x)}function Ce(w,x){var H;(H=c.onMessage)==null||H.call(c,We.Transcribe,{event:We.Transcribe,...x}),queueMicrotask(()=>{var J;(J=c.onAgentActivityStateChange)==null||J.call(c,Pe.Loading)})}const we={[Y.ChatAnswer]:me,[Y.ChatPartial]:me,[Y.ToolCallStarted]:j,[Y.ToolCallDone]:j,[Y.ToolCallError]:j,[Y.StreamVideoCreated]:he,[Y.StreamVideoDone]:he,[Y.StreamVideoError]:he,[Y.StreamVideoRejected]:he,[Y.ChatAudioTranscribed]:Ce};function nt(w,x,H,J){const oe=new TextDecoder().decode(w);try{const le=JSON.parse(oe),Be=J||le.subject;if(i("Data received:",{subject:Be,data:le}),!Be)return;const Re=we[Be];Re==null||Re(Be,le)}catch(le){i("Failed to parse data channel message:",le)}}function Bs(w){var x;i("Media devices error:",w),(x=c.onError)==null||x.call(c,new Error(In),{sessionId:D})}function Cn(w){var x;i("Encryption error:",w),(x=c.onError)==null||x.call(c,new Error(In),{sessionId:D})}function Xi(w,x,H){i("Track subscription failed:",{trackSid:w,participant:x,reason:H})}function Zi(w,x,H){for(const[J,oe]of H)if(oe.source===x&&oe.track){const le=oe.track.mediaStreamTrack;if(le===w||(le==null?void 0:le.id)===w.id)return oe}return null}async function ni(w,x,H,J,oe,le){var ii,ri,En;if(!f||!h)throw i(`Room is not connected, cannot publish ${J} stream`),new Error("Room is not connected");if(w.isPublishing){i(`${J} publish already in progress, skipping`);return}const Be=H(x);if(Be.length===0)throw new Error(`No ${J} track found in the provided MediaStream`);const Re=Be[0],ht=Zi(Re,J,oe());if(ht){i(`${J} track is already published, skipping`,{trackId:Re.id,publishedTrackId:(ri=(ii=ht.track)==null?void 0:ii.mediaStreamTrack)==null?void 0:ri.id}),w.publication=ht;return}if((En=w.publication)!=null&&En.track){const At=w.publication.track.mediaStreamTrack;At!==Re&&(At==null?void 0:At.id)!==Re.id&&(i(`Unpublishing existing ${J} track before publishing new one`),await le())}i(`Publishing ${J} track from provided MediaStream`,{trackId:Re.id}),w.isPublishing=!0;try{w.publication=await h.localParticipant.publishTrack(Re,{source:J}),i(`${J} track published successfully`,{trackSid:w.publication.trackSid})}catch(At){throw i(`Failed to publish ${J} track:`,At),At}finally{w.isPublishing=!1}}async function vl(w,x){if(!(!w.publication||!w.publication.track))try{h&&(await h.localParticipant.unpublishTrack(w.publication.track,!1),i(`${x} track unpublished`))}catch(H){i(`Error unpublishing ${x} track:`,H)}finally{w.publication=null}}async function jg(w){return ni(S,w,x=>x.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,js)}async function js(){return vl(S,"Microphone")}async function Vg(w){if(!f||!h)throw i("Cannot replace microphone track: room is not connected"),new Error("Room is not connected");if(w.kind!=="audio")throw i("Cannot replace microphone track: not an audio track",{kind:w.kind}),new Error("Microphone track must be an audio track");if(S.isPublishing)throw i("Cannot replace microphone track: publish in progress"),new Error("Microphone publish in progress");const x=S.publication;if(!x||!x.track)throw i("Cannot replace microphone track: no publication to replace"),new Error("No microphone publication to replace");try{S.isPublishing=!0,await x.track.replaceTrack(w),i("Microphone track replaced",{trackId:w.id,trackSid:x.trackSid})}finally{S.isPublishing=!1}}async function qg(w){return ni(k,w,x=>x.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Vs)}async function Vs(){return vl(k,"Camera")}function Kg(){g&&(g.getTracks().forEach(w=>w.stop()),g=null)}async function qs(w,x){var H,J;if(!f||!h){i("Room is not connected for sending messages"),(H=c.onError)==null||H.call(c,new Error(In),{sessionId:D});return}try{await h.localParticipant.sendText(w,{topic:x}),i("Message sent successfully:",w)}catch(oe){i("Failed to send message:",oe),(J=c.onError)==null||J.call(c,new Error(In),{sessionId:D})}}async function yl(w){var x;try{const J=JSON.parse(w).topic;return qs("",J)}catch(H){i("Failed to send data channel message:",H),(x=c.onError)==null||x.call(c,new Error(In),{sessionId:D})}}function Wg(w){return qs(w,"lk.chat")}async function Ks(w){var x,H;T&&(clearTimeout(T),T=null),_==null||_.destroy(),_=null,h&&((x=c.onConnectionStateChange)==null||x.call(c,ce.Disconnecting,w),await Promise.all([js(),Vs()]),await h.disconnect()),Kg(),f=!1,b=!1,(H=c.onAgentActivityStateChange)==null||H.call(c,Pe.Idle),N=Pe.Idle}return{speak(w){const x=typeof w=="string"?w:JSON.stringify(w);return qs(x,"did.speak")},disconnect:()=>Ks("user:disconnect"),async reconnect(){var w,x;if((h==null?void 0:h.state)===o.Connected){i("Room is already connected");return}if(!h||!K||!U)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),b=!1,(w=c.onConnectionStateChange)==null||w.call(c,ce.Connecting,"user:reconnect");try{if(await h.connect(K,U),i("Room reconnected"),f=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(J=>{const oe=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,le),J(!1)},5e3),le=()=>{clearTimeout(oe),h==null||h.off(s.ParticipantConnected,le),J(!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(H){throw i("Failed to reconnect:",H),(x=c.onConnectionStateChange)==null||x.call(c,ce.Fail,"user:reconnect-failed"),H}},sendDataChannelMessage:yl,sendTextMessage:Wg,publishMicrophoneStream:jg,unpublishMicrophoneStream:js,replaceMicrophoneTrack:Vg,publishCameraStream:qg,unpublishCameraStream:Vs,interrupt(w){w!=="text"&&yl(JSON.stringify({topic:"did.interrupt"}))},registerRpcMethod(w,x){h==null||h.registerRpcMethod(w,x)},unregisterRpcMethod(w){h==null||h.unregisterRpcMethod(w)},sessionId:D,streamId:D,streamType:v,interruptAvailable:re,isInterruptible:F}}const Pu=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:_u,handleInitError:dr},Symbol.toStringTag,{value:"Module"}));function Iu(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 Mu=Object.defineProperty,Ou=(n,e,t)=>e in n?Mu(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,wa=(n,e,t)=>Ou(n,typeof e!="symbol"?e+"":e,t);class De{constructor(){wa(this,"_locking"),wa(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 ve(n,e){if(!n)throw new Error(e)}const Du=34028234663852886e22,Au=-34028234663852886e22,xu=4294967295,Lu=2147483647,Nu=-2147483648;function ci(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>Lu||n<Nu)throw new Error("invalid int 32: "+n)}function lr(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>xu||n<0)throw new Error("invalid uint 32: "+n)}function Ra(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Du||n<Au))throw new Error("invalid float 32: "+n)}const _a=Symbol("@bufbuild/protobuf/enum-type");function Uu(n){const e=n[_a];return ve(e,"missing enum type on enum object"),e}function Pa(n,e,t,i){n[_a]=Ia(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function Ia(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const o of e){const a=Ma(o);s.push(a),i[o.name]=a,r[o.no]=a}return{typeName:n,values:s,findName(o){return i[o]},findNumber(o){return r[o]}}}function Fu(n,e,t){const i={};for(const r of e){const s=Ma(r);i[s.localName]=s.no,i[s.no]=s.localName}return Pa(i,n,e),i}function Ma(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class ur{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 Bu(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),o={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new ur),Object.assign(o,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,c){return new o().fromBinary(a,c)},fromJson(a,c){return new o().fromJson(a,c)},fromJsonString(a,c){return new o().fromJsonString(a,c)},equals(a,c){return n.util.equals(o,a,c)}}),o}function ju(){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 hr(n,e,t){for(let s=0;s<28;s=s+7){const o=n>>>s,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(t.push(c),!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 o=e>>>s,a=!!(o>>>7),c=(a?o|128:o)&255;if(t.push(c),!a)return}t.push(e>>>31&1)}}const di=4294967296;function Oa(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(o,a){const c=Number(n.slice(o,a));r*=t,i=i*t+c,i>=di&&(r=r+(i/di|0),i=i%di)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Aa(i,r):mr(i,r)}function Vu(n,e){let t=mr(n,e);const i=t.hi&2147483648;i&&(t=Aa(t.lo,t.hi));const r=Da(t.lo,t.hi);return i?"-"+r:r}function Da(n,e){if({lo:n,hi:e}=qu(n,e),e<=2097151)return String(di*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,o=i+r*8147497,a=r*2;const c=1e7;return s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c),a.toString()+xa(o)+xa(s)}function qu(n,e){return{lo:n>>>0,hi:e>>>0}}function mr(n,e){return{lo:n|0,hi:e|0}}function Aa(n,e){return e=~e,n?n=~n+1:e+=1,mr(n,e)}const xa=n=>{const e=String(n);return"0000000".slice(e.length)+e};function La(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 Ku(){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 Wu(){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"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>s||d<r)throw new Error("int64 invalid: ".concat(c));return d},uParse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>a||d<o)throw new Error("uint64 invalid: ".concat(c));return d},enc(c){return n.setBigInt64(0,this.parse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(c){return n.setBigInt64(0,this.uParse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>ve(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>ve(/^[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),Oa(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),Oa(r)},dec(r,s){return Vu(r,s)},uDec(r,s){return Da(r,s)}}}const fe=Wu();var E;(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"})(E||(E={}));var xt;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(xt||(xt={}));function Lt(n,e,t){if(e===t)return!0;if(n==E.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 E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==t}return!1}function an(n,e){switch(n){case E.BOOL:return!1;case E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==0?fe.zero:"0";case E.DOUBLE:case E.FLOAT:return 0;case E.BYTES:return new Uint8Array(0);case E.STRING:return"";default:return 0}}function Na(n,e){switch(n){case E.BOOL:return e===!1;case E.STRING:return e==="";case E.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Te;(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"})(Te||(Te={}));class Hu{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(lr(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ci(e),La(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){Ra(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){lr(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ci(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ci(e),e=(e<<1^e>>31)>>>0,La(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=fe.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=fe.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=fe.enc(e);return hr(t.lo,t.hi,this.buf),this}sint64(e){let t=fe.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return hr(r,s,this.buf),this}uint64(e){let t=fe.uEnc(e);return hr(t.lo,t.hi,this.buf),this}}class Ju{constructor(e,t){this.varint64=ju,this.uint32=Ku,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 Te.Varint:for(;this.buf[this.pos++]&128;);break;case Te.Bit64:this.pos+=4;case Te.Bit32:this.pos+=4;break;case Te.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Te.StartGroup:for(;;){const[s,o]=this.tag();if(o===Te.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(o,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 fe.dec(...this.varint64())}uint64(){return fe.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,fe.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 fe.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return fe.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 Gu(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 Ua(n){const e=n.field.localName,t=Object.create(null);return t[e]=zu(n),[t,()=>t[e]]}function zu(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 an(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 $u(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 Ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),li=[];for(let n=0;n<Ct.length;n++)li[Ct[n].charCodeAt(0)]=n;li[45]=Ct.indexOf("+"),li[95]=Ct.indexOf("/");const Fa={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,o=0;for(let a=0;a<n.length;a++){if(s=li[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:o=s,r=1;break;case 1:t[i++]=o<<2|(s&48)>>4,o=s,r=2;break;case 2:t[i++]=(o&15)<<4|(s&60)>>2,o=s,r=3;break;case 3:t[i++]=(o&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+=Ct[i>>2],r=(i&3)<<4,t=1;break;case 1:e+=Ct[r|i>>4],r=(i&15)<<2,t=2;break;case 2:e+=Ct[r|i>>6],e+=Ct[i&63],t=0;break}return t&&(e+=Ct[r],e+="=",t==1&&(e+="=")),e}};function Qu(n,e,t){ja(e,n);const i=e.runtime.bin.makeReadOptions(t),r=$u(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,o]=Ua(e);for(const a of r)e.runtime.bin.readField(s,i.readerFactory(a.data),e.field,a.wireType,i);return o()}function Yu(n,e,t,i){ja(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(Ba(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 o=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,o,s);const c=r.readerFactory(o.finish());for(;c.pos<c.len;){const[d,l]=c.tag(),u=c.skip(l,d);n.getType().runtime.bin.onUnknownField(n,d,l,u)}}function Ba(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 ja(n,e){ve(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function Va(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:!Na(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function qa(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?an(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function Et(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(ur.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 Ka(n,e){return Et(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}E.DOUBLE,E.FLOAT,E.INT64,E.UINT64,E.INT32,E.UINT32,E.BOOL,E.STRING,E.BYTES;const Wa={ignoreUnknownFields:!1},Ha={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Xu(n){return n?Object.assign(Object.assign({},Wa),n):Wa}function Zu(n){return n?Object.assign(Object.assign({},Ha),n):Ha}const ui=Symbol(),hi=Symbol();function eh(){return{makeReadOptions:Xu,makeWriteOptions:Zu,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(ft(e)));i=i??new n;const r=new Map,s=t.typeRegistry;for(const[o,a]of Object.entries(e)){const c=n.fields.findJsonName(o);if(c){if(c.oneof){if(a===null&&c.kind=="scalar")continue;const d=r.get(c.oneof);if(d!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(c.oneof.name,'" present: "').concat(d,'", "').concat(o,'"'));r.set(c.oneof,o)}Ja(i,a,c,t,n)}else{let d=!1;if(s!=null&&s.findExtension&&o.startsWith("[")&&o.endsWith("]")){const l=s.findExtension(o.substring(1,o.length-1));if(l&&l.extendee.typeName==n.typeName){d=!0;const[u,h]=Ua(l);Ja(u,a,l.field,t,l),Yu(i,l,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(o,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!Va(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!nh(r))continue}const o=r.oneof?n[r.oneof.localName].value:n[r.localName],a=Ga(r,o,e);a!==void 0&&(i[e.useProtoFieldName?r.name:r.jsonName]=a)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const o of t.runtime.bin.listUnknownFields(n)){const a=s.findExtensionFor(t.typeName,o.no);if(a&&Ba(n,a)){const c=Qu(n,a,e),d=Ga(a.field,c,e);d!==void 0&&(i[a.field.jsonName]=d)}}}catch(s){const o=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(o+(a.length>0?": ".concat(a):""))}return i},readScalar(n,e,t){return Mn(n,e,t??xt.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||Na(n,e)))return mi(n,e)},debug:ft}}function ft(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 Ja(n,e,t,i,r){let s=t.localName;if(t.repeated){if(ve(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(ft(e)));const o=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(ft(a)));switch(t.kind){case"message":o.push(t.T.fromJson(a,i));break;case"enum":const c=fr(t.T,a,i.ignoreUnknownFields,!0);c!==hi&&o.push(c);break;case"scalar":try{o.push(Mn(t.T,a,t.L,!0))}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ft(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(ft(e)));const o=n[s];for(const[a,c]of Object.entries(e)){if(c===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: map value null"));let d;try{d=th(t.K,a)}catch(l){let u="cannot decode map key for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ft(e));throw l instanceof Error&&l.message.length>0&&(u+=": ".concat(l.message)),new Error(u)}switch(t.V.kind){case"message":o[d]=t.V.T.fromJson(c,i);break;case"enum":const l=fr(t.V.T,c,i.ignoreUnknownFields,!0);l!==hi&&(o[d]=l);break;case"scalar":try{o[d]=Mn(t.V.T,c,xt.BIGINT,!0)}catch(u){let h="cannot decode map value for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ft(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 o=t.T;if(e===null&&o.typeName!="google.protobuf.Value")return;let a=n[s];Et(a)?a.fromJson(e,i):(n[s]=a=o.fromJson(e,i),o.fieldWrapper&&!t.oneof&&(n[s]=o.fieldWrapper.unwrapField(a)));break;case"enum":const c=fr(t.T,e,i.ignoreUnknownFields,!1);switch(c){case ui:qa(t,n);break;case hi:break;default:n[s]=c;break}break;case"scalar":try{const d=Mn(t.T,e,t.L,!1);switch(d){case ui:qa(t,n);break;default:n[s]=d;break}}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ft(e));throw d instanceof Error&&d.message.length>0&&(l+=": ".concat(d.message)),new Error(l)}break}}function th(n,e){if(n===E.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return Mn(n,e,xt.BIGINT,!0).toString()}function Mn(n,e,t,i){if(e===null)return i?an(n,t):ui;switch(n){case E.DOUBLE:case E.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==E.FLOAT&&Ra(r),r;case E.INT32:case E.FIXED32:case E.SFIXED32:case E.SINT32:case E.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==E.UINT32||n==E.FIXED32?lr(s):ci(s),s;case E.INT64:case E.SFIXED64:case E.SINT64:if(typeof e!="number"&&typeof e!="string")break;const o=fe.parse(e);return t?o.toString():o;case E.FIXED64:case E.UINT64:if(typeof e!="number"&&typeof e!="string")break;const a=fe.uParse(e);return t?a.toString():a;case E.BOOL:if(typeof e!="boolean")break;return e;case E.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case E.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return Fa.dec(e)}throw new Error}function fr(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:ui;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 hi;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(ft(e)))}function nh(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function Ga(n,e,t){if(n.kind=="map"){ve(typeof e=="object"&&e!=null);const i={},r=Object.entries(e);switch(n.V.kind){case"scalar":for(const[o,a]of r)i[o.toString()]=mi(n.V.T,a);break;case"message":for(const[o,a]of r)i[o.toString()]=a.toJson(t);break;case"enum":const s=n.V.T;for(const[o,a]of r)i[o.toString()]=pr(s,a,t.enumAsInteger);break}return t.emitDefaultValues||r.length>0?i:void 0}if(n.repeated){ve(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let r=0;r<e.length;r++)i.push(mi(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(pr(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 mi(n.T,e);case"enum":return pr(n.T,e,t.enumAsInteger);case"message":return Ka(n.T,e).toJson(t)}}function pr(n,e,t){var i;if(ve(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 mi(n,e){switch(n){case E.INT32:case E.SFIXED32:case E.SINT32:case E.FIXED32:case E.UINT32:return ve(typeof e=="number"),e;case E.FLOAT:case E.DOUBLE:return ve(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case E.STRING:return ve(typeof e=="string"),e;case E.BOOL:return ve(typeof e=="boolean"),e;case E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return ve(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case E.BYTES:return ve(e instanceof Uint8Array),Fa.enc(e)}}const on=Symbol("@bufbuild/protobuf/unknown-fields"),za={readUnknownFields:!0,readerFactory:n=>new Ju(n)},$a={writeUnknownFields:!0,writerFactory:()=>new Hu};function ih(n){return n?Object.assign(Object.assign({},za),n):za}function rh(n){return n?Object.assign(Object.assign({},$a),n):$a}function sh(){return{makeReadOptions:ih,makeWriteOptions:rh,listUnknownFields(n){var e;return(e=n[on])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[on]},writeUnknownFields(n,e){const i=n[on];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[on])||(r[on]=[]),r[on].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),o=r?e.len:e.pos+t;let a,c;for(;e.pos<o&&([a,c]=e.tag(),!(r===!0&&c==Te.EndGroup));){const d=s.fields.find(a);if(!d){const l=e.skip(c,a);i.readUnknownFields&&this.onUnknownField(n,a,c,l);continue}Qa(n,e,d,c,i)}if(r&&(c!=Te.EndGroup||a!==t))throw new Error("invalid end group tag")},readField:Qa,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!Va(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];Ya(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&Ya(n,e,t,i)}}}function Qa(n,e,t,i,r){let{repeated:s,localName:o}=t;switch(t.oneof&&(n=n[t.oneof.localName],n.case!=o&&delete n.value,n.case=o,o="value"),t.kind){case"scalar":case"enum":const a=t.kind=="enum"?E.INT32:t.T;let c=pi;if(t.kind=="scalar"&&t.L>0&&(c=oh),s){let h=n[o];if(i==Te.LengthDelimited&&a!=E.STRING&&a!=E.BYTES){let v=e.uint32()+e.pos;for(;e.pos<v;)h.push(c(e,a))}else h.push(c(e,a))}else n[o]=c(e,a);break;case"message":const d=t.T;s?n[o].push(fi(e,new d,r,t)):Et(n[o])?fi(e,n[o],r,t):(n[o]=fi(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[o]=d.fieldWrapper.unwrapField(n[o])));break;case"map":let[l,u]=ah(t,e,r);n[o][l]=u;break}}function fi(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 ah(n,e,t){const i=e.uint32(),r=e.pos+i;let s,o;for(;e.pos<r;){const[a]=e.tag();switch(a){case 1:s=pi(e,n.K);break;case 2:switch(n.V.kind){case"scalar":o=pi(e,n.V.T);break;case"enum":o=e.int32();break;case"message":o=fi(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=an(n.K,xt.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),o===void 0)switch(n.V.kind){case"scalar":o=an(n.V.T,xt.BIGINT);break;case"enum":o=n.V.T.values[0].no;break;case"message":o=new n.V.T;break}return[s,o]}function oh(n,e){const t=pi(n,e);return typeof t=="bigint"?t.toString():t}function pi(n,e){switch(e){case E.STRING:return n.string();case E.BOOL:return n.bool();case E.DOUBLE:return n.double();case E.FLOAT:return n.float();case E.INT32:return n.int32();case E.INT64:return n.int64();case E.UINT64:return n.uint64();case E.FIXED64:return n.fixed64();case E.BYTES:return n.bytes();case E.FIXED32:return n.fixed32();case E.SFIXED32:return n.sfixed32();case E.SFIXED64:return n.sfixed64();case E.SINT64:return n.sint64();case E.UINT32:return n.uint32();case E.SINT32:return n.sint32()}}function Ya(n,e,t,i){ve(e!==void 0);const r=n.repeated;switch(n.kind){case"scalar":case"enum":let s=n.kind=="enum"?E.INT32:n.T;if(r)if(ve(Array.isArray(e)),n.packed)dh(t,s,n.no,e);else for(const o of e)On(t,s,n.no,o);else On(t,s,n.no,e);break;case"message":if(r){ve(Array.isArray(e));for(const o of e)Xa(t,i,n,o)}else Xa(t,i,n,e);break;case"map":ve(typeof e=="object"&&e!=null);for(const[o,a]of Object.entries(e))ch(t,i,n,o,a);break}}function ch(n,e,t,i,r){n.tag(t.no,Te.LengthDelimited),n.fork();let s=i;switch(t.K){case E.INT32:case E.FIXED32:case E.UINT32:case E.SFIXED32:case E.SINT32:s=Number.parseInt(i);break;case E.BOOL:ve(i=="true"||i=="false"),s=i=="true";break}switch(On(n,t.K,1,s),t.V.kind){case"scalar":On(n,t.V.T,2,r);break;case"enum":On(n,E.INT32,2,r);break;case"message":ve(r!==void 0),n.tag(2,Te.LengthDelimited).bytes(r.toBinary(e));break}n.join()}function Xa(n,e,t,i){const r=Ka(t.T,i);t.delimited?n.tag(t.no,Te.StartGroup).raw(r.toBinary(e)).tag(t.no,Te.EndGroup):n.tag(t.no,Te.LengthDelimited).bytes(r.toBinary(e))}function On(n,e,t,i){ve(i!==void 0);let[r,s]=Za(e);n.tag(t,r)[s](i)}function dh(n,e,t,i){if(!i.length)return;n.tag(t,Te.LengthDelimited).fork();let[,r]=Za(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function Za(n){let e=Te.Varint;switch(n){case E.BYTES:case E.STRING:e=Te.LengthDelimited;break;case E.DOUBLE:case E.FIXED64:case E.SFIXED64:e=Te.Bit64;break;case E.FIXED32:case E.SFIXED32:case E.FLOAT:e=Te.Bit32;break}const t=E[n].toLowerCase();return[e,t]}function lh(){return{setEnumType:Pa,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,o=n;if(o[r]!=null)switch(i.kind){case"oneof":const a=o[r].case;if(a===void 0)continue;const c=i.findField(a);let d=o[r].value;c&&c.kind=="message"&&!Et(d,c.T)?d=new c.T(d):c&&c.kind==="scalar"&&c.T===E.BYTES&&(d=Dn(d)),s[r]={case:a,value:d};break;case"scalar":case"enum":let l=o[r];i.T===E.BYTES&&(l=i.repeated?l.map(Dn):Dn(l)),s[r]=l;break;case"map":switch(i.V.kind){case"scalar":case"enum":if(i.V.T===E.BYTES)for(const[f,v]of Object.entries(o[r]))s[r][f]=Dn(v);else Object.assign(s[r],o[r]);break;case"message":const h=i.V.T;for(const f of Object.keys(o[r])){let v=o[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]=o[r].map(h=>Et(h,u)?h:new u(h));else{const h=o[r];u.fieldWrapper?u.typeName==="google.protobuf.BytesValue"?s[r]=Dn(h):s[r]=h:s[r]=Et(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((o,a)=>i.T.equals(o,s[a]));case"scalar":return r.every((o,a)=>Lt(i.T,o,s[a]));case"enum":return r.every((o,a)=>Lt(E.INT32,o,s[a]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":let o=r,a=s;return i.T.fieldWrapper&&(o!==void 0&&!Et(o)&&(o=i.T.fieldWrapper.wrapField(o)),a!==void 0&&!Et(a)&&(a=i.T.fieldWrapper.wrapField(a))),i.T.equals(o,a);case"enum":return Lt(E.INT32,r,s);case"scalar":return Lt(i.T,r,s);case"oneof":if(r.case!==s.case)return!1;const c=i.findField(r.case);if(c===void 0)return!0;switch(c.kind){case"message":return c.T.equals(r.value,s.value);case"enum":return Lt(E.INT32,r.value,s.value);case"scalar":return Lt(c.T,r.value,s.value)}throw new Error("oneof cannot contain ".concat(c.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=>Lt(E.INT32,r[h],s[h]));case"scalar":const u=i.V.T;return d.every(h=>Lt(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 o;if(r.repeated)o=s.map(gi);else if(r.kind=="map"){o=i[r.localName];for(const[a,c]of Object.entries(s))o[a]=gi(c)}else r.kind=="oneof"?o=r.findField(s.case)?{case:s.case,value:gi(s.value)}:{case:void 0}:o=gi(s);i[r.localName]=o}for(const r of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,r.no,r.wireType,r.data);return t}}}function gi(n){if(n===void 0)return n;if(Et(n))return n.clone();if(n instanceof Uint8Array){const e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function Dn(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function uh(n,e,t){return{syntax:n,json:eh(),bin:sh(),util:Object.assign(Object.assign({},lh()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return Bu(this,i,r,s)},makeEnum:Fu,makeEnumType:Ia,getEnumType:Uu,makeExtension(i,r,s){return Gu(this,i,r,s)}}}class hh{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 eo(n,e){const t=to(n);return e?t:yh(vh(t))}function mh(n){return eo(n,!1)}const fh=to;function to(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 ph=new Set(["constructor","toString","toJSON","valueOf"]),gh=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),no=n=>"".concat(n,"$"),vh=n=>gh.has(n)?no(n):n,yh=n=>ph.has(n)?no(n):n;class bh{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=mh(e)}addField(e){ve(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 kh(n,e){var t,i,r,s,o,a;const c=[];let d;for(const l of typeof n=="function"?n():n){const u=l;if(u.localName=eo(l.name,l.oneof!==void 0),u.jsonName=(t=l.jsonName)!==null&&t!==void 0?t:fh(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:xt.BIGINT),u.delimited=(s=l.delimited)!==null&&s!==void 0?s:!1,u.req=(o=l.req)!==null&&o!==void 0?o:!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!=E.BYTES&&l.T!=E.STRING),l.oneof!==void 0){const h=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!d||d.name!=h)&&(d=new bh(h)),u.oneof=d,d.addField(u)}c.push(u)}return c}const p=uh("proto3",n=>new hh(n,e=>kh(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]=an(e.T,e.L);break}}});class He extends ur{constructor(e){super(),this.seconds=fe.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=fe.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 He.fromDate(new Date)}static fromDate(e){const t=e.getTime();return new He({seconds:fe.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return new He().fromBinary(e,t)}static fromJson(e,t){return new He().fromJson(e,t)}static fromJsonString(e,t){return new He().fromJsonString(e,t)}static equals(e,t){return p.util.equals(He,e,t)}}He.runtime=p,He.typeName="google.protobuf.Timestamp",He.fields=p.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const Th=p.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:He},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:Sh,repeated:!0},{no:5,name:"events",kind:"message",T:Eh,repeated:!0}]),Sh=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:Ch,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),Ch=p.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:He},{no:3,name:"value",kind:"scalar",T:2}]),Eh=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:He},{no:7,name:"normalized_end_timestamp",kind:"message",T:He,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),wh=p.makeEnum("livekit.AudioCodec",[{no:0,name:"DEFAULT_AC"},{no:1,name:"OPUS"},{no:2,name:"AAC"},{no:3,name:"AC_MP3"}]),Rh=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"}]),_h=p.makeEnum("livekit.ImageCodec",[{no:0,name:"IC_DEFAULT"},{no:1,name:"IC_JPEG"}]),io=p.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),Qe=p.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),Ee=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"}]),gr=p.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),An=p.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),xn=p.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),Ye=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"}]),Jt=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"}]),ro=p.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),Ie=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"}]),vi=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:yi,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:bo}]),yi=p.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),Ph=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(Ee),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}]),Gt=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(cn)},{no:4,name:"tracks",kind:"message",T:ln,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:Ph},{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(dn)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:p.getEnumType(Ye)},{no:18,name:"kind_details",kind:"enum",T:p.getEnumType(Ih),repeated:!0},{no:19,name:"data_tracks",kind:"message",T:vr,repeated:!0}]),cn=p.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),dn=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"}]),Ih=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"}]),ye=p.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),Mh=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:Nt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(so)},{no:6,name:"sdp_cid",kind:"scalar",T:9}]),ln=p.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:p.getEnumType(Qe)},{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(Ee)},{no:10,name:"layers",kind:"message",T:Nt,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:Mh,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(ye)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:bo},{no:19,name:"audio_features",kind:"enum",T:p.getEnumType(Ie),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(io)}]),vr=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(ye)}]),Oh=p.makeMessageType("livekit.DataTrackSubscriptionOptions",()=>[{no:1,name:"target_fps",kind:"scalar",T:13,opt:!0}]),Nt=p.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(gr)},{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}]),so=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"}]),je=p.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:p.getEnumType(z)},{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:yr,oneof:"value"},{no:3,name:"speaker",kind:"message",T:Dh,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:lo,oneof:"value"},{no:7,name:"transcription",kind:"message",T:Ah,oneof:"value"},{no:8,name:"metrics",kind:"message",T:Th,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:bi,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:br,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:kr,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:Tr,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:ki,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:Ti,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:Si,oneof:"value"},{no:18,name:"encrypted_packet",kind:"message",T:ao,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),z=p.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),ao=p.makeMessageType("livekit.EncryptedPacket",()=>[{no:1,name:"encryption_type",kind:"enum",T:p.getEnumType(ye)},{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}]),oo=p.makeMessageType("livekit.EncryptedPacketPayload",()=>[{no:1,name:"user",kind:"message",T:yr,oneof:"value"},{no:3,name:"chat_message",kind:"message",T:bi,oneof:"value"},{no:4,name:"rpc_request",kind:"message",T:br,oneof:"value"},{no:5,name:"rpc_ack",kind:"message",T:kr,oneof:"value"},{no:6,name:"rpc_response",kind:"message",T:Tr,oneof:"value"},{no:7,name:"stream_header",kind:"message",T:ki,oneof:"value"},{no:8,name:"stream_chunk",kind:"message",T:Ti,oneof:"value"},{no:9,name:"stream_trailer",kind:"message",T:Si,oneof:"value"}]),Dh=p.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:co,repeated:!0}]),co=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}]),yr=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}]),lo=p.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),Ah=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:xh,repeated:!0}]),xh=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}]),bi=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}]),br=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}]),kr=p.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),Tr=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:uo,oneof:"value"}]),uo=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}]),ho=p.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),mo=p.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:p.getEnumType(fo)},{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}]),fo=p.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),po=p.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:p.getEnumType(go)},{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}]),go=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"}]),vo=p.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:yo},{no:2,name:"screen",kind:"message",T:yo},{no:3,name:"resume_connection",kind:"enum",T:p.getEnumType(xn)},{no:4,name:"disabled_codecs",kind:"message",T:Lh},{no:5,name:"force_relay",kind:"enum",T:p.getEnumType(xn)}]),yo=p.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:p.getEnumType(xn)}]),Lh=p.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:yi,repeated:!0},{no:2,name:"publish",kind:"message",T:yi,repeated:!0}]),bo=p.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),Sr=p.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),ko=p.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:p.getEnumType(Sr)},{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"}),To=p.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),ki=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(ye)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:ko,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:To,oneof:"content_header"}],{localName:"DataStream_Header"}),Ti=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"}),Si=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"}),Nh=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}]),Uh=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:Nh}]),Fh=p.makeMessageType("livekit.SubscribedAudioCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"enabled",kind:"scalar",T:8}]),Cr=p.makeMessageType("livekit.RoomAgentDispatch",()=>[{no:1,name:"agent_name",kind:"scalar",T:9},{no:2,name:"metadata",kind:"scalar",T:9}]),st=p.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Er=p.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),Bh=p.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),jh=p.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:Ut,oneof:"message"},{no:2,name:"answer",kind:"message",T:Ut,oneof:"message"},{no:3,name:"trickle",kind:"message",T:Ci,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Ln,oneof:"message"},{no:5,name:"mute",kind:"message",T:Ei,oneof:"message"},{no:6,name:"subscription",kind:"message",T:wi,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:Ro,oneof:"message"},{no:8,name:"leave",kind:"message",T:Ri,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:Po,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:Oo,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Mr,oneof:"message"},{no:13,name:"simulate",kind:"message",T:pt,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:Pr,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:xo,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:_r,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:_o,oneof:"message"},{no:19,name:"publish_data_track_request",kind:"message",T:Co,oneof:"message"},{no:20,name:"unpublish_data_track_request",kind:"message",T:wo,oneof:"message"},{no:21,name:"update_data_subscription",kind:"message",T:zh,oneof:"message"}]),So=p.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:Wh,oneof:"message"},{no:2,name:"answer",kind:"message",T:Ut,oneof:"message"},{no:3,name:"offer",kind:"message",T:Ut,oneof:"message"},{no:4,name:"trickle",kind:"message",T:Ci,oneof:"message"},{no:5,name:"update",kind:"message",T:Gh,oneof:"message"},{no:6,name:"track_published",kind:"message",T:Rr,oneof:"message"},{no:8,name:"leave",kind:"message",T:Ri,oneof:"message"},{no:9,name:"mute",kind:"message",T:Ei,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:Qh,oneof:"message"},{no:11,name:"room_update",kind:"message",T:Yh,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:Zh,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:tm,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:im,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:sm,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:Jh,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:Hh,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:om,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:lm,oneof:"message"},{no:22,name:"request_response",kind:"message",T:um,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:hm,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:am,oneof:"message"},{no:25,name:"media_sections_requirement",kind:"message",T:gm,oneof:"message"},{no:26,name:"subscribed_audio_codec_update",kind:"message",T:rm,oneof:"message"},{no:27,name:"publish_data_track_response",kind:"message",T:Eo,oneof:"message"},{no:28,name:"unpublish_data_track_response",kind:"message",T:Vh,oneof:"message"},{no:29,name:"data_track_subscriber_handles",kind:"message",T:qh,oneof:"message"}]),wr=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:Nt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(so)}]),Ln=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(Qe)},{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(Ee)},{no:9,name:"layers",kind:"message",T:Nt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:wr,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(ye)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(io)},{no:17,name:"audio_features",kind:"enum",T:p.getEnumType(Ie),repeated:!0}]),Co=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(ye)}]),Eo=p.makeMessageType("livekit.PublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:vr}]),wo=p.makeMessageType("livekit.UnpublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13}]),Vh=p.makeMessageType("livekit.UnpublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:vr}]),qh=p.makeMessageType("livekit.DataTrackSubscriberHandles",()=>[{no:1,name:"sub_handles",kind:"map",K:13,V:{kind:"message",T:Kh}}]),Kh=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"}),Ci=p.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:p.getEnumType(st)},{no:3,name:"final",kind:"scalar",T:8}]),Ei=p.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),Wh=p.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:vi},{no:2,name:"participant",kind:"message",T:Gt},{no:3,name:"other_participants",kind:"message",T:Gt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:Io,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:vo},{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:mo},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:yi,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),Hh=p.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:Io,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:vo},{no:3,name:"server_info",kind:"message",T:mo},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),Rr=p.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:ln}]),Jh=p.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Ut=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}}]),Gh=p.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:Gt,repeated:!0}]),wi=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:ho,repeated:!0}]),zh=p.makeMessageType("livekit.UpdateDataSubscription",()=>[{no:1,name:"updates",kind:"message",T:$h,repeated:!0}]),$h=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:Oh}],{localName:"UpdateDataSubscription_Update"}),Ro=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(gr)},{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}]),_r=p.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:p.getEnumType(Ie),repeated:!0}]),_o=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}]),Ri=p.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:p.getEnumType(Ye)},{no:3,name:"action",kind:"enum",T:p.getEnumType(un)},{no:4,name:"regions",kind:"message",T:cm}]),un=p.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),Po=p.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:Nt,repeated:!0}]),Pr=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}]),Io=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:co,repeated:!0}]),Yh=p.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:vi}]),Xh=p.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:p.getEnumType(An)},{no:3,name:"score",kind:"scalar",T:2}]),Zh=p.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:Xh,repeated:!0}]),em=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(Er)}]),tm=p.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:em,repeated:!0}]),Ir=p.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(gr)},{no:2,name:"enabled",kind:"scalar",T:8}]),nm=p.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:Ir,repeated:!0}]),im=p.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:Ir,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:nm,repeated:!0}]),rm=p.makeMessageType("livekit.SubscribedAudioCodecUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_audio_codecs",kind:"message",T:Fh,repeated:!0}]),Mo=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}]),Oo=p.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:Mo,repeated:!0}]),sm=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}]),am=p.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:vi},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:Gt},{no:4,name:"other_participants",kind:"message",T:Gt,repeated:!0}]),Mr=p.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:Ut},{no:2,name:"subscription",kind:"message",T:wi},{no:3,name:"publish_tracks",kind:"message",T:Rr,repeated:!0},{no:4,name:"data_channels",kind:"message",T:Ao,repeated:!0},{no:5,name:"offer",kind:"message",T:Ut},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:Do,repeated:!0},{no:8,name:"publish_data_tracks",kind:"message",T:Eo,repeated:!0}]),Do=p.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),Ao=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(st)}]),pt=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(Bh),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"}]),xo=p.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),om=p.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),cm=p.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:dm,repeated:!0}]),dm=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}]),lm=p.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:p.getEnumType(ro)}]),um=p.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:p.getEnumType(Or)},{no:3,name:"message",kind:"scalar",T:9},{no:4,name:"trickle",kind:"message",T:Ci,oneof:"request"},{no:5,name:"add_track",kind:"message",T:Ln,oneof:"request"},{no:6,name:"mute",kind:"message",T:Ei,oneof:"request"},{no:7,name:"update_metadata",kind:"message",T:Pr,oneof:"request"},{no:8,name:"update_audio_track",kind:"message",T:_r,oneof:"request"},{no:9,name:"update_video_track",kind:"message",T:_o,oneof:"request"},{no:10,name:"publish_data_track",kind:"message",T:Co,oneof:"request"},{no:11,name:"unpublish_data_track",kind:"message",T:wo,oneof:"request"}]),Or=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"}]),hm=p.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Lo=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}]),mm=p.makeMessageType("livekit.JoinRequest",()=>[{no:1,name:"client_info",kind:"message",T:po},{no:2,name:"connection_settings",kind:"message",T:Lo},{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:Ln,repeated:!0},{no:6,name:"publisher_offer",kind:"message",T:Ut},{no:7,name:"reconnect",kind:"scalar",T:8},{no:8,name:"reconnect_reason",kind:"enum",T:p.getEnumType(Jt)},{no:9,name:"participant_sid",kind:"scalar",T:9},{no:10,name:"sync_state",kind:"message",T:Mr}]),fm=p.makeMessageType("livekit.WrappedJoinRequest",()=>[{no:1,name:"compression",kind:"enum",T:p.getEnumType(pm)},{no:2,name:"join_request",kind:"scalar",T:12}]),pm=p.makeEnum("livekit.WrappedJoinRequest.Compression",[{no:0,name:"NONE"},{no:1,name:"GZIP"}]),gm=p.makeMessageType("livekit.MediaSectionsRequirement",()=>[{no:1,name:"num_audios",kind:"scalar",T:13},{no:2,name:"num_videos",kind:"scalar",T:13}]),vm=p.makeEnum("livekit.EncodedFileType",[{no:0,name:"DEFAULT_FILETYPE"},{no:1,name:"MP4"},{no:2,name:"OGG"},{no:3,name:"MP3"}]),ym=p.makeEnum("livekit.SegmentedFileProtocol",[{no:0,name:"DEFAULT_SEGMENTED_FILE_PROTOCOL"},{no:1,name:"HLS_PROTOCOL"}]),bm=p.makeEnum("livekit.SegmentedFileSuffix",[{no:0,name:"INDEX"},{no:1,name:"TIMESTAMP"}]),km=p.makeEnum("livekit.ImageFileSuffix",[{no:0,name:"IMAGE_SUFFIX_INDEX"},{no:1,name:"IMAGE_SUFFIX_TIMESTAMP"},{no:2,name:"IMAGE_SUFFIX_NONE_OVERWRITE"}]),Tm=p.makeEnum("livekit.StreamProtocol",[{no:0,name:"DEFAULT_PROTOCOL"},{no:1,name:"RTMP"},{no:2,name:"SRT"}]),Sm=p.makeEnum("livekit.AudioMixing",[{no:0,name:"DEFAULT_MIXING"},{no:1,name:"DUAL_CHANNEL_AGENT"},{no:2,name:"DUAL_CHANNEL_ALTERNATE"}]),No=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"}]),Cm=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(Sm)},{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:Dr,oneof:"output"},{no:7,name:"stream",kind:"message",T:Fo,oneof:"output"},{no:10,name:"segments",kind:"message",T:Ar,oneof:"output"},{no:8,name:"preset",kind:"enum",T:p.getEnumType(No),oneof:"options"},{no:9,name:"advanced",kind:"message",T:Bo,oneof:"options"},{no:11,name:"file_outputs",kind:"message",T:Dr,repeated:!0},{no:12,name:"stream_outputs",kind:"message",T:Fo,repeated:!0},{no:13,name:"segment_outputs",kind:"message",T:Ar,repeated:!0},{no:14,name:"image_outputs",kind:"message",T:Em,repeated:!0},{no:16,name:"webhooks",kind:"message",T:Uh,repeated:!0}]),Dr=p.makeMessageType("livekit.EncodedFileOutput",()=>[{no:1,name:"file_type",kind:"enum",T:p.getEnumType(vm)},{no:2,name:"filepath",kind:"scalar",T:9},{no:6,name:"disable_manifest",kind:"scalar",T:8},{no:3,name:"s3",kind:"message",T:_i,oneof:"output"},{no:4,name:"gcp",kind:"message",T:Pi,oneof:"output"},{no:5,name:"azure",kind:"message",T:Ii,oneof:"output"},{no:7,name:"aliOSS",kind:"message",T:Mi,oneof:"output"}]),Ar=p.makeMessageType("livekit.SegmentedFileOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(ym)},{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(bm)},{no:8,name:"disable_manifest",kind:"scalar",T:8},{no:5,name:"s3",kind:"message",T:_i,oneof:"output"},{no:6,name:"gcp",kind:"message",T:Pi,oneof:"output"},{no:7,name:"azure",kind:"message",T:Ii,oneof:"output"},{no:9,name:"aliOSS",kind:"message",T:Mi,oneof:"output"}]),Em=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(km)},{no:6,name:"image_codec",kind:"enum",T:p.getEnumType(_h)},{no:7,name:"disable_manifest",kind:"scalar",T:8},{no:8,name:"s3",kind:"message",T:_i,oneof:"output"},{no:9,name:"gcp",kind:"message",T:Pi,oneof:"output"},{no:10,name:"azure",kind:"message",T:Ii,oneof:"output"},{no:11,name:"aliOSS",kind:"message",T:Mi,oneof:"output"}]),_i=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:Uo}]),Pi=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:Uo}]),Ii=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}]),Mi=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}]),Uo=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}]),Fo=p.makeMessageType("livekit.StreamOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(Tm)},{no:2,name:"urls",kind:"scalar",T:9,repeated:!0}]),Bo=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(wh)},{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(Rh)},{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}]),wm=p.makeMessageType("livekit.AutoParticipantEgress",()=>[{no:1,name:"preset",kind:"enum",T:p.getEnumType(No),oneof:"options"},{no:2,name:"advanced",kind:"message",T:Bo,oneof:"options"},{no:3,name:"file_outputs",kind:"message",T:Dr,repeated:!0},{no:4,name:"segment_outputs",kind:"message",T:Ar,repeated:!0}]),Rm=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:_i,oneof:"output"},{no:3,name:"gcp",kind:"message",T:Pi,oneof:"output"},{no:4,name:"azure",kind:"message",T:Ii,oneof:"output"},{no:6,name:"aliOSS",kind:"message",T:Mi,oneof:"output"}]),_m=p.makeMessageType("livekit.RoomEgress",()=>[{no:1,name:"room",kind:"message",T:Cm},{no:3,name:"participant",kind:"message",T:wm},{no:2,name:"tracks",kind:"message",T:Rm}]),Oi=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:_m},{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:Cr,repeated:!0}]),Pm=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:Oi,opt:!0}]),jo=p.makeMessageType("livekit.TokenSourceResponse",()=>[{no:1,name:"server_url",kind:"scalar",T:9},{no:2,name:"participant_token",kind:"scalar",T:9}]);function Im(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Di={exports:{}},Mm=Di.exports,Vo;function Om(){return Vo||(Vo=1,function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(Mm,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={},o=null;function a(g,S){var k=g[S];if(typeof k.bind=="function")return k.bind(g);try{return Function.prototype.bind.call(k,g)}catch{return function(){return Function.prototype.apply.apply(k,[g,arguments])}}}function c(){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?c:console[g]!==void 0?a(console,g):console.log!==void 0?a(console,"log"):e}function l(){for(var g=this.getLevel(),S=0;S<r.length;S++){var k=r[S];this[k]=S<g?e:this.methodFactory(k,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,S,k){return d(g)||u.apply(this,arguments)}function f(g,S){var k=this,R,_,y,b="loglevel";typeof g=="string"?b+=":"+g:typeof g=="symbol"&&(b=void 0);function T(U){var K=(r[U]||"silent").toUpperCase();if(!(typeof window===t||!b)){try{window.localStorage[b]=K;return}catch{}try{window.document.cookie=encodeURIComponent(b)+"="+K+";"}catch{}}}function N(){var U;if(!(typeof window===t||!b)){try{U=window.localStorage[b]}catch{}if(typeof U===t)try{var K=window.document.cookie,re=encodeURIComponent(b),P=K.indexOf(re+"=");P!==-1&&(U=/^([^;]+)/.exec(K.slice(P+re.length+1))[1])}catch{}return k.levels[U]===void 0&&(U=void 0),U}}function F(){if(!(typeof window===t||!b)){try{window.localStorage.removeItem(b)}catch{}try{window.document.cookie=encodeURIComponent(b)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function O(U){var K=U;if(typeof K=="string"&&k.levels[K.toUpperCase()]!==void 0&&(K=k.levels[K.toUpperCase()]),typeof K=="number"&&K>=0&&K<=k.levels.SILENT)return K;throw new TypeError("log.setLevel() called with invalid level: "+U)}k.name=g,k.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},k.methodFactory=S||h,k.getLevel=function(){return y??_??R},k.setLevel=function(U,K){return y=O(U),K!==!1&&T(y),l.call(k)},k.setDefaultLevel=function(U){_=O(U),N()||k.setLevel(U,!1)},k.resetLevel=function(){y=null,F(),l.call(k)},k.enableAll=function(U){k.setLevel(k.levels.TRACE,U)},k.disableAll=function(U){k.setLevel(k.levels.SILENT,U)},k.rebuild=function(){if(o!==k&&(R=O(o.getLevel())),l.call(k),o===k)for(var U in s)s[U].rebuild()},R=O(o?o.getLevel():"WARN");var D=N();D!=null&&(y=O(D)),l.call(k)}o=new f,o.getLogger=function(S){if(typeof S!="symbol"&&typeof S!="string"||S==="")throw new TypeError("You must supply a name when creating a logger.");var k=s[S];return k||(k=s[S]=new f(S,o.methodFactory)),k};var v=typeof window!==t?window.log:void 0;return o.noConflict=function(){return typeof window!==t&&window.log===o&&(window.log=v),o},o.getLoggers=function(){return s},o.default=o,o})}(Di)),Di.exports}var Nn=Om(),hn;(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"})(hn||(hn={}));var ze;(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"})(ze||(ze={}));let G=Nn.getLogger("livekit");const qo=Object.values(ze).map(n=>Nn.getLogger(n));G.setDefaultLevel(hn.info);function at(n){const e=Nn.getLogger(n);return e.setDefaultLevel(G.getLevel()),e}function Dm(n,e){if(e)Nn.getLogger(e).setLevel(n);else for(const t of qo)t.setLevel(n)}function Am(n,e){(e?[e]:qo).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,o,a)=>{const c=r(s,o,a),d=hn[s],l=d>=o&&d<hn.silent;return(u,h)=>{h?c(u,h):c(u),l&&n(d,u,h)}},i.setLevel(i.getLevel())})}const xm=Nn.getLogger("lk-e2ee"),Un=7e3,Lm=[0,300,2*2*300,3*3*300,4*4*300,Un,Un,Un,Un,Un];class Ko{constructor(e){this._retryDelays=e!==void 0?[...e]:Lm}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 xr(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(o){o(s)})}return new(t||(t=Promise))(function(s,o){function a(l){try{d(i.next(l))}catch(u){o(u)}}function c(l){try{d(i.throw(l))}catch(u){o(u)}}function d(l){l.done?s(l.value):r(l.value).then(a,c)}d((i=i.apply(n,e||[])).next())})}function Wo(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 wt(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 Wo=="function"?Wo(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(o){return new Promise(function(a,c){o=n[s](o),r(a,c,o.done,o.value)})}}function r(s,o,a,c){Promise.resolve(c).then(function(d){s({value:d,done:a})},o)}}typeof SuppressedError=="function"&&SuppressedError;var Ai={exports:{}},Ho;function Nm(){if(Ho)return Ai.exports;Ho=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(b,T,N){return Function.prototype.apply.call(b,T,N)},t;n&&typeof n.ownKeys=="function"?t=n.ownKeys:Object.getOwnPropertySymbols?t=function(b){return Object.getOwnPropertyNames(b).concat(Object.getOwnPropertySymbols(b))}:t=function(b){return Object.getOwnPropertyNames(b)};function i(y){console&&console.warn&&console.warn(y)}var r=Number.isNaN||function(b){return b!==b};function s(){s.init.call(this)}Ai.exports=s,Ai.exports.once=k,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=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 o},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+".");o=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(b){if(typeof b!="number"||b<0||r(b))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+b+".");return this._maxListeners=b,this};function c(y){return y._maxListeners===void 0?s.defaultMaxListeners:y._maxListeners}s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(b){for(var T=[],N=1;N<arguments.length;N++)T.push(arguments[N]);var F=b==="error",O=this._events;if(O!==void 0)F=F&&O.error===void 0;else if(!F)return!1;if(F){var D;if(T.length>0&&(D=T[0]),D instanceof Error)throw D;var U=new Error("Unhandled error."+(D?" ("+D.message+")":""));throw U.context=D,U}var K=O[b];if(K===void 0)return!1;if(typeof K=="function")e(K,this,T);else for(var re=K.length,P=v(K,re),N=0;N<re;++N)e(P[N],this,T);return!0};function d(y,b,T,N){var F,O,D;if(a(T),O=y._events,O===void 0?(O=y._events=Object.create(null),y._eventsCount=0):(O.newListener!==void 0&&(y.emit("newListener",b,T.listener?T.listener:T),O=y._events),D=O[b]),D===void 0)D=O[b]=T,++y._eventsCount;else if(typeof D=="function"?D=O[b]=N?[T,D]:[D,T]:N?D.unshift(T):D.push(T),F=c(y),F>0&&D.length>F&&!D.warned){D.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+D.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=y,U.type=b,U.count=D.length,i(U)}return y}s.prototype.addListener=function(b,T){return d(this,b,T,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(b,T){return d(this,b,T,!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,b,T){var N={fired:!1,wrapFn:void 0,target:y,type:b,listener:T},F=l.bind(N);return F.listener=T,N.wrapFn=F,F}s.prototype.once=function(b,T){return a(T),this.on(b,u(this,b,T)),this},s.prototype.prependOnceListener=function(b,T){return a(T),this.prependListener(b,u(this,b,T)),this},s.prototype.removeListener=function(b,T){var N,F,O,D,U;if(a(T),F=this._events,F===void 0)return this;if(N=F[b],N===void 0)return this;if(N===T||N.listener===T)--this._eventsCount===0?this._events=Object.create(null):(delete F[b],F.removeListener&&this.emit("removeListener",b,N.listener||T));else if(typeof N!="function"){for(O=-1,D=N.length-1;D>=0;D--)if(N[D]===T||N[D].listener===T){U=N[D].listener,O=D;break}if(O<0)return this;O===0?N.shift():g(N,O),N.length===1&&(F[b]=N[0]),F.removeListener!==void 0&&this.emit("removeListener",b,U||T)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(b){var T,N,F;if(N=this._events,N===void 0)return this;if(N.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):N[b]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete N[b]),this;if(arguments.length===0){var O=Object.keys(N),D;for(F=0;F<O.length;++F)D=O[F],D!=="removeListener"&&this.removeAllListeners(D);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(T=N[b],typeof T=="function")this.removeListener(b,T);else if(T!==void 0)for(F=T.length-1;F>=0;F--)this.removeListener(b,T[F]);return this};function h(y,b,T){var N=y._events;if(N===void 0)return[];var F=N[b];return F===void 0?[]:typeof F=="function"?T?[F.listener||F]:[F]:T?S(F):v(F,F.length)}s.prototype.listeners=function(b){return h(this,b,!0)},s.prototype.rawListeners=function(b){return h(this,b,!1)},s.listenerCount=function(y,b){return typeof y.listenerCount=="function"?y.listenerCount(b):f.call(y,b)},s.prototype.listenerCount=f;function f(y){var b=this._events;if(b!==void 0){var T=b[y];if(typeof T=="function")return 1;if(T!==void 0)return T.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function v(y,b){for(var T=new Array(b),N=0;N<b;++N)T[N]=y[N];return T}function g(y,b){for(;b+1<y.length;b++)y[b]=y[b+1];y.pop()}function S(y){for(var b=new Array(y.length),T=0;T<b.length;++T)b[T]=y[T].listener||y[T];return b}function k(y,b){return new Promise(function(T,N){function F(D){y.removeListener(b,O),N(D)}function O(){typeof y.removeListener=="function"&&y.removeListener("error",F),T([].slice.call(arguments))}_(y,b,O,{once:!0}),b!=="error"&&R(y,F,{once:!0})})}function R(y,b,T){typeof y.on=="function"&&_(y,"error",b,T)}function _(y,b,T,N){if(typeof y.on=="function")N.once?y.once(b,T):y.on(b,T);else if(typeof y.addEventListener=="function")y.addEventListener(b,function F(O){N.once&&y.removeEventListener(b,F),T(O)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof y)}return Ai.exports}var gt=Nm();let Jo=!0,Go=!0;function Fn(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function zt(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(o,a){if(o!==e)return r.apply(this,arguments);const c=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,c),r.apply(this,[o,c])};const s=i.removeEventListener;i.removeEventListener=function(o,a){if(o!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(a))return s.apply(this,arguments);const c=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,[o,c])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(o){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),o&&this.addEventListener(e,this["_on"+e]=o)},enumerable:!0,configurable:!0})}function Um(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Jo=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function Fm(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Go=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function zo(){if(typeof window=="object"){if(Jo)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Lr(n,e){Go&&console.warn(n+" is deprecated, please use "+e+" instead.")}function Bm(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(Fn(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(Fn(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(Fn(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=Fn(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function $o(n){return Object.prototype.toString.call(n)==="[object Object]"}function Qo(n){return $o(n)?Object.keys(n).reduce(function(e,t){const i=$o(n[t]),r=i?Qo(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function Nr(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Nr(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{Nr(n,n.get(r),t)})}))}function Yo(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",r=new Map;if(e===null)return r;const s=[];return n.forEach(o=>{o.type==="track"&&o.trackIdentifier===e.id&&s.push(o)}),s.forEach(o=>{n.forEach(a=>{a.type===i&&a.trackId===o.id&&Nr(n,a,r)})}),r}const Xo=zo;function Zo(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 c={};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){c.optional=c.optional||[];let h={};typeof l.ideal=="number"?(h[u("min",d)]=l.ideal,c.optional.push(h),h={},h[u("max",d)]=l.ideal,c.optional.push(h)):(h[u("",d)]=l.ideal,c.optional.push(h))}l.exact!==void 0&&typeof l.exact!="number"?(c.mandatory=c.mandatory||{},c.mandatory[u("",d)]=l.exact):["min","max"].forEach(h=>{l[h]!==void 0&&(c.mandatory=c.mandatory||{},c.mandatory[u(h,d)]=l[h])})}),a.advanced&&(c.optional=(c.optional||[]).concat(a.advanced)),c},r=function(a,c){if(e.version>=61)return c(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),Xo("chrome: "+JSON.stringify(a)),c(a)})}a.video=i(a.video)}return Xo("chrome: "+JSON.stringify(a)),c(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}}},o=function(a,c,d){r(a,l=>{t.webkitGetUserMedia(l,c,u=>{d&&d(s(u))})})};if(t.getUserMedia=o.bind(t),t.mediaDevices.getUserMedia){const a=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(c){return r(c,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 ec(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function tc(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 o=new Event("track");o.track=r.track,o.receiver=s,o.transceiver={receiver:s},o.streams=[i.stream],this.dispatchEvent(o)}),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 o=new Event("track");o.track=r,o.receiver=s,o.transceiver={receiver:s},o.streams=[i.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else zt(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function nc(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,c){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 c=this._senders.indexOf(a);c!==-1&&this._senders.splice(c,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(o=>{this._senders.push(e(this,o))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],i.apply(this,[s]),s.getTracks().forEach(o=>{const a=this._senders.find(c=>c.track===o);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 ic(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(o=>o._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(o=>Yo(o,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}),zt(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>Yo(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,o;return this.getSenders().forEach(a=>{a.track===i&&(r?o=!0:r=a)}),this.getReceivers().forEach(a=>(a.track===i&&(s?o=!0:s=a),a.track===i)),o||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 rc(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(o=>this._shimmedLocalStreams[o][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(o,a){if(!a)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const c=e.apply(this,arguments);return this._shimmedLocalStreams[a.id]?this._shimmedLocalStreams[a.id].indexOf(c)===-1&&this._shimmedLocalStreams[a.id].push(c):this._shimmedLocalStreams[a.id]=[a,c],c};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(o){this._shimmedLocalStreams=this._shimmedLocalStreams||{},o.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 c=this.getSenders().filter(d=>a.indexOf(d)===-1);this._shimmedLocalStreams[o.id]=[o].concat(c)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[o.id],i.apply(this,arguments)};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},o&&Object.keys(this._shimmedLocalStreams).forEach(a=>{const c=this._shimmedLocalStreams[a].indexOf(o);c!==-1&&this._shimmedLocalStreams[a].splice(c,1),this._shimmedLocalStreams[a].length===1&&delete this._shimmedLocalStreams[a]}),r.apply(this,arguments)}}function sc(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return rc(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 o(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]=o(this,arguments[0]),a.apply(this,arguments))};const c=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const d=c.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 Ur(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 ac(n,e){zt(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var oc=Object.freeze({__proto__:null,fixNegotiationNeeded:ac,shimAddTrackRemoveTrack:sc,shimAddTrackRemoveTrackWithNative:rc,shimGetSendersWithDtmf:nc,shimGetUserMedia:Zo,shimMediaStream:ec,shimOnTrack:tc,shimPeerConnection:Ur,shimSenderReceiverGetStats:ic});function cc(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,o){Lr("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(r).then(s,o)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const r=function(o,a,c){a in o&&!(c in o)&&(o[c]=o[a],delete o[a])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(o){return typeof o=="object"&&typeof o.audio=="object"&&(o=JSON.parse(JSON.stringify(o)),r(o.audio,"autoGainControl","mozAutoGainControl"),r(o.audio,"noiseSuppression","mozNoiseSuppression")),s(o)},i&&i.prototype.getSettings){const o=i.prototype.getSettings;i.prototype.getSettings=function(){const a=o.apply(this,arguments);return r(a,"mozAutoGainControl","autoGainControl"),r(a,"mozNoiseSuppression","noiseSuppression"),a}}if(i&&i.prototype.applyConstraints){const o=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")),o.apply(this,[a])}}}}function jm(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 dc(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 Fr(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],o={[r](){return arguments[0]=new(r==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};n.RTCPeerConnection.prototype[r]=o[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,o,a]=arguments;return i.apply(this,[s||null]).then(c=>{if(e.version<53&&!o)try{c.forEach(d=>{d.type=t[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;c.forEach((l,u)=>{c.set(u,Object.assign({},l,{type:t[l.type]||l.type}))})}return c}).then(o,a)}}function lc(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 uc(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}),zt(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function hc(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){Lr("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function mc(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function fc(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(o=>{if("rid"in o&&!/^[a-z0-9]{0,16}$/i.test(o.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in o&&!(parseFloat(o.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in o&&!(parseFloat(o.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(r){const{sender:o}=s,a=o.getParameters();(!("encodings"in a)||a.encodings.length===1&&Object.keys(a.encodings[0]).length===0)&&(a.encodings=i,o.sendEncodings=i,this.setParametersPromises.push(o.setParameters(a).then(()=>{delete o.sendEncodings}).catch(()=>{delete o.sendEncodings})))}return s})}function pc(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 gc(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 vc(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 yc=Object.freeze({__proto__:null,shimAddTransceiver:fc,shimCreateAnswer:vc,shimCreateOffer:gc,shimGetDisplayMedia:jm,shimGetParameters:pc,shimGetUserMedia:cc,shimOnTrack:dc,shimPeerConnection:Fr,shimRTCDataChannel:mc,shimReceiverGetStats:uc,shimRemoveStream:hc,shimSenderGetStats:lc});function bc(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),o=1;o<r;o++)s[o-1]=arguments[o];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 kc(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 o=new Event("addstream");o.stream=s,i.dispatchEvent(o)})}),e.apply(i,arguments)}}}function Tc(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,o=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(c,d,l){const u=r.apply(this,[c]);return l?(u.then(d,l),Promise.resolve()):u};e.setLocalDescription=a,a=function(c,d,l){const u=s.apply(this,[c]);return l?(u.then(d,l),Promise.resolve()):u},e.setRemoteDescription=a,a=function(c,d,l){const u=o.apply(this,[c]);return l?(u.then(d,l),Promise.resolve()):u},e.addIceCandidate=a}function Sc(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(Cc(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function Cc(n){return n&&n.video!==void 0?Object.assign({},n,{video:Qo(n.video)}):n}function Ec(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,r){if(i&&i.iceServers){const s=[];for(let o=0;o<i.iceServers.length;o++){let a=i.iceServers[o];a.urls===void 0&&a.url?(Lr("RTCIceServer.url","RTCIceServer.urls"),a=JSON.parse(JSON.stringify(a)),a.urls=a.url,delete a.url,s.push(a)):s.push(i.iceServers[o])}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 wc(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 Rc(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(o=>o.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(o=>o.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 _c(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var Pc=Object.freeze({__proto__:null,shimAudioContext:_c,shimCallbacksAPI:Tc,shimConstraints:Cc,shimCreateOfferLegacy:Rc,shimGetUserMedia:Sc,shimLocalStreamsAPI:bc,shimRTCIceServerUrls:Ec,shimRemoteStreamsAPI:kc,shimTrackEventTransceiver:wc}),Br={exports:{}},Ic;function Vm(){return Ic||(Ic=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