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