@d-id/client-sdk 2.0.1-staging.380 → 2.0.2

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.
@@ -366,7 +366,7 @@ function $e(e) {
366
366
  function ge(e) {
367
367
  return e instanceof X ? e.toJson() : { kind: "UnknownError", message: xt(e) || "UnknownError" };
368
368
  }
369
- const zt = "2.0.1-staging.380", Ft = "https://api-js.mixpanel.com/track/?verbose=1&ip=1", Ye = 50, Z = [];
369
+ const zt = "2.0.2", Ft = "https://api-js.mixpanel.com/track/?verbose=1&ip=1", Ye = 50, Z = [];
370
370
  let he = !1;
371
371
  async function Ze(e) {
372
372
  const t = await fetch(Ft, {
@@ -1161,7 +1161,7 @@ async function mn(e, t, n, i) {
1161
1161
  const { version: o, ...s } = t;
1162
1162
  switch (s.transport.provider) {
1163
1163
  case Se.Livekit:
1164
- const { createLiveKitStreamingManager: r } = await import("./livekit-manager-CBEwqZ6q.js");
1164
+ const { createLiveKitStreamingManager: r } = await import("./livekit-manager-C8H6vzgE.js");
1165
1165
  return r(c, s, n);
1166
1166
  default:
1167
1167
  throw new Error(`Unsupported transport provider: ${s.transport.provider}`);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as s, B as r, k as t, m as o, o as i, C as n, f as S, g as d, D as p, H as c, K as g, N as E, P as m, R as C, p as y, e as T, S as v, b as D, j as V, q as A, T as P, V as h, r as w, s as M, W as l, u, v as K, w as N, x as R } from "./index-X7k30sKJ.js";
1
+ import { A as s, B as r, k as t, m as o, o as i, C as n, f as S, g as d, D as p, H as c, K as g, N as E, P as m, R as C, p as y, e as T, S as v, b as D, j as V, q as A, T as P, V as h, r as w, s as M, W as l, u, v as K, w as N, x as R } from "./index-PB3HZRnZ.js";
2
2
  export {
3
3
  s as AgentActivityState,
4
4
  r as BaseError,
@@ -1,4 +1,4 @@
1
- (function(z,Ce){typeof exports=="object"&&typeof module<"u"?Ce(exports):typeof define=="function"&&define.amd?define(["exports"],Ce):(z=typeof globalThis<"u"?globalThis:z||self,Ce(z.index={}))})(this,(function(z){"use strict";var Cv=Object.defineProperty;var Ev=(z,Ce,dn)=>Ce in z?Cv(z,Ce,{enumerable:!0,configurable:!0,writable:!0,value:dn}):z[Ce]=dn;var Nt=(z,Ce,dn)=>Ev(z,typeof Ce!="symbol"?Ce+"":Ce,dn);class Ce extends Error{constructor(e,t="Error",i){super(e),this.kind=t,this.originalError=i,Object.setPrototypeOf(this,new.target.prototype)}toJson(){const e=this.originalError instanceof Error?this.originalError.message.slice(0,256):void 0;return{kind:this.kind,message:this.message,...e&&e!==this.message?{cause:e}:{}}}}function dn(n){return n instanceof Error&&typeof n.kind=="string"}class Xs extends Ce{constructor(e,t){super(`Failed to create ${t?"persistent":""} chat, mode: ${e}`,"ChatCreationFailed")}}class Zs extends Ce{constructor(e){super(`Chat mode downgraded to ${e}`,"ChatModeDowngraded")}}function Bl(n){try{const e=JSON.parse(n);if(e&&typeof e=="object"&&typeof e.kind=="string")return e}catch{}}class sr extends Ce{constructor(t,i,r={}){const s=Bl(i);super(((s==null?void 0:s.description)??i).slice(0,256),(s==null?void 0:s.kind)??"HttpError");Nt(this,"status");Nt(this,"url");Nt(this,"method");this.status=t,this.url=r.url,this.method=r.method}toJson(){return{...super.toJson(),httpStatus:this.status,...this.url?{endpoint:this.url}:{},...this.method?{method:this.method}:{}}}}class ea extends Ce{constructor(t,i={}){super("Network request failed","NetworkError",t);Nt(this,"endpoint");Nt(this,"method");Nt(this,"durationMs");Nt(this,"online");Nt(this,"visibility");this.endpoint=i.url,this.method=i.method,this.durationMs=i.durationMs,this.online=i.online,this.visibility=i.visibility}toJson(){return{...super.toJson(),...this.endpoint?{endpoint:this.endpoint}:{},...this.method?{method:this.method}:{},...this.durationMs!==void 0?{durationMs:this.durationMs}:{},...this.online!==void 0?{online:this.online}:{},...this.visibility?{visibility:this.visibility}:{}}}}class ai extends Ce{constructor(e,t){super(e,"StreamError",t)}}class Ye extends Ce{constructor(e,t){super(e,"ValidationError"),this.key=t}}class ta extends Ce{constructor(e){super(e,"WSError")}}var na=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(na||{}),Ie=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(Ie||{}),xe=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(xe||{}),ia=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(ia||{}),ra=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(ra||{}),sa=(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))(sa||{}),ar=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(ar||{});const jl=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var te=(n=>(n.Start="START",n.Stop="STOP",n))(te||{}),rt=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(rt||{}),de=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(de||{}),Q=(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.TurnStarted="turn/started",n.TurnEnded="turn/ended",n))(Q||{}),le=(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))(le||{}),st=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(st||{}),oi=(n=>(n.Livekit="livekit",n))(oi||{}),aa=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(aa||{}),oa=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(oa||{});const Vl=(...n)=>{},ca=n=>new Promise(e=>setTimeout(e,n)),Gt=(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)};function or(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=Gt();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let ci=Gt();function ql(){ci=Gt()}function da(n,e){if(n.type==="bearer")return`Bearer ${n.token}~${ci}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}~${ci}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${or(e)}_${ci}`;throw new Error(`Unknown auth type: ${n}`)}const Kl=45*1e3,Wl="X-Playground-Chat",la=2e3,In="https://api.d-id.com",Hl="wss://notifications.d-id.com",Jl="79f81a83a67430be2bc0fd61042b8faa",ua=n=>n.type,Gl=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},cr=n=>n===ar.Expressive,zl=n=>[Ie.TextOnly,Ie.Playground,Ie.Maintenance].includes(n),ha=n=>n&&[Ie.DirectPlayback,Ie.Off].includes(n),ma=/\[!\[([^\[\]]*)\]\(([^)\s]+)\)\]\(([^)\s]+)\)/g,fa=/!\[([^\[\]]*)\]\(([^)\s]+)\)/g,$l=[".mp4",".webm",".mkv",".mov",".m4v",".ogv"];function Ql(n){const e=n.split("?")[0].split("#")[0].toLowerCase();return $l.some(t=>e.endsWith(t))}const pa=new RegExp("(?<!!)\\[([^\\[\\]]+)\\]\\(([^)\\s]+)\\)","g"),ga=/<a\s+href="([^"]*)"[^>]*?>([^<]*)<\/a>/gi;function va(n){if(n.length===0)return[];const e=[];let t;for(ma.lastIndex=0;(t=ma.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(fa.lastIndex=0;(t=fa.exec(n))!==null;)if(!e.some(c=>t.index>=c.index&&t.index<c.index+c.length)){const c=t[2],a=t[1];let o;Ql(c)?o={type:"video",src:c,alt:a}:(o={type:"image",src:c,alt:a},c.toLowerCase().endsWith(".gif")&&(o.mimeType="image/gif")),e.push({index:t.index,length:t[0].length,part:o})}for(pa.lastIndex=0;(t=pa.exec(n))!==null;)e.some(c=>t.index>=c.index&&t.index<c.index+c.length)||e.push({index:t.index,length:t[0].length,part:{type:"link",href:t[2],label:t[1]}});for(ga.lastIndex=0;(t=ga.exec(n))!==null;)e.some(c=>t.index>=c.index&&t.index<c.index+c.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,c)=>s.index-c.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 ya="",dr=[];function Mn(n){return n===ya||(ya=n,dr=va(n)),dr}function Yl(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function lr(n,e){const t={limit:(e==null?void 0:e.limit)??3,delayMs:(e==null?void 0:e.delayMs)??0,timeout:(e==null?void 0:e.timeout)??3e4,timeoutErrorMessage:(e==null?void 0:e.timeoutErrorMessage)||"Timeout error",shouldRetryFn:(e==null?void 0:e.shouldRetryFn)??(()=>!0),onRetry:(e==null?void 0:e.onRetry)??(()=>{})};let i;for(let r=1;r<=t.limit;r++)try{if(!t.timeout)return await n();const{promise:s,clear:c}=Yl(t.timeout,t.timeoutErrorMessage),a=n().finally(c);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await ca(t.delayMs),t.onRetry(s)}throw i}const Xl=n=>lr(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function ur(n,e=In,t,i){const r=async(s,c)=>{const{skipErrorHandler:a,...o}=c||{},d=o.method??"GET",l=performance.now();let u;try{u=await Xl(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...o,headers:{...o.headers,Authorization:da(n,i),"Content-Type":"application/json"}}))}catch(h){if((h==null?void 0:h.name)==="AbortError")throw h;const v=new ea(h,{url:s,method:d,durationMs:Math.round(performance.now()-l),online:typeof navigator<"u"?navigator.onLine:void 0,visibility:typeof document<"u"?document.visibilityState:void 0});throw a||t==null||t(v,{url:s,options:o}),v}if(!u.ok){const h=await u.text().catch(()=>`Failed to fetch with status ${u.status}`),m=new sr(u.status,h,{url:s,method:d});throw a||t==null||t(m,{url:s,options:o,headers:u.headers}),m}return u.json()};return{get(s,c){return r(s,{...c,method:"GET"})},post(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"POST"})},delete(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"DELETE"})},patch(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"PATCH"})}}}function Zl(n,e=In,t,i){const r=ur(n,`${e}/agents`,t,i);return{getRuntimeById(s,c){return r.get(`/${s}/runtime`,c)},newChat(s,c,a){return r.post(`/${s}/chat`,c,a)},chat(s,c,a,o){return r.post(`/${s}/chat/${c}`,a,o)},createRating(s,c,a,o){return r.post(`/${s}/chat/${c}/ratings`,a,o)},updateRating(s,c,a,o,d){return r.patch(`/${s}/chat/${c}/ratings/${a}`,o,d)},deleteRating(s,c,a,o){return r.delete(`/${s}/chat/${c}/ratings/${a}`,o)},submitFeedback(s,c,a,o){return r.post(`/${s}/chat/${c}/feedback`,a,o)},getSTTToken(s,c){return r.get(`/${s}/stt-token`,c)}}}function eu(n){var r,s;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.avatar;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:ua(i),agentVoice:{language:(s=(r=n.avatar)==null?void 0:r.voice)==null?void 0:s.language}}}function tu(n){var e;return{agentType:ua(n.avatar),presenterType:Gl(n.avatar),owner_id:n.owner_id??"",starterQuestionsCount:(e=n.starter_message)==null?void 0:e.length,agentId:n.id,agentName:n.name}}const nu=n=>{try{return String((n==null?void 0:n.message)??n??"").slice(0,256)}catch{return"Unknown error"}},iu=n=>n.reduce((e,t)=>e+t,0),ba=n=>iu(n)/n.length,ka=n=>Math.min(...n),Ta=n=>Math.max(...n),di=(n,e=0)=>{const t=10**e;return Math.round(n*t)/t},ru=(n,e)=>{const t=[...n].sort((i,r)=>i-r);return t[Math.min(t.length-1,Math.floor(e*(t.length-1)))]},su=n=>ru(n,.5),au=(n,e)=>{try{return n()}catch{return e}};function ou(n,e,t){var a,o;const{event:i,...r}=n,{language:s}=((a=e==null?void 0:e.avatar)==null?void 0:a.voice)||{};return{...r,script:{...r.script,provider:{...(o=r==null?void 0:r.script)==null?void 0:o.provider,language:s}},...t}}function Sa(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}function li(n){return n instanceof Ce?n.toJson():{kind:"UnknownError",message:nu(n)||"UnknownError"}}const Ca="2.0.1-staging.380",cu="https://api-js.mixpanel.com/track/?verbose=1&ip=1",Ea=50,zt=[];let hr=!1;async function wa(n){const e=await fetch(cu,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify(n)})});if(!e.ok)throw new Error(`Mixpanel responded with ${e.status}`)}function du(n){zt.push(n),zt.splice(Ea)}function mr(){if(hr||!zt.length)return;hr=!0;const n=zt.splice(0,zt.length);wa(n).catch(()=>{zt.unshift(...n),zt.splice(Ea)}).finally(()=>{hr=!1})}typeof window<"u"&&typeof window.addEventListener=="function"&&(window.addEventListener("online",mr),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&mr()}));function lu(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:or(n.externalId),agentId:n.agentId,additionalProperties:{id:or(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Gt,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:c,...a}=r||{},o=s||Date.now(),d={event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,emittedBy:"agents-sdk",sdkVersion:Ca,token:this.token,time:o,$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerHeight,"Screen Width":window.screen.width||window.innerWidth,"User Agent":navigator.userAgent}};return mr(),wa([d]).catch(()=>du(d)),Promise.resolve()},linkTrack(i,r,s,c){t[i]||(t[i]={events:{},resolvedDependencies:[]}),c.includes(s)||c.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),c.every(d=>a.resolvedDependencies.includes(d))){const d=c.reduce((l,u)=>a.events[u]?{...l,...a.events[u].props}:l,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(l=>!c.includes(l)),c.forEach(l=>{delete a.events[l]})}}}}function fr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const ft=fr(),pr=fr(),Ra=fr();function Pa(n){return n===Ie.Playground?{headers:{[Wl]:"true"}}:{}}async function _a(n,e,t,i,r=!1,s){return!s&&!ha(i)&&(s=await e.newChat(n.id,{persist:r},Pa(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}function uu(n){return n&&n.length>0?n:[]}function hu(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:c}=n,{onMessage:a=null,onOpen:o=null,onClose:d=null,onError:l=null}=i||{},u=new WebSocket(`${r}?authorization=${encodeURIComponent(da(s,c))}`);u.onmessage=a,u.onclose=d,u.onerror=h=>{console.error(h),l==null||l("Websocket failed to connect",h),t(h)},u.onopen=h=>{o==null||o(h),e(u)}})}async function mu(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 hu(n)}catch(r){if(i===e)throw r;await ca(i*500)}return t}async function fu(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await mu({auth:n,host:e,externalId:i,callbacks:{onError:c=>{var a;return(a=t.onError)==null?void 0:a.call(t,new ta(c))},onMessage(c){const a=JSON.parse(c.data);r.forEach(o=>o(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:c=>r.push(c)}}function Ia(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function pu(n,e,t){if(!n.content)return;const i={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,parts:Mn(n.content),created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(i),t==null||t([...e.messages],"user")}function gu(n,e,t,i,r,s,c){if(n===xe.Transcribe&&e.content){pu(e,i,r);return}if(!(n===xe.Partial||n===xe.Answer))return;const a=i.messages[i.messages.length-1];if(n===xe.Answer&&(a==null?void 0:a.role)==="user"&&c==="partial")return;const d=c==="answer";let l;if((a==null?void 0:a.role)==="assistant"&&!d)l=a;else if(!a||a.role==="user"||d)d&&s(),l={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(l);else return;const{content:u,sequence:h}=e;if(n===xe.Partial)t[h]=u;else{const v=Ia(t);!!(u&&u.length<v.length)&&(l.interrupted=!0),t.answer=u}const m=Ia(t);(l.content!==m||n===xe.Answer)&&(l.content=m,l.parts=Mn(m),r==null||r([...i.messages],n))}function vu(n,e,t,i,r){const s={},c=()=>{for(const d of Object.keys(s))delete s[d]};let a=null;const o=(d,l)=>{var u,h;l==="user"&&c(),(h=(u=t.callbacks).onNewMessage)==null||h.call(u,d,l)};return{clearQueue:c,onMessage:(d,l)=>{var u,h;if("content"in l){const m=d===Q.ChatAnswer?xe.Answer:d===Q.ChatAudioTranscribed?xe.Transcribe:d;gu(m,l,s,e,o,c,a),m===xe.Partial?a="partial":m===xe.Answer&&(a="answer",c()),m===xe.Answer&&n.track("agent-message-received",{content:l.content,messages:e.messages.length,mode:e.chatMode})}else{const m=Q,v=[m.StreamVideoDone,m.StreamVideoError,m.StreamVideoRejected],g=[m.StreamFailed,m.StreamVideoError,m.StreamVideoRejected],S=ou(l,i,{mode:e.chatMode});if(d=d,d===m.StreamVideoCreated&&(n.linkTrack("agent-video",S,m.StreamVideoCreated,["start"]),l.sentiment)){const k=e.messages[e.messages.length-1];if((k==null?void 0:k.role)==="assistant"){const P={...k,sentiment:l.sentiment};e.messages[e.messages.length-1]=P,o==null||o([...e.messages],a??"answer")}}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 ai(`Stream failed with event ${d}`),{data:l})),l.event===m.StreamDone&&r()}}}}function yu(n,e,t,i){const r=ur(n,`${e}/agents/${t}`,i);return{createStream(s,c){return r.post("/streams",s,{signal:c})},startConnection(s,c,a,o){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:c},{signal:o})},addIceCandidate(s,c,a,o){return r.post(`/streams/${s}/ice`,{session_id:a,...c},{signal:o})},sendStreamRequest(s,c,a){return r.post(`/streams/${s}`,{session_id:c,...a})},close(s,c){return r.delete(`/streams/${s}`,{session_id:c})}}}const Ma=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),bu=45;function ku(n){const e=n.map(o=>o.av).filter(o=>!!o&&o.audioPlayout>0&&o.videoPlayout>0);if(e.length<2)return null;const t=e[0].localTs,i=e[e.length-1].localTs-t,r=e.map(o=>o.audioPlayout-o.videoPlayout),s=r.filter(o=>o>bu||o<-100),c=e.filter(o=>o.localTs-t>=Math.min(5e3,i/2)),a=(c.length?c:e).map(o=>o.audioPlayout-o.videoPlayout);return{sampleCount:e.length,durationMs:di(i),desyncDurationMs:di(i*(s.length/r.length)),maxOffsetMs:di(r.reduce((o,d)=>Math.abs(d)>Math.abs(o)?d:o)),residualOffsetMs:di(su(a))}}function Tu(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 Su(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 Cu(n){var o;let e="",t=0,i=null,r=null;const s=new Map;for(const d of n.values())if(d)if(d.type==="codec"&&((o=d.mimeType)!=null&&o.startsWith("video")))s.set(d.id,d.mimeType.split("/")[1]);else if(d.type==="candidate-pair"){const l=d,u=l.currentRoundTripTime??0;u>0&&(l.nominated===!0||t===0)&&(t=u)}else d.type==="inbound-rtp"&&d.kind==="video"?i=d:d.type==="inbound-rtp"&&d.kind==="audio"&&(r=d);if(!i)return{};const c=i;c.codecId&&s.has(c.codecId)?e=s.get(c.codecId):s.size>0&&(e=s.values().next().value??"");const a={codec:e,rtt:t,timestamp:c.timestamp,bytesReceived:c.bytesReceived,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,frameWidth:c.frameWidth,frameHeight:c.frameHeight,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.totalFreezesDuration};return r&&(a.av={audioPlayout:r.estimatedPlayoutTimestamp??0,videoPlayout:c.estimatedPlayoutTimestamp??0,localTs:c.timestamp}),a}function Oa(n,e,t){const i=n.map((o,d)=>d===0?t?{timestamp:o.timestamp,duration:0,rtt:o.rtt,bytesReceived:o.bytesReceived-t.bytesReceived,bitrate:(o.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-t.packetsReceived,packetsLost:o.packetsLost-t.packetsLost,framesDropped:o.framesDropped-t.framesDropped,framesDecoded:o.framesDecoded-t.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-t.jitterBufferDelay)/(o.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-t.freezeCount,freezeDuration:o.freezeDuration-t.freezeDuration}:{timestamp:o.timestamp,rtt:o.rtt,duration:0,bytesReceived:o.bytesReceived,bitrate:o.bytesReceived*8/(e/1e3),packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.freezeDuration}:{timestamp:o.timestamp,duration:e*d/1e3,rtt:o.rtt,bytesReceived:o.bytesReceived-n[d-1].bytesReceived,bitrate:(o.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-n[d-1].packetsReceived,packetsLost:o.packetsLost-n[d-1].packetsLost,framesDropped:o.framesDropped-n[d-1].framesDropped,framesDecoded:o.framesDecoded-n[d-1].framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-n[d-1].jitterBufferDelay)/(o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-n[d-1].freezeCount,freezeDuration:o.freezeDuration-n[d-1].freezeDuration}),r=Su(i),s=r.reduce((o,d)=>o+(d.causes.includes("low fps")?1:0),0),c=i.filter(o=>!!o.avgJitterDelayInInterval).map(o=>o.avgJitterDelayInInterval),a=i.filter(o=>!!o.rtt).map(o=>o.rtt);return{webRTCStats:{anomalies:r,avSync:au(()=>ku(n),null),minRtt:ka(a),avgRtt:ba(a),maxRtt:Ta(a),aggregateReport:Tu(n[0],n[n.length-1],s),minJitterDelayInInterval:ka(c),maxJitterDelayInInterval:Ta(c),avgJitterDelayInInterval:ba(c)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function Aa(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 On=10;function Eu(n,e){let t=!1,i=!1,r=null,s=0,c=0,a={};async function o(){if(t){try{const d=await n();if(!d){r=setTimeout(o,On);return}const l=Aa(d,"audio");if(!l){r=setTimeout(o,On);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,c=h,i=!0,r=setTimeout(o,On);return}const m=u-s,v=h-c;if(s=u,c=h,v>0&&m>0){t=!1,e(a);return}}catch{}t&&(r=setTimeout(o,On))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(o,On)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const ui=100,wu=Math.max(Math.ceil(400/ui),1),Ru=.25,Pu=.28;function _u(){let n=0,e,t,i=0;return r=>{const s=Aa(r,"video");if(!s)return{isReceiving:!1,avgJitterDelayInInterval:i};const c=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const l=c-e,u=a-t;i=l/u}e=c,t=a;const o=s.framesDecoded,d=o-n>0;return n=o,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}}function Da(n,e,t,i,r){let s=null,c=[],a,o=0,d=!1,l=rt.Unknown,u=rt.Unknown,h=0,m=0;const v=_u();async function g(){const S=await n();if(!S)return;const{isReceiving:k,avgJitterDelayInInterval:P,freezeCount:I}=v(S),y=Cu(S);if(k)o=0,h=I-m,u=P<Ru?rt.Strong:P>Pu&&h>1?rt.Weak:l,u!==l&&(r==null||r(u),l=u,m+=h,h=0),d||(i==null||i(te.Start),a=c[c.length-1],c=[],d=!0),c.push(y);else if(d&&(o++,o>=wu)){const b=Oa(c,ui,a);i==null||i(te.Stop,b),e()||t(),m=I,d=!1}}return{start:()=>{s||(s=setInterval(g,ui))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>Oa(c,ui,a)}}const Iu=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function xa(n){switch(n){case"connected":return le.Connected;case"checking":return le.Connecting;case"failed":return le.Fail;case"new":return le.New;case"closed":return le.Closed;case"disconnected":return le.Disconnected;case"completed":return le.Completed;default:return le.New}}const Mu=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function Ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===te.Start&&e===te.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(te.Start)):n===te.Stop&&e===te.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(te.Stop,i))}function Au({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===te.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(te.Start)):n===te.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(te.Stop,r)),e===te.Start?i==null||i(de.Talking):e===te.Stop&&(i==null||i(de.Idle))}function La({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:c}){r===st.Legacy?Ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:c}):r===st.Fluent&&Au({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:c})}async function Du(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=In,analytics:c},a){var fe;const o=Ma(t,"WebRTCStreamingManager"),d=Mu(o);let l=!1,u=!1,h=te.Stop,m=te.Stop;const{startConnection:v,sendStreamRequest:g,close:S,createStream:k,addIceCandidate:P}=yu(r,s,n,i.onError),{id:I,offer:y,ice_servers:b,session_id:T,fluent:x,interrupt_enabled:F}=await k(e,a);(fe=i.onStreamCreated)==null||fe.call(i,{stream_id:I,session_id:T,agent_id:n});const M=new Iu({iceServers:b}),N=M.createDataChannel("JanusDataChannel");if(!T)throw new Error("Could not create session_id");const U=x?st.Fluent:st.Legacy;c.enrich({"stream-type":U});const J=e.stream_warmup&&!x,$=()=>l,w=()=>{var V;l=!0,u&&(o("CALLBACK: onConnectionStateChange(Connected)"),(V=i.onConnectionStateChange)==null||V.call(i,le.Connected))},B=Da(()=>M.getStats(),$,w,(V,W)=>La({statsSignal:m=V,dataChannelSignal:U===st.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:W,streamType:U,log:o}),V=>{var W;return(W=i.onConnectivityStateChange)==null?void 0:W.call(i,V)});B.start(),M.onicecandidate=V=>{var W;o("peerConnection.onicecandidate",V);try{V.candidate&&V.candidate.sdpMid&&V.candidate.sdpMLineIndex!==null?P(I,{candidate:V.candidate.candidate,sdpMid:V.candidate.sdpMid,sdpMLineIndex:V.candidate.sdpMLineIndex},T,a):P(I,{candidate:null},T,a)}catch(ge){(W=i.onError)==null||W.call(i,ge,{streamId:I})}},N.onopen=()=>{u=!0,(!J||l)&&w()};let j=null;const X=V=>{var W;j=V,(W=i.onVideoIdChange)==null||W.call(i,V)};function ie(V,W){if(V===Q.StreamStarted&&typeof W=="object"&&"metadata"in W){const ge=W.metadata;X(ge.videoId)}V===Q.StreamDone&&X(null),h=V===Q.StreamStarted?te.Start:te.Stop,La({statsSignal:U===st.Legacy?m:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:U,log:o})}function ae(V,W){var Pe;const ge=typeof W=="string"?W:W==null?void 0:W.metadata;ge&&c.enrich({streamMetadata:ge}),(Pe=i.onStreamReady)==null||Pe.call(i)}const Re={[Q.StreamStarted]:ie,[Q.StreamDone]:ie,[Q.StreamReady]:ae};N.onmessage=V=>{var Pe;const{subject:W,data:ge}=d(V.data);(Pe=Re[W])==null||Pe.call(Re,W,ge)},M.oniceconnectionstatechange=()=>{var W;o("peerConnection.oniceconnectionstatechange => "+M.iceConnectionState);const V=xa(M.iceConnectionState);V!==le.Connected&&((W=i.onConnectionStateChange)==null||W.call(i,V,`webrtc:ice-${M.iceConnectionState}`))},M.ontrack=V=>{var W;o("peerConnection.ontrack",V),o("CALLBACK: onSrcObjectReady"),(W=i.onSrcObjectReady)==null||W.call(i,V.streams[0])},await M.setRemoteDescription(y),o("set remote description OK");const Ue=await M.createAnswer();o("create answer OK"),await M.setLocalDescription(Ue),o("set local description OK"),await v(I,Ue,T,a),o("start connection OK");function Fe(V){var W,ge;if(!l||N.readyState!=="open"){o("Data channel is not ready for sending messages"),(W=i.onError)==null||W.call(i,new ai("Data channel is not ready for sending messages"),{streamId:I});return}try{N.send(V)}catch(Pe){o("Error sending data channel message",Pe),(ge=i.onError)==null||ge.call(i,Pe,{streamId:I})}}return{speak(V){return g(I,T,V)},async disconnect(){var V;if(I){const W=xa(M.iceConnectionState);if(M){if(W===le.New){B.stop();return}M.close(),M.oniceconnectionstatechange=null,M.onnegotiationneeded=null,M.onicecandidate=null,M.ontrack=null}try{W===le.Connected&&await S(I,T).catch(ge=>{})}catch(ge){o("Error on close stream connection",ge)}(V=i.onAgentActivityStateChange)==null||V.call(i,de.Idle),B.stop()}},sendDataChannelMessage:Fe,sessionId:T,streamId:I,streamType:U,interruptAvailable:F??!1,isInterruptible:!0,interrupt(V){if(!F)throw new Error("Interrupt is not enabled for this stream");if(U!==st.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!j)throw new Error("No active video to interrupt");const W={type:Q.StreamInterrupt,videoId:j,timestamp:Date.now()};Fe(JSON.stringify(W))}}}var gr=(n=>(n.V1="v1",n.V2="v2",n))(gr||{});async function xu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...c}=e;return Du(r,c,t,i)}case"v2":{const{version:s,...c}=e;switch(c.transport.provider){case oi.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>eh);return a(r,c,t);default:throw new Error(`Unsupported transport provider: ${c.transport.provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const Lu="cht";function Nu(){return{transport:{provider:oi.Livekit}}}function Uu(n){var r,s;const{streamOptions:e}=n??{},t=((r=n==null?void 0:n.mixpanelAdditionalProperties)==null?void 0:r.plan)!==void 0?{plan:(s=n.mixpanelAdditionalProperties)==null?void 0:s.plan}:void 0;return{...{output_resolution:e==null?void 0:e.outputResolution,session_timeout:e==null?void 0:e.sessionTimeout,stream_warmup:e==null?void 0:e.streamWarmup,compatibility_mode:e==null?void 0:e.compatibilityMode,fluent:e==null?void 0:e.fluent},...t&&{end_user_data:t}}}function Fu(n,e){return cr(n.avatar.type)?{version:gr.V2,...Nu()}:{version:gr.V1,...Uu(e)}}function Bu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function ju(n,e,t,i,r){r===st.Fluent?Vu(n,e,t,i,r):qu(n,e,t,i,r)}function Vu(n,e,t,i,r){n===te.Start?i.track("stream-session",{event:"start","stream-type":r}):n===te.Stop&&i.track("stream-session",{event:"stop","stream-type":r,...t})}function Na(n,e,t,i,r){n===te.Start?t.linkTrack("agent-video",{event:"start",...r,"stream-type":i},"start",[Q.StreamVideoCreated]):n===te.Stop&&t.linkTrack("agent-video",{event:"stop","stream-type":i},"done",[Q.StreamVideoDone])}function qu(n,e,t,i,r){n===te.Start?i.linkTrack("agent-video",{event:"start",latency:ft.get(!0),"stream-type":r},"start",[Q.StreamVideoCreated]):n===te.Stop&&i.linkTrack("agent-video",{event:"stop","stream-type":r,...t},"done",[Q.StreamVideoDone])}function Ku(n,e,t){const i={call_id:e.call_id,name:e.name};if(n===Q.ToolCallStarted){t.track("agent-tool-call",{...i,event:"started"});return}const r=e;t.track("agent-tool-call",{...i,event:n===Q.ToolCallDone?"done":"error",duration_ms:r.duration_ms,extra_keys:r.extra?Object.keys(r.extra).length:0})}function Ua(n,e,t,i){return ft.reset(),Ra.update(),new Promise(async(r,s)=>{try{let c,a=!1;const o=Fu(n,e);t.enrich({"stream-version":o.version.toString()});let d=null;const l=n.avatar.type==="expressive";c=await xu(n,o,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var m,v;(v=(m=e.callbacks).onConnectionStateChange)==null||v.call(m,u),Bu(u,h,t),u===le.Connected&&(c?r(c):a=!0)},onVideoStateChange:(u,h)=>{var m,v;(v=(m=e.callbacks).onVideoStateChange)==null||v.call(m,u),ju(u,n,h,t,c.streamType)},onAgentActivityStateChange:u=>{var h,m;(m=(h=e.callbacks).onAgentActivityStateChange)==null||m.call(h,u),u===de.Talking?(pr.update(),d=v=>{Na(te.Start,n,t,c.streamType,v),d=null},l||d({latency:ft.get(!0)})):(pr.reset(),d=null,Na(te.Stop,n,t,c.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=Ra.get(!0);t.track("agent-chat",{event:"ready",latency:u})},onToolEvent:((u,h)=>{var m,v;(v=(m=e.callbacks).onToolEvent)==null||v.call(m,u,h),Ku(u,h,t)})}},i),a&&r(c)}catch(c){s(c)}})}async function Wu(n,e,t,i,r){var l,u,h,m;const s=async()=>{if(cr(n.avatar.type)){const v=await Ua(n,e,i),g=`${Lu}_${v.sessionId}`,S=new Date().toISOString();return{chatResult:{chatMode:Ie.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:Ie.Functional,messages:[]}},streamingManager:v}}else{const v=new AbortController,g=v.signal;let S;try{const k=_a(n,t,i,e.mode,e.persistentChat,r),P=Ua(n,e,i,g).then(b=>(S=b,b)),[I,y]=await Promise.all([k,P]);return{chatResult:I,streamingManager:y}}catch(k){throw v.abort(),S&&await S.disconnect().catch(()=>{}),k}}},{chatResult:c,streamingManager:a}=await s(),{chat:o,chatMode:d}=c;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(u=(l=e.callbacks).onModeChange)==null||u.call(l,d),d!==Ie.Functional)?((m=(h=e.callbacks).onError)==null||m.call(h,new Zs(d)),a==null||a.disconnect(),{chat:o}):{chat:o,streamingManager:a}}async function Hu(n,e){var U,J,$;let t=!0;const i=e.mixpanelKey||Jl,r=e.wsURL||Hl,s=e.baseURL||In,c=e.mode||Ie.Functional,a={messages:[],chatMode:c},o=lu({token:i,agentId:n,isEnabled:e.enableAnalytics??e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),d=Date.now();Sa(()=>{o.track("agent-sdk",{event:"init"},d)});const l=e.callbacks.onError;e.callbacks.onError=(w,B)=>{o.track("agent-error",{error:li(w)}),l==null||l(w,B)};const u=Zl(e.auth,s,e.callbacks.onError,e.externalId),h=await u.getRuntimeById(n);e.debug=e.debug||((U=h==null?void 0:h.advanced_settings)==null?void 0:U.ui_debug_mode);const m=cr(h.avatar.type);o.enrich(tu(h));const{onMessage:v,clearQueue:g}=vu(o,a,e,h,()=>{var w,B,j;(w=a.socketManager)==null||w.disconnect(),(j=(B=e.callbacks).onConnectionStateChange)==null||j.call(B,le.Disconnected)});a.messages=uu(e.initialMessages),($=(J=e.callbacks).onNewMessage)==null||$.call(J,[...a.messages],"answer");const S=w=>{o.enrich({videoId:w})},k=({type:w})=>{var j,X,ie,ae;if(!((j=a.streamingManager)!=null&&j.interruptAvailable)||!((X=a.streamingManager)!=null&&X.isInterruptible))return;const B=a.messages[a.messages.length-1];o.track("agent-video-interrupt",{type:w||"click",video_duration_to_interrupt:pr.get(!0),message_duration_to_interrupt:ft.get(!0)}),B.interrupted=!0,(ae=(ie=e.callbacks).onNewMessage)==null||ae.call(ie,[...a.messages],"answer"),a.streamingManager.interrupt(w)},P=new Map;function I(w){return async B=>{const j=P.get(w);if(!j)throw new Error(`No handler registered for client tool: ${w}`);try{const X=JSON.parse(B.payload);return await j(X)}catch(X){throw new Error(`Client tool "${w}" failed: ${X.message}`)}}}function y(){var w,B,j,X;for(const[ie]of P)(B=(w=a.streamingManager)==null?void 0:w.unregisterRpcMethod)==null||B.call(w,ie),(X=(j=a.streamingManager)==null?void 0:j.registerRpcMethod)==null||X.call(j,ie,I(ie))}function b(w,B){var X,ie;const j=!P.has(w);P.set(w,B),j&&((ie=(X=a.streamingManager)==null?void 0:X.registerRpcMethod)==null||ie.call(X,w,I(w)))}function T(w){var B,j;P.delete(w),(j=(B=a.streamingManager)==null?void 0:B.unregisterRpcMethod)==null||j.call(B,w)}const x=Date.now();Sa(()=>{o.track("agent-sdk",{event:"loaded",...eu(h)},x)});async function F(w){var Re,Ue,Fe,fe,V,W,ge;ql(),(Ue=(Re=e.callbacks).onConnectionStateChange)==null||Ue.call(Re,le.Connecting),ft.reset(),w&&!t&&(delete a.chat,(fe=(Fe=e.callbacks).onNewMessage)==null||fe.call(Fe,[...a.messages],"answer"));const B=c===Ie.DirectPlayback||m?Promise.resolve(void 0):fu(e.auth,r,{onMessage:v,onError:e.callbacks.onError},e.externalId),j=lr(()=>Wu(h,{...e,mode:c,callbacks:{...e.callbacks,onVideoIdChange:S,onMessage:v}},u,o,a.chat),{limit:3,timeout:Kl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:Pe=>(Pe==null?void 0:Pe.message)!=="Could not connect"&&!(Pe instanceof sr&&(Pe.status===429||Pe.kind==="InsufficientCreditsError")),delayMs:1e3}).catch(Pe=>{var Se,Qe;throw N(Ie.Maintenance),(Qe=(Se=e.callbacks).onConnectionStateChange)==null||Qe.call(Se,le.Fail),Pe}),[X,{streamingManager:ie,chat:ae}]=await Promise.all([B,j]);ae&&ae.id!==((V=a.chat)==null?void 0:V.id)&&((ge=(W=e.callbacks).onNewChat)==null||ge.call(W,ae.id)),a.streamingManager=ie,a.socketManager=X,a.chat=ae,y(),t=!1,o.enrich({chatId:ae==null?void 0:ae.id,streamId:ie==null?void 0:ie.streamId,mode:a.chatMode}),N((ae==null?void 0:ae.chat_mode)??c)}async function M(){var w,B,j,X;(w=a.socketManager)==null||w.disconnect(),await((B=a.streamingManager)==null?void 0:B.disconnect()),delete a.streamingManager,delete a.socketManager,(X=(j=e.callbacks).onConnectionStateChange)==null||X.call(j,le.Disconnected)}async function N(w){var B,j;w!==a.chatMode&&(o.track("agent-mode-change",{mode:w}),a.chatMode=w,a.chatMode!==Ie.Functional&&await M(),(j=(B=e.callbacks).onModeChange)==null||j.call(B,w))}return{agent:h,getStreamType:()=>{var w;return(w=a.streamingManager)==null?void 0:w.streamType},getIsInterruptAvailable:()=>{var w;return((w=a.streamingManager)==null?void 0:w.interruptAvailable)??!1},starterMessages:h.starter_message||[],getSTTToken:()=>u.getSTTToken(h.id),changeMode:N,enrichAnalytics:o.enrich,async connect(){await F(!0),o.track("agent-chat",{event:"connect",mode:a.chatMode})},async reconnect(){const w=a.streamingManager;let B;if(m&&(w!=null&&w.reconnect))try{await w.reconnect()}catch(j){B=li(j).kind,await M(),await F(!1)}else await M(),await F(!1);o.track("agent-chat",{event:"reconnect",mode:a.chatMode,success:!0,...B&&{fallbackReason:B}})},async disconnect(){await M(),o.track("agent-chat",{event:"disconnect",mode:a.chatMode})},publishMicrophoneStream(w){var B;return(B=a.streamingManager)!=null&&B.publishMicrophoneStream?a.streamingManager.publishMicrophoneStream(w):Promise.reject(new Error("publishMicrophoneStream is not available for this streaming manager"))},unpublishMicrophoneStream(){var w;return(w=a.streamingManager)!=null&&w.unpublishMicrophoneStream?a.streamingManager.unpublishMicrophoneStream():Promise.resolve()},replaceMicrophoneTrack(w){var B;return(B=a.streamingManager)!=null&&B.replaceMicrophoneTrack?a.streamingManager.replaceMicrophoneTrack(w):Promise.reject(new Error("replaceMicrophoneTrack is not available for this streaming manager"))},publishCameraStream(w){var B;return(B=a.streamingManager)!=null&&B.publishCameraStream?a.streamingManager.publishCameraStream(w):Promise.reject(new Error("publishCameraStream is not available for this streaming manager"))},unpublishCameraStream(){var w;return(w=a.streamingManager)!=null&&w.unpublishCameraStream?a.streamingManager.unpublishCameraStream():Promise.resolve()},async chat(w){var ie,ae,Re,Ue,Fe;const B=()=>{if(ha(c))throw new Ye(`${c} is enabled, chat is disabled`);if(w.length>=la)throw new Ye(`Message cannot be more than ${la} characters`);if(w.length===0)throw new Ye("Message cannot be empty");if(a.chatMode===Ie.Maintenance)throw new Ye("Chat is in maintenance mode");if(![Ie.TextOnly,Ie.Playground].includes(a.chatMode)){if(!a.streamingManager)throw new Ye("Streaming manager is not initialized");if(!a.chat)throw new Ye("Chat is not initialized")}},j=async()=>{var fe,V;if(!a.chat){const W=await _a(h,u,o,a.chatMode,e.persistentChat);if(!W.chat)throw new Xs(a.chatMode,!!e.persistentChat);a.chat=W.chat,(V=(fe=e.callbacks).onNewChat)==null||V.call(fe,a.chat.id)}return a.chat.id},X=async(fe,V)=>{const W=a.chatMode===Ie.Playground;return lr(m&&!W?async()=>{var Se,Qe;return await((Qe=(Se=a.streamingManager)==null?void 0:Se.sendTextMessage)==null?void 0:Qe.call(Se,w)),Promise.resolve({})}:async()=>{var Se,Qe;return u.chat(h.id,V,{chatMode:a.chatMode,streamId:(Se=a.streamingManager)==null?void 0:Se.streamId,sessionId:(Qe=a.streamingManager)==null?void 0:Qe.sessionId,messages:fe.map(({matches:Gs,...xt})=>xt)},{...Pa(a.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Se=>{var xt,nr,ir,rr;const Qe=(xt=Se==null?void 0:Se.message)==null?void 0:xt.includes("missing or invalid session_id");return!((nr=Se==null?void 0:Se.message)==null?void 0:nr.includes("Stream Error"))&&!Qe?((rr=(ir=e.callbacks).onError)==null||rr.call(ir,Se),!1):!0},onRetry:async()=>{await M(),await F(!1)}})};try{g(),B(),a.messages.push({id:Gt(),role:"user",content:w,parts:Mn(w),created_at:new Date(ft.update()).toISOString()}),(ae=(ie=e.callbacks).onNewMessage)==null||ae.call(ie,[...a.messages],"user");const fe=await j(),V=await X([...a.messages],fe);return V.result&&a.messages.push({id:Gt(),role:"assistant",content:V.result,parts:Mn(V.result),created_at:new Date().toISOString(),context:V.context,matches:V.matches}),o.track("agent-message-send",{event:"success",messages:a.messages.length+1}),V.result&&((Ue=(Re=e.callbacks).onNewMessage)==null||Ue.call(Re,[...a.messages],"answer"),o.track("agent-message-received",{latency:ft.get(!0),messages:a.messages.length})),V}catch(fe){throw((Fe=a.messages[a.messages.length-1])==null?void 0:Fe.role)==="assistant"&&a.messages.pop(),o.track("agent-message-send",{event:"error",messages:a.messages.length,error:li(fe)}),fe}},rate(w,B,j){var ae,Re,Ue,Fe;const X=a.messages.find(fe=>fe.id===w);if(a.chat){if(!X)throw new Ye("Message not found")}else throw new Ye("Chat is not initialized");const ie=((ae=X.matches)==null?void 0:ae.map(fe=>[fe.document_id,fe.id]))??[];return o.track("agent-rate",{event:j?"update":"create",thumb:B===1?"up":"down",knowledge_id:((Re=h.knowledge)==null?void 0:Re.id)??"",matches:ie,score:B}),j?u.updateRating(h.id,a.chat.id,j,{knowledge_id:((Ue=h.knowledge)==null?void 0:Ue.id)??"",message_id:w,matches:ie,score:B}):u.createRating(h.id,a.chat.id,{knowledge_id:((Fe=h.knowledge)==null?void 0:Fe.id)??"",message_id:w,matches:ie,score:B})},deleteRate(w){if(!a.chat)throw new Ye("Chat is not initialized");return o.track("agent-rate-delete",{type:"text"}),u.deleteRating(h.id,a.chat.id,w)},submitFeedback(w,B){if(!a.chat)throw new Ye("Chat is not initialized");return o.track("agent-feedback",{rating:w,hasAnswer:!!B}),u.submitFeedback(h.id,a.chat.id,{rating:w,answer:B})},async speak(w){var ie,ae,Re;function B(){return typeof w=="string"?{type:"text",input:w,ssml:!1}:w.type==="text"&&!w.provider?{type:"text",input:w.input,ssml:w.ssml,should_queue_speaks:w.should_queue_speaks,sentiment:w.sentiment}:w}const j=B();if(o.track("agent-speak",j),ft.update(),a.messages&&j.type==="text"&&(a.messages.push({id:Gt(),role:"assistant",content:j.input,parts:Mn(j.input),created_at:new Date().toISOString()}),(ae=(ie=e.callbacks).onNewMessage)==null||ae.call(ie,[...a.messages],"answer")),zl(a.chatMode))return{duration:0,video_id:"",status:"success"};if(!a.streamingManager)throw new Ye("Please connect to the agent first");return a.streamingManager.speak({script:j,metadata:{chat_id:(Re=a.chat)==null?void 0:Re.id,agent_id:h.id}})},interrupt:k,registerClientTool:b,unregisterClientTool:T}}function Ju(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone??""}catch{return""}}function Gu(){if(typeof navigator>"u")return"";const n=navigator.userAgent??"",e=(navigator.platform??"").toLowerCase();let t="Unknown";/android/i.test(n)?t="Android":/iphone|ipad|ipod/i.test(n)?t="iOS":e.includes("win")?t="Windows":e.includes("mac")?t="Mac OS X":e.includes("linux")&&(t="Linux");const i=t==="Android"||t==="iOS"||/Mobi/i.test(n);return`${t}, ${i?"Mobile":"Desktop"}`}function zu(){const n={},e=Ju();e&&(n.timezone=e);const t=Gu();return t&&(n.device=t),n}function $u(n,e,t,i){const r=ur(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const Qu={[Q.ChatAnswer]:xe.Answer,[Q.ChatPartial]:xe.Partial},Fa=2e4;async function Yu(){try{return await Promise.resolve().then(()=>uv)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Xu={excellent:rt.Strong,good:rt.Strong,poor:rt.Weak,lost:rt.Unknown,unknown:rt.Unknown},ln=(n="Stream Error")=>new ai(n);function vr(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,le.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function Zu(n,e,t){var xl;const i=Ma(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:c,Track:a}=await Yu(),{callbacks:o,auth:d,baseURL:l,analytics:u}=t;let h=null,m=!1;const v=st.Fluent;let g=null;const S={isPublishing:!1,publication:null},k={isPublishing:!1,publication:null};let P=null,I=null,y=null,b=!1;h=new r({adaptiveStream:!1,dynacast:!0});let T=null,x=de.Idle,F=!0;const M=new Set;let N=null,U=!1;const J=$u(d,l||In,n,o.onError);let $,w,B,j=!0;try{const C=await J.createStream({transport:e.transport,chat_persist:e.chat_persist??!0,verbose:t.verbose??!1}),{id:_,session_token:q,session_url:H,interrupt_enabled:ce}=C;(xl=o.onStreamCreated)==null||xl.call(o,{session_id:_,stream_id:_,agent_id:n}),$=_,w=q,B=H,j=ce??!0,await h.prepareConnection(B,w)}catch(C){vr(C,i,o)}if(!B||!w||!$)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,ae).on(s.ConnectionQualityChanged,Re).on(s.ParticipantConnected,Ue).on(s.ParticipantDisconnected,Fe).on(s.TrackSubscribed,W).on(s.TrackUnsubscribed,ge).on(s.DataReceived,mv).on(s.MediaDevicesError,fv).on(s.TranscriptionReceived,X).on(s.EncryptionError,pv).on(s.TrackSubscriptionFailed,gv);function X(C,_){_!=null&&_.isLocal&&(ft.update(),!U&&x===de.Talking&&(x=de.Idle))}async function ie(){const C=zu();if(!(!h||Object.keys(C).length===0))try{await h.localParticipant.setAttributes(C)}catch(_){i("Failed to set user context attributes",_)}}try{await h.connect(B,w),i("LiveKit room joined successfully"),ie(),T=setTimeout(()=>{var _;i(`Track subscription timeout - no track subscribed within ${Fa/1e3} seconds after connect`),T=null;const C=ln("Track subscription timeout");u.track("connectivity-error",{error:li(C),sessionId:$}),(_=o.onError)==null||_.call(o,C,{sessionId:$}),Ys("internal:track-subscription-timeout")},Fa)}catch(C){vr(C,i,o)}u.enrich({"stream-type":v});function ae(C){var _,q,H,ce;switch(i("Connection state changed:",C),C){case c.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(_=o.onConnectionStateChange)==null||_.call(o,le.Connecting,"livekit:connecting");break;case c.Connected:i("LiveKit room connected successfully"),m=!0;break;case c.Disconnected:i("LiveKit room disconnected"),m=!1,b=!1,S.publication=null,k.publication=null,(q=o.onConnectionStateChange)==null||q.call(o,le.Disconnected,"livekit:disconnected");break;case c.Reconnecting:i("LiveKit room reconnecting..."),(H=o.onConnectionStateChange)==null||H.call(o,le.Connecting,"livekit:reconnecting");break;case c.SignalReconnecting:i("LiveKit room signal reconnecting..."),(ce=o.onConnectionStateChange)==null||ce.call(o,le.Connecting,"livekit:signal-reconnecting");break}}function Re(C,_){var q;i("Connection quality:",C),_!=null&&_.isLocal&&((q=o.onConnectivityStateChange)==null||q.call(o,Xu[C]))}function Ue(C){i("Participant connected:",C.identity)}function Fe(C){i("Participant disconnected:",C.identity),Ys("livekit:participant-disconnected")}function fe(){var C;y!==te.Start&&(i("CALLBACK: onVideoStateChange(Start)"),y=te.Start,(C=o.onVideoStateChange)==null||C.call(o,te.Start))}function V(C){var _;y!==te.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),y=te.Stop,(_=o.onVideoStateChange)==null||_.call(o,te.Stop,C))}function W(C,_,q){var ce,he,Me;i(`Track subscribed: ${C.kind} from ${q.identity}`);const H=C.mediaStreamTrack;if(!H){i(`No mediaStreamTrack available for ${C.kind}`);return}g?(g.addTrack(H),i(`Added ${C.kind} track to shared MediaStream`)):(g=new MediaStream([H]),i(`Created shared MediaStream with ${C.kind} track`)),C.kind==="audio"&&(I=Eu(()=>C.getRTCStatsReport(),({sttLatency:re,serviceLatency:mt})=>{var Ll,Nl,Ul;const ri=ft.get(!0);let si=0;if(re){const Fl=((Nl=(Ll=P==null?void 0:P.getReport())==null?void 0:Ll.webRTCStats)==null?void 0:Nl.avgRtt)??0;si=Fl>0?Math.round(Fl*1e3):0}const _n=ri>0?ri+(re??0)+si:void 0,Lt=_n!==void 0&&mt!==void 0?_n-mt:void 0;(Ul=o.onFirstAudioDetected)==null||Ul.call(o,{latency:_n,networkLatency:Lt})})),C.kind==="video"&&((ce=o.onStreamReady)==null||ce.call(o),i("CALLBACK: onSrcObjectReady"),(he=o.onSrcObjectReady)==null||he.call(o,g),b||(b=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Me=o.onConnectionStateChange)==null||Me.call(o,le.Connected,"livekit:track-subscribed")),P=Da(()=>C.getRTCStatsReport(),()=>m,Vl,(re,mt)=>{i(`Video state change: ${re}`),re===te.Start?(T&&(clearTimeout(T),T=null,i("Track subscription timeout cleared")),fe()):re===te.Stop&&V(mt)}),P.start())}function ge(C,_,q){i(`Track unsubscribed: ${C.kind} from ${q.identity}`),C.kind==="audio"&&(I==null||I.destroy(),I=null),C.kind==="video"&&(V(P==null?void 0:P.getReport()),P==null||P.stop(),P=null)}function Pe(C,_){var H;const q=Qu[C];q&&((H=o.onMessage)==null||H.call(o,q,{event:q,..._}))}function Se(C,_){var q,H,ce,he,Me;if(C===Q.ToolCallStarted){const re=_;F=re.interruptible!==!1,(q=o.onInterruptibleChange)==null||q.call(o,F),M.add(re.call_id),x=de.ToolActive,(H=o.onAgentActivityStateChange)==null||H.call(o,de.ToolActive),(ce=o.onToolEvent)==null||ce.call(o,Q.ToolCallStarted,re);return}if(C===Q.ToolCallDone){const re=_;Qe(re.call_id),(he=o.onToolEvent)==null||he.call(o,Q.ToolCallDone,re);return}if(C===Q.ToolCallError){const re=_;Qe(re.call_id),(Me=o.onToolEvent)==null||Me.call(o,Q.ToolCallError,re)}}function Qe(C){var _;M.delete(C),!U&&M.size===0&&x===de.ToolActive&&(x=de.Idle,(_=o.onAgentActivityStateChange)==null||_.call(o,de.Idle))}function Gs(C,_){var q,H,ce,he,Me,re;if(F=((q=_.metadata)==null?void 0:q.interruptible)!==!1,(H=o.onInterruptibleChange)==null||H.call(o,F),C===Q.StreamVideoCreated){x=de.Talking,(ce=o.onAgentActivityStateChange)==null||ce.call(o,de.Talking),I==null||I.arm({sttLatency:(he=_==null?void 0:_.stt)==null?void 0:he.latency,serviceLatency:_==null?void 0:_.serviceLatency});return}if(M.size>0){x!==de.ToolActive&&(x=de.ToolActive,(Me=o.onAgentActivityStateChange)==null||Me.call(o,de.ToolActive));return}!U&&F&&(x=de.Idle,(re=o.onAgentActivityStateChange)==null||re.call(o,de.Idle))}function xt(C,_){var he,Me,re,mt;const q=((Me=(he=P==null?void 0:P.getReport())==null?void 0:he.webRTCStats)==null?void 0:Me.avgRtt)??0,H=q>0?Math.round(q/2*1e3):0,ce={..._,downstreamNetworkLatency:H};t.debug&&((re=_==null?void 0:_.metadata)!=null&&re.sentiment)&&(ce.sentiment={id:_.metadata.sentiment.id,name:_.metadata.sentiment.sentiment}),(mt=o.onMessage)==null||mt.call(o,C,ce),Gs(C,_)}function nr(C,_){var q;(q=o.onMessage)==null||q.call(o,xe.Transcribe,{event:xe.Transcribe,..._}),queueMicrotask(()=>{var H;(H=o.onAgentActivityStateChange)==null||H.call(o,de.Loading)})}function ir(C,_){var q;U=!0,N=(_==null?void 0:_.turn_id)??null,x=de.Loading,(q=o.onAgentActivityStateChange)==null||q.call(o,de.Loading)}function rr(C,_){var H;const q=(_==null?void 0:_.turn_id)??null;N!==null&&q!==null&&q<N||(x=de.Idle,(H=o.onAgentActivityStateChange)==null||H.call(o,de.Idle))}const hv={[Q.ChatAnswer]:Pe,[Q.ChatPartial]:Pe,[Q.ToolCallStarted]:Se,[Q.ToolCallDone]:Se,[Q.ToolCallError]:Se,[Q.StreamVideoCreated]:xt,[Q.StreamVideoDone]:xt,[Q.StreamVideoError]:xt,[Q.StreamVideoRejected]:xt,[Q.ChatAudioTranscribed]:nr,[Q.TurnStarted]:ir,[Q.TurnEnded]:rr};function mv(C,_,q,H){const ce=new TextDecoder().decode(C);try{const he=JSON.parse(ce),Me=H||he.subject;if(i("Data received:",{subject:Me,data:he}),!Me)return;const re=hv[Me];re==null||re(Me,he)}catch(he){i("Failed to parse data channel message:",he)}}function fv(C){var _;i("Media devices error:",C),(_=o.onError)==null||_.call(o,ln(),{sessionId:$})}function pv(C){var _;i("Encryption error:",C),(_=o.onError)==null||_.call(o,ln(),{sessionId:$})}function gv(C,_,q){i("Track subscription failed:",{trackSid:C,participant:_,reason:q})}function vv(C,_,q){for(const[H,ce]of q)if(ce.source===_&&ce.track){const he=ce.track.mediaStreamTrack;if(he===C||(he==null?void 0:he.id)===C.id)return ce}return null}async function Ol(C,_,q,H,ce,he){var ri,si,_n;if(!m||!h)throw i(`Room is not connected, cannot publish ${H} stream`),new Error("Room is not connected");if(C.isPublishing){i(`${H} publish already in progress, skipping`);return}const Me=q(_);if(Me.length===0)throw new Error(`No ${H} track found in the provided MediaStream`);const re=Me[0],mt=vv(re,H,ce());if(mt){i(`${H} track is already published, skipping`,{trackId:re.id,publishedTrackId:(si=(ri=mt.track)==null?void 0:ri.mediaStreamTrack)==null?void 0:si.id}),C.publication=mt;return}if((_n=C.publication)!=null&&_n.track){const Lt=C.publication.track.mediaStreamTrack;Lt!==re&&(Lt==null?void 0:Lt.id)!==re.id&&(i(`Unpublishing existing ${H} track before publishing new one`),await he())}i(`Publishing ${H} track from provided MediaStream`,{trackId:re.id}),C.isPublishing=!0;try{C.publication=await h.localParticipant.publishTrack(re,{source:H}),i(`${H} track published successfully`,{trackSid:C.publication.trackSid})}catch(Lt){throw i(`Failed to publish ${H} track:`,Lt),Lt}finally{C.isPublishing=!1}}async function Al(C,_){if(!(!C.publication||!C.publication.track))try{h&&(await h.localParticipant.unpublishTrack(C.publication.track,!1),i(`${_} track unpublished`))}catch(q){i(`Error unpublishing ${_} track:`,q)}finally{C.publication=null}}async function yv(C){return Ol(S,C,_=>_.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,zs)}async function zs(){return Al(S,"Microphone")}async function bv(C){if(!m||!h)throw i("Cannot replace microphone track: room is not connected"),new Error("Room is not connected");if(C.kind!=="audio")throw i("Cannot replace microphone track: not an audio track",{kind:C.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 _=S.publication;if(!_||!_.track)throw i("Cannot replace microphone track: no publication to replace"),new Error("No microphone publication to replace");try{S.isPublishing=!0,await _.track.replaceTrack(C),i("Microphone track replaced",{trackId:C.id,trackSid:_.trackSid})}finally{S.isPublishing=!1}}async function kv(C){return Ol(k,C,_=>_.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,$s)}async function $s(){return Al(k,"Camera")}function Tv(){g&&(g.getTracks().forEach(C=>C.stop()),g=null)}async function Qs(C,_){var q,H;if(!m||!h){i("Room is not connected for sending messages"),(q=o.onError)==null||q.call(o,ln(),{sessionId:$});return}try{await h.localParticipant.sendText(C,{topic:_}),i("Message sent successfully:",C)}catch(ce){i("Failed to send message:",ce),(H=o.onError)==null||H.call(o,ln(),{sessionId:$})}}async function Dl(C){var _;try{const H=JSON.parse(C).topic;return Qs("",H)}catch(q){i("Failed to send data channel message:",q),(_=o.onError)==null||_.call(o,ln(),{sessionId:$})}}function Sv(C){return Qs(C,"lk.chat")}async function Ys(C){var _,q;T&&(clearTimeout(T),T=null),I==null||I.destroy(),I=null,h&&((_=o.onConnectionStateChange)==null||_.call(o,le.Disconnecting,C),await Promise.all([zs(),$s()]),await h.disconnect()),Tv(),m=!1,b=!1,M.clear(),N=null,(q=o.onAgentActivityStateChange)==null||q.call(o,de.Idle),x=de.Idle}return{speak(C){const _=typeof C=="string"?C:JSON.stringify(C);return Qs(_,"did.speak")},disconnect:()=>Ys("user:disconnect"),async reconnect(){var C,_;if((h==null?void 0:h.state)===c.Connected){i("Room is already connected");return}if(!h||!B||!w)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,(C=o.onConnectionStateChange)==null||C.call(o,le.Connecting,"user:reconnect");try{if(await h.connect(B,w),i("Room reconnected"),m=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(H=>{const ce=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,he),H(!1)},5e3),he=()=>{clearTimeout(ce),h==null||h.off(s.ParticipantConnected,he),H(!0)};h==null||h.on(s.ParticipantConnected,he)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined, reconnection successful")}}catch(q){throw i("Failed to reconnect:",q),(_=o.onConnectionStateChange)==null||_.call(o,le.Fail,"user:reconnect-failed"),q}},sendDataChannelMessage:Dl,sendTextMessage:Sv,publishMicrophoneStream:yv,unpublishMicrophoneStream:zs,replaceMicrophoneTrack:bv,publishCameraStream:kv,unpublishCameraStream:$s,interrupt(C){C!=="text"&&Dl(JSON.stringify({topic:"did.interrupt"}))},registerRpcMethod(C,_){h==null||h.registerRpcMethod(C,_)},unregisterRpcMethod(C){h==null||h.unregisterRpcMethod(C)},sessionId:$,streamId:$,streamType:v,interruptAvailable:j,isInterruptible:F}}const eh=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:Zu,handleInitError:vr},Symbol.toStringTag,{value:"Module"}));function th(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 nh=Object.defineProperty,ih=(n,e,t)=>e in n?nh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ba=(n,e,t)=>ih(n,typeof e!="symbol"?e+"":e,t);class Le{constructor(){Ba(this,"_locking"),Ba(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 be(n,e){if(!n)throw new Error(e)}const rh=34028234663852886e22,sh=-34028234663852886e22,ah=4294967295,oh=2147483647,ch=-2147483648;function hi(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>oh||n<ch)throw new Error("invalid int 32: "+n)}function yr(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>ah||n<0)throw new Error("invalid uint 32: "+n)}function ja(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>rh||n<sh))throw new Error("invalid float 32: "+n)}const Va=Symbol("@bufbuild/protobuf/enum-type");function dh(n){const e=n[Va];return be(e,"missing enum type on enum object"),e}function qa(n,e,t,i){n[Va]=Ka(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function Ka(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const c of e){const a=Wa(c);s.push(a),i[c.name]=a,r[c.no]=a}return{typeName:n,values:s,findName(c){return i[c]},findNumber(c){return r[c]}}}function lh(n,e,t){const i={};for(const r of e){const s=Wa(r);i[s.localName]=s.no,i[s.no]=s.localName}return qa(i,n,e),i}function Wa(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class br{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 uh(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),c={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(c.prototype,new br),Object.assign(c,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,o){return new c().fromBinary(a,o)},fromJson(a,o){return new c().fromJson(a,o)},fromJsonString(a,o){return new c().fromJsonString(a,o)},equals(a,o){return n.util.equals(c,a,o)}}),c}function hh(){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)==0)return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)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)==0)return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function kr(n,e,t){for(let s=0;s<28;s=s+7){const c=n>>>s,a=!(!(c>>>7)&&e==0),o=(a?c|128:c)&255;if(t.push(o),!a)return}const i=n>>>28&15|(e&7)<<4,r=e>>3!=0;if(t.push((r?i|128:i)&255),!!r){for(let s=3;s<31;s=s+7){const c=e>>>s,a=!!(c>>>7),o=(a?c|128:c)&255;if(t.push(o),!a)return}t.push(e>>>31&1)}}const mi=4294967296;function Ha(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(c,a){const o=Number(n.slice(c,a));r*=t,i=i*t+o,i>=mi&&(r=r+(i/mi|0),i=i%mi)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Ga(i,r):Tr(i,r)}function mh(n,e){let t=Tr(n,e);const i=t.hi&2147483648;i&&(t=Ga(t.lo,t.hi));const r=Ja(t.lo,t.hi);return i?"-"+r:r}function Ja(n,e){if({lo:n,hi:e}=fh(n,e),e<=2097151)return String(mi*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,c=i+r*8147497,a=r*2;const o=1e7;return s>=o&&(c+=Math.floor(s/o),s%=o),c>=o&&(a+=Math.floor(c/o),c%=o),a.toString()+za(c)+za(s)}function fh(n,e){return{lo:n>>>0,hi:e>>>0}}function Tr(n,e){return{lo:n|0,hi:e|0}}function Ga(n,e){return e=~e,n?n=~n+1:e+=1,Tr(n,e)}const za=n=>{const e=String(n);return"0000000".slice(e.length)+e};function $a(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 ph(){let n=this.buf[this.pos++],e=n&127;if((n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,(n&128)==0)return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;(n&128)!==0&&t<10;t++)n=this.buf[this.pos++];if((n&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function gh(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),c=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error("int64 invalid: ".concat(o));return d},uParse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>a||d<c)throw new Error("uint64 invalid: ".concat(o));return d},enc(o){return n.setBigInt64(0,this.parse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(o){return n.setBigInt64(0,this.uParse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>be(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>be(/^[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),Ha(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),Ha(r)},dec(r,s){return mh(r,s)},uDec(r,s){return Ja(r,s)}}}const pe=gh();var R;(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"})(R||(R={}));var Ut;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Ut||(Ut={}));function Ft(n,e,t){if(e===t)return!0;if(n==R.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 R.UINT64:case R.FIXED64:case R.INT64:case R.SFIXED64:case R.SINT64:return e==t}return!1}function un(n,e){switch(n){case R.BOOL:return!1;case R.UINT64:case R.FIXED64:case R.INT64:case R.SFIXED64:case R.SINT64:return e==0?pe.zero:"0";case R.DOUBLE:case R.FLOAT:return 0;case R.BYTES:return new Uint8Array(0);case R.STRING:return"";default:return 0}}function Qa(n,e){switch(n){case R.BOOL:return e===!1;case R.STRING:return e==="";case R.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Ee;(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"})(Ee||(Ee={}));class vh{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(yr(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return hi(e),$a(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){ja(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){yr(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){hi(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return hi(e),e=(e<<1^e>>31)>>>0,$a(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=pe.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=pe.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=pe.enc(e);return kr(t.lo,t.hi,this.buf),this}sint64(e){let t=pe.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return kr(r,s,this.buf),this}uint64(e){let t=pe.uEnc(e);return kr(t.lo,t.hi,this.buf),this}}class yh{constructor(e,t){this.varint64=hh,this.uint32=ph,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 Ee.Varint:for(;this.buf[this.pos++]&128;);break;case Ee.Bit64:this.pos+=4;case Ee.Bit32:this.pos+=4;break;case Ee.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Ee.StartGroup:for(;;){const[s,c]=this.tag();if(c===Ee.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(c,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return pe.dec(...this.varint64())}uint64(){return pe.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,pe.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 pe.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return pe.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 bh(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 Ya(n){const e=n.field.localName,t=Object.create(null);return t[e]=kh(n),[t,()=>t[e]]}function kh(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 un(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 Th(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 Et="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),fi=[];for(let n=0;n<Et.length;n++)fi[Et[n].charCodeAt(0)]=n;fi[45]=Et.indexOf("+"),fi[95]=Et.indexOf("/");const Xa={dec(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),i=0,r=0,s,c=0;for(let a=0;a<n.length;a++){if(s=fi[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
1
+ (function(z,Ce){typeof exports=="object"&&typeof module<"u"?Ce(exports):typeof define=="function"&&define.amd?define(["exports"],Ce):(z=typeof globalThis<"u"?globalThis:z||self,Ce(z.index={}))})(this,(function(z){"use strict";var Cv=Object.defineProperty;var Ev=(z,Ce,dn)=>Ce in z?Cv(z,Ce,{enumerable:!0,configurable:!0,writable:!0,value:dn}):z[Ce]=dn;var Nt=(z,Ce,dn)=>Ev(z,typeof Ce!="symbol"?Ce+"":Ce,dn);class Ce extends Error{constructor(e,t="Error",i){super(e),this.kind=t,this.originalError=i,Object.setPrototypeOf(this,new.target.prototype)}toJson(){const e=this.originalError instanceof Error?this.originalError.message.slice(0,256):void 0;return{kind:this.kind,message:this.message,...e&&e!==this.message?{cause:e}:{}}}}function dn(n){return n instanceof Error&&typeof n.kind=="string"}class Xs extends Ce{constructor(e,t){super(`Failed to create ${t?"persistent":""} chat, mode: ${e}`,"ChatCreationFailed")}}class Zs extends Ce{constructor(e){super(`Chat mode downgraded to ${e}`,"ChatModeDowngraded")}}function Bl(n){try{const e=JSON.parse(n);if(e&&typeof e=="object"&&typeof e.kind=="string")return e}catch{}}class sr extends Ce{constructor(t,i,r={}){const s=Bl(i);super(((s==null?void 0:s.description)??i).slice(0,256),(s==null?void 0:s.kind)??"HttpError");Nt(this,"status");Nt(this,"url");Nt(this,"method");this.status=t,this.url=r.url,this.method=r.method}toJson(){return{...super.toJson(),httpStatus:this.status,...this.url?{endpoint:this.url}:{},...this.method?{method:this.method}:{}}}}class ea extends Ce{constructor(t,i={}){super("Network request failed","NetworkError",t);Nt(this,"endpoint");Nt(this,"method");Nt(this,"durationMs");Nt(this,"online");Nt(this,"visibility");this.endpoint=i.url,this.method=i.method,this.durationMs=i.durationMs,this.online=i.online,this.visibility=i.visibility}toJson(){return{...super.toJson(),...this.endpoint?{endpoint:this.endpoint}:{},...this.method?{method:this.method}:{},...this.durationMs!==void 0?{durationMs:this.durationMs}:{},...this.online!==void 0?{online:this.online}:{},...this.visibility?{visibility:this.visibility}:{}}}}class ai extends Ce{constructor(e,t){super(e,"StreamError",t)}}class Ye extends Ce{constructor(e,t){super(e,"ValidationError"),this.key=t}}class ta extends Ce{constructor(e){super(e,"WSError")}}var na=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(na||{}),Ie=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(Ie||{}),xe=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(xe||{}),ia=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(ia||{}),ra=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(ra||{}),sa=(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))(sa||{}),ar=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(ar||{});const jl=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var te=(n=>(n.Start="START",n.Stop="STOP",n))(te||{}),rt=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(rt||{}),de=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(de||{}),Q=(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.TurnStarted="turn/started",n.TurnEnded="turn/ended",n))(Q||{}),le=(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))(le||{}),st=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(st||{}),oi=(n=>(n.Livekit="livekit",n))(oi||{}),aa=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(aa||{}),oa=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(oa||{});const Vl=(...n)=>{},ca=n=>new Promise(e=>setTimeout(e,n)),Gt=(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)};function or(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=Gt();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let ci=Gt();function ql(){ci=Gt()}function da(n,e){if(n.type==="bearer")return`Bearer ${n.token}~${ci}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}~${ci}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${or(e)}_${ci}`;throw new Error(`Unknown auth type: ${n}`)}const Kl=45*1e3,Wl="X-Playground-Chat",la=2e3,In="https://api.d-id.com",Hl="wss://notifications.d-id.com",Jl="79f81a83a67430be2bc0fd61042b8faa",ua=n=>n.type,Gl=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},cr=n=>n===ar.Expressive,zl=n=>[Ie.TextOnly,Ie.Playground,Ie.Maintenance].includes(n),ha=n=>n&&[Ie.DirectPlayback,Ie.Off].includes(n),ma=/\[!\[([^\[\]]*)\]\(([^)\s]+)\)\]\(([^)\s]+)\)/g,fa=/!\[([^\[\]]*)\]\(([^)\s]+)\)/g,$l=[".mp4",".webm",".mkv",".mov",".m4v",".ogv"];function Ql(n){const e=n.split("?")[0].split("#")[0].toLowerCase();return $l.some(t=>e.endsWith(t))}const pa=new RegExp("(?<!!)\\[([^\\[\\]]+)\\]\\(([^)\\s]+)\\)","g"),ga=/<a\s+href="([^"]*)"[^>]*?>([^<]*)<\/a>/gi;function va(n){if(n.length===0)return[];const e=[];let t;for(ma.lastIndex=0;(t=ma.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(fa.lastIndex=0;(t=fa.exec(n))!==null;)if(!e.some(c=>t.index>=c.index&&t.index<c.index+c.length)){const c=t[2],a=t[1];let o;Ql(c)?o={type:"video",src:c,alt:a}:(o={type:"image",src:c,alt:a},c.toLowerCase().endsWith(".gif")&&(o.mimeType="image/gif")),e.push({index:t.index,length:t[0].length,part:o})}for(pa.lastIndex=0;(t=pa.exec(n))!==null;)e.some(c=>t.index>=c.index&&t.index<c.index+c.length)||e.push({index:t.index,length:t[0].length,part:{type:"link",href:t[2],label:t[1]}});for(ga.lastIndex=0;(t=ga.exec(n))!==null;)e.some(c=>t.index>=c.index&&t.index<c.index+c.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,c)=>s.index-c.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 ya="",dr=[];function Mn(n){return n===ya||(ya=n,dr=va(n)),dr}function Yl(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function lr(n,e){const t={limit:(e==null?void 0:e.limit)??3,delayMs:(e==null?void 0:e.delayMs)??0,timeout:(e==null?void 0:e.timeout)??3e4,timeoutErrorMessage:(e==null?void 0:e.timeoutErrorMessage)||"Timeout error",shouldRetryFn:(e==null?void 0:e.shouldRetryFn)??(()=>!0),onRetry:(e==null?void 0:e.onRetry)??(()=>{})};let i;for(let r=1;r<=t.limit;r++)try{if(!t.timeout)return await n();const{promise:s,clear:c}=Yl(t.timeout,t.timeoutErrorMessage),a=n().finally(c);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await ca(t.delayMs),t.onRetry(s)}throw i}const Xl=n=>lr(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function ur(n,e=In,t,i){const r=async(s,c)=>{const{skipErrorHandler:a,...o}=c||{},d=o.method??"GET",l=performance.now();let u;try{u=await Xl(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...o,headers:{...o.headers,Authorization:da(n,i),"Content-Type":"application/json"}}))}catch(h){if((h==null?void 0:h.name)==="AbortError")throw h;const v=new ea(h,{url:s,method:d,durationMs:Math.round(performance.now()-l),online:typeof navigator<"u"?navigator.onLine:void 0,visibility:typeof document<"u"?document.visibilityState:void 0});throw a||t==null||t(v,{url:s,options:o}),v}if(!u.ok){const h=await u.text().catch(()=>`Failed to fetch with status ${u.status}`),m=new sr(u.status,h,{url:s,method:d});throw a||t==null||t(m,{url:s,options:o,headers:u.headers}),m}return u.json()};return{get(s,c){return r(s,{...c,method:"GET"})},post(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"POST"})},delete(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"DELETE"})},patch(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"PATCH"})}}}function Zl(n,e=In,t,i){const r=ur(n,`${e}/agents`,t,i);return{getRuntimeById(s,c){return r.get(`/${s}/runtime`,c)},newChat(s,c,a){return r.post(`/${s}/chat`,c,a)},chat(s,c,a,o){return r.post(`/${s}/chat/${c}`,a,o)},createRating(s,c,a,o){return r.post(`/${s}/chat/${c}/ratings`,a,o)},updateRating(s,c,a,o,d){return r.patch(`/${s}/chat/${c}/ratings/${a}`,o,d)},deleteRating(s,c,a,o){return r.delete(`/${s}/chat/${c}/ratings/${a}`,o)},submitFeedback(s,c,a,o){return r.post(`/${s}/chat/${c}/feedback`,a,o)},getSTTToken(s,c){return r.get(`/${s}/stt-token`,c)}}}function eu(n){var r,s;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.avatar;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:ua(i),agentVoice:{language:(s=(r=n.avatar)==null?void 0:r.voice)==null?void 0:s.language}}}function tu(n){var e;return{agentType:ua(n.avatar),presenterType:Gl(n.avatar),owner_id:n.owner_id??"",starterQuestionsCount:(e=n.starter_message)==null?void 0:e.length,agentId:n.id,agentName:n.name}}const nu=n=>{try{return String((n==null?void 0:n.message)??n??"").slice(0,256)}catch{return"Unknown error"}},iu=n=>n.reduce((e,t)=>e+t,0),ba=n=>iu(n)/n.length,ka=n=>Math.min(...n),Ta=n=>Math.max(...n),di=(n,e=0)=>{const t=10**e;return Math.round(n*t)/t},ru=(n,e)=>{const t=[...n].sort((i,r)=>i-r);return t[Math.min(t.length-1,Math.floor(e*(t.length-1)))]},su=n=>ru(n,.5),au=(n,e)=>{try{return n()}catch{return e}};function ou(n,e,t){var a,o;const{event:i,...r}=n,{language:s}=((a=e==null?void 0:e.avatar)==null?void 0:a.voice)||{};return{...r,script:{...r.script,provider:{...(o=r==null?void 0:r.script)==null?void 0:o.provider,language:s}},...t}}function Sa(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}function li(n){return n instanceof Ce?n.toJson():{kind:"UnknownError",message:nu(n)||"UnknownError"}}const Ca="2.0.2",cu="https://api-js.mixpanel.com/track/?verbose=1&ip=1",Ea=50,zt=[];let hr=!1;async function wa(n){const e=await fetch(cu,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify(n)})});if(!e.ok)throw new Error(`Mixpanel responded with ${e.status}`)}function du(n){zt.push(n),zt.splice(Ea)}function mr(){if(hr||!zt.length)return;hr=!0;const n=zt.splice(0,zt.length);wa(n).catch(()=>{zt.unshift(...n),zt.splice(Ea)}).finally(()=>{hr=!1})}typeof window<"u"&&typeof window.addEventListener=="function"&&(window.addEventListener("online",mr),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&mr()}));function lu(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:or(n.externalId),agentId:n.agentId,additionalProperties:{id:or(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Gt,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:c,...a}=r||{},o=s||Date.now(),d={event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,emittedBy:"agents-sdk",sdkVersion:Ca,token:this.token,time:o,$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerHeight,"Screen Width":window.screen.width||window.innerWidth,"User Agent":navigator.userAgent}};return mr(),wa([d]).catch(()=>du(d)),Promise.resolve()},linkTrack(i,r,s,c){t[i]||(t[i]={events:{},resolvedDependencies:[]}),c.includes(s)||c.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),c.every(d=>a.resolvedDependencies.includes(d))){const d=c.reduce((l,u)=>a.events[u]?{...l,...a.events[u].props}:l,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(l=>!c.includes(l)),c.forEach(l=>{delete a.events[l]})}}}}function fr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const ft=fr(),pr=fr(),Ra=fr();function Pa(n){return n===Ie.Playground?{headers:{[Wl]:"true"}}:{}}async function _a(n,e,t,i,r=!1,s){return!s&&!ha(i)&&(s=await e.newChat(n.id,{persist:r},Pa(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}function uu(n){return n&&n.length>0?n:[]}function hu(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:c}=n,{onMessage:a=null,onOpen:o=null,onClose:d=null,onError:l=null}=i||{},u=new WebSocket(`${r}?authorization=${encodeURIComponent(da(s,c))}`);u.onmessage=a,u.onclose=d,u.onerror=h=>{console.error(h),l==null||l("Websocket failed to connect",h),t(h)},u.onopen=h=>{o==null||o(h),e(u)}})}async function mu(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 hu(n)}catch(r){if(i===e)throw r;await ca(i*500)}return t}async function fu(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await mu({auth:n,host:e,externalId:i,callbacks:{onError:c=>{var a;return(a=t.onError)==null?void 0:a.call(t,new ta(c))},onMessage(c){const a=JSON.parse(c.data);r.forEach(o=>o(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:c=>r.push(c)}}function Ia(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function pu(n,e,t){if(!n.content)return;const i={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,parts:Mn(n.content),created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(i),t==null||t([...e.messages],"user")}function gu(n,e,t,i,r,s,c){if(n===xe.Transcribe&&e.content){pu(e,i,r);return}if(!(n===xe.Partial||n===xe.Answer))return;const a=i.messages[i.messages.length-1];if(n===xe.Answer&&(a==null?void 0:a.role)==="user"&&c==="partial")return;const d=c==="answer";let l;if((a==null?void 0:a.role)==="assistant"&&!d)l=a;else if(!a||a.role==="user"||d)d&&s(),l={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(l);else return;const{content:u,sequence:h}=e;if(n===xe.Partial)t[h]=u;else{const v=Ia(t);!!(u&&u.length<v.length)&&(l.interrupted=!0),t.answer=u}const m=Ia(t);(l.content!==m||n===xe.Answer)&&(l.content=m,l.parts=Mn(m),r==null||r([...i.messages],n))}function vu(n,e,t,i,r){const s={},c=()=>{for(const d of Object.keys(s))delete s[d]};let a=null;const o=(d,l)=>{var u,h;l==="user"&&c(),(h=(u=t.callbacks).onNewMessage)==null||h.call(u,d,l)};return{clearQueue:c,onMessage:(d,l)=>{var u,h;if("content"in l){const m=d===Q.ChatAnswer?xe.Answer:d===Q.ChatAudioTranscribed?xe.Transcribe:d;gu(m,l,s,e,o,c,a),m===xe.Partial?a="partial":m===xe.Answer&&(a="answer",c()),m===xe.Answer&&n.track("agent-message-received",{content:l.content,messages:e.messages.length,mode:e.chatMode})}else{const m=Q,v=[m.StreamVideoDone,m.StreamVideoError,m.StreamVideoRejected],g=[m.StreamFailed,m.StreamVideoError,m.StreamVideoRejected],S=ou(l,i,{mode:e.chatMode});if(d=d,d===m.StreamVideoCreated&&(n.linkTrack("agent-video",S,m.StreamVideoCreated,["start"]),l.sentiment)){const k=e.messages[e.messages.length-1];if((k==null?void 0:k.role)==="assistant"){const P={...k,sentiment:l.sentiment};e.messages[e.messages.length-1]=P,o==null||o([...e.messages],a??"answer")}}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 ai(`Stream failed with event ${d}`),{data:l})),l.event===m.StreamDone&&r()}}}}function yu(n,e,t,i){const r=ur(n,`${e}/agents/${t}`,i);return{createStream(s,c){return r.post("/streams",s,{signal:c})},startConnection(s,c,a,o){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:c},{signal:o})},addIceCandidate(s,c,a,o){return r.post(`/streams/${s}/ice`,{session_id:a,...c},{signal:o})},sendStreamRequest(s,c,a){return r.post(`/streams/${s}`,{session_id:c,...a})},close(s,c){return r.delete(`/streams/${s}`,{session_id:c})}}}const Ma=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),bu=45;function ku(n){const e=n.map(o=>o.av).filter(o=>!!o&&o.audioPlayout>0&&o.videoPlayout>0);if(e.length<2)return null;const t=e[0].localTs,i=e[e.length-1].localTs-t,r=e.map(o=>o.audioPlayout-o.videoPlayout),s=r.filter(o=>o>bu||o<-100),c=e.filter(o=>o.localTs-t>=Math.min(5e3,i/2)),a=(c.length?c:e).map(o=>o.audioPlayout-o.videoPlayout);return{sampleCount:e.length,durationMs:di(i),desyncDurationMs:di(i*(s.length/r.length)),maxOffsetMs:di(r.reduce((o,d)=>Math.abs(d)>Math.abs(o)?d:o)),residualOffsetMs:di(su(a))}}function Tu(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 Su(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 Cu(n){var o;let e="",t=0,i=null,r=null;const s=new Map;for(const d of n.values())if(d)if(d.type==="codec"&&((o=d.mimeType)!=null&&o.startsWith("video")))s.set(d.id,d.mimeType.split("/")[1]);else if(d.type==="candidate-pair"){const l=d,u=l.currentRoundTripTime??0;u>0&&(l.nominated===!0||t===0)&&(t=u)}else d.type==="inbound-rtp"&&d.kind==="video"?i=d:d.type==="inbound-rtp"&&d.kind==="audio"&&(r=d);if(!i)return{};const c=i;c.codecId&&s.has(c.codecId)?e=s.get(c.codecId):s.size>0&&(e=s.values().next().value??"");const a={codec:e,rtt:t,timestamp:c.timestamp,bytesReceived:c.bytesReceived,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,frameWidth:c.frameWidth,frameHeight:c.frameHeight,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.totalFreezesDuration};return r&&(a.av={audioPlayout:r.estimatedPlayoutTimestamp??0,videoPlayout:c.estimatedPlayoutTimestamp??0,localTs:c.timestamp}),a}function Oa(n,e,t){const i=n.map((o,d)=>d===0?t?{timestamp:o.timestamp,duration:0,rtt:o.rtt,bytesReceived:o.bytesReceived-t.bytesReceived,bitrate:(o.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-t.packetsReceived,packetsLost:o.packetsLost-t.packetsLost,framesDropped:o.framesDropped-t.framesDropped,framesDecoded:o.framesDecoded-t.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-t.jitterBufferDelay)/(o.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-t.freezeCount,freezeDuration:o.freezeDuration-t.freezeDuration}:{timestamp:o.timestamp,rtt:o.rtt,duration:0,bytesReceived:o.bytesReceived,bitrate:o.bytesReceived*8/(e/1e3),packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.freezeDuration}:{timestamp:o.timestamp,duration:e*d/1e3,rtt:o.rtt,bytesReceived:o.bytesReceived-n[d-1].bytesReceived,bitrate:(o.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-n[d-1].packetsReceived,packetsLost:o.packetsLost-n[d-1].packetsLost,framesDropped:o.framesDropped-n[d-1].framesDropped,framesDecoded:o.framesDecoded-n[d-1].framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-n[d-1].jitterBufferDelay)/(o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-n[d-1].freezeCount,freezeDuration:o.freezeDuration-n[d-1].freezeDuration}),r=Su(i),s=r.reduce((o,d)=>o+(d.causes.includes("low fps")?1:0),0),c=i.filter(o=>!!o.avgJitterDelayInInterval).map(o=>o.avgJitterDelayInInterval),a=i.filter(o=>!!o.rtt).map(o=>o.rtt);return{webRTCStats:{anomalies:r,avSync:au(()=>ku(n),null),minRtt:ka(a),avgRtt:ba(a),maxRtt:Ta(a),aggregateReport:Tu(n[0],n[n.length-1],s),minJitterDelayInInterval:ka(c),maxJitterDelayInInterval:Ta(c),avgJitterDelayInInterval:ba(c)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function Aa(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 On=10;function Eu(n,e){let t=!1,i=!1,r=null,s=0,c=0,a={};async function o(){if(t){try{const d=await n();if(!d){r=setTimeout(o,On);return}const l=Aa(d,"audio");if(!l){r=setTimeout(o,On);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,c=h,i=!0,r=setTimeout(o,On);return}const m=u-s,v=h-c;if(s=u,c=h,v>0&&m>0){t=!1,e(a);return}}catch{}t&&(r=setTimeout(o,On))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(o,On)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const ui=100,wu=Math.max(Math.ceil(400/ui),1),Ru=.25,Pu=.28;function _u(){let n=0,e,t,i=0;return r=>{const s=Aa(r,"video");if(!s)return{isReceiving:!1,avgJitterDelayInInterval:i};const c=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const l=c-e,u=a-t;i=l/u}e=c,t=a;const o=s.framesDecoded,d=o-n>0;return n=o,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}}function Da(n,e,t,i,r){let s=null,c=[],a,o=0,d=!1,l=rt.Unknown,u=rt.Unknown,h=0,m=0;const v=_u();async function g(){const S=await n();if(!S)return;const{isReceiving:k,avgJitterDelayInInterval:P,freezeCount:I}=v(S),y=Cu(S);if(k)o=0,h=I-m,u=P<Ru?rt.Strong:P>Pu&&h>1?rt.Weak:l,u!==l&&(r==null||r(u),l=u,m+=h,h=0),d||(i==null||i(te.Start),a=c[c.length-1],c=[],d=!0),c.push(y);else if(d&&(o++,o>=wu)){const b=Oa(c,ui,a);i==null||i(te.Stop,b),e()||t(),m=I,d=!1}}return{start:()=>{s||(s=setInterval(g,ui))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>Oa(c,ui,a)}}const Iu=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function xa(n){switch(n){case"connected":return le.Connected;case"checking":return le.Connecting;case"failed":return le.Fail;case"new":return le.New;case"closed":return le.Closed;case"disconnected":return le.Disconnected;case"completed":return le.Completed;default:return le.New}}const Mu=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function Ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===te.Start&&e===te.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(te.Start)):n===te.Stop&&e===te.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(te.Stop,i))}function Au({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===te.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(te.Start)):n===te.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(te.Stop,r)),e===te.Start?i==null||i(de.Talking):e===te.Stop&&(i==null||i(de.Idle))}function La({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:c}){r===st.Legacy?Ou({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:c}):r===st.Fluent&&Au({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:c})}async function Du(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=In,analytics:c},a){var fe;const o=Ma(t,"WebRTCStreamingManager"),d=Mu(o);let l=!1,u=!1,h=te.Stop,m=te.Stop;const{startConnection:v,sendStreamRequest:g,close:S,createStream:k,addIceCandidate:P}=yu(r,s,n,i.onError),{id:I,offer:y,ice_servers:b,session_id:T,fluent:x,interrupt_enabled:F}=await k(e,a);(fe=i.onStreamCreated)==null||fe.call(i,{stream_id:I,session_id:T,agent_id:n});const M=new Iu({iceServers:b}),N=M.createDataChannel("JanusDataChannel");if(!T)throw new Error("Could not create session_id");const U=x?st.Fluent:st.Legacy;c.enrich({"stream-type":U});const J=e.stream_warmup&&!x,$=()=>l,w=()=>{var V;l=!0,u&&(o("CALLBACK: onConnectionStateChange(Connected)"),(V=i.onConnectionStateChange)==null||V.call(i,le.Connected))},B=Da(()=>M.getStats(),$,w,(V,W)=>La({statsSignal:m=V,dataChannelSignal:U===st.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:W,streamType:U,log:o}),V=>{var W;return(W=i.onConnectivityStateChange)==null?void 0:W.call(i,V)});B.start(),M.onicecandidate=V=>{var W;o("peerConnection.onicecandidate",V);try{V.candidate&&V.candidate.sdpMid&&V.candidate.sdpMLineIndex!==null?P(I,{candidate:V.candidate.candidate,sdpMid:V.candidate.sdpMid,sdpMLineIndex:V.candidate.sdpMLineIndex},T,a):P(I,{candidate:null},T,a)}catch(ge){(W=i.onError)==null||W.call(i,ge,{streamId:I})}},N.onopen=()=>{u=!0,(!J||l)&&w()};let j=null;const X=V=>{var W;j=V,(W=i.onVideoIdChange)==null||W.call(i,V)};function ie(V,W){if(V===Q.StreamStarted&&typeof W=="object"&&"metadata"in W){const ge=W.metadata;X(ge.videoId)}V===Q.StreamDone&&X(null),h=V===Q.StreamStarted?te.Start:te.Stop,La({statsSignal:U===st.Legacy?m:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:U,log:o})}function ae(V,W){var Pe;const ge=typeof W=="string"?W:W==null?void 0:W.metadata;ge&&c.enrich({streamMetadata:ge}),(Pe=i.onStreamReady)==null||Pe.call(i)}const Re={[Q.StreamStarted]:ie,[Q.StreamDone]:ie,[Q.StreamReady]:ae};N.onmessage=V=>{var Pe;const{subject:W,data:ge}=d(V.data);(Pe=Re[W])==null||Pe.call(Re,W,ge)},M.oniceconnectionstatechange=()=>{var W;o("peerConnection.oniceconnectionstatechange => "+M.iceConnectionState);const V=xa(M.iceConnectionState);V!==le.Connected&&((W=i.onConnectionStateChange)==null||W.call(i,V,`webrtc:ice-${M.iceConnectionState}`))},M.ontrack=V=>{var W;o("peerConnection.ontrack",V),o("CALLBACK: onSrcObjectReady"),(W=i.onSrcObjectReady)==null||W.call(i,V.streams[0])},await M.setRemoteDescription(y),o("set remote description OK");const Ue=await M.createAnswer();o("create answer OK"),await M.setLocalDescription(Ue),o("set local description OK"),await v(I,Ue,T,a),o("start connection OK");function Fe(V){var W,ge;if(!l||N.readyState!=="open"){o("Data channel is not ready for sending messages"),(W=i.onError)==null||W.call(i,new ai("Data channel is not ready for sending messages"),{streamId:I});return}try{N.send(V)}catch(Pe){o("Error sending data channel message",Pe),(ge=i.onError)==null||ge.call(i,Pe,{streamId:I})}}return{speak(V){return g(I,T,V)},async disconnect(){var V;if(I){const W=xa(M.iceConnectionState);if(M){if(W===le.New){B.stop();return}M.close(),M.oniceconnectionstatechange=null,M.onnegotiationneeded=null,M.onicecandidate=null,M.ontrack=null}try{W===le.Connected&&await S(I,T).catch(ge=>{})}catch(ge){o("Error on close stream connection",ge)}(V=i.onAgentActivityStateChange)==null||V.call(i,de.Idle),B.stop()}},sendDataChannelMessage:Fe,sessionId:T,streamId:I,streamType:U,interruptAvailable:F??!1,isInterruptible:!0,interrupt(V){if(!F)throw new Error("Interrupt is not enabled for this stream");if(U!==st.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!j)throw new Error("No active video to interrupt");const W={type:Q.StreamInterrupt,videoId:j,timestamp:Date.now()};Fe(JSON.stringify(W))}}}var gr=(n=>(n.V1="v1",n.V2="v2",n))(gr||{});async function xu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...c}=e;return Du(r,c,t,i)}case"v2":{const{version:s,...c}=e;switch(c.transport.provider){case oi.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>eh);return a(r,c,t);default:throw new Error(`Unsupported transport provider: ${c.transport.provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const Lu="cht";function Nu(){return{transport:{provider:oi.Livekit}}}function Uu(n){var r,s;const{streamOptions:e}=n??{},t=((r=n==null?void 0:n.mixpanelAdditionalProperties)==null?void 0:r.plan)!==void 0?{plan:(s=n.mixpanelAdditionalProperties)==null?void 0:s.plan}:void 0;return{...{output_resolution:e==null?void 0:e.outputResolution,session_timeout:e==null?void 0:e.sessionTimeout,stream_warmup:e==null?void 0:e.streamWarmup,compatibility_mode:e==null?void 0:e.compatibilityMode,fluent:e==null?void 0:e.fluent},...t&&{end_user_data:t}}}function Fu(n,e){return cr(n.avatar.type)?{version:gr.V2,...Nu()}:{version:gr.V1,...Uu(e)}}function Bu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function ju(n,e,t,i,r){r===st.Fluent?Vu(n,e,t,i,r):qu(n,e,t,i,r)}function Vu(n,e,t,i,r){n===te.Start?i.track("stream-session",{event:"start","stream-type":r}):n===te.Stop&&i.track("stream-session",{event:"stop","stream-type":r,...t})}function Na(n,e,t,i,r){n===te.Start?t.linkTrack("agent-video",{event:"start",...r,"stream-type":i},"start",[Q.StreamVideoCreated]):n===te.Stop&&t.linkTrack("agent-video",{event:"stop","stream-type":i},"done",[Q.StreamVideoDone])}function qu(n,e,t,i,r){n===te.Start?i.linkTrack("agent-video",{event:"start",latency:ft.get(!0),"stream-type":r},"start",[Q.StreamVideoCreated]):n===te.Stop&&i.linkTrack("agent-video",{event:"stop","stream-type":r,...t},"done",[Q.StreamVideoDone])}function Ku(n,e,t){const i={call_id:e.call_id,name:e.name};if(n===Q.ToolCallStarted){t.track("agent-tool-call",{...i,event:"started"});return}const r=e;t.track("agent-tool-call",{...i,event:n===Q.ToolCallDone?"done":"error",duration_ms:r.duration_ms,extra_keys:r.extra?Object.keys(r.extra).length:0})}function Ua(n,e,t,i){return ft.reset(),Ra.update(),new Promise(async(r,s)=>{try{let c,a=!1;const o=Fu(n,e);t.enrich({"stream-version":o.version.toString()});let d=null;const l=n.avatar.type==="expressive";c=await xu(n,o,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var m,v;(v=(m=e.callbacks).onConnectionStateChange)==null||v.call(m,u),Bu(u,h,t),u===le.Connected&&(c?r(c):a=!0)},onVideoStateChange:(u,h)=>{var m,v;(v=(m=e.callbacks).onVideoStateChange)==null||v.call(m,u),ju(u,n,h,t,c.streamType)},onAgentActivityStateChange:u=>{var h,m;(m=(h=e.callbacks).onAgentActivityStateChange)==null||m.call(h,u),u===de.Talking?(pr.update(),d=v=>{Na(te.Start,n,t,c.streamType,v),d=null},l||d({latency:ft.get(!0)})):(pr.reset(),d=null,Na(te.Stop,n,t,c.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=Ra.get(!0);t.track("agent-chat",{event:"ready",latency:u})},onToolEvent:((u,h)=>{var m,v;(v=(m=e.callbacks).onToolEvent)==null||v.call(m,u,h),Ku(u,h,t)})}},i),a&&r(c)}catch(c){s(c)}})}async function Wu(n,e,t,i,r){var l,u,h,m;const s=async()=>{if(cr(n.avatar.type)){const v=await Ua(n,e,i),g=`${Lu}_${v.sessionId}`,S=new Date().toISOString();return{chatResult:{chatMode:Ie.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:Ie.Functional,messages:[]}},streamingManager:v}}else{const v=new AbortController,g=v.signal;let S;try{const k=_a(n,t,i,e.mode,e.persistentChat,r),P=Ua(n,e,i,g).then(b=>(S=b,b)),[I,y]=await Promise.all([k,P]);return{chatResult:I,streamingManager:y}}catch(k){throw v.abort(),S&&await S.disconnect().catch(()=>{}),k}}},{chatResult:c,streamingManager:a}=await s(),{chat:o,chatMode:d}=c;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(u=(l=e.callbacks).onModeChange)==null||u.call(l,d),d!==Ie.Functional)?((m=(h=e.callbacks).onError)==null||m.call(h,new Zs(d)),a==null||a.disconnect(),{chat:o}):{chat:o,streamingManager:a}}async function Hu(n,e){var U,J,$;let t=!0;const i=e.mixpanelKey||Jl,r=e.wsURL||Hl,s=e.baseURL||In,c=e.mode||Ie.Functional,a={messages:[],chatMode:c},o=lu({token:i,agentId:n,isEnabled:e.enableAnalytics??e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),d=Date.now();Sa(()=>{o.track("agent-sdk",{event:"init"},d)});const l=e.callbacks.onError;e.callbacks.onError=(w,B)=>{o.track("agent-error",{error:li(w)}),l==null||l(w,B)};const u=Zl(e.auth,s,e.callbacks.onError,e.externalId),h=await u.getRuntimeById(n);e.debug=e.debug||((U=h==null?void 0:h.advanced_settings)==null?void 0:U.ui_debug_mode);const m=cr(h.avatar.type);o.enrich(tu(h));const{onMessage:v,clearQueue:g}=vu(o,a,e,h,()=>{var w,B,j;(w=a.socketManager)==null||w.disconnect(),(j=(B=e.callbacks).onConnectionStateChange)==null||j.call(B,le.Disconnected)});a.messages=uu(e.initialMessages),($=(J=e.callbacks).onNewMessage)==null||$.call(J,[...a.messages],"answer");const S=w=>{o.enrich({videoId:w})},k=({type:w})=>{var j,X,ie,ae;if(!((j=a.streamingManager)!=null&&j.interruptAvailable)||!((X=a.streamingManager)!=null&&X.isInterruptible))return;const B=a.messages[a.messages.length-1];o.track("agent-video-interrupt",{type:w||"click",video_duration_to_interrupt:pr.get(!0),message_duration_to_interrupt:ft.get(!0)}),B.interrupted=!0,(ae=(ie=e.callbacks).onNewMessage)==null||ae.call(ie,[...a.messages],"answer"),a.streamingManager.interrupt(w)},P=new Map;function I(w){return async B=>{const j=P.get(w);if(!j)throw new Error(`No handler registered for client tool: ${w}`);try{const X=JSON.parse(B.payload);return await j(X)}catch(X){throw new Error(`Client tool "${w}" failed: ${X.message}`)}}}function y(){var w,B,j,X;for(const[ie]of P)(B=(w=a.streamingManager)==null?void 0:w.unregisterRpcMethod)==null||B.call(w,ie),(X=(j=a.streamingManager)==null?void 0:j.registerRpcMethod)==null||X.call(j,ie,I(ie))}function b(w,B){var X,ie;const j=!P.has(w);P.set(w,B),j&&((ie=(X=a.streamingManager)==null?void 0:X.registerRpcMethod)==null||ie.call(X,w,I(w)))}function T(w){var B,j;P.delete(w),(j=(B=a.streamingManager)==null?void 0:B.unregisterRpcMethod)==null||j.call(B,w)}const x=Date.now();Sa(()=>{o.track("agent-sdk",{event:"loaded",...eu(h)},x)});async function F(w){var Re,Ue,Fe,fe,V,W,ge;ql(),(Ue=(Re=e.callbacks).onConnectionStateChange)==null||Ue.call(Re,le.Connecting),ft.reset(),w&&!t&&(delete a.chat,(fe=(Fe=e.callbacks).onNewMessage)==null||fe.call(Fe,[...a.messages],"answer"));const B=c===Ie.DirectPlayback||m?Promise.resolve(void 0):fu(e.auth,r,{onMessage:v,onError:e.callbacks.onError},e.externalId),j=lr(()=>Wu(h,{...e,mode:c,callbacks:{...e.callbacks,onVideoIdChange:S,onMessage:v}},u,o,a.chat),{limit:3,timeout:Kl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:Pe=>(Pe==null?void 0:Pe.message)!=="Could not connect"&&!(Pe instanceof sr&&(Pe.status===429||Pe.kind==="InsufficientCreditsError")),delayMs:1e3}).catch(Pe=>{var Se,Qe;throw N(Ie.Maintenance),(Qe=(Se=e.callbacks).onConnectionStateChange)==null||Qe.call(Se,le.Fail),Pe}),[X,{streamingManager:ie,chat:ae}]=await Promise.all([B,j]);ae&&ae.id!==((V=a.chat)==null?void 0:V.id)&&((ge=(W=e.callbacks).onNewChat)==null||ge.call(W,ae.id)),a.streamingManager=ie,a.socketManager=X,a.chat=ae,y(),t=!1,o.enrich({chatId:ae==null?void 0:ae.id,streamId:ie==null?void 0:ie.streamId,mode:a.chatMode}),N((ae==null?void 0:ae.chat_mode)??c)}async function M(){var w,B,j,X;(w=a.socketManager)==null||w.disconnect(),await((B=a.streamingManager)==null?void 0:B.disconnect()),delete a.streamingManager,delete a.socketManager,(X=(j=e.callbacks).onConnectionStateChange)==null||X.call(j,le.Disconnected)}async function N(w){var B,j;w!==a.chatMode&&(o.track("agent-mode-change",{mode:w}),a.chatMode=w,a.chatMode!==Ie.Functional&&await M(),(j=(B=e.callbacks).onModeChange)==null||j.call(B,w))}return{agent:h,getStreamType:()=>{var w;return(w=a.streamingManager)==null?void 0:w.streamType},getIsInterruptAvailable:()=>{var w;return((w=a.streamingManager)==null?void 0:w.interruptAvailable)??!1},starterMessages:h.starter_message||[],getSTTToken:()=>u.getSTTToken(h.id),changeMode:N,enrichAnalytics:o.enrich,async connect(){await F(!0),o.track("agent-chat",{event:"connect",mode:a.chatMode})},async reconnect(){const w=a.streamingManager;let B;if(m&&(w!=null&&w.reconnect))try{await w.reconnect()}catch(j){B=li(j).kind,await M(),await F(!1)}else await M(),await F(!1);o.track("agent-chat",{event:"reconnect",mode:a.chatMode,success:!0,...B&&{fallbackReason:B}})},async disconnect(){await M(),o.track("agent-chat",{event:"disconnect",mode:a.chatMode})},publishMicrophoneStream(w){var B;return(B=a.streamingManager)!=null&&B.publishMicrophoneStream?a.streamingManager.publishMicrophoneStream(w):Promise.reject(new Error("publishMicrophoneStream is not available for this streaming manager"))},unpublishMicrophoneStream(){var w;return(w=a.streamingManager)!=null&&w.unpublishMicrophoneStream?a.streamingManager.unpublishMicrophoneStream():Promise.resolve()},replaceMicrophoneTrack(w){var B;return(B=a.streamingManager)!=null&&B.replaceMicrophoneTrack?a.streamingManager.replaceMicrophoneTrack(w):Promise.reject(new Error("replaceMicrophoneTrack is not available for this streaming manager"))},publishCameraStream(w){var B;return(B=a.streamingManager)!=null&&B.publishCameraStream?a.streamingManager.publishCameraStream(w):Promise.reject(new Error("publishCameraStream is not available for this streaming manager"))},unpublishCameraStream(){var w;return(w=a.streamingManager)!=null&&w.unpublishCameraStream?a.streamingManager.unpublishCameraStream():Promise.resolve()},async chat(w){var ie,ae,Re,Ue,Fe;const B=()=>{if(ha(c))throw new Ye(`${c} is enabled, chat is disabled`);if(w.length>=la)throw new Ye(`Message cannot be more than ${la} characters`);if(w.length===0)throw new Ye("Message cannot be empty");if(a.chatMode===Ie.Maintenance)throw new Ye("Chat is in maintenance mode");if(![Ie.TextOnly,Ie.Playground].includes(a.chatMode)){if(!a.streamingManager)throw new Ye("Streaming manager is not initialized");if(!a.chat)throw new Ye("Chat is not initialized")}},j=async()=>{var fe,V;if(!a.chat){const W=await _a(h,u,o,a.chatMode,e.persistentChat);if(!W.chat)throw new Xs(a.chatMode,!!e.persistentChat);a.chat=W.chat,(V=(fe=e.callbacks).onNewChat)==null||V.call(fe,a.chat.id)}return a.chat.id},X=async(fe,V)=>{const W=a.chatMode===Ie.Playground;return lr(m&&!W?async()=>{var Se,Qe;return await((Qe=(Se=a.streamingManager)==null?void 0:Se.sendTextMessage)==null?void 0:Qe.call(Se,w)),Promise.resolve({})}:async()=>{var Se,Qe;return u.chat(h.id,V,{chatMode:a.chatMode,streamId:(Se=a.streamingManager)==null?void 0:Se.streamId,sessionId:(Qe=a.streamingManager)==null?void 0:Qe.sessionId,messages:fe.map(({matches:Gs,...xt})=>xt)},{...Pa(a.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Se=>{var xt,nr,ir,rr;const Qe=(xt=Se==null?void 0:Se.message)==null?void 0:xt.includes("missing or invalid session_id");return!((nr=Se==null?void 0:Se.message)==null?void 0:nr.includes("Stream Error"))&&!Qe?((rr=(ir=e.callbacks).onError)==null||rr.call(ir,Se),!1):!0},onRetry:async()=>{await M(),await F(!1)}})};try{g(),B(),a.messages.push({id:Gt(),role:"user",content:w,parts:Mn(w),created_at:new Date(ft.update()).toISOString()}),(ae=(ie=e.callbacks).onNewMessage)==null||ae.call(ie,[...a.messages],"user");const fe=await j(),V=await X([...a.messages],fe);return V.result&&a.messages.push({id:Gt(),role:"assistant",content:V.result,parts:Mn(V.result),created_at:new Date().toISOString(),context:V.context,matches:V.matches}),o.track("agent-message-send",{event:"success",messages:a.messages.length+1}),V.result&&((Ue=(Re=e.callbacks).onNewMessage)==null||Ue.call(Re,[...a.messages],"answer"),o.track("agent-message-received",{latency:ft.get(!0),messages:a.messages.length})),V}catch(fe){throw((Fe=a.messages[a.messages.length-1])==null?void 0:Fe.role)==="assistant"&&a.messages.pop(),o.track("agent-message-send",{event:"error",messages:a.messages.length,error:li(fe)}),fe}},rate(w,B,j){var ae,Re,Ue,Fe;const X=a.messages.find(fe=>fe.id===w);if(a.chat){if(!X)throw new Ye("Message not found")}else throw new Ye("Chat is not initialized");const ie=((ae=X.matches)==null?void 0:ae.map(fe=>[fe.document_id,fe.id]))??[];return o.track("agent-rate",{event:j?"update":"create",thumb:B===1?"up":"down",knowledge_id:((Re=h.knowledge)==null?void 0:Re.id)??"",matches:ie,score:B}),j?u.updateRating(h.id,a.chat.id,j,{knowledge_id:((Ue=h.knowledge)==null?void 0:Ue.id)??"",message_id:w,matches:ie,score:B}):u.createRating(h.id,a.chat.id,{knowledge_id:((Fe=h.knowledge)==null?void 0:Fe.id)??"",message_id:w,matches:ie,score:B})},deleteRate(w){if(!a.chat)throw new Ye("Chat is not initialized");return o.track("agent-rate-delete",{type:"text"}),u.deleteRating(h.id,a.chat.id,w)},submitFeedback(w,B){if(!a.chat)throw new Ye("Chat is not initialized");return o.track("agent-feedback",{rating:w,hasAnswer:!!B}),u.submitFeedback(h.id,a.chat.id,{rating:w,answer:B})},async speak(w){var ie,ae,Re;function B(){return typeof w=="string"?{type:"text",input:w,ssml:!1}:w.type==="text"&&!w.provider?{type:"text",input:w.input,ssml:w.ssml,should_queue_speaks:w.should_queue_speaks,sentiment:w.sentiment}:w}const j=B();if(o.track("agent-speak",j),ft.update(),a.messages&&j.type==="text"&&(a.messages.push({id:Gt(),role:"assistant",content:j.input,parts:Mn(j.input),created_at:new Date().toISOString()}),(ae=(ie=e.callbacks).onNewMessage)==null||ae.call(ie,[...a.messages],"answer")),zl(a.chatMode))return{duration:0,video_id:"",status:"success"};if(!a.streamingManager)throw new Ye("Please connect to the agent first");return a.streamingManager.speak({script:j,metadata:{chat_id:(Re=a.chat)==null?void 0:Re.id,agent_id:h.id}})},interrupt:k,registerClientTool:b,unregisterClientTool:T}}function Ju(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone??""}catch{return""}}function Gu(){if(typeof navigator>"u")return"";const n=navigator.userAgent??"",e=(navigator.platform??"").toLowerCase();let t="Unknown";/android/i.test(n)?t="Android":/iphone|ipad|ipod/i.test(n)?t="iOS":e.includes("win")?t="Windows":e.includes("mac")?t="Mac OS X":e.includes("linux")&&(t="Linux");const i=t==="Android"||t==="iOS"||/Mobi/i.test(n);return`${t}, ${i?"Mobile":"Desktop"}`}function zu(){const n={},e=Ju();e&&(n.timezone=e);const t=Gu();return t&&(n.device=t),n}function $u(n,e,t,i){const r=ur(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const Qu={[Q.ChatAnswer]:xe.Answer,[Q.ChatPartial]:xe.Partial},Fa=2e4;async function Yu(){try{return await Promise.resolve().then(()=>uv)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Xu={excellent:rt.Strong,good:rt.Strong,poor:rt.Weak,lost:rt.Unknown,unknown:rt.Unknown},ln=(n="Stream Error")=>new ai(n);function vr(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,le.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function Zu(n,e,t){var xl;const i=Ma(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:c,Track:a}=await Yu(),{callbacks:o,auth:d,baseURL:l,analytics:u}=t;let h=null,m=!1;const v=st.Fluent;let g=null;const S={isPublishing:!1,publication:null},k={isPublishing:!1,publication:null};let P=null,I=null,y=null,b=!1;h=new r({adaptiveStream:!1,dynacast:!0});let T=null,x=de.Idle,F=!0;const M=new Set;let N=null,U=!1;const J=$u(d,l||In,n,o.onError);let $,w,B,j=!0;try{const C=await J.createStream({transport:e.transport,chat_persist:e.chat_persist??!0,verbose:t.verbose??!1}),{id:_,session_token:q,session_url:H,interrupt_enabled:ce}=C;(xl=o.onStreamCreated)==null||xl.call(o,{session_id:_,stream_id:_,agent_id:n}),$=_,w=q,B=H,j=ce??!0,await h.prepareConnection(B,w)}catch(C){vr(C,i,o)}if(!B||!w||!$)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,ae).on(s.ConnectionQualityChanged,Re).on(s.ParticipantConnected,Ue).on(s.ParticipantDisconnected,Fe).on(s.TrackSubscribed,W).on(s.TrackUnsubscribed,ge).on(s.DataReceived,mv).on(s.MediaDevicesError,fv).on(s.TranscriptionReceived,X).on(s.EncryptionError,pv).on(s.TrackSubscriptionFailed,gv);function X(C,_){_!=null&&_.isLocal&&(ft.update(),!U&&x===de.Talking&&(x=de.Idle))}async function ie(){const C=zu();if(!(!h||Object.keys(C).length===0))try{await h.localParticipant.setAttributes(C)}catch(_){i("Failed to set user context attributes",_)}}try{await h.connect(B,w),i("LiveKit room joined successfully"),ie(),T=setTimeout(()=>{var _;i(`Track subscription timeout - no track subscribed within ${Fa/1e3} seconds after connect`),T=null;const C=ln("Track subscription timeout");u.track("connectivity-error",{error:li(C),sessionId:$}),(_=o.onError)==null||_.call(o,C,{sessionId:$}),Ys("internal:track-subscription-timeout")},Fa)}catch(C){vr(C,i,o)}u.enrich({"stream-type":v});function ae(C){var _,q,H,ce;switch(i("Connection state changed:",C),C){case c.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(_=o.onConnectionStateChange)==null||_.call(o,le.Connecting,"livekit:connecting");break;case c.Connected:i("LiveKit room connected successfully"),m=!0;break;case c.Disconnected:i("LiveKit room disconnected"),m=!1,b=!1,S.publication=null,k.publication=null,(q=o.onConnectionStateChange)==null||q.call(o,le.Disconnected,"livekit:disconnected");break;case c.Reconnecting:i("LiveKit room reconnecting..."),(H=o.onConnectionStateChange)==null||H.call(o,le.Connecting,"livekit:reconnecting");break;case c.SignalReconnecting:i("LiveKit room signal reconnecting..."),(ce=o.onConnectionStateChange)==null||ce.call(o,le.Connecting,"livekit:signal-reconnecting");break}}function Re(C,_){var q;i("Connection quality:",C),_!=null&&_.isLocal&&((q=o.onConnectivityStateChange)==null||q.call(o,Xu[C]))}function Ue(C){i("Participant connected:",C.identity)}function Fe(C){i("Participant disconnected:",C.identity),Ys("livekit:participant-disconnected")}function fe(){var C;y!==te.Start&&(i("CALLBACK: onVideoStateChange(Start)"),y=te.Start,(C=o.onVideoStateChange)==null||C.call(o,te.Start))}function V(C){var _;y!==te.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),y=te.Stop,(_=o.onVideoStateChange)==null||_.call(o,te.Stop,C))}function W(C,_,q){var ce,he,Me;i(`Track subscribed: ${C.kind} from ${q.identity}`);const H=C.mediaStreamTrack;if(!H){i(`No mediaStreamTrack available for ${C.kind}`);return}g?(g.addTrack(H),i(`Added ${C.kind} track to shared MediaStream`)):(g=new MediaStream([H]),i(`Created shared MediaStream with ${C.kind} track`)),C.kind==="audio"&&(I=Eu(()=>C.getRTCStatsReport(),({sttLatency:re,serviceLatency:mt})=>{var Ll,Nl,Ul;const ri=ft.get(!0);let si=0;if(re){const Fl=((Nl=(Ll=P==null?void 0:P.getReport())==null?void 0:Ll.webRTCStats)==null?void 0:Nl.avgRtt)??0;si=Fl>0?Math.round(Fl*1e3):0}const _n=ri>0?ri+(re??0)+si:void 0,Lt=_n!==void 0&&mt!==void 0?_n-mt:void 0;(Ul=o.onFirstAudioDetected)==null||Ul.call(o,{latency:_n,networkLatency:Lt})})),C.kind==="video"&&((ce=o.onStreamReady)==null||ce.call(o),i("CALLBACK: onSrcObjectReady"),(he=o.onSrcObjectReady)==null||he.call(o,g),b||(b=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Me=o.onConnectionStateChange)==null||Me.call(o,le.Connected,"livekit:track-subscribed")),P=Da(()=>C.getRTCStatsReport(),()=>m,Vl,(re,mt)=>{i(`Video state change: ${re}`),re===te.Start?(T&&(clearTimeout(T),T=null,i("Track subscription timeout cleared")),fe()):re===te.Stop&&V(mt)}),P.start())}function ge(C,_,q){i(`Track unsubscribed: ${C.kind} from ${q.identity}`),C.kind==="audio"&&(I==null||I.destroy(),I=null),C.kind==="video"&&(V(P==null?void 0:P.getReport()),P==null||P.stop(),P=null)}function Pe(C,_){var H;const q=Qu[C];q&&((H=o.onMessage)==null||H.call(o,q,{event:q,..._}))}function Se(C,_){var q,H,ce,he,Me;if(C===Q.ToolCallStarted){const re=_;F=re.interruptible!==!1,(q=o.onInterruptibleChange)==null||q.call(o,F),M.add(re.call_id),x=de.ToolActive,(H=o.onAgentActivityStateChange)==null||H.call(o,de.ToolActive),(ce=o.onToolEvent)==null||ce.call(o,Q.ToolCallStarted,re);return}if(C===Q.ToolCallDone){const re=_;Qe(re.call_id),(he=o.onToolEvent)==null||he.call(o,Q.ToolCallDone,re);return}if(C===Q.ToolCallError){const re=_;Qe(re.call_id),(Me=o.onToolEvent)==null||Me.call(o,Q.ToolCallError,re)}}function Qe(C){var _;M.delete(C),!U&&M.size===0&&x===de.ToolActive&&(x=de.Idle,(_=o.onAgentActivityStateChange)==null||_.call(o,de.Idle))}function Gs(C,_){var q,H,ce,he,Me,re;if(F=((q=_.metadata)==null?void 0:q.interruptible)!==!1,(H=o.onInterruptibleChange)==null||H.call(o,F),C===Q.StreamVideoCreated){x=de.Talking,(ce=o.onAgentActivityStateChange)==null||ce.call(o,de.Talking),I==null||I.arm({sttLatency:(he=_==null?void 0:_.stt)==null?void 0:he.latency,serviceLatency:_==null?void 0:_.serviceLatency});return}if(M.size>0){x!==de.ToolActive&&(x=de.ToolActive,(Me=o.onAgentActivityStateChange)==null||Me.call(o,de.ToolActive));return}!U&&F&&(x=de.Idle,(re=o.onAgentActivityStateChange)==null||re.call(o,de.Idle))}function xt(C,_){var he,Me,re,mt;const q=((Me=(he=P==null?void 0:P.getReport())==null?void 0:he.webRTCStats)==null?void 0:Me.avgRtt)??0,H=q>0?Math.round(q/2*1e3):0,ce={..._,downstreamNetworkLatency:H};t.debug&&((re=_==null?void 0:_.metadata)!=null&&re.sentiment)&&(ce.sentiment={id:_.metadata.sentiment.id,name:_.metadata.sentiment.sentiment}),(mt=o.onMessage)==null||mt.call(o,C,ce),Gs(C,_)}function nr(C,_){var q;(q=o.onMessage)==null||q.call(o,xe.Transcribe,{event:xe.Transcribe,..._}),queueMicrotask(()=>{var H;(H=o.onAgentActivityStateChange)==null||H.call(o,de.Loading)})}function ir(C,_){var q;U=!0,N=(_==null?void 0:_.turn_id)??null,x=de.Loading,(q=o.onAgentActivityStateChange)==null||q.call(o,de.Loading)}function rr(C,_){var H;const q=(_==null?void 0:_.turn_id)??null;N!==null&&q!==null&&q<N||(x=de.Idle,(H=o.onAgentActivityStateChange)==null||H.call(o,de.Idle))}const hv={[Q.ChatAnswer]:Pe,[Q.ChatPartial]:Pe,[Q.ToolCallStarted]:Se,[Q.ToolCallDone]:Se,[Q.ToolCallError]:Se,[Q.StreamVideoCreated]:xt,[Q.StreamVideoDone]:xt,[Q.StreamVideoError]:xt,[Q.StreamVideoRejected]:xt,[Q.ChatAudioTranscribed]:nr,[Q.TurnStarted]:ir,[Q.TurnEnded]:rr};function mv(C,_,q,H){const ce=new TextDecoder().decode(C);try{const he=JSON.parse(ce),Me=H||he.subject;if(i("Data received:",{subject:Me,data:he}),!Me)return;const re=hv[Me];re==null||re(Me,he)}catch(he){i("Failed to parse data channel message:",he)}}function fv(C){var _;i("Media devices error:",C),(_=o.onError)==null||_.call(o,ln(),{sessionId:$})}function pv(C){var _;i("Encryption error:",C),(_=o.onError)==null||_.call(o,ln(),{sessionId:$})}function gv(C,_,q){i("Track subscription failed:",{trackSid:C,participant:_,reason:q})}function vv(C,_,q){for(const[H,ce]of q)if(ce.source===_&&ce.track){const he=ce.track.mediaStreamTrack;if(he===C||(he==null?void 0:he.id)===C.id)return ce}return null}async function Ol(C,_,q,H,ce,he){var ri,si,_n;if(!m||!h)throw i(`Room is not connected, cannot publish ${H} stream`),new Error("Room is not connected");if(C.isPublishing){i(`${H} publish already in progress, skipping`);return}const Me=q(_);if(Me.length===0)throw new Error(`No ${H} track found in the provided MediaStream`);const re=Me[0],mt=vv(re,H,ce());if(mt){i(`${H} track is already published, skipping`,{trackId:re.id,publishedTrackId:(si=(ri=mt.track)==null?void 0:ri.mediaStreamTrack)==null?void 0:si.id}),C.publication=mt;return}if((_n=C.publication)!=null&&_n.track){const Lt=C.publication.track.mediaStreamTrack;Lt!==re&&(Lt==null?void 0:Lt.id)!==re.id&&(i(`Unpublishing existing ${H} track before publishing new one`),await he())}i(`Publishing ${H} track from provided MediaStream`,{trackId:re.id}),C.isPublishing=!0;try{C.publication=await h.localParticipant.publishTrack(re,{source:H}),i(`${H} track published successfully`,{trackSid:C.publication.trackSid})}catch(Lt){throw i(`Failed to publish ${H} track:`,Lt),Lt}finally{C.isPublishing=!1}}async function Al(C,_){if(!(!C.publication||!C.publication.track))try{h&&(await h.localParticipant.unpublishTrack(C.publication.track,!1),i(`${_} track unpublished`))}catch(q){i(`Error unpublishing ${_} track:`,q)}finally{C.publication=null}}async function yv(C){return Ol(S,C,_=>_.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,zs)}async function zs(){return Al(S,"Microphone")}async function bv(C){if(!m||!h)throw i("Cannot replace microphone track: room is not connected"),new Error("Room is not connected");if(C.kind!=="audio")throw i("Cannot replace microphone track: not an audio track",{kind:C.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 _=S.publication;if(!_||!_.track)throw i("Cannot replace microphone track: no publication to replace"),new Error("No microphone publication to replace");try{S.isPublishing=!0,await _.track.replaceTrack(C),i("Microphone track replaced",{trackId:C.id,trackSid:_.trackSid})}finally{S.isPublishing=!1}}async function kv(C){return Ol(k,C,_=>_.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,$s)}async function $s(){return Al(k,"Camera")}function Tv(){g&&(g.getTracks().forEach(C=>C.stop()),g=null)}async function Qs(C,_){var q,H;if(!m||!h){i("Room is not connected for sending messages"),(q=o.onError)==null||q.call(o,ln(),{sessionId:$});return}try{await h.localParticipant.sendText(C,{topic:_}),i("Message sent successfully:",C)}catch(ce){i("Failed to send message:",ce),(H=o.onError)==null||H.call(o,ln(),{sessionId:$})}}async function Dl(C){var _;try{const H=JSON.parse(C).topic;return Qs("",H)}catch(q){i("Failed to send data channel message:",q),(_=o.onError)==null||_.call(o,ln(),{sessionId:$})}}function Sv(C){return Qs(C,"lk.chat")}async function Ys(C){var _,q;T&&(clearTimeout(T),T=null),I==null||I.destroy(),I=null,h&&((_=o.onConnectionStateChange)==null||_.call(o,le.Disconnecting,C),await Promise.all([zs(),$s()]),await h.disconnect()),Tv(),m=!1,b=!1,M.clear(),N=null,(q=o.onAgentActivityStateChange)==null||q.call(o,de.Idle),x=de.Idle}return{speak(C){const _=typeof C=="string"?C:JSON.stringify(C);return Qs(_,"did.speak")},disconnect:()=>Ys("user:disconnect"),async reconnect(){var C,_;if((h==null?void 0:h.state)===c.Connected){i("Room is already connected");return}if(!h||!B||!w)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,(C=o.onConnectionStateChange)==null||C.call(o,le.Connecting,"user:reconnect");try{if(await h.connect(B,w),i("Room reconnected"),m=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(H=>{const ce=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,he),H(!1)},5e3),he=()=>{clearTimeout(ce),h==null||h.off(s.ParticipantConnected,he),H(!0)};h==null||h.on(s.ParticipantConnected,he)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined, reconnection successful")}}catch(q){throw i("Failed to reconnect:",q),(_=o.onConnectionStateChange)==null||_.call(o,le.Fail,"user:reconnect-failed"),q}},sendDataChannelMessage:Dl,sendTextMessage:Sv,publishMicrophoneStream:yv,unpublishMicrophoneStream:zs,replaceMicrophoneTrack:bv,publishCameraStream:kv,unpublishCameraStream:$s,interrupt(C){C!=="text"&&Dl(JSON.stringify({topic:"did.interrupt"}))},registerRpcMethod(C,_){h==null||h.registerRpcMethod(C,_)},unregisterRpcMethod(C){h==null||h.unregisterRpcMethod(C)},sessionId:$,streamId:$,streamType:v,interruptAvailable:j,isInterruptible:F}}const eh=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:Zu,handleInitError:vr},Symbol.toStringTag,{value:"Module"}));function th(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 nh=Object.defineProperty,ih=(n,e,t)=>e in n?nh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ba=(n,e,t)=>ih(n,typeof e!="symbol"?e+"":e,t);class Le{constructor(){Ba(this,"_locking"),Ba(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 be(n,e){if(!n)throw new Error(e)}const rh=34028234663852886e22,sh=-34028234663852886e22,ah=4294967295,oh=2147483647,ch=-2147483648;function hi(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>oh||n<ch)throw new Error("invalid int 32: "+n)}function yr(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>ah||n<0)throw new Error("invalid uint 32: "+n)}function ja(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>rh||n<sh))throw new Error("invalid float 32: "+n)}const Va=Symbol("@bufbuild/protobuf/enum-type");function dh(n){const e=n[Va];return be(e,"missing enum type on enum object"),e}function qa(n,e,t,i){n[Va]=Ka(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function Ka(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const c of e){const a=Wa(c);s.push(a),i[c.name]=a,r[c.no]=a}return{typeName:n,values:s,findName(c){return i[c]},findNumber(c){return r[c]}}}function lh(n,e,t){const i={};for(const r of e){const s=Wa(r);i[s.localName]=s.no,i[s.no]=s.localName}return qa(i,n,e),i}function Wa(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class br{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 uh(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),c={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(c.prototype,new br),Object.assign(c,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,o){return new c().fromBinary(a,o)},fromJson(a,o){return new c().fromJson(a,o)},fromJsonString(a,o){return new c().fromJsonString(a,o)},equals(a,o){return n.util.equals(c,a,o)}}),c}function hh(){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)==0)return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)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)==0)return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function kr(n,e,t){for(let s=0;s<28;s=s+7){const c=n>>>s,a=!(!(c>>>7)&&e==0),o=(a?c|128:c)&255;if(t.push(o),!a)return}const i=n>>>28&15|(e&7)<<4,r=e>>3!=0;if(t.push((r?i|128:i)&255),!!r){for(let s=3;s<31;s=s+7){const c=e>>>s,a=!!(c>>>7),o=(a?c|128:c)&255;if(t.push(o),!a)return}t.push(e>>>31&1)}}const mi=4294967296;function Ha(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(c,a){const o=Number(n.slice(c,a));r*=t,i=i*t+o,i>=mi&&(r=r+(i/mi|0),i=i%mi)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Ga(i,r):Tr(i,r)}function mh(n,e){let t=Tr(n,e);const i=t.hi&2147483648;i&&(t=Ga(t.lo,t.hi));const r=Ja(t.lo,t.hi);return i?"-"+r:r}function Ja(n,e){if({lo:n,hi:e}=fh(n,e),e<=2097151)return String(mi*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,c=i+r*8147497,a=r*2;const o=1e7;return s>=o&&(c+=Math.floor(s/o),s%=o),c>=o&&(a+=Math.floor(c/o),c%=o),a.toString()+za(c)+za(s)}function fh(n,e){return{lo:n>>>0,hi:e>>>0}}function Tr(n,e){return{lo:n|0,hi:e|0}}function Ga(n,e){return e=~e,n?n=~n+1:e+=1,Tr(n,e)}const za=n=>{const e=String(n);return"0000000".slice(e.length)+e};function $a(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 ph(){let n=this.buf[this.pos++],e=n&127;if((n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,(n&128)==0)return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;(n&128)!==0&&t<10;t++)n=this.buf[this.pos++];if((n&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function gh(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),c=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error("int64 invalid: ".concat(o));return d},uParse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>a||d<c)throw new Error("uint64 invalid: ".concat(o));return d},enc(o){return n.setBigInt64(0,this.parse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(o){return n.setBigInt64(0,this.uParse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>be(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>be(/^[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),Ha(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),Ha(r)},dec(r,s){return mh(r,s)},uDec(r,s){return Ja(r,s)}}}const pe=gh();var R;(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"})(R||(R={}));var Ut;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Ut||(Ut={}));function Ft(n,e,t){if(e===t)return!0;if(n==R.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 R.UINT64:case R.FIXED64:case R.INT64:case R.SFIXED64:case R.SINT64:return e==t}return!1}function un(n,e){switch(n){case R.BOOL:return!1;case R.UINT64:case R.FIXED64:case R.INT64:case R.SFIXED64:case R.SINT64:return e==0?pe.zero:"0";case R.DOUBLE:case R.FLOAT:return 0;case R.BYTES:return new Uint8Array(0);case R.STRING:return"";default:return 0}}function Qa(n,e){switch(n){case R.BOOL:return e===!1;case R.STRING:return e==="";case R.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Ee;(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"})(Ee||(Ee={}));class vh{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(yr(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return hi(e),$a(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){ja(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){yr(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){hi(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return hi(e),e=(e<<1^e>>31)>>>0,$a(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=pe.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=pe.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=pe.enc(e);return kr(t.lo,t.hi,this.buf),this}sint64(e){let t=pe.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return kr(r,s,this.buf),this}uint64(e){let t=pe.uEnc(e);return kr(t.lo,t.hi,this.buf),this}}class yh{constructor(e,t){this.varint64=hh,this.uint32=ph,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 Ee.Varint:for(;this.buf[this.pos++]&128;);break;case Ee.Bit64:this.pos+=4;case Ee.Bit32:this.pos+=4;break;case Ee.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Ee.StartGroup:for(;;){const[s,c]=this.tag();if(c===Ee.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(c,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return pe.dec(...this.varint64())}uint64(){return pe.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,pe.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 pe.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return pe.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 bh(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 Ya(n){const e=n.field.localName,t=Object.create(null);return t[e]=kh(n),[t,()=>t[e]]}function kh(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 un(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 Th(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 Et="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),fi=[];for(let n=0;n<Et.length;n++)fi[Et[n].charCodeAt(0)]=n;fi[45]=Et.indexOf("+"),fi[95]=Et.indexOf("/");const Xa={dec(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),i=0,r=0,s,c=0;for(let a=0;a<n.length;a++){if(s=fi[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
2
2
  `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:c=s,r=1;break;case 1:t[i++]=c<<2|(s&48)>>4,c=s,r=2;break;case 2:t[i++]=(c&15)<<4|(s&60)>>2,c=s,r=3;break;case 3:t[i++]=(c&3)<<6|s,r=0;break}}if(r==1)throw Error("invalid base64 string.");return t.subarray(0,i)},enc(n){let e="",t=0,i,r=0;for(let s=0;s<n.length;s++)switch(i=n[s],t){case 0:e+=Et[i>>2],r=(i&3)<<4,t=1;break;case 1:e+=Et[r|i>>4],r=(i&15)<<2,t=2;break;case 2:e+=Et[r|i>>6],e+=Et[i&63],t=0;break}return t&&(e+=Et[r],e+="=",t==1&&(e+="=")),e}};function Sh(n,e,t){eo(e,n);const i=e.runtime.bin.makeReadOptions(t),r=Th(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,c]=Ya(e);for(const a of r)e.runtime.bin.readField(s,i.readerFactory(a.data),e.field,a.wireType,i);return c()}function Ch(n,e,t,i){eo(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(Za(n,e)){const d=n.getType().runtime.bin.listUnknownFields(n).filter(l=>l.no!=e.field.no);n.getType().runtime.bin.discardUnknownFields(n);for(const l of d)n.getType().runtime.bin.onUnknownField(n,l.no,l.wireType,l.data)}const c=s.writerFactory();let a=e.field;!a.opt&&!a.repeated&&(a.kind=="enum"||a.kind=="scalar")&&(a=Object.assign(Object.assign({},e.field),{opt:!0})),e.runtime.bin.writeField(a,t,c,s);const o=r.readerFactory(c.finish());for(;o.pos<o.len;){const[d,l]=o.tag(),u=o.skip(l,d);n.getType().runtime.bin.onUnknownField(n,d,l,u)}}function Za(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 eo(n,e){be(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function to(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:!Qa(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function no(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?un(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function wt(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(br.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 io(n,e){return wt(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}R.DOUBLE,R.FLOAT,R.INT64,R.UINT64,R.INT32,R.UINT32,R.BOOL,R.STRING,R.BYTES;const ro={ignoreUnknownFields:!1},so={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Eh(n){return n?Object.assign(Object.assign({},ro),n):ro}function wh(n){return n?Object.assign(Object.assign({},so),n):so}const pi=Symbol(),gi=Symbol();function Rh(){return{makeReadOptions:Eh,makeWriteOptions:wh,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(pt(e)));i=i??new n;const r=new Map,s=t.typeRegistry;for(const[c,a]of Object.entries(e)){const o=n.fields.findJsonName(c);if(o){if(o.oneof){if(a===null&&o.kind=="scalar")continue;const d=r.get(o.oneof);if(d!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(o.oneof.name,'" present: "').concat(d,'", "').concat(c,'"'));r.set(o.oneof,c)}ao(i,a,o,t,n)}else{let d=!1;if(s!=null&&s.findExtension&&c.startsWith("[")&&c.endsWith("]")){const l=s.findExtension(c.substring(1,c.length-1));if(l&&l.extendee.typeName==n.typeName){d=!0;const[u,h]=Ya(l);ao(u,a,l.field,t,l),Ch(i,l,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(c,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!to(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!_h(r))continue}const c=r.oneof?n[r.oneof.localName].value:n[r.localName],a=oo(r,c,e);a!==void 0&&(i[e.useProtoFieldName?r.name:r.jsonName]=a)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const c of t.runtime.bin.listUnknownFields(n)){const a=s.findExtensionFor(t.typeName,c.no);if(a&&Za(n,a)){const o=Sh(n,a,e),d=oo(a.field,o,e);d!==void 0&&(i[a.field.jsonName]=d)}}}catch(s){const c=r?"cannot encode field ".concat(t.typeName,".").concat(r.name," to JSON"):"cannot encode message ".concat(t.typeName," to JSON"),a=s instanceof Error?s.message:String(s);throw new Error(c+(a.length>0?": ".concat(a):""))}return i},readScalar(n,e,t){return An(n,e,t??Ut.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||Qa(n,e)))return vi(n,e)},debug:pt}}function pt(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 ao(n,e,t,i,r){let s=t.localName;if(t.repeated){if(be(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(pt(e)));const c=n[s];for(const a of e){if(a===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(pt(a)));switch(t.kind){case"message":c.push(t.T.fromJson(a,i));break;case"enum":const o=Sr(t.T,a,i.ignoreUnknownFields,!0);o!==gi&&c.push(o);break;case"scalar":try{c.push(An(t.T,a,t.L,!0))}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(pt(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(pt(e)));const c=n[s];for(const[a,o]of Object.entries(e)){if(o===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: map value null"));let d;try{d=Ph(t.K,a)}catch(l){let u="cannot decode map key for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(pt(e));throw l instanceof Error&&l.message.length>0&&(u+=": ".concat(l.message)),new Error(u)}switch(t.V.kind){case"message":c[d]=t.V.T.fromJson(o,i);break;case"enum":const l=Sr(t.V.T,o,i.ignoreUnknownFields,!0);l!==gi&&(c[d]=l);break;case"scalar":try{c[d]=An(t.V.T,o,Ut.BIGINT,!0)}catch(u){let h="cannot decode map value for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(pt(e));throw u instanceof Error&&u.message.length>0&&(h+=": ".concat(u.message)),new Error(h)}break}}}else switch(t.oneof&&(n=n[t.oneof.localName]={case:s},s="value"),t.kind){case"message":const c=t.T;if(e===null&&c.typeName!="google.protobuf.Value")return;let a=n[s];wt(a)?a.fromJson(e,i):(n[s]=a=c.fromJson(e,i),c.fieldWrapper&&!t.oneof&&(n[s]=c.fieldWrapper.unwrapField(a)));break;case"enum":const o=Sr(t.T,e,i.ignoreUnknownFields,!1);switch(o){case pi:no(t,n);break;case gi:break;default:n[s]=o;break}break;case"scalar":try{const d=An(t.T,e,t.L,!1);switch(d){case pi:no(t,n);break;default:n[s]=d;break}}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(pt(e));throw d instanceof Error&&d.message.length>0&&(l+=": ".concat(d.message)),new Error(l)}break}}function Ph(n,e){if(n===R.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return An(n,e,Ut.BIGINT,!0).toString()}function An(n,e,t,i){if(e===null)return i?un(n,t):pi;switch(n){case R.DOUBLE:case R.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==R.FLOAT&&ja(r),r;case R.INT32:case R.FIXED32:case R.SFIXED32:case R.SINT32:case R.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==R.UINT32||n==R.FIXED32?yr(s):hi(s),s;case R.INT64:case R.SFIXED64:case R.SINT64:if(typeof e!="number"&&typeof e!="string")break;const c=pe.parse(e);return t?c.toString():c;case R.FIXED64:case R.UINT64:if(typeof e!="number"&&typeof e!="string")break;const a=pe.uParse(e);return t?a.toString():a;case R.BOOL:if(typeof e!="boolean")break;return e;case R.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case R.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return Xa.dec(e)}throw new Error}function Sr(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:pi;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 gi;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(pt(e)))}function _h(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function oo(n,e,t){if(n.kind=="map"){be(typeof e=="object"&&e!=null);const i={},r=Object.entries(e);switch(n.V.kind){case"scalar":for(const[c,a]of r)i[c.toString()]=vi(n.V.T,a);break;case"message":for(const[c,a]of r)i[c.toString()]=a.toJson(t);break;case"enum":const s=n.V.T;for(const[c,a]of r)i[c.toString()]=Cr(s,a,t.enumAsInteger);break}return t.emitDefaultValues||r.length>0?i:void 0}if(n.repeated){be(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let r=0;r<e.length;r++)i.push(vi(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(Cr(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 vi(n.T,e);case"enum":return Cr(n.T,e,t.enumAsInteger);case"message":return io(n.T,e).toJson(t)}}function Cr(n,e,t){var i;if(be(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 vi(n,e){switch(n){case R.INT32:case R.SFIXED32:case R.SINT32:case R.FIXED32:case R.UINT32:return be(typeof e=="number"),e;case R.FLOAT:case R.DOUBLE:return be(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case R.STRING:return be(typeof e=="string"),e;case R.BOOL:return be(typeof e=="boolean"),e;case R.UINT64:case R.FIXED64:case R.INT64:case R.SFIXED64:case R.SINT64:return be(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case R.BYTES:return be(e instanceof Uint8Array),Xa.enc(e)}}const hn=Symbol("@bufbuild/protobuf/unknown-fields"),co={readUnknownFields:!0,readerFactory:n=>new yh(n)},lo={writeUnknownFields:!0,writerFactory:()=>new vh};function Ih(n){return n?Object.assign(Object.assign({},co),n):co}function Mh(n){return n?Object.assign(Object.assign({},lo),n):lo}function Oh(){return{makeReadOptions:Ih,makeWriteOptions:Mh,listUnknownFields(n){var e;return(e=n[hn])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[hn]},writeUnknownFields(n,e){const i=n[hn];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[hn])||(r[hn]=[]),r[hn].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),c=r?e.len:e.pos+t;let a,o;for(;e.pos<c&&([a,o]=e.tag(),!(r===!0&&o==Ee.EndGroup));){const d=s.fields.find(a);if(!d){const l=e.skip(o,a);i.readUnknownFields&&this.onUnknownField(n,a,o,l);continue}uo(n,e,d,o,i)}if(r&&(o!=Ee.EndGroup||a!==t))throw new Error("invalid end group tag")},readField:uo,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!to(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];ho(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&ho(n,e,t,i)}}}function uo(n,e,t,i,r){let{repeated:s,localName:c}=t;switch(t.oneof&&(n=n[t.oneof.localName],n.case!=c&&delete n.value,n.case=c,c="value"),t.kind){case"scalar":case"enum":const a=t.kind=="enum"?R.INT32:t.T;let o=bi;if(t.kind=="scalar"&&t.L>0&&(o=Dh),s){let h=n[c];if(i==Ee.LengthDelimited&&a!=R.STRING&&a!=R.BYTES){let v=e.uint32()+e.pos;for(;e.pos<v;)h.push(o(e,a))}else h.push(o(e,a))}else n[c]=o(e,a);break;case"message":const d=t.T;s?n[c].push(yi(e,new d,r,t)):wt(n[c])?yi(e,n[c],r,t):(n[c]=yi(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[c]=d.fieldWrapper.unwrapField(n[c])));break;case"map":let[l,u]=Ah(t,e,r);n[c][l]=u;break}}function yi(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,c;for(;e.pos<r;){const[a]=e.tag();switch(a){case 1:s=bi(e,n.K);break;case 2:switch(n.V.kind){case"scalar":c=bi(e,n.V.T);break;case"enum":c=e.int32();break;case"message":c=yi(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=un(n.K,Ut.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),c===void 0)switch(n.V.kind){case"scalar":c=un(n.V.T,Ut.BIGINT);break;case"enum":c=n.V.T.values[0].no;break;case"message":c=new n.V.T;break}return[s,c]}function Dh(n,e){const t=bi(n,e);return typeof t=="bigint"?t.toString():t}function bi(n,e){switch(e){case R.STRING:return n.string();case R.BOOL:return n.bool();case R.DOUBLE:return n.double();case R.FLOAT:return n.float();case R.INT32:return n.int32();case R.INT64:return n.int64();case R.UINT64:return n.uint64();case R.FIXED64:return n.fixed64();case R.BYTES:return n.bytes();case R.FIXED32:return n.fixed32();case R.SFIXED32:return n.sfixed32();case R.SFIXED64:return n.sfixed64();case R.SINT64:return n.sint64();case R.UINT32:return n.uint32();case R.SINT32:return n.sint32()}}function ho(n,e,t,i){be(e!==void 0);const r=n.repeated;switch(n.kind){case"scalar":case"enum":let s=n.kind=="enum"?R.INT32:n.T;if(r)if(be(Array.isArray(e)),n.packed)Lh(t,s,n.no,e);else for(const c of e)Dn(t,s,n.no,c);else Dn(t,s,n.no,e);break;case"message":if(r){be(Array.isArray(e));for(const c of e)mo(t,i,n,c)}else mo(t,i,n,e);break;case"map":be(typeof e=="object"&&e!=null);for(const[c,a]of Object.entries(e))xh(t,i,n,c,a);break}}function xh(n,e,t,i,r){n.tag(t.no,Ee.LengthDelimited),n.fork();let s=i;switch(t.K){case R.INT32:case R.FIXED32:case R.UINT32:case R.SFIXED32:case R.SINT32:s=Number.parseInt(i);break;case R.BOOL:be(i=="true"||i=="false"),s=i=="true";break}switch(Dn(n,t.K,1,s),t.V.kind){case"scalar":Dn(n,t.V.T,2,r);break;case"enum":Dn(n,R.INT32,2,r);break;case"message":be(r!==void 0),n.tag(2,Ee.LengthDelimited).bytes(r.toBinary(e));break}n.join()}function mo(n,e,t,i){const r=io(t.T,i);t.delimited?n.tag(t.no,Ee.StartGroup).raw(r.toBinary(e)).tag(t.no,Ee.EndGroup):n.tag(t.no,Ee.LengthDelimited).bytes(r.toBinary(e))}function Dn(n,e,t,i){be(i!==void 0);let[r,s]=fo(e);n.tag(t,r)[s](i)}function Lh(n,e,t,i){if(!i.length)return;n.tag(t,Ee.LengthDelimited).fork();let[,r]=fo(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function fo(n){let e=Ee.Varint;switch(n){case R.BYTES:case R.STRING:e=Ee.LengthDelimited;break;case R.DOUBLE:case R.FIXED64:case R.SFIXED64:e=Ee.Bit64;break;case R.FIXED32:case R.SFIXED32:case R.FLOAT:e=Ee.Bit32;break}const t=R[n].toLowerCase();return[e,t]}function Nh(){return{setEnumType:qa,initPartial(n,e){if(n===void 0)return;const t=e.getType();for(const i of t.fields.byMember()){const r=i.localName,s=e,c=n;if(c[r]!=null)switch(i.kind){case"oneof":const a=c[r].case;if(a===void 0)continue;const o=i.findField(a);let d=c[r].value;o&&o.kind=="message"&&!wt(d,o.T)?d=new o.T(d):o&&o.kind==="scalar"&&o.T===R.BYTES&&(d=xn(d)),s[r]={case:a,value:d};break;case"scalar":case"enum":let l=c[r];i.T===R.BYTES&&(l=i.repeated?l.map(xn):xn(l)),s[r]=l;break;case"map":switch(i.V.kind){case"scalar":case"enum":if(i.V.T===R.BYTES)for(const[m,v]of Object.entries(c[r]))s[r][m]=xn(v);else Object.assign(s[r],c[r]);break;case"message":const h=i.V.T;for(const m of Object.keys(c[r])){let v=c[r][m];h.fieldWrapper||(v=new h(v)),s[r][m]=v}break}break;case"message":const u=i.T;if(i.repeated)s[r]=c[r].map(h=>wt(h,u)?h:new u(h));else{const h=c[r];u.fieldWrapper?u.typeName==="google.protobuf.BytesValue"?s[r]=xn(h):s[r]=h:s[r]=wt(h,u)?h:new u(h)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(i=>{const r=e[i.localName],s=t[i.localName];if(i.repeated){if(r.length!==s.length)return!1;switch(i.kind){case"message":return r.every((c,a)=>i.T.equals(c,s[a]));case"scalar":return r.every((c,a)=>Ft(i.T,c,s[a]));case"enum":return r.every((c,a)=>Ft(R.INT32,c,s[a]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":let c=r,a=s;return i.T.fieldWrapper&&(c!==void 0&&!wt(c)&&(c=i.T.fieldWrapper.wrapField(c)),a!==void 0&&!wt(a)&&(a=i.T.fieldWrapper.wrapField(a))),i.T.equals(c,a);case"enum":return Ft(R.INT32,r,s);case"scalar":return Ft(i.T,r,s);case"oneof":if(r.case!==s.case)return!1;const o=i.findField(r.case);if(o===void 0)return!0;switch(o.kind){case"message":return o.T.equals(r.value,s.value);case"enum":return Ft(R.INT32,r.value,s.value);case"scalar":return Ft(o.T,r.value,s.value)}throw new Error("oneof cannot contain ".concat(o.kind));case"map":const d=Object.keys(r).concat(Object.keys(s));switch(i.V.kind){case"message":const l=i.V.T;return d.every(h=>l.equals(r[h],s[h]));case"enum":return d.every(h=>Ft(R.INT32,r[h],s[h]));case"scalar":const u=i.V.T;return d.every(h=>Ft(u,r[h],s[h]))}break}})},clone(n){const e=n.getType(),t=new e,i=t;for(const r of e.fields.byMember()){const s=n[r.localName];let c;if(r.repeated)c=s.map(ki);else if(r.kind=="map"){c=i[r.localName];for(const[a,o]of Object.entries(s))c[a]=ki(o)}else r.kind=="oneof"?c=r.findField(s.case)?{case:s.case,value:ki(s.value)}:{case:void 0}:c=ki(s);i[r.localName]=c}for(const r of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,r.no,r.wireType,r.data);return t}}}function ki(n){if(n===void 0)return n;if(wt(n))return n.clone();if(n instanceof Uint8Array){const e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function xn(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function Uh(n,e,t){return{syntax:n,json:Rh(),bin:Oh(),util:Object.assign(Object.assign({},Nh()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return uh(this,i,r,s)},makeEnum:lh,makeEnumType:Ka,getEnumType:dh,makeExtension(i,r,s){return bh(this,i,r,s)}}}class Fh{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 po(n,e){const t=go(n);return e?t:Wh(Kh(t))}function Bh(n){return po(n,!1)}const jh=go;function go(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 Vh=new Set(["constructor","toString","toJSON","valueOf"]),qh=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),vo=n=>"".concat(n,"$"),Kh=n=>qh.has(n)?vo(n):n,Wh=n=>Vh.has(n)?vo(n):n;class Hh{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=Bh(e)}addField(e){be(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 Jh(n,e){var t,i,r,s,c,a;const o=[];let d;for(const l of typeof n=="function"?n():n){const u=l;if(u.localName=po(l.name,l.oneof!==void 0),u.jsonName=(t=l.jsonName)!==null&&t!==void 0?t:jh(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:Ut.BIGINT),u.delimited=(s=l.delimited)!==null&&s!==void 0?s:!1,u.req=(c=l.req)!==null&&c!==void 0?c:!1,u.opt=(a=l.opt)!==null&&a!==void 0?a:!1,l.packed===void 0&&(u.packed=l.kind=="enum"||l.kind=="scalar"&&l.T!=R.BYTES&&l.T!=R.STRING),l.oneof!==void 0){const h=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!d||d.name!=h)&&(d=new Hh(h)),u.oneof=d,d.addField(u)}o.push(u)}return o}const p=Uh("proto3",n=>new Fh(n,e=>Jh(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]=un(e.T,e.L);break}}});class He extends br{constructor(e){super(),this.seconds=pe.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=pe.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:pe.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 Gh=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:zh,repeated:!0},{no:5,name:"events",kind:"message",T:Qh,repeated:!0}]),zh=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:$h,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),$h=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}]),Qh=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}]),Yh=p.makeEnum("livekit.AudioCodec",[{no:0,name:"DEFAULT_AC"},{no:1,name:"OPUS"},{no:2,name:"AAC"},{no:3,name:"AC_MP3"}]),Xh=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"}]),Zh=p.makeEnum("livekit.ImageCodec",[{no:0,name:"IC_DEFAULT"},{no:1,name:"IC_JPEG"}]),yo=p.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),Xe=p.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),_e=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"}]),Er=p.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),Ln=p.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),Nn=p.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),Ze=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"}]),$t=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"}]),bo=p.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),Oe=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"}]),Ti=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:Si,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:Do}]),Si=p.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),em=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(_e),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}]),Qt=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(mn)},{no:4,name:"tracks",kind:"message",T:pn,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:em},{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(fn)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:p.getEnumType(Ze)},{no:18,name:"kind_details",kind:"enum",T:p.getEnumType(tm),repeated:!0},{no:19,name:"data_tracks",kind:"message",T:wr,repeated:!0}]),mn=p.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),fn=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"}]),tm=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"}]),ke=p.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),nm=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:Bt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(ko)},{no:6,name:"sdp_cid",kind:"scalar",T:9}]),pn=p.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:p.getEnumType(Xe)},{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(_e)},{no:10,name:"layers",kind:"message",T:Bt,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:nm,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(ke)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:Do},{no:19,name:"audio_features",kind:"enum",T:p.getEnumType(Oe),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(yo)}]),wr=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(ke)}]),im=p.makeMessageType("livekit.DataTrackSubscriptionOptions",()=>[{no:1,name:"target_fps",kind:"scalar",T:13,opt:!0}]),Bt=p.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(Er)},{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}]),ko=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"}]),Ve=p.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:p.getEnumType(Y)},{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:Rr,oneof:"value"},{no:3,name:"speaker",kind:"message",T:rm,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:Eo,oneof:"value"},{no:7,name:"transcription",kind:"message",T:sm,oneof:"value"},{no:8,name:"metrics",kind:"message",T:Gh,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:Ci,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:Pr,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:_r,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:Ir,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:Ei,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:wi,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:Ri,oneof:"value"},{no:18,name:"encrypted_packet",kind:"message",T:To,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),Y=p.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),To=p.makeMessageType("livekit.EncryptedPacket",()=>[{no:1,name:"encryption_type",kind:"enum",T:p.getEnumType(ke)},{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}]),So=p.makeMessageType("livekit.EncryptedPacketPayload",()=>[{no:1,name:"user",kind:"message",T:Rr,oneof:"value"},{no:3,name:"chat_message",kind:"message",T:Ci,oneof:"value"},{no:4,name:"rpc_request",kind:"message",T:Pr,oneof:"value"},{no:5,name:"rpc_ack",kind:"message",T:_r,oneof:"value"},{no:6,name:"rpc_response",kind:"message",T:Ir,oneof:"value"},{no:7,name:"stream_header",kind:"message",T:Ei,oneof:"value"},{no:8,name:"stream_chunk",kind:"message",T:wi,oneof:"value"},{no:9,name:"stream_trailer",kind:"message",T:Ri,oneof:"value"}]),rm=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}]),Rr=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}]),Eo=p.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),sm=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:am,repeated:!0}]),am=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}]),Ci=p.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),Pr=p.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),_r=p.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),Ir=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:wo,oneof:"value"}]),wo=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}]),Ro=p.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),Po=p.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:p.getEnumType(_o)},{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}]),_o=p.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),Io=p.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:p.getEnumType(Mo)},{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}]),Mo=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"}]),Oo=p.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:Ao},{no:2,name:"screen",kind:"message",T:Ao},{no:3,name:"resume_connection",kind:"enum",T:p.getEnumType(Nn)},{no:4,name:"disabled_codecs",kind:"message",T:om},{no:5,name:"force_relay",kind:"enum",T:p.getEnumType(Nn)}]),Ao=p.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:p.getEnumType(Nn)}]),om=p.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:Si,repeated:!0},{no:2,name:"publish",kind:"message",T:Si,repeated:!0}]),Do=p.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),Mr=p.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),xo=p.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:p.getEnumType(Mr)},{no:2,name:"version",kind:"scalar",T:5},{no:3,name:"reply_to_stream_id",kind:"scalar",T:9},{no:4,name:"attached_stream_ids",kind:"scalar",T:9,repeated:!0},{no:5,name:"generated",kind:"scalar",T:8}],{localName:"DataStream_TextHeader"}),Lo=p.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),Ei=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(ke)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:xo,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:Lo,oneof:"content_header"}],{localName:"DataStream_Header"}),wi=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"}),Ri=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"}),cm=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}]),dm=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:cm}]),lm=p.makeMessageType("livekit.SubscribedAudioCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"enabled",kind:"scalar",T:8}]),Or=p.makeMessageType("livekit.RoomAgentDispatch",()=>[{no:1,name:"agent_name",kind:"scalar",T:9},{no:2,name:"metadata",kind:"scalar",T:9}]),at=p.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Ar=p.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),um=p.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),hm=p.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:jt,oneof:"message"},{no:2,name:"answer",kind:"message",T:jt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:Pi,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Un,oneof:"message"},{no:5,name:"mute",kind:"message",T:_i,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Ii,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:jo,oneof:"message"},{no:8,name:"leave",kind:"message",T:Mi,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:qo,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:Ho,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Fr,oneof:"message"},{no:13,name:"simulate",kind:"message",T:gt,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:Nr,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:zo,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:Lr,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:Vo,oneof:"message"},{no:19,name:"publish_data_track_request",kind:"message",T:Uo,oneof:"message"},{no:20,name:"unpublish_data_track_request",kind:"message",T:Bo,oneof:"message"},{no:21,name:"update_data_subscription",kind:"message",T:km,oneof:"message"}]),No=p.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:gm,oneof:"message"},{no:2,name:"answer",kind:"message",T:jt,oneof:"message"},{no:3,name:"offer",kind:"message",T:jt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:Pi,oneof:"message"},{no:5,name:"update",kind:"message",T:bm,oneof:"message"},{no:6,name:"track_published",kind:"message",T:xr,oneof:"message"},{no:8,name:"leave",kind:"message",T:Mi,oneof:"message"},{no:9,name:"mute",kind:"message",T:_i,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:Sm,oneof:"message"},{no:11,name:"room_update",kind:"message",T:Cm,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:wm,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:Pm,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:Im,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Om,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:ym,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:vm,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Dm,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:Nm,oneof:"message"},{no:22,name:"request_response",kind:"message",T:Um,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Fm,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:Am,oneof:"message"},{no:25,name:"media_sections_requirement",kind:"message",T:qm,oneof:"message"},{no:26,name:"subscribed_audio_codec_update",kind:"message",T:Mm,oneof:"message"},{no:27,name:"publish_data_track_response",kind:"message",T:Fo,oneof:"message"},{no:28,name:"unpublish_data_track_response",kind:"message",T:mm,oneof:"message"},{no:29,name:"data_track_subscriber_handles",kind:"message",T:fm,oneof:"message"}]),Dr=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:Bt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(ko)}]),Un=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(Xe)},{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(_e)},{no:9,name:"layers",kind:"message",T:Bt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:Dr,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(ke)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(yo)},{no:17,name:"audio_features",kind:"enum",T:p.getEnumType(Oe),repeated:!0}]),Uo=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(ke)}]),Fo=p.makeMessageType("livekit.PublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:wr}]),Bo=p.makeMessageType("livekit.UnpublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13}]),mm=p.makeMessageType("livekit.UnpublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:wr}]),fm=p.makeMessageType("livekit.DataTrackSubscriberHandles",()=>[{no:1,name:"sub_handles",kind:"map",K:13,V:{kind:"message",T:pm}}]),pm=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"}),Pi=p.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:p.getEnumType(at)},{no:3,name:"final",kind:"scalar",T:8}]),_i=p.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),gm=p.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:Ti},{no:2,name:"participant",kind:"message",T:Qt},{no:3,name:"other_participants",kind:"message",T:Qt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:Ko,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:Oo},{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:Po},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:Si,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),vm=p.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:Ko,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Oo},{no:3,name:"server_info",kind:"message",T:Po},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),xr=p.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:pn}]),ym=p.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),jt=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}}]),bm=p.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:Qt,repeated:!0}]),Ii=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:Ro,repeated:!0}]),km=p.makeMessageType("livekit.UpdateDataSubscription",()=>[{no:1,name:"updates",kind:"message",T:Tm,repeated:!0}]),Tm=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:im}],{localName:"UpdateDataSubscription_Update"}),jo=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(Er)},{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}]),Lr=p.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:p.getEnumType(Oe),repeated:!0}]),Vo=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}]),Mi=p.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:p.getEnumType(Ze)},{no:3,name:"action",kind:"enum",T:p.getEnumType(gn)},{no:4,name:"regions",kind:"message",T:xm}]),gn=p.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),qo=p.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:Bt,repeated:!0}]),Nr=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}]),Ko=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}]),Sm=p.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:Co,repeated:!0}]),Cm=p.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:Ti}]),Em=p.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:p.getEnumType(Ln)},{no:3,name:"score",kind:"scalar",T:2}]),wm=p.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:Em,repeated:!0}]),Rm=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(Ar)}]),Pm=p.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:Rm,repeated:!0}]),Ur=p.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(Er)},{no:2,name:"enabled",kind:"scalar",T:8}]),_m=p.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:Ur,repeated:!0}]),Im=p.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:Ur,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:_m,repeated:!0}]),Mm=p.makeMessageType("livekit.SubscribedAudioCodecUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_audio_codecs",kind:"message",T:lm,repeated:!0}]),Wo=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}]),Ho=p.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:Wo,repeated:!0}]),Om=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:Ti},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:Qt},{no:4,name:"other_participants",kind:"message",T:Qt,repeated:!0}]),Fr=p.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:jt},{no:2,name:"subscription",kind:"message",T:Ii},{no:3,name:"publish_tracks",kind:"message",T:xr,repeated:!0},{no:4,name:"data_channels",kind:"message",T:Go,repeated:!0},{no:5,name:"offer",kind:"message",T:jt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:Jo,repeated:!0},{no:8,name:"publish_data_tracks",kind:"message",T:Fo,repeated:!0}]),Jo=p.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),Go=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(at)}]),gt=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(um),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"}]),zo=p.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Dm=p.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),xm=p.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:Lm,repeated:!0}]),Lm=p.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),Nm=p.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:p.getEnumType(bo)}]),Um=p.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:p.getEnumType(Br)},{no:3,name:"message",kind:"scalar",T:9},{no:4,name:"trickle",kind:"message",T:Pi,oneof:"request"},{no:5,name:"add_track",kind:"message",T:Un,oneof:"request"},{no:6,name:"mute",kind:"message",T:_i,oneof:"request"},{no:7,name:"update_metadata",kind:"message",T:Nr,oneof:"request"},{no:8,name:"update_audio_track",kind:"message",T:Lr,oneof:"request"},{no:9,name:"update_video_track",kind:"message",T:Vo,oneof:"request"},{no:10,name:"publish_data_track",kind:"message",T:Uo,oneof:"request"},{no:11,name:"unpublish_data_track",kind:"message",T:Bo,oneof:"request"}]),Br=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"}]),Fm=p.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),$o=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}]),Bm=p.makeMessageType("livekit.JoinRequest",()=>[{no:1,name:"client_info",kind:"message",T:Io},{no:2,name:"connection_settings",kind:"message",T:$o},{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:Un,repeated:!0},{no:6,name:"publisher_offer",kind:"message",T:jt},{no:7,name:"reconnect",kind:"scalar",T:8},{no:8,name:"reconnect_reason",kind:"enum",T:p.getEnumType($t)},{no:9,name:"participant_sid",kind:"scalar",T:9},{no:10,name:"sync_state",kind:"message",T:Fr}]),jm=p.makeMessageType("livekit.WrappedJoinRequest",()=>[{no:1,name:"compression",kind:"enum",T:p.getEnumType(Vm)},{no:2,name:"join_request",kind:"scalar",T:12}]),Vm=p.makeEnum("livekit.WrappedJoinRequest.Compression",[{no:0,name:"NONE"},{no:1,name:"GZIP"}]),qm=p.makeMessageType("livekit.MediaSectionsRequirement",()=>[{no:1,name:"num_audios",kind:"scalar",T:13},{no:2,name:"num_videos",kind:"scalar",T:13}]),Km=p.makeEnum("livekit.EncodedFileType",[{no:0,name:"DEFAULT_FILETYPE"},{no:1,name:"MP4"},{no:2,name:"OGG"},{no:3,name:"MP3"}]),Wm=p.makeEnum("livekit.SegmentedFileProtocol",[{no:0,name:"DEFAULT_SEGMENTED_FILE_PROTOCOL"},{no:1,name:"HLS_PROTOCOL"}]),Hm=p.makeEnum("livekit.SegmentedFileSuffix",[{no:0,name:"INDEX"},{no:1,name:"TIMESTAMP"}]),Jm=p.makeEnum("livekit.ImageFileSuffix",[{no:0,name:"IMAGE_SUFFIX_INDEX"},{no:1,name:"IMAGE_SUFFIX_TIMESTAMP"},{no:2,name:"IMAGE_SUFFIX_NONE_OVERWRITE"}]),Gm=p.makeEnum("livekit.StreamProtocol",[{no:0,name:"DEFAULT_PROTOCOL"},{no:1,name:"RTMP"},{no:2,name:"SRT"}]),zm=p.makeEnum("livekit.AudioMixing",[{no:0,name:"DEFAULT_MIXING"},{no:1,name:"DUAL_CHANNEL_AGENT"},{no:2,name:"DUAL_CHANNEL_ALTERNATE"}]),Qo=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"}]),$m=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(zm)},{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:jr,oneof:"output"},{no:7,name:"stream",kind:"message",T:Xo,oneof:"output"},{no:10,name:"segments",kind:"message",T:Vr,oneof:"output"},{no:8,name:"preset",kind:"enum",T:p.getEnumType(Qo),oneof:"options"},{no:9,name:"advanced",kind:"message",T:Zo,oneof:"options"},{no:11,name:"file_outputs",kind:"message",T:jr,repeated:!0},{no:12,name:"stream_outputs",kind:"message",T:Xo,repeated:!0},{no:13,name:"segment_outputs",kind:"message",T:Vr,repeated:!0},{no:14,name:"image_outputs",kind:"message",T:Qm,repeated:!0},{no:16,name:"webhooks",kind:"message",T:dm,repeated:!0}]),jr=p.makeMessageType("livekit.EncodedFileOutput",()=>[{no:1,name:"file_type",kind:"enum",T:p.getEnumType(Km)},{no:2,name:"filepath",kind:"scalar",T:9},{no:6,name:"disable_manifest",kind:"scalar",T:8},{no:3,name:"s3",kind:"message",T:Oi,oneof:"output"},{no:4,name:"gcp",kind:"message",T:Ai,oneof:"output"},{no:5,name:"azure",kind:"message",T:Di,oneof:"output"},{no:7,name:"aliOSS",kind:"message",T:xi,oneof:"output"}]),Vr=p.makeMessageType("livekit.SegmentedFileOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(Wm)},{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(Hm)},{no:8,name:"disable_manifest",kind:"scalar",T:8},{no:5,name:"s3",kind:"message",T:Oi,oneof:"output"},{no:6,name:"gcp",kind:"message",T:Ai,oneof:"output"},{no:7,name:"azure",kind:"message",T:Di,oneof:"output"},{no:9,name:"aliOSS",kind:"message",T:xi,oneof:"output"}]),Qm=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(Jm)},{no:6,name:"image_codec",kind:"enum",T:p.getEnumType(Zh)},{no:7,name:"disable_manifest",kind:"scalar",T:8},{no:8,name:"s3",kind:"message",T:Oi,oneof:"output"},{no:9,name:"gcp",kind:"message",T:Ai,oneof:"output"},{no:10,name:"azure",kind:"message",T:Di,oneof:"output"},{no:11,name:"aliOSS",kind:"message",T:xi,oneof:"output"}]),Oi=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:Yo}]),Ai=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:Yo}]),Di=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}]),xi=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}]),Yo=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}]),Xo=p.makeMessageType("livekit.StreamOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(Gm)},{no:2,name:"urls",kind:"scalar",T:9,repeated:!0}]),Zo=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(Yh)},{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(Xh)},{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}]),Ym=p.makeMessageType("livekit.AutoParticipantEgress",()=>[{no:1,name:"preset",kind:"enum",T:p.getEnumType(Qo),oneof:"options"},{no:2,name:"advanced",kind:"message",T:Zo,oneof:"options"},{no:3,name:"file_outputs",kind:"message",T:jr,repeated:!0},{no:4,name:"segment_outputs",kind:"message",T:Vr,repeated:!0}]),Xm=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:Oi,oneof:"output"},{no:3,name:"gcp",kind:"message",T:Ai,oneof:"output"},{no:4,name:"azure",kind:"message",T:Di,oneof:"output"},{no:6,name:"aliOSS",kind:"message",T:xi,oneof:"output"}]),Zm=p.makeMessageType("livekit.RoomEgress",()=>[{no:1,name:"room",kind:"message",T:$m},{no:3,name:"participant",kind:"message",T:Ym},{no:2,name:"tracks",kind:"message",T:Xm}]),Li=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:Zm},{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:Or,repeated:!0}]),ef=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:Li,opt:!0}]),ec=p.makeMessageType("livekit.TokenSourceResponse",()=>[{no:1,name:"server_url",kind:"scalar",T:9},{no:2,name:"participant_token",kind:"scalar",T:9}]);function tf(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ni={exports:{}},nf=Ni.exports,tc;function rf(){return tc||(tc=1,(function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(nf,function(){var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],s={},c=null;function a(g,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 o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function d(g){return g==="debug"&&(g="log"),typeof console===t?!1:g==="trace"&&i?o:console[g]!==void 0?a(console,g):console.log!==void 0?a(console,"log"):e}function l(){for(var g=this.getLevel(),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 m(g,S){var k=this,P,I,y,b="loglevel";typeof g=="string"?b+=":"+g:typeof g=="symbol"&&(b=void 0);function T(U){var J=(r[U]||"silent").toUpperCase();if(!(typeof window===t||!b)){try{window.localStorage[b]=J;return}catch{}try{window.document.cookie=encodeURIComponent(b)+"="+J+";"}catch{}}}function x(){var U;if(!(typeof window===t||!b)){try{U=window.localStorage[b]}catch{}if(typeof U===t)try{var J=window.document.cookie,$=encodeURIComponent(b),w=J.indexOf($+"=");w!==-1&&(U=/^([^;]+)/.exec(J.slice(w+$.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 M(U){var J=U;if(typeof J=="string"&&k.levels[J.toUpperCase()]!==void 0&&(J=k.levels[J.toUpperCase()]),typeof J=="number"&&J>=0&&J<=k.levels.SILENT)return J;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??I??P},k.setLevel=function(U,J){return y=M(U),J!==!1&&T(y),l.call(k)},k.setDefaultLevel=function(U){I=M(U),x()||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(c!==k&&(P=M(c.getLevel())),l.call(k),c===k)for(var U in s)s[U].rebuild()},P=M(c?c.getLevel():"WARN");var N=x();N!=null&&(y=M(N)),l.call(k)}c=new m,c.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 m(S,c.methodFactory)),k};var v=typeof window!==t?window.log:void 0;return c.noConflict=function(){return typeof window!==t&&window.log===c&&(window.log=v),c},c.getLoggers=function(){return s},c.default=c,c})})(Ni)),Ni.exports}var Fn=rf(),vn;(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"})(vn||(vn={}));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=Fn.getLogger("livekit");const nc=Object.values(ze).map(n=>Fn.getLogger(n));G.setDefaultLevel(vn.info);function ot(n){const e=Fn.getLogger(n);return e.setDefaultLevel(G.getLevel()),e}function sf(n,e){if(e)Fn.getLogger(e).setLevel(n);else for(const t of nc)t.setLevel(n)}function af(n,e){(e?[e]:nc).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,c,a)=>{const o=r(s,c,a),d=vn[s],l=d>=c&&d<vn.silent;return(u,h)=>{h?o(u,h):o(u),l&&n(d,u,h)}},i.setLevel(i.getLevel())})}const of=Fn.getLogger("lk-e2ee"),Bn=7e3,cf=[0,300,4*300,9*300,16*300,Bn,Bn,Bn,Bn,Bn];class ic{constructor(e){this._retryDelays=e!==void 0?[...e]:cf}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 qr(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 f(n,e,t,i){function r(s){return s instanceof t?s:new t(function(c){c(s)})}return new(t||(t=Promise))(function(s,c){function a(l){try{d(i.next(l))}catch(u){c(u)}}function o(l){try{d(i.throw(l))}catch(u){c(u)}}function d(l){l.done?s(l.value):r(l.value).then(a,o)}d((i=i.apply(n,e||[])).next())})}function rc(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 Rt(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 rc=="function"?rc(n):n[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(s){t[s]=n[s]&&function(c){return new Promise(function(a,o){c=n[s](c),r(a,o,c.done,c.value)})}}function r(s,c,a,o){Promise.resolve(o).then(function(d){s({value:d,done:a})},c)}}typeof SuppressedError=="function"&&SuppressedError;var Ui={exports:{}},sc;function df(){if(sc)return Ui.exports;sc=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(b,T,x){return Function.prototype.apply.call(b,T,x)},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)}Ui.exports=s,Ui.exports.once=k,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function a(y){if(typeof y!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof y)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(y){if(typeof y!="number"||y<0||r(y))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+y+".");c=y}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(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 o(y){return y._maxListeners===void 0?s.defaultMaxListeners:y._maxListeners}s.prototype.getMaxListeners=function(){return o(this)},s.prototype.emit=function(b){for(var T=[],x=1;x<arguments.length;x++)T.push(arguments[x]);var F=b==="error",M=this._events;if(M!==void 0)F=F&&M.error===void 0;else if(!F)return!1;if(F){var N;if(T.length>0&&(N=T[0]),N instanceof Error)throw N;var U=new Error("Unhandled error."+(N?" ("+N.message+")":""));throw U.context=N,U}var J=M[b];if(J===void 0)return!1;if(typeof J=="function")e(J,this,T);else for(var $=J.length,w=v(J,$),x=0;x<$;++x)e(w[x],this,T);return!0};function d(y,b,T,x){var F,M,N;if(a(T),M=y._events,M===void 0?(M=y._events=Object.create(null),y._eventsCount=0):(M.newListener!==void 0&&(y.emit("newListener",b,T.listener?T.listener:T),M=y._events),N=M[b]),N===void 0)N=M[b]=T,++y._eventsCount;else if(typeof N=="function"?N=M[b]=x?[T,N]:[N,T]:x?N.unshift(T):N.push(T),F=o(y),F>0&&N.length>F&&!N.warned){N.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+N.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=y,U.type=b,U.count=N.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 x={fired:!1,wrapFn:void 0,target:y,type:b,listener:T},F=l.bind(x);return F.listener=T,x.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 x,F,M,N,U;if(a(T),F=this._events,F===void 0)return this;if(x=F[b],x===void 0)return this;if(x===T||x.listener===T)--this._eventsCount===0?this._events=Object.create(null):(delete F[b],F.removeListener&&this.emit("removeListener",b,x.listener||T));else if(typeof x!="function"){for(M=-1,N=x.length-1;N>=0;N--)if(x[N]===T||x[N].listener===T){U=x[N].listener,M=N;break}if(M<0)return this;M===0?x.shift():g(x,M),x.length===1&&(F[b]=x[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,x,F;if(x=this._events,x===void 0)return this;if(x.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):x[b]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete x[b]),this;if(arguments.length===0){var M=Object.keys(x),N;for(F=0;F<M.length;++F)N=M[F],N!=="removeListener"&&this.removeAllListeners(N);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(T=x[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 x=y._events;if(x===void 0)return[];var F=x[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):m.call(y,b)},s.prototype.listenerCount=m;function m(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),x=0;x<b;++x)T[x]=y[x];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,x){function F(N){y.removeListener(b,M),x(N)}function M(){typeof y.removeListener=="function"&&y.removeListener("error",F),T([].slice.call(arguments))}I(y,b,M,{once:!0}),b!=="error"&&P(y,F,{once:!0})})}function P(y,b,T){typeof y.on=="function"&&I(y,"error",b,T)}function I(y,b,T,x){if(typeof y.on=="function")x.once?y.once(b,T):y.on(b,T);else if(typeof y.addEventListener=="function")y.addEventListener(b,function F(M){x.once&&y.removeEventListener(b,F),T(M)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof y)}return Ui.exports}var vt=df();let ac=!0,oc=!0;function jn(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function Yt(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(c,a){if(c!==e)return r.apply(this,arguments);const o=d=>{const l=t(d);l&&(a.handleEvent?a.handleEvent(l):a(l))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(a,o),r.apply(this,[c,o])};const s=i.removeEventListener;i.removeEventListener=function(c,a){if(c!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(a))return s.apply(this,arguments);const o=this._eventMap[e].get(a);return this._eventMap[e].delete(a),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[c,o])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(c){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),c&&this.addEventListener(e,this["_on"+e]=c)},enumerable:!0,configurable:!0})}function lf(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(ac=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function uf(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(oc=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function cc(){if(typeof window=="object"){if(ac)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Kr(n,e){oc&&console.warn(n+" is deprecated, please use "+e+" instead.")}function hf(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(jn(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(jn(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(jn(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=jn(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function dc(n){return Object.prototype.toString.call(n)==="[object Object]"}function lc(n){return dc(n)?Object.keys(n).reduce(function(e,t){const i=dc(n[t]),r=i?lc(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function Wr(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Wr(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{Wr(n,n.get(r),t)})}))}function uc(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",r=new Map;if(e===null)return r;const s=[];return n.forEach(c=>{c.type==="track"&&c.trackIdentifier===e.id&&s.push(c)}),s.forEach(c=>{n.forEach(a=>{a.type===i&&a.trackId===c.id&&Wr(n,a,r)})}),r}const hc=cc;function mc(n,e){const t=n&&n.navigator;if(!t.mediaDevices)return;const i=function(a){if(typeof a!="object"||a.mandatory||a.optional)return a;const o={};return Object.keys(a).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const l=typeof a[d]=="object"?a[d]:{ideal:a[d]};l.exact!==void 0&&typeof l.exact=="number"&&(l.min=l.max=l.exact);const u=function(h,m){return h?h+m.charAt(0).toUpperCase()+m.slice(1):m==="deviceId"?"sourceId":m};if(l.ideal!==void 0){o.optional=o.optional||[];let h={};typeof l.ideal=="number"?(h[u("min",d)]=l.ideal,o.optional.push(h),h={},h[u("max",d)]=l.ideal,o.optional.push(h)):(h[u("",d)]=l.ideal,o.optional.push(h))}l.exact!==void 0&&typeof l.exact!="number"?(o.mandatory=o.mandatory||{},o.mandatory[u("",d)]=l.exact):["min","max"].forEach(h=>{l[h]!==void 0&&(o.mandatory=o.mandatory||{},o.mandatory[u(h,d)]=l[h])})}),a.advanced&&(o.optional=(o.optional||[]).concat(a.advanced)),o},r=function(a,o){if(e.version>=61)return o(a);if(a=JSON.parse(JSON.stringify(a)),a&&typeof a.audio=="object"){const d=function(l,u,h){u in l&&!(h in l)&&(l[h]=l[u],delete l[u])};a=JSON.parse(JSON.stringify(a)),d(a.audio,"autoGainControl","googAutoGainControl"),d(a.audio,"noiseSuppression","googNoiseSuppression"),a.audio=i(a.audio)}if(a&&typeof a.video=="object"){let d=a.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const l=e.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!l)){delete a.video.facingMode;let u;if(d.exact==="environment"||d.ideal==="environment"?u=["back","rear"]:(d.exact==="user"||d.ideal==="user")&&(u=["front"]),u)return t.mediaDevices.enumerateDevices().then(h=>{h=h.filter(v=>v.kind==="videoinput");let m=h.find(v=>u.some(g=>v.label.toLowerCase().includes(g)));return!m&&h.length&&u.includes("back")&&(m=h[h.length-1]),m&&(a.video.deviceId=d.exact?{exact:m.deviceId}:{ideal:m.deviceId}),a.video=i(a.video),hc("chrome: "+JSON.stringify(a)),o(a)})}a.video=i(a.video)}return hc("chrome: "+JSON.stringify(a)),o(a)},s=function(a){return e.version>=64?a:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[a.name]||a.name,message:a.message,constraint:a.constraint||a.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},c=function(a,o,d){r(a,l=>{t.webkitGetUserMedia(l,o,u=>{d&&d(s(u))})})};if(t.getUserMedia=c.bind(t),t.mediaDevices.getUserMedia){const a=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(o){return r(o,d=>a(d).then(l=>{if(d.audio&&!l.getAudioTracks().length||d.video&&!l.getVideoTracks().length)throw l.getTracks().forEach(u=>{u.stop()}),new DOMException("","NotFoundError");return l},l=>Promise.reject(s(l))))}}}function fc(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function pc(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("ontrack"in n.RTCPeerConnection.prototype)){Object.defineProperty(n.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=i=>{i.stream.addEventListener("addtrack",r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===r.track.id):s={track:r.track};const c=new Event("track");c.track=r.track,c.receiver=s,c.transceiver={receiver:s},c.streams=[i.stream],this.dispatchEvent(c)}),i.stream.getTracks().forEach(r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===r.id):s={track:r};const c=new Event("track");c.track=r,c.receiver=s,c.transceiver={receiver:s},c.streams=[i.stream],this.dispatchEvent(c)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Yt(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function gc(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("getSenders"in n.RTCPeerConnection.prototype)&&"createDTMFSender"in n.RTCPeerConnection.prototype){const e=function(r,s){return{track:s,get dtmf(){return this._dtmf===void 0&&(s.kind==="audio"?this._dtmf=r.createDTMFSender(s):this._dtmf=null),this._dtmf},_pc:r}};if(!n.RTCPeerConnection.prototype.getSenders){n.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(a,o){let d=r.apply(this,arguments);return d||(d=e(this,a),this._senders.push(d)),d};const s=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(a){s.apply(this,arguments);const o=this._senders.indexOf(a);o!==-1&&this._senders.splice(o,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(c=>{this._senders.push(e(this,c))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],i.apply(this,[s]),s.getTracks().forEach(c=>{const a=this._senders.find(o=>o.track===c);a&&this._senders.splice(this._senders.indexOf(a),1)})}}else if(typeof n=="object"&&n.RTCPeerConnection&&"getSenders"in n.RTCPeerConnection.prototype&&"createDTMFSender"in n.RTCPeerConnection.prototype&&n.RTCRtpSender&&!("dtmf"in n.RTCRtpSender.prototype)){const e=n.RTCPeerConnection.prototype.getSenders;n.RTCPeerConnection.prototype.getSenders=function(){const i=e.apply(this,[]);return i.forEach(r=>r._pc=this),i},Object.defineProperty(n.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function vc(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender&&n.RTCRtpReceiver))return;if(!("getStats"in n.RTCRtpSender.prototype)){const t=n.RTCPeerConnection.prototype.getSenders;t&&(n.RTCPeerConnection.prototype.getSenders=function(){const s=t.apply(this,[]);return s.forEach(c=>c._pc=this),s});const i=n.RTCPeerConnection.prototype.addTrack;i&&(n.RTCPeerConnection.prototype.addTrack=function(){const s=i.apply(this,arguments);return s._pc=this,s}),n.RTCRtpSender.prototype.getStats=function(){const s=this;return this._pc.getStats().then(c=>uc(c,s.track,!0))}}if(!("getStats"in n.RTCRtpReceiver.prototype)){const t=n.RTCPeerConnection.prototype.getReceivers;t&&(n.RTCPeerConnection.prototype.getReceivers=function(){const r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r}),Yt(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>uc(s,r.track,!1))}}if(!("getStats"in n.RTCRtpSender.prototype&&"getStats"in n.RTCRtpReceiver.prototype))return;const e=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof n.MediaStreamTrack){const i=arguments[0];let r,s,c;return this.getSenders().forEach(a=>{a.track===i&&(r?c=!0:r=a)}),this.getReceivers().forEach(a=>(a.track===i&&(s?c=!0:s=a),a.track===i)),c||r&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):r?r.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function yc(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(c=>this._shimmedLocalStreams[c][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(c,a){if(!a)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const o=e.apply(this,arguments);return this._shimmedLocalStreams[a.id]?this._shimmedLocalStreams[a.id].indexOf(o)===-1&&this._shimmedLocalStreams[a.id].push(o):this._shimmedLocalStreams[a.id]=[a,o],o};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(c){this._shimmedLocalStreams=this._shimmedLocalStreams||{},c.getTracks().forEach(d=>{if(this.getSenders().find(u=>u.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const a=this.getSenders();t.apply(this,arguments);const o=this.getSenders().filter(d=>a.indexOf(d)===-1);this._shimmedLocalStreams[c.id]=[c].concat(o)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[c.id],i.apply(this,arguments)};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},c&&Object.keys(this._shimmedLocalStreams).forEach(a=>{const o=this._shimmedLocalStreams[a].indexOf(c);o!==-1&&this._shimmedLocalStreams[a].splice(o,1),this._shimmedLocalStreams[a].length===1&&delete this._shimmedLocalStreams[a]}),r.apply(this,arguments)}}function bc(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return yc(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(m=>m.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 m=d._reverseStreams[h],v=d._streams[m.id];u=u.replace(new RegExp(v.id,"g"),m.id)}),new RTCSessionDescription({type:l.type,sdp:u})}function c(d,l){let u=l.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const m=d._reverseStreams[h],v=d._streams[m.id];u=u.replace(new RegExp(m.id,"g"),v.id)}),new RTCSessionDescription({type:l.type,sdp:u})}["createOffer","createAnswer"].forEach(function(d){const l=n.RTCPeerConnection.prototype[d],u={[d](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?l.apply(this,[v=>{const g=s(this,v);h[0].apply(null,[g])},v=>{h[1]&&h[1].apply(null,v)},arguments[2]]):l.apply(this,arguments).then(v=>s(this,v))}};n.RTCPeerConnection.prototype[d]=u[d]});const a=n.RTCPeerConnection.prototype.setLocalDescription;n.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?a.apply(this,arguments):(arguments[0]=c(this,arguments[0]),a.apply(this,arguments))};const o=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const d=o.get.apply(this);return d.type===""?d:s(this,d)}}),n.RTCPeerConnection.prototype.removeTrack=function(l){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!l._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(l._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(m=>{this._streams[m].getTracks().find(g=>l.track===g)&&(h=this._streams[m])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(l.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Hr(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 kc(n,e){Yt(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var Tc=Object.freeze({__proto__:null,fixNegotiationNeeded:kc,shimAddTrackRemoveTrack:bc,shimAddTrackRemoveTrackWithNative:yc,shimGetSendersWithDtmf:gc,shimGetUserMedia:mc,shimMediaStream:fc,shimOnTrack:pc,shimPeerConnection:Hr,shimSenderReceiverGetStats:vc});function Sc(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,c){Kr("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(r).then(s,c)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const r=function(c,a,o){a in c&&!(o in c)&&(c[o]=c[a],delete c[a])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(c){return typeof c=="object"&&typeof c.audio=="object"&&(c=JSON.parse(JSON.stringify(c)),r(c.audio,"autoGainControl","mozAutoGainControl"),r(c.audio,"noiseSuppression","mozNoiseSuppression")),s(c)},i&&i.prototype.getSettings){const c=i.prototype.getSettings;i.prototype.getSettings=function(){const a=c.apply(this,arguments);return r(a,"mozAutoGainControl","autoGainControl"),r(a,"mozNoiseSuppression","noiseSuppression"),a}}if(i&&i.prototype.applyConstraints){const c=i.prototype.applyConstraints;i.prototype.applyConstraints=function(a){return this.kind==="audio"&&typeof a=="object"&&(a=JSON.parse(JSON.stringify(a)),r(a,"autoGainControl","mozAutoGainControl"),r(a,"noiseSuppression","mozNoiseSuppression")),c.apply(this,[a])}}}}function mf(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 Cc(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 Jr(n,e){if(typeof n!="object"||!(n.RTCPeerConnection||n.mozRTCPeerConnection))return;!n.RTCPeerConnection&&n.mozRTCPeerConnection&&(n.RTCPeerConnection=n.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){const s=n.RTCPeerConnection.prototype[r],c={[r](){return arguments[0]=new(r==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};n.RTCPeerConnection.prototype[r]=c[r]});const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},i=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){const[s,c,a]=arguments;return i.apply(this,[s||null]).then(o=>{if(e.version<53&&!c)try{o.forEach(d=>{d.type=t[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;o.forEach((l,u)=>{o.set(u,Object.assign({},l,{type:t[l.type]||l.type}))})}return o}).then(c,a)}}function Ec(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 wc(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}),Yt(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Rc(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){Kr("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function Pc(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function _c(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.addTransceiver;e&&(n.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let i=arguments[1]&&arguments[1].sendEncodings;i===void 0&&(i=[]),i=[...i];const r=i.length>0;r&&i.forEach(c=>{if("rid"in c&&!/^[a-z0-9]{0,16}$/i.test(c.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in c&&!(parseFloat(c.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in c&&!(parseFloat(c.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(r){const{sender:c}=s,a=c.getParameters();(!("encodings"in a)||a.encodings.length===1&&Object.keys(a.encodings[0]).length===0)&&(a.encodings=i,c.sendEncodings=i,this.setParametersPromises.push(c.setParameters(a).then(()=>{delete c.sendEncodings}).catch(()=>{delete c.sendEncodings})))}return s})}function Ic(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 Mc(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 Oc(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 Ac=Object.freeze({__proto__:null,shimAddTransceiver:_c,shimCreateAnswer:Oc,shimCreateOffer:Mc,shimGetDisplayMedia:mf,shimGetParameters:Ic,shimGetUserMedia:Sc,shimOnTrack:Cc,shimPeerConnection:Jr,shimRTCDataChannel:Pc,shimReceiverGetStats:wc,shimRemoveStream:Rc,shimSenderGetStats:Ec});function Dc(n){if(!(typeof n!="object"||!n.RTCPeerConnection)){if("getLocalStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in n.RTCPeerConnection.prototype)){const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addStream=function(i){this._localStreams||(this._localStreams=[]),this._localStreams.includes(i)||this._localStreams.push(i),i.getAudioTracks().forEach(r=>e.call(this,r,i)),i.getVideoTracks().forEach(r=>e.call(this,r,i))},n.RTCPeerConnection.prototype.addTrack=function(i){for(var r=arguments.length,s=new Array(r>1?r-1:0),c=1;c<r;c++)s[c-1]=arguments[c];return s&&s.forEach(a=>{this._localStreams?this._localStreams.includes(a)||this._localStreams.push(a):this._localStreams=[a]}),e.apply(this,arguments)}}"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){this._localStreams||(this._localStreams=[]);const i=this._localStreams.indexOf(t);if(i===-1)return;this._localStreams.splice(i,1);const r=t.getTracks();this.getSenders().forEach(s=>{r.includes(s.track)&&this.removeTrack(s)})})}}function xc(n){if(!(typeof n!="object"||!n.RTCPeerConnection)&&("getRemoteStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in n.RTCPeerConnection.prototype))){Object.defineProperty(n.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=i=>{i.streams.forEach(r=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(r))return;this._remoteStreams.push(r);const s=new Event("addstream");s.stream=r,this.dispatchEvent(s)})})}});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){const i=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(s=>{if(i._remoteStreams||(i._remoteStreams=[]),i._remoteStreams.indexOf(s)>=0)return;i._remoteStreams.push(s);const c=new Event("addstream");c.stream=s,i.dispatchEvent(c)})}),e.apply(i,arguments)}}}function Lc(n){if(typeof n!="object"||!n.RTCPeerConnection)return;const e=n.RTCPeerConnection.prototype,t=e.createOffer,i=e.createAnswer,r=e.setLocalDescription,s=e.setRemoteDescription,c=e.addIceCandidate;e.createOffer=function(d,l){const u=arguments.length>=2?arguments[2]:arguments[0],h=t.apply(this,[u]);return l?(h.then(d,l),Promise.resolve()):h},e.createAnswer=function(d,l){const u=arguments.length>=2?arguments[2]:arguments[0],h=i.apply(this,[u]);return l?(h.then(d,l),Promise.resolve()):h};let a=function(o,d,l){const u=r.apply(this,[o]);return l?(u.then(d,l),Promise.resolve()):u};e.setLocalDescription=a,a=function(o,d,l){const u=s.apply(this,[o]);return l?(u.then(d,l),Promise.resolve()):u},e.setRemoteDescription=a,a=function(o,d,l){const u=c.apply(this,[o]);return l?(u.then(d,l),Promise.resolve()):u},e.addIceCandidate=a}function Nc(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(Uc(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function Uc(n){return n&&n.video!==void 0?Object.assign({},n,{video:lc(n.video)}):n}function Fc(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,r){if(i&&i.iceServers){const s=[];for(let c=0;c<i.iceServers.length;c++){let a=i.iceServers[c];a.urls===void 0&&a.url?(Kr("RTCIceServer.url","RTCIceServer.urls"),a=JSON.parse(JSON.stringify(a)),a.urls=a.url,delete a.url,s.push(a)):s.push(i.iceServers[c])}i.iceServers=s}return new e(i,r)},n.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(n.RTCPeerConnection,"generateCertificate",{get(){return e.generateCertificate}})}function Bc(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 jc(n){const e=n.RTCPeerConnection.prototype.createOffer;n.RTCPeerConnection.prototype.createOffer=function(i){if(i){typeof i.offerToReceiveAudio<"u"&&(i.offerToReceiveAudio=!!i.offerToReceiveAudio);const r=this.getTransceivers().find(c=>c.receiver.track.kind==="audio");i.offerToReceiveAudio===!1&&r?r.direction==="sendrecv"?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":r.direction==="recvonly"&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):i.offerToReceiveAudio===!0&&!r&&this.addTransceiver("audio",{direction:"recvonly"}),typeof i.offerToReceiveVideo<"u"&&(i.offerToReceiveVideo=!!i.offerToReceiveVideo);const s=this.getTransceivers().find(c=>c.receiver.track.kind==="video");i.offerToReceiveVideo===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):i.offerToReceiveVideo===!0&&!s&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Vc(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var qc=Object.freeze({__proto__:null,shimAudioContext:Vc,shimCallbacksAPI:Lc,shimConstraints:Uc,shimCreateOfferLegacy:jc,shimGetUserMedia:Nc,shimLocalStreamsAPI:Dc,shimRTCIceServerUrls:Fc,shimRemoteStreamsAPI:xc,shimTrackEventTransceiver:Bc}),Gr={exports:{}},Kc;function ff(){return Kc||(Kc=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
@@ -1,4 +1,4 @@
1
- import { c as ze, C as J, S as g, a as Be, b as Je, A as l, d as Qe, l as pe, e as We, t as qe, f as A, g as j, h as He, i as Xe, j as R, n as Ze } from "./index-X7k30sKJ.js";
1
+ import { c as ze, C as J, S as g, a as Be, b as Je, A as l, d as Qe, l as pe, e as We, t as qe, f as A, g as j, h as He, i as Xe, j as R, n as Ze } from "./index-PB3HZRnZ.js";
2
2
  function Ge() {
3
3
  try {
4
4
  return Intl.DateTimeFormat().resolvedOptions().timeZone ?? "";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@d-id/client-sdk",
3
3
  "private": false,
4
- "version": "2.0.1-staging.380",
4
+ "version": "2.0.2",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {