@camstack/addon-admin-ui 0.1.39 → 0.1.46

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.
Files changed (47) hide show
  1. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-Cv6qLu_-.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CRKSbdgN.js} +1 -1
  2. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-CChEG9e0.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-BGPfTw3V.js} +1 -1
  3. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-C1BmHlGM.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-jPpiOa0I.js} +1 -1
  4. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-Bxv_3KWz.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-DYNYuSL7.js} +1 -1
  5. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-DC63qZbr.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-ij0ODm-n.js} +1 -1
  6. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-D2C49VyZ.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-C4Ko8zXp.js} +1 -1
  7. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-D3WbXy3O.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-Cf5gSqc_.js} +1 -1
  8. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-Csg6EbPB.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-CYaX3FDr.js} +1 -1
  9. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-CUc0oFNo.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-rHwdrynu.js} +1 -1
  10. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-vh0hhA5d.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-DRDS6j-Y.js} +1 -1
  11. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.mjs-CpGtTxci.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.mjs-cUuqcEcL.js} +2 -2
  12. package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.mjs_commonjs-proxy-RUDPE9aM.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.mjs_commonjs-proxy-CzMP41OH.js} +1 -1
  13. package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-TUicghXo.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DNAkeUTZ.js} +1 -1
  14. package/dist/assets/{devices-GLp7me2a.js → devices-DaqavVOg.js} +1 -1
  15. package/dist/assets/{hostInit-94fVe_XD.js → hostInit-ByQycOVJ.js} +1 -1
  16. package/dist/assets/index-B6kubsZI.js +151 -0
  17. package/dist/assets/index-BI1a6Whs.js +1 -0
  18. package/dist/assets/index-BVNg3Krt.js +1185 -0
  19. package/dist/assets/{index-TiJwCuZx.js → index-BbwPCEeT.js} +1 -1
  20. package/dist/assets/{index-D6khiudP.js → index-BpC2rqYA.js} +1 -1
  21. package/dist/assets/index-CukoHCyD.js +1 -0
  22. package/dist/assets/{index-JJ5NLHxC.js → index-Cyva9RmE.js} +1 -1
  23. package/dist/assets/index-DLnW8nGB.css +1 -0
  24. package/dist/assets/index-DNydUTOB.js +1 -0
  25. package/dist/assets/{index-CwF7Dxf8.js → index-DVLRgczW.js} +1 -1
  26. package/dist/assets/index-PXbclFuZ.js +87 -0
  27. package/dist/assets/index-QqQmcu5i.js +1 -0
  28. package/dist/assets/method-access-map-DjDdPRYC.js +1 -0
  29. package/dist/assets/{remoteEntry-JLETvOnh.js → remoteEntry-iRKuVHUX.js} +1 -1
  30. package/dist/assets/{schemas-BEt-CulV.js → schemas-BdJePqbR.js} +5 -5
  31. package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DM77_4pA.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-QVZxTxLo.js} +2 -2
  32. package/dist/index.html +152 -9
  33. package/dist/mf-entry-bootstrap-0.js +2 -2
  34. package/dist/server/addon.js +435 -52
  35. package/dist/server/addon.js.map +1 -1
  36. package/dist/sw.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/assets/index-BM6aK9lG.js +0 -1150
  39. package/dist/assets/index-ByRJWRUP.js +0 -1
  40. package/dist/assets/index-COoei6lw.css +0 -1
  41. package/dist/assets/index-CtHpLu0L.js +0 -1
  42. package/dist/assets/index-DNY_otk4.js +0 -151
  43. package/dist/assets/index-DQFO9ZU6.js +0 -1
  44. package/dist/assets/index-WrAHDGEr.js +0 -87
  45. package/dist/assets/index-b0D9qthW.js +0 -1
  46. package/dist/assets/method-access-map-DLEhlu0x.js +0 -1
  47. package/dist/registerSW.js +0 -1
@@ -1 +0,0 @@
1
- import{h as P,z as L,i as F,j as $,s as U,k as z,p as K,m as W,l as H,n as j,o as D,q as Z,r as R,t as q,u as V,v as G,w as Y,x as J,y as Q,A as ye,B as ve,C as Ce,F as we,G as Ie,H as Ae,I as Ee,J as _e,K as ke,L as Pe,O as De,P as Re,Q as Ne,R as Te,T as xe,U as Oe,V as Me,X as Be,Y as Le,Z as Fe,_ as $e,$ as Ue,a0 as ze,a1 as Ke,a2 as We,a3 as He,a4 as je,a5 as Ze,a6 as qe,a7 as Ve,a8 as Ge,a9 as Ye,aa as Je,ab as Qe,ac as Xe,ad as et,ae as tt,af as at,ag as st,ah as it,ai as nt,aj as rt,ak as ot,al as ct,am as dt,an as lt,ao as ut,ap as ht,aq as mt,ar as pt,as as ft,at as gt,au as St,av as bt,aw as yt,ax as vt,ay as Ct,az as wt,aA as It,aB as At,aC as Et,aD as _t,aE as kt,aF as Pt,aG as Dt,aH as Rt,aI as Nt,aJ as Tt,aK as xt,aL as Ot,aM as Mt,aN as Bt,aO as Lt,aP as Ft,aQ as $t,aR as Ut,aS as zt,aT as Kt,aU as Wt,aV as Ht,aW as jt,aX as Zt,aY as qt,aZ as Vt,a_ as Gt,a$ as Yt,b0 as Jt,b1 as Qt,b2 as Xt,b3 as ea,b4 as ta,b5 as aa,b6 as sa,b7 as ia,D as na,b8 as ra,b as oa,b9 as ca,ba as da,bb as la,bc as ua,a as ha,bd as ma,be as pa,bf as fa,bg as ga,bh as Sa,bi as ba,bj as ya,bk as va,bl as Ca,bm as wa,bn as Ia,bo as Aa,bp as Ea,E as _a,bq as ka,br as Pa,bs as Da,bt as Ra,bu as Na,bv as Ta,bw as xa,bx as Oa,by as Ma,bz as Ba,bA as La,bB as Fa,bC as $a,bD as Ua,bE as za,bF as Ka,bG as Wa,bH as Ha,bI as ja,bJ as Za,bK as qa,M as Va,bL as Ga,bM as Ya,d as Ja,bN as Qa,bO as Xa,bP as es,bQ as ts,bR as as,bS as ss,bT as is,bU as ns,bV as rs,bW as os,bX as cs,bY as ds,bZ as ls,S as us,b_ as hs,b$ as ms,c0 as ps,N as fs,c1 as gs,c2 as Ss,c3 as bs,c4 as ys,c5 as vs,c6 as Cs,c7 as ws,c8 as Is,c9 as As,ca as Es,cb as _s,cc as ks,cd as Ps,ce as Ds,cf as Rs,cg as Ns,ch as Ts,ci as xs,cj as Os,ck as Ms,cl as Bs,cm as Ls,cn as Fs,co as $s,cp as Us,cq as zs,cr as Ks,cs as Ws,ct as Hs,cu as js,cv as Zs,cw as qs,cx as Vs,cy as Gs,cz as Ys,cA as Js,cB as Qs,cC as Xs,cD as ei,cE as ti,cF as ai,cG as si,cH as ii,cI as ni,cJ as ri,cK as oi,cL as ci,e as di,cM as li,cN as ui,cO as hi,cP as mi,cQ as pi,cR as fi,cS as gi,cT as Si,cU as bi,cV as yi,cW as vi,cX as Ci,cY as wi,cZ as Ii,c_ as Ai,c$ as Ei,d0 as _i,d1 as ki,d2 as Pi,d3 as Di,d4 as Ri,d5 as Ni,d6 as Ti,d7 as xi,d8 as Oi,d9 as Mi,da as Bi,db as Li,dc as Fi,dd as $i,de as Ui,df as zi,dg as Ki,dh as Wi,di as Hi,dj as ji,dk as Zi,dl as qi,dm as Vi,dn as Gi,dp as Yi,dq as Ji,dr as Qi,ds as Xi,dt as en,du as tn,dv as an,g as sn,dw as nn,dx as rn,dy as on,dz as cn,dA as dn,dB as ln,dC as un,dD as hn,dE as mn,dF as pn,dG as fn,dH as gn,dI as Sn,dJ as bn,dK as yn,W as vn,dL as Cn,dM as wn,dN as In,dO as An,dP as En,dQ as _n,dR as kn,dS as Pn,dT as Dn,dU as Rn,dV as Nn,dW as Tn,dX as xn,dY as On,dZ as Mn,d_ as Bn,d$ as Ln,e0 as Fn,e1 as $n,e2 as Un,e3 as zn,e4 as Kn,e5 as Wn,e6 as Hn,e7 as jn,e8 as Zn,e9 as qn,ea as Vn,eb as Gn,ec as Yn,ed as Jn,ee as Qn,c as Xn,ef as er,eg as tr,eh as ar,f as sr,ei as ir,ej as nr,ek as rr,el as or,em as cr,en as dr,eo as lr,ep as ur,eq as hr,er as mr,es as pr,et as fr,eu as gr,ev as Sr,ew as br,ex as yr,ey as vr,ez as Cr,eA as wr,eB as Ir,eC as Ar,eD as Er,eE as _r,eF as kr,eG as Pr,eH as Dr,eI as Rr,eJ as Nr,eK as Tr,eL as xr,eM as Or,eN as Mr,eO as Br,eP as Lr,eQ as Fr,eR as $r,eS as Ur,eT as zr,eU as Kr,eV as Wr,eW as Hr,eX as jr,eY as Zr,eZ as qr,e_ as Vr,e$ as Gr,f0 as Yr,f1 as Jr,f2 as Qr,f3 as Xr,f4 as eo,f5 as to,f6 as ao,f7 as so,f8 as io,f9 as no,fa as ro,fb as oo}from"./index-DQFO9ZU6.js";import{E as v,A as co,C as lo,a as uo,D as ho,K as mo,M as po,S as fo}from"./method-access-map-DLEhlu0x.js";import{Z as go,p as So,q as bo,v as yo,w as vo,x as Co,y as X,z as wo,A as Io}from"./schemas-BEt-CulV.js";class Ao{disposers=[];disposed=!1;onError;constructor(e={}){this.onError=e.onError??((t,s)=>{console.error(`[DisposerChain] disposer #${s} threw`,t)})}add(e){if(this.disposed){try{const t=e();t&&typeof t.then=="function"&&t.catch(s=>this.onError(s,-1))}catch(t){this.onError(t,-1)}return()=>{}}return this.disposers.push(e),()=>{const t=this.disposers.indexOf(e);t>=0&&this.disposers.splice(t,1)}}get isDisposed(){return this.disposed}get size(){return this.disposers.length}async dispose(){if(this.disposed)return;this.disposed=!0;const e=this.disposers.slice().reverse();this.disposers=[];for(let t=0;t<e.length;t++){const s=e[t];try{const i=s();i&&typeof i.then=="function"&&await i}catch(i){this.onError(i,e.length-1-t)}}}}const ee="hub-only";function y(a){return{placement:a.execution?.placement??ee,group:a.execution?.group}}function Eo(a){const e=y(a).placement;return e==="any-node"||e==="agent-only"}function _o(a){return y(a).placement==="agent-only"}function ko(a){return y(a).group}function Po(a,e){return a.execution?.group??e}function Do(a){return y(a).placement}function Ro(a,e){return a.category===e}function N(a,e,t){return{id:typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2),timestamp:new Date,source:e,category:a,data:t}}function te(a,e){const t=e.ts??Date.now();a.emit(N("system.ready-state",{type:"capability",id:e.capName,nodeId:e.sourceNodeId},{capName:e.capName,scope:e.scope,state:e.state,generation:e.generation,sourceNodeId:e.sourceNodeId,ts:t}))}class ae{_ctx=null;_config;_readinessGeneration=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14);_registeredCapNames=[];defaults;constructor(e){this.defaults=e,this._config={...e}}get autoEmitReadiness(){return!0}get ctx(){if(!this._ctx)throw new Error(`${this.constructor.name}: ctx accessed before initialize()`);return this._ctx}get ctxIfReady(){return this._ctx}get config(){return this._config}async initialize(e){this._ctx=e,await this.resolveConfig();const t=await this.onInitialize();this.emitLifecycle(v.AddonStarted);const s=se(t),i=s&&"providers"in s&&s.providers?s.providers:[];return this._registeredCapNames=i.map(n=>n.capability.name),s}postBrokerStart(){this.autoEmitReadiness&&this._registeredCapNames.length>0&&this.emitReadinessForProviders("ready")}async onHubReachable(){}async shutdown(){this.emitLifecycle(v.AddonStopped),this.autoEmitReadiness&&this.emitReadinessForProviders("down"),await this.onShutdown();for(const e of this._subscriptions)e();this._subscriptions=[],this._ctx=null}async onShutdown(){}async onConfigChanged(){}field(e){return e}schema(e){return e}globalSettingsSchema(){return null}deviceSettingsSchema(){return null}async getGlobalSettings(e){const t=this.globalSettingsSchema();if(!t)return{sections:[]};const s=await this._ctx?.settings?.readAddonStore()??{};return P(t,e?{...s,...e}:s)}async updateGlobalSettings(e){await this._ctx?.settings?.writeAddonStore(e),await this.resolveConfig(),await this.onConfigChanged(),this.emitLifecycle(v.AddonUpdated,{level:"global"}),this.maybeAutoRestart(e,this.globalSettingsSchema())}maybeAutoRestart(e,t){if(!t)return;const s=new Set;for(const o of t.sections)for(const c of o.fields)c.type==="separator"||c.type==="info"||c.requiresRestart&&s.add(c.key);if(s.size===0||!Object.keys(e).some(o=>s.has(o)))return;const n=this._ctx;if(!n)return;const r=n.id;setImmediate(()=>{n.api.addons?.restartAddon?.mutate({addonId:r}).then(()=>{n.logger.info("addon auto-restart triggered by restart-required setting change",{meta:{changedFields:Object.keys(e).filter(c=>s.has(c))}})}).catch(c=>{n.logger.error("addon auto-restart failed",{meta:{error:c instanceof Error?c.message:String(c)}})})})}async getDeviceSettings(e){const t=this.deviceSettingsSchema();if(!t)return{sections:[]};const s=await this._ctx?.settings?.readDeviceStore(e)??{};return P(t,s)}async updateDeviceSettings(e,t){await this._ctx?.settings?.writeDeviceStore(e,t)}_subscriptions=[];watchCapability(e,t){const s=Array.isArray(e)?e:[e],i=new Set(s);this.subscribe({category:"system.ready-state"},n=>{const r=n.data;if(typeof r.capName!="string"||!i.has(r.capName)||r.scope?.type!=="node")return;const o=r.scope.nodeId;if(typeof o!="string"||o.length===0)return;const c=r.capName;r.state==="down"?t.onDown?.(o,c):r.state==="ready"&&t.onReady?.(o,c)})}subscribe(e,t){const s=this.ctx.eventBus.subscribe(e,t);this._subscriptions.push(s)}emitLifecycle(e,t){try{this._ctx?.eventBus.emit({id:`${this._ctx.id}-${Date.now()}`,timestamp:new Date,source:{type:"addon",id:this._ctx.id,nodeId:this._ctx.kernel.localNodeId??"hub"},category:e,data:t??{}})}catch{}}emitReadinessForProviders(e){const t=this._ctx;if(!t||this._registeredCapNames.length===0)return;const s=t.kernel?.localNodeId??"hub",i=s.includes("/")?s.split("/")[0]:s;for(const n of this._registeredCapNames)try{te(t.eventBus,{capName:n,scope:{type:"node",nodeId:i},state:e,generation:this._readinessGeneration,sourceNodeId:i})}catch{}}async resolveModelsDir(){return this.ctx.api.storage.resolve.query({location:"models",relativePath:""}).catch(()=>"camstack-data/models")}get capabilities(){return this.ctx.capabilities??null}async resolveConfig(){const e=await this.readAddonStoreWithRetry(),t={...this.defaults};for(const s of Object.keys(this.defaults)){const i=e[s];if(i!=null){const n=typeof this.defaults[s];typeof i===n&&(t[s]=i)}}this._config=t}async readAddonStoreWithRetry(){const e=this._ctx?.settings;if(!e)return{};const t=[150,350,600,900];let s;for(let i=0;i<=t.length;i++)try{return await e.readAddonStore()??{}}catch(n){s=n;const r=n instanceof Error?n.message:String(n);if(!(r.includes("SqliteSettingsBackend not initialized")||r.includes("provider not available")))throw n;if(i===t.length)break;await new Promise(c=>setTimeout(c,t[i]))}return this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults",{meta:{error:s instanceof Error?s.message:String(s)}}),{}}}function se(a){if(a!=null)return Array.isArray(a)?{providers:a}:a}function No(a,e){return{id:a,getRoutes:()=>e,invoke:async t=>{const s=To(e,t.method,t.path);if(!s)return{status:404,headers:{},redirectUrl:null,body:{error:`No route matches ${t.method} ${t.path}`}};const i={status:200,headers:{},redirectUrl:null},n=Oo(i),r={params:{...t.params,...s.params},query:t.query,body:t.body,headers:t.headers,...t.user?{user:t.user}:{},...t.scopedToken!==void 0?{scopedToken:t.scopedToken}:{}};return await s.route.handler(r,n),i}}}function To(a,e,t){const s=e.toUpperCase();for(const i of a){if(i.method!==s)continue;const n=xo(i.path,t);if(n!==null)return{route:i,params:n}}return null}function xo(a,e){const t=a.split("/").filter(Boolean),s=e.split("/").filter(Boolean);if(t.length!==s.length)return null;const i={};for(let n=0;n<t.length;n++){const r=t[n],o=s[n];if(r.startsWith(":"))i[r.slice(1)]=o;else if(r!==o)return null}return i}function Oo(a){const e={status(t){return a.status=t,e},code(t){return a.status=t,e},send(t){a.body=t},redirect(t){a.redirectUrl=t,a.status===200&&(a.status=302)},header(t,s){return a.headers[t.toLowerCase()]=s,e},type(t){return a.contentType=t,e}};return e}class ie extends Error{capName;scope;waitedMs;constructor(e,t,s){super(`Timed out waiting for ${e} (${f(t)}) to become ready after ${s}ms`),this.name="ReadinessTimeoutError",this.capName=e,this.scope=t,this.waitedMs=s}}function C(a,e){return`${a}|${f(e)}`}function f(a){switch(a.type){case"global":return"global";case"node":return`node:${a.nodeId}`;case"device":return`device:${a.deviceId}`}}function _(a,e){return a.type!==e.type?!1:a.type==="global"||e.type==="global"?!0:a.type==="node"&&e.type==="node"?a.nodeId===e.nodeId:a.type==="device"&&e.type==="device"?a.deviceId===e.deviceId:!1}class Mo{bus;sourceNodeId;logger;now;generation;snapshot=new Map;subscriptions=new Set;unsubscribeBus;unsubscribeAgentOffline;constructor(e){if(this.bus=e.eventBus,this.sourceNodeId=e.sourceNodeId,this.logger=e.logger,this.now=e.now??(()=>Date.now()),this.generation=e.generation??Bo(),this.unsubscribeBus=this.bus.subscribe({category:"system.ready-state"},t=>this.ingest(t.data)),this.unsubscribeAgentOffline=this.bus.subscribe({category:"agent.offline"},t=>this.synthesizeDownForNode(t.data.agentId)),typeof this.bus.getRecent=="function")try{const t=this.bus.getRecent({category:"system.ready-state"});for(const s of t)this.ingest(s.data)}catch{}}close(){this.unsubscribeBus(),this.unsubscribeAgentOffline(),this.subscriptions.clear()}get(e,t){return this.snapshot.get(C(e,t))??null}getSnapshotForTransport(){return Array.from(this.snapshot.values())}hydrate(e){const t=this.now();for(const s of e){const i=C(s.capName,s.scope);if(this.snapshot.has(i))continue;const n={capName:s.capName,scope:s.scope,state:s.state,generation:s.generation,epoch:1,lastChange:t,sourceNodeId:s.sourceNodeId};this.snapshot.set(i,n),this.logger&&this.logger.debug(`readiness: ${s.capName} (${f(s.scope)}) → ${s.state} (hydrated, gen=${s.generation.slice(0,6)})`);const r={capName:s.capName,scope:s.scope,state:s.state,epoch:1,generation:s.generation,sourceNodeId:"hydrated",ts:t,durationInPrevState:0};for(const o of this.subscriptions)if(o.capName===s.capName&&_(o.scope,s.scope))try{o.handler(r)}catch(c){this.logger?.warn(`readiness hydrate handler threw for ${s.capName}: ${c.message??String(c)}`)}}}getAll(){return new Map(this.snapshot)}emitReady(e,t){this.emitTransition(e,t,"ready")}emitStarting(e,t){this.emitTransition(e,t,"starting")}emitDown(e,t){this.emitTransition(e,t,"down")}awaitReady(e,t,s={}){const i=s.timeoutMs??Number.POSITIVE_INFINITY,n=this.now();return this.get(e,t)?.state==="ready"?Promise.resolve():s.signal?.aborted?Promise.reject(s.signal.reason??new Error("aborted")):new Promise((o,c)=>{let l=!1;const d=this.onReadyState(e,t,A=>{A.state==="ready"&&(l||(l=!0,p(),o()))}),h=!Number.isFinite(i)?null:setTimeout(()=>{l||(l=!0,p(),c(new ie(e,t,this.now()-n)))},i),S=()=>{l||(l=!0,p(),c(s.signal?.reason??new Error("aborted")))};s.signal?.addEventListener("abort",S,{once:!0});function p(){d(),h!==null&&clearTimeout(h),s.signal?.removeEventListener("abort",S)}})}onReadyState(e,t,s){const i={capName:e,scope:t,handler:s};this.subscriptions.add(i);const n=this.get(e,t);return n!==null&&queueMicrotask(()=>{this.subscriptions.has(i)&&s({capName:e,scope:t,state:n.state,epoch:n.epoch,generation:n.generation,sourceNodeId:this.sourceNodeId,ts:n.lastChange,durationInPrevState:0})}),()=>{this.subscriptions.delete(i)}}emitTransition(e,t,s){const i=this.now();this.bus.emit(N("system.ready-state",{type:"capability",id:e,nodeId:this.sourceNodeId},{capName:e,scope:t,state:s,generation:this.generation,sourceNodeId:this.sourceNodeId,ts:i}))}ingest(e){if(typeof e?.capName!="string"||e.state!=="ready"&&e.state!=="starting"&&e.state!=="down"||typeof e.generation!="string"||e.scope?.type!=="global"&&e.scope?.type!=="node"&&e.scope?.type!=="device")return;const t=C(e.capName,e.scope),s=this.snapshot.get(t)??null,i=this.now();let n;if(s===null?n=e.state==="ready"?1:0:s.generation!==e.generation&&e.state==="ready"?n=s.epoch+1:n=s.epoch,s!==null&&s.generation===e.generation&&s.state===e.state)return;const r=s===null?0:Math.max(0,i-s.lastChange),o={capName:e.capName,scope:e.scope,state:e.state,generation:e.generation,epoch:n,lastChange:i,sourceNodeId:e.sourceNodeId};this.snapshot.set(t,o);const c={capName:e.capName,scope:e.scope,state:e.state,epoch:n,generation:e.generation,sourceNodeId:e.sourceNodeId,ts:e.ts,durationInPrevState:r};this.logger&&this.logger.debug(`readiness: ${e.capName} (${f(e.scope)}) → ${e.state} epoch=${n} gen=${e.generation.slice(0,6)} (prev ${r}ms)`);for(const l of this.subscriptions)if(l.capName===e.capName&&_(l.scope,e.scope))try{l.handler(c)}catch(d){this.logger?.warn(`readiness handler threw for ${e.capName}: ${d.message??String(d)}`)}}synthesizeDownForNode(e){const t=this.now();for(const[s,i]of this.snapshot){if(i.state==="down"||!(i.scope.type==="node"&&i.scope.nodeId===e||i.scope.type==="device"&&i.sourceNodeId===e))continue;const r=Math.max(0,t-i.lastChange),o={...i,state:"down",lastChange:t};this.snapshot.set(s,o);const c={capName:i.capName,scope:i.scope,state:"down",epoch:i.epoch,generation:i.generation,sourceNodeId:this.sourceNodeId,ts:t,durationInPrevState:r};this.logger&&this.logger.debug(`readiness: ${i.capName} (${f(i.scope)}) → down (synthesized from agent.offline ${e})`);for(const l of this.subscriptions)if(l.capName===i.capName&&_(l.scope,i.scope))try{l.handler(c)}catch(d){this.logger?.warn(`readiness handler threw during agent.offline demux for ${i.capName}: ${d.message??String(d)}`)}}}}function Bo(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14)}function Lo(a,e){for(const{capName:t,scope:s}of e)a.emitDown(t,s)}const Fo=["data","media","recordings","recordings-high","recordings-low","recordings-clips","event-images","models","addons-data","cache","logs","backups"],$o={data:"db",media:"media",recordings:"recordings","recordings-high":"recordings-high","recordings-low":"recordings-low","recordings-clips":"recordings-clips","event-images":"event-images",models:"models","addons-data":"addons-data",cache:"/tmp/camstack-cache",logs:"logs",backups:"backups"},ne={high:"High",mid:"Mid",low:"Low"};function Uo(a){return ne[a]??a.charAt(0).toUpperCase()+a.slice(1)}function re(a){return(a.width??0)*(a.height??0)}function oe(a){if(a.length===0)return[];const e=a.map((s,i)=>({s,i,px:re(s.metadata??{})})).sort((s,i)=>i.px-s.px),t=Array.from({length:a.length});for(let s=0;s<e.length;s++){const{s:i,i:n}=e[s];let r;s===0?r="high":s===e.length-1?r="low":r="mid",t[n]={...i,quality:r}}return t}function zo(a){const e=a.height??0,t=a.width??0;return e>=1080||t>=1920?"high":e>=480||t>=640?"mid":"low"}function Ko(a){const e=a.protocols.find(i=>i.type==="rtsp"&&i.url)??a.protocols.find(i=>i.url),t=e?.type,s=t==="rtsp"?"rtsp":t==="http"||t==="flv"?"http-mjpeg":"custom";return{id:a.id,label:a.label??a.id,protocol:s,url:e?.url,profileHint:a.quality}}function m(a){return typeof a=="string"}function Wo(a){return typeof a=="object"&&a!==null&&!Array.isArray(a)}function Ho(a){return m(a)&&a.trim()?{url:a}:Wo(a)&&m(a.url)&&a.url.trim()?{url:a.url,label:m(a.label)?a.label:void 0}:null}function jo(a){const e=m(a.snapshot_url)?a.snapshot_url:void 0;if(Array.isArray(a.streams)){const r=[];for(const o of a.streams){const c=Ho(o);c&&r.push(c)}return{streams:r,snapshot_url:e}}const t=[],s=m(a.main_stream_url)?a.main_stream_url:void 0;s&&t.push({url:s,label:m(a.main_stream_name)?a.main_stream_name:void 0});const i=m(a.sub_stream_url)?a.sub_stream_url:void 0;i&&t.push({url:i,label:m(a.sub_stream_name)?a.sub_stream_name:void 0});const n=m(a.third_stream_url)?a.third_stream_url:void 0;return n&&t.push({url:n,label:m(a.third_stream_name)?a.third_stream_name:void 0}),{streams:t,snapshot_url:e}}function Zo(a){if(a.length===0)return{};const e=oe(a),t={},s=e.find(o=>o.quality==="high"),i=e.find(o=>o.quality==="mid"),n=e.find(o=>o.quality==="low");s&&(t.high=s.id),i&&(t.mid=i.id),n&&(t.low=n.id);const r=s??i??n??e[0];return r&&(t.high||(t.high=r.id),t.mid||(t.mid=r.id),t.low||(t.low=r.id)),t}const qo={streaming:!0,notifications:!0,objectDetection:!1,remoteAccess:!0,agentCluster:!1,smartHome:!0,recordings:!0,backup:!0,repl:!0},Vo=["face","plate"],Go=["face","plate","clip","custom"],Yo={cleanupIntervalMs:3600*1e3,detectionEventsDays:30,audioLevelsDays:7,snapshotsDays:14};var ce=(a=>(a.Addon="addon",a.Core="core",a.Device="device",a.Provider="provider",a.System="system",a))(ce||{});const de="camstack/camstack-models",Jo=`https://huggingface.co/${de}/resolve/main`,Qo={"features.streaming":!0,"features.notifications":!0,"features.objectDetection":!1,"features.remoteAccess":!0,"features.agentCluster":!1,"features.smartHome":!0,"features.recordings":!0,"features.backup":!0,"features.repl":!0,"retention.detectionEventsDays":30,"retention.audioLevelsDays":7,"logging.level":"info","logging.retentionDays":30,"eventBus.ringBufferSize":1e4,"storage.provider":"sqlite-storage","storage.locations":{data:"camstack-data/data",media:"camstack-data/media",recordings:"camstack-data/recordings",cache:"/tmp/camstack-cache",logs:"camstack-data/logs",models:"camstack-data/models"},providers:[],"recording.segmentDurationSeconds":4,"recording.defaultRetentionDays":30,"ffmpeg.binaryPath":"ffmpeg","ffmpeg.hwAccel":"auto","ffmpeg.threadCount":0,"auth.tokenExpiry":"24h"};function T(a){return JSON.parse(a)}function le(a){return a===null||typeof a!="object"||Array.isArray(a)?null:{...a}}function Xo(a){return Array.isArray(a)?a:[]}function ec(a,e=""){return typeof a=="string"?a:e}function tc(a,e=0){return typeof a=="number"?a:e}function ac(a,e=!1){return typeof a=="boolean"?a:e}function sc(a){try{return le(T(a))}catch{return null}}function ic(a){try{const e=T(a);return Array.isArray(e)?e:null}catch{return null}}function nc(a,e){return`https://huggingface.co/${a}/resolve/main/${e}`}function rc(a,e){if(a.length!==e.length)return 0;let t=0,s=0,i=0;for(let r=0;r<a.length;r++)t+=a[r]*e[r],s+=a[r]*a[r],i+=e[r]*e[r];const n=Math.sqrt(s)*Math.sqrt(i);return n===0?0:t/n}class oc{constructor(e,t){this.elementId=e,this.getBackend=typeof t=="function"?t:()=>t}cache={};listeners=new Set;loaded=!1;getBackend;async ensureLoaded(){if(this.loaded)return;const e=this.getBackend();if(!e)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available`);const t=await e.query({collection:"config",filter:{where:{id:this.elementId},limit:1}});t.length>0&&(this.cache=t[0].data??{}),this.loaded=!0}getAll(){return{...this.cache}}get(e){const t=e.split(".");let s=this.cache;for(const i of t){if(s===null||typeof s!="object"||Array.isArray(s))return;s=Reflect.get(s,i)}return s}async set(e,t){await this.ensureLoaded(),cc(this.cache,e,t),await this.persist(),this.notifyListeners()}async setAll(e){await this.ensureLoaded(),this.cache={...e},await this.persist(),this.notifyListeners()}onChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async load(){await this.ensureLoaded()}async loadDefaults(e){await this.ensureLoaded(),Object.keys(this.cache).length===0&&(this.cache={...e},await this.persist())}async persist(){const e=this.getBackend();if(!e)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available — cannot persist config`);await e.set({collection:"config",key:this.elementId,value:this.cache})}notifyListeners(){const e=this.getAll();for(const t of this.listeners)try{t(e)}catch{}}}function cc(a,e,t){const s=e.split(".");let i=a;for(let n=0;n<s.length-1;n++){const r=s[n],o=i[r];if(o===null||typeof o!="object"||Array.isArray(o)){const c={};i[r]=c,i=c}else i=o}i[s[s.length-1]]=t}const x={cpu:"onnx",coreml:"onnx",cuda:"onnx",tensorrt:"onnx","onnx-py":"onnx",pytorch:"pt",openvino:"openvino"},ue={onnx:"onnx",coreml:"coreml",openvino:"openvino",tflite:"tflite",pytorch:"pt"},he={coreml:"coreml_inference.py",pytorch:"pytorch_inference.py",openvino:"openvino_inference.py"};function me(a,e){return a==="node"?"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pytorch","onnx-py":"onnx",cpu:"onnx"}[e]??e}function dc(a,e){return a==="node"?x[e]??"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pt","onnx-py":"onnx",cpu:"onnx"}[e]??"onnx"}function lc(a,e){return!a||a==="auto"?"auto":me(a,e??"cpu")}function uc(a){return x[a]??"onnx"}function hc(a){return ue[a]}function mc(a){return he[a]}function pc(a){return a==="coreml"||a==="pytorch"||a==="openvino"}function pe(a){return a instanceof Error?a.message:typeof a=="string"?a:String(a)}async function fc(a,e){const t=performance.now();try{return{output:e!==void 0?await gc(a(),e):await a(),durationMs:M(performance.now()-t),ok:!0}}catch(s){return{output:void 0,durationMs:M(performance.now()-t),ok:!1,error:pe(s)}}}function M(a){return Math.round(a*100)/100}function gc(a,e){return new Promise((t,s)=>{const i=setTimeout(()=>s(new Error(`Inference timeout after ${e}ms`)),e);a.then(n=>{clearTimeout(i),t(n)}).catch(n=>{clearTimeout(i),s(n)})})}const Sc=[{id:"person",name:"Person"},{id:"bicycle",name:"Bicycle"},{id:"car",name:"Car"},{id:"motorcycle",name:"Motorcycle"},{id:"airplane",name:"Airplane"},{id:"bus",name:"Bus"},{id:"train",name:"Train"},{id:"truck",name:"Truck"},{id:"boat",name:"Boat"},{id:"traffic light",name:"Traffic Light"},{id:"fire hydrant",name:"Fire Hydrant"},{id:"stop sign",name:"Stop Sign"},{id:"parking meter",name:"Parking Meter"},{id:"bench",name:"Bench"},{id:"bird",name:"Bird"},{id:"cat",name:"Cat"},{id:"dog",name:"Dog"},{id:"horse",name:"Horse"},{id:"sheep",name:"Sheep"},{id:"cow",name:"Cow"},{id:"elephant",name:"Elephant"},{id:"bear",name:"Bear"},{id:"zebra",name:"Zebra"},{id:"giraffe",name:"Giraffe"},{id:"backpack",name:"Backpack"},{id:"umbrella",name:"Umbrella"},{id:"handbag",name:"Handbag"},{id:"tie",name:"Tie"},{id:"suitcase",name:"Suitcase"},{id:"frisbee",name:"Frisbee"},{id:"skis",name:"Skis"},{id:"snowboard",name:"Snowboard"},{id:"sports ball",name:"Sports Ball"},{id:"kite",name:"Kite"},{id:"baseball bat",name:"Baseball Bat"},{id:"baseball glove",name:"Baseball Glove"},{id:"skateboard",name:"Skateboard"},{id:"surfboard",name:"Surfboard"},{id:"tennis racket",name:"Tennis Racket"},{id:"bottle",name:"Bottle"},{id:"wine glass",name:"Wine Glass"},{id:"cup",name:"Cup"},{id:"fork",name:"Fork"},{id:"knife",name:"Knife"},{id:"spoon",name:"Spoon"},{id:"bowl",name:"Bowl"},{id:"banana",name:"Banana"},{id:"apple",name:"Apple"},{id:"sandwich",name:"Sandwich"},{id:"orange",name:"Orange"},{id:"broccoli",name:"Broccoli"},{id:"carrot",name:"Carrot"},{id:"hot dog",name:"Hot Dog"},{id:"pizza",name:"Pizza"},{id:"donut",name:"Donut"},{id:"cake",name:"Cake"},{id:"chair",name:"Chair"},{id:"couch",name:"Couch"},{id:"potted plant",name:"Potted Plant"},{id:"bed",name:"Bed"},{id:"dining table",name:"Dining Table"},{id:"toilet",name:"Toilet"},{id:"tv",name:"TV"},{id:"laptop",name:"Laptop"},{id:"mouse",name:"Mouse"},{id:"remote",name:"Remote"},{id:"keyboard",name:"Keyboard"},{id:"cell phone",name:"Cell Phone"},{id:"microwave",name:"Microwave"},{id:"oven",name:"Oven"},{id:"toaster",name:"Toaster"},{id:"sink",name:"Sink"},{id:"refrigerator",name:"Refrigerator"},{id:"book",name:"Book"},{id:"clock",name:"Clock"},{id:"vase",name:"Vase"},{id:"scissors",name:"Scissors"},{id:"teddy bear",name:"Teddy Bear"},{id:"hair drier",name:"Hair Drier"},{id:"toothbrush",name:"Toothbrush"}],bc=[{id:"person",name:"Person"},{id:"vehicle",name:"Vehicle"},{id:"animal",name:"Animal"}],yc={mapping:{person:"person",bicycle:"vehicle",car:"vehicle",motorcycle:"vehicle",airplane:"vehicle",bus:"vehicle",train:"vehicle",truck:"vehicle",boat:"vehicle",bird:"animal",cat:"animal",dog:"animal",horse:"animal",sheep:"animal",cow:"animal",elephant:"animal",bear:"animal",zebra:"animal",giraffe:"animal"},preserveOriginal:!1},vc={camera:{type:"camera",label:"Camera",icon:"camera"}};class g{schema;data;persistFn;constructor(e,t,s){this.schema=e,this.data=t,this.persistFn=s}static fromSchema(e,t,s={},i){const n=e.safeParse(s);if(n.success)return new g(e,n.data,t);const r=new Set;for(const d of n.error.issues){const u=d.path[0];typeof u=="string"&&r.add(u)}const o={...s};for(const d of r)delete o[d];const c=e.safeParse(o);if(i?.({droppedKeys:[...r],issues:n.error.issues}),c.success)return t(c.data).catch(()=>{}),new g(e,c.data,t);const l=e.parse({});return new g(e,l,t)}get values(){return this.data}get(e){return this.data[e]}async set(e,t){const s=this.schema.parse({...this.data,[e]:t});this.data=s,await this.persistFn(this.data)}async setAll(e){const t=this.schema.parse({...this.data,...e});this.data=t,await this.persistFn(this.data)}async deleteKey(e){const{[e]:t,...s}=this.data,i=this.schema.parse(s);this.data=i,await this.persistFn(this.data)}entries(){const e=this.schema.shape;return Object.entries(e).map(([t,s])=>({key:t,schema:s,value:this.data[t],description:s.description}))}}class I{writer;pendingWrites=new Set;slices;schemas=new Map;listeners=new Set;capListeners=new Map;constructor(e,t){this.writer=t,this.slices=new Map;for(const[s,i]of Object.entries(e))i&&typeof i=="object"&&!Array.isArray(i)&&this.slices.set(s,{...i})}static fromInitial(e,t){return new I(e,t)}installCapSchema(e,t){const s=this.schemas.get(e);if(s){if(s!==t)throw new Error(`[DeviceRuntimeState] capability "${e}" registered a different runtime-state schema; each cap must declare ONE shape across every provider`);return}this.schemas.set(e,t);const i=this.slices.get(e);if(i){const n=t.safeParse(i);n.success?this.slices.set(e,n.data):this.slices.delete(e)}}getCapState(e){const t=this.slices.get(e);if(t)return Object.freeze({...t})}getCapField(e,t){return this.slices.get(e)?.[t]}setCapState(e,t){this.applyCapWrite(e,t,!1)}patchCapState(e,t){this.applyCapWrite(e,t,!0)}applyCapWrite(e,t,s){const i=this.schemas.get(e);if(!i)throw new Error(`[DeviceRuntimeState] no schema registered for cap "${e}" — did the device register it via ctx.registerNativeCap before writing?`);const n=this.slices.get(e)??{},r=s?{...n,...t}:{...t},o=i.parse(r);if(Cc(n,o))return;this.slices.set(e,o),this.fireListeners([e]);const c=this.writer(e,{...o}).catch(()=>{});this.pendingWrites.add(c),c.finally(()=>{this.pendingWrites.delete(c)})}fireListeners(e){const t=this.snapshot();for(const s of this.listeners)try{s(e,t)}catch{}for(const s of e){const i=this.capListeners.get(s);if(!i)continue;const n=this.getCapState(s);for(const r of i)try{r(n)}catch{}}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}subscribeCap(e,t){let s=this.capListeners.get(e);s||(s=new Set,this.capListeners.set(e,s));const i=n=>{t(n)};return s.add(i),()=>{const n=this.capListeners.get(e);n&&(n.delete(i),n.size===0&&this.capListeners.delete(e))}}snapshot(){const e={};for(const[t,s]of this.slices)e[t]=Object.freeze({...s});return Object.freeze(e)}async flush(){if(this.pendingWrites.size===0)return;const e=[...this.pendingWrites];await Promise.allSettled(e)}}function Cc(a,e){const t=Object.keys(a),s=Object.keys(e);if(t.length!==s.length)return!1;for(const i of t)if(a[i]!==e[i])return!1;return!0}const k="lastFetchedAt";function wc(a){const{runtimeState:e,cap:t,ownDeviceId:s,refresh:i,staleMs:n,empty:r}=a,o=async()=>{const d=e.getCapState(t.name),u=typeof d?.[k]=="number"?d[k]:0;(!d||Date.now()-u>n)&&await i()},c=()=>{const d=e.getCapState(t.name);if(!d)return r();const{[k]:u,...h}=d;return h};return{ensureFresh:o,getStatus:async({deviceId:d})=>{if(d!==s)throw new Error(`${t.name}: deviceId mismatch, expected ${s}, got ${d}`);return await o(),c()}}}const Ic={audioMetrics:J,battery:Y,brightness:G,cameraStreams:V,deviceDiscovery:q,deviceStatus:R,doorbell:Z,featureProbe:D,motion:j,motionTrigger:H,motionZones:W,ptzAutotrack:K,streamParams:z,switch:U,zoneAnalytics:$,zoneRules:F,zones:L};class Ac{id;stableId;type;name;parentDeviceId;role;get online(){return this.runtimeState.getCapState("device-status")?.online??!1}set online(e){this.markOnline(e)}get state(){if(!this._stateProxyCache){const e={},t={get:(s,i)=>{const n=i;if(n in e)return e[n];const r=Ic[n];if(!r)return;const o=this.sliceProxy(r);return e[n]=o,o}};this._stateProxyCache=new Proxy(e,t)}return this._stateProxyCache}_stateProxyCache;config;runtimeState;ctx;location;disabled;constructor(e,t,s){if(this.ctx=e,this.id=e.id,this.stableId=e.stableId,this.type=s.type,!e.deviceMeta)throw new Error(`BaseDevice constructor: ctx.deviceMeta is required (id=${e.id} stableId=${e.stableId})`);this.name=e.deviceMeta.name,this.location=e.deviceMeta.location,this.disabled=e.deviceMeta.disabled,this.role=s.role,this.parentDeviceId=e.parentDeviceId;const i=e.persistedConfig??{};this.config=g.fromSchema(t,d=>e.persistConfig(d),i,({droppedKeys:d,issues:u})=>{e.logger.warn("Device config recovery: dropping invalid persisted fields",{tags:{deviceId:e.id,stableId:e.stableId},meta:{droppedKeys:[...d],firstIssue:u[0]?.message??null}})});let n=null;const r=async(d,u)=>{n||(n=e.fetchDevice(e.id)),await(await n).deviceState.setCapSlice({capName:d,slice:u})},o=e.initialRuntimeState??{};this.runtimeState=I.fromInitial(o,r),e.bindRuntimeState?.(this.runtimeState),e.registerNativeCap?.(R,{});const c={online:!1,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",c),e.registerNativeCap?.(D,{});const l={flags:{},deviceType:null,model:null,channelCount:null,lastProbedAt:0,lastFetchedAt:0};this.runtimeState.setCapState("feature-probe",l)}async removeDevice(){}markOnline(e){if(this.online===e)return;const t={online:e,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",t)}async refreshFeatures(){const t=this.ctx.api?.deviceManager?.registerDevice;if(t)try{await t.mutate({addonId:this.ctx.deviceMeta.addonId,stableId:this.stableId,id:this.id,type:this.type,name:this.name,parentDeviceId:this.parentDeviceId,features:[...this.features],config:{}})}catch{}}getCapSlice(e){return this.runtimeState.getCapState(e.name)??null}setCapSlice(e,t){this.runtimeState.setCapState(e.name,t)}sliceProxy(e){const t={},s={get:(i,n)=>this.runtimeState.getCapState(e.name)?.[n],set:(i,n,r)=>(this.runtimeState.patchCapState(e.name,{[n]:r}),!0),has:(i,n)=>{const r=this.runtimeState.getCapState(e.name);return r?n in r:!1},ownKeys:()=>{const i=this.runtimeState.getCapState(e.name);return i?Object.keys(i):[]},getOwnPropertyDescriptor:(i,n)=>{const r=this.runtimeState.getCapState(e.name);if(!(!r||!(n in r)))return{configurable:!0,enumerable:!0,value:r[n]}}};return new Proxy(t,s)}getSettingsUISchema(){return{sections:[]}}async applySettingsPatch(e){await this.config.setAll(e)}async onProbe(){}async onActivate(){}async reprobe(){this._kernelReprobe?await this._kernelReprobe():await this.onProbe()}_kernelReprobe;getAccessoryChildren(){return[]}getProbeFlags(){return this.runtimeState.getCapState("feature-probe")?.flags??{}}hasProbed(){return(this.runtimeState.getCapState("feature-probe")?.lastProbedAt??0)>0}}function fe(a,e){const t={};for(const s of a.config.entries())t[s.key]=s.value;return{id:a.id,stableId:a.stableId,addonId:e,type:String(a.type),name:a.name,parentDeviceId:a.parentDeviceId,online:a.online,features:[...a.features],config:t}}class Ec extends ae{async onInitialize(){return this.ctx.logger.info(`${this.providerName} Provider initialized`),[{capability:Q,provider:this}]}async onShutdown(){const e=await this.ctx.kernel.devices?.getAll()??[];for(const t of e)try{await this.ctx.kernel.devices?.decommission(t.id)}catch(s){this.ctx.logger.warn(`${this.providerName}: decommission failed`,{tags:{deviceId:t.id,stableId:t.stableId},meta:{error:s instanceof Error?s.message:String(s)}})}this.ctx.logger.info(`${this.providerName} Provider shut down`,{meta:{decommissionedCount:e.length}})}async start(){}async stop(){}async getStatus(){return{connected:!0,deviceCount:(await this.ctx.kernel.devices?.getAll()??[]).length}}async getDevices(){return(await this.ctx.kernel.devices?.getAll()??[]).map(t=>({id:t.stableId,name:t.name,type:String(t.type)}))}async supportsDiscovery(){return!1}async discoverDevices(){return[]}async adoptDiscoveredDevice(e){throw new Error(`${this.providerName} provider does not support discovery-based adoption`)}async supportsManualCreation(){return!0}async getChildCreationSchema(e){return this.onGetCreationSchema(e.type)}async createDevice(e){const t=await this.onCreateDevice(e.type,e.config),s=this.deviceClasses[t.meta.type];if(!s)throw new Error(`${this.providerName} provider: no device class registered for type "${t.meta.type}" — add it to the deviceClasses map`);const i=this.generateStableId(t.meta.type,t.config),n=await this.ctx.kernel.devices.create(i,s,t.config,null,t.meta);if(t.onAfterCreate)try{await t.onAfterCreate(n)}catch(r){this.ctx.logger.warn("createDevice: onAfterCreate hook threw — device is already registered",{tags:{deviceId:n.id,stableId:i},meta:{error:r instanceof Error?r.message:String(r)}})}return this.toSummary(n)}generateStableId(e,t){return`${this.addonId}-${Date.now()}`}async testCreationField(e){return{status:"ok",labels:["probe not implemented"]}}async restoreDevices(e){await this.onRestoreDevices(e),e.length>0&&this.ctx.logger.info(`Restored ${e.length} ${this.providerName} device(s)`)}async onRestoreDevices(e){const t=new Set;for(const i of e){if(i.parentDeviceId!==null)continue;const n=this.deviceClasses[i.type];if(!n){this.ctx.logger.warn("No device class registered for restored type — skipping",{tags:{stableId:i.stableId},meta:{type:i.type}});continue}try{await this.ctx.kernel.devices.create(i.stableId,n,{}),t.add(i.id)}catch(r){this.ctx.logger.warn("Failed to restore device",{tags:{stableId:i.stableId},meta:{type:i.type,error:r instanceof Error?r.message:String(r)}})}}const s=e.filter(i=>i.parentDeviceId!==null);for(const i of s){const n=this.deviceClasses[i.type];if(n&&i.parentDeviceId!==null&&t.has(i.parentDeviceId))try{await this.ctx.kernel.devices.create(i.stableId,n,{},i.parentDeviceId),t.add(i.id)}catch(r){this.ctx.logger.warn("Failed to restore hub-adopted child",{tags:{stableId:i.stableId,parentDeviceId:i.parentDeviceId},meta:{type:i.type,error:r instanceof Error?r.message:String(r)}})}}}toSummary(e){return fe(e,this.addonId)}}function b(a){return a.def}function _c(a,e="Configuration",t="main"){const s=a.map(i=>kc(i.key,i.schema,i.description));return{sections:[{id:t,title:e,fields:s}]}}function kc(a,e,t){const s=w(e),i=Tc(e),n=t??ge(a),r={key:a,label:n,description:t,default:i};return s instanceof go?Pc(a,r):s instanceof So?Dc(s,r):s instanceof bo?{...r,type:"boolean"}:s instanceof yo?Nc(s,r):s instanceof vo||s instanceof Co?{...r,type:"textarea",rows:6,isJson:!0}:{...r,type:"text"}}function Pc(a,e){const t=a.toLowerCase();return t.includes("password")||t.includes("secret")||t.includes("token")||t.includes("apikey")||t.includes("api_key")?{...e,type:"password",showToggle:!0}:{...e,type:"text"}}function Dc(a,e){const t=a,s=t.minValue,i=t.maxValue,n=s!=null&&isFinite(s)?s:void 0,r=i!=null&&isFinite(i)?i:void 0,o=Rc(a);return{...e,type:"number",...n!==void 0?{min:n}:{},...r!==void 0?{max:r}:{},...o!==void 0?{step:o}:{}}}function Rc(a){const t=b(a).checks??[];for(const s of t)if(s._zod?.def?.check==="multiple_of"&&s._zod.def.value!==void 0)return s._zod.def.value}function Nc(a,e){const t=a.options.map(i=>String(i));return{...e,type:"select",options:t.map(i=>({label:ge(i),value:i}))}}function w(a){return a instanceof X||a instanceof wo||a instanceof Io?w(b(a).innerType):a}function Tc(a){if(a instanceof X)return b(a).defaultValue}function ge(a){return a.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/^\w/,e=>e.toUpperCase()).trim()}function xc(a,e,t,s,i){if(t.length===0||e.length===0)return{passed:a,excluded:[]};const n=t.filter(h=>h.enabled!==!1),r=n.filter(h=>h.mode==="include"),o=n.filter(h=>h.mode==="exclude"),c=r.length>0,l=new Map(e.map(h=>[h.id,h])),d=[],u=[];for(const h of a){const S=s(h),p=i?.(h),A=r.some(E=>B(E,S,p,l)),O=o.some(E=>B(E,S,p,l));c?A&&!O?d.push(h):u.push(h):O?u.push(h):d.push(h)}return{passed:d,excluded:u}}function B(a,e,t,s){if(a.classFilter&&a.classFilter.length>0&&t!==void 0&&!a.classFilter.includes(t))return!1;for(const i of a.zoneIds){const n=s.get(i);if(n&&Oc(e,n.polygon))return!0}return!1}function Oc(a,e){if(e.length<3)return!1;let t=!1;const{x:s,y:i}=a;for(let n=0,r=e.length-1;n<e.length;r=n++){const o=e[n],c=e[r];o.y>i!=c.y>i&&s<(c.x-o.x)*(i-o.y)/(c.y-o.y||Number.EPSILON)+o.x&&(t=!t)}return t}function Mc(a){return a}function Bc(a,e,t){return{input:a,output:e,kind:t?.kind??"query",auth:t?.auth??"protected",scope:t?.scope??{kind:"system"}}}const Se=[{profile:"main",prefix:"streamMain",label:"Main stream"},{profile:"sub",prefix:"streamSub",label:"Sub stream"},{profile:"ext",prefix:"streamExt",label:"Third stream"}];function Lc(a,e,t){const s=[];if(e.resolutions.length>0){const i=e.resolutions.map(r=>({value:`${String(r.width)}x${String(r.height)}`,label:`${String(r.width)}×${String(r.height)}`})),n=t?`${String(t.width)}x${String(t.height)}`:void 0;n&&!i.some(r=>r.value===n)&&i.unshift({value:n,label:`${n.replace("x","×")} (current)`}),s.push({type:"select",key:`${a.prefix}_resolution`,label:"Resolution",options:i,default:n??i[0]?.value??""})}if(e.codecs.length>0&&s.push({type:"select",key:`${a.prefix}_codec`,label:"Codec",options:e.codecs.map(i=>({value:i,label:i==="h264"?"H.264":"H.265"})),default:t?.codec??e.codecs[0]}),e.framerates.length>0){const i=e.framerates.map(r=>({value:String(r),label:`${String(r)} fps`})),n=t?.framerate;n!==void 0&&!e.framerates.includes(n)&&i.unshift({value:String(n),label:`${String(n)} fps (current)`}),s.push({type:"select",key:`${a.prefix}_framerate`,label:"Frame rate",options:i,default:n!==void 0?String(n):i[0]?.value??""})}if(e.bitrates.length>0){const i=e.bitrates.map(r=>({value:String(r),label:`${String(r)} kbps`})),n=t?.bitrate;n!==void 0&&!e.bitrates.includes(n)&&i.unshift({value:String(n),label:`${String(n)} kbps (current)`}),s.push({type:"select",key:`${a.prefix}_bitrate`,label:"Bitrate",options:i,default:n!==void 0?String(n):i[0]?.value??""})}else{const i=e.bitrateRange;s.push({type:"number",key:`${a.prefix}_bitrate`,label:"Bitrate",unit:"kbps",...i?{min:i[0],max:i[1]}:{},default:t?.bitrate??i?.[0]??0})}if(e.supportsBitrateMode&&s.push({type:"select",key:`${a.prefix}_bitrateMode`,label:"Bitrate mode",options:[{value:"vbr",label:"VBR (variable)"},{value:"cbr",label:"CBR (constant)"}],default:t?.bitrateMode??"vbr"}),e.supportsEncoderProfile&&s.push({type:"select",key:`${a.prefix}_encoderProfile`,label:"Encoder profile",options:[{value:"baseline",label:"Baseline"},{value:"main",label:"Main"},{value:"high",label:"High"}],default:t?.encoderProfile??"main"}),e.supportsGop){const i=e.gop;if(i){const n=[];for(let o=i.min;o<=i.max;o+=i.step)n.push({value:String(o),label:`${String(o)} s`});const r=t?.gop;r!==void 0&&!n.some(o=>o.value===String(r))&&n.unshift({value:String(r),label:`${String(r)} s (current)`}),s.push({type:"select",key:`${a.prefix}_gop`,label:"I-frame interval (GOP)",options:n,default:r!==void 0?String(r):n[0]?.value??""})}else s.push({type:"number",key:`${a.prefix}_gop`,label:"I-frame interval (GOP)",unit:"s",min:1,default:t?.gop??1})}return s.length===0?null:{id:`stream-${a.profile}`,tab:"streaming",title:a.label,description:"Encoder parameters pushed to the camera. Option lists are read live from the camera — fields the firmware doesn't expose are hidden.",columns:2,fields:s}}function Fc(a,e){const t=[];for(const s of Se){const i=a[s.profile];if(!i)continue;const n=Lc(s,i,e?.[s.profile]);n&&t.push(n)}return t.length===0?null:{sections:t}}function $c(a,e){const t={};let s=!1;const i=`${e}_resolution`;if(i in a&&typeof a[i]=="string"){const[u,h]=a[i].split("x").map(Number);Number.isFinite(u)&&Number.isFinite(h)&&(t.width=u,t.height=h,s=!0)}const n=`${e}_codec`;n in a&&(a[n]==="h264"||a[n]==="h265")&&(t.codec=a[n],s=!0);const r=`${e}_framerate`;if(r in a){const u=Number(a[r]);Number.isFinite(u)&&(t.framerate=u,s=!0)}const o=`${e}_bitrate`;if(o in a){const u=Number(a[o]);Number.isFinite(u)&&(t.bitrate=u,s=!0)}const c=`${e}_bitrateMode`;c in a&&(a[c]==="vbr"||a[c]==="cbr")&&(t.bitrateMode=a[c],s=!0);const l=`${e}_encoderProfile`;l in a&&(a[l]==="high"||a[l]==="main"||a[l]==="baseline")&&(t.encoderProfile=a[l],s=!0);const d=`${e}_gop`;if(d in a){const u=Number(a[d]);Number.isFinite(u)&&(t.gop=u,s=!0)}return s?t:null}const Uc=["accessories","battery","brightness","camera-credentials","device-discovery","device-export","device-status","doorbell","feature-probe","intercom","motion","motion-trigger","motion-zones","mqtt-broker","native-object-detection","osd","ptz","ptz-autotrack","snapshot","stream-params","switch"],zc=[{id:"camera-viewer",label:"Camera viewer",description:"Read-only over every device — live streams, recordings, motion events, battery state. Combine with `allowedDevices` to restrict to specific cameras.",rows:[{type:"category",target:"device",access:["view"]}]},{id:"camera-operator",label:"Camera operator",description:"Everything `camera-viewer` does plus PTZ control, intercom, snapshots and recording start/stop. Cannot delete devices or recordings.",rows:[{type:"category",target:"device",access:["view","create"]}]},{id:"cli-deployer",label:"CLI deployer",description:"Push addons to the hub and tail their logs. Used by the `camstack` CLI on dev machines. No delete access — a stolen token cannot uninstall.",rows:[{type:"capability",target:"addons",access:["view","create"]}]},{id:"event-listener",label:"Event listener",description:"Subscribe to motion / audio events. Used by webhook bridges and Home Assistant integrations.",rows:[{type:"capability",target:"events",access:["view"]},{type:"capability",target:"motion-detection",access:["view"]},{type:"capability",target:"audio-analysis",access:["view"]}]}],be=Object.freeze({"device-export":"device-export","mesh-network":"mesh","mqtt-broker":"broker","network-access":"ingress","smtp-provider":"email"}),Kc=["device-export","mesh-network","mqtt-broker","network-access","smtp-provider"];function Wc(a){const e=[];for(const[t,s]of Object.entries(be))s===a&&e.push(t);return e}function Hc(a){try{const e=new URL(a);return!e.username&&!e.password?a:(e.username="",e.password="",e.toString())}catch{return a}}class jc{constructor(e){this.capacity=e,this.items=Array.from({length:e})}items;head=0;tail=0;count=0;get size(){return this.count}push(e){this.items[this.tail]=e,this.tail=(this.tail+1)%this.capacity,this.count<this.capacity?this.count++:this.head=(this.head+1)%this.capacity}drain(e){const t=[],s=Math.min(e,this.count);for(let i=0;i<s;i++)t.push(this.items[this.head]),this.items[this.head]=void 0,this.head=(this.head+1)%this.capacity;return this.count-=s,t}}function Zc(a,e,t){const s={};for(const i of Object.keys(t))s[i]=n=>a.addons.custom.mutate({addonId:e,action:i,input:n});return s}const Yc=Object.freeze(Object.defineProperty({__proto__:null,ACCESSORY_LABEL:ye,ALL_CAPABILITY_DEFINITIONS:co,APPLE_SA_TO_MACRO:ve,AUDIO_BACKEND_CHOICES:Ce,AUDIO_MACRO_LABELS:we,AccessoriesStatusSchema:Ie,AccessoryKind:Ae,AddBrokerInputSchema:Ee,AddonAutoUpdateSchema:_e,AddonListItemSchema:ke,AddonPageDeclarationSchema:Pe,AddonPageInfoSchema:De,AgentLoadSummarySchema:Re,AlertSchema:Ne,AlertSeveritySchema:Te,AlertSourceSchema:xe,AlertStatusSchema:Oe,ApiKeyRecordSchema:Me,ApiKeySummarySchema:Be,ArchiveEntrySchema:Le,ArchiveManifestSchema:Fe,AudioAnalysisResultSchema:$e,AudioAnalysisSettingsSchema:Ue,AudioChunkInputSchema:ze,AudioClassSummarySchema:Ke,AudioClassificationLabelSchema:We,AudioClassificationResultSchema:He,AudioCodecInfoSchema:je,AudioDecodeSessionConfigSchema:Ze,AudioEncodeSessionConfigSchema:qe,AudioEncodedChunkSchema:Ve,AudioEventSchema:Ge,AudioLevelSchema:Ye,AudioMetricsHistoryPointSchema:Je,AudioMetricsHistorySchema:Qe,AudioMetricsSnapshotSchema:Xe,AudioPcmChunkSchema:et,AuthResultSchema:tt,AutoUpdateSettingsSchema:at,AvailableIntegrationTypeSchema:st,BACKEND_TO_FORMAT:x,BATTERY_DEVICE_PROFILE:it,BackupDestinationInfoSchema:nt,BackupEntrySchema:rt,BaseAddon:ae,BaseDevice:Ac,BaseDeviceProvider:Ec,BatteryStatusSchema:ot,BoundingBoxSchema:ct,BrightnessStatusSchema:dt,BrokerAudioClientSchema:lt,BrokerClientsSchema:ut,BrokerConnectionDetailsSchema:ht,BrokerDecodedClientSchema:mt,BrokerInfoSchema:pt,BrokerRtspClientSchema:ft,BrokerStatsSchema:gt,BrokerStatusSchema:St,CAM_PROFILE_ORDER:bt,CAPABILITY_NAMES:lo,CAPABILITY_ROUTER_KEYS:uo,CAP_NAMES_WITH_STATUS:Uc,CAP_PROVIDER_KIND_MAP:be,COCO_80_LABELS:Sc,COCO_TO_MACRO:yc,CamProfileSchema:yt,CamStreamKindSchema:vt,CamStreamResolutionSchema:Ct,CameraCredentialsSchema:wt,CameraCredentialsStatusSchema:It,CameraMetricsSchema:At,CameraMetricsWithDeviceIdSchema:Et,CameraStreamSchema:_t,CapScopeSchema:kt,CapabilityBindingsSchema:Pt,ChargingStatus:Dt,ClientNetworkStatsSchema:Rt,ClusterAddonNodeDeploymentSchema:Nt,ClusterAddonStatusEntrySchema:Tt,CollectionColumnSchema:xt,CollectionIndexSchema:Ot,ConfigEntrySchema:Mt,ConfigSectionWithValuesSchema:Bt,ConfigTabDeclarationSchema:Lt,CreateApiKeyInputSchema:Ft,CreateApiKeyResultSchema:$t,CreateIntegrationInputSchema:Ut,CreateScopedTokenInputSchema:zt,CreateScopedTokenResultSchema:Kt,CreateUserInputSchema:Wt,CustomActionInputSchema:Ht,DEFAULT_ADDON_PLACEMENT:ee,DEFAULT_AUDIO_ANALYZER_CONFIG:jt,DEFAULT_DECODER_HWACCEL_CONFIG:Zt,DEFAULT_FEATURES:qo,DEFAULT_LOCATION_SUBDIRS:$o,DEFAULT_RETENTION:Yo,DEVICE_CAP_NAMES:ho,DEVICE_PROFILES:qt,DEVICE_SETTINGS_CONTRIBUTION_METHODS:Vt,DEVICE_STATUS_METHOD:Gt,DEVICE_TYPE_INFO:vc,DecodedAudioChunkSchema:Yt,DecodedFrameSchema:Jt,DecoderAssignmentSchema:Qt,DecoderSessionConfigSchema:Xt,DecoderStatsSchema:ea,DeleteIntegrationResultSchema:ta,DetectorOutputSchema:aa,DeviceConfig:g,DeviceDiscoveryStatusSchema:sa,DeviceExportExposeInputSchema:ia,DeviceExportStatusSchema:na,DeviceExportUnexposeInputSchema:ra,DeviceFeature:oa,DeviceInfoSchema:ca,DeviceNetworkStatsSchema:da,DeviceRole:la,DeviceRuntimeState:I,DeviceStatusSchema:ua,DeviceType:ha,DiscoveredChildDeviceSchema:ma,DiscoveredChildStatusSchema:pa,DiscoveredDeviceSchema:fa,DisposerChain:Ao,DoorbellPressEventSchema:ga,DoorbellStatusSchema:Sa,ElementConfigStore:oc,EmbeddingInfoSchema:ba,EmbeddingResultSchema:ya,EncodedPacketSchema:va,EnrichedWidgetMetadataSchema:Ca,EventCategory:v,EventItemSchema:wa,EventKindSchema:Ia,EventSourceType:ce,ExportSetupFieldSchema:Aa,ExportSetupSchema:Ea,ExposedDeviceSchema:_a,ExposedResourceSchema:ka,FeatureManifestSchema:Pa,FeatureProbeStatusSchema:Da,FrameHandleFormatSchema:Ra,FrameHandleSchema:Na,FrameInputSchema:Ta,GetStreamWithCodecInputSchema:xa,GlobalMetricsSchema:Oa,HF_BASE_URL:Jo,HF_REPO:de,HWACCEL_OPTIONS:Ma,HealthStatusSchema:Ba,HistoryPointSchema:La,HistoryResolutionEnum:Fa,InstalledPackageSchema:$a,IntegrationLiteSchema:Ua,IntegrationWithStateSchema:za,IntercomAbilitySchema:Ka,IntercomStatusSchema:Wa,KNOWN_CAP_NAMES:mo,LocationStatSchema:Ha,LogEntrySchema:ja,LogLevelSchema:Za,LogStreamEntrySchema:qa,MACRO_LABELS:bc,METHOD_ACCESS_MAP:po,MODEL_FORMATS:Va,MediaFileSchema:Ga,MeshPeerSchema:Ya,MeshStatusSchema:Ja,MethodAccessSchema:Qa,MotionAnalysisResultSchema:Xa,MotionEventSchema:es,MotionOnMotionChangedDataSchema:ts,MotionRegionSchema:as,MotionSourceEnum:ss,MotionSourcesSchema:is,MotionStatusSchema:ns,MotionTriggerRuntimeStateSchema:rs,MotionTriggerStatusSchema:os,MotionZoneOptionsSchema:cs,MotionZonePatchSchema:ds,MotionZoneStatusSchema:ls,MqttBrokerStatusSchema:us,NativeDetectionSchema:hs,NativeObjectClassEnum:ms,NativeObjectDetectionStatusSchema:ps,NetworkAccessStatusSchema:fs,NetworkAddressSchema:gs,NetworkEndpointSchema:Ss,NotificationHistoryEntrySchema:bs,NotificationRuleSchema:ys,NotificationSchema:vs,OauthIntegrationDescriptorSchema:Cs,ObjectEventSchema:ws,OrchestratorMetricsSchema:Is,OsdOverlayKindEnum:As,OsdOverlayPatchSchema:Es,OsdOverlaySchema:_s,OsdPositionEnum:ks,OsdStatusSchema:Ps,PIPELINE_FLOW_CAPABILITY_NAMES:Ds,PIPELINE_OWNER_CAPABILITY_NAMES:Rs,PROVIDER_KIND_CAP_NAMES:Kc,PYTHON_SCRIPT:he,PackageUpdateSchema:Ns,PackageVersionInfoSchema:Ts,PasskeySummarySchema:xs,PcmSampleFormatSchema:Os,PerScopeBreakdownSchema:Ms,PipelineAssignmentSchema:Bs,PipelineDefaultStepSchema:Ls,PipelineEngineChoiceSchema:Fs,PipelineRunResultBridge:$s,PipelineStepInputSchema:Us,PlaceholderReasonSchema:zs,PolygonPointSchema:Ks,ProfileSlotSchema:Ws,ProfileSlotStatusSchema:Hs,ProviderStatusSchema:js,PtzAutotrackRuntimeStateSchema:Zs,PtzAutotrackSettingsSchema:qs,PtzAutotrackStatusSchema:Vs,PtzAutotrackTargetOptionSchema:Gs,PtzMoveCommandSchema:Ys,PtzPositionSchema:Js,PtzPresetSchema:Qs,PtzStatusSchema:Xs,QueryFilterSchema:ei,RECOGNITION_TYPES:Go,RUNTIME_DEFAULTS:Qo,RUNTIME_TO_FORMAT:ue,ReadinessRegistry:Mo,ReadinessTimeoutError:ie,RegisteredStreamSchema:ti,ReportMotionInputSchema:ai,RingBuffer:jc,RtpSourceSchema:si,RtspRestreamEntrySchema:ii,RunnerCameraConfigSchema:ni,RunnerCameraDeviceUIFields:ri,RunnerLocalLoadSchema:oi,RunnerLocalMetricsSchema:ci,SCOPE_PRESETS:zc,STORAGE_LOCATION_CARDINALITY:di,STORAGE_LOCATION_TYPES:Fo,STREAM_PROFILE_META:Se,STREAM_QUALITY_LABELS:ne,SUB_DETECTION_TYPES:Vo,SYSTEM_CAP_NAMES:fo,ScopedTokenSchema:li,ScopedTokenSummarySchema:ui,SearchResultSchema:hi,SegmentSchema:mi,SendEmailInputSchema:pi,SendEmailResultSchema:fi,SettingsPatchSchema:gi,SettingsRecordSchema:Si,SettingsSchemaWithValuesSchema:bi,SettingsUpdateResultSchema:yi,ShmRingStatsSchema:vi,SmtpStatusSchema:Ci,SnapshotImageSchema:wi,SpatialDetectionSchema:Ii,SsoBridgeClaimsSchema:Ai,StartEmbeddedInputSchema:Ei,StorageAbortUploadInputSchema:_i,StorageBeginDownloadInputSchema:ki,StorageBeginDownloadResultSchema:Pi,StorageBeginUploadInputSchema:Di,StorageBeginUploadResultSchema:Ri,StorageEndDownloadInputSchema:Ni,StorageFinalizeUploadInputSchema:Ti,StorageLocationRefSchema:xi,StorageLocationSchema:Oi,StorageLocationTypeSchema:Mi,StorageProviderInfoSchema:Bi,StorageReadChunkInputSchema:Li,StorageTestLocationResultSchema:Fi,StorageWriteChunkInputSchema:$i,StreamFormatSchema:Ui,StreamInfoSchema:zi,StreamNetworkStatsSchema:Ki,StreamParamsOptionsSchema:Wi,StreamParamsStatusSchema:Hi,StreamProfileConfigSchema:ji,StreamProfileOptionsSchema:Zi,StreamProfilePatchSchema:qi,StreamProfileSchema:Vi,StreamSourceEntrySchema:Gi,StreamSourceSchema:Yi,SubscribeAudioChunksInputSchema:Ji,SubscribeAudioChunksResultSchema:Qi,SubscribeFramesInputSchema:Xi,SubscribeFramesResultSchema:en,SwitchStatusSchema:tn,SystemMetricsSchema:an,SystemMirror:sn,TestConnectionResultSchema:nn,ToastSchema:rn,TokenScopeSchema:on,TopologyNodeSchema:cn,TopologyProcessSchema:dn,TopologyServiceSchema:ln,TrackSchema:un,TrackStateSchema:hn,TrackedDetectionSchema:mn,TurnServerSchema:pn,UpdateIntegrationInputSchema:fn,UpdateUserInputSchema:gn,UserRecordSchema:Sn,UserSummarySchema:bn,WELL_KNOWN_TABS:yn,WELL_KNOWN_TAB_MAP:vn,WebrtcStreamChoiceSchema:Cn,WebrtcStreamTargetSchema:wn,WidgetHostEnum:In,WidgetMetadataSchema:An,WidgetRemoteSchema:En,WidgetSizeEnum:_n,YAMNET_TO_MACRO:kn,ZoneKindEnum:Pn,ZoneRuleModeEnum:Dn,ZoneRuleSchema:Rn,ZoneRuleStageEnum:Nn,ZoneRulesArraySchema:Tn,ZoneSchema:xn,ZoneScopeBreakdownSchema:On,accessoriesCapability:Mn,accessoryStableId:Bn,addonPagesCapability:Ln,addonPagesSourceCapability:Fn,addonRoutesCapability:$n,addonSettingsCapability:Un,addonWidgetsCapability:zn,addonWidgetsSourceCapability:Kn,addonsCapability:Wn,adminUiCapability:Hn,advancedNotifierCapability:jn,alertsCapability:Zn,asBoolean:ac,asJsonArray:Xo,asJsonObject:le,asNumber:tc,asString:ec,audioAnalysisCapability:qn,audioAnalyzerCapability:Vn,audioCodecCapability:Gn,audioMetricsCapability:J,authProviderCapability:Yn,autoAssignProfiles:Zo,backupCapability:Jn,batteryCapability:Y,bindAddonActions:Zc,brightnessCapability:G,buildAddonRouteProvider:No,buildStreamParamsConfigSchema:Fc,cameraCredentialsCapability:Qn,cameraStreamsCapability:V,classifyStream:zo,classifyStreams:oe,cosineSimilarity:rc,createDeviceProxy:Xn,createEvent:N,createLazyTrpcSource:er,createMirrorSource:tr,createRuntimeStateBridge:wc,createSliceHandle:ar,createSystemProxy:sr,customAction:Bc,decoderCapability:ir,defineCustomActions:Mc,detectionPipelineCapability:nr,deviceDiscoveryCapability:q,deviceExportCapability:rr,deviceManagerCapability:or,deviceMatchesProfile:cr,deviceOpsCapability:dr,deviceProviderCapability:Q,deviceStateCapability:lr,deviceStatusCapability:R,doorbellCapability:Z,embeddingEncoderCapability:ur,emitDownForOwnedCaps:Lo,emitReadiness:te,errMsg:pe,evaluateZoneRules:xc,event:hr,eventsCapability:mr,expandCapMethods:pr,featureProbeCapability:D,formatForBackend:uc,formatForRuntime:hc,getAudioMacroClassIds:fr,getCapsByProviderKind:Wc,hfModelUrl:nc,hydrateSchema:P,integrationsCapability:gr,intercomCapability:Sr,isAgentOnlyPlacement:_o,isDeployableToAgent:Eo,isDeviceConfigCap:br,isEvent:Ro,localNetworkCapability:yr,logDestinationCapability:vr,mapAudioLabelToMacro:Cr,maskUrlCredentials:Hc,meshNetworkCapability:wr,method:Ir,metricsProviderCapability:Ar,motionCapability:j,motionDetectionCapability:Er,motionTriggerCapability:H,motionZonesCapability:W,mqttBrokerCapability:_r,nativeObjectDetectionCapability:kr,networkAccessCapability:Pr,networkQualityCapability:Dr,nodesCapability:Rr,normalizeAddonInitResult:se,notificationOutputCapability:Nr,oauthIntegrationCapability:Tr,osdCapability:xr,parseCameraStreamConfig:jo,parseJsonArray:ic,parseJsonObject:sc,parseJsonUnknown:T,parseStreamParamsFormPatch:$c,pipelineAnalyticsCapability:Or,pipelineExecutorCapability:Mr,pipelineOrchestratorCapability:Br,pipelineRunnerCapability:Lr,platformProbeCapability:Fr,ptzAutotrackCapability:K,ptzCapability:$r,pythonScriptForBackend:mc,readinessKey:C,rebootCapability:Ur,recordingCapability:zr,recordingEngineCapability:Kr,requiresPython:pc,resolveAddonExecution:y,resolveAddonGroup:ko,resolveAddonPlacement:Do,resolveAddonRuntime:lc,resolveDetectionRuntime:me,resolveDeviceProfile:Wr,resolveModelFormat:dc,resolveRunnerId:Po,restreamerCapability:Hr,runInferenceStep:fc,scopeKey:f,settingsStoreCapability:jr,smtpProviderCapability:Zr,snapshotCapability:qr,snapshotProviderCapability:Vr,ssoBridgeCapability:Gr,storageCapability:Yr,storageProviderCapability:Jr,streamBrokerCapability:Qr,streamParamsCapability:z,streamPixels:re,streamQualityLabel:Uo,streamingEngineCapability:Xr,switchCapability:U,systemCapability:eo,toDeviceSummary:fe,toStreamSourceEntry:Ko,toastCapability:to,turnProviderCapability:ao,userManagementCapability:so,userPasskeysCapability:io,webrtcCapability:no,webrtcClientHintsSchema:ro,webrtcSessionCapability:oo,zodEntriesToConfigUI:_c,zoneAnalyticsCapability:$,zoneRulesCapability:F,zonesCapability:L},Symbol.toStringTag,{value:"Module"}));export{be as C,Fo as S,le as a,Yc as s};
@@ -1 +0,0 @@
1
- import{dZ as a,d$ as c,e0 as s,e1 as d,e2 as t,e3 as n,e4 as o,e5 as i,e6 as p,e7 as r,e8 as l,e9 as m,ea as u,eb as g,x as v,ec as S,ed as y,w as N,v as I,ee as w,u as k,ei as b,ej as h,t as P,ek as A,el as f,en as M,y as C,eo as z,r as D,q as x,ep as R,er as B,o as O,eu as T,ev as U,ex as L,ey as q,eA as E,eC as F,n as W,eD as H,l as _,m as Z,eE as j,eF as G,eG as K,eH as Q,eI as V,eJ as Y,eK as $,eL as J,eM as X,eN as ee,eO as ae,eP as ce,eQ as se,eR as de,p as te,eS as ne,eT as oe,eU as ie,eW as pe,eX as re,eY as le,eZ as me,e_ as ue,e$ as ge,f0 as ve,f1 as Se,f2 as ye,k as Ne,f3 as Ie,s as we,f4 as ke,f5 as be,f6 as he,f7 as Pe,f8 as Ae,f9 as fe,fb as Me,j as Ce,i as ze,z as De}from"./index-DQFO9ZU6.js";var xe=(e=>(e.SystemBoot="system.boot",e.SystemAddonsReady="system.addons-ready",e.SystemRestarting="system.restarting",e.SystemRestartCompleted="system.restart-completed",e.SystemReadyState="system.ready-state",e.AddonStarted="addon.started",e.AddonStopped="addon.stopped",e.AddonRestarted="addon.restarted",e.AddonUpdated="addon.updated",e.AddonInstalled="addon.installed",e.AddonUninstalled="addon.uninstalled",e.AddonCrashed="addon.crashed",e.AddonError="addon.error",e.AddonPageReady="addon.page-ready",e.AddonWidgetReady="addon.widget-ready",e.AddonLoadFailed="addon.load-failed",e.AddonLoadRecovered="addon.load-recovered",e.AddonRetryScheduled="addon.retry-scheduled",e.AddonRetryAttempting="addon.retry-attempting",e.DeviceRegistered="device.registered",e.DeviceUnregistered="device.unregistered",e.DeviceEnabled="device.enabled",e.DeviceDisabled="device.disabled",e.DeviceSettingsUpdated="device.settings-updated",e.DeviceBindingsChanged="device.bindings-changed",e.DeviceMetaChanged="device.meta-changed",e.DeviceStreamsRegistered="device.streams-registered",e.IntegrationEnabled="integration.enabled",e.IntegrationDisabled="integration.disabled",e.IntegrationDeleted="integration.deleted",e.ProviderStarted="provider.started",e.ProviderStopped="provider.stopped",e.ProcessCrashed="process.crashed",e.ProcessRestartScheduled="process.restart_scheduled",e.ProcessRestarted="process.restarted",e.RecordingStarted="recording.started",e.RecordingStopped="recording.stopped",e.RecordingError="recording.error",e.RecordingHealthDegraded="recording.health.degraded",e.RecordingStorageCritical="recording.storage.critical",e.RecordingSegmentWritten="recording.segment.written",e.RecordingPolicyFallback="recording.policy.fallback",e.RecordingRetentionCompleted="recording.retention.completed",e.DetectionEvent="detection.event",e.SessionTrackNew="session.track.new",e.SessionTrackExpired="session.track.expired",e.BenchmarkProgress="benchmark.progress",e.PlatformProbePhase="platform-probe.phase",e.PipelineProgress="pipeline.progress",e.PipelineTrace="pipeline.trace",e.PipelineInferenceResult="pipeline.inference-result",e.PipelineCameraAssigned="pipeline.camera-assigned",e.PipelineCameraUnassigned="pipeline.camera-unassigned",e.PipelineCameraUpdated="pipeline.camera-updated",e.PipelineRunnerLoadSnapshot="pipeline.runner-load-snapshot",e.PipelineCameraMetricsSnapshot="pipeline.camera-metrics-snapshot",e.StreamBrokerMetricsSnapshot="stream-broker.metrics-snapshot",e.StreamBrokerOnCamStreamDemand="stream-broker.onCamStreamDemand",e.StreamBrokerOnCamStreamIdle="stream-broker.onCamStreamIdle",e.StreamBrokerOnRequestStreamSourceRefresh="stream-broker.onRequestStreamSourceRefresh",e.DeviceStateChanged="device.state-changed",e.BatteryOnStatusChanged="battery.onStatusChanged",e.DoorbellOnPressed="doorbell.onPressed",e.PipelineEngineMetricsSnapshot="pipeline.engine-metrics-snapshot",e.ClusterTopologySnapshot="cluster.topology-snapshot",e.MetricsNodeResourcesSnapshot="metrics.node-resources-snapshot",e.MetricsNodeProcessesSnapshot="metrics.node-processes-snapshot",e.CapabilityBindingChanged="capability.binding-changed",e.ModelDownloadProgress="model.download.progress",e.AgentRegistered="agent.registered",e.AgentUnregistered="agent.unregistered",e.AgentOnline="agent.online",e.AgentOffline="agent.offline",e.WorkerOnline="worker.online",e.WorkerOffline="worker.offline",e.AgentTaskDispatched="agent.task.dispatched",e.AgentTaskAssigned="agent.task.assigned",e.AgentTrpcConnected="agent.trpc.connected",e.AgentWsConnected="agent.ws.connected",e.AgentWsDisconnected="agent.ws.disconnected",e.AgentBackupActivated="agent.backup.activated",e.OrchestrationSettingsUpdated="orchestration.settings-updated",e.PipelineAgentHwaccelChanged="pipeline.agent-hwaccel-changed",e.MotionAnalysis="detection.motion-analysis",e.MotionZonesRaw="detection.motion-zones-raw",e.MotionOnMotionChanged="motion.on-motion-changed",e.DetectionResult="detection.result",e.DetectionRaw="detection.raw",e.DetectionCameraNative="detection.camera-native",e.PipelineAudioInferenceResult="pipeline.audio-inference-result",e.DetectionPhaseTransition="detection.phase-transition",e.ProviderMotion="provider.motion",e.ProviderDetection="provider.detection",e.EnrichmentEmbeddingStored="enrichment.embedding.stored",e.EnrichmentSceneStateChanged="enrichment.scene.state-changed",e.EnrichmentActivitySummary="enrichment.activity.summary",e.PipelineAnalyticsTrackStarted="pipeline-analytics.track-started",e.PipelineAnalyticsTrackEnded="pipeline-analytics.track-ended",e.PipelineAnalyticsDetectionEvent="pipeline-analytics.detection-event",e.PipelineAnalyticsFrameTracked="pipeline-analytics.frame-tracked",e.FrigateLiveEvent="frigate.live-event",e.CameraStreamsProfileSlotsChanged="camera-streams.onProfileSlotsChanged",e.StreamOnline="stream.online",e.StreamOffline="stream.offline",e.NetworkTunnelStarted="network.tunnel.started",e.NetworkTunnelStopped="network.tunnel.stopped",e.LocalNetworkChanged="network.local.changed",e.BackupCompleted="backup.completed",e.BackupRestored="backup.restored",e.NotificationDispatched="notification.dispatched",e.NotificationFailed="notification.failed",e.DeviceUpdated="device.updated",e.DeviceOnline="device.online",e.DeviceOffline="device.offline",e.DeviceAwake="device.awake",e.DeviceSleeping="device.sleeping",e.RetentionCleanup="retention.cleanup",e))(xe||{});const Be={accessories:"accessories",addonPages:"addon-pages",addonPagesSource:"addon-pages-source",addonRoutes:"addon-routes",addonSettings:"addon-settings",addonWidgets:"addon-widgets",addonWidgetsSource:"addon-widgets-source",addons:"addons",adminUi:"admin-ui",advancedNotifier:"advanced-notifier",alerts:"alerts",audioAnalysis:"audio-analysis",audioAnalyzer:"audio-analyzer",audioCodec:"audio-codec",audioMetrics:"audio-metrics",authProvider:"auth-provider",backup:"backup",battery:"battery",brightness:"brightness",cameraCredentials:"camera-credentials",cameraStreams:"camera-streams",decoder:"decoder",detectionPipeline:"detection-pipeline",deviceDiscovery:"device-discovery",deviceExport:"device-export",deviceManager:"device-manager",deviceOps:"device-ops",deviceProvider:"device-provider",deviceState:"device-state",deviceStatus:"device-status",doorbell:"doorbell",embeddingEncoder:"embedding-encoder",events:"events",featureProbe:"feature-probe",integrations:"integrations",intercom:"intercom",localNetwork:"local-network",logDestination:"log-destination",meshNetwork:"mesh-network",metricsProvider:"metrics-provider",motion:"motion",motionDetection:"motion-detection",motionTrigger:"motion-trigger",motionZones:"motion-zones",mqttBroker:"mqtt-broker",nativeObjectDetection:"native-object-detection",networkAccess:"network-access",networkQuality:"network-quality",nodes:"nodes",notificationOutput:"notification-output",oauthIntegration:"oauth-integration",osd:"osd",pipelineAnalytics:"pipeline-analytics",pipelineExecutor:"pipeline-executor",pipelineOrchestrator:"pipeline-orchestrator",pipelineRunner:"pipeline-runner",platformProbe:"platform-probe",ptz:"ptz",ptzAutotrack:"ptz-autotrack",reboot:"reboot",recording:"recording",recordingEngine:"recording-engine",restreamer:"restreamer",settingsStore:"settings-store",smtpProvider:"smtp-provider",snapshot:"snapshot",snapshotProvider:"snapshot-provider",ssoBridge:"sso-bridge",storage:"storage",storageProvider:"storage-provider",streamBroker:"stream-broker",streamParams:"stream-params",streamingEngine:"streaming-engine",switch:"switch",system:"system",toast:"toast",turnProvider:"turn-provider",userManagement:"user-management",userPasskeys:"user-passkeys",webrtc:"webrtc",webrtcSession:"webrtc-session",zoneAnalytics:"zone-analytics",zoneRules:"zone-rules",zones:"zones"},Oe=[{key:"accessories",name:"accessories"},{key:"addonPages",name:"addon-pages"},{key:"addonPagesSource",name:"addon-pages-source"},{key:"addonRoutes",name:"addon-routes"},{key:"addonSettings",name:"addon-settings"},{key:"addonWidgets",name:"addon-widgets"},{key:"addonWidgetsSource",name:"addon-widgets-source"},{key:"addons",name:"addons"},{key:"adminUi",name:"admin-ui"},{key:"advancedNotifier",name:"advanced-notifier"},{key:"alerts",name:"alerts"},{key:"audioAnalysis",name:"audio-analysis"},{key:"audioAnalyzer",name:"audio-analyzer"},{key:"audioCodec",name:"audio-codec"},{key:"audioMetrics",name:"audio-metrics"},{key:"authProvider",name:"auth-provider"},{key:"backup",name:"backup"},{key:"battery",name:"battery"},{key:"brightness",name:"brightness"},{key:"cameraCredentials",name:"camera-credentials"},{key:"cameraStreams",name:"camera-streams"},{key:"decoder",name:"decoder"},{key:"detectionPipeline",name:"detection-pipeline"},{key:"deviceDiscovery",name:"device-discovery"},{key:"deviceExport",name:"device-export"},{key:"deviceManager",name:"device-manager"},{key:"deviceOps",name:"device-ops"},{key:"deviceProvider",name:"device-provider"},{key:"deviceState",name:"device-state"},{key:"deviceStatus",name:"device-status"},{key:"doorbell",name:"doorbell"},{key:"embeddingEncoder",name:"embedding-encoder"},{key:"events",name:"events"},{key:"featureProbe",name:"feature-probe"},{key:"integrations",name:"integrations"},{key:"intercom",name:"intercom"},{key:"localNetwork",name:"local-network"},{key:"logDestination",name:"log-destination"},{key:"meshNetwork",name:"mesh-network"},{key:"metricsProvider",name:"metrics-provider"},{key:"motion",name:"motion"},{key:"motionDetection",name:"motion-detection"},{key:"motionTrigger",name:"motion-trigger"},{key:"motionZones",name:"motion-zones"},{key:"mqttBroker",name:"mqtt-broker"},{key:"nativeObjectDetection",name:"native-object-detection"},{key:"networkAccess",name:"network-access"},{key:"networkQuality",name:"network-quality"},{key:"nodes",name:"nodes"},{key:"notificationOutput",name:"notification-output"},{key:"oauthIntegration",name:"oauth-integration"},{key:"osd",name:"osd"},{key:"pipelineAnalytics",name:"pipeline-analytics"},{key:"pipelineExecutor",name:"pipeline-executor"},{key:"pipelineOrchestrator",name:"pipeline-orchestrator"},{key:"pipelineRunner",name:"pipeline-runner"},{key:"platformProbe",name:"platform-probe"},{key:"ptz",name:"ptz"},{key:"ptzAutotrack",name:"ptz-autotrack"},{key:"reboot",name:"reboot"},{key:"recording",name:"recording"},{key:"recordingEngine",name:"recording-engine"},{key:"restreamer",name:"restreamer"},{key:"settingsStore",name:"settings-store"},{key:"smtpProvider",name:"smtp-provider"},{key:"snapshot",name:"snapshot"},{key:"snapshotProvider",name:"snapshot-provider"},{key:"ssoBridge",name:"sso-bridge"},{key:"storage",name:"storage"},{key:"storageProvider",name:"storage-provider"},{key:"streamBroker",name:"stream-broker"},{key:"streamParams",name:"stream-params"},{key:"streamingEngine",name:"streaming-engine"},{key:"switch",name:"switch"},{key:"system",name:"system"},{key:"toast",name:"toast"},{key:"turnProvider",name:"turn-provider"},{key:"userManagement",name:"user-management"},{key:"userPasskeys",name:"user-passkeys"},{key:"webrtc",name:"webrtc"},{key:"webrtcSession",name:"webrtc-session"},{key:"zoneAnalytics",name:"zone-analytics"},{key:"zoneRules",name:"zone-rules"},{key:"zones",name:"zones"}],Te=[a,c,s,d,t,n,o,i,p,r,l,m,u,g,v,S,y,N,I,w,k,b,h,P,A,f,M,C,z,D,x,R,B,O,T,U,L,q,E,F,W,H,_,Z,j,G,K,Q,V,Y,$,J,X,ee,ae,ce,se,de,te,ne,oe,ie,pe,re,le,me,ue,ge,ve,Se,ye,Ne,Ie,we,ke,be,he,Pe,Ae,fe,Me,Ce,ze,De],Ue=Object.freeze({"addonPages.listPages":{capName:"addon-pages",capScope:"system",addonId:null,access:"view"},"addonPagesSource.listPages":{capName:"addon-pages-source",capScope:"system",addonId:null,access:"view"},"addonRoutes.getRoutes":{capName:"addon-routes",capScope:"system",addonId:null,access:"view"},"addonRoutes.invoke":{capName:"addon-routes",capScope:"system",addonId:null,access:"create"},"addons.applyAutoUpdateToAll":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.custom":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.forceRefresh":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.getAddonAutoUpdate":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.getAutoUpdateSettings":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.getLastRestart":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.getLogs":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.getVersions":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.installFromWorkspace":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.installPackage":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.isWorkspaceAvailable":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.list":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.listCapabilityProviders":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.listFrameworkPackages":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.listPackages":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.listUpdates":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.listWorkspacePackages":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.onAddonLogs":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.reloadPackages":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.restartAddon":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.restartServer":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.retryLoad":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.rollbackPackage":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.searchAvailable":{capName:"addons",capScope:"system",addonId:null,access:"view"},"addons.setAddonAutoUpdate":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.setAutoUpdateSettings":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.setCapabilityProviderEnabled":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.uninstallPackage":{capName:"addons",capScope:"system",addonId:null,access:"delete"},"addons.updateFrameworkPackage":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.updatePackage":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addonSettings.getDeviceSettings":{capName:"addon-settings",capScope:"system",addonId:null,access:"view"},"addonSettings.getGlobalSettings":{capName:"addon-settings",capScope:"system",addonId:null,access:"view"},"addonSettings.updateDeviceSettings":{capName:"addon-settings",capScope:"system",addonId:null,access:"create"},"addonSettings.updateGlobalSettings":{capName:"addon-settings",capScope:"system",addonId:null,access:"create"},"addonWidgets.listWidgets":{capName:"addon-widgets",capScope:"system",addonId:null,access:"view"},"addonWidgetsSource.listWidgets":{capName:"addon-widgets-source",capScope:"system",addonId:null,access:"view"},"adminUi.getStaticDir":{capName:"admin-ui",capScope:"system",addonId:null,access:"view"},"adminUi.getVersion":{capName:"admin-ui",capScope:"system",addonId:null,access:"view"},"advancedNotifier.deleteRule":{capName:"advanced-notifier",capScope:"system",addonId:null,access:"delete"},"advancedNotifier.getHistory":{capName:"advanced-notifier",capScope:"system",addonId:null,access:"view"},"advancedNotifier.getRules":{capName:"advanced-notifier",capScope:"system",addonId:null,access:"view"},"advancedNotifier.testRule":{capName:"advanced-notifier",capScope:"system",addonId:null,access:"create"},"advancedNotifier.upsertRule":{capName:"advanced-notifier",capScope:"system",addonId:null,access:"create"},"alerts.dismiss":{capName:"alerts",capScope:"system",addonId:null,access:"create"},"alerts.emit":{capName:"alerts",capScope:"system",addonId:null,access:"create"},"alerts.getUnreadCount":{capName:"alerts",capScope:"system",addonId:null,access:"view"},"alerts.list":{capName:"alerts",capScope:"system",addonId:null,access:"view"},"alerts.markAllRead":{capName:"alerts",capScope:"system",addonId:null,access:"create"},"alerts.markRead":{capName:"alerts",capScope:"system",addonId:null,access:"create"},"alerts.update":{capName:"alerts",capScope:"system",addonId:null,access:"create"},"audioAnalysis.resolveDeviceSettings":{capName:"audio-analysis",capScope:"device",addonId:null,access:"view"},"audioAnalyzer.analyseChunk":{capName:"audio-analyzer",capScope:"system",addonId:null,access:"create"},"audioAnalyzer.classify":{capName:"audio-analyzer",capScope:"system",addonId:null,access:"view"},"audioAnalyzer.dispose":{capName:"audio-analyzer",capScope:"system",addonId:null,access:"create"},"audioAnalyzer.isReady":{capName:"audio-analyzer",capScope:"system",addonId:null,access:"view"},"audioAnalyzer.reprobeAudioEngine":{capName:"audio-analyzer",capScope:"system",addonId:null,access:"create"},"audioCodec.canHandle":{capName:"audio-codec",capScope:"system",addonId:null,access:"view"},"audioCodec.closeSession":{capName:"audio-codec",capScope:"system",addonId:null,access:"create"},"audioCodec.createDecodeSession":{capName:"audio-codec",capScope:"system",addonId:null,access:"create"},"audioCodec.createEncodeSession":{capName:"audio-codec",capScope:"system",addonId:null,access:"create"},"audioCodec.flushEncode":{capName:"audio-codec",capScope:"system",addonId:null,access:"create"},"audioCodec.listActiveSessions":{capName:"audio-codec",capScope:"system",addonId:null,access:"view"},"audioCodec.listSupportedCodecs":{capName:"audio-codec",capScope:"system",addonId:null,access:"view"},"audioCodec.pullEncoded":{capName:"audio-codec",capScope:"system",addonId:null,access:"view"},"audioCodec.pullPcm":{capName:"audio-codec",capScope:"system",addonId:null,access:"view"},"audioCodec.pushEncodedFrame":{capName:"audio-codec",capScope:"system",addonId:null,access:"create"},"audioCodec.pushPcm":{capName:"audio-codec",capScope:"system",addonId:null,access:"create"},"audioMetrics.getCurrentSnapshot":{capName:"audio-metrics",capScope:"device",addonId:null,access:"view"},"audioMetrics.getHistory":{capName:"audio-metrics",capScope:"device",addonId:null,access:"view"},"authProvider.getLoginUrl":{capName:"auth-provider",capScope:"system",addonId:null,access:"view"},"authProvider.handleCallback":{capName:"auth-provider",capScope:"system",addonId:null,access:"create"},"authProvider.validateCredentials":{capName:"auth-provider",capScope:"system",addonId:null,access:"create"},"authProvider.validateToken":{capName:"auth-provider",capScope:"system",addonId:null,access:"view"},"backup.delete":{capName:"backup",capScope:"system",addonId:null,access:"delete"},"backup.getEntries":{capName:"backup",capScope:"system",addonId:null,access:"view"},"backup.list":{capName:"backup",capScope:"system",addonId:null,access:"view"},"backup.listArchives":{capName:"backup",capScope:"system",addonId:null,access:"view"},"backup.listDestinations":{capName:"backup",capScope:"system",addonId:null,access:"view"},"backup.listLocations":{capName:"backup",capScope:"system",addonId:null,access:"view"},"backup.previewSchedule":{capName:"backup",capScope:"system",addonId:null,access:"view"},"backup.restore":{capName:"backup",capScope:"system",addonId:null,access:"create"},"backup.trigger":{capName:"backup",capScope:"system",addonId:null,access:"create"},"backup.upsertDestinationPolicy":{capName:"backup",capScope:"system",addonId:null,access:"create"},"brightness.setBrightness":{capName:"brightness",capScope:"device",addonId:null,access:"create"},"cameraCredentials.getCredentials":{capName:"camera-credentials",capScope:"device",addonId:null,access:"view"},"cameraStreams.getBrokerStreams":{capName:"camera-streams",capScope:"device",addonId:null,access:"view"},"cameraStreams.getCameraStreams":{capName:"camera-streams",capScope:"device",addonId:null,access:"view"},"cameraStreams.getRtspEntries":{capName:"camera-streams",capScope:"device",addonId:null,access:"view"},"decoder.createSession":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.destroySession":{capName:"decoder",capScope:"system",addonId:null,access:"delete"},"decoder.getFrame":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.getInfo":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.getShmStats":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.getStats":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.listActiveSessions":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.openStream":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.pullFrames":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.pullHandles":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.pushPacket":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.reprobeHwaccel":{capName:"decoder",capScope:"system",addonId:null,access:"create"},"decoder.supportsCodec":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"decoder.updateConfig":{capName:"decoder",capScope:"system",addonId:null,access:"view"},"deviceDiscovery.adoptDevice":{capName:"device-discovery",capScope:"device",addonId:null,access:"create"},"deviceDiscovery.listDiscovered":{capName:"device-discovery",capScope:"device",addonId:null,access:"view"},"deviceDiscovery.refreshDiscovery":{capName:"device-discovery",capScope:"device",addonId:null,access:"create"},"deviceDiscovery.releaseDevice":{capName:"device-discovery",capScope:"device",addonId:null,access:"create"},"deviceExport.exposeDevice":{capName:"device-export",capScope:"system",addonId:null,access:"create"},"deviceExport.getStatus":{capName:"device-export",capScope:"system",addonId:null,access:"view"},"deviceExport.listExposedDevices":{capName:"device-export",capScope:"system",addonId:null,access:"view"},"deviceExport.listSupportedDeviceKinds":{capName:"device-export",capScope:"system",addonId:null,access:"view"},"deviceExport.unexposeDevice":{capName:"device-export",capScope:"system",addonId:null,access:"create"},"deviceManager.addLocation":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.adoptDevice":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.allocateDeviceId":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.createDevice":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.disable":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.discoverDevices":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.enable":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.getAllBindings":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getBindings":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getChildren":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getConfigSchema":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getCreationSchema":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getDevice":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getDeviceAggregate":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getDeviceLiveInfoAggregate":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getDeviceSettingsAggregate":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getDeviceStatusAggregate":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getSettingsSchema":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getStreamProfileMap":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getStreamSources":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.listAll":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.listBindableCapsForDeviceType":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.listLocations":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.listPersistedByAddon":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.listWrappersForCap":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.loadConfig":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.loadMeta":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.loadRuntimeState":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.persistConfig":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.probeStreams":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.registerDevice":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.remove":{capName:"device-manager",capScope:"system",addonId:null,access:"delete"},"deviceManager.removeDevice":{capName:"device-manager",capScope:"system",addonId:null,access:"delete"},"deviceManager.removeLocation":{capName:"device-manager",capScope:"system",addonId:null,access:"delete"},"deviceManager.setDisabled":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setLocation":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setMetadata":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setName":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setStreamProfileMap":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setWrapperActive":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.testCreationField":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.testField":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.updateConfig":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.updateDeviceField":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.updateDeviceFieldsBatch":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceOps.getConfigEntries":{capName:"device-ops",capScope:"device",addonId:null,access:"view"},"deviceOps.getSettingsSchema":{capName:"device-ops",capScope:"device",addonId:null,access:"view"},"deviceOps.getStreamSources":{capName:"device-ops",capScope:"device",addonId:null,access:"view"},"deviceOps.removeDevice":{capName:"device-ops",capScope:"device",addonId:null,access:"delete"},"deviceOps.setConfig":{capName:"device-ops",capScope:"device",addonId:null,access:"create"},"deviceProvider.adoptDiscoveredDevice":{capName:"device-provider",capScope:"system",addonId:null,access:"create"},"deviceProvider.createDevice":{capName:"device-provider",capScope:"system",addonId:null,access:"create"},"deviceProvider.discoverDevices":{capName:"device-provider",capScope:"system",addonId:null,access:"create"},"deviceProvider.getChildCreationSchema":{capName:"device-provider",capScope:"system",addonId:null,access:"view"},"deviceProvider.getDevices":{capName:"device-provider",capScope:"system",addonId:null,access:"view"},"deviceProvider.getStatus":{capName:"device-provider",capScope:"system",addonId:null,access:"view"},"deviceProvider.start":{capName:"device-provider",capScope:"system",addonId:null,access:"create"},"deviceProvider.stop":{capName:"device-provider",capScope:"system",addonId:null,access:"create"},"deviceProvider.supportsDiscovery":{capName:"device-provider",capScope:"system",addonId:null,access:"view"},"deviceProvider.supportsManualCreation":{capName:"device-provider",capScope:"system",addonId:null,access:"view"},"deviceProvider.testCreationField":{capName:"device-provider",capScope:"system",addonId:null,access:"create"},"deviceState.getAllSnapshots":{capName:"device-state",capScope:"system",addonId:null,access:"view"},"deviceState.getCapSlice":{capName:"device-state",capScope:"system",addonId:null,access:"view"},"deviceState.getSnapshot":{capName:"device-state",capScope:"system",addonId:null,access:"view"},"deviceState.setCapSlice":{capName:"device-state",capScope:"system",addonId:null,access:"create"},"embeddingEncoder.encode":{capName:"embedding-encoder",capScope:"system",addonId:null,access:"view"},"embeddingEncoder.encodeText":{capName:"embedding-encoder",capScope:"system",addonId:null,access:"view"},"embeddingEncoder.getInfo":{capName:"embedding-encoder",capScope:"system",addonId:null,access:"view"},"events.getEventClipUrl":{capName:"events",capScope:"device",addonId:null,access:"view"},"events.getEvents":{capName:"events",capScope:"device",addonId:null,access:"view"},"events.getEventThumbnail":{capName:"events",capScope:"device",addonId:null,access:"view"},"integrations.create":{capName:"integrations",capScope:"system",addonId:null,access:"create"},"integrations.delete":{capName:"integrations",capScope:"system",addonId:null,access:"delete"},"integrations.get":{capName:"integrations",capScope:"system",addonId:null,access:"view"},"integrations.getAvailableTypes":{capName:"integrations",capScope:"system",addonId:null,access:"view"},"integrations.getByAddonId":{capName:"integrations",capScope:"system",addonId:null,access:"view"},"integrations.getSettings":{capName:"integrations",capScope:"system",addonId:null,access:"view"},"integrations.list":{capName:"integrations",capScope:"system",addonId:null,access:"view"},"integrations.setSettings":{capName:"integrations",capScope:"system",addonId:null,access:"create"},"integrations.testConnection":{capName:"integrations",capScope:"system",addonId:null,access:"create"},"integrations.update":{capName:"integrations",capScope:"system",addonId:null,access:"create"},"intercom.endTalkSession":{capName:"intercom",capScope:"device",addonId:null,access:"create"},"intercom.handleAnswer":{capName:"intercom",capScope:"device",addonId:null,access:"create"},"intercom.pushTalkPcm":{capName:"intercom",capScope:"device",addonId:null,access:"create"},"intercom.startSession":{capName:"intercom",capScope:"device",addonId:null,access:"create"},"intercom.startTalkSession":{capName:"intercom",capScope:"device",addonId:null,access:"create"},"intercom.stopSession":{capName:"intercom",capScope:"device",addonId:null,access:"create"},"localNetwork.getAllowedAddresses":{capName:"local-network",capScope:"system",addonId:null,access:"view"},"localNetwork.getConnectionEndpoints":{capName:"local-network",capScope:"system",addonId:null,access:"view"},"localNetwork.getPreferred":{capName:"local-network",capScope:"system",addonId:null,access:"view"},"localNetwork.list":{capName:"local-network",capScope:"system",addonId:null,access:"view"},"localNetwork.resetAllowlistToBestMatch":{capName:"local-network",capScope:"system",addonId:null,access:"delete"},"localNetwork.setAllowedAddresses":{capName:"local-network",capScope:"system",addonId:null,access:"create"},"logDestination.query":{capName:"log-destination",capScope:"system",addonId:null,access:"view"},"logDestination.write":{capName:"log-destination",capScope:"system",addonId:null,access:"create"},"meshNetwork.getStatus":{capName:"mesh-network",capScope:"system",addonId:null,access:"view"},"meshNetwork.join":{capName:"mesh-network",capScope:"system",addonId:null,access:"create"},"meshNetwork.leave":{capName:"mesh-network",capScope:"system",addonId:null,access:"create"},"meshNetwork.listPeers":{capName:"mesh-network",capScope:"system",addonId:null,access:"view"},"meshNetwork.logout":{capName:"mesh-network",capScope:"system",addonId:null,access:"create"},"meshNetwork.startLogin":{capName:"mesh-network",capScope:"system",addonId:null,access:"create"},"meshNetwork.testConnection":{capName:"mesh-network",capScope:"system",addonId:null,access:"create"},"metricsProvider.collectSnapshot":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getAddonStats":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getCached":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getCpuTemperature":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getCurrent":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getDiskSpace":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getGpuInfo":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.getProcessStats":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.killProcess":{capName:"metrics-provider",capScope:"system",addonId:null,access:"create"},"metricsProvider.listAddonInstances":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"metricsProvider.listNodeProcesses":{capName:"metrics-provider",capScope:"system",addonId:null,access:"view"},"motion.isDetected":{capName:"motion",capScope:"device",addonId:null,access:"view"},"motionDetection.analyze":{capName:"motion-detection",capScope:"device",addonId:null,access:"create"},"motionDetection.removeCamera":{capName:"motion-detection",capScope:"device",addonId:null,access:"delete"},"motionDetection.reset":{capName:"motion-detection",capScope:"device",addonId:null,access:"delete"},"motionTrigger.setMotionTrigger":{capName:"motion-trigger",capScope:"device",addonId:null,access:"create"},"motionZones.getOptions":{capName:"motion-zones",capScope:"device",addonId:null,access:"view"},"motionZones.setZone":{capName:"motion-zones",capScope:"device",addonId:null,access:"create"},"mqttBroker.addBroker":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"create"},"mqttBroker.getBrokerConfig":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"view"},"mqttBroker.getStatus":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"view"},"mqttBroker.listBrokers":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"view"},"mqttBroker.removeBroker":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"delete"},"mqttBroker.startEmbeddedBroker":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"create"},"mqttBroker.stopEmbeddedBroker":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"create"},"mqttBroker.testConnection":{capName:"mqtt-broker",capScope:"system",addonId:null,access:"create"},"networkAccess.getEndpoint":{capName:"network-access",capScope:"system",addonId:null,access:"view"},"networkAccess.getStatus":{capName:"network-access",capScope:"system",addonId:null,access:"view"},"networkAccess.listEndpoints":{capName:"network-access",capScope:"system",addonId:null,access:"view"},"networkAccess.start":{capName:"network-access",capScope:"system",addonId:null,access:"create"},"networkAccess.stop":{capName:"network-access",capScope:"system",addonId:null,access:"create"},"networkQuality.getAllStats":{capName:"network-quality",capScope:"system",addonId:null,access:"view"},"networkQuality.getDeviceStats":{capName:"network-quality",capScope:"system",addonId:null,access:"view"},"networkQuality.reportClientStats":{capName:"network-quality",capScope:"system",addonId:null,access:"create"},"nodes.clusterAddonStatus":{capName:"nodes",capScope:"system",addonId:null,access:"view"},"nodes.deployAddon":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.executeQuery":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.getCapUsageGraph":{capName:"nodes",capScope:"system",addonId:null,access:"view"},"nodes.getNodeAddons":{capName:"nodes",capScope:"system",addonId:null,access:"view"},"nodes.renameNode":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.restartAddon":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.restartNode":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.restartProcess":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.setProcessLogLevel":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.shutdownNode":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"nodes.topology":{capName:"nodes",capScope:"system",addonId:null,access:"view"},"nodes.undeployAddon":{capName:"nodes",capScope:"system",addonId:null,access:"create"},"notificationOutput.send":{capName:"notification-output",capScope:"system",addonId:null,access:"create"},"notificationOutput.sendTest":{capName:"notification-output",capScope:"system",addonId:null,access:"create"},"oauthIntegration.getDescriptor":{capName:"oauth-integration",capScope:"system",addonId:null,access:"view"},"osd.setOverlay":{capName:"osd",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.clearTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"delete"},"pipelineAnalytics.getActiveTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getAudioEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getEventMedia":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getMotionEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getObjectEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getTrack":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getTrackMedia":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineExecutor.cacheFrameInPool":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.deleteModel":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"delete"},"pipelineExecutor.deleteTemplate":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"delete"},"pipelineExecutor.detect":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.downloadModel":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.getAddonModels":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getAudioCapabilities":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getAvailableEngines":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getCapabilities":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getDefaultSteps":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getDetectionConfigSchema":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getEffectiveTuning":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getGlobalPipelineConfig":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getGlobalSteps":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getOrchestratorConfigSchema":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getReferenceAudio":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getReferenceAudioFiles":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getReferenceImage":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getSchema":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getSelectedEngine":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.getVideoPipelineSteps":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.inferCached":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.killEngine":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.listLoadedEngines":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.listReferenceImages":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.listTemplates":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineExecutor.reprobeEngine":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.runAudioTest":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.runPipeline":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.runPipelineBatch":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.saveTemplate":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.setVideoPipelineSteps":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.spinEngine":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.uncacheFrame":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.updateTemplate":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.assignAudio":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.assignDecoder":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.assignPipeline":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.deleteTemplate":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"delete"},"pipelineOrchestrator.getAgentLoad":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getAgentSettings":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getAudioAssignment":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getAudioAssignments":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getAudioNodeLoad":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCameraMetrics":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCameraSettings":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCameraStepOverrides":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCapabilityBindings":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getDecoderAssignment":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getDecoderAssignments":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getGlobalMetrics":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getPipelineAssignment":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getPipelineAssignments":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.listAgentSettings":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.listTemplates":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.rebalance":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.removeAgentSettings":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"delete"},"pipelineOrchestrator.resolvePipeline":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.saveTemplate":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setAgentAddonDefaults":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setCameraPipelineForAgent":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setCameraStepOverride":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setCameraStepToggle":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setCapabilityBinding":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.unassignAudio":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.unassignDecoder":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.unassignPipeline":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.updateTemplate":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineRunner.attachCamera":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"create"},"pipelineRunner.detachCamera":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"create"},"pipelineRunner.getAllCameraMetrics":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"view"},"pipelineRunner.getCameraMetrics":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"view"},"pipelineRunner.getLocalCameras":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"view"},"pipelineRunner.getLocalLoad":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"view"},"pipelineRunner.getLocalMetrics":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"view"},"pipelineRunner.reportMotion":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"create"},"platformProbe.getCapabilities":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"platformProbe.getHardware":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"platformProbe.getHardwareEncoders":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"platformProbe.refreshHardwareEncoders":{capName:"platform-probe",capScope:"system",addonId:null,access:"create"},"platformProbe.resolveHwAccel":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"platformProbe.resolveInferenceConfig":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"ptz.continuousMove":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptz.deletePreset":{capName:"ptz",capScope:"device",addonId:null,access:"delete"},"ptz.getOptions":{capName:"ptz",capScope:"device",addonId:null,access:"view"},"ptz.getPosition":{capName:"ptz",capScope:"device",addonId:null,access:"view"},"ptz.getPresets":{capName:"ptz",capScope:"device",addonId:null,access:"view"},"ptz.goHome":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptz.goToPreset":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptz.move":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptz.savePreset":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptz.setAutofocus":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptz.stop":{capName:"ptz",capScope:"device",addonId:null,access:"create"},"ptzAutotrack.getSettings":{capName:"ptz-autotrack",capScope:"device",addonId:null,access:"view"},"ptzAutotrack.getStatus":{capName:"ptz-autotrack",capScope:"device",addonId:null,access:"view"},"ptzAutotrack.setEnabled":{capName:"ptz-autotrack",capScope:"device",addonId:null,access:"create"},"ptzAutotrack.setSettings":{capName:"ptz-autotrack",capScope:"device",addonId:null,access:"create"},"reboot.reboot":{capName:"reboot",capScope:"device",addonId:null,access:"create"},"recording.getPlaybackUrl":{capName:"recording",capScope:"device",addonId:null,access:"view"},"recording.getSegments":{capName:"recording",capScope:"device",addonId:null,access:"view"},"recording.getThumbnailAt":{capName:"recording",capScope:"device",addonId:null,access:"view"},"recordingEngine.disable":{capName:"recording-engine",capScope:"system",addonId:null,access:"create"},"recordingEngine.enable":{capName:"recording-engine",capScope:"system",addonId:null,access:"create"},"recordingEngine.estimateGlobalStorage":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.estimateStorage":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getAvailability":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getConfig":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getMotionStats":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getPlaylist":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getPolicy":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getPolicyStatus":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getRetentionConfig":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getSegments":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getStatus":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getStorageUsage":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.getThumbnail":{capName:"recording-engine",capScope:"system",addonId:null,access:"view"},"recordingEngine.setPolicy":{capName:"recording-engine",capScope:"system",addonId:null,access:"create"},"recordingEngine.updateConfig":{capName:"recording-engine",capScope:"system",addonId:null,access:"create"},"recordingEngine.updateRetentionConfig":{capName:"recording-engine",capScope:"system",addonId:null,access:"create"},"restreamer.getExposedResources":{capName:"restreamer",capScope:"system",addonId:null,access:"view"},"restreamer.registerDevice":{capName:"restreamer",capScope:"system",addonId:null,access:"create"},"restreamer.unregisterDevice":{capName:"restreamer",capScope:"system",addonId:null,access:"delete"},"settingsStore.count":{capName:"settings-store",capScope:"system",addonId:null,access:"view"},"settingsStore.declareCollection":{capName:"settings-store",capScope:"system",addonId:null,access:"create"},"settingsStore.delete":{capName:"settings-store",capScope:"system",addonId:null,access:"delete"},"settingsStore.get":{capName:"settings-store",capScope:"system",addonId:null,access:"view"},"settingsStore.insert":{capName:"settings-store",capScope:"system",addonId:null,access:"create"},"settingsStore.isEmpty":{capName:"settings-store",capScope:"system",addonId:null,access:"view"},"settingsStore.query":{capName:"settings-store",capScope:"system",addonId:null,access:"view"},"settingsStore.set":{capName:"settings-store",capScope:"system",addonId:null,access:"create"},"settingsStore.update":{capName:"settings-store",capScope:"system",addonId:null,access:"create"},"smtpProvider.getStatus":{capName:"smtp-provider",capScope:"system",addonId:null,access:"view"},"smtpProvider.sendEmail":{capName:"smtp-provider",capScope:"system",addonId:null,access:"create"},"smtpProvider.verify":{capName:"smtp-provider",capScope:"system",addonId:null,access:"view"},"snapshot.getSnapshot":{capName:"snapshot",capScope:"device",addonId:null,access:"view"},"snapshot.invalidateCache":{capName:"snapshot",capScope:"device",addonId:null,access:"create"},"snapshotProvider.getSnapshot":{capName:"snapshot-provider",capScope:"system",addonId:null,access:"view"},"snapshotProvider.supportsDevice":{capName:"snapshot-provider",capScope:"system",addonId:null,access:"view"},"ssoBridge.signBridgeToken":{capName:"sso-bridge",capScope:"system",addonId:null,access:"view"},"ssoBridge.verifyBridgeToken":{capName:"sso-bridge",capScope:"system",addonId:null,access:"view"},"storage.abortUpload":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.beginDownload":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.beginUpload":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.delete":{capName:"storage",capScope:"system",addonId:null,access:"delete"},"storage.deleteLocation":{capName:"storage",capScope:"system",addonId:null,access:"delete"},"storage.endDownload":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.exists":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.finalizeUpload":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.getAvailableSpace":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.getDefaultLocation":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.list":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.listLocations":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.listProviders":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.read":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.readChunk":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.resolve":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.testConfig":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.testLocation":{capName:"storage",capScope:"system",addonId:null,access:"view"},"storage.upsertLocation":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.write":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storage.writeChunk":{capName:"storage",capScope:"system",addonId:null,access:"create"},"storageProvider.abortUpload":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"storageProvider.beginDownload":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"storageProvider.beginUpload":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"storageProvider.delete":{capName:"storage-provider",capScope:"system",addonId:null,access:"delete"},"storageProvider.endDownload":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"storageProvider.exists":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.finalizeUpload":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"storageProvider.getAvailableSpace":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.getProviderInfo":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.list":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.read":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.readChunk":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.resolve":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.testLocation":{capName:"storage-provider",capScope:"system",addonId:null,access:"view"},"storageProvider.write":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"storageProvider.writeChunk":{capName:"storage-provider",capScope:"system",addonId:null,access:"create"},"streamBroker.assignProfile":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.getAllRtspEntries":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.getBrokerStats":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.getPreBufferInfo":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.getRtspEntry":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.getRtspPort":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.getStreamUrl":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.getStreamWithCodec":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.isRtspEnabled":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.killClient":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.listAllCameraStreams":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.listAllProfileSlots":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.listClients":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.publishCameraStream":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.pullAudioChunks":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.pullFrameHandles":{capName:"stream-broker",capScope:"system",addonId:null,access:"view"},"streamBroker.regenerateRtspToken":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.releaseStreamWithCodec":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.restartProfile":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.retractCameraStream":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.setPreBufferDuration":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.setRtspEnabled":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.subscribeAudioChunks":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.subscribeFrames":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.unassignProfile":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.unsubscribeAudioChunks":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.unsubscribeFrames":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamingEngine.getStreamUrl":{capName:"streaming-engine",capScope:"system",addonId:null,access:"view"},"streamingEngine.listStreams":{capName:"streaming-engine",capScope:"system",addonId:null,access:"view"},"streamingEngine.registerStream":{capName:"streaming-engine",capScope:"system",addonId:null,access:"create"},"streamingEngine.unregisterStream":{capName:"streaming-engine",capScope:"system",addonId:null,access:"delete"},"streamParams.getConfigSchema":{capName:"stream-params",capScope:"device",addonId:null,access:"view"},"streamParams.getOptions":{capName:"stream-params",capScope:"device",addonId:null,access:"view"},"streamParams.setProfile":{capName:"stream-params",capScope:"device",addonId:null,access:"create"},"switch.setState":{capName:"switch",capScope:"device",addonId:null,access:"create"},"system.featureFlags":{capName:"system",capScope:"system",addonId:null,access:"view"},"system.forceRetentionCleanup":{capName:"system",capScope:"system",addonId:null,access:"create"},"system.getRetentionConfig":{capName:"system",capScope:"system",addonId:null,access:"view"},"system.health":{capName:"system",capScope:"system",addonId:null,access:"view"},"system.info":{capName:"system",capScope:"system",addonId:null,access:"view"},"system.networkAddresses":{capName:"system",capScope:"system",addonId:null,access:"view"},"system.setRetentionConfig":{capName:"system",capScope:"system",addonId:null,access:"create"},"toast.onToast":{capName:"toast",capScope:"system",addonId:null,access:"view"},"turnProvider.getTurnServers":{capName:"turn-provider",capScope:"system",addonId:null,access:"view"},"userManagement.confirmTotp":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.createApiKey":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.createScopedToken":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.createUser":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.deleteUser":{capName:"user-management",capScope:"system",addonId:null,access:"delete"},"userManagement.disableTotp":{capName:"user-management",capScope:"system",addonId:null,access:"delete"},"userManagement.getTotpStatus":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.listApiKeys":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.listOauthSessions":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.listScopedTokens":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.listUsers":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.oauthExchangeCode":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.oauthIssueCode":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.oauthRefresh":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.oauthVerifyAccessToken":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.resetPassword":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.revokeApiKey":{capName:"user-management",capScope:"system",addonId:null,access:"delete"},"userManagement.revokeOauthSession":{capName:"user-management",capScope:"system",addonId:null,access:"delete"},"userManagement.revokeScopedToken":{capName:"user-management",capScope:"system",addonId:null,access:"delete"},"userManagement.setupTotp":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.setUserScopes":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.updateUser":{capName:"user-management",capScope:"system",addonId:null,access:"create"},"userManagement.validateApiKey":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.validateCredentials":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.validateScopedToken":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userManagement.verifyTotp":{capName:"user-management",capScope:"system",addonId:null,access:"view"},"userPasskeys.beginAuthentication":{capName:"user-passkeys",capScope:"system",addonId:null,access:"view"},"userPasskeys.beginRegistration":{capName:"user-passkeys",capScope:"system",addonId:null,access:"create"},"userPasskeys.finishAuthentication":{capName:"user-passkeys",capScope:"system",addonId:null,access:"view"},"userPasskeys.finishRegistration":{capName:"user-passkeys",capScope:"system",addonId:null,access:"create"},"userPasskeys.listPasskeys":{capName:"user-passkeys",capScope:"system",addonId:null,access:"view"},"userPasskeys.removePasskey":{capName:"user-passkeys",capScope:"system",addonId:null,access:"delete"},"webrtc.closeSession":{capName:"webrtc",capScope:"system",addonId:null,access:"create"},"webrtc.createSession":{capName:"webrtc",capScope:"system",addonId:null,access:"create"},"webrtc.handleAnswer":{capName:"webrtc",capScope:"system",addonId:null,access:"create"},"webrtc.handleOffer":{capName:"webrtc",capScope:"system",addonId:null,access:"create"},"webrtc.hasAdaptiveBitrate":{capName:"webrtc",capScope:"system",addonId:null,access:"view"},"webrtc.registerStream":{capName:"webrtc",capScope:"system",addonId:null,access:"create"},"webrtc.supportsStream":{capName:"webrtc",capScope:"system",addonId:null,access:"view"},"webrtc.unregisterStream":{capName:"webrtc",capScope:"system",addonId:null,access:"delete"},"webrtcSession.closeSession":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.createSession":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.handleAnswer":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.handleOffer":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.hasAdaptiveBitrate":{capName:"webrtc-session",capScope:"device",addonId:null,access:"view"},"webrtcSession.listStreams":{capName:"webrtc-session",capScope:"device",addonId:null,access:"view"},"zoneAnalytics.getCameraHistory":{capName:"zone-analytics",capScope:"device",addonId:null,access:"view"},"zoneAnalytics.getCurrentSnapshot":{capName:"zone-analytics",capScope:"device",addonId:null,access:"view"},"zoneAnalytics.getUnzonedHistory":{capName:"zone-analytics",capScope:"device",addonId:null,access:"view"},"zoneAnalytics.getZoneHistory":{capName:"zone-analytics",capScope:"device",addonId:null,access:"view"},"zoneRules.listRules":{capName:"zone-rules",capScope:"device",addonId:null,access:"view"},"zoneRules.setRules":{capName:"zone-rules",capScope:"device",addonId:null,access:"create"},"zones.addZone":{capName:"zones",capScope:"device",addonId:null,access:"create"},"zones.listZones":{capName:"zones",capScope:"device",addonId:null,access:"view"},"zones.removeZone":{capName:"zones",capScope:"device",addonId:null,access:"delete"},"zones.updateZone":{capName:"zones",capScope:"device",addonId:null,access:"create"}}),Le=["addon-pages","addon-pages-source","addon-routes","addon-settings","addon-widgets","addon-widgets-source","addons","admin-ui","advanced-notifier","alerts","audio-analysis","audio-analyzer","audio-codec","audio-metrics","auth-provider","backup","brightness","camera-credentials","camera-streams","decoder","device-discovery","device-export","device-manager","device-ops","device-provider","device-state","embedding-encoder","events","integrations","intercom","local-network","log-destination","mesh-network","metrics-provider","motion","motion-detection","motion-trigger","motion-zones","mqtt-broker","network-access","network-quality","nodes","notification-output","oauth-integration","osd","pipeline-analytics","pipeline-executor","pipeline-orchestrator","pipeline-runner","platform-probe","ptz","ptz-autotrack","reboot","recording","recording-engine","restreamer","settings-store","smtp-provider","snapshot","snapshot-provider","sso-bridge","storage","storage-provider","stream-broker","stream-params","streaming-engine","switch","system","toast","turn-provider","user-management","user-passkeys","webrtc","webrtc-session","zone-analytics","zone-rules","zones"],qe=["audio-analysis","audio-metrics","brightness","camera-credentials","camera-streams","device-discovery","device-ops","events","intercom","motion","motion-detection","motion-trigger","motion-zones","osd","pipeline-analytics","ptz","ptz-autotrack","reboot","recording","snapshot","stream-params","switch","webrtc-session","zone-analytics","zone-rules","zones"],Ee=["addon-pages","addon-pages-source","addon-routes","addon-settings","addon-widgets","addon-widgets-source","addons","admin-ui","advanced-notifier","alerts","audio-analyzer","audio-codec","auth-provider","backup","decoder","device-export","device-manager","device-provider","device-state","embedding-encoder","integrations","local-network","log-destination","mesh-network","metrics-provider","mqtt-broker","network-access","network-quality","nodes","notification-output","oauth-integration","pipeline-executor","pipeline-orchestrator","pipeline-runner","platform-probe","recording-engine","restreamer","settings-store","smtp-provider","snapshot-provider","sso-bridge","storage","storage-provider","stream-broker","streaming-engine","system","toast","turn-provider","user-management","user-passkeys","webrtc"];export{Te as A,Be as C,qe as D,xe as E,Le as K,Ue as M,Ee as S,Oe as a};
@@ -1 +0,0 @@
1
- if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('/sw.js', { scope: '/' })})}