@d-id/client-sdk 1.2.5-staging.356 → 1.2.5-staging.357
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.
|
@@ -392,7 +392,7 @@ function Be(e) {
|
|
|
392
392
|
function he(e) {
|
|
393
393
|
return e instanceof G ? e.toJson() : { kind: "UnknownError", message: Bt(e) || "UnknownError" };
|
|
394
394
|
}
|
|
395
|
-
const Jt = "1.2.5-staging.
|
|
395
|
+
const Jt = "1.2.5-staging.357", Ot = "https://api-js.mixpanel.com/track/?verbose=1&ip=1", Ze = 50, Z = [];
|
|
396
396
|
let pe = !1;
|
|
397
397
|
async function et(e) {
|
|
398
398
|
const t = await fetch(Ot, {
|
|
@@ -1187,7 +1187,7 @@ async function yn(e, t, n, i) {
|
|
|
1187
1187
|
const { version: o, ...s } = t;
|
|
1188
1188
|
switch (s.transport.provider) {
|
|
1189
1189
|
case ke.Livekit:
|
|
1190
|
-
const { createLiveKitStreamingManager: r } = await import("./livekit-manager-
|
|
1190
|
+
const { createLiveKitStreamingManager: r } = await import("./livekit-manager-Ckez3DSR.js");
|
|
1191
1191
|
return r(c, s, n);
|
|
1192
1192
|
default:
|
|
1193
1193
|
throw new Error(`Unsupported transport provider: ${s.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-XlHLDT6U.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 vv=Object.defineProperty;var yv=(G,ke,dn)=>ke in G?vv(G,ke,{enumerable:!0,configurable:!0,writable:!0,value:dn}):G[ke]=dn;var Nt=(G,ke,dn)=>yv(G,typeof ke!="symbol"?ke+"":ke,dn);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 dn(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 ea extends ke{constructor(e){super(`Chat mode downgraded to ${e}`,"ChatModeDowngraded")}}function Vl(n){try{const e=JSON.parse(n);if(e&&typeof e=="object"&&typeof e.kind=="string")return e}catch{}}class ar extends ke{constructor(t,i,r={}){const s=Vl(i);super(((s==null?void 0:s.description)??i).slice(0,256),(s==null?void 0:s.kind)??"HttpError");Nt(this,"status");Nt(this,"url");Nt(this,"method");this.status=t,this.url=r.url,this.method=r.method}toJson(){return{...super.toJson(),httpStatus:this.status,...this.url?{endpoint:this.url}:{},...this.method?{method:this.method}:{}}}}class ta extends ke{constructor(t,i={}){super("Network request failed","NetworkError",t);Nt(this,"endpoint");Nt(this,"method");Nt(this,"durationMs");Nt(this,"online");Nt(this,"visibility");this.endpoint=i.url,this.method=i.method,this.durationMs=i.durationMs,this.online=i.online,this.visibility=i.visibility}toJson(){return{...super.toJson(),...this.endpoint?{endpoint:this.endpoint}:{},...this.method?{method:this.method}:{},...this.durationMs!==void 0?{durationMs:this.durationMs}:{},...this.online!==void 0?{online:this.online}:{},...this.visibility?{visibility:this.visibility}:{}}}}class di extends ke{constructor(e,t){super(e,"StreamError",t)}}class ze extends ke{constructor(e,t){super(e,"ValidationError"),this.key=t}}class na extends ke{constructor(e){super(e,"WSError")}}var ia=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(ia||{}),ra=(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))(ra||{}),sa=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(sa||{}),aa=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(aa||{}),_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||{}),oa=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(oa||{}),ca=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(ca||{}),da=(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))(da||{}),or=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(or||{});const ql=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||{}),li=(n=>(n.Livekit="livekit",n))(li||{}),la=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(la||{}),ua=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(ua||{});const Kl=(...n)=>{},ha=n=>new Promise(e=>setTimeout(e,n)),Gt=(n=16)=>{const e=new Uint8Array(n);return window.crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").slice(0,13)};function cr(n){if(n!==void 0)return window.localStorage.setItem("did_external_key_id",n),n;let e=window.localStorage.getItem("did_external_key_id");if(!e){let t=Gt();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let ui=Gt();function Wl(){ui=Gt()}function ma(n,e){if(n.type==="bearer")return`Bearer ${n.token}~${ui}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}~${ui}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${cr(e)}_${ui}`;throw new Error(`Unknown auth type: ${n}`)}const Hl=45*1e3,Jl="X-Playground-Chat",fa=2e3,Mn="https://api.d-id.com",Gl="wss://notifications.d-id.com",zl="79f81a83a67430be2bc0fd61042b8faa",pa=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,$l=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,dr=n=>n===or.Expressive,Yl=n=>[_e.TextOnly,_e.Playground,_e.Maintenance].includes(n),ga=n=>n&&[_e.DirectPlayback,_e.Off].includes(n),va=/\[!\[([^\[\]]*)\]\(([^)\s]+)\)\]\(([^)\s]+)\)/g,ya=/!\[([^\[\]]*)\]\(([^)\s]+)\)/g,Xl=[".mp4",".webm",".mkv",".mov",".m4v",".ogv"];function Zl(n){const e=n.split("?")[0].split("#")[0].toLowerCase();return Xl.some(t=>e.endsWith(t))}const ba=new RegExp("(?<!!)\\[([^\\[\\]]+)\\]\\(([^)\\s]+)\\)","g"),ka=/<a\s+href="([^"]*)"[^>]*?>([^<]*)<\/a>/gi;function Ta(n){if(n.length===0)return[];const e=[];let t;for(va.lastIndex=0;(t=va.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(ya.lastIndex=0;(t=ya.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;Zl(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(ba.lastIndex=0;(t=ba.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(ka.lastIndex=0;(t=ka.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 Sa="",lr=[];function On(n){return n===Sa||(Sa=n,lr=Ta(n)),lr}function eu(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function ur(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}=eu(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 ha(t.delayMs),t.onRetry(s)}throw i}const tu=n=>ur(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function hr(n,e=Mn,t,i){const r=async(s,o)=>{const{skipErrorHandler:a,...c}=o||{},d=c.method??"GET",l=performance.now();let u;try{u=await tu(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...c,headers:{...c.headers,Authorization:ma(n,i),"Content-Type":"application/json"}}))}catch(h){if((h==null?void 0:h.name)==="AbortError")throw h;const v=new ta(h,{url:s,method:d,durationMs:Math.round(performance.now()-l),online:typeof navigator<"u"?navigator.onLine:void 0,visibility:typeof document<"u"?document.visibilityState:void 0});throw a||t==null||t(v,{url:s,options:c}),v}if(!u.ok){const h=await u.text().catch(()=>`Failed to fetch with status ${u.status}`),m=new ar(u.status,h,{url:s,method:d});throw a||t==null||t(m,{url:s,options:c,headers:u.headers}),m}return u.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 nu(n,e=Mn,t,i){const r=hr(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 iu(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:pa(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 ru(n){var t,i,r,s,o,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:pa(n.presenter),presenterType:$l(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 su=n=>{try{return String((n==null?void 0:n.message)??n??"").slice(0,256)}catch{return"Unknown error"}},au=n=>n.reduce((e,t)=>e+t,0),Ca=n=>au(n)/n.length,Ea=n=>Math.min(...n),wa=n=>Math.max(...n),hi=(n,e=0)=>{const t=10**e;return Math.round(n*t)/t},ou=(n,e)=>{const t=[...n].sort((i,r)=>i-r);return t[Math.min(t.length-1,Math.floor(e*(t.length-1)))]},cu=n=>ou(n,.5),du=(n,e)=>{try{return n()}catch{return e}};function lu(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 Ra(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}function mi(n){return n instanceof ke?n.toJson():{kind:"UnknownError",message:su(n)||"UnknownError"}}const _a="1.2.5-staging.356",uu="https://api-js.mixpanel.com/track/?verbose=1&ip=1",Pa=50,zt=[];let mr=!1;async function Ia(n){const e=await fetch(uu,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify(n)})});if(!e.ok)throw new Error(`Mixpanel responded with ${e.status}`)}function hu(n){zt.push(n),zt.splice(Pa)}function fr(){if(mr||!zt.length)return;mr=!0;const n=zt.splice(0,zt.length);Ia(n).catch(()=>{zt.unshift(...n),zt.splice(Pa)}).finally(()=>{mr=!1})}typeof window<"u"&&typeof window.addEventListener=="function"&&(window.addEventListener("online",fr),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&fr()}));function mu(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:cr(n.externalId),agentId:n.agentId,additionalProperties:{id:cr(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Gt,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:o,...a}=r||{},c=s||Date.now(),d={event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,emittedBy:"agents-sdk",sdkVersion:_a,token:this.token,time:c,$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerHeight,"Screen Width":window.screen.width||window.innerWidth,"User Agent":navigator.userAgent}};return fr(),Ia([d]).catch(()=>hu(d)),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 pr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const pt=pr(),gr=pr(),Ma=pr();function Oa(n){return n===_e.Playground?{headers:{[Jl]:"true"}}:{}}async function Da(n,e,t,i,r=!1,s){return!s&&!ga(i)&&(s=await e.newChat(n.id,{persist:r},Oa(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}function fu(n){return n&&n.length>0?n:[]}function pu(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(ma(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 gu(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 pu(n)}catch(r){if(i===e)throw r;await ha(i*500)}return t}async function vu(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await gu({auth:n,host:e,externalId:i,callbacks:{onError:o=>{var a;return(a=t.onError)==null?void 0:a.call(t,new na(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 Aa(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function yu(n,e,t){if(!n.content)return;const i={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,parts:On(n.content),created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(i),t==null||t([...e.messages],"user")}function bu(n,e,t,i,r,s,o){if(n===xe.Transcribe&&e.content){yu(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=Aa(t);!!(u&&u.length<v.length)&&(l.interrupted=!0),t.answer=u}const m=Aa(t);(l.content!==m||n===xe.Answer)&&(l.content=m,l.parts=On(m),r==null||r([...i.messages],n))}function ku(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;bu(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=lu(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 di(`Stream failed with event ${d}`),{data:l})),l.event===m.StreamDone&&r()}}}}function Tu(n,e,t,i){const r=hr(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 xa=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),Su=45;function Cu(n){const e=n.map(c=>c.av).filter(c=>!!c&&c.audioPlayout>0&&c.videoPlayout>0);if(e.length<2)return null;const t=e[0].localTs,i=e[e.length-1].localTs-t,r=e.map(c=>c.audioPlayout-c.videoPlayout),s=r.filter(c=>c>Su||c<-100),o=e.filter(c=>c.localTs-t>=Math.min(5e3,i/2)),a=(o.length?o:e).map(c=>c.audioPlayout-c.videoPlayout);return{sampleCount:e.length,durationMs:hi(i),desyncDurationMs:hi(i*(s.length/r.length)),maxOffsetMs:hi(r.reduce((c,d)=>Math.abs(d)>Math.abs(c)?d:c)),residualOffsetMs:hi(cu(a))}}function Eu(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 wu(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 Ru(n){var c;let e="",t=0,i=null,r=null;const s=new Map;for(const d of n.values())if(d)if(d.type==="codec"&&((c=d.mimeType)!=null&&c.startsWith("video")))s.set(d.id,d.mimeType.split("/")[1]);else if(d.type==="candidate-pair"){const l=d,u=l.currentRoundTripTime??0;u>0&&(l.nominated===!0||t===0)&&(t=u)}else d.type==="inbound-rtp"&&d.kind==="video"?i=d:d.type==="inbound-rtp"&&d.kind==="audio"&&(r=d);if(!i)return{};const o=i;o.codecId&&s.has(o.codecId)?e=s.get(o.codecId):s.size>0&&(e=s.values().next().value??"");const a={codec:e,rtt:t,timestamp:o.timestamp,bytesReceived:o.bytesReceived,packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,frameWidth:o.frameWidth,frameHeight:o.frameHeight,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.totalFreezesDuration};return r&&(a.av={audioPlayout:r.estimatedPlayoutTimestamp??0,videoPlayout:o.estimatedPlayoutTimestamp??0,localTs:o.timestamp}),a}function La(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=wu(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,avSync:du(()=>Cu(n),null),minRtt:Ea(a),avgRtt:Ca(a),maxRtt:wa(a),aggregateReport:Eu(n[0],n[n.length-1],s),minJitterDelayInInterval:Ea(o),maxJitterDelayInInterval:wa(o),avgJitterDelayInInterval:Ca(o)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function Na(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 Dn=10;function _u(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,Dn);return}const l=Na(d,"audio");if(!l){r=setTimeout(c,Dn);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,o=h,i=!0,r=setTimeout(c,Dn);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,Dn))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(c,Dn)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const fi=100,Pu=Math.max(Math.ceil(400/fi),1),Iu=.25,Mu=.28;function Ou(){let n=0,e,t,i=0;return r=>{const s=Na(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 Ua(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=Ou();async function g(){const S=await n();if(!S)return;const{isReceiving:k,avgJitterDelayInInterval:R,freezeCount:_}=v(S),y=Ru(S);if(k)c=0,h=_-m,u=R<Iu?rt.Strong:R>Mu&&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>=Pu)){const b=La(o,fi,a);i==null||i(Z.Stop,b),e()||t(),m=_,d=!1}}return{start:()=>{s||(s=setInterval(g,fi))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>La(o,fi,a)}}const Du=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function Fa(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 Au=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function xu({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 Lu({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 Ba({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:o}){r===st.Legacy?xu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:o}):r===st.Fluent&&Lu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:o})}async function Nu(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Mn,analytics:o},a){var Ae;const c=xa(t,"WebRTCStreamingManager"),d=Au(c);let l=!1,u=!1,h=Z.Stop,m=Z.Stop;const{startConnection:v,sendStreamRequest:g,close:S,createStream:k,addIceCandidate:R}=Tu(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 Du({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=Ua(()=>O.getStats(),se,Ce,(j,V)=>Ba({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 q=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;q(ae.videoId)}j===Q.StreamDone&&q(null),h=j===Q.StreamStarted?Z.Start:Z.Stop,Ba({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=Fa(O.iceConnectionState);j!==de.Connected&&((V=i.onConnectionStateChange)==null||V.call(i,j,`webrtc:ice-${O.iceConnectionState}`))},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 di("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=Fa(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 vr=(n=>(n.V1="v1",n.V2="v2",n))(vr||{});async function Uu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...o}=e;return Nu(r,o,t,i)}case"v2":{const{version:s,...o}=e;switch(o.transport.provider){case li.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>eh);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 Fu="cht";function Bu(){return{transport:{provider:li.Livekit}}}function ju(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 Vu(n,e){return dr(n.presenter.type)?{version:vr.V2,...Bu()}:{version:vr.V1,...ju(e)}}function qu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function Ku(n,e,t,i,r){r===st.Fluent?Wu(n,e,t,i,r):Hu(n,e,t,i,r)}function Wu(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 ja(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 Hu(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 Ju(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 Va(n,e,t,i){return pt.reset(),Ma.update(),new Promise(async(r,s)=>{try{let o,a=!1;const c=Vu(n,e);t.enrich({"stream-version":c.version.toString()});let d=null;const l=n.presenter.type==="expressive";o=await Uu(n,c,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var m,v;(v=(m=e.callbacks).onConnectionStateChange)==null||v.call(m,u),qu(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),Ku(u,n,h,t,o.streamType)},onAgentActivityStateChange:u=>{var h,m;(m=(h=e.callbacks).onAgentActivityStateChange)==null||m.call(h,u),u===Ie.Talking?(gr.update(),d=v=>{ja(Z.Start,n,t,o.streamType,v),d=null},l||d({latency:pt.get(!0)})):(gr.reset(),d=null,ja(Z.Stop,n,t,o.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=Ma.get(!0);t.track("agent-chat",{event:"ready",latency:u})},onToolEvent:((u,h)=>{var m,v;(v=(m=e.callbacks).onToolEvent)==null||v.call(m,u,h),Ju(u,h,t)})}},i),a&&r(o)}catch(o){s(o)}})}async function Gu(n,e,t,i,r){var l,u,h,m;const s=async()=>{if(dr(n.presenter.type)){const v=await Va(n,e,i),g=`${Fu}_${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=Da(n,t,i,e.mode,e.persistentChat,r),R=Va(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 ea(d)),a==null||a.disconnect(),{chat:c}):{chat:c,streamingManager:a}}async function zu(n,e){var U,W,se,Ce;let t=!0;const i=e.mixpanelKey||zl,r=e.wsURL||Gl,s=e.baseURL||Mn,o=e.mode||_e.Functional,a={messages:[],chatMode:o},c=mu({token:i,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),d=Date.now();Ra(()=>{c.track("agent-sdk",{event:"init"},d)});const l=e.callbacks.onError;e.callbacks.onError=(P,B)=>{c.track("agent-error",{error:mi(P)}),l==null||l(P,B)};const u=nu(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=dr(h.presenter.type);c.enrich(ru(h));const{onMessage:v,clearQueue:g}=ku(c,a,e,h,()=>{var P,B,q;(P=a.socketManager)==null||P.disconnect(),(q=(B=e.callbacks).onConnectionStateChange)==null||q.call(B,de.Disconnected)});a.messages=fu(e.initialMessages),(se=(W=e.callbacks).onNewMessage)==null||se.call(W,[...a.messages],"answer");const S=P=>{c.enrich({videoId:P})},k=({type:P})=>{var q,ee,re,ne;if(!((q=a.streamingManager)!=null&&q.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:gr.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 q=R.get(P);if(!q)throw new Error(`No handler registered for client tool: ${P}`);try{const ee=JSON.parse(B.payload);return await q(ee)}catch(ee){throw new Error(`Client tool "${P}" failed: ${ee.message}`)}}}function y(){var P,B,q,ee;for(const[re]of R)(B=(P=a.streamingManager)==null?void 0:P.unregisterRpcMethod)==null||B.call(P,re),(ee=(q=a.streamingManager)==null?void 0:q.registerRpcMethod)==null||ee.call(q,re,_(re))}function b(P,B){var ee,re;const q=!R.has(P);R.set(P,B),q&&((re=(ee=a.streamingManager)==null?void 0:ee.registerRpcMethod)==null||re.call(ee,P,_(P)))}function T(P){var B,q;R.delete(P),(q=(B=a.streamingManager)==null?void 0:B.unregisterRpcMethod)==null||q.call(B,P)}const N=Date.now();Ra(()=>{c.track("agent-sdk",{event:"loaded",...iu(h)},N)});async function F(P){var we,Ue,Ae,j,V,ae,Ge;Wl(),(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):vu(e.auth,r,{onMessage:v,onError:e.callbacks.onError},e.externalId),q=ur(()=>Gu(h,{...e,mode:o,callbacks:{...e.callbacks,onVideoIdChange:S,onMessage:v}},u,c,a.chat),{limit:3,timeout:Hl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:mt=>(mt==null?void 0:mt.message)!=="Could not connect"&&!(mt instanceof ar&&(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,q]);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,q,ee;(P=a.socketManager)==null||P.disconnect(),await((B=a.streamingManager)==null?void 0:B.disconnect()),delete a.streamingManager,delete a.socketManager,(ee=(q=e.callbacks).onConnectionStateChange)==null||ee.call(q,de.Disconnected)}async function D(P){var B,q;P!==a.chatMode&&(c.track("agent-mode-change",{mode:P}),a.chatMode=P,a.chatMode!==_e.Functional&&await O(),(q=(B=e.callbacks).onModeChange)==null||q.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;let B;if(m&&(P!=null&&P.reconnect))try{await P.reconnect()}catch(q){B=mi(q).kind,await O(),await F(!1)}else await O(),await F(!1);c.track("agent-chat",{event:"reconnect",mode:a.chatMode,success:!0,...B&&{fallbackReason:B}})},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(ga(o))throw new ze(`${o} is enabled, chat is disabled`);if(P.length>=fa)throw new ze(`Message cannot be more than ${fa} 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")}},q=async()=>{var j,V;if(!a.chat){const ae=await Da(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 ur(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:zs,...Pn})=>Pn)},{...Oa(a.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Re=>{var Pn,sr,si,ai;const it=(Pn=Re==null?void 0:Re.message)==null?void 0:Pn.includes("missing or invalid session_id");return!((sr=Re==null?void 0:Re.message)==null?void 0:sr.includes("Stream Error"))&&!it?((ai=(si=e.callbacks).onError)==null||ai.call(si,Re),!1):!0},onRetry:async()=>{await O(),await F(!1)}})};try{g(),B(),a.messages.push({id:Gt(),role:"user",content:P,parts:On(P),created_at:new Date(pt.update()).toISOString()}),(ne=(re=e.callbacks).onNewMessage)==null||ne.call(re,[...a.messages],"user");const j=await q(),V=await ee([...a.messages],j);return V.result&&a.messages.push({id:Gt(),role:"assistant",content:V.result,parts:On(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:mi(j)}),j}},rate(P,B,q){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:q?"update":"create",thumb:B===1?"up":"down",knowledge_id:((we=h.knowledge)==null?void 0:we.id)??"",matches:re,score:B}),q?u.updateRating(h.id,a.chat.id,q,{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 q=B();if(c.track("agent-speak",q),pt.update(),a.messages&&q.type==="text"&&(a.messages.push({id:Gt(),role:"assistant",content:q.input,parts:On(q.input),created_at:new Date().toISOString()}),(ne=(re=e.callbacks).onNewMessage)==null||ne.call(re,[...a.messages],"answer")),Yl(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:q,metadata:{chat_id:(we=a.chat)==null?void 0:we.id,agent_id:h.id}})},interrupt:k,registerClientTool:b,unregisterClientTool:T}}function $u(n,e,t,i){const r=hr(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const Qu={[Q.ChatAnswer]:xe.Answer,[Q.ChatPartial]:xe.Partial},qa=2e4;async function Yu(){try{return await Promise.resolve().then(()=>uv)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Xu={excellent:rt.Strong,good:rt.Strong,poor:rt.Weak,lost:rt.Unknown,unknown:rt.Unknown},ln=(n="Stream Error")=>new di(n);function yr(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 Zu(n,e,t){var Nl;const i=xa(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:o,Track:a}=await Yu(),{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=$u(d,l||Mn,n,c.onError);let D,U,W,se=!0;try{const w=await O.createStream({transport:e.transport,chat_persist:e.chat_persist??!0,verbose:t.verbose??!1}),{id:A,session_token:H,session_url:J,interrupt_enabled:ce}=w;(Nl=c.onStreamCreated)==null||Nl.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){yr(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,q).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,zs).on(s.TrackSubscriptionFailed,Pn);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 ${qa/1e3} seconds after connect`),T=null;const w=ln("Track subscription timeout");u.track("connectivity-error",{error:mi(w),sessionId:D}),(A=c.onError)==null||A.call(c,w,{sessionId:D}),Xs("internal:track-subscription-timeout")},qa)}catch(w){yr(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,Xu[w]))}function q(w){i("Participant connected:",w.identity)}function ee(w){i("Participant disconnected:",w.identity),Xs("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"&&(_=_u(()=>w.getRTCStatsReport(),({sttLatency:ge,serviceLatency:ft})=>{var Ul,Fl,Bl;const oi=pt.get(!0);let ci=0;if(ge){const jl=((Fl=(Ul=R==null?void 0:R.getReport())==null?void 0:Ul.webRTCStats)==null?void 0:Fl.avgRtt)??0;ci=jl>0?Math.round(jl*1e3):0}const In=oi>0?oi+(ge??0)+ci:void 0,Lt=In!==void 0&&ft!==void 0?In-ft:void 0;(Bl=c.onFirstAudioDetected)==null||Bl.call(c,{latency:In,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=Ua(()=>w.getRTCStatsReport(),()=>m,Kl,(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=Qu[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,ln(),{sessionId:D})}function zs(w){var A;i("Encryption error:",w),(A=c.onError)==null||A.call(c,ln(),{sessionId:D})}function Pn(w,A,H){i("Track subscription failed:",{trackSid:w,participant:A,reason:H})}function sr(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 si(w,A,H,J,ce,ue){var oi,ci,In;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=sr(ge,J,ce());if(ft){i(`${J} track is already published, skipping`,{trackId:ge.id,publishedTrackId:(ci=(oi=ft.track)==null?void 0:oi.mediaStreamTrack)==null?void 0:ci.id}),w.publication=ft;return}if((In=w.publication)!=null&&In.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 ai(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 hv(w){return si(S,w,A=>A.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,$s)}async function $s(){return ai(S,"Microphone")}async function mv(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 fv(w){return si(k,w,A=>A.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Qs)}async function Qs(){return ai(k,"Camera")}function pv(){g&&(g.getTracks().forEach(w=>w.stop()),g=null)}async function Ys(w,A){var H,J;if(!m||!h){i("Room is not connected for sending messages"),(H=c.onError)==null||H.call(c,ln(),{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,ln(),{sessionId:D})}}async function Ll(w){var A;try{const J=JSON.parse(w).topic;return Ys("",J)}catch(H){i("Failed to send data channel message:",H),(A=c.onError)==null||A.call(c,ln(),{sessionId:D})}}function gv(w){return Ys(w,"lk.chat")}async function Xs(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([$s(),Qs()]),await h.disconnect()),pv(),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 Ys(A,"did.speak")},disconnect:()=>Xs("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:Ll,sendTextMessage:gv,publishMicrophoneStream:hv,unpublishMicrophoneStream:$s,replaceMicrophoneTrack:mv,publishCameraStream:fv,unpublishCameraStream:Qs,interrupt(w){w!=="text"&&Ll(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 eh=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:Zu,handleInitError:yr},Symbol.toStringTag,{value:"Module"}));function th(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var nh=Object.defineProperty,ih=(n,e,t)=>e in n?nh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ka=(n,e,t)=>ih(n,typeof e!="symbol"?e+"":e,t);class Le{constructor(){Ka(this,"_locking"),Ka(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 rh=34028234663852886e22,sh=-34028234663852886e22,ah=4294967295,oh=2147483647,ch=-2147483648;function pi(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>oh||n<ch)throw new Error("invalid int 32: "+n)}function br(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>ah||n<0)throw new Error("invalid uint 32: "+n)}function Wa(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>rh||n<sh))throw new Error("invalid float 32: "+n)}const Ha=Symbol("@bufbuild/protobuf/enum-type");function dh(n){const e=n[Ha];return ve(e,"missing enum type on enum object"),e}function Ja(n,e,t,i){n[Ha]=Ga(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function Ga(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const o of e){const a=za(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 lh(n,e,t){const i={};for(const r of e){const s=za(r);i[s.localName]=s.no,i[s.no]=s.localName}return Ja(i,n,e),i}function za(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class kr{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),r=i.runtime.bin,s=r.makeReadOptions(t);return r.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,t){const i=this.getType(),r=i.runtime.json,s=r.makeReadOptions(t);return r.readMessage(i,e,s,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(r){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(r instanceof Error?r.message:String(r)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,r=i.makeWriteOptions(e),s=r.writerFactory();return i.writeMessage(this,s,r),s.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,r=i.makeWriteOptions(e);return i.writeMessage(this,r)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function uh(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),o={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new kr),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 hh(){let n=0,e=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(n|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function Tr(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 gi=4294967296;function $a(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>=gi&&(r=r+(i/gi|0),i=i%gi)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Ya(i,r):Sr(i,r)}function mh(n,e){let t=Sr(n,e);const i=t.hi&2147483648;i&&(t=Ya(t.lo,t.hi));const r=Qa(t.lo,t.hi);return i?"-"+r:r}function Qa(n,e){if({lo:n,hi:e}=fh(n,e),e<=2097151)return String(gi*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,o=i+r*8147497,a=r*2;const c=1e7;return s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c),a.toString()+Xa(o)+Xa(s)}function fh(n,e){return{lo:n>>>0,hi:e>>>0}}function Sr(n,e){return{lo:n|0,hi:e|0}}function Ya(n,e){return e=~e,n?n=~n+1:e+=1,Sr(n,e)}const Xa=n=>{const e=String(n);return"0000000".slice(e.length)+e};function Za(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function ph(){let n=this.buf[this.pos++],e=n&127;if((n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,(n&128)==0)return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;(n&128)!==0&&t<10;t++)n=this.buf[this.pos++];if((n&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function gh(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),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),$a(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),$a(r)},dec(r,s){return mh(r,s)},uDec(r,s){return Qa(r,s)}}}const me=gh();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 Ut;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Ut||(Ut={}));function Ft(n,e,t){if(e===t)return!0;if(n==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 un(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 eo(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 vh{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),i=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(br(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return pi(e),Za(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){Wa(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){br(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){pi(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return pi(e),e=(e<<1^e>>31)>>>0,Za(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 Tr(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 Tr(r,s,this.buf),this}uint64(e){let t=me.uEnc(e);return Tr(t.lo,t.hi,this.buf),this}}class yh{constructor(e,t){this.varint64=hh,this.uint32=ph,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case 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 bh(n,e,t,i){let r;return{typeName:e,extendee:t,get field(){if(!r){const s=typeof i=="function"?i():i;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),r=n.util.newFieldList([s]).list()[0]}return r},runtime:n}}function to(n){const e=n.field.localName,t=Object.create(null);return t[e]=kh(n),[t,()=>t[e]]}function kh(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return un(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function Th(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let wt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),vi=[];for(let n=0;n<wt.length;n++)vi[wt[n].charCodeAt(0)]=n;vi[45]=wt.indexOf("+"),vi[95]=wt.indexOf("/");const no={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=vi[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 vv=Object.defineProperty;var yv=(G,ke,dn)=>ke in G?vv(G,ke,{enumerable:!0,configurable:!0,writable:!0,value:dn}):G[ke]=dn;var Nt=(G,ke,dn)=>yv(G,typeof ke!="symbol"?ke+"":ke,dn);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 dn(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 ea extends ke{constructor(e){super(`Chat mode downgraded to ${e}`,"ChatModeDowngraded")}}function Vl(n){try{const e=JSON.parse(n);if(e&&typeof e=="object"&&typeof e.kind=="string")return e}catch{}}class ar extends ke{constructor(t,i,r={}){const s=Vl(i);super(((s==null?void 0:s.description)??i).slice(0,256),(s==null?void 0:s.kind)??"HttpError");Nt(this,"status");Nt(this,"url");Nt(this,"method");this.status=t,this.url=r.url,this.method=r.method}toJson(){return{...super.toJson(),httpStatus:this.status,...this.url?{endpoint:this.url}:{},...this.method?{method:this.method}:{}}}}class ta extends ke{constructor(t,i={}){super("Network request failed","NetworkError",t);Nt(this,"endpoint");Nt(this,"method");Nt(this,"durationMs");Nt(this,"online");Nt(this,"visibility");this.endpoint=i.url,this.method=i.method,this.durationMs=i.durationMs,this.online=i.online,this.visibility=i.visibility}toJson(){return{...super.toJson(),...this.endpoint?{endpoint:this.endpoint}:{},...this.method?{method:this.method}:{},...this.durationMs!==void 0?{durationMs:this.durationMs}:{},...this.online!==void 0?{online:this.online}:{},...this.visibility?{visibility:this.visibility}:{}}}}class di extends ke{constructor(e,t){super(e,"StreamError",t)}}class ze extends ke{constructor(e,t){super(e,"ValidationError"),this.key=t}}class na extends ke{constructor(e){super(e,"WSError")}}var ia=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(ia||{}),ra=(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))(ra||{}),sa=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(sa||{}),aa=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(aa||{}),_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||{}),oa=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(oa||{}),ca=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(ca||{}),da=(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))(da||{}),or=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(or||{});const ql=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||{}),li=(n=>(n.Livekit="livekit",n))(li||{}),la=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(la||{}),ua=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(ua||{});const Kl=(...n)=>{},ha=n=>new Promise(e=>setTimeout(e,n)),Gt=(n=16)=>{const e=new Uint8Array(n);return window.crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").slice(0,13)};function cr(n){if(n!==void 0)return window.localStorage.setItem("did_external_key_id",n),n;let e=window.localStorage.getItem("did_external_key_id");if(!e){let t=Gt();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let ui=Gt();function Wl(){ui=Gt()}function ma(n,e){if(n.type==="bearer")return`Bearer ${n.token}~${ui}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}~${ui}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${cr(e)}_${ui}`;throw new Error(`Unknown auth type: ${n}`)}const Hl=45*1e3,Jl="X-Playground-Chat",fa=2e3,Mn="https://api.d-id.com",Gl="wss://notifications.d-id.com",zl="79f81a83a67430be2bc0fd61042b8faa",pa=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,$l=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,dr=n=>n===or.Expressive,Yl=n=>[_e.TextOnly,_e.Playground,_e.Maintenance].includes(n),ga=n=>n&&[_e.DirectPlayback,_e.Off].includes(n),va=/\[!\[([^\[\]]*)\]\(([^)\s]+)\)\]\(([^)\s]+)\)/g,ya=/!\[([^\[\]]*)\]\(([^)\s]+)\)/g,Xl=[".mp4",".webm",".mkv",".mov",".m4v",".ogv"];function Zl(n){const e=n.split("?")[0].split("#")[0].toLowerCase();return Xl.some(t=>e.endsWith(t))}const ba=new RegExp("(?<!!)\\[([^\\[\\]]+)\\]\\(([^)\\s]+)\\)","g"),ka=/<a\s+href="([^"]*)"[^>]*?>([^<]*)<\/a>/gi;function Ta(n){if(n.length===0)return[];const e=[];let t;for(va.lastIndex=0;(t=va.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(ya.lastIndex=0;(t=ya.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;Zl(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(ba.lastIndex=0;(t=ba.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(ka.lastIndex=0;(t=ka.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 Sa="",lr=[];function On(n){return n===Sa||(Sa=n,lr=Ta(n)),lr}function eu(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function ur(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}=eu(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 ha(t.delayMs),t.onRetry(s)}throw i}const tu=n=>ur(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function hr(n,e=Mn,t,i){const r=async(s,o)=>{const{skipErrorHandler:a,...c}=o||{},d=c.method??"GET",l=performance.now();let u;try{u=await tu(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...c,headers:{...c.headers,Authorization:ma(n,i),"Content-Type":"application/json"}}))}catch(h){if((h==null?void 0:h.name)==="AbortError")throw h;const v=new ta(h,{url:s,method:d,durationMs:Math.round(performance.now()-l),online:typeof navigator<"u"?navigator.onLine:void 0,visibility:typeof document<"u"?document.visibilityState:void 0});throw a||t==null||t(v,{url:s,options:c}),v}if(!u.ok){const h=await u.text().catch(()=>`Failed to fetch with status ${u.status}`),m=new ar(u.status,h,{url:s,method:d});throw a||t==null||t(m,{url:s,options:c,headers:u.headers}),m}return u.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 nu(n,e=Mn,t,i){const r=hr(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 iu(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:pa(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 ru(n){var t,i,r,s,o,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:pa(n.presenter),presenterType:$l(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 su=n=>{try{return String((n==null?void 0:n.message)??n??"").slice(0,256)}catch{return"Unknown error"}},au=n=>n.reduce((e,t)=>e+t,0),Ca=n=>au(n)/n.length,Ea=n=>Math.min(...n),wa=n=>Math.max(...n),hi=(n,e=0)=>{const t=10**e;return Math.round(n*t)/t},ou=(n,e)=>{const t=[...n].sort((i,r)=>i-r);return t[Math.min(t.length-1,Math.floor(e*(t.length-1)))]},cu=n=>ou(n,.5),du=(n,e)=>{try{return n()}catch{return e}};function lu(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 Ra(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}function mi(n){return n instanceof ke?n.toJson():{kind:"UnknownError",message:su(n)||"UnknownError"}}const _a="1.2.5-staging.357",uu="https://api-js.mixpanel.com/track/?verbose=1&ip=1",Pa=50,zt=[];let mr=!1;async function Ia(n){const e=await fetch(uu,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify(n)})});if(!e.ok)throw new Error(`Mixpanel responded with ${e.status}`)}function hu(n){zt.push(n),zt.splice(Pa)}function fr(){if(mr||!zt.length)return;mr=!0;const n=zt.splice(0,zt.length);Ia(n).catch(()=>{zt.unshift(...n),zt.splice(Pa)}).finally(()=>{mr=!1})}typeof window<"u"&&typeof window.addEventListener=="function"&&(window.addEventListener("online",fr),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&fr()}));function mu(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:cr(n.externalId),agentId:n.agentId,additionalProperties:{id:cr(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Gt,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:o,...a}=r||{},c=s||Date.now(),d={event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,emittedBy:"agents-sdk",sdkVersion:_a,token:this.token,time:c,$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerHeight,"Screen Width":window.screen.width||window.innerWidth,"User Agent":navigator.userAgent}};return fr(),Ia([d]).catch(()=>hu(d)),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 pr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const pt=pr(),gr=pr(),Ma=pr();function Oa(n){return n===_e.Playground?{headers:{[Jl]:"true"}}:{}}async function Da(n,e,t,i,r=!1,s){return!s&&!ga(i)&&(s=await e.newChat(n.id,{persist:r},Oa(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}function fu(n){return n&&n.length>0?n:[]}function pu(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(ma(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 gu(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 pu(n)}catch(r){if(i===e)throw r;await ha(i*500)}return t}async function vu(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await gu({auth:n,host:e,externalId:i,callbacks:{onError:o=>{var a;return(a=t.onError)==null?void 0:a.call(t,new na(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 Aa(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function yu(n,e,t){if(!n.content)return;const i={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,parts:On(n.content),created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(i),t==null||t([...e.messages],"user")}function bu(n,e,t,i,r,s,o){if(n===xe.Transcribe&&e.content){yu(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=Aa(t);!!(u&&u.length<v.length)&&(l.interrupted=!0),t.answer=u}const m=Aa(t);(l.content!==m||n===xe.Answer)&&(l.content=m,l.parts=On(m),r==null||r([...i.messages],n))}function ku(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;bu(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=lu(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 di(`Stream failed with event ${d}`),{data:l})),l.event===m.StreamDone&&r()}}}}function Tu(n,e,t,i){const r=hr(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 xa=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),Su=45;function Cu(n){const e=n.map(c=>c.av).filter(c=>!!c&&c.audioPlayout>0&&c.videoPlayout>0);if(e.length<2)return null;const t=e[0].localTs,i=e[e.length-1].localTs-t,r=e.map(c=>c.audioPlayout-c.videoPlayout),s=r.filter(c=>c>Su||c<-100),o=e.filter(c=>c.localTs-t>=Math.min(5e3,i/2)),a=(o.length?o:e).map(c=>c.audioPlayout-c.videoPlayout);return{sampleCount:e.length,durationMs:hi(i),desyncDurationMs:hi(i*(s.length/r.length)),maxOffsetMs:hi(r.reduce((c,d)=>Math.abs(d)>Math.abs(c)?d:c)),residualOffsetMs:hi(cu(a))}}function Eu(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 wu(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 Ru(n){var c;let e="",t=0,i=null,r=null;const s=new Map;for(const d of n.values())if(d)if(d.type==="codec"&&((c=d.mimeType)!=null&&c.startsWith("video")))s.set(d.id,d.mimeType.split("/")[1]);else if(d.type==="candidate-pair"){const l=d,u=l.currentRoundTripTime??0;u>0&&(l.nominated===!0||t===0)&&(t=u)}else d.type==="inbound-rtp"&&d.kind==="video"?i=d:d.type==="inbound-rtp"&&d.kind==="audio"&&(r=d);if(!i)return{};const o=i;o.codecId&&s.has(o.codecId)?e=s.get(o.codecId):s.size>0&&(e=s.values().next().value??"");const a={codec:e,rtt:t,timestamp:o.timestamp,bytesReceived:o.bytesReceived,packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,frameWidth:o.frameWidth,frameHeight:o.frameHeight,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.totalFreezesDuration};return r&&(a.av={audioPlayout:r.estimatedPlayoutTimestamp??0,videoPlayout:o.estimatedPlayoutTimestamp??0,localTs:o.timestamp}),a}function La(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=wu(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,avSync:du(()=>Cu(n),null),minRtt:Ea(a),avgRtt:Ca(a),maxRtt:wa(a),aggregateReport:Eu(n[0],n[n.length-1],s),minJitterDelayInInterval:Ea(o),maxJitterDelayInInterval:wa(o),avgJitterDelayInInterval:Ca(o)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}function Na(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 Dn=10;function _u(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,Dn);return}const l=Na(d,"audio");if(!l){r=setTimeout(c,Dn);return}const u=l.totalAudioEnergy??0,h=l.totalSamplesReceived??0;if(!i){s=u,o=h,i=!0,r=setTimeout(c,Dn);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,Dn))}}return{arm(d={}){a=d,t=!0,i=!1,performance.now(),r!==null&&clearTimeout(r),r=setTimeout(c,Dn)},destroy(){t=!1,r!==null&&(clearTimeout(r),r=null)}}}const fi=100,Pu=Math.max(Math.ceil(400/fi),1),Iu=.25,Mu=.28;function Ou(){let n=0,e,t,i=0;return r=>{const s=Na(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 Ua(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=Ou();async function g(){const S=await n();if(!S)return;const{isReceiving:k,avgJitterDelayInInterval:R,freezeCount:_}=v(S),y=Ru(S);if(k)c=0,h=_-m,u=R<Iu?rt.Strong:R>Mu&&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>=Pu)){const b=La(o,fi,a);i==null||i(Z.Stop,b),e()||t(),m=_,d=!1}}return{start:()=>{s||(s=setInterval(g,fi))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>La(o,fi,a)}}const Du=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function Fa(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 Au=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function xu({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 Lu({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 Ba({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:o}){r===st.Legacy?xu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:o}):r===st.Fluent&&Lu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:o})}async function Nu(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Mn,analytics:o},a){var Ae;const c=xa(t,"WebRTCStreamingManager"),d=Au(c);let l=!1,u=!1,h=Z.Stop,m=Z.Stop;const{startConnection:v,sendStreamRequest:g,close:S,createStream:k,addIceCandidate:R}=Tu(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 Du({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=Ua(()=>O.getStats(),se,Ce,(j,V)=>Ba({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 q=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;q(ae.videoId)}j===Q.StreamDone&&q(null),h=j===Q.StreamStarted?Z.Start:Z.Stop,Ba({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=Fa(O.iceConnectionState);j!==de.Connected&&((V=i.onConnectionStateChange)==null||V.call(i,j,`webrtc:ice-${O.iceConnectionState}`))},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 di("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=Fa(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 vr=(n=>(n.V1="v1",n.V2="v2",n))(vr||{});async function Uu(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...o}=e;return Nu(r,o,t,i)}case"v2":{const{version:s,...o}=e;switch(o.transport.provider){case li.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>eh);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 Fu="cht";function Bu(){return{transport:{provider:li.Livekit}}}function ju(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 Vu(n,e){return dr(n.presenter.type)?{version:vr.V2,...Bu()}:{version:vr.V1,...ju(e)}}function qu(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function Ku(n,e,t,i,r){r===st.Fluent?Wu(n,e,t,i,r):Hu(n,e,t,i,r)}function Wu(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 ja(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 Hu(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 Ju(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 Va(n,e,t,i){return pt.reset(),Ma.update(),new Promise(async(r,s)=>{try{let o,a=!1;const c=Vu(n,e);t.enrich({"stream-version":c.version.toString()});let d=null;const l=n.presenter.type==="expressive";o=await Uu(n,c,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(u,h)=>{var m,v;(v=(m=e.callbacks).onConnectionStateChange)==null||v.call(m,u),qu(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),Ku(u,n,h,t,o.streamType)},onAgentActivityStateChange:u=>{var h,m;(m=(h=e.callbacks).onAgentActivityStateChange)==null||m.call(h,u),u===Ie.Talking?(gr.update(),d=v=>{ja(Z.Start,n,t,o.streamType,v),d=null},l||d({latency:pt.get(!0)})):(gr.reset(),d=null,ja(Z.Stop,n,t,o.streamType))},onFirstAudioDetected:u=>{d==null||d(u)},onStreamReady:()=>{const u=Ma.get(!0);t.track("agent-chat",{event:"ready",latency:u})},onToolEvent:((u,h)=>{var m,v;(v=(m=e.callbacks).onToolEvent)==null||v.call(m,u,h),Ju(u,h,t)})}},i),a&&r(o)}catch(o){s(o)}})}async function Gu(n,e,t,i,r){var l,u,h,m;const s=async()=>{if(dr(n.presenter.type)){const v=await Va(n,e,i),g=`${Fu}_${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=Da(n,t,i,e.mode,e.persistentChat,r),R=Va(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 ea(d)),a==null||a.disconnect(),{chat:c}):{chat:c,streamingManager:a}}async function zu(n,e){var U,W,se,Ce;let t=!0;const i=e.mixpanelKey||zl,r=e.wsURL||Gl,s=e.baseURL||Mn,o=e.mode||_e.Functional,a={messages:[],chatMode:o},c=mu({token:i,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),d=Date.now();Ra(()=>{c.track("agent-sdk",{event:"init"},d)});const l=e.callbacks.onError;e.callbacks.onError=(P,B)=>{c.track("agent-error",{error:mi(P)}),l==null||l(P,B)};const u=nu(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=dr(h.presenter.type);c.enrich(ru(h));const{onMessage:v,clearQueue:g}=ku(c,a,e,h,()=>{var P,B,q;(P=a.socketManager)==null||P.disconnect(),(q=(B=e.callbacks).onConnectionStateChange)==null||q.call(B,de.Disconnected)});a.messages=fu(e.initialMessages),(se=(W=e.callbacks).onNewMessage)==null||se.call(W,[...a.messages],"answer");const S=P=>{c.enrich({videoId:P})},k=({type:P})=>{var q,ee,re,ne;if(!((q=a.streamingManager)!=null&&q.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:gr.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 q=R.get(P);if(!q)throw new Error(`No handler registered for client tool: ${P}`);try{const ee=JSON.parse(B.payload);return await q(ee)}catch(ee){throw new Error(`Client tool "${P}" failed: ${ee.message}`)}}}function y(){var P,B,q,ee;for(const[re]of R)(B=(P=a.streamingManager)==null?void 0:P.unregisterRpcMethod)==null||B.call(P,re),(ee=(q=a.streamingManager)==null?void 0:q.registerRpcMethod)==null||ee.call(q,re,_(re))}function b(P,B){var ee,re;const q=!R.has(P);R.set(P,B),q&&((re=(ee=a.streamingManager)==null?void 0:ee.registerRpcMethod)==null||re.call(ee,P,_(P)))}function T(P){var B,q;R.delete(P),(q=(B=a.streamingManager)==null?void 0:B.unregisterRpcMethod)==null||q.call(B,P)}const N=Date.now();Ra(()=>{c.track("agent-sdk",{event:"loaded",...iu(h)},N)});async function F(P){var we,Ue,Ae,j,V,ae,Ge;Wl(),(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):vu(e.auth,r,{onMessage:v,onError:e.callbacks.onError},e.externalId),q=ur(()=>Gu(h,{...e,mode:o,callbacks:{...e.callbacks,onVideoIdChange:S,onMessage:v}},u,c,a.chat),{limit:3,timeout:Hl,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:mt=>(mt==null?void 0:mt.message)!=="Could not connect"&&!(mt instanceof ar&&(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,q]);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,q,ee;(P=a.socketManager)==null||P.disconnect(),await((B=a.streamingManager)==null?void 0:B.disconnect()),delete a.streamingManager,delete a.socketManager,(ee=(q=e.callbacks).onConnectionStateChange)==null||ee.call(q,de.Disconnected)}async function D(P){var B,q;P!==a.chatMode&&(c.track("agent-mode-change",{mode:P}),a.chatMode=P,a.chatMode!==_e.Functional&&await O(),(q=(B=e.callbacks).onModeChange)==null||q.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;let B;if(m&&(P!=null&&P.reconnect))try{await P.reconnect()}catch(q){B=mi(q).kind,await O(),await F(!1)}else await O(),await F(!1);c.track("agent-chat",{event:"reconnect",mode:a.chatMode,success:!0,...B&&{fallbackReason:B}})},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(ga(o))throw new ze(`${o} is enabled, chat is disabled`);if(P.length>=fa)throw new ze(`Message cannot be more than ${fa} 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")}},q=async()=>{var j,V;if(!a.chat){const ae=await Da(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 ur(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:zs,...Pn})=>Pn)},{...Oa(a.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Re=>{var Pn,sr,si,ai;const it=(Pn=Re==null?void 0:Re.message)==null?void 0:Pn.includes("missing or invalid session_id");return!((sr=Re==null?void 0:Re.message)==null?void 0:sr.includes("Stream Error"))&&!it?((ai=(si=e.callbacks).onError)==null||ai.call(si,Re),!1):!0},onRetry:async()=>{await O(),await F(!1)}})};try{g(),B(),a.messages.push({id:Gt(),role:"user",content:P,parts:On(P),created_at:new Date(pt.update()).toISOString()}),(ne=(re=e.callbacks).onNewMessage)==null||ne.call(re,[...a.messages],"user");const j=await q(),V=await ee([...a.messages],j);return V.result&&a.messages.push({id:Gt(),role:"assistant",content:V.result,parts:On(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:mi(j)}),j}},rate(P,B,q){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:q?"update":"create",thumb:B===1?"up":"down",knowledge_id:((we=h.knowledge)==null?void 0:we.id)??"",matches:re,score:B}),q?u.updateRating(h.id,a.chat.id,q,{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 q=B();if(c.track("agent-speak",q),pt.update(),a.messages&&q.type==="text"&&(a.messages.push({id:Gt(),role:"assistant",content:q.input,parts:On(q.input),created_at:new Date().toISOString()}),(ne=(re=e.callbacks).onNewMessage)==null||ne.call(re,[...a.messages],"answer")),Yl(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:q,metadata:{chat_id:(we=a.chat)==null?void 0:we.id,agent_id:h.id}})},interrupt:k,registerClientTool:b,unregisterClientTool:T}}function $u(n,e,t,i){const r=hr(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const Qu={[Q.ChatAnswer]:xe.Answer,[Q.ChatPartial]:xe.Partial},qa=2e4;async function Yu(){try{return await Promise.resolve().then(()=>uv)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Xu={excellent:rt.Strong,good:rt.Strong,poor:rt.Weak,lost:rt.Unknown,unknown:rt.Unknown},ln=(n="Stream Error")=>new di(n);function yr(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 Zu(n,e,t){var Nl;const i=xa(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:o,Track:a}=await Yu(),{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=$u(d,l||Mn,n,c.onError);let D,U,W,se=!0;try{const w=await O.createStream({transport:e.transport,chat_persist:e.chat_persist??!0,verbose:t.verbose??!1}),{id:A,session_token:H,session_url:J,interrupt_enabled:ce}=w;(Nl=c.onStreamCreated)==null||Nl.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){yr(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,q).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,zs).on(s.TrackSubscriptionFailed,Pn);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 ${qa/1e3} seconds after connect`),T=null;const w=ln("Track subscription timeout");u.track("connectivity-error",{error:mi(w),sessionId:D}),(A=c.onError)==null||A.call(c,w,{sessionId:D}),Xs("internal:track-subscription-timeout")},qa)}catch(w){yr(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,Xu[w]))}function q(w){i("Participant connected:",w.identity)}function ee(w){i("Participant disconnected:",w.identity),Xs("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"&&(_=_u(()=>w.getRTCStatsReport(),({sttLatency:ge,serviceLatency:ft})=>{var Ul,Fl,Bl;const oi=pt.get(!0);let ci=0;if(ge){const jl=((Fl=(Ul=R==null?void 0:R.getReport())==null?void 0:Ul.webRTCStats)==null?void 0:Fl.avgRtt)??0;ci=jl>0?Math.round(jl*1e3):0}const In=oi>0?oi+(ge??0)+ci:void 0,Lt=In!==void 0&&ft!==void 0?In-ft:void 0;(Bl=c.onFirstAudioDetected)==null||Bl.call(c,{latency:In,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=Ua(()=>w.getRTCStatsReport(),()=>m,Kl,(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=Qu[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,ln(),{sessionId:D})}function zs(w){var A;i("Encryption error:",w),(A=c.onError)==null||A.call(c,ln(),{sessionId:D})}function Pn(w,A,H){i("Track subscription failed:",{trackSid:w,participant:A,reason:H})}function sr(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 si(w,A,H,J,ce,ue){var oi,ci,In;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=sr(ge,J,ce());if(ft){i(`${J} track is already published, skipping`,{trackId:ge.id,publishedTrackId:(ci=(oi=ft.track)==null?void 0:oi.mediaStreamTrack)==null?void 0:ci.id}),w.publication=ft;return}if((In=w.publication)!=null&&In.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 ai(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 hv(w){return si(S,w,A=>A.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,$s)}async function $s(){return ai(S,"Microphone")}async function mv(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 fv(w){return si(k,w,A=>A.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Qs)}async function Qs(){return ai(k,"Camera")}function pv(){g&&(g.getTracks().forEach(w=>w.stop()),g=null)}async function Ys(w,A){var H,J;if(!m||!h){i("Room is not connected for sending messages"),(H=c.onError)==null||H.call(c,ln(),{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,ln(),{sessionId:D})}}async function Ll(w){var A;try{const J=JSON.parse(w).topic;return Ys("",J)}catch(H){i("Failed to send data channel message:",H),(A=c.onError)==null||A.call(c,ln(),{sessionId:D})}}function gv(w){return Ys(w,"lk.chat")}async function Xs(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([$s(),Qs()]),await h.disconnect()),pv(),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 Ys(A,"did.speak")},disconnect:()=>Xs("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:Ll,sendTextMessage:gv,publishMicrophoneStream:hv,unpublishMicrophoneStream:$s,replaceMicrophoneTrack:mv,publishCameraStream:fv,unpublishCameraStream:Qs,interrupt(w){w!=="text"&&Ll(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 eh=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:Zu,handleInitError:yr},Symbol.toStringTag,{value:"Module"}));function th(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var nh=Object.defineProperty,ih=(n,e,t)=>e in n?nh(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ka=(n,e,t)=>ih(n,typeof e!="symbol"?e+"":e,t);class Le{constructor(){Ka(this,"_locking"),Ka(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 rh=34028234663852886e22,sh=-34028234663852886e22,ah=4294967295,oh=2147483647,ch=-2147483648;function pi(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>oh||n<ch)throw new Error("invalid int 32: "+n)}function br(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>ah||n<0)throw new Error("invalid uint 32: "+n)}function Wa(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>rh||n<sh))throw new Error("invalid float 32: "+n)}const Ha=Symbol("@bufbuild/protobuf/enum-type");function dh(n){const e=n[Ha];return ve(e,"missing enum type on enum object"),e}function Ja(n,e,t,i){n[Ha]=Ga(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function Ga(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const o of e){const a=za(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 lh(n,e,t){const i={};for(const r of e){const s=za(r);i[s.localName]=s.no,i[s.no]=s.localName}return Ja(i,n,e),i}function za(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class kr{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),r=i.runtime.bin,s=r.makeReadOptions(t);return r.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,t){const i=this.getType(),r=i.runtime.json,s=r.makeReadOptions(t);return r.readMessage(i,e,s,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(r){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(r instanceof Error?r.message:String(r)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,r=i.makeWriteOptions(e),s=r.writerFactory();return i.writeMessage(this,s,r),s.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,r=i.makeWriteOptions(e);return i.writeMessage(this,r)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function uh(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),o={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new kr),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 hh(){let n=0,e=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(n|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function Tr(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 gi=4294967296;function $a(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>=gi&&(r=r+(i/gi|0),i=i%gi)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Ya(i,r):Sr(i,r)}function mh(n,e){let t=Sr(n,e);const i=t.hi&2147483648;i&&(t=Ya(t.lo,t.hi));const r=Qa(t.lo,t.hi);return i?"-"+r:r}function Qa(n,e){if({lo:n,hi:e}=fh(n,e),e<=2097151)return String(gi*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,o=i+r*8147497,a=r*2;const c=1e7;return s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c),a.toString()+Xa(o)+Xa(s)}function fh(n,e){return{lo:n>>>0,hi:e>>>0}}function Sr(n,e){return{lo:n|0,hi:e|0}}function Ya(n,e){return e=~e,n?n=~n+1:e+=1,Sr(n,e)}const Xa=n=>{const e=String(n);return"0000000".slice(e.length)+e};function Za(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function ph(){let n=this.buf[this.pos++],e=n&127;if((n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,(n&128)==0)return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;(n&128)!==0&&t<10;t++)n=this.buf[this.pos++];if((n&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function gh(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),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),$a(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),$a(r)},dec(r,s){return mh(r,s)},uDec(r,s){return Qa(r,s)}}}const me=gh();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 Ut;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Ut||(Ut={}));function Ft(n,e,t){if(e===t)return!0;if(n==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 un(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 eo(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 vh{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),i=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(br(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return pi(e),Za(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){Wa(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){br(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){pi(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return pi(e),e=(e<<1^e>>31)>>>0,Za(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 Tr(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 Tr(r,s,this.buf),this}uint64(e){let t=me.uEnc(e);return Tr(t.lo,t.hi,this.buf),this}}class yh{constructor(e,t){this.varint64=hh,this.uint32=ph,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case 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 bh(n,e,t,i){let r;return{typeName:e,extendee:t,get field(){if(!r){const s=typeof i=="function"?i():i;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),r=n.util.newFieldList([s]).list()[0]}return r},runtime:n}}function to(n){const e=n.field.localName,t=Object.create(null);return t[e]=kh(n),[t,()=>t[e]]}function kh(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return un(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function Th(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let wt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),vi=[];for(let n=0;n<wt.length;n++)vi[wt[n].charCodeAt(0)]=n;vi[45]=wt.indexOf("+"),vi[95]=wt.indexOf("/");const no={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=vi[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 Sh(n,e,t){ro(e,n);const i=e.runtime.bin.makeReadOptions(t),r=Th(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,o]=to(e);for(const a of r)e.runtime.bin.readField(s,i.readerFactory(a.data),e.field,a.wireType,i);return o()}function Ch(n,e,t,i){ro(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(io(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 io(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 ro(n,e){ve(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function so(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:!eo(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function ao(n,e){const t=n.localName,i=!n.opt&&!n.req;if(n.repeated)e[t]=[];else if(n.oneof)e[n.oneof.localName]={case:void 0};else switch(n.kind){case"map":e[t]={};break;case"enum":e[t]=i?n.T.values[0].no:void 0;break;case"scalar":e[t]=i?un(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function Rt(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(kr.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 oo(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 co={ignoreUnknownFields:!1},lo={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Eh(n){return n?Object.assign(Object.assign({},co),n):co}function wh(n){return n?Object.assign(Object.assign({},lo),n):lo}const yi=Symbol(),bi=Symbol();function Rh(){return{makeReadOptions:Eh,makeWriteOptions:wh,readMessage(n,e,t,i){if(e==null||Array.isArray(e)||typeof e!="object")throw new Error("cannot decode message ".concat(n.typeName," from JSON: ").concat(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)}uo(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]=to(l);uo(u,a,l.field,t,l),Ch(i,l,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(o,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!so(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!Ph(r))continue}const o=r.oneof?n[r.oneof.localName].value:n[r.localName],a=ho(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&&io(n,a)){const c=Sh(n,a,e),d=ho(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 An(n,e,t??Ut.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||eo(n,e)))return ki(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 uo(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=Cr(t.T,a,i.ignoreUnknownFields,!0);c!==bi&&o.push(c);break;case"scalar":try{o.push(An(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=_h(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=Cr(t.V.T,c,i.ignoreUnknownFields,!0);l!==bi&&(o[d]=l);break;case"scalar":try{o[d]=An(t.V.T,c,Ut.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=Cr(t.T,e,i.ignoreUnknownFields,!1);switch(c){case yi:ao(t,n);break;case bi:break;default:n[s]=c;break}break;case"scalar":try{const d=An(t.T,e,t.L,!1);switch(d){case yi:ao(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 _h(n,e){if(n===E.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return An(n,e,Ut.BIGINT,!0).toString()}function An(n,e,t,i){if(e===null)return i?un(n,t):yi;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&&Wa(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?br(s):pi(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 no.dec(e)}throw new Error}function Cr(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:yi;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 bi;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(gt(e)))}function Ph(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function ho(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()]=ki(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()]=Er(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(ki(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(Er(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 ki(n.T,e);case"enum":return Er(n.T,e,t.enumAsInteger);case"message":return oo(n.T,e).toJson(t)}}function Er(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 ki(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),no.enc(e)}}const hn=Symbol("@bufbuild/protobuf/unknown-fields"),mo={readUnknownFields:!0,readerFactory:n=>new yh(n)},fo={writeUnknownFields:!0,writerFactory:()=>new vh};function Ih(n){return n?Object.assign(Object.assign({},mo),n):mo}function Mh(n){return n?Object.assign(Object.assign({},fo),n):fo}function Oh(){return{makeReadOptions:Ih,makeWriteOptions:Mh,listUnknownFields(n){var e;return(e=n[hn])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[hn]},writeUnknownFields(n,e){const i=n[hn];if(i)for(const r of i)e.tag(r.no,r.wireType).raw(r.data)},onUnknownField(n,e,t,i){const r=n;Array.isArray(r[hn])||(r[hn]=[]),r[hn].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),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}po(n,e,d,c,i)}if(r&&(c!=Te.EndGroup||a!==t))throw new Error("invalid end group tag")},readField:po,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!so(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];go(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&go(n,e,t,i)}}}function po(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=Si;if(t.kind=="scalar"&&t.L>0&&(c=Ah),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(Ti(e,new d,r,t)):Rt(n[o])?Ti(e,n[o],r,t):(n[o]=Ti(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[o]=d.fieldWrapper.unwrapField(n[o])));break;case"map":let[l,u]=Dh(t,e,r);n[o][l]=u;break}}function Ti(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 Dh(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=Si(e,n.K);break;case 2:switch(n.V.kind){case"scalar":o=Si(e,n.V.T);break;case"enum":o=e.int32();break;case"message":o=Ti(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=un(n.K,Ut.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),o===void 0)switch(n.V.kind){case"scalar":o=un(n.V.T,Ut.BIGINT);break;case"enum":o=n.V.T.values[0].no;break;case"message":o=new n.V.T;break}return[s,o]}function Ah(n,e){const t=Si(n,e);return typeof t=="bigint"?t.toString():t}function Si(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 go(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)Lh(t,s,n.no,e);else for(const o of e)xn(t,s,n.no,o);else xn(t,s,n.no,e);break;case"message":if(r){ve(Array.isArray(e));for(const o of e)vo(t,i,n,o)}else vo(t,i,n,e);break;case"map":ve(typeof e=="object"&&e!=null);for(const[o,a]of Object.entries(e))xh(t,i,n,o,a);break}}function xh(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(xn(n,t.K,1,s),t.V.kind){case"scalar":xn(n,t.V.T,2,r);break;case"enum":xn(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 vo(n,e,t,i){const r=oo(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 xn(n,e,t,i){ve(i!==void 0);let[r,s]=yo(e);n.tag(t,r)[s](i)}function Lh(n,e,t,i){if(!i.length)return;n.tag(t,Te.LengthDelimited).fork();let[,r]=yo(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function yo(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 Nh(){return{setEnumType:Ja,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=Ln(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(Ln):Ln(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]=Ln(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]=Ln(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)=>Ft(i.T,o,s[a]));case"enum":return r.every((o,a)=>Ft(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 Ft(E.INT32,r,s);case"scalar":return Ft(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 Ft(E.INT32,r.value,s.value);case"scalar":return Ft(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=>Ft(E.INT32,r[h],s[h]));case"scalar":const u=i.V.T;return d.every(h=>Ft(u,r[h],s[h]))}break}})},clone(n){const e=n.getType(),t=new e,i=t;for(const r of e.fields.byMember()){const s=n[r.localName];let o;if(r.repeated)o=s.map(Ci);else if(r.kind=="map"){o=i[r.localName];for(const[a,c]of Object.entries(s))o[a]=Ci(c)}else r.kind=="oneof"?o=r.findField(s.case)?{case:s.case,value:Ci(s.value)}:{case:void 0}:o=Ci(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 Ci(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 Ln(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function Uh(n,e,t){return{syntax:n,json:Rh(),bin:Oh(),util:Object.assign(Object.assign({},Nh()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return uh(this,i,r,s)},makeEnum:lh,makeEnumType:Ga,getEnumType:dh,makeExtension(i,r,s){return bh(this,i,r,s)}}}class Fh{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){const t={};for(const i of this.list())t[i.jsonName]=t[i.name]=i;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){const t={};for(const i of this.list())t[i.no]=i;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];const e=this.members;let t;for(const i of this.list())i.oneof?i.oneof!==t&&(t=i.oneof,e.push(t)):e.push(i)}return this.members}}function bo(n,e){const t=ko(n);return e?t:Wh(Kh(t))}function Bh(n){return bo(n,!1)}const jh=ko;function ko(n){let e=!1;const t=[];for(let i=0;i<n.length;i++){let r=n.charAt(i);switch(r){case"_":e=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":t.push(r),e=!1;break;default:e&&(e=!1,r=r.toUpperCase()),t.push(r);break}}return t.join("")}const Vh=new Set(["constructor","toString","toJSON","valueOf"]),qh=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),To=n=>"".concat(n,"$"),Kh=n=>qh.has(n)?To(n):n,Wh=n=>Vh.has(n)?To(n):n;class Hh{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Bh(e)}addField(e){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 Jh(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=bo(l.name,l.oneof!==void 0),u.jsonName=(t=l.jsonName)!==null&&t!==void 0?t:jh(l.name),u.repeated=(i=l.repeated)!==null&&i!==void 0?i:!1,l.kind=="scalar"&&(u.L=(r=l.L)!==null&&r!==void 0?r:Ut.BIGINT),u.delimited=(s=l.delimited)!==null&&s!==void 0?s:!1,u.req=(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 Hh(h)),u.oneof=d,d.addField(u)}c.push(u)}return c}const p=Uh("proto3",n=>new Fh(n,e=>Jh(e)),n=>{for(const e of n.getType().fields.byMember()){if(e.opt)continue;const t=e.localName,i=n;if(e.repeated){i[t]=[];continue}switch(e.kind){case"oneof":i[t]={case:void 0};break;case"enum":i[t]=0;break;case"map":i[t]={};break;case"scalar":i[t]=un(e.T,e.L);break}}});class We extends kr{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 Gh=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:zh,repeated:!0},{no:5,name:"events",kind:"message",T:Qh,repeated:!0}]),zh=p.makeMessageType("livekit.TimeSeriesMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"samples",kind:"message",T:$h,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),$h=p.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:We},{no:3,name:"value",kind:"scalar",T:2}]),Qh=p.makeMessageType("livekit.EventMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"start_timestamp_ms",kind:"scalar",T:3},{no:5,name:"end_timestamp_ms",kind:"scalar",T:3,opt:!0},{no:6,name:"normalized_start_timestamp",kind:"message",T: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}]),Yh=p.makeEnum("livekit.AudioCodec",[{no:0,name:"DEFAULT_AC"},{no:1,name:"OPUS"},{no:2,name:"AAC"},{no:3,name:"AC_MP3"}]),Xh=p.makeEnum("livekit.VideoCodec",[{no:0,name:"DEFAULT_VC"},{no:1,name:"H264_BASELINE"},{no:2,name:"H264_MAIN"},{no:3,name:"H264_HIGH"},{no:4,name:"VP8"}]),Zh=p.makeEnum("livekit.ImageCodec",[{no:0,name:"IC_DEFAULT"},{no:1,name:"IC_JPEG"}]),So=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"}]),wr=p.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),Nn=p.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),Un=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"}]),$t=p.makeEnum("livekit.ReconnectReason",[{no:0,name:"RR_UNKNOWN"},{no:1,name:"RR_SIGNAL_DISCONNECTED"},{no:2,name:"RR_PUBLISHER_FAILED"},{no:3,name:"RR_SUBSCRIBER_FAILED"},{no:4,name:"RR_SWITCH_CANDIDATE"}]),Co=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"}]),Ei=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:wi,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:Uo}]),wi=p.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),em=p.makeMessageType("livekit.ParticipantPermission",()=>[{no:1,name:"can_subscribe",kind:"scalar",T:8},{no:2,name:"can_publish",kind:"scalar",T:8},{no:3,name:"can_publish_data",kind:"scalar",T:8},{no:9,name:"can_publish_sources",kind:"enum",T:p.getEnumType(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}]),Qt=p.makeMessageType("livekit.ParticipantInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"identity",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:p.getEnumType(mn)},{no:4,name:"tracks",kind:"message",T:pn,repeated:!0},{no:5,name:"metadata",kind:"scalar",T:9},{no:6,name:"joined_at",kind:"scalar",T:3},{no:17,name:"joined_at_ms",kind:"scalar",T:3},{no:9,name:"name",kind:"scalar",T:9},{no:10,name:"version",kind:"scalar",T:13},{no:11,name:"permission",kind:"message",T:em},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:p.getEnumType(fn)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:p.getEnumType(Xe)},{no:18,name:"kind_details",kind:"enum",T:p.getEnumType(tm),repeated:!0},{no:19,name:"data_tracks",kind:"message",T:Rr,repeated:!0}]),mn=p.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),fn=p.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"},{no:7,name:"CONNECTOR"},{no:8,name:"BRIDGE"}]),tm=p.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"},{no:2,name:"CONNECTOR_WHATSAPP"},{no:3,name:"CONNECTOR_TWILIO"},{no:4,name:"BRIDGE_RTSP"}]),ye=p.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),nm=p.makeMessageType("livekit.SimulcastCodecInfo",()=>[{no:1,name:"mime_type",kind:"scalar",T:9},{no:2,name:"mid",kind:"scalar",T:9},{no:3,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:Bt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(Eo)},{no:6,name:"sdp_cid",kind:"scalar",T:9}]),pn=p.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:p.getEnumType(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:Bt,repeated:!0},{no:11,name:"mime_type",kind:"scalar",T:9},{no:12,name:"mid",kind:"scalar",T:9},{no:13,name:"codecs",kind:"message",T:nm,repeated:!0},{no:14,name:"stereo",kind:"scalar",T:8},{no:15,name:"disable_red",kind:"scalar",T:8},{no:16,name:"encryption",kind:"enum",T:p.getEnumType(ye)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:Uo},{no:19,name:"audio_features",kind:"enum",T:p.getEnumType(Me),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(So)}]),Rr=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)}]),im=p.makeMessageType("livekit.DataTrackSubscriptionOptions",()=>[{no:1,name:"target_fps",kind:"scalar",T:13,opt:!0}]),Bt=p.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(wr)},{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}]),Eo=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:_r,oneof:"value"},{no:3,name:"speaker",kind:"message",T:rm,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:Po,oneof:"value"},{no:7,name:"transcription",kind:"message",T:sm,oneof:"value"},{no:8,name:"metrics",kind:"message",T:Gh,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:Ri,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:Pr,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:Ir,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:Mr,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:_i,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:Pi,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:Ii,oneof:"value"},{no:18,name:"encrypted_packet",kind:"message",T:wo,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"}]),wo=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}]),Ro=p.makeMessageType("livekit.EncryptedPacketPayload",()=>[{no:1,name:"user",kind:"message",T:_r,oneof:"value"},{no:3,name:"chat_message",kind:"message",T:Ri,oneof:"value"},{no:4,name:"rpc_request",kind:"message",T:Pr,oneof:"value"},{no:5,name:"rpc_ack",kind:"message",T:Ir,oneof:"value"},{no:6,name:"rpc_response",kind:"message",T:Mr,oneof:"value"},{no:7,name:"stream_header",kind:"message",T:_i,oneof:"value"},{no:8,name:"stream_chunk",kind:"message",T:Pi,oneof:"value"},{no:9,name:"stream_trailer",kind:"message",T:Ii,oneof:"value"}]),rm=p.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:_o,repeated:!0}]),_o=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}]),_r=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}]),Po=p.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),sm=p.makeMessageType("livekit.Transcription",()=>[{no:2,name:"transcribed_participant_identity",kind:"scalar",T:9},{no:3,name:"track_id",kind:"scalar",T:9},{no:4,name:"segments",kind:"message",T:am,repeated:!0}]),am=p.makeMessageType("livekit.TranscriptionSegment",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"start_time",kind:"scalar",T:4},{no:4,name:"end_time",kind:"scalar",T:4},{no:5,name:"final",kind:"scalar",T:8},{no:6,name:"language",kind:"scalar",T:9}]),Ri=p.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),Pr=p.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),Ir=p.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),Mr=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:Io,oneof:"value"}]),Io=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}]),Mo=p.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),Oo=p.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:p.getEnumType(Do)},{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}]),Do=p.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),Ao=p.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:p.getEnumType(xo)},{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}]),xo=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"}]),Lo=p.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:No},{no:2,name:"screen",kind:"message",T:No},{no:3,name:"resume_connection",kind:"enum",T:p.getEnumType(Un)},{no:4,name:"disabled_codecs",kind:"message",T:om},{no:5,name:"force_relay",kind:"enum",T:p.getEnumType(Un)}]),No=p.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:p.getEnumType(Un)}]),om=p.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:wi,repeated:!0},{no:2,name:"publish",kind:"message",T:wi,repeated:!0}]),Uo=p.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),Or=p.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),Fo=p.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:p.getEnumType(Or)},{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"}),Bo=p.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),_i=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:Fo,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:Bo,oneof:"content_header"}],{localName:"DataStream_Header"}),Pi=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"}),Ii=p.makeMessageType("livekit.DataStream.Trailer",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"reason",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}],{localName:"DataStream_Trailer"}),cm=p.makeMessageType("livekit.FilterParams",()=>[{no:1,name:"include_events",kind:"scalar",T:9,repeated:!0},{no:2,name:"exclude_events",kind:"scalar",T:9,repeated:!0}]),dm=p.makeMessageType("livekit.WebhookConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"signing_key",kind:"scalar",T:9},{no:3,name:"filter_params",kind:"message",T:cm}]),lm=p.makeMessageType("livekit.SubscribedAudioCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"enabled",kind:"scalar",T:8}]),Dr=p.makeMessageType("livekit.RoomAgentDispatch",()=>[{no:1,name:"agent_name",kind:"scalar",T:9},{no:2,name:"metadata",kind:"scalar",T:9}]),at=p.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Ar=p.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),um=p.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),hm=p.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:jt,oneof:"message"},{no:2,name:"answer",kind:"message",T:jt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:Mi,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Fn,oneof:"message"},{no:5,name:"mute",kind:"message",T:Oi,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Di,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:Wo,oneof:"message"},{no:8,name:"leave",kind:"message",T:Ai,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:Jo,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:$o,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Br,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:Ur,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:Xo,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:Nr,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:Ho,oneof:"message"},{no:19,name:"publish_data_track_request",kind:"message",T:Vo,oneof:"message"},{no:20,name:"unpublish_data_track_request",kind:"message",T:Ko,oneof:"message"},{no:21,name:"update_data_subscription",kind:"message",T:km,oneof:"message"}]),jo=p.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:gm,oneof:"message"},{no:2,name:"answer",kind:"message",T:jt,oneof:"message"},{no:3,name:"offer",kind:"message",T:jt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:Mi,oneof:"message"},{no:5,name:"update",kind:"message",T:bm,oneof:"message"},{no:6,name:"track_published",kind:"message",T:Lr,oneof:"message"},{no:8,name:"leave",kind:"message",T:Ai,oneof:"message"},{no:9,name:"mute",kind:"message",T:Oi,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:Sm,oneof:"message"},{no:11,name:"room_update",kind:"message",T:Cm,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:wm,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:_m,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:Im,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Om,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:ym,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:vm,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Am,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:Nm,oneof:"message"},{no:22,name:"request_response",kind:"message",T:Um,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Fm,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:Dm,oneof:"message"},{no:25,name:"media_sections_requirement",kind:"message",T:qm,oneof:"message"},{no:26,name:"subscribed_audio_codec_update",kind:"message",T:Mm,oneof:"message"},{no:27,name:"publish_data_track_response",kind:"message",T:qo,oneof:"message"},{no:28,name:"unpublish_data_track_response",kind:"message",T:mm,oneof:"message"},{no:29,name:"data_track_subscriber_handles",kind:"message",T:fm,oneof:"message"}]),xr=p.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:Bt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(Eo)}]),Fn=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:Bt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:xr,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(So)},{no:17,name:"audio_features",kind:"enum",T:p.getEnumType(Me),repeated:!0}]),Vo=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)}]),qo=p.makeMessageType("livekit.PublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:Rr}]),Ko=p.makeMessageType("livekit.UnpublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13}]),mm=p.makeMessageType("livekit.UnpublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:Rr}]),fm=p.makeMessageType("livekit.DataTrackSubscriberHandles",()=>[{no:1,name:"sub_handles",kind:"map",K:13,V:{kind:"message",T:pm}}]),pm=p.makeMessageType("livekit.DataTrackSubscriberHandles.PublishedDataTrack",()=>[{no:1,name:"publisher_identity",kind:"scalar",T:9},{no:2,name:"publisher_sid",kind:"scalar",T:9},{no:3,name:"track_sid",kind:"scalar",T:9}],{localName:"DataTrackSubscriberHandles_PublishedDataTrack"}),Mi=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}]),Oi=p.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),gm=p.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:Ei},{no:2,name:"participant",kind:"message",T:Qt},{no:3,name:"other_participants",kind:"message",T:Qt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:Go,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:Lo},{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:Oo},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:wi,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),vm=p.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:Go,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Lo},{no:3,name:"server_info",kind:"message",T:Oo},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),Lr=p.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:pn}]),ym=p.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),jt=p.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9},{no:3,name:"id",kind:"scalar",T:13},{no:4,name:"mid_to_track_id",kind:"map",K:9,V:{kind:"scalar",T:9}}]),bm=p.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:Qt,repeated:!0}]),Di=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:Mo,repeated:!0}]),km=p.makeMessageType("livekit.UpdateDataSubscription",()=>[{no:1,name:"updates",kind:"message",T:Tm,repeated:!0}]),Tm=p.makeMessageType("livekit.UpdateDataSubscription.Update",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"options",kind:"message",T:im}],{localName:"UpdateDataSubscription_Update"}),Wo=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(wr)},{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}]),Nr=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}]),Ho=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}]),Ai=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(gn)},{no:4,name:"regions",kind:"message",T:xm}]),gn=p.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),Jo=p.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:Bt,repeated:!0}]),Ur=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}]),Go=p.makeMessageType("livekit.ICEServer",()=>[{no:1,name:"urls",kind:"scalar",T:9,repeated:!0},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"credential",kind:"scalar",T:9}]),Sm=p.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:_o,repeated:!0}]),Cm=p.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:Ei}]),Em=p.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:p.getEnumType(Nn)},{no:3,name:"score",kind:"scalar",T:2}]),wm=p.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:Em,repeated:!0}]),Rm=p.makeMessageType("livekit.StreamStateInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:p.getEnumType(Ar)}]),_m=p.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:Rm,repeated:!0}]),Fr=p.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(wr)},{no:2,name:"enabled",kind:"scalar",T:8}]),Pm=p.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:Fr,repeated:!0}]),Im=p.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:Fr,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:Pm,repeated:!0}]),Mm=p.makeMessageType("livekit.SubscribedAudioCodecUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_audio_codecs",kind:"message",T:lm,repeated:!0}]),zo=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}]),$o=p.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:zo,repeated:!0}]),Om=p.makeMessageType("livekit.SubscriptionPermissionUpdate",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"allowed",kind:"scalar",T:8}]),Dm=p.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:Ei},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:Qt},{no:4,name:"other_participants",kind:"message",T:Qt,repeated:!0}]),Br=p.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:jt},{no:2,name:"subscription",kind:"message",T:Di},{no:3,name:"publish_tracks",kind:"message",T:Lr,repeated:!0},{no:4,name:"data_channels",kind:"message",T:Yo,repeated:!0},{no:5,name:"offer",kind:"message",T:jt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:Qo,repeated:!0},{no:8,name:"publish_data_tracks",kind:"message",T:qo,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}]),Yo=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(um),oneof:"scenario"},{no:6,name:"subscriber_bandwidth",kind:"scalar",T:3,oneof:"scenario"},{no:7,name:"disconnect_signal_on_resume",kind:"scalar",T:8,oneof:"scenario"},{no:8,name:"disconnect_signal_on_resume_no_messages",kind:"scalar",T:8,oneof:"scenario"},{no:9,name:"leave_request_full_reconnect",kind:"scalar",T:8,oneof:"scenario"}]),Xo=p.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Am=p.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),xm=p.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:Lm,repeated:!0}]),Lm=p.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),Nm=p.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:p.getEnumType(Co)}]),Um=p.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:p.getEnumType(jr)},{no:3,name:"message",kind:"scalar",T:9},{no:4,name:"trickle",kind:"message",T:Mi,oneof:"request"},{no:5,name:"add_track",kind:"message",T:Fn,oneof:"request"},{no:6,name:"mute",kind:"message",T:Oi,oneof:"request"},{no:7,name:"update_metadata",kind:"message",T:Ur,oneof:"request"},{no:8,name:"update_audio_track",kind:"message",T:Nr,oneof:"request"},{no:9,name:"update_video_track",kind:"message",T:Ho,oneof:"request"},{no:10,name:"publish_data_track",kind:"message",T:Vo,oneof:"request"},{no:11,name:"unpublish_data_track",kind:"message",T:Ko,oneof:"request"}]),jr=p.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"},{no:4,name:"QUEUED"},{no:5,name:"UNSUPPORTED_TYPE"},{no:6,name:"UNCLASSIFIED_ERROR"},{no:7,name:"INVALID_HANDLE"},{no:8,name:"INVALID_NAME"},{no:9,name:"DUPLICATE_HANDLE"},{no:10,name:"DUPLICATE_NAME"}]),Fm=p.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Zo=p.makeMessageType("livekit.ConnectionSettings",()=>[{no:1,name:"auto_subscribe",kind:"scalar",T:8},{no:2,name:"adaptive_stream",kind:"scalar",T:8},{no:3,name:"subscriber_allow_pause",kind:"scalar",T:8,opt:!0},{no:4,name:"disable_ice_lite",kind:"scalar",T:8},{no:5,name:"auto_subscribe_data_track",kind:"scalar",T:8,opt:!0}]),Bm=p.makeMessageType("livekit.JoinRequest",()=>[{no:1,name:"client_info",kind:"message",T:Ao},{no:2,name:"connection_settings",kind:"message",T:Zo},{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:Fn,repeated:!0},{no:6,name:"publisher_offer",kind:"message",T:jt},{no:7,name:"reconnect",kind:"scalar",T:8},{no:8,name:"reconnect_reason",kind:"enum",T:p.getEnumType($t)},{no:9,name:"participant_sid",kind:"scalar",T:9},{no:10,name:"sync_state",kind:"message",T:Br}]),jm=p.makeMessageType("livekit.WrappedJoinRequest",()=>[{no:1,name:"compression",kind:"enum",T:p.getEnumType(Vm)},{no:2,name:"join_request",kind:"scalar",T:12}]),Vm=p.makeEnum("livekit.WrappedJoinRequest.Compression",[{no:0,name:"NONE"},{no:1,name:"GZIP"}]),qm=p.makeMessageType("livekit.MediaSectionsRequirement",()=>[{no:1,name:"num_audios",kind:"scalar",T:13},{no:2,name:"num_videos",kind:"scalar",T:13}]),Km=p.makeEnum("livekit.EncodedFileType",[{no:0,name:"DEFAULT_FILETYPE"},{no:1,name:"MP4"},{no:2,name:"OGG"},{no:3,name:"MP3"}]),Wm=p.makeEnum("livekit.SegmentedFileProtocol",[{no:0,name:"DEFAULT_SEGMENTED_FILE_PROTOCOL"},{no:1,name:"HLS_PROTOCOL"}]),Hm=p.makeEnum("livekit.SegmentedFileSuffix",[{no:0,name:"INDEX"},{no:1,name:"TIMESTAMP"}]),Jm=p.makeEnum("livekit.ImageFileSuffix",[{no:0,name:"IMAGE_SUFFIX_INDEX"},{no:1,name:"IMAGE_SUFFIX_TIMESTAMP"},{no:2,name:"IMAGE_SUFFIX_NONE_OVERWRITE"}]),Gm=p.makeEnum("livekit.StreamProtocol",[{no:0,name:"DEFAULT_PROTOCOL"},{no:1,name:"RTMP"},{no:2,name:"SRT"}]),zm=p.makeEnum("livekit.AudioMixing",[{no:0,name:"DEFAULT_MIXING"},{no:1,name:"DUAL_CHANNEL_AGENT"},{no:2,name:"DUAL_CHANNEL_ALTERNATE"}]),ec=p.makeEnum("livekit.EncodingOptionsPreset",[{no:0,name:"H264_720P_30"},{no:1,name:"H264_720P_60"},{no:2,name:"H264_1080P_30"},{no:3,name:"H264_1080P_60"},{no:4,name:"PORTRAIT_H264_720P_30"},{no:5,name:"PORTRAIT_H264_720P_60"},{no:6,name:"PORTRAIT_H264_1080P_30"},{no:7,name:"PORTRAIT_H264_1080P_60"}]),$m=p.makeMessageType("livekit.RoomCompositeEgressRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9},{no:2,name:"layout",kind:"scalar",T:9},{no:3,name:"audio_only",kind:"scalar",T:8},{no:15,name:"audio_mixing",kind:"enum",T:p.getEnumType(zm)},{no:4,name:"video_only",kind:"scalar",T:8},{no:5,name:"custom_base_url",kind:"scalar",T:9},{no:6,name:"file",kind:"message",T:Vr,oneof:"output"},{no:7,name:"stream",kind:"message",T:nc,oneof:"output"},{no:10,name:"segments",kind:"message",T:qr,oneof:"output"},{no:8,name:"preset",kind:"enum",T:p.getEnumType(ec),oneof:"options"},{no:9,name:"advanced",kind:"message",T:ic,oneof:"options"},{no:11,name:"file_outputs",kind:"message",T:Vr,repeated:!0},{no:12,name:"stream_outputs",kind:"message",T:nc,repeated:!0},{no:13,name:"segment_outputs",kind:"message",T:qr,repeated:!0},{no:14,name:"image_outputs",kind:"message",T:Qm,repeated:!0},{no:16,name:"webhooks",kind:"message",T:dm,repeated:!0}]),Vr=p.makeMessageType("livekit.EncodedFileOutput",()=>[{no:1,name:"file_type",kind:"enum",T:p.getEnumType(Km)},{no:2,name:"filepath",kind:"scalar",T:9},{no:6,name:"disable_manifest",kind:"scalar",T:8},{no:3,name:"s3",kind:"message",T:xi,oneof:"output"},{no:4,name:"gcp",kind:"message",T:Li,oneof:"output"},{no:5,name:"azure",kind:"message",T:Ni,oneof:"output"},{no:7,name:"aliOSS",kind:"message",T:Ui,oneof:"output"}]),qr=p.makeMessageType("livekit.SegmentedFileOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(Wm)},{no:2,name:"filename_prefix",kind:"scalar",T:9},{no:3,name:"playlist_name",kind:"scalar",T:9},{no:11,name:"live_playlist_name",kind:"scalar",T:9},{no:4,name:"segment_duration",kind:"scalar",T:13},{no:10,name:"filename_suffix",kind:"enum",T:p.getEnumType(Hm)},{no:8,name:"disable_manifest",kind:"scalar",T:8},{no:5,name:"s3",kind:"message",T:xi,oneof:"output"},{no:6,name:"gcp",kind:"message",T:Li,oneof:"output"},{no:7,name:"azure",kind:"message",T:Ni,oneof:"output"},{no:9,name:"aliOSS",kind:"message",T:Ui,oneof:"output"}]),Qm=p.makeMessageType("livekit.ImageOutput",()=>[{no:1,name:"capture_interval",kind:"scalar",T:13},{no:2,name:"width",kind:"scalar",T:5},{no:3,name:"height",kind:"scalar",T:5},{no:4,name:"filename_prefix",kind:"scalar",T:9},{no:5,name:"filename_suffix",kind:"enum",T:p.getEnumType(Jm)},{no:6,name:"image_codec",kind:"enum",T:p.getEnumType(Zh)},{no:7,name:"disable_manifest",kind:"scalar",T:8},{no:8,name:"s3",kind:"message",T:xi,oneof:"output"},{no:9,name:"gcp",kind:"message",T:Li,oneof:"output"},{no:10,name:"azure",kind:"message",T:Ni,oneof:"output"},{no:11,name:"aliOSS",kind:"message",T:Ui,oneof:"output"}]),xi=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:tc}]),Li=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:tc}]),Ni=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}]),Ui=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}]),tc=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}]),nc=p.makeMessageType("livekit.StreamOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(Gm)},{no:2,name:"urls",kind:"scalar",T:9,repeated:!0}]),ic=p.makeMessageType("livekit.EncodingOptions",()=>[{no:1,name:"width",kind:"scalar",T:5},{no:2,name:"height",kind:"scalar",T:5},{no:3,name:"depth",kind:"scalar",T:5},{no:4,name:"framerate",kind:"scalar",T:5},{no:5,name:"audio_codec",kind:"enum",T:p.getEnumType(Yh)},{no:6,name:"audio_bitrate",kind:"scalar",T:5},{no:11,name:"audio_quality",kind:"scalar",T:5},{no:7,name:"audio_frequency",kind:"scalar",T:5},{no:8,name:"video_codec",kind:"enum",T:p.getEnumType(Xh)},{no:9,name:"video_bitrate",kind:"scalar",T:5},{no:12,name:"video_quality",kind:"scalar",T:5},{no:10,name:"key_frame_interval",kind:"scalar",T:1}]),Ym=p.makeMessageType("livekit.AutoParticipantEgress",()=>[{no:1,name:"preset",kind:"enum",T:p.getEnumType(ec),oneof:"options"},{no:2,name:"advanced",kind:"message",T:ic,oneof:"options"},{no:3,name:"file_outputs",kind:"message",T:Vr,repeated:!0},{no:4,name:"segment_outputs",kind:"message",T:qr,repeated:!0}]),Xm=p.makeMessageType("livekit.AutoTrackEgress",()=>[{no:1,name:"filepath",kind:"scalar",T:9},{no:5,name:"disable_manifest",kind:"scalar",T:8},{no:2,name:"s3",kind:"message",T:xi,oneof:"output"},{no:3,name:"gcp",kind:"message",T:Li,oneof:"output"},{no:4,name:"azure",kind:"message",T:Ni,oneof:"output"},{no:6,name:"aliOSS",kind:"message",T:Ui,oneof:"output"}]),Zm=p.makeMessageType("livekit.RoomEgress",()=>[{no:1,name:"room",kind:"message",T:$m},{no:3,name:"participant",kind:"message",T:Ym},{no:2,name:"tracks",kind:"message",T:Xm}]),Fi=p.makeMessageType("livekit.RoomConfiguration",()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"empty_timeout",kind:"scalar",T:13},{no:3,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:11,name:"metadata",kind:"scalar",T:9},{no:5,name:"egress",kind:"message",T:Zm},{no:7,name:"min_playout_delay",kind:"scalar",T:13},{no:8,name:"max_playout_delay",kind:"scalar",T:13},{no:9,name:"sync_streams",kind:"scalar",T:8},{no:10,name:"agents",kind:"message",T:Dr,repeated:!0}]),ef=p.makeMessageType("livekit.TokenSourceRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9,opt:!0},{no:2,name:"participant_name",kind:"scalar",T:9,opt:!0},{no:3,name:"participant_identity",kind:"scalar",T:9,opt:!0},{no:4,name:"participant_metadata",kind:"scalar",T:9,opt:!0},{no:5,name:"participant_attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:6,name:"room_config",kind:"message",T:Fi,opt:!0}]),rc=p.makeMessageType("livekit.TokenSourceResponse",()=>[{no:1,name:"server_url",kind:"scalar",T:9},{no:2,name:"participant_token",kind:"scalar",T:9}]);function tf(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Bi={exports:{}},nf=Bi.exports,sc;function rf(){return sc||(sc=1,(function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(nf,function(){var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],s={},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})})(Bi)),Bi.exports}var Bn=rf(),vn;(function(n){n[n.trace=0]="trace",n[n.debug=1]="debug",n[n.info=2]="info",n[n.warn=3]="warn",n[n.error=4]="error",n[n.silent=5]="silent"})(vn||(vn={}));var $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=Bn.getLogger("livekit");const ac=Object.values($e).map(n=>Bn.getLogger(n));z.setDefaultLevel(vn.info);function ot(n){const e=Bn.getLogger(n);return e.setDefaultLevel(z.getLevel()),e}function sf(n,e){if(e)Bn.getLogger(e).setLevel(n);else for(const t of ac)t.setLevel(n)}function af(n,e){(e?[e]:ac).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,o,a)=>{const c=r(s,o,a),d=vn[s],l=d>=o&&d<vn.silent;return(u,h)=>{h?c(u,h):c(u),l&&n(d,u,h)}},i.setLevel(i.getLevel())})}const of=Bn.getLogger("lk-e2ee"),jn=7e3,cf=[0,300,4*300,9*300,16*300,jn,jn,jn,jn,jn];class oc{constructor(e){this._retryDelays=e!==void 0?[...e]:cf}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;const t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+Math.random()*1e3}}function Kr(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 cc(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 cc=="function"?cc(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 ji={exports:{}},dc;function df(){if(dc)return ji.exports;dc=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)}ji.exports=s,ji.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 ji.exports}var yt=df();let lc=!0,uc=!0;function Vn(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function Yt(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(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 lf(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(lc=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function uf(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(uc=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function hc(){if(typeof window=="object"){if(lc)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Wr(n,e){uc&&console.warn(n+" is deprecated, please use "+e+" instead.")}function hf(n){const e={browser:null,version:null};if(typeof n>"u"||!n.navigator||!n.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:t}=n;if(t.userAgentData&&t.userAgentData.brands){const i=t.userAgentData.brands.find(r=>r.brand==="Chromium");if(i)return{browser:"chrome",version:parseInt(i.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=parseInt(Vn(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(Vn(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(Vn(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=Vn(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function mc(n){return Object.prototype.toString.call(n)==="[object Object]"}function fc(n){return mc(n)?Object.keys(n).reduce(function(e,t){const i=mc(n[t]),r=i?fc(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function Hr(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Hr(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{Hr(n,n.get(r),t)})}))}function pc(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&&Hr(n,a,r)})}),r}const gc=hc;function vc(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),gc("chrome: "+JSON.stringify(a)),c(a)})}a.video=i(a.video)}return gc("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 yc(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function bc(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 Yt(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function kc(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 Tc(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=>pc(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}),Yt(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>pc(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 Sc(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 Cc(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return Sc(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 Jr(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 Ec(n,e){Yt(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var wc=Object.freeze({__proto__:null,fixNegotiationNeeded:Ec,shimAddTrackRemoveTrack:Cc,shimAddTrackRemoveTrackWithNative:Sc,shimGetSendersWithDtmf:kc,shimGetUserMedia:vc,shimMediaStream:yc,shimOnTrack:bc,shimPeerConnection:Jr,shimSenderReceiverGetStats:Tc});function Rc(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,o){Wr("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 mf(n,e){n.navigator.mediaDevices&&"getDisplayMedia"in n.navigator.mediaDevices||n.navigator.mediaDevices&&(n.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){const r=new DOMException("getDisplayMedia without video constraints is undefined");return r.name="NotFoundError",r.code=8,Promise.reject(r)}return i.video===!0?i.video={mediaSource:e}:i.video.mediaSource=e,n.navigator.mediaDevices.getUserMedia(i)})}function _c(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 Gr(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 Pc(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 Ic(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpReceiver.prototype)return;const e=n.RTCPeerConnection.prototype.getReceivers;e&&(n.RTCPeerConnection.prototype.getReceivers=function(){const i=e.apply(this,[]);return i.forEach(r=>r._pc=this),i}),Yt(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Mc(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){Wr("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function Oc(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function Dc(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 Ac(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 xc(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 Lc(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 Nc=Object.freeze({__proto__:null,shimAddTransceiver:Dc,shimCreateAnswer:Lc,shimCreateOffer:xc,shimGetDisplayMedia:mf,shimGetParameters:Ac,shimGetUserMedia:Rc,shimOnTrack:_c,shimPeerConnection:Gr,shimRTCDataChannel:Oc,shimReceiverGetStats:Ic,shimRemoveStream:Mc,shimSenderGetStats:Pc});function Uc(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 Fc(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 Bc(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 jc(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(Vc(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function Vc(n){return n&&n.video!==void 0?Object.assign({},n,{video:fc(n.video)}):n}function qc(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?(Wr("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 Kc(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 Wc(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 Hc(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var Jc=Object.freeze({__proto__:null,shimAudioContext:Hc,shimCallbacksAPI:Bc,shimConstraints:Vc,shimCreateOfferLegacy:Wc,shimGetUserMedia:jc,shimLocalStreamsAPI:Uc,shimRTCIceServerUrls:qc,shimRemoteStreamsAPI:Fc,shimTrackEventTransceiver:Kc}),zr={exports:{}},Gc;function ff(){return Gc||(Gc=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-XlHLDT6U.js";
|
|
2
2
|
function Qe(C, L, g, i) {
|
|
3
3
|
const M = De(C, `${L}/v2/agents/${g}`, i);
|
|
4
4
|
return {
|