@camstack/addon-pipeline-orchestrator 1.2.45 → 1.2.47

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 (31) hide show
  1. package/assets/viewer/.viewer-version +1 -1
  2. package/assets/viewer/_expo/static/js/web/{Clipboard-ea01d8cace0464fa1c39149da612be36.js → Clipboard-7ce228c3105c6643f60262c6665333bb.js} +8 -8
  3. package/assets/viewer/_expo/static/js/web/{Haptics-35bc7b5bbbc3731f03b5d5fafff2ac0c.js → Haptics-a27d50d15732e0b48774f90db59c02bf.js} +3 -3
  4. package/assets/viewer/_expo/static/js/web/{index-5b79e9d56650c4720921fd27c27ccb33.js → index-a8dfe1019b6f61fc84bf4dba973b9571.js} +27 -26
  5. package/assets/viewer/_expo/static/js/web/{node-fs-7cc97cb7668ecaeabcbcfee447afb982.js → node-fs-48d2a76a1b4358828a29686e594be263.js} +1 -1
  6. package/assets/viewer/_expo/static/js/web/{node-path-b4104903c9511874cbbf037d17e9f78d.js → node-path-f5cd235cc4e30b6508669583b1b2c718.js} +1 -1
  7. package/assets/viewer/index.html +1 -1
  8. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-9CKmTiwO.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-DVSFAO6F.mjs} +1 -1
  9. package/dist/{hostInit-CpXFeXA9.mjs → hostInit-D4Kq_1dM.mjs} +1 -1
  10. package/dist/index.js +304 -33
  11. package/dist/index.mjs +304 -33
  12. package/dist/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/assets/viewer/assets/node_modules/expo-router/assets/arrow_down.017bc6ba3fc25503e5eb5e53826d48a8.png +0 -0
  15. package/assets/viewer/assets/node_modules/expo-router/assets/error.d1ea1496f9057eb392d5bbf3732a61b7.png +0 -0
  16. package/assets/viewer/assets/node_modules/expo-router/assets/file.19eeb73b9593a38f8e9f418337fc7d10.png +0 -0
  17. package/assets/viewer/assets/node_modules/expo-router/assets/forward.d8b800c443b8972542883e0b9de2bdc6.png +0 -0
  18. package/assets/viewer/assets/node_modules/expo-router/assets/pkg.ab19f4cbc543357183a20571f68380a3.png +0 -0
  19. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/back-icon-mask.0a328cd9c1afd0afe8e3b1ec5165b1b4.png +0 -0
  20. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/back-icon.35ba0eaec5a4f5ed12ca16fabeae451d.png +0 -0
  21. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55.png +0 -0
  22. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@2x.png +0 -0
  23. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@3x.png +0 -0
  24. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@4x.png +0 -0
  25. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/close-icon.808e1b1b9b53114ec2838071a7e6daa7.png +0 -0
  26. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/close-icon.808e1b1b9b53114ec2838071a7e6daa7@2x.png +0 -0
  27. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/close-icon.808e1b1b9b53114ec2838071a7e6daa7@3x.png +0 -0
  28. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/close-icon.808e1b1b9b53114ec2838071a7e6daa7@4x.png +0 -0
  29. package/assets/viewer/assets/node_modules/expo-router/assets/react-navigation/elements/search-icon.286d67d3f74808a60a78d3ebf1a5fb57.png +0 -0
  30. package/assets/viewer/assets/node_modules/expo-router/assets/sitemap.412dd9275b6b48ad28f5e3d81bb1f626.png +0 -0
  31. package/assets/viewer/assets/node_modules/expo-router/assets/unmatched.20e71bdf79e3a97bf55fd9e164041578.png +0 -0
@@ -17,11 +17,11 @@ __d(function(g,r,_i,a,_m,_e,_d){
17
17
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
18
18
  _e.read=function(o,t,h,M,f){var w,p,i=8*f-M-1,n=(1<<i)-1,N=n>>1,e=-7,u=h?f-1:0,s=h?-1:1,c=o[t+u];for(u+=s,w=c&(1<<-e)-1,c>>=-e,e+=i;e>0;w=256*w+o[t+u],u+=s,e-=8);for(p=w&(1<<-e)-1,w>>=-e,e+=M;e>0;p=256*p+o[t+u],u+=s,e-=8);if(0===w)w=1-N;else{if(w===n)return p?NaN:1/0*(c?-1:1);p+=Math.pow(2,M),w-=N}return(c?-1:1)*p*Math.pow(2,w-M)},_e.write=function(o,t,h,M,f,w){var p,i,n,N=8*w-f-1,e=(1<<N)-1,u=e>>1,s=23===f?Math.pow(2,-24)-Math.pow(2,-77):0,c=M?0:w-1,l=M?1:-1,d=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(i=isNaN(t)?1:0,p=e):(p=Math.floor(Math.log(t)/Math.LN2),t*(n=Math.pow(2,-p))<1&&(p--,n*=2),(t+=p+u>=1?s/n:s*Math.pow(2,1-u))*n>=2&&(p++,n/=2),p+u>=e?(i=0,p=e):p+u>=1?(i=(t*n-1)*Math.pow(2,f),p+=u):(i=t*Math.pow(2,u-1)*Math.pow(2,f),p=0));f>=8;o[h+c]=255&i,c+=l,i/=256,f-=8);for(p=p<<f|i,N+=f;N>0;o[h+c]=255&p,c+=l,p/=256,N-=8);o[h+c-l]|=128*d}},3,[]);
19
19
  __d(function(g,r,i,a,m,e,d){"use strict";r(d[0])},4,[5]);
20
- __d(function(g,r,i,a,m,e,d){"use strict";r(d[0]);var n=r(d[1]);(0,r(d[2]).renderRootComponent)(n.App)},5,[6,9,2161]);
20
+ __d(function(g,r,i,a,m,e,d){"use strict";r(d[0]);var n=r(d[1]);(0,r(d[2]).renderRootComponent)(n.App)},5,[6,9,2162]);
21
21
  __d(function(g,r,i,a,m,e,d){"use strict";r(d[0]),r(d[1])},6,[7,8]);
22
22
  __d(function(g,r,i,a,m,e,d){},7,[]);
23
23
  __d(function(g,r,i,a,m,e,d){const _='undefined'==typeof window;globalThis.__webpack_chunk_load__=_=>g[`${__METRO_GLOBAL_PREFIX__}__loadBundleAsync`](_),globalThis.__webpack_require__=o=>{const t=ErrorUtils.reportFatalError;_&&(ErrorUtils.reportFatalError=_=>{throw _});try{return g[`${__METRO_GLOBAL_PREFIX__}__r`](o)}finally{_&&(ErrorUtils.reportFatalError=t)}}},8,[]);
24
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.App=function(){return(0,t.jsx)(c.Head.Provider,{children:(0,t.jsx)(n.ExpoRoot,{context:o.ctx})})};const t=r(d[0]),o=r(d[1]);r(d[2]);const n=r(d[3]),c=r(d[4]);r(d[5])},9,[10,12,17,746,2155,2160]);
24
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.App=function(){return(0,t.jsx)(c.Head.Provider,{children:(0,t.jsx)(n.ExpoRoot,{context:o.ctx})})};const t=r(d[0]),o=r(d[1]);r(d[2]);const n=r(d[3]),c=r(d[4]);r(d[5])},9,[10,12,17,746,2156,2161]);
25
25
  __d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},10,[11]);
26
26
  __d(function(g,r,i,a,m,e,d){
27
27
  /**
@@ -35,7 +35,7 @@ __d(function(g,r,i,a,m,e,d){
35
35
  */
36
36
  "use strict";var n=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function o(t,o,f){var l=null;if(void 0!==f&&(l=""+f),void 0!==o.key&&(l=""+o.key),"key"in o)for(var y in f={},o)"key"!==y&&(f[y]=o[y]);else f=o;return o=f.ref,{$$typeof:n,type:t,key:l,ref:void 0!==o?o:null,props:f}}e.Fragment=t,e.jsx=o,e.jsxs=o},11,[]);
37
37
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"ctx",{enumerable:!0,get:function(){return t}});const t=r(d[0])},12,[13]);
38
- __d(function(g,r,i,a,m,e,d){const t=Object.defineProperties({},{"./(app)/(tabs)/_layout.tsx":{enumerable:!0,get:()=>r(d[0])},"./(app)/(tabs)/cameras.tsx":{enumerable:!0,get:()=>r(d[1])},"./(app)/(tabs)/events.tsx":{enumerable:!0,get:()=>r(d[2])},"./(app)/(tabs)/grids.tsx":{enumerable:!0,get:()=>r(d[3])},"./(app)/(tabs)/settings.tsx":{enumerable:!0,get:()=>r(d[4])},"./(app)/_layout.tsx":{enumerable:!0,get:()=>r(d[5])},"./(app)/camera/[id].tsx":{enumerable:!0,get:()=>r(d[6])},"./(app)/events-embed.tsx":{enumerable:!0,get:()=>r(d[7])},"./(app)/exports.tsx":{enumerable:!0,get:()=>r(d[8])},"./(app)/grid/[id]/edit.tsx":{enumerable:!0,get:()=>r(d[9])},"./(app)/grid/[id]/index.tsx":{enumerable:!0,get:()=>r(d[10])},"./(app)/grid/adhoc.tsx":{enumerable:!0,get:()=>r(d[11])},"./(app)/settings/cameras.tsx":{enumerable:!0,get:()=>r(d[12])},"./(app)/settings/notifications.tsx":{enumerable:!0,get:()=>r(d[13])},"./_layout.tsx":{enumerable:!0,get:()=>r(d[14])},"./index.tsx":{enumerable:!0,get:()=>r(d[15])}});function n(n){return t[n]}n.keys=function(){return Object.keys(t)},n.resolve=function(t){throw new Error('Unimplemented Metro module context functionality')},m.exports=n},13,[14,1004,1858,1880,1895,1913,1916,2061,2063,2065,2066,2079,2080,2105,2130,2146]);
38
+ __d(function(g,r,i,a,m,e,d){const t=Object.defineProperties({},{"./(app)/(tabs)/_layout.tsx":{enumerable:!0,get:()=>r(d[0])},"./(app)/(tabs)/cameras.tsx":{enumerable:!0,get:()=>r(d[1])},"./(app)/(tabs)/events.tsx":{enumerable:!0,get:()=>r(d[2])},"./(app)/(tabs)/grids.tsx":{enumerable:!0,get:()=>r(d[3])},"./(app)/(tabs)/settings.tsx":{enumerable:!0,get:()=>r(d[4])},"./(app)/_layout.tsx":{enumerable:!0,get:()=>r(d[5])},"./(app)/camera/[id].tsx":{enumerable:!0,get:()=>r(d[6])},"./(app)/events-embed.tsx":{enumerable:!0,get:()=>r(d[7])},"./(app)/exports.tsx":{enumerable:!0,get:()=>r(d[8])},"./(app)/grid/[id]/edit.tsx":{enumerable:!0,get:()=>r(d[9])},"./(app)/grid/[id]/index.tsx":{enumerable:!0,get:()=>r(d[10])},"./(app)/grid/adhoc.tsx":{enumerable:!0,get:()=>r(d[11])},"./(app)/settings/cameras.tsx":{enumerable:!0,get:()=>r(d[12])},"./(app)/settings/notifications.tsx":{enumerable:!0,get:()=>r(d[13])},"./_layout.tsx":{enumerable:!0,get:()=>r(d[14])},"./index.tsx":{enumerable:!0,get:()=>r(d[15])}});function n(n){return t[n]}n.keys=function(){return Object.keys(t)},n.resolve=function(t){throw new Error('Unimplemented Metro module context functionality')},m.exports=n},13,[14,1004,1858,1880,1895,1913,1916,2061,2063,2065,2066,2079,2080,2105,2130,2147]);
39
39
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return o}});var t=r(d[0]),n=r(d[1]),c=r(d[2]);function o(){const o=(0,t.c)(1);let u;return o[0]===Symbol.for("react.memo_cache_sentinel")?(u=(0,c.jsx)(n.TabsNavigator,{}),o[0]=u):u=o[0],u}},14,[15,19,10]);
40
40
  __d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},15,[16]);
41
41
  __d(function(g,r,i,a,m,e,d){
@@ -405,7 +405,7 @@ __d(function(g,r,i,_a,m,_e,_d){'use strict';m.exports=function(e,n,o,t,a,f,s,d){
405
405
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t={}},324,[]);
406
406
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.installOnUIRuntime=function(t){const o=globalThis?.expo?.installOnUIRuntime;if(!o)throw Error("Native method to install Expo Modules on the worklets UI runtime wasn't found in `expo-modules-core`.");o(t)}},325,[]);
407
407
  __d(function(g,r,i,a,m,e,d){"use strict";var t,n,o;Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"AppOwnership",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"ExecutionEnvironment",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"UserInterfaceIdiom",{enumerable:!0,get:function(){return o}}),(function(t){t.Expo="expo"})(t||(t={})),(function(t){t.Bare="bare",t.Standalone="standalone",t.StoreClient="storeClient"})(n||(n={})),(function(t){t.Handset="handset",t.Tablet="tablet",t.Desktop="desktop",t.TV="tv",t.Unsupported="unsupported"})(o||(o={}))},326,[]);
408
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return s}});var t=r(d[0]);const n=(Date.now()+'-'+Math.floor(1e9*Math.random())).toString();function o(){if('undefined'!=typeof navigator&&'string'==typeof navigator.userAgent){const t=navigator.userAgent.toLowerCase();if(t.includes('edge'))return'Edge';if(t.includes('edg'))return'Chromium Edge';if(t.includes('opr')&&'opr'in window&&window.opr)return'Opera';if(t.includes('chrome')&&'chrome'in window&&window.chrome)return'Chrome';if(t.includes('trident'))return'IE';if(t.includes('firefox'))return'Firefox';if(t.includes('safari'))return'Safari'}}var s={get appOwnership(){return null},get executionEnvironment(){return t.ExecutionEnvironment.Bare},get sessionId(){return n},get isHeadless(){return'undefined'==typeof navigator||/\bHeadlessChrome\//.test(navigator.userAgent)},get expoVersion(){return this.manifest.sdkVersion||null},get linkingUri(){return'undefined'!=typeof location?location.origin:''},get expoRuntimeVersion(){return this.expoVersion},get deviceName(){return o()},get systemFonts(){return[]},get statusBarHeight(){return 0},get deviceYearClass(){return null},get manifest(){return"{\"name\":\"CamStack\",\"slug\":\"camstack\",\"version\":\"1.0.301\",\"sdkVersion\":\"57.0.0\",\"platforms\":[\"ios\",\"android\",\"web\"],\"runtimeVersion\":\"1.0.171\",\"orientation\":\"default\",\"icon\":\"./assets/images/icon.png\",\"scheme\":\"camstack\",\"userInterfaceStyle\":\"automatic\",\"web\":{\"output\":\"single\",\"favicon\":\"./assets/images/favicon.png\",\"shortName\":\"CamStack\",\"backgroundColor\":\"#e67e22\",\"name\":\"CamStack\"},\"experiments\":{\"typedRoutes\":true,\"reactCompiler\":true,\"baseUrl\":\"/viewer/camstack\"},\"extra\":{\"router\":{\"root\":\"app\"},\"eas\":{\"projectId\":\"8fb06894-6375-41ff-959f-1a22a03dbd73\"}},\"updates\":{\"url\":\"https://u.expo.dev/8fb06894-6375-41ff-959f-1a22a03dbd73\"},\"owner\":\"zentik-notifier\"}"},get manifest2(){return null},get experienceUrl(){return'undefined'!=typeof location?location.origin:''},get debugMode(){return!1},getWebViewUserAgentAsync:async()=>'undefined'!=typeof navigator?navigator.userAgent:null}},327,[326]);
408
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return s}});var t=r(d[0]);const n=(Date.now()+'-'+Math.floor(1e9*Math.random())).toString();function o(){if('undefined'!=typeof navigator&&'string'==typeof navigator.userAgent){const t=navigator.userAgent.toLowerCase();if(t.includes('edge'))return'Edge';if(t.includes('edg'))return'Chromium Edge';if(t.includes('opr')&&'opr'in window&&window.opr)return'Opera';if(t.includes('chrome')&&'chrome'in window&&window.chrome)return'Chrome';if(t.includes('trident'))return'IE';if(t.includes('firefox'))return'Firefox';if(t.includes('safari'))return'Safari'}}var s={get appOwnership(){return null},get executionEnvironment(){return t.ExecutionEnvironment.Bare},get sessionId(){return n},get isHeadless(){return'undefined'==typeof navigator||/\bHeadlessChrome\//.test(navigator.userAgent)},get expoVersion(){return this.manifest.sdkVersion||null},get linkingUri(){return'undefined'!=typeof location?location.origin:''},get expoRuntimeVersion(){return this.expoVersion},get deviceName(){return o()},get systemFonts(){return[]},get statusBarHeight(){return 0},get deviceYearClass(){return null},get manifest(){return"{\"name\":\"CamStack\",\"slug\":\"camstack\",\"version\":\"1.0.302\",\"sdkVersion\":\"57.0.0\",\"platforms\":[\"ios\",\"android\",\"web\"],\"runtimeVersion\":\"1.0.171\",\"orientation\":\"default\",\"icon\":\"./assets/images/icon.png\",\"scheme\":\"camstack\",\"userInterfaceStyle\":\"automatic\",\"web\":{\"output\":\"single\",\"favicon\":\"./assets/images/favicon.png\",\"shortName\":\"CamStack\",\"backgroundColor\":\"#e67e22\",\"name\":\"CamStack\"},\"experiments\":{\"typedRoutes\":true,\"reactCompiler\":true,\"baseUrl\":\"/viewer/camstack\"},\"extra\":{\"router\":{\"root\":\"app\"},\"eas\":{\"projectId\":\"8fb06894-6375-41ff-959f-1a22a03dbd73\"}},\"updates\":{\"url\":\"https://u.expo.dev/8fb06894-6375-41ff-959f-1a22a03dbd73\"},\"owner\":\"zentik-notifier\"}"},get manifest2(){return null},get experienceUrl(){return'undefined'!=typeof location?location.origin:''},get debugMode(){return!1},getWebViewUserAgentAsync:async()=>'undefined'!=typeof navigator?navigator.userAgent:null}},327,[326]);
409
409
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SITEMAP_ROUTE_NAME=e.NOT_FOUND_ROUTE_NAME=e.INTERNAL_SLOT_NAME=void 0,e.INTERNAL_SLOT_NAME='__root',e.NOT_FOUND_ROUTE_NAME='+not-found',e.SITEMAP_ROUTE_NAME='_sitemap'},328,[]);
410
410
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useCurrentRouteInfo=function(){const n=(0,u.useStateForPath)();return(0,t.useMemo)(()=>n?(0,o.getCachedRouteInfo)(n):void 0,[n])};const t=r(d[0]),o=r(d[1]),u=r(d[2])},329,[17,330,338]);
411
411
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.routeInfoSubscribe=e.routeInfoSubscribers=void 0,e.getCachedRouteInfo=function(s){let u=o.get(s);if(!u){u=(0,t.getRouteInfoFromState)(s);const f=JSON.stringify(u),c=n.get(f);c?u=c:n.set(f,u),o.set(s,u)}return u},e.setCachedRouteInfo=function(t,s){o.set(t,s),n.set(JSON.stringify(s),s)};const t=r(d[0]),o=new WeakMap,n=new Map;e.routeInfoSubscribers=new Set;e.routeInfoSubscribe=t=>(e.routeInfoSubscribers.add(t),()=>{e.routeInfoSubscribers.delete(t)})},330,[331]);
@@ -2321,7 +2321,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
2321
2321
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"TRPC_ERROR_CODES_BY_KEY",{enumerable:!0,get:function(){return t.TRPC_ERROR_CODES_BY_KEY}}),Object.defineProperty(e,"TRPC_ERROR_CODES_BY_NUMBER",{enumerable:!0,get:function(){return t.TRPC_ERROR_CODES_BY_NUMBER}}),Object.defineProperty(e,"parseTRPCMessage",{enumerable:!0,get:function(){return R.parseTRPCMessage}});var t=r(d[0]),R=r(d[1])},1032,[1018,1020]);
2322
2322
  __d(function(e,t,n,a,r,o,i){"use strict";const c=["icon"];function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(o,'__esModule',{value:!0}),Object.defineProperty(o,"ACCESSORY_LABEL",{enumerable:!0,get:function(){return Dj}}),Object.defineProperty(o,"ALEXA_EGRESS_PROFILE",{enumerable:!0,get:function(){return w}}),Object.defineProperty(o,"ALL_CAPABILITY_DEFINITIONS",{enumerable:!0,get:function(){return Fk}}),Object.defineProperty(o,"APPLE_SA_TO_MACRO",{enumerable:!0,get:function(){return ed}}),Object.defineProperty(o,"AUDIO_ANALYSIS_CAP_NAME",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(o,"AUDIO_BACKEND_CHOICES",{enumerable:!0,get:function(){return Qa}}),Object.defineProperty(o,"AUDIO_MACRO_LABELS",{enumerable:!0,get:function(){return Xs}}),Object.defineProperty(o,"AUDIO_PRESETS",{enumerable:!0,get:function(){return p.r}}),Object.defineProperty(o,"AccessoriesStatusSchema",{enumerable:!0,get:function(){return Sg}}),Object.defineProperty(o,"AccessoryKind",{enumerable:!0,get:function(){return Tj}}),Object.defineProperty(o,"AddBrokerInputSchema",{enumerable:!0,get:function(){return hs}}),Object.defineProperty(o,"AddonAutoUpdateSchema",{enumerable:!0,get:function(){return $g}}),Object.defineProperty(o,"AddonListItemSchema",{enumerable:!0,get:function(){return Bg}}),Object.defineProperty(o,"AddonPageDeclarationSchema",{enumerable:!0,get:function(){return fa}}),Object.defineProperty(o,"AddonPageInfoSchema",{enumerable:!0,get:function(){return za}}),Object.defineProperty(o,"AdoptionAdoptInputSchema",{enumerable:!0,get:function(){return yi}}),Object.defineProperty(o,"AdoptionAdoptResultSchema",{enumerable:!0,get:function(){return fi}}),Object.defineProperty(o,"AdoptionCandidateResultSchema",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(o,"AdoptionFilterSchema",{enumerable:!0,get:function(){return li}}),Object.defineProperty(o,"AdoptionGetCandidateInputSchema",{enumerable:!0,get:function(){return bi}}),Object.defineProperty(o,"AdoptionJobSchema",{enumerable:!0,get:function(){return re}}),Object.defineProperty(o,"AdoptionJobStateSchema",{enumerable:!0,get:function(){return te}}),Object.defineProperty(o,"AdoptionListCandidatesInputSchema",{enumerable:!0,get:function(){return mi}}),Object.defineProperty(o,"AdoptionListCandidatesOutputSchema",{enumerable:!0,get:function(){return pi}}),Object.defineProperty(o,"AdoptionOutcomeSchema",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(o,"AdoptionReleaseInputSchema",{enumerable:!0,get:function(){return vi}}),Object.defineProperty(o,"AdoptionStatusSchema",{enumerable:!0,get:function(){return gi}}),Object.defineProperty(o,"AgentLoadSummarySchema",{enumerable:!0,get:function(){return Op}}),Object.defineProperty(o,"AirQualitySensorStatusSchema",{enumerable:!0,get:function(){return tz}}),Object.defineProperty(o,"AlarmArmModeSchema",{enumerable:!0,get:function(){return Sd}}),Object.defineProperty(o,"AlarmPanelStatusSchema",{enumerable:!0,get:function(){return jd}}),Object.defineProperty(o,"AlarmStateSchema",{enumerable:!0,get:function(){return hd}}),Object.defineProperty(o,"AlertSchema",{enumerable:!0,get:function(){return _a}}),Object.defineProperty(o,"AlertSeveritySchema",{enumerable:!0,get:function(){return Ba}}),Object.defineProperty(o,"AlertSourceSchema",{enumerable:!0,get:function(){return Fa}}),Object.defineProperty(o,"AlertStatusSchema",{enumerable:!0,get:function(){return La}}),Object.defineProperty(o,"AmbientLightSensorStatusSchema",{enumerable:!0,get:function(){return az}}),Object.defineProperty(o,"ApiKeyRecordSchema",{enumerable:!0,get:function(){return wl}}),Object.defineProperty(o,"ApiKeySummarySchema",{enumerable:!0,get:function(){return WS}}),Object.defineProperty(o,"ArchiveEntrySchema",{enumerable:!0,get:function(){return gr}}),Object.defineProperty(o,"ArchiveManifestSchema",{enumerable:!0,get:function(){return zr}}),Object.defineProperty(o,"AttachmentMediaTypeSchema",{enumerable:!0,get:function(){return Ms}}),Object.defineProperty(o,"AttachmentSchema",{enumerable:!0,get:function(){return Es}}),Object.defineProperty(o,"AudioAnalysisResultSchema",{enumerable:!0,get:function(){return Ja}}),Object.defineProperty(o,"AudioAnalysisSettingsSchema",{enumerable:!0,get:function(){return Ya}}),Object.defineProperty(o,"AudioChunkInputSchema",{enumerable:!0,get:function(){return Wa}}),Object.defineProperty(o,"AudioClassSummarySchema",{enumerable:!0,get:function(){return oz}}),Object.defineProperty(o,"AudioClassificationLabelSchema",{enumerable:!0,get:function(){return Za}}),Object.defineProperty(o,"AudioClassificationResultSchema",{enumerable:!0,get:function(){return Xa}}),Object.defineProperty(o,"AudioCodecInfoSchema",{enumerable:!0,get:function(){return ar}}),Object.defineProperty(o,"AudioDecodeSessionConfigSchema",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(o,"AudioEncodeSchema",{enumerable:!0,get:function(){return j}}),Object.defineProperty(o,"AudioEncodeSessionConfigSchema",{enumerable:!0,get:function(){return or}}),Object.defineProperty(o,"AudioEncodedChunkSchema",{enumerable:!0,get:function(){return cr}}),Object.defineProperty(o,"AudioEventSchema",{enumerable:!0,get:function(){return du}}),Object.defineProperty(o,"AudioLevelSchema",{enumerable:!0,get:function(){return Ga}}),Object.defineProperty(o,"AudioMetricsHistoryPointSchema",{enumerable:!0,get:function(){return cz}}),Object.defineProperty(o,"AudioMetricsHistorySchema",{enumerable:!0,get:function(){return sz}}),Object.defineProperty(o,"AudioMetricsSnapshotSchema",{enumerable:!0,get:function(){return iz}}),Object.defineProperty(o,"AudioPcmChunkSchema",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(o,"AuthResultSchema",{enumerable:!0,get:function(){return lr}}),Object.defineProperty(o,"AutoUpdateSettingsSchema",{enumerable:!0,get:function(){return Ug}}),Object.defineProperty(o,"AutomationActionSchema",{enumerable:!0,get:function(){return aa}}),Object.defineProperty(o,"AutomationConditionOperatorSchema",{enumerable:!0,get:function(){return Xn}}),Object.defineProperty(o,"AutomationConditionSchema",{enumerable:!0,get:function(){return ta}}),Object.defineProperty(o,"AutomationControlStatusSchema",{enumerable:!0,get:function(){return lz}}),Object.defineProperty(o,"AutomationRecipeSchema",{enumerable:!0,get:function(){return ra}}),Object.defineProperty(o,"AutomationTriggerSchema",{enumerable:!0,get:function(){return na}}),Object.defineProperty(o,"AvailableIntegrationTypeSchema",{enumerable:!0,get:function(){return Gy}}),Object.defineProperty(o,"BACKEND_TO_FORMAT",{enumerable:!0,get:function(){return LA}}),Object.defineProperty(o,"BASE_LIVE_EGRESS_PROFILE",{enumerable:!0,get:function(){return A}}),Object.defineProperty(o,"BATTERY_DEVICE_PROFILE",{enumerable:!0,get:function(){return ok}}),Object.defineProperty(o,"BacklightModeSchema",{enumerable:!0,get:function(){return _y}}),Object.defineProperty(o,"BackupDestinationInfoSchema",{enumerable:!0,get:function(){return mr}}),Object.defineProperty(o,"BackupEntrySchema",{enumerable:!0,get:function(){return br}}),Object.defineProperty(o,"BaseAddon",{enumerable:!0,get:function(){return m.ht}}),Object.defineProperty(o,"BaseDevice",{enumerable:!0,get:function(){return qj}}),Object.defineProperty(o,"BaseDeviceProvider",{enumerable:!0,get:function(){return $j}}),Object.defineProperty(o,"BatteryStatusSchema",{enumerable:!0,get:function(){return mz}}),Object.defineProperty(o,"BinaryStatusSchema",{enumerable:!0,get:function(){return bz}}),Object.defineProperty(o,"BoundingBoxSchema",{enumerable:!0,get:function(){return Ha}}),Object.defineProperty(o,"BrightnessStatusSchema",{enumerable:!0,get:function(){return zz}}),Object.defineProperty(o,"BrokerAddInputSchema",{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(o,"BrokerAudioClientSchema",{enumerable:!0,get:function(){return Jr}}),Object.defineProperty(o,"BrokerClientsSchema",{enumerable:!0,get:function(){return eo}}),Object.defineProperty(o,"BrokerConnectionDetailsSchema",{enumerable:!0,get:function(){return vs}}),Object.defineProperty(o,"BrokerConsumerAttributionSchema",{enumerable:!0,get:function(){return Xr}}),Object.defineProperty(o,"BrokerConsumerKindSchema",{enumerable:!0,get:function(){return Yr}}),Object.defineProperty(o,"BrokerDecodedClientSchema",{enumerable:!0,get:function(){return Zr}}),Object.defineProperty(o,"BrokerEncodedClientSchema",{enumerable:!0,get:function(){return Qr}}),Object.defineProperty(o,"BrokerGetStateInputSchema",{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(o,"BrokerInfoSchema",{enumerable:!0,get:function(){return fs}}),Object.defineProperty(o,"BrokerProviderInfoSchema",{enumerable:!0,get:function(){return kr}}),Object.defineProperty(o,"BrokerPublishInputSchema",{enumerable:!0,get:function(){return Dr}}),Object.defineProperty(o,"BrokerRegistryStatusSchema",{enumerable:!0,get:function(){return jr}}),Object.defineProperty(o,"BrokerRtspClientSchema",{enumerable:!0,get:function(){return Gr}}),Object.defineProperty(o,"BrokerStatsSchema",{enumerable:!0,get:function(){return m.H}}),Object.defineProperty(o,"BrokerStatusEnum",{enumerable:!0,get:function(){return hr}}),Object.defineProperty(o,"BrokerStatusSchema",{enumerable:!0,get:function(){return m.U}}),Object.defineProperty(o,"BrokerSubscribeInputSchema",{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(o,"BrokerSubscribeResultSchema",{enumerable:!0,get:function(){return Br}}),Object.defineProperty(o,"BrokerTestConnectionResultSchema",{enumerable:!0,get:function(){return Cr}}),Object.defineProperty(o,"BrokerUnsubscribeInputSchema",{enumerable:!0,get:function(){return Lr}}),Object.defineProperty(o,"CAMERA_SWITCH_CATALOG",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(o,"CAMERA_SWITCH_ORDER",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(o,"CAM_PROFILE_ORDER",{enumerable:!0,get:function(){return m.W}}),Object.defineProperty(o,"CAPABILITY_NAMES",{enumerable:!0,get:function(){return Bk}}),Object.defineProperty(o,"CAPABILITY_ROUTER_KEYS",{enumerable:!0,get:function(){return Lk}}),Object.defineProperty(o,"CAP_NAMES_WITH_STATUS",{enumerable:!0,get:function(){return Rk}}),Object.defineProperty(o,"CAP_NODE_PIN_CONTEXT_KEY",{enumerable:!0,get:function(){return m.N}}),Object.defineProperty(o,"CAP_PROVIDER_KIND_MAP",{enumerable:!0,get:function(){return Vk}}),Object.defineProperty(o,"COCO_80_LABELS",{enumerable:!0,get:function(){return Zs}}),Object.defineProperty(o,"COCO_TO_MACRO",{enumerable:!0,get:function(){return Ys}}),Object.defineProperty(o,"CONNECTION_TEST_TIMEOUT_MS",{enumerable:!0,get:function(){return Mz}}),Object.defineProperty(o,"CORE_BLOCKS_ADDON_ID",{enumerable:!0,get:function(){return wo}}),Object.defineProperty(o,"CORE_BLOCK_ADDON_PREFIX",{enumerable:!0,get:function(){return Po}}),Object.defineProperty(o,"CamProfileSchema",{enumerable:!0,get:function(){return m.G}}),Object.defineProperty(o,"CamStreamDescriptorSchema",{enumerable:!0,get:function(){return yS}}),Object.defineProperty(o,"CamStreamKindSchema",{enumerable:!0,get:function(){return m.K}}),Object.defineProperty(o,"CamStreamResolutionSchema",{enumerable:!0,get:function(){return m.q}}),Object.defineProperty(o,"CameraAssignmentStatusSchema",{enumerable:!0,get:function(){return Tp}}),Object.defineProperty(o,"CameraAudioStatusSchema",{enumerable:!0,get:function(){return Vp}}),Object.defineProperty(o,"CameraBrokerProfileSchema",{enumerable:!0,get:function(){return Dp}}),Object.defineProperty(o,"CameraBrokerStatusSchema",{enumerable:!0,get:function(){return Rp}}),Object.defineProperty(o,"CameraCredentialsSchema",{enumerable:!0,get:function(){return vz}}),Object.defineProperty(o,"CameraCredentialsStatusSchema",{enumerable:!0,get:function(){return hz}}),Object.defineProperty(o,"CameraDecoderShmSchema",{enumerable:!0,get:function(){return Bp}}),Object.defineProperty(o,"CameraDecoderStatusSchema",{enumerable:!0,get:function(){return Lp}}),Object.defineProperty(o,"CameraDetectionPhaseSchema",{enumerable:!0,get:function(){return Up}}),Object.defineProperty(o,"CameraDetectionProvisioningSchema",{enumerable:!0,get:function(){return qp}}),Object.defineProperty(o,"CameraDetectionProvisioningStateSchema",{enumerable:!0,get:function(){return _p}}),Object.defineProperty(o,"CameraDetectionStatusSchema",{enumerable:!0,get:function(){return $p}}),Object.defineProperty(o,"CameraMetricsSchema",{enumerable:!0,get:function(){return Om}}),Object.defineProperty(o,"CameraMetricsWithDeviceIdSchema",{enumerable:!0,get:function(){return Cm}}),Object.defineProperty(o,"CameraMotionStatusSchema",{enumerable:!0,get:function(){return Fp}}),Object.defineProperty(o,"CameraRecordingModeSchema",{enumerable:!0,get:function(){return Hp}}),Object.defineProperty(o,"CameraRecordingStatusSchema",{enumerable:!0,get:function(){return Kp}}),Object.defineProperty(o,"CameraSourceStatusSchema",{enumerable:!0,get:function(){return Ep}}),Object.defineProperty(o,"CameraSourceStreamSchema",{enumerable:!0,get:function(){return Mp}}),Object.defineProperty(o,"CameraStatusDegradationReasonSchema",{enumerable:!0,get:function(){return Gp}}),Object.defineProperty(o,"CameraStatusDegradationSchema",{enumerable:!0,get:function(){return Zp}}),Object.defineProperty(o,"CameraStatusSchema",{enumerable:!0,get:function(){return Jp}}),Object.defineProperty(o,"CameraStatusStageSchema",{enumerable:!0,get:function(){return Wp}}),Object.defineProperty(o,"CameraStreamSchema",{enumerable:!0,get:function(){return m.J}}),Object.defineProperty(o,"CameraSwitchAuthoritySchema",{enumerable:!0,get:function(){return se}}),Object.defineProperty(o,"CameraSwitchGroupSchema",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(o,"CameraSwitchIdSchema",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(o,"CameraSwitchSchema",{enumerable:!0,get:function(){return le}}),Object.defineProperty(o,"CameraSwitchUnavailableReasonSchema",{enumerable:!0,get:function(){return de}}),Object.defineProperty(o,"CandidateQueryFilterSchema",{enumerable:!0,get:function(){return ui}}),Object.defineProperty(o,"CapScopeSchema",{enumerable:!0,get:function(){return Il}}),Object.defineProperty(o,"CapabilityBindingsSchema",{enumerable:!0,get:function(){return Np}}),Object.defineProperty(o,"CarbonMonoxideStatusSchema",{enumerable:!0,get:function(){return jz}}),Object.defineProperty(o,"ChargingStatus",{enumerable:!0,get:function(){return m.b}}),Object.defineProperty(o,"ClientNetworkStatsSchema",{enumerable:!0,get:function(){return Gf}}),Object.defineProperty(o,"ClimateControlStatusSchema",{enumerable:!0,get:function(){return Az}}),Object.defineProperty(o,"ClipPlaybackSchema",{enumerable:!0,get:function(){return gg}}),Object.defineProperty(o,"ClipSchema",{enumerable:!0,get:function(){return bg}}),Object.defineProperty(o,"ClusterAddonNodeDeploymentSchema",{enumerable:!0,get:function(){return rv}}),Object.defineProperty(o,"ClusterAddonStatusEntrySchema",{enumerable:!0,get:function(){return ov}}),Object.defineProperty(o,"CollectionColumnSchema",{enumerable:!0,get:function(){return Vo}}),Object.defineProperty(o,"CollectionIndexSchema",{enumerable:!0,get:function(){return Ho}}),Object.defineProperty(o,"ColorStatusSchema",{enumerable:!0,get:function(){return Nz}}),Object.defineProperty(o,"ConfigEntrySchema",{enumerable:!0,get:function(){return Vi}}),Object.defineProperty(o,"ConfigSectionWithValuesSchema",{enumerable:!0,get:function(){return Aa}}),Object.defineProperty(o,"ConfigTabDeclarationSchema",{enumerable:!0,get:function(){return Ia}}),Object.defineProperty(o,"ConnectionTestDescriptorSchema",{enumerable:!0,get:function(){return Dz}}),Object.defineProperty(o,"ConnectionTestInputSchema",{enumerable:!0,get:function(){return Tz}}),Object.defineProperty(o,"ConnectionTestOutcomeSchema",{enumerable:!0,get:function(){return Ez}}),Object.defineProperty(o,"ConnectivityStatusSchema",{enumerable:!0,get:function(){return Bz}}),Object.defineProperty(o,"ConsumableItemSchema",{enumerable:!0,get:function(){return Fz}}),Object.defineProperty(o,"ConsumablesStatusSchema",{enumerable:!0,get:function(){return _z}}),Object.defineProperty(o,"ContactStatusSchema",{enumerable:!0,get:function(){return Uz}}),Object.defineProperty(o,"ControlKindSchema",{enumerable:!0,get:function(){return Vz}}),Object.defineProperty(o,"ControlStatusSchema",{enumerable:!0,get:function(){return Hz}}),Object.defineProperty(o,"ConvertArtifactSchema",{enumerable:!0,get:function(){return qt}}),Object.defineProperty(o,"ConvertResultSchema",{enumerable:!0,get:function(){return Ut}}),Object.defineProperty(o,"ConvertTargetSchema",{enumerable:!0,get:function(){return Ft}}),Object.defineProperty(o,"CoreBlockCompileResultSchema",{enumerable:!0,get:function(){return To}}),Object.defineProperty(o,"CoreBlockInputSchema",{enumerable:!0,get:function(){return Mo}}),Object.defineProperty(o,"CoreBlockPlacementSchema",{enumerable:!0,get:function(){return No}}),Object.defineProperty(o,"CoreBlockSchema",{enumerable:!0,get:function(){return Eo}}),Object.defineProperty(o,"CoreBlockStatusSchema",{enumerable:!0,get:function(){return xo}}),Object.defineProperty(o,"CoverStateSchema",{enumerable:!0,get:function(){return Gz}}),Object.defineProperty(o,"CoverStatusSchema",{enumerable:!0,get:function(){return Zz}}),Object.defineProperty(o,"CreateApiKeyInputSchema",{enumerable:!0,get:function(){return GS}}),Object.defineProperty(o,"CreateApiKeyResultSchema",{enumerable:!0,get:function(){return ZS}}),Object.defineProperty(o,"CreateIntegrationInputSchema",{enumerable:!0,get:function(){return Yy}}),Object.defineProperty(o,"CreateScopedTokenInputSchema",{enumerable:!0,get:function(){return YS}}),Object.defineProperty(o,"CreateScopedTokenResultSchema",{enumerable:!0,get:function(){return XS}}),Object.defineProperty(o,"CreateUserInputSchema",{enumerable:!0,get:function(){return HS}}),Object.defineProperty(o,"CustomActionInputSchema",{enumerable:!0,get:function(){return Qg}}),Object.defineProperty(o,"CustomModelDescriptorSchema",{enumerable:!0,get:function(){return Fo}}),Object.defineProperty(o,"DATAPLANE_SECRET_HEADER",{enumerable:!0,get:function(){return m.pt}}),Object.defineProperty(o,"DECLARED_DEVICE_SWEEP_LIMIT",{enumerable:!0,get:function(){return Kj}}),Object.defineProperty(o,"DECLARED_INTEGRATION_FIXED_KEY",{enumerable:!0,get:function(){return Vj}}),Object.defineProperty(o,"DEFAULT_ADDON_PLACEMENT",{enumerable:!0,get:function(){return G}}),Object.defineProperty(o,"DEFAULT_AUDIO_ANALYZER_CONFIG",{enumerable:!0,get:function(){return er}}),Object.defineProperty(o,"DEFAULT_DECODER_HWACCEL_CONFIG",{enumerable:!0,get:function(){return Jo}}),Object.defineProperty(o,"DEFAULT_DETAIL_CROP_CONVENTION",{enumerable:!0,get:function(){return RI}}),Object.defineProperty(o,"DEFAULT_EVENTS_BAND_BUFFER_SEC",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(o,"DEFAULT_EVENT_COLOR",{enumerable:!0,get:function(){return od}}),Object.defineProperty(o,"DEFAULT_FEATURES",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(o,"DEFAULT_NATIVE_LEASE_SETTINGS",{enumerable:!0,get:function(){return XI}}),Object.defineProperty(o,"DEFAULT_RETENTION",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(o,"DEFAULT_SCRUB_THUMBNAIL_PRESET",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(o,"DETAIL_CROP_PADDING_FIELD",{enumerable:!0,get:function(){return _I}}),Object.defineProperty(o,"DETAIL_CROP_PADDING_KEY",{enumerable:!0,get:function(){return EI}}),Object.defineProperty(o,"DETAIL_CROP_SECTION_ID",{enumerable:!0,get:function(){return MI}}),Object.defineProperty(o,"DETAIL_CROP_SQUARE_KEY",{enumerable:!0,get:function(){return TI}}),Object.defineProperty(o,"DETECTION_PIPELINE_CAP_NAME",{enumerable:!0,get:function(){return me}}),Object.defineProperty(o,"DEVICE_BACKEND_TO_FORMAT",{enumerable:!0,get:function(){return FA}}),Object.defineProperty(o,"DEVICE_CAP_NAMES",{enumerable:!0,get:function(){return Uk}}),Object.defineProperty(o,"DEVICE_PROFILES",{enumerable:!0,get:function(){return ik}}),Object.defineProperty(o,"DEVICE_SCOPED_CAPS",{enumerable:!0,get:function(){return m.d}}),Object.defineProperty(o,"DEVICE_SETTINGS_CONTRIBUTION_METHODS",{enumerable:!0,get:function(){return m.T}}),Object.defineProperty(o,"DEVICE_STATE_READERS",{enumerable:!0,get:function(){return Oj}}),Object.defineProperty(o,"DEVICE_STATUS_METHOD",{enumerable:!0,get:function(){return m.E}}),Object.defineProperty(o,"DEVICE_TYPE_CONTROL_KIND",{enumerable:!0,get:function(){return Gj}}),Object.defineProperty(o,"DEVICE_TYPE_INFO",{enumerable:!0,get:function(){return dA}}),Object.defineProperty(o,"DataStoreEngineInfoSchema",{enumerable:!0,get:function(){return Wo}}),Object.defineProperty(o,"DayNightModeSchema",{enumerable:!0,get:function(){return Yz}}),Object.defineProperty(o,"DayNightOptionsSchema",{enumerable:!0,get:function(){return ey}}),Object.defineProperty(o,"DayNightSettingsPatchSchema",{enumerable:!0,get:function(){return ty}}),Object.defineProperty(o,"DayNightStatusSchema",{enumerable:!0,get:function(){return Qz}}),Object.defineProperty(o,"DeclaredDevices",{enumerable:!0,get:function(){return Wj}}),Object.defineProperty(o,"DecodedAudioChunkSchema",{enumerable:!0,get:function(){return m.Y}}),Object.defineProperty(o,"DecodedFrameSchema",{enumerable:!0,get:function(){return m.X}}),Object.defineProperty(o,"DecoderSessionConfigSchema",{enumerable:!0,get:function(){return gt}}),Object.defineProperty(o,"DecoderStatsSchema",{enumerable:!0,get:function(){return bt}}),Object.defineProperty(o,"DeleteIntegrationResultSchema",{enumerable:!0,get:function(){return Qy}}),Object.defineProperty(o,"DetailCropConventionSchema",{enumerable:!0,get:function(){return DI}}),Object.defineProperty(o,"DetectionSourceSchema",{enumerable:!0,get:function(){return ou}}),Object.defineProperty(o,"DeviceCodeSeveritySchema",{enumerable:!0,get:function(){return cf}}),Object.defineProperty(o,"DeviceConfig",{enumerable:!0,get:function(){return Bj}}),Object.defineProperty(o,"DeviceDiscoveryStatusSchema",{enumerable:!0,get:function(){return si}}),Object.defineProperty(o,"DeviceExportExposeInputSchema",{enumerable:!0,get:function(){return Ci}}),Object.defineProperty(o,"DeviceExportStatusSchema",{enumerable:!0,get:function(){return Pi}}),Object.defineProperty(o,"DeviceExportUnexposeInputSchema",{enumerable:!0,get:function(){return Ni}}),Object.defineProperty(o,"DeviceFeature",{enumerable:!0,get:function(){return m.x}}),Object.defineProperty(o,"DeviceInfoSchema",{enumerable:!0,get:function(){return $i}}),Object.defineProperty(o,"DeviceNetworkStatsSchema",{enumerable:!0,get:function(){return Zf}}),Object.defineProperty(o,"DeviceRole",{enumerable:!0,get:function(){return m.S}}),Object.defineProperty(o,"DeviceRuntimeState",{enumerable:!0,get:function(){return Lj}}),Object.defineProperty(o,"DeviceStatusSchema",{enumerable:!0,get:function(){return ay}}),Object.defineProperty(o,"DeviceType",{enumerable:!0,get:function(){return m.C}}),Object.defineProperty(o,"DiscoveredChildDeviceSchema",{enumerable:!0,get:function(){return ci}}),Object.defineProperty(o,"DiscoveredChildStatusSchema",{enumerable:!0,get:function(){return ii}}),Object.defineProperty(o,"DiscoveredDeviceSchema",{enumerable:!0,get:function(){return Ei}}),Object.defineProperty(o,"DiscoveredTargetSchema",{enumerable:!0,get:function(){return Vs}}),Object.defineProperty(o,"DisposerChain",{enumerable:!0,get:function(){return m.mt}}),Object.defineProperty(o,"DoorbellPressEventSchema",{enumerable:!0,get:function(){return iy}}),Object.defineProperty(o,"DoorbellStatusSchema",{enumerable:!0,get:function(){return oy}}),Object.defineProperty(o,"EVENTFUL_CAP_NAMES",{enumerable:!0,get:function(){return ob}}),Object.defineProperty(o,"EVENT_KIND_BY_CAP",{enumerable:!0,get:function(){return rb}}),Object.defineProperty(o,"EVENT_PAD_MS",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(o,"EVENT_TAXONOMY",{enumerable:!0,get:function(){return ud}}),Object.defineProperty(o,"EXPRESSION_BUILTINS",{enumerable:!0,get:function(){return nn}}),Object.defineProperty(o,"EXPRESSION_BUILTIN_NAMES",{enumerable:!0,get:function(){return an}}),Object.defineProperty(o,"EXPRESSION_COMPILE_CACHE_CAPACITY",{enumerable:!0,get:function(){return ln}}),Object.defineProperty(o,"EXPRESSION_IDENTIFIER_RE",{enumerable:!0,get:function(){return un}}),Object.defineProperty(o,"EXPRESSION_INJECTED_NOW",{enumerable:!0,get:function(){return qn}}),Object.defineProperty(o,"EgressEncodeSchema",{enumerable:!0,get:function(){return io}}),Object.defineProperty(o,"EgressRateControlSchema",{enumerable:!0,get:function(){return co}}),Object.defineProperty(o,"EgressTranscodeRequestSchema",{enumerable:!0,get:function(){return so}}),Object.defineProperty(o,"EgressTranscodeSchema",{enumerable:!0,get:function(){return lo}}),Object.defineProperty(o,"ElementConfigStore",{enumerable:!0,get:function(){return wA}}),Object.defineProperty(o,"EmbeddingInfoSchema",{enumerable:!0,get:function(){return ac}}),Object.defineProperty(o,"EmbeddingResultSchema",{enumerable:!0,get:function(){return nc}}),Object.defineProperty(o,"EncodeProfileSchema",{enumerable:!0,get:function(){return k}}),Object.defineProperty(o,"EncodedPacketSchema",{enumerable:!0,get:function(){return m.Z}}),Object.defineProperty(o,"EnrichedWidgetMetadataSchema",{enumerable:!0,get:function(){return Da}}),Object.defineProperty(o,"EnumSensorDateTimeFormatSchema",{enumerable:!0,get:function(){return sy}}),Object.defineProperty(o,"EnumSensorStatusSchema",{enumerable:!0,get:function(){return dy}}),Object.defineProperty(o,"EventCategory",{enumerable:!0,get:function(){return u.t}}),Object.defineProperty(o,"EventEmitterStatusSchema",{enumerable:!0,get:function(){return my}}),Object.defineProperty(o,"EventFireSchema",{enumerable:!0,get:function(){return uy}}),Object.defineProperty(o,"EventItemSchema",{enumerable:!0,get:function(){return by}}),Object.defineProperty(o,"EventKindCategorySchema",{enumerable:!0,get:function(){return Dl}}),Object.defineProperty(o,"EventKindDescriptorSchema",{enumerable:!0,get:function(){return Bl}}),Object.defineProperty(o,"EventKindIconSchema",{enumerable:!0,get:function(){return Tl}}),Object.defineProperty(o,"EventKindSchema",{enumerable:!0,get:function(){return Ml}}),Object.defineProperty(o,"EventKindsForDeviceSchema",{enumerable:!0,get:function(){return Ll}}),Object.defineProperty(o,"EventMediaArtifactSchema",{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(o,"EventMediaCoverageSchema",{enumerable:!0,get:function(){return Hr}}),Object.defineProperty(o,"EventMediaKindSchema",{enumerable:!0,get:function(){return $r}}),Object.defineProperty(o,"EventMediaProductionSchema",{enumerable:!0,get:function(){return Kr}}),Object.defineProperty(o,"EventSourceType",{enumerable:!0,get:function(){return b.EventSourceType}}),Object.defineProperty(o,"ExportDownloadSchema",{enumerable:!0,get:function(){return tS}}),Object.defineProperty(o,"ExportOptionsSchema",{enumerable:!0,get:function(){return Xh}}),Object.defineProperty(o,"ExportRecordSchema",{enumerable:!0,get:function(){return eS}}),Object.defineProperty(o,"ExportSetupFieldSchema",{enumerable:!0,get:function(){return Ii}}),Object.defineProperty(o,"ExportSetupSchema",{enumerable:!0,get:function(){return Ai}}),Object.defineProperty(o,"ExportSpeedSchema",{enumerable:!0,get:function(){return Jh}}),Object.defineProperty(o,"ExportStateSchema",{enumerable:!0,get:function(){return Qh}}),Object.defineProperty(o,"ExportTimelapseSchema",{enumerable:!0,get:function(){return Yh}}),Object.defineProperty(o,"ExposedDeviceSchema",{enumerable:!0,get:function(){return Oi}}),Object.defineProperty(o,"ExposureModeSchema",{enumerable:!0,get:function(){return Fy}}),Object.defineProperty(o,"ExpressionBindingSourceSchema",{enumerable:!0,get:function(){return Gn}}),Object.defineProperty(o,"ExpressionEvalError",{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(o,"ExpressionFieldBindingSchema",{enumerable:!0,get:function(){return Hn}}),Object.defineProperty(o,"ExpressionGlobalBindingSchema",{enumerable:!0,get:function(){return Wn}}),Object.defineProperty(o,"ExpressionLiteralBindingSchema",{enumerable:!0,get:function(){return Kn}}),Object.defineProperty(o,"ExpressionParseError",{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(o,"ExpressionSourceSchema",{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(o,"FanControlStatusSchema",{enumerable:!0,get:function(){return ky}}),Object.defineProperty(o,"FanDirectionSchema",{enumerable:!0,get:function(){return jy}}),Object.defineProperty(o,"FeatureManifestSchema",{enumerable:!0,get:function(){return MS}}),Object.defineProperty(o,"FeatureProbeStatusSchema",{enumerable:!0,get:function(){return Ay}}),Object.defineProperty(o,"FloodStatusSchema",{enumerable:!0,get:function(){return wy}}),Object.defineProperty(o,"Fmp4BoxSplitter",{enumerable:!0,get:function(){return p.n}}),Object.defineProperty(o,"FrameHandleFormatSchema",{enumerable:!0,get:function(){return m.Q}}),Object.defineProperty(o,"FrameHandleSchema",{enumerable:!0,get:function(){return m.$}}),Object.defineProperty(o,"FrameInputSchema",{enumerable:!0,get:function(){return Va}}),Object.defineProperty(o,"GasStatusSchema",{enumerable:!0,get:function(){return Cy}}),Object.defineProperty(o,"GetStreamWithCodecInputSchema",{enumerable:!0,get:function(){return ro}}),Object.defineProperty(o,"GlobalMetricsSchema",{enumerable:!0,get:function(){return Cp}}),Object.defineProperty(o,"HAP_AUDIO_BASE",{enumerable:!0,get:function(){return E}}),Object.defineProperty(o,"HAP_AUDIO_BITRATE_KBPS",{enumerable:!0,get:function(){return M}}),Object.defineProperty(o,"HAP_AUDIO_VBV_KBITS",{enumerable:!0,get:function(){return T}}),Object.defineProperty(o,"HAP_KEYFRAME_INTERVAL_SEC",{enumerable:!0,get:function(){return D}}),Object.defineProperty(o,"HF_BASE_URL",{enumerable:!0,get:function(){return Mj}}),Object.defineProperty(o,"HF_REPO",{enumerable:!0,get:function(){return xj}}),Object.defineProperty(o,"HWACCEL_OPTIONS",{enumerable:!0,get:function(){return Zo}}),Object.defineProperty(o,"HealthStatusSchema",{enumerable:!0,get:function(){return ES}}),Object.defineProperty(o,"HistoryPointSchema",{enumerable:!0,get:function(){return jj}}),Object.defineProperty(o,"HistoryResolutionEnum",{enumerable:!0,get:function(){return hj}}),Object.defineProperty(o,"HumidifierStatusSchema",{enumerable:!0,get:function(){return xy}}),Object.defineProperty(o,"HumiditySensorStatusSchema",{enumerable:!0,get:function(){return Ey}}),Object.defineProperty(o,"HvacModeSchema",{enumerable:!0,get:function(){return Iz}}),Object.defineProperty(o,"ImageContractSchema",{enumerable:!0,get:function(){return lb}}),Object.defineProperty(o,"ImageContractStateSchema",{enumerable:!0,get:function(){return db}}),Object.defineProperty(o,"ImageRotateSchema",{enumerable:!0,get:function(){return By}}),Object.defineProperty(o,"ImageSettingsOptionsSchema",{enumerable:!0,get:function(){return $y}}),Object.defineProperty(o,"ImageSettingsPatchSchema",{enumerable:!0,get:function(){return Vy}}),Object.defineProperty(o,"ImageSettingsStatusSchema",{enumerable:!0,get:function(){return Uy}}),Object.defineProperty(o,"ImageStatusSchema",{enumerable:!0,get:function(){return Dy}}),Object.defineProperty(o,"IngestOwnerSchema",{enumerable:!0,get:function(){return xp}}),Object.defineProperty(o,"InstalledPackageSchema",{enumerable:!0,get:function(){return Lg}}),Object.defineProperty(o,"IntegrationLiteSchema",{enumerable:!0,get:function(){return Wy}}),Object.defineProperty(o,"IntegrationWithStateSchema",{enumerable:!0,get:function(){return Ky}}),Object.defineProperty(o,"IntercomAbilitySchema",{enumerable:!0,get:function(){return tf}}),Object.defineProperty(o,"IntercomStatusSchema",{enumerable:!0,get:function(){return nf}}),Object.defineProperty(o,"KNOWN_CAP_NAMES",{enumerable:!0,get:function(){return qk}}),Object.defineProperty(o,"KeyEventSchema",{enumerable:!0,get:function(){return Eu}}),Object.defineProperty(o,"LOG_LEVEL_RANK",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(o,"LabelAttributionSchema",{enumerable:!0,get:function(){return Xl}}),Object.defineProperty(o,"LabelDefinitionSchema",{enumerable:!0,get:function(){return jt}}),Object.defineProperty(o,"LabelTierSchema",{enumerable:!0,get:function(){return Yl}}),Object.defineProperty(o,"LawnMowerActivitySchema",{enumerable:!0,get:function(){return of}}),Object.defineProperty(o,"LawnMowerControlStatusSchema",{enumerable:!0,get:function(){return sf}}),Object.defineProperty(o,"LinkedDeviceSchema",{enumerable:!0,get:function(){return Ki}}),Object.defineProperty(o,"LinkedDevicesModeSchema",{enumerable:!0,get:function(){return Hi}}),Object.defineProperty(o,"LlmDefaultSchema",{enumerable:!0,get:function(){return wc}}),Object.defineProperty(o,"LlmDefaultSelectorSchema",{enumerable:!0,get:function(){return Pc}}),Object.defineProperty(o,"LlmErrorCodeSchema",{enumerable:!0,get:function(){return dc}}),Object.defineProperty(o,"LlmGenerateBaseInputSchema",{enumerable:!0,get:function(){return bc}}),Object.defineProperty(o,"LlmGenerateErrSchema",{enumerable:!0,get:function(){return uc}}),Object.defineProperty(o,"LlmGenerateOkSchema",{enumerable:!0,get:function(){return lc}}),Object.defineProperty(o,"LlmGenerateResultSchema",{enumerable:!0,get:function(){return mc}}),Object.defineProperty(o,"LlmImageSchema",{enumerable:!0,get:function(){return pc}}),Object.defineProperty(o,"LlmNodeModelSchema",{enumerable:!0,get:function(){return fc}}),Object.defineProperty(o,"LlmProfileKindDescriptorSchema",{enumerable:!0,get:function(){return Ac}}),Object.defineProperty(o,"LlmProfileKindSchema",{enumerable:!0,get:function(){return jc}}),Object.defineProperty(o,"LlmProfileSchema",{enumerable:!0,get:function(){return kc}}),Object.defineProperty(o,"LlmRuntimeCompleteInputSchema",{enumerable:!0,get:function(){return hc}}),Object.defineProperty(o,"LlmRuntimeDiskUsageSchema",{enumerable:!0,get:function(){return vc}}),Object.defineProperty(o,"LlmRuntimeNodeSchema",{enumerable:!0,get:function(){return Nc}}),Object.defineProperty(o,"LlmRuntimeStatusSchema",{enumerable:!0,get:function(){return yc}}),Object.defineProperty(o,"LlmUsageRollupSchema",{enumerable:!0,get:function(){return Oc}}),Object.defineProperty(o,"LlmUsageSchema",{enumerable:!0,get:function(){return sc}}),Object.defineProperty(o,"LocateSegmentResultSchema",{enumerable:!0,get:function(){return Kh}}),Object.defineProperty(o,"LocationStatSchema",{enumerable:!0,get:function(){return yr}}),Object.defineProperty(o,"LockControlStatusSchema",{enumerable:!0,get:function(){return hf}}),Object.defineProperty(o,"LockStateSchema",{enumerable:!0,get:function(){return vf}}),Object.defineProperty(o,"LogEntrySchema",{enumerable:!0,get:function(){return Dc}}),Object.defineProperty(o,"LogLevelSchema",{enumerable:!0,get:function(){return Tc}}),Object.defineProperty(o,"LogStreamEntrySchema",{enumerable:!0,get:function(){return Yg}}),Object.defineProperty(o,"LoginMethodContributionSchema",{enumerable:!0,get:function(){return qc}}),Object.defineProperty(o,"LoginStageEnum",{enumerable:!0,get:function(){return Bc}}),Object.defineProperty(o,"MACRO_LABELS",{enumerable:!0,get:function(){return Js}}),Object.defineProperty(o,"MAX_CONDITION_DEPTH",{enumerable:!0,get:function(){return Jn}}),Object.defineProperty(o,"MAX_CONDITION_LEAVES",{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(o,"MAX_EXPRESSION_AST_NODES",{enumerable:!0,get:function(){return on}}),Object.defineProperty(o,"MAX_EXPRESSION_BINDINGS",{enumerable:!0,get:function(){return sn}}),Object.defineProperty(o,"MAX_EXPRESSION_CALL_ARGS",{enumerable:!0,get:function(){return dn}}),Object.defineProperty(o,"MAX_EXPRESSION_EVAL_STEPS",{enumerable:!0,get:function(){return cn}}),Object.defineProperty(o,"MAX_EXPRESSION_SOURCE_LENGTH",{enumerable:!0,get:function(){return rn}}),Object.defineProperty(o,"METHOD_ACCESS_MAP",{enumerable:!0,get:function(){return _k}}),Object.defineProperty(o,"MODEL_FORMATS",{enumerable:!0,get:function(){return Et}}),Object.defineProperty(o,"MOTION_TRIGGER_FEATURE",{enumerable:!0,get:function(){return Yj}}),Object.defineProperty(o,"ManagedModelCatalogEntrySchema",{enumerable:!0,get:function(){return Cc}}),Object.defineProperty(o,"ManagedModelRefSchema",{enumerable:!0,get:function(){return gc}}),Object.defineProperty(o,"ManagedRuntimeConfigSchema",{enumerable:!0,get:function(){return zc}}),Object.defineProperty(o,"MaskGridDimsSchema",{enumerable:!0,get:function(){return Md}}),Object.defineProperty(o,"MaskGridShapeSchema",{enumerable:!0,get:function(){return wd}}),Object.defineProperty(o,"MaskLineShapeSchema",{enumerable:!0,get:function(){return Od}}),Object.defineProperty(o,"MaskPointSchema",{enumerable:!0,get:function(){return Id}}),Object.defineProperty(o,"MaskPolygonShapeSchema",{enumerable:!0,get:function(){return Pd}}),Object.defineProperty(o,"MaskPolygonVerticesSchema",{enumerable:!0,get:function(){return xd}}),Object.defineProperty(o,"MaskRectShapeSchema",{enumerable:!0,get:function(){return Ad}}),Object.defineProperty(o,"MaskShapeKindSchema",{enumerable:!0,get:function(){return Nd}}),Object.defineProperty(o,"MaskShapeSchema",{enumerable:!0,get:function(){return Cd}}),Object.defineProperty(o,"MediaFileInfoSchema",{enumerable:!0,get:function(){return mu}}),Object.defineProperty(o,"MediaFileSchema",{enumerable:!0,get:function(){return uu}}),Object.defineProperty(o,"MediaPlayerRepeatSchema",{enumerable:!0,get:function(){return kf}}),Object.defineProperty(o,"MediaPlayerStateSchema",{enumerable:!0,get:function(){return jf}}),Object.defineProperty(o,"MediaPlayerStatusSchema",{enumerable:!0,get:function(){return Af}}),Object.defineProperty(o,"MeshPeerSchema",{enumerable:!0,get:function(){return Of}}),Object.defineProperty(o,"MeshStatusSchema",{enumerable:!0,get:function(){return Cf}}),Object.defineProperty(o,"MethodAccessSchema",{enumerable:!0,get:function(){return Sl}}),Object.defineProperty(o,"ModelCatalogEntrySchema",{enumerable:!0,get:function(){return Lt}}),Object.defineProperty(o,"ModelConvertInputSchema",{enumerable:!0,get:function(){return ss}}),Object.defineProperty(o,"ModelConvertMetadataSchema",{enumerable:!0,get:function(){return _t}}),Object.defineProperty(o,"ModelDistributeInputSchema",{enumerable:!0,get:function(){return ls}}),Object.defineProperty(o,"ModelDistributeResultSchema",{enumerable:!0,get:function(){return us}}),Object.defineProperty(o,"ModelExtraFileSchema",{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(o,"ModelFormatEntrySchema",{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(o,"ModelFormatsSchema",{enumerable:!0,get:function(){return Rt}}),Object.defineProperty(o,"ModelSubstitutionSchema",{enumerable:!0,get:function(){return dm}}),Object.defineProperty(o,"ModelVariantGroupSchema",{enumerable:!0,get:function(){return Bt}}),Object.defineProperty(o,"MotionAnalysisResultSchema",{enumerable:!0,get:function(){return bs}}),Object.defineProperty(o,"MotionEventSchema",{enumerable:!0,get:function(){return ru}}),Object.defineProperty(o,"MotionOnMotionChangedDataSchema",{enumerable:!0,get:function(){return Mf}}),Object.defineProperty(o,"MotionRegionSchema",{enumerable:!0,get:function(){return ps}}),Object.defineProperty(o,"MotionSourceEnum",{enumerable:!0,get:function(){return lp}}),Object.defineProperty(o,"MotionSourcesSchema",{enumerable:!0,get:function(){return up}}),Object.defineProperty(o,"MotionStatusSchema",{enumerable:!0,get:function(){return xf}}),Object.defineProperty(o,"MotionTriggerRuntimeStateSchema",{enumerable:!0,get:function(){return Df}}),Object.defineProperty(o,"MotionTriggerStatusSchema",{enumerable:!0,get:function(){return Tf}}),Object.defineProperty(o,"MotionZoneOptionsSchema",{enumerable:!0,get:function(){return Ff}}),Object.defineProperty(o,"MotionZonePatchSchema",{enumerable:!0,get:function(){return _f}}),Object.defineProperty(o,"MotionZoneRegionSchema",{enumerable:!0,get:function(){return Bf}}),Object.defineProperty(o,"MotionZoneStatusSchema",{enumerable:!0,get:function(){return Lf}}),Object.defineProperty(o,"MqttBrokerStatusSchema",{enumerable:!0,get:function(){return Ps}}),Object.defineProperty(o,"MutationFilterSchema",{enumerable:!0,get:function(){return Uo}}),Object.defineProperty(o,"NATIVE_LEASE_ACTIVITY_FIELD",{enumerable:!0,get:function(){return tA}}),Object.defineProperty(o,"NATIVE_LEASE_ACTIVITY_KEY",{enumerable:!0,get:function(){return GI}}),Object.defineProperty(o,"NATIVE_LEASE_ADMISSION_FIELD",{enumerable:!0,get:function(){return nA}}),Object.defineProperty(o,"NATIVE_LEASE_ADMISSION_KEY",{enumerable:!0,get:function(){return ZI}}),Object.defineProperty(o,"NATIVE_LEASE_BUDGET_FIELD",{enumerable:!0,get:function(){return eA}}),Object.defineProperty(o,"NATIVE_LEASE_BUDGET_KEY",{enumerable:!0,get:function(){return WI}}),Object.defineProperty(o,"NATIVE_LEASE_SECTION_ID",{enumerable:!0,get:function(){return HI}}),Object.defineProperty(o,"NATIVE_LEASE_TTL_FIELD",{enumerable:!0,get:function(){return QI}}),Object.defineProperty(o,"NATIVE_LEASE_TTL_KEY",{enumerable:!0,get:function(){return KI}}),Object.defineProperty(o,"NC_BASE_CONDITION_KEYS",{enumerable:!0,get:function(){return nI}}),Object.defineProperty(o,"NC_CONDITION_CATALOG",{enumerable:!0,get:function(){return al}}),Object.defineProperty(o,"NC_HISTORY_LIMIT_DEFAULT",{enumerable:!0,get:function(){return sl}}),Object.defineProperty(o,"NC_HISTORY_LIMIT_MAX",{enumerable:!0,get:function(){return dl}}),Object.defineProperty(o,"NC_MAX_PER_TRACK_IMMEDIATE",{enumerable:!0,get:function(){return Td}}),Object.defineProperty(o,"NC_SNOOZE_MAX_MINUTES",{enumerable:!0,get:function(){return ml}}),Object.defineProperty(o,"NC_TAXONOMY",{enumerable:!0,get:function(){return vd}}),Object.defineProperty(o,"NativeCropBboxSchema",{enumerable:!0,get:function(){return Tm}}),Object.defineProperty(o,"NativeCropRefSchema",{enumerable:!0,get:function(){return Wu}}),Object.defineProperty(o,"NativeCropResultSchema",{enumerable:!0,get:function(){return Dm}}),Object.defineProperty(o,"NativeDetectionSchema",{enumerable:!0,get:function(){return $f}}),Object.defineProperty(o,"NativeLeaseAdmissionSchema",{enumerable:!0,get:function(){return JI}}),Object.defineProperty(o,"NativeLeaseSettingsSchema",{enumerable:!0,get:function(){return YI}}),Object.defineProperty(o,"NativeObjectClassEnum",{enumerable:!0,get:function(){return Uf}}),Object.defineProperty(o,"NativeObjectDetectionRuntimeStateSchema",{enumerable:!0,get:function(){return Hf}}),Object.defineProperty(o,"NativeObjectDetectionStatusSchema",{enumerable:!0,get:function(){return Vf}}),Object.defineProperty(o,"NcAlarmConfigSchema",{enumerable:!0,get:function(){return vl}}),Object.defineProperty(o,"NcAlarmModeCoverageSchema",{enumerable:!0,get:function(){return fl}}),Object.defineProperty(o,"NcAlarmSettingsPatchSchema",{enumerable:!0,get:function(){return yl}}),Object.defineProperty(o,"NcAlarmSettingsSchema",{enumerable:!0,get:function(){return zl}}),Object.defineProperty(o,"NcConditionDescriptorSchema",{enumerable:!0,get:function(){return nl}}),Object.defineProperty(o,"NcConditionsSchema",{enumerable:!0,get:function(){return Kd}}),Object.defineProperty(o,"NcCrossingSchema",{enumerable:!0,get:function(){return Fd}}),Object.defineProperty(o,"NcDeliverySchema",{enumerable:!0,get:function(){return Ed}}),Object.defineProperty(o,"NcDeviceStateConditionSchema",{enumerable:!0,get:function(){return Hd}}),Object.defineProperty(o,"NcHistoryEntrySchema",{enumerable:!0,get:function(){return cl}}),Object.defineProperty(o,"NcHistoryFilterSchema",{enumerable:!0,get:function(){return ll}}),Object.defineProperty(o,"NcHistoryRecordKindSchema",{enumerable:!0,get:function(){return ol}}),Object.defineProperty(o,"NcHistoryStatusSchema",{enumerable:!0,get:function(){return rl}}),Object.defineProperty(o,"NcHistorySubjectSchema",{enumerable:!0,get:function(){return il}}),Object.defineProperty(o,"NcMediaFrameSchema",{enumerable:!0,get:function(){return Gd}}),Object.defineProperty(o,"NcMediaPolicySchema",{enumerable:!0,get:function(){return Zd}}),Object.defineProperty(o,"NcOccupancyConditionSchema",{enumerable:!0,get:function(){return Ld}}),Object.defineProperty(o,"NcPlateMatcherSchema",{enumerable:!0,get:function(){return Bd}}),Object.defineProperty(o,"NcRuleActionSchema",{enumerable:!0,get:function(){return qd}}),Object.defineProperty(o,"NcRuleActionSequenceSchema",{enumerable:!0,get:function(){return Ud}}),Object.defineProperty(o,"NcRuleActionsSchema",{enumerable:!0,get:function(){return Vd}}),Object.defineProperty(o,"NcRuleInputSchema",{enumerable:!0,get:function(){return Xd}}),Object.defineProperty(o,"NcRuleNotificationButtonSchema",{enumerable:!0,get:function(){return $d}}),Object.defineProperty(o,"NcRulePatchSchema",{enumerable:!0,get:function(){return Qd}}),Object.defineProperty(o,"NcRuleSchema",{enumerable:!0,get:function(){return el}}),Object.defineProperty(o,"NcRuleTargetSchema",{enumerable:!0,get:function(){return Wd}}),Object.defineProperty(o,"NcScheduleSchema",{enumerable:!0,get:function(){return Rd}}),Object.defineProperty(o,"NcScheduleWindowSchema",{enumerable:!0,get:function(){return Dd}}),Object.defineProperty(o,"NcSnoozeInputSchema",{enumerable:!0,get:function(){return pl}}),Object.defineProperty(o,"NcSnoozeSchema",{enumerable:!0,get:function(){return bl}}),Object.defineProperty(o,"NcSnoozeScopeSchema",{enumerable:!0,get:function(){return ul}}),Object.defineProperty(o,"NcSnoozeSuppressedSchema",{enumerable:!0,get:function(){return gl}}),Object.defineProperty(o,"NcTaxonomyEntrySchema",{enumerable:!0,get:function(){return gd}}),Object.defineProperty(o,"NcTaxonomySchema",{enumerable:!0,get:function(){return zd}}),Object.defineProperty(o,"NcTestResultSchema",{enumerable:!0,get:function(){return tl}}),Object.defineProperty(o,"NcThrottleGranularitySchema",{enumerable:!0,get:function(){return Jd}}),Object.defineProperty(o,"NcThrottleSchema",{enumerable:!0,get:function(){return Yd}}),Object.defineProperty(o,"NcZoneConditionSchema",{enumerable:!0,get:function(){return _d}}),Object.defineProperty(o,"NetworkAccessStatusSchema",{enumerable:!0,get:function(){return Cs}}),Object.defineProperty(o,"NetworkAddressSchema",{enumerable:!0,get:function(){return TS}}),Object.defineProperty(o,"NetworkEndpointSchema",{enumerable:!0,get:function(){return Os}}),Object.defineProperty(o,"NotificationActionIconSchema",{enumerable:!0,get:function(){return Ds}}),Object.defineProperty(o,"NotificationActionSchema",{enumerable:!0,get:function(){return Rs}}),Object.defineProperty(o,"NotificationFormatSchema",{enumerable:!0,get:function(){return Ts}}),Object.defineProperty(o,"NotificationSchema",{enumerable:!0,get:function(){return Bs}}),Object.defineProperty(o,"NotifierStatusSchema",{enumerable:!0,get:function(){return zv}}),Object.defineProperty(o,"NumericSensorStatusSchema",{enumerable:!0,get:function(){return hv}}),Object.defineProperty(o,"OPS_LOG_DEFAULT_LIMIT",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(o,"OPS_LOG_RING_DEFAULT_MAX",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(o,"OauthIntegrationDescriptorSchema",{enumerable:!0,get:function(){return Cl}}),Object.defineProperty(o,"ObjectEventSchema",{enumerable:!0,get:function(){return su}}),Object.defineProperty(o,"OpsLogDomainSchema",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(o,"OpsLogEntrySchema",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(o,"OpsLogOpSchema",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(o,"OpsLogQueryInputSchema",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(o,"OpsLogReasonSchema",{enumerable:!0,get:function(){return De}}),Object.defineProperty(o,"OrchestratorMetricsSchema",{enumerable:!0,get:function(){return wm}}),Object.defineProperty(o,"OsdOverlayKindEnum",{enumerable:!0,get:function(){return jv}}),Object.defineProperty(o,"OsdOverlayPatchSchema",{enumerable:!0,get:function(){return Pv}}),Object.defineProperty(o,"OsdOverlaySchema",{enumerable:!0,get:function(){return Iv}}),Object.defineProperty(o,"OsdPositionEnum",{enumerable:!0,get:function(){return kv}}),Object.defineProperty(o,"OsdRenderOutcomeEnum",{enumerable:!0,get:function(){return xv}}),Object.defineProperty(o,"OsdRenderResultSchema",{enumerable:!0,get:function(){return Mv}}),Object.defineProperty(o,"OsdSlotBindingSchema",{enumerable:!0,get:function(){return Cv}}),Object.defineProperty(o,"OsdSlotViewSchema",{enumerable:!0,get:function(){return Nv}}),Object.defineProperty(o,"OsdSourceOptionSchema",{enumerable:!0,get:function(){return Tv}}),Object.defineProperty(o,"OsdSourceSchema",{enumerable:!0,get:function(){return Ov}}),Object.defineProperty(o,"OsdSourceValueTypeEnum",{enumerable:!0,get:function(){return Ev}}),Object.defineProperty(o,"OsdStatusSchema",{enumerable:!0,get:function(){return Av}}),Object.defineProperty(o,"PET_FEEDER_MANUAL_FEED_MAX",{enumerable:!0,get:function(){return Bv}}),Object.defineProperty(o,"PET_FEEDER_MANUAL_FEED_MIN",{enumerable:!0,get:function(){return Rv}}),Object.defineProperty(o,"PIPELINE_FLOW_CAPABILITY_NAMES",{enumerable:!0,get:function(){return Pj}}),Object.defineProperty(o,"PIPELINE_OWNER_CAPABILITY_NAMES",{enumerable:!0,get:function(){return wj}}),Object.defineProperty(o,"PRIVACY_MASK_CAP_NAME",{enumerable:!0,get:function(){return be}}),Object.defineProperty(o,"PROVIDER_KIND_CAP_NAMES",{enumerable:!0,get:function(){return Hk}}),Object.defineProperty(o,"PYTHON_SCRIPT",{enumerable:!0,get:function(){return UA}}),Object.defineProperty(o,"PackageUpdateSchema",{enumerable:!0,get:function(){return Fg}}),Object.defineProperty(o,"PackageVersionInfoSchema",{enumerable:!0,get:function(){return _g}}),Object.defineProperty(o,"PasskeyLoginMethodSchema",{enumerable:!0,get:function(){return _c}}),Object.defineProperty(o,"PasskeySummarySchema",{enumerable:!0,get:function(){return Gb}}),Object.defineProperty(o,"PcmSampleFormatSchema",{enumerable:!0,get:function(){return nr}}),Object.defineProperty(o,"PerScopeBreakdownSchema",{enumerable:!0,get:function(){return zj}}),Object.defineProperty(o,"PetFeederStatusSchema",{enumerable:!0,get:function(){return _v}}),Object.defineProperty(o,"PickStreamPreferencesSchema",{enumerable:!0,get:function(){return bo}}),Object.defineProperty(o,"PickStreamRequirementsSchema",{enumerable:!0,get:function(){return po}}),Object.defineProperty(o,"PickedCamStreamSchema",{enumerable:!0,get:function(){return go}}),Object.defineProperty(o,"PipelineAssignmentSchema",{enumerable:!0,get:function(){return wp}}),Object.defineProperty(o,"PipelineDefaultStepSchema",{enumerable:!0,get:function(){return Qu}}),Object.defineProperty(o,"PipelineEngineChoiceSchema",{enumerable:!0,get:function(){return Ju}}),Object.defineProperty(o,"PipelineRunResultBridge",{enumerable:!0,get:function(){return Am}}),Object.defineProperty(o,"PipelineStepInputSchema",{enumerable:!0,get:function(){return sm}}),Object.defineProperty(o,"PipelineValidationIssueSchema",{enumerable:!0,get:function(){return lm}}),Object.defineProperty(o,"PipelineValidationResultSchema",{enumerable:!0,get:function(){return um}}),Object.defineProperty(o,"PlaceholderReasonSchema",{enumerable:!0,get:function(){return to}}),Object.defineProperty(o,"PolygonPointSchema",{enumerable:!0,get:function(){return xm}}),Object.defineProperty(o,"PowerMeterStatusSchema",{enumerable:!0,get:function(){return uh}}),Object.defineProperty(o,"PresenceStatusSchema",{enumerable:!0,get:function(){return bh}}),Object.defineProperty(o,"PressureSensorStatusSchema",{enumerable:!0,get:function(){return zh}}),Object.defineProperty(o,"PrivacyMaskOptionsSchema",{enumerable:!0,get:function(){return Sh}}),Object.defineProperty(o,"PrivacyMaskPatchSchema",{enumerable:!0,get:function(){return jh}}),Object.defineProperty(o,"PrivacyMaskRegionSchema",{enumerable:!0,get:function(){return vh}}),Object.defineProperty(o,"PrivacyMaskShapeSchema",{enumerable:!0,get:function(){return fh}}),Object.defineProperty(o,"PrivacyMaskStatusSchema",{enumerable:!0,get:function(){return hh}}),Object.defineProperty(o,"ProfileRtspEntrySchema",{enumerable:!0,get:function(){return m.et}}),Object.defineProperty(o,"ProfileSlotSchema",{enumerable:!0,get:function(){return m.tt}}),Object.defineProperty(o,"ProfileSlotStatusSchema",{enumerable:!0,get:function(){return m.nt}}),Object.defineProperty(o,"ProviderStatusSchema",{enumerable:!0,get:function(){return Mi}}),Object.defineProperty(o,"PtzAutotrackRuntimeStateSchema",{enumerable:!0,get:function(){return Dh}}),Object.defineProperty(o,"PtzAutotrackSettingsSchema",{enumerable:!0,get:function(){return Mh}}),Object.defineProperty(o,"PtzAutotrackStatusSchema",{enumerable:!0,get:function(){return Th}}),Object.defineProperty(o,"PtzAutotrackTargetOptionSchema",{enumerable:!0,get:function(){return Eh}}),Object.defineProperty(o,"PtzMoveCommandSchema",{enumerable:!0,get:function(){return wh}}),Object.defineProperty(o,"PtzOptionsSchema",{enumerable:!0,get:function(){return Ch}}),Object.defineProperty(o,"PtzPositionSchema",{enumerable:!0,get:function(){return Ph}}),Object.defineProperty(o,"PtzPresetSchema",{enumerable:!0,get:function(){return Ah}}),Object.defineProperty(o,"PtzStatusSchema",{enumerable:!0,get:function(){return Oh}}),Object.defineProperty(o,"QueryFilterSchema",{enumerable:!0,get:function(){return qo}}),Object.defineProperty(o,"RATE_CONTROL_RELAXED",{enumerable:!0,get:function(){return C}}),Object.defineProperty(o,"RATE_CONTROL_TIGHT",{enumerable:!0,get:function(){return O}}),Object.defineProperty(o,"REACHABILITY_FAILURES_TO_OFFLINE",{enumerable:!0,get:function(){return mk}}),Object.defineProperty(o,"REACHABILITY_POLL_INTERVAL_MS",{enumerable:!0,get:function(){return uk}}),Object.defineProperty(o,"REACHABILITY_PROBE_TIMEOUT_MS",{enumerable:!0,get:function(){return pk}}),Object.defineProperty(o,"RECOGNITION_TYPES",{enumerable:!0,get:function(){return dt}}),Object.defineProperty(o,"RESERVED_BINDING_NAMES",{enumerable:!0,get:function(){return mn}}),Object.defineProperty(o,"RUNTIME_DEFAULTS",{enumerable:!0,get:function(){return Ej}}),Object.defineProperty(o,"RUNTIME_TO_FORMAT",{enumerable:!0,get:function(){return qA}}),Object.defineProperty(o,"RawStateResultSchema",{enumerable:!0,get:function(){return m._}}),Object.defineProperty(o,"ReadGopBytesResultSchema",{enumerable:!0,get:function(){return Gh}}),Object.defineProperty(o,"ReadSegmentBytesResultSchema",{enumerable:!0,get:function(){return Wh}}),Object.defineProperty(o,"ReadinessRegistry",{enumerable:!0,get:function(){return m.L}}),Object.defineProperty(o,"ReadinessTimeoutError",{enumerable:!0,get:function(){return m.R}}),Object.defineProperty(o,"RecentTracksPageSchema",{enumerable:!0,get:function(){return xu}}),Object.defineProperty(o,"RecentTracksQueryInput",{enumerable:!0,get:function(){return Nu}}),Object.defineProperty(o,"RecordingAvailabilitySchema",{enumerable:!0,get:function(){return _h}}),Object.defineProperty(o,"RecordingBandModeSchema",{enumerable:!0,get:function(){return He}}),Object.defineProperty(o,"RecordingBandSchema",{enumerable:!0,get:function(){return We}}),Object.defineProperty(o,"RecordingBandTriggersSchema",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(o,"RecordingConfigSchema",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(o,"RecordingDaysSchema",{enumerable:!0,get:function(){return qh}}),Object.defineProperty(o,"RecordingDeviceUsageSchema",{enumerable:!0,get:function(){return $h}}),Object.defineProperty(o,"RecordingLocationUsageSchema",{enumerable:!0,get:function(){return Vh}}),Object.defineProperty(o,"RecordingManifestSchema",{enumerable:!0,get:function(){return Uh}}),Object.defineProperty(o,"RecordingRangeSchema",{enumerable:!0,get:function(){return Fh}}),Object.defineProperty(o,"RecordingRetentionSchema",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(o,"RecordingStatusSchema",{enumerable:!0,get:function(){return Lh}}),Object.defineProperty(o,"RecordingStorageModeSchema",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(o,"RecordingStorageUsageSchema",{enumerable:!0,get:function(){return Hh}}),Object.defineProperty(o,"RecordingTriggersSchema",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(o,"RecordingWeekdaySchema",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(o,"RedirectLoginMethodSchema",{enumerable:!0,get:function(){return Lc}}),Object.defineProperty(o,"RelocateFootageInputSchema",{enumerable:!0,get:function(){return it}}),Object.defineProperty(o,"RelocateJobSchema",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(o,"RelocateJobStateSchema",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(o,"RelocateMediaInputSchema",{enumerable:!0,get:function(){return ct}}),Object.defineProperty(o,"RenderedAsSchema",{enumerable:!0,get:function(){return Hs}}),Object.defineProperty(o,"ReportMotionInputSchema",{enumerable:!0,get:function(){return mp}}),Object.defineProperty(o,"RetrainAnnotationDraftSchema",{enumerable:!0,get:function(){return fu}}),Object.defineProperty(o,"RetrainAnnotationKindSchema",{enumerable:!0,get:function(){return bu}}),Object.defineProperty(o,"RetrainAnnotationSchema",{enumerable:!0,get:function(){return yu}}),Object.defineProperty(o,"RetrainAnnotationSourceSchema",{enumerable:!0,get:function(){return gu}}),Object.defineProperty(o,"RetrainAssistResultSchema",{enumerable:!0,get:function(){return Pu}}),Object.defineProperty(o,"RetrainAssistSubjectSchema",{enumerable:!0,get:function(){return Au}}),Object.defineProperty(o,"RetrainCopyRefusalSchema",{enumerable:!0,get:function(){return ju}}),Object.defineProperty(o,"RetrainFrameCandidateSchema",{enumerable:!0,get:function(){return hu}}),Object.defineProperty(o,"RetrainFrameListSchema",{enumerable:!0,get:function(){return Iu}}),Object.defineProperty(o,"RetrainFrameSchema",{enumerable:!0,get:function(){return Su}}),Object.defineProperty(o,"RetrainFrameSelectionSchema",{enumerable:!0,get:function(){return ku}}),Object.defineProperty(o,"RetrainMacroClassSchema",{enumerable:!0,get:function(){return pu}}),Object.defineProperty(o,"RetrainStatusSchema",{enumerable:!0,get:function(){return Kl}}),Object.defineProperty(o,"RetrainTrackSchema",{enumerable:!0,get:function(){return vu}}),Object.defineProperty(o,"RetrainTransitionResultSchema",{enumerable:!0,get:function(){return wu}}),Object.defineProperty(o,"RingBuffer",{enumerable:!0,get:function(){return DA}}),Object.defineProperty(o,"RtpSourceSchema",{enumerable:!0,get:function(){return oo}}),Object.defineProperty(o,"RtspRestreamEntrySchema",{enumerable:!0,get:function(){return Wr}}),Object.defineProperty(o,"RunnerCameraConfigSchema",{enumerable:!0,get:function(){return gp}}),Object.defineProperty(o,"RunnerCameraDeviceUIFields",{enumerable:!0,get:function(){return zp}}),Object.defineProperty(o,"RunnerFrameSourceSchema",{enumerable:!0,get:function(){return pp}}),Object.defineProperty(o,"RunnerInferenceDeviceSchema",{enumerable:!0,get:function(){return bp}}),Object.defineProperty(o,"RunnerLocalLoadSchema",{enumerable:!0,get:function(){return yp}}),Object.defineProperty(o,"RunnerLocalMetricsSchema",{enumerable:!0,get:function(){return fp}}),Object.defineProperty(o,"SCOPE_PRESETS",{enumerable:!0,get:function(){return Wk}}),Object.defineProperty(o,"SCRUB_THUMBNAIL_PRESETS",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(o,"SCRUB_THUMBNAIL_PRESET_LABELS",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(o,"SCRUB_THUMBNAIL_PRESET_ORDER",{enumerable:!0,get:function(){return et}}),Object.defineProperty(o,"SENSOR_FEATURES",{enumerable:!0,get:function(){return Qj}}),Object.defineProperty(o,"SENSOR_MAP",{enumerable:!0,get:function(){return tk}}),Object.defineProperty(o,"SOURCE_INFO_METADATA_KEY",{enumerable:!0,get:function(){return ri}}),Object.defineProperty(o,"STREAM_PROFILE_META",{enumerable:!0,get:function(){return PS}}),Object.defineProperty(o,"STREAM_QUALITY_LABELS",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(o,"SUB_DETECTION_TYPES",{enumerable:!0,get:function(){return st}}),Object.defineProperty(o,"SYSTEM_CAP_NAMES",{enumerable:!0,get:function(){return $k}}),Object.defineProperty(o,"SceneCheckSchema",{enumerable:!0,get:function(){return iS}}),Object.defineProperty(o,"SceneConditionSchema",{enumerable:!0,get:function(){return aS}}),Object.defineProperty(o,"SceneMonitorSchema",{enumerable:!0,get:function(){return cS}}),Object.defineProperty(o,"SceneMonitorStateSchema",{enumerable:!0,get:function(){return oS}}),Object.defineProperty(o,"SceneMonitorStatusSchema",{enumerable:!0,get:function(){return sS}}),Object.defineProperty(o,"SceneReferenceSchema",{enumerable:!0,get:function(){return rS}}),Object.defineProperty(o,"ScopedTokenSchema",{enumerable:!0,get:function(){return Ol}}),Object.defineProperty(o,"ScopedTokenSummarySchema",{enumerable:!0,get:function(){return JS}}),Object.defineProperty(o,"ScoredObjectEventSchema",{enumerable:!0,get:function(){return Ru}}),Object.defineProperty(o,"ScriptRunnerStatusSchema",{enumerable:!0,get:function(){return pS}}),Object.defineProperty(o,"ScrubThumbnailPresetSchema",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(o,"SearchResultSchema",{enumerable:!0,get:function(){return qg}}),Object.defineProperty(o,"SendEmailInputSchema",{enumerable:!0,get:function(){return yb}}),Object.defineProperty(o,"SendEmailResultSchema",{enumerable:!0,get:function(){return fb}}),Object.defineProperty(o,"SendResultSchema",{enumerable:!0,get:function(){return Ks}}),Object.defineProperty(o,"SensorEventSchema",{enumerable:!0,get:function(){return Fl}}),Object.defineProperty(o,"ServerBootModeSchema",{enumerable:!0,get:function(){return cb}}),Object.defineProperty(o,"ServerPackageStatusSchema",{enumerable:!0,get:function(){return mb}}),Object.defineProperty(o,"ServerRollbackInfoSchema",{enumerable:!0,get:function(){return ub}}),Object.defineProperty(o,"ServerUpdateActionResultSchema",{enumerable:!0,get:function(){return bb}}),Object.defineProperty(o,"ServerUpdateCheckResultSchema",{enumerable:!0,get:function(){return pb}}),Object.defineProperty(o,"ServerUpdateStateSchema",{enumerable:!0,get:function(){return sb}}),Object.defineProperty(o,"SettingsPatchSchema",{enumerable:!0,get:function(){return wa}}),Object.defineProperty(o,"SettingsRecordSchema",{enumerable:!0,get:function(){return $o}}),Object.defineProperty(o,"SettingsSchemaWithValuesSchema",{enumerable:!0,get:function(){return Pa}}),Object.defineProperty(o,"SettingsUpdateResultSchema",{enumerable:!0,get:function(){return Oa}}),Object.defineProperty(o,"ShmRingStatsSchema",{enumerable:!0,get:function(){return Yo}}),Object.defineProperty(o,"SmokeStatusSchema",{enumerable:!0,get:function(){return gS}}),Object.defineProperty(o,"SmtpStatusSchema",{enumerable:!0,get:function(){return vb}}),Object.defineProperty(o,"SnapshotImageSchema",{enumerable:!0,get:function(){return Sb}}),Object.defineProperty(o,"SourceInfoSchema",{enumerable:!0,get:function(){return ei}}),Object.defineProperty(o,"SpatialDetectionSchema",{enumerable:!0,get:function(){return Ka}}),Object.defineProperty(o,"SsoBridgeClaimsSchema",{enumerable:!0,get:function(){return Ib}}),Object.defineProperty(o,"StartEmbeddedInputSchema",{enumerable:!0,get:function(){return Is}}),Object.defineProperty(o,"StationaryObjectSchema",{enumerable:!0,get:function(){return fj}}),Object.defineProperty(o,"StorageAbortUploadInputSchema",{enumerable:!0,get:function(){return Bb}}),Object.defineProperty(o,"StorageBeginDownloadInputSchema",{enumerable:!0,get:function(){return Lb}}),Object.defineProperty(o,"StorageBeginDownloadResultSchema",{enumerable:!0,get:function(){return Fb}}),Object.defineProperty(o,"StorageBeginUploadInputSchema",{enumerable:!0,get:function(){return Eb}}),Object.defineProperty(o,"StorageBeginUploadResultSchema",{enumerable:!0,get:function(){return Tb}}),Object.defineProperty(o,"StorageEndDownloadInputSchema",{enumerable:!0,get:function(){return qb}}),Object.defineProperty(o,"StorageFinalizeUploadInputSchema",{enumerable:!0,get:function(){return Rb}}),Object.defineProperty(o,"StorageLocationDeclarationSchema",{enumerable:!0,get:function(){return pt}}),Object.defineProperty(o,"StorageLocationRefSchema",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(o,"StorageLocationSchema",{enumerable:!0,get:function(){return ut}}),Object.defineProperty(o,"StorageLocationTypeSchema",{enumerable:!0,get:function(){return lt}}),Object.defineProperty(o,"StorageProviderInfoSchema",{enumerable:!0,get:function(){return xb}}),Object.defineProperty(o,"StorageReadChunkInputSchema",{enumerable:!0,get:function(){return _b}}),Object.defineProperty(o,"StorageTestLocationResultSchema",{enumerable:!0,get:function(){return Mb}}),Object.defineProperty(o,"StorageWriteChunkInputSchema",{enumerable:!0,get:function(){return Db}}),Object.defineProperty(o,"StreamCodecSchema",{enumerable:!0,get:function(){return mo}}),Object.defineProperty(o,"StreamFormatSchema",{enumerable:!0,get:function(){return Ur}}),Object.defineProperty(o,"StreamNetworkStatsSchema",{enumerable:!0,get:function(){return Wf}}),Object.defineProperty(o,"StreamParamsOptionsSchema",{enumerable:!0,get:function(){return kS}}),Object.defineProperty(o,"StreamParamsStatusSchema",{enumerable:!0,get:function(){return SS}}),Object.defineProperty(o,"StreamProfileConfigSchema",{enumerable:!0,get:function(){return hS}}),Object.defineProperty(o,"StreamProfileOptionsSchema",{enumerable:!0,get:function(){return jS}}),Object.defineProperty(o,"StreamProfilePatchSchema",{enumerable:!0,get:function(){return IS}}),Object.defineProperty(o,"StreamProfileSchema",{enumerable:!0,get:function(){return vS}}),Object.defineProperty(o,"StreamSourceEntrySchema",{enumerable:!0,get:function(){return m.rt}}),Object.defineProperty(o,"StreamSourceSchema",{enumerable:!0,get:function(){return m.it}}),Object.defineProperty(o,"SubscribeAudioChunksInputSchema",{enumerable:!0,get:function(){return m.at}}),Object.defineProperty(o,"SubscribeAudioChunksResultSchema",{enumerable:!0,get:function(){return m.ot}}),Object.defineProperty(o,"SubscribeFramesInputSchema",{enumerable:!0,get:function(){return m.st}}),Object.defineProperty(o,"SubscribeFramesResultSchema",{enumerable:!0,get:function(){return m.ct}}),Object.defineProperty(o,"SwitchStatusSchema",{enumerable:!0,get:function(){return NS}}),Object.defineProperty(o,"SystemMetricsSchema",{enumerable:!0,get:function(){return is}}),Object.defineProperty(o,"SystemMirror",{enumerable:!0,get:function(){return jk}}),Object.defineProperty(o,"TAXONOMY_COLORS",{enumerable:!0,get:function(){return rd}}),Object.defineProperty(o,"TIMEZONES",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(o,"TRANSCODE_DOWN_MAX_BITRATE_KBPS",{enumerable:!0,get:function(){return x}}),Object.defineProperty(o,"TRANSCODE_DOWN_MAX_HEIGHT",{enumerable:!0,get:function(){return N}}),Object.defineProperty(o,"TamperStatusSchema",{enumerable:!0,get:function(){return RS}}),Object.defineProperty(o,"TankStatusSchema",{enumerable:!0,get:function(){return rj}}),Object.defineProperty(o,"TargetKindCapsSchema",{enumerable:!0,get:function(){return _s}}),Object.defineProperty(o,"TargetKindLevelSchema",{enumerable:!0,get:function(){return Ls}}),Object.defineProperty(o,"TargetKindSchema",{enumerable:!0,get:function(){return Us}}),Object.defineProperty(o,"TargetSchema",{enumerable:!0,get:function(){return $s}}),Object.defineProperty(o,"TemperatureSensorStatusSchema",{enumerable:!0,get:function(){return LS}}),Object.defineProperty(o,"TerminalProfileInfoSchema",{enumerable:!0,get:function(){return Vb}}),Object.defineProperty(o,"TerminalSessionInfoSchema",{enumerable:!0,get:function(){return $b}}),Object.defineProperty(o,"TestConnectionResultSchema",{enumerable:!0,get:function(){return Jy}}),Object.defineProperty(o,"TestConnectionStatusEnum",{enumerable:!0,get:function(){return Zy}}),Object.defineProperty(o,"TestResultSchema",{enumerable:!0,get:function(){return Ws}}),Object.defineProperty(o,"TimelapseRuleInputSchema",{enumerable:!0,get:function(){return CI}}),Object.defineProperty(o,"TimelapseRulePatchSchema",{enumerable:!0,get:function(){return NI}}),Object.defineProperty(o,"TimelapseRuleSchema",{enumerable:!0,get:function(){return xI}}),Object.defineProperty(o,"TimelapseTemplateSchema",{enumerable:!0,get:function(){return jI}}),Object.defineProperty(o,"ToastSchema",{enumerable:!0,get:function(){return _S}}),Object.defineProperty(o,"TokenScopeSchema",{enumerable:!0,get:function(){return Al}}),Object.defineProperty(o,"TopologyNodeSchema",{enumerable:!0,get:function(){return nv}}),Object.defineProperty(o,"TopologyProcessSchema",{enumerable:!0,get:function(){return Xf}}),Object.defineProperty(o,"TopologyServiceSchema",{enumerable:!0,get:function(){return Yf}}),Object.defineProperty(o,"TrackCascadeCountsSchema",{enumerable:!0,get:function(){return Lu}}),Object.defineProperty(o,"TrackEnvelopeSchema",{enumerable:!0,get:function(){return Ul}}),Object.defineProperty(o,"TrackFlagsPatchSchema",{enumerable:!0,get:function(){return Zl}}),Object.defineProperty(o,"TrackFlagsSchema",{enumerable:!0,get:function(){return Jl}}),Object.defineProperty(o,"TrackProjectionSchema",{enumerable:!0,get:function(){return $l}}),Object.defineProperty(o,"TrackSchema",{enumerable:!0,get:function(){return nu}}),Object.defineProperty(o,"TrackSourceSchema",{enumerable:!0,get:function(){return Hl}}),Object.defineProperty(o,"TrackStateSchema",{enumerable:!0,get:function(){return xl}}),Object.defineProperty(o,"TrackZoneFilterSchema",{enumerable:!0,get:function(){return El}}),Object.defineProperty(o,"TrackedDetectionSchema",{enumerable:!0,get:function(){return Tu}}),Object.defineProperty(o,"TrainingExportDeviceTotalsSchema",{enumerable:!0,get:function(){return eu}}),Object.defineProperty(o,"TrainingExportSummarySchema",{enumerable:!0,get:function(){return tu}}),Object.defineProperty(o,"TurnServerSchema",{enumerable:!0,get:function(){return Kb}}),Object.defineProperty(o,"UNIT_TABLE",{enumerable:!0,get:function(){return lA}}),Object.defineProperty(o,"UnifiedBrokerInfoSchema",{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(o,"UnitConversionError",{enumerable:!0,get:function(){return uA}}),Object.defineProperty(o,"UpdateIntegrationInputSchema",{enumerable:!0,get:function(){return Xy}}),Object.defineProperty(o,"UpdateStatusSchema",{enumerable:!0,get:function(){return US}}),Object.defineProperty(o,"UpdateUserInputSchema",{enumerable:!0,get:function(){return KS}}),Object.defineProperty(o,"UserRecordSchema",{enumerable:!0,get:function(){return Pl}}),Object.defineProperty(o,"UserSummarySchema",{enumerable:!0,get:function(){return VS}}),Object.defineProperty(o,"VacuumControlStatusSchema",{enumerable:!0,get:function(){return oj}}),Object.defineProperty(o,"VacuumStateSchema",{enumerable:!0,get:function(){return aj}}),Object.defineProperty(o,"ValveStateSchema",{enumerable:!0,get:function(){return cj}}),Object.defineProperty(o,"ValveStatusSchema",{enumerable:!0,get:function(){return sj}}),Object.defineProperty(o,"VectorDeclareIndexInputSchema",{enumerable:!0,get:function(){return tg}}),Object.defineProperty(o,"VectorDeleteByFilterInputSchema",{enumerable:!0,get:function(){return cg}}),Object.defineProperty(o,"VectorDeleteInputSchema",{enumerable:!0,get:function(){return ig}}),Object.defineProperty(o,"VectorDeleteResultSchema",{enumerable:!0,get:function(){return sg}}),Object.defineProperty(o,"VectorFilterSchema",{enumerable:!0,get:function(){return Xb}}),Object.defineProperty(o,"VectorGetInputSchema",{enumerable:!0,get:function(){return dg}}),Object.defineProperty(o,"VectorGetResultSchema",{enumerable:!0,get:function(){return lg}}),Object.defineProperty(o,"VectorItemSchema",{enumerable:!0,get:function(){return Qb}}),Object.defineProperty(o,"VectorMatchSchema",{enumerable:!0,get:function(){return eg}}),Object.defineProperty(o,"VectorMetadataSchema",{enumerable:!0,get:function(){return Yb}}),Object.defineProperty(o,"VectorMetricSchema",{enumerable:!0,get:function(){return Jb}}),Object.defineProperty(o,"VectorQueryInputSchema",{enumerable:!0,get:function(){return rg}}),Object.defineProperty(o,"VectorQueryResultSchema",{enumerable:!0,get:function(){return og}}),Object.defineProperty(o,"VectorStatsInputSchema",{enumerable:!0,get:function(){return ug}}),Object.defineProperty(o,"VectorStatsResultSchema",{enumerable:!0,get:function(){return mg}}),Object.defineProperty(o,"VectorUpsertInputSchema",{enumerable:!0,get:function(){return ng}}),Object.defineProperty(o,"VectorUpsertResultSchema",{enumerable:!0,get:function(){return ag}}),Object.defineProperty(o,"VibrationStatusSchema",{enumerable:!0,get:function(){return lj}}),Object.defineProperty(o,"VideoEncodeSchema",{enumerable:!0,get:function(){return S}}),Object.defineProperty(o,"WEBRTC_EGRESS_PROFILE",{enumerable:!0,get:function(){return P}}),Object.defineProperty(o,"WELL_KNOWN_TABS",{enumerable:!0,get:function(){return m.xt}}),Object.defineProperty(o,"WELL_KNOWN_TAB_MAP",{enumerable:!0,get:function(){return m.St}}),Object.defineProperty(o,"WaterHeaterStatusSchema",{enumerable:!0,get:function(){return mj}}),Object.defineProperty(o,"WeatherStatusSchema",{enumerable:!0,get:function(){return bj}}),Object.defineProperty(o,"WebrtcStreamChoiceSchema",{enumerable:!0,get:function(){return vg}}),Object.defineProperty(o,"WebrtcStreamTargetSchema",{enumerable:!0,get:function(){return fg}}),Object.defineProperty(o,"WhiteBalanceModeSchema",{enumerable:!0,get:function(){return Ly}}),Object.defineProperty(o,"WidgetHostEnum",{enumerable:!0,get:function(){return Na}}),Object.defineProperty(o,"WidgetLoginMethodSchema",{enumerable:!0,get:function(){return Fc}});Object.defineProperty(o,"WidgetMetadataSchema",{enumerable:!0,get:function(){return Ea}}),Object.defineProperty(o,"WidgetRemoteSchema",{enumerable:!0,get:function(){return Ma}}),Object.defineProperty(o,"WidgetSizeEnum",{enumerable:!0,get:function(){return xa}}),Object.defineProperty(o,"YAMNET_TO_MACRO",{enumerable:!0,get:function(){return Qs}}),Object.defineProperty(o,"ZoneCrossingDirectionSchema",{enumerable:!0,get:function(){return iu}}),Object.defineProperty(o,"ZoneCrossingSchema",{enumerable:!0,get:function(){return cu}}),Object.defineProperty(o,"ZoneKindEnum",{enumerable:!0,get:function(){return Nm}}),Object.defineProperty(o,"ZoneRuleModeEnum",{enumerable:!0,get:function(){return lS}}),Object.defineProperty(o,"ZoneRuleSchema",{enumerable:!0,get:function(){return uS}}),Object.defineProperty(o,"ZoneRuleStageEnum",{enumerable:!0,get:function(){return Ij}}),Object.defineProperty(o,"ZoneRulesArraySchema",{enumerable:!0,get:function(){return mS}}),Object.defineProperty(o,"ZoneSchema",{enumerable:!0,get:function(){return Mm}}),Object.defineProperty(o,"ZoneScopeBreakdownSchema",{enumerable:!0,get:function(){return yj}}),Object.defineProperty(o,"accessoriesCapability",{enumerable:!0,get:function(){return jg}}),Object.defineProperty(o,"accessoryStableId",{enumerable:!0,get:function(){return Rj}}),Object.defineProperty(o,"addonPagesCapability",{enumerable:!0,get:function(){return ya}}),Object.defineProperty(o,"addonPagesSourceCapability",{enumerable:!0,get:function(){return va}}),Object.defineProperty(o,"addonRoutesCapability",{enumerable:!0,get:function(){return ka}}),Object.defineProperty(o,"addonSettingsCapability",{enumerable:!0,get:function(){return Ca}}),Object.defineProperty(o,"addonWidgetsCapability",{enumerable:!0,get:function(){return Ra}}),Object.defineProperty(o,"addonWidgetsSourceCapability",{enumerable:!0,get:function(){return Ta}}),Object.defineProperty(o,"addonsCapability",{enumerable:!0,get:function(){return ez}}),Object.defineProperty(o,"adminUiCapability",{enumerable:!0,get:function(){return m.w}}),Object.defineProperty(o,"airQualitySensorCapability",{enumerable:!0,get:function(){return nz}}),Object.defineProperty(o,"alarmPanelCapability",{enumerable:!0,get:function(){return kd}}),Object.defineProperty(o,"alertsCapability",{enumerable:!0,get:function(){return qa}}),Object.defineProperty(o,"ambientLightSensorCapability",{enumerable:!0,get:function(){return rz}}),Object.defineProperty(o,"asBoolean",{enumerable:!0,get:function(){return m.r}}),Object.defineProperty(o,"asJsonArray",{enumerable:!0,get:function(){return m.i}}),Object.defineProperty(o,"asJsonObject",{enumerable:!0,get:function(){return m.a}}),Object.defineProperty(o,"asNumber",{enumerable:!0,get:function(){return m.o}}),Object.defineProperty(o,"asString",{enumerable:!0,get:function(){return m.s}}),Object.defineProperty(o,"audioAnalysisCapability",{enumerable:!0,get:function(){return Ua}}),Object.defineProperty(o,"audioAnalyzerCapability",{enumerable:!0,get:function(){return tr}}),Object.defineProperty(o,"audioCodecCapability",{enumerable:!0,get:function(){return dr}}),Object.defineProperty(o,"audioMetricsCapability",{enumerable:!0,get:function(){return dz}}),Object.defineProperty(o,"audioPlanFromEncodeProfile",{enumerable:!0,get:function(){return p.i}}),Object.defineProperty(o,"authProviderCapability",{enumerable:!0,get:function(){return ur}}),Object.defineProperty(o,"autoAssignProfiles",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(o,"automationControlCapability",{enumerable:!0,get:function(){return uz}}),Object.defineProperty(o,"backupCapability",{enumerable:!0,get:function(){return vr}}),Object.defineProperty(o,"bareAddonId",{enumerable:!0,get:function(){return IA}}),Object.defineProperty(o,"batteryCapability",{enumerable:!0,get:function(){return pz}}),Object.defineProperty(o,"bestLocationMatch",{enumerable:!0,get:function(){return jA}}),Object.defineProperty(o,"binaryCapability",{enumerable:!0,get:function(){return gz}}),Object.defineProperty(o,"bindAddonActions",{enumerable:!0,get:function(){return nP}}),Object.defineProperty(o,"brightnessCapability",{enumerable:!0,get:function(){return yz}}),Object.defineProperty(o,"brokerCapability",{enumerable:!0,get:function(){return _r}}),Object.defineProperty(o,"buildAddonRouteProvider",{enumerable:!0,get:function(){return y}}),Object.defineProperty(o,"buildAudioArgs",{enumerable:!0,get:function(){return p.a}}),Object.defineProperty(o,"buildEventKindDescriptor",{enumerable:!0,get:function(){return ib}}),Object.defineProperty(o,"buildFfmpegArgs",{enumerable:!0,get:function(){return p.o}}),Object.defineProperty(o,"buildInputArgs",{enumerable:!0,get:function(){return p.s}}),Object.defineProperty(o,"buildModelVariantGroups",{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(o,"buildNcTaxonomy",{enumerable:!0,get:function(){return fd}}),Object.defineProperty(o,"buildStreamParamsConfigSchema",{enumerable:!0,get:function(){return OS}}),Object.defineProperty(o,"buildVideoArgs",{enumerable:!0,get:function(){return p.c}}),Object.defineProperty(o,"buttonCapability",{enumerable:!0,get:function(){return fz}}),Object.defineProperty(o,"cameraCredentialsCapability",{enumerable:!0,get:function(){return Sz}}),Object.defineProperty(o,"cameraPipelineConfigCapability",{enumerable:!0,get:function(){return qr}}),Object.defineProperty(o,"cameraStreamsCapability",{enumerable:!0,get:function(){return zo}}),Object.defineProperty(o,"canConvertUnit",{enumerable:!0,get:function(){return fA}}),Object.defineProperty(o,"canonicalEgressPlan",{enumerable:!0,get:function(){return q}}),Object.defineProperty(o,"carbonMonoxideCapability",{enumerable:!0,get:function(){return kz}}),Object.defineProperty(o,"cellsToRects",{enumerable:!0,get:function(){return TA}}),Object.defineProperty(o,"classifyBearerPrincipal",{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(o,"classifyStream",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(o,"classifyStreams",{enumerable:!0,get:function(){return je}}),Object.defineProperty(o,"climateControlCapability",{enumerable:!0,get:function(){return Pz}}),Object.defineProperty(o,"collectHydratedFieldEntries",{enumerable:!0,get:function(){return m.Ct}}),Object.defineProperty(o,"collectHydratedFieldValues",{enumerable:!0,get:function(){return m.wt}}),Object.defineProperty(o,"colorCapability",{enumerable:!0,get:function(){return xz}}),Object.defineProperty(o,"colorForKind",{enumerable:!0,get:function(){return pd}}),Object.defineProperty(o,"compileExpression",{enumerable:!0,get:function(){return On}}),Object.defineProperty(o,"compileExpressionSafe",{enumerable:!0,get:function(){return Cn}}),Object.defineProperty(o,"conditionDepth",{enumerable:!0,get:function(){return oa}}),Object.defineProperty(o,"connectionTestCapability",{enumerable:!0,get:function(){return Rz}}),Object.defineProperty(o,"connectivityCapability",{enumerable:!0,get:function(){return Lz}}),Object.defineProperty(o,"consumablesCapability",{enumerable:!0,get:function(){return qz}}),Object.defineProperty(o,"contactCapability",{enumerable:!0,get:function(){return $z}}),Object.defineProperty(o,"controlCapability",{enumerable:!0,get:function(){return Wz}}),Object.defineProperty(o,"convertUnit",{enumerable:!0,get:function(){return zA}}),Object.defineProperty(o,"coreBlockAddonId",{enumerable:!0,get:function(){return Oo}}),Object.defineProperty(o,"coreBlockIdFromAddonId",{enumerable:!0,get:function(){return Co}}),Object.defineProperty(o,"coreBlocksCapability",{enumerable:!0,get:function(){return Do}}),Object.defineProperty(o,"cosineSimilarity",{enumerable:!0,get:function(){return PA}}),Object.defineProperty(o,"countConditionLeaves",{enumerable:!0,get:function(){return ia}}),Object.defineProperty(o,"coverCapability",{enumerable:!0,get:function(){return Jz}}),Object.defineProperty(o,"createDeviceProxy",{enumerable:!0,get:function(){return m.p}}),Object.defineProperty(o,"createDurableState",{enumerable:!0,get:function(){return m._t}}),Object.defineProperty(o,"createEvent",{enumerable:!0,get:function(){return m.vt}}),Object.defineProperty(o,"createExpressionScope",{enumerable:!0,get:function(){return xn}}),Object.defineProperty(o,"createHwAccelCache",{enumerable:!0,get:function(){return R}}),Object.defineProperty(o,"createLazyTrpcSource",{enumerable:!0,get:function(){return m.m}}),Object.defineProperty(o,"createMirrorSource",{enumerable:!0,get:function(){return m.h}}),Object.defineProperty(o,"createRuntimeStateBridge",{enumerable:!0,get:function(){return yk}}),Object.defineProperty(o,"createSliceHandle",{enumerable:!0,get:function(){return m.g}}),Object.defineProperty(o,"createSystemProxy",{enumerable:!0,get:function(){return Gk}}),Object.defineProperty(o,"customAction",{enumerable:!0,get:function(){return Bo}}),Object.defineProperty(o,"customModelRegistryCapability",{enumerable:!0,get:function(){return _o}}),Object.defineProperty(o,"dataStoreProviderCapability",{enumerable:!0,get:function(){return Go}}),Object.defineProperty(o,"dayNightCapability",{enumerable:!0,get:function(){return ny}}),Object.defineProperty(o,"declarationOwnerNodeId",{enumerable:!0,get:function(){return Hj}}),Object.defineProperty(o,"decodeVectorBase64",{enumerable:!0,get:function(){return YA}}),Object.defineProperty(o,"decoderCapability",{enumerable:!0,get:function(){return Xo}}),Object.defineProperty(o,"defaultDeviceFor",{enumerable:!0,get:function(){return lP}}),Object.defineProperty(o,"defineCustomActions",{enumerable:!0,get:function(){return Ro}}),Object.defineProperty(o,"deriveCameraSwitches",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(o,"deriveDetailCropRect",{enumerable:!0,get:function(){return qI}}),Object.defineProperty(o,"deriveRecordingMode",{enumerable:!0,get:function(){return at}}),Object.defineProperty(o,"describeModelVariant",{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(o,"detectionPipelineCapability",{enumerable:!0,get:function(){return Qo}}),Object.defineProperty(o,"deviceAdoptionCapability",{enumerable:!0,get:function(){return ji}}),Object.defineProperty(o,"deviceBackendToFormat",{enumerable:!0,get:function(){return _A}}),Object.defineProperty(o,"deviceCustomAction",{enumerable:!0,get:function(){return Lo}}),Object.defineProperty(o,"deviceDiscoveryCapability",{enumerable:!0,get:function(){return di}}),Object.defineProperty(o,"deviceExportCapability",{enumerable:!0,get:function(){return xi}}),Object.defineProperty(o,"deviceManagerCapability",{enumerable:!0,get:function(){return ec}}),Object.defineProperty(o,"deviceMatchesProfile",{enumerable:!0,get:function(){return rk}}),Object.defineProperty(o,"deviceOpsCapability",{enumerable:!0,get:function(){return m.v}}),Object.defineProperty(o,"deviceProviderCapability",{enumerable:!0,get:function(){return Li}}),Object.defineProperty(o,"deviceStateCapability",{enumerable:!0,get:function(){return tc}}),Object.defineProperty(o,"deviceStatusCapability",{enumerable:!0,get:function(){return ry}}),Object.defineProperty(o,"doorbellCapability",{enumerable:!0,get:function(){return cy}}),Object.defineProperty(o,"egressTranscodeSharingKey",{enumerable:!0,get:function(){return U}}),Object.defineProperty(o,"egressTransportFromRequest",{enumerable:!0,get:function(){return F}}),Object.defineProperty(o,"embeddingEncoderCapability",{enumerable:!0,get:function(){return rc}}),Object.defineProperty(o,"emitDownForOwnedCaps",{enumerable:!0,get:function(){return m.z}}),Object.defineProperty(o,"emitReadiness",{enumerable:!0,get:function(){return m.yt}}),Object.defineProperty(o,"encodeProfileFromStreamShape",{enumerable:!0,get:function(){return I}}),Object.defineProperty(o,"encodeVectorBase64",{enumerable:!0,get:function(){return JA}}),Object.defineProperty(o,"enumSensorCapability",{enumerable:!0,get:function(){return ly}}),Object.defineProperty(o,"enumerateInferenceDevices",{enumerable:!0,get:function(){return gP}}),Object.defineProperty(o,"enumerateItemArrayFields",{enumerable:!0,get:function(){return Sk}}),Object.defineProperty(o,"enumerateSchemaFields",{enumerable:!0,get:function(){return hk}}),Object.defineProperty(o,"errMsg",{enumerable:!0,get:function(){return g.t}}),Object.defineProperty(o,"evaluateAst",{enumerable:!0,get:function(){return _n}}),Object.defineProperty(o,"evaluateExpressionSource",{enumerable:!0,get:function(){return Vn}}),Object.defineProperty(o,"evaluateZoneRules",{enumerable:!0,get:function(){return QA}}),Object.defineProperty(o,"event",{enumerable:!0,get:function(){return m.D}}),Object.defineProperty(o,"eventEmitterCapability",{enumerable:!0,get:function(){return py}}),Object.defineProperty(o,"eventsCapability",{enumerable:!0,get:function(){return gy}}),Object.defineProperty(o,"expandCapMethods",{enumerable:!0,get:function(){return m.O}}),Object.defineProperty(o,"extractNestedAddonId",{enumerable:!0,get:function(){return jo}}),Object.defineProperty(o,"extractSourceInfoFromMetadata",{enumerable:!0,get:function(){return oi}}),Object.defineProperty(o,"faceGalleryCapability",{enumerable:!0,get:function(){return Sy}}),Object.defineProperty(o,"fanControlCapability",{enumerable:!0,get:function(){return Iy}}),Object.defineProperty(o,"featureProbeCapability",{enumerable:!0,get:function(){return Py}}),Object.defineProperty(o,"filesystemBrowseCapability",{enumerable:!0,get:function(){return cc}}),Object.defineProperty(o,"findTimezone",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(o,"floodCapability",{enumerable:!0,get:function(){return Oy}}),Object.defineProperty(o,"formatForBackend",{enumerable:!0,get:function(){return KA}}),Object.defineProperty(o,"formatForRuntime",{enumerable:!0,get:function(){return WA}}),Object.defineProperty(o,"gasCapability",{enumerable:!0,get:function(){return Ny}}),Object.defineProperty(o,"generateAutomationBlock",{enumerable:!0,get:function(){return ba}}),Object.defineProperty(o,"getAudioMacroClassIds",{enumerable:!0,get:function(){return ad}}),Object.defineProperty(o,"getByPath",{enumerable:!0,get:function(){return dk}}),Object.defineProperty(o,"getCapsByProviderKind",{enumerable:!0,get:function(){return Kk}}),Object.defineProperty(o,"getTaxonomyEntry",{enumerable:!0,get:function(){return md}}),Object.defineProperty(o,"hasMotionTrigger",{enumerable:!0,get:function(){return Xj}}),Object.defineProperty(o,"hfModelUrl",{enumerable:!0,get:function(){return CA}}),Object.defineProperty(o,"htmlToText",{enumerable:!0,get:function(){return cI}}),Object.defineProperty(o,"humidifierCapability",{enumerable:!0,get:function(){return My}}),Object.defineProperty(o,"humiditySensorCapability",{enumerable:!0,get:function(){return Ty}}),Object.defineProperty(o,"hydrateSchema",{enumerable:!0,get:function(){return m.Tt}}),Object.defineProperty(o,"imageCapability",{enumerable:!0,get:function(){return Ry}}),Object.defineProperty(o,"imageSettingsCapability",{enumerable:!0,get:function(){return Hy}}),Object.defineProperty(o,"integrationsCapability",{enumerable:!0,get:function(){return ef}}),Object.defineProperty(o,"intercomCapability",{enumerable:!0,get:function(){return rf}}),Object.defineProperty(o,"invocationFromEncodeProfile",{enumerable:!0,get:function(){return p.l}}),Object.defineProperty(o,"isAgentOnlyPlacement",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(o,"isArrayOutputSchema",{enumerable:!0,get:function(){return vo}}),Object.defineProperty(o,"isBaseConditionKey",{enumerable:!0,get:function(){return rI}}),Object.defineProperty(o,"isCollectionArrayMethod",{enumerable:!0,get:function(){return ho}}),Object.defineProperty(o,"isDeployableToAgent",{enumerable:!0,get:function(){return J}}),Object.defineProperty(o,"isDeviceConfigCap",{enumerable:!0,get:function(){return m.k}}),Object.defineProperty(o,"isDeviceScopedCap",{enumerable:!0,get:function(){return m.f}}),Object.defineProperty(o,"isEvent",{enumerable:!0,get:function(){return m.bt}}),Object.defineProperty(o,"isNode",{enumerable:!0,get:function(){return nk}}),Object.defineProperty(o,"isObjectInput",{enumerable:!0,get:function(){return fo}}),Object.defineProperty(o,"isSameAddonId",{enumerable:!0,get:function(){return AA}}),Object.defineProperty(o,"isScheduleActive",{enumerable:!0,get:function(){return SI}}),Object.defineProperty(o,"isSoftwareDecode",{enumerable:!0,get:function(){return p.u}}),Object.defineProperty(o,"isVoidInput",{enumerable:!0,get:function(){return yo}}),Object.defineProperty(o,"jobKindSchema",{enumerable:!0,get:function(){return kg}}),Object.defineProperty(o,"kebabToCamel",{enumerable:!0,get:function(){return Ao}}),Object.defineProperty(o,"knownValues",{enumerable:!0,get:function(){return tI}}),Object.defineProperty(o,"lawnMowerControlCapability",{enumerable:!0,get:function(){return df}}),Object.defineProperty(o,"lifecycleJobSchema",{enumerable:!0,get:function(){return Ng}}),Object.defineProperty(o,"lifecycleJobScopeSchema",{enumerable:!0,get:function(){return Cg}}),Object.defineProperty(o,"lifecycleJobStateSchema",{enumerable:!0,get:function(){return Og}}),Object.defineProperty(o,"lifecycleTaskSchema",{enumerable:!0,get:function(){return wg}}),Object.defineProperty(o,"llmCapability",{enumerable:!0,get:function(){return Ec}}),Object.defineProperty(o,"llmRuntimeCapability",{enumerable:!0,get:function(){return Sc}}),Object.defineProperty(o,"localNetworkCapability",{enumerable:!0,get:function(){return ff}}),Object.defineProperty(o,"locationSimilarity",{enumerable:!0,get:function(){return SA}}),Object.defineProperty(o,"lockControlCapability",{enumerable:!0,get:function(){return Sf}}),Object.defineProperty(o,"logBannerArgs",{enumerable:!0,get:function(){return p.d}}),Object.defineProperty(o,"logDestinationCapability",{enumerable:!0,get:function(){return Rc}}),Object.defineProperty(o,"logLevelAtMost",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(o,"loginMethodCapability",{enumerable:!0,get:function(){return Uc}}),Object.defineProperty(o,"looseSchema",{enumerable:!0,get:function(){return So}}),Object.defineProperty(o,"makeProfileBrokerId",{enumerable:!0,get:function(){return m.lt}}),Object.defineProperty(o,"makeSourceBrokerId",{enumerable:!0,get:function(){return m.ut}}),Object.defineProperty(o,"mapAudioLabelToMacro",{enumerable:!0,get:function(){return nd}}),Object.defineProperty(o,"markdownToHtmlLite",{enumerable:!0,get:function(){return uI}}),Object.defineProperty(o,"markdownToText",{enumerable:!0,get:function(){return oI}}),Object.defineProperty(o,"maskUrlCredentials",{enumerable:!0,get:function(){return MA}}),Object.defineProperty(o,"mediaPlayerCapability",{enumerable:!0,get:function(){return Pf}}),Object.defineProperty(o,"mergeSourceInfo",{enumerable:!0,get:function(){return ni}}),Object.defineProperty(o,"meshNetworkCapability",{enumerable:!0,get:function(){return Nf}}),Object.defineProperty(o,"method",{enumerable:!0,get:function(){return m.A}}),Object.defineProperty(o,"methodAccessForHttpMethod",{enumerable:!0,get:function(){return $t}}),Object.defineProperty(o,"metricsProviderCapability",{enumerable:!0,get:function(){return cs}}),Object.defineProperty(o,"modelConvertCapability",{enumerable:!0,get:function(){return ds}}),Object.defineProperty(o,"modelDistributorCapability",{enumerable:!0,get:function(){return ms}}),Object.defineProperty(o,"modelFormatForRuntime",{enumerable:!0,get:function(){return uP}}),Object.defineProperty(o,"motionCapability",{enumerable:!0,get:function(){return Ef}}),Object.defineProperty(o,"motionDetectionCapability",{enumerable:!0,get:function(){return gs}}),Object.defineProperty(o,"motionTriggerCapability",{enumerable:!0,get:function(){return Rf}}),Object.defineProperty(o,"motionZonesCapability",{enumerable:!0,get:function(){return qf}}),Object.defineProperty(o,"mqttBrokerCapability",{enumerable:!0,get:function(){return ws}}),Object.defineProperty(o,"nativeObjectDetectionCapability",{enumerable:!0,get:function(){return Kf}}),Object.defineProperty(o,"networkAccessCapability",{enumerable:!0,get:function(){return xs}}),Object.defineProperty(o,"networkQualityCapability",{enumerable:!0,get:function(){return Jf}}),Object.defineProperty(o,"nodePin",{enumerable:!0,get:function(){return m.P}}),Object.defineProperty(o,"nodesCapability",{enumerable:!0,get:function(){return mv}}),Object.defineProperty(o,"normalizeAddonInitResult",{enumerable:!0,get:function(){return m.gt}}),Object.defineProperty(o,"normalizeUnit",{enumerable:!0,get:function(){return ai}}),Object.defineProperty(o,"notificationOutputCapability",{enumerable:!0,get:function(){return Gs}}),Object.defineProperty(o,"notificationRulesCapability",{enumerable:!0,get:function(){return hl}}),Object.defineProperty(o,"notifierCapability",{enumerable:!0,get:function(){return vv}}),Object.defineProperty(o,"numericSensorCapability",{enumerable:!0,get:function(){return Sv}}),Object.defineProperty(o,"oauthIntegrationCapability",{enumerable:!0,get:function(){return Nl}}),Object.defineProperty(o,"objectInputDeclaresAddonId",{enumerable:!0,get:function(){return ko}}),Object.defineProperty(o,"osdCapability",{enumerable:!0,get:function(){return wv}}),Object.defineProperty(o,"osdManagerCapability",{enumerable:!0,get:function(){return Dv}}),Object.defineProperty(o,"parseCameraStreamConfig",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(o,"parseExpression",{enumerable:!0,get:function(){return An}}),Object.defineProperty(o,"parseJsonArray",{enumerable:!0,get:function(){return m.c}}),Object.defineProperty(o,"parseJsonObject",{enumerable:!0,get:function(){return m.l}}),Object.defineProperty(o,"parseJsonUnknown",{enumerable:!0,get:function(){return m.u}}),Object.defineProperty(o,"parseProfileBrokerId",{enumerable:!0,get:function(){return m.dt}}),Object.defineProperty(o,"parseStreamParamsFormPatch",{enumerable:!0,get:function(){return CS}}),Object.defineProperty(o,"petFeederCapability",{enumerable:!0,get:function(){return qv}}),Object.defineProperty(o,"pickAccessoryControl",{enumerable:!0,get:function(){return ek}}),Object.defineProperty(o,"pickDetailCropConvention",{enumerable:!0,get:function(){return FI}}),Object.defineProperty(o,"pickNativeLeaseOverride",{enumerable:!0,get:function(){return sA}}),Object.defineProperty(o,"pickPreferredRtspEntry",{enumerable:!0,get:function(){return ht}}),Object.defineProperty(o,"pickVideoEncoder",{enumerable:!0,get:function(){return p.f}}),Object.defineProperty(o,"pickerForCondition",{enumerable:!0,get:function(){return eI}}),Object.defineProperty(o,"pipelineAnalyticsCapability",{enumerable:!0,get:function(){return Ku}}),Object.defineProperty(o,"pipelineExecutorCapability",{enumerable:!0,get:function(){return Pm}}),Object.defineProperty(o,"pipelineOrchestratorCapability",{enumerable:!0,get:function(){return Qp}}),Object.defineProperty(o,"pipelineRunnerCapability",{enumerable:!0,get:function(){return vp}}),Object.defineProperty(o,"plateGalleryCapability",{enumerable:!0,get:function(){return Wv}}),Object.defineProperty(o,"platformProbeCapability",{enumerable:!0,get:function(){return lh}}),Object.defineProperty(o,"powerMeterCapability",{enumerable:!0,get:function(){return mh}}),Object.defineProperty(o,"prepareNotification",{enumerable:!0,get:function(){return fI}}),Object.defineProperty(o,"presenceCapability",{enumerable:!0,get:function(){return gh}}),Object.defineProperty(o,"pressureSensorCapability",{enumerable:!0,get:function(){return yh}}),Object.defineProperty(o,"principalMayReachAddon",{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(o,"privacyMaskCapability",{enumerable:!0,get:function(){return kh}}),Object.defineProperty(o,"procedureAuthKey",{enumerable:!0,get:function(){return Io}}),Object.defineProperty(o,"ptzAutotrackCapability",{enumerable:!0,get:function(){return Rh}}),Object.defineProperty(o,"ptzCapability",{enumerable:!0,get:function(){return Nh}}),Object.defineProperty(o,"pythonScriptForBackend",{enumerable:!0,get:function(){return GA}}),Object.defineProperty(o,"readDetailCropConvention",{enumerable:!0,get:function(){return BI}}),Object.defineProperty(o,"readDeviceStateFrom",{enumerable:!0,get:function(){return Cj}}),Object.defineProperty(o,"readNativeLeaseOverride",{enumerable:!0,get:function(){return oA}}),Object.defineProperty(o,"readNodePin",{enumerable:!0,get:function(){return m.F}}),Object.defineProperty(o,"readinessKey",{enumerable:!0,get:function(){return m.B}}),Object.defineProperty(o,"rebootCapability",{enumerable:!0,get:function(){return Bh}}),Object.defineProperty(o,"recordingCapability",{enumerable:!0,get:function(){return Zh}}),Object.defineProperty(o,"recordingExportCapability",{enumerable:!0,get:function(){return nS}}),Object.defineProperty(o,"rectsToCells",{enumerable:!0,get:function(){return EA}}),Object.defineProperty(o,"requiresPython",{enumerable:!0,get:function(){return ZA}}),Object.defineProperty(o,"resolveAddonExecution",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(o,"resolveAddonGroup",{enumerable:!0,get:function(){return X}}),Object.defineProperty(o,"resolveAddonPlacement",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(o,"resolveAddonRuntime",{enumerable:!0,get:function(){return HA}}),Object.defineProperty(o,"resolveCapMount",{enumerable:!0,get:function(){return m.j}}),Object.defineProperty(o,"resolveDetectionRuntime",{enumerable:!0,get:function(){return $A}}),Object.defineProperty(o,"resolveDeviceControlKind",{enumerable:!0,get:function(){return Jj}}),Object.defineProperty(o,"resolveDeviceProfile",{enumerable:!0,get:function(){return ck}}),Object.defineProperty(o,"resolveEgressDecodeHwAccel",{enumerable:!0,get:function(){return L}}),Object.defineProperty(o,"resolveFormat",{enumerable:!0,get:function(){return pI}}),Object.defineProperty(o,"resolveHydratedFieldValue",{enumerable:!0,get:function(){return m.Et}}),Object.defineProperty(o,"resolveModelFormat",{enumerable:!0,get:function(){return VA}}),Object.defineProperty(o,"resolveMutate",{enumerable:!0,get:function(){return ak}}),Object.defineProperty(o,"resolveRunnerId",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(o,"resolveScrubThumbnailGeometry",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(o,"resolveVariantModelId",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(o,"runInferenceStep",{enumerable:!0,get:function(){return RA}}),Object.defineProperty(o,"runtimeDevices",{enumerable:!0,get:function(){return dP}}),Object.defineProperty(o,"sceneMonitorCapability",{enumerable:!0,get:function(){return dS}}),Object.defineProperty(o,"scopeKey",{enumerable:!0,get:function(){return m.V}}),Object.defineProperty(o,"scopesAllowAddon",{enumerable:!0,get:function(){return Ht}}),Object.defineProperty(o,"scopesAllowDeviceCap",{enumerable:!0,get:function(){return Vt}}),Object.defineProperty(o,"scoreRuntimes",{enumerable:!0,get:function(){return mP}}),Object.defineProperty(o,"scriptRunnerCapability",{enumerable:!0,get:function(){return bS}}),Object.defineProperty(o,"selectAssignedProfileSlots",{enumerable:!0,get:function(){return m.ft}}),Object.defineProperty(o,"serverManagementCapability",{enumerable:!0,get:function(){return gb}}),Object.defineProperty(o,"setByPath",{enumerable:!0,get:function(){return lk}}),Object.defineProperty(o,"settingsStoreCapability",{enumerable:!0,get:function(){return Ko}}),Object.defineProperty(o,"sleep",{enumerable:!0,get:function(){return m.t}}),Object.defineProperty(o,"sleepCancellable",{enumerable:!0,get:function(){return m.n}}),Object.defineProperty(o,"smokeCapability",{enumerable:!0,get:function(){return zS}}),Object.defineProperty(o,"smtpProviderCapability",{enumerable:!0,get:function(){return hb}}),Object.defineProperty(o,"snapshotCapability",{enumerable:!0,get:function(){return kb}}),Object.defineProperty(o,"ssoBridgeCapability",{enumerable:!0,get:function(){return Ab}}),Object.defineProperty(o,"startReachabilityPoll",{enumerable:!0,get:function(){return gk}}),Object.defineProperty(o,"stateVocabularyFor",{enumerable:!0,get:function(){return Nj}}),Object.defineProperty(o,"storageCapability",{enumerable:!0,get:function(){return wb}}),Object.defineProperty(o,"storageEvictableCapability",{enumerable:!0,get:function(){return Nb}}),Object.defineProperty(o,"storageProviderCapability",{enumerable:!0,get:function(){return Ub}}),Object.defineProperty(o,"streamBrokerCapability",{enumerable:!0,get:function(){return uo}}),Object.defineProperty(o,"streamCatalogCapability",{enumerable:!0,get:function(){return fS}}),Object.defineProperty(o,"streamParamsCapability",{enumerable:!0,get:function(){return AS}}),Object.defineProperty(o,"streamPixels",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(o,"streamQualityLabel",{enumerable:!0,get:function(){return he}}),Object.defineProperty(o,"subKindsOf",{enumerable:!0,get:function(){return bd}}),Object.defineProperty(o,"summarisePrivacyAudio",{enumerable:!0,get:function(){return Ih}}),Object.defineProperty(o,"supportedRuntimes",{enumerable:!0,get:function(){return sP}}),Object.defineProperty(o,"switchCapability",{enumerable:!0,get:function(){return xS}}),Object.defineProperty(o,"switchedOffIds",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(o,"synthesizeSourceInfo",{enumerable:!0,get:function(){return ti}}),Object.defineProperty(o,"systemCapability",{enumerable:!0,get:function(){return DS}}),Object.defineProperty(o,"tamperCapability",{enumerable:!0,get:function(){return BS}}),Object.defineProperty(o,"taskLogEntrySchema",{enumerable:!0,get:function(){return Pg}}),Object.defineProperty(o,"taskPhaseSchema",{enumerable:!0,get:function(){return Ig}}),Object.defineProperty(o,"taskTargetSchema",{enumerable:!0,get:function(){return Ag}}),Object.defineProperty(o,"temperatureSensorCapability",{enumerable:!0,get:function(){return FS}}),Object.defineProperty(o,"terminalSessionCapability",{enumerable:!0,get:function(){return Hb}}),Object.defineProperty(o,"textToHtml",{enumerable:!0,get:function(){return lI}}),Object.defineProperty(o,"toDeviceSummary",{enumerable:!0,get:function(){return Uj}}),Object.defineProperty(o,"toExpressionValue",{enumerable:!0,get:function(){return Un}}),Object.defineProperty(o,"toNodeId",{enumerable:!0,get:function(){return m.I}}),Object.defineProperty(o,"toStreamSourceEntry",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(o,"toastCapability",{enumerable:!0,get:function(){return qS}}),Object.defineProperty(o,"tokenize",{enumerable:!0,get:function(){return fn}}),Object.defineProperty(o,"transcodeBody",{enumerable:!0,get:function(){return bI}}),Object.defineProperty(o,"tryConvertUnit",{enumerable:!0,get:function(){return yA}}),Object.defineProperty(o,"turnProviderCapability",{enumerable:!0,get:function(){return Wb}}),Object.defineProperty(o,"unitDimension",{enumerable:!0,get:function(){return pA}}),Object.defineProperty(o,"unitsForDimension",{enumerable:!0,get:function(){return vA}}),Object.defineProperty(o,"updateCapability",{enumerable:!0,get:function(){return $S}}),Object.defineProperty(o,"userManagementCapability",{enumerable:!0,get:function(){return nj}}),Object.defineProperty(o,"userPasskeysCapability",{enumerable:!0,get:function(){return Zb}}),Object.defineProperty(o,"vacuumControlCapability",{enumerable:!0,get:function(){return ij}}),Object.defineProperty(o,"validateExpressionSource",{enumerable:!0,get:function(){return $n}}),Object.defineProperty(o,"validateRecipeBounds",{enumerable:!0,get:function(){return sa}}),Object.defineProperty(o,"valveCapability",{enumerable:!0,get:function(){return dj}}),Object.defineProperty(o,"vectorDimFromBase64",{enumerable:!0,get:function(){return XA}}),Object.defineProperty(o,"vectorStoreCapability",{enumerable:!0,get:function(){return pg}}),Object.defineProperty(o,"vibrationCapability",{enumerable:!0,get:function(){return uj}}),Object.defineProperty(o,"videoclipsCapability",{enumerable:!0,get:function(){return zg}}),Object.defineProperty(o,"viewerUiCapability",{enumerable:!0,get:function(){return m.y}}),Object.defineProperty(o,"waterHeaterCapability",{enumerable:!0,get:function(){return pj}}),Object.defineProperty(o,"weatherCapability",{enumerable:!0,get:function(){return gj}}),Object.defineProperty(o,"webrtcClientHintsSchema",{enumerable:!0,get:function(){return yg}}),Object.defineProperty(o,"webrtcSessionCapability",{enumerable:!0,get:function(){return hg}}),Object.defineProperty(o,"wiringAddonHealthSchema",{enumerable:!0,get:function(){return H}}),Object.defineProperty(o,"wiringHealthSnapshotSchema",{enumerable:!0,get:function(){return W}}),Object.defineProperty(o,"wiringNodeHealthSchema",{enumerable:!0,get:function(){return K}}),Object.defineProperty(o,"wiringProbeKindSchema",{enumerable:!0,get:function(){return $}}),Object.defineProperty(o,"wiringProbeResultSchema",{enumerable:!0,get:function(){return V}}),Object.defineProperty(o,"zodEntriesToConfigUI",{enumerable:!0,get:function(){return wk}}),Object.defineProperty(o,"zoneAnalyticsCapability",{enumerable:!0,get:function(){return kj}}),Object.defineProperty(o,"zoneRulesCapability",{enumerable:!0,get:function(){return Aj}}),Object.defineProperty(o,"zonesCapability",{enumerable:!0,get:function(){return Em}});var d=s(t(i[0])),l=s(t(i[1])),u=t(i[2]),m=t(i[3]),p=t(i[4]),b=t(i[5]),g=t(i[6]),z=t(i[7]);function y(e,t){return{id:e,getRoutes:()=>t,invoke:async e=>{const n=f(t,e.method,e.path);if(!n)return{status:404,headers:{},redirectUrl:null,body:{error:`No route matches ${e.method} ${e.path}`}};const a={status:200,headers:{},redirectUrl:null},r=h(a),o=Object.assign({params:Object.assign({},e.params,n.params),query:e.query,body:e.body,headers:e.headers},e.user?{user:e.user}:{},void 0!==e.scopedToken?{scopedToken:e.scopedToken}:{});return await n.route.handler(o,r),a}}}function f(e,t,n){const a=t.toUpperCase();for(const t of e){if(t.method!==a)continue;const e=v(t.path,n);if(null!==e)return{route:t,params:e}}return null}function v(e,t){const n=e.split("/").filter(Boolean),a=t.split("/").filter(Boolean);if(n.length!==a.length)return null;const r={};for(let e=0;e<n.length;e++){const t=n[e],o=a[e];if(t.startsWith(":"))r[t.slice(1)]=o;else if(t!==o)return null}return r}function h(e){const t={status:n=>(e.status=n,t),code:n=>(e.status=n,t),send(t){e.body=t},redirect(t){e.redirectUrl=t,200===e.status&&(e.status=302)},header:(n,a)=>(e.headers[n.toLowerCase()]=a,t),type:n=>(e.contentType=n,t)};return t}var S=z.z.object({codec:z.z.enum(["h264","h265","copy"]),profile:z.z.enum(["baseline","main","high"]).optional(),level:z.z.string().optional(),width:z.z.number().int().positive().optional(),height:z.z.number().int().positive().optional(),fps:z.z.number().positive().optional(),bitrateKbps:z.z.number().int().positive().optional(),gopFrames:z.z.number().int().positive().optional(),bf:z.z.number().int().min(0).optional(),preset:z.z.enum(["ultrafast","superfast","veryfast","faster","fast","medium"]).optional(),tune:z.z.enum(["zerolatency","film","animation"]).optional()}),j=z.z.union([z.z.literal("passthrough"),z.z.object({codec:z.z.enum(["opus","aac","pcmu","pcma","copy"]),bitrateKbps:z.z.number().int().positive().optional(),sampleRateHz:z.z.number().int().positive().optional(),channels:z.z.union([z.z.literal(1),z.z.literal(2)]).optional()})]),k=z.z.object({video:S,audio:j,inputArgs:z.z.array(z.z.string()).optional(),outputArgs:z.z.array(z.z.string()).optional()});function I(e){const t=e.codec?.toLowerCase().replace(/[.\s-]/g,""),n=Object.assign({codec:"h265"===t||"hevc"===t?"h265":"h264"},void 0!==e.resolution?.width?{width:e.resolution.width}:{},void 0!==e.resolution?.height?{height:e.resolution.height}:{},void 0!==e.fps?{fps:e.fps}:{});if(void 0!==n.width||void 0!==n.height||void 0!==n.fps)return{video:n,audio:"passthrough"}}var A={video:{codec:"h264",profile:"baseline",level:"3.1",width:1280,height:720,fps:25,bitrateKbps:2500,gopFrames:25,bf:0,preset:"veryfast",tune:"zerolatency"},audio:"passthrough"},P=Object.assign({},A,{video:Object.assign({},A.video,{bitrateKbps:3e3,gopFrames:30,preset:"ultrafast"}),audio:"passthrough"}),w=Object.assign({},A,{audio:{codec:"opus"}}),O={kind:"cbr",vbvSeconds:1},C={kind:"cap",vbvSeconds:2},N=360,x=400,M=24,E={kind:"encode",codec:"opus",bitrateKbps:24,channels:1,application:"lowdelay",globalHeader:!0,filter:"aresample=async=1000:first_pts=0"},T=96,D=4;function R(e){const t=e.now??(()=>Date.now());let n=null,a=Number.NEGATIVE_INFINITY;return{read:()=>t()-a<e.ttlMs?n:void 0,write(e){n=e,a=t()}}}function B(e){return!e||"none"===e||"copy"===e}async function L(e){const t=e.override;if(null!=t&&""!==t)return B(t)?null:t;const n=e.cache?.read();if(void 0!==n)return n;let a;try{a=await e.readDecoderBackend()}catch(t){const n=await e.readKernelPreferred().catch(()=>[]);return e.onFallback({reason:"decoder-unreadable",kernelPreferred:n,error:t instanceof Error?t.message:String(t)}),e.cache?.write(null),null}if(""===a){const t=await e.readKernelPreferred().catch(()=>[]);return e.onFallback({reason:"decoder-unprobed",kernelPreferred:t}),e.cache?.write(null),null}const r=B(a)?null:a;return e.cache?.write(r),r}function F(e){return{transport:!0===e.publishLocally?"push":"dial"}}var _="\0unset";function q(e,t=F(e)){return{deviceId:e.deviceId,source:"profile"===e.source.kind?`profile:${e.source.profile}`:`cam-stream:${e.source.camStreamId}`,transport:t.transport,fragmentMs:t.fragmentMs??-1,video:(a=e.encode.video,{codec:a.codec,profile:a.profile??_,level:a.level??_,width:a.width??-1,height:a.height??-1,fps:a.fps??-1,bitrateKbps:a.bitrateKbps??-1,gopFrames:a.gopFrames??-1,bf:a.bf??-1,preset:a.preset??_,tune:a.tune??_}),audio:(n=e.encode.audio,"passthrough"===n?{codec:"passthrough"}:{codec:n.codec,bitrateKbps:n.bitrateKbps??-1,sampleRateHz:n.sampleRateHz??-1,channels:n.channels??-1}),rateControl:e.rateControl??"relaxed",bitstreamFilter:e.bitstreamFilter??_,pixelFormat:e.pixelFormat??_,decodeHwAccel:e.decodeHwAccel??_};var n,a}function U(e,t=F(e)){return`egress:${(0,p.t)(q(e,t))}`}var $=z.z.enum(["singleton","device","widget"]),V=z.z.object({capName:z.z.string(),kind:$,deviceId:z.z.number().optional(),reachable:z.z.boolean(),latencyMs:z.z.number(),error:z.z.string().optional()}),H=z.z.object({addonId:z.z.string(),caps:z.z.array(V).readonly(),widgets:z.z.array(V).readonly()}),K=z.z.object({nodeId:z.z.string(),addons:z.z.array(H).readonly()}),W=z.z.object({ok:z.z.boolean(),degraded:z.z.boolean(),checkedAt:z.z.string(),nodes:z.z.array(K).readonly(),summary:z.z.object({total:z.z.number(),reachable:z.z.number(),unreachable:z.z.number()})}),G="hub-only";function Z(e){return{placement:e.execution?.placement??"hub-only",group:e.execution?.group}}function J(e){const t=Z(e).placement;return"any-node"===t||"agent-only"===t}function Y(e){return"agent-only"===Z(e).placement}function X(e){return Z(e).group}function Q(e,t){return e.execution?.group??t}function ee(e){return Z(e).placement}var te=z.z.enum(["running","done","failed","cancelled"]),ne=z.z.enum(["adopted","already-adopted","failed","cancelled"]),ae=z.z.object({childNativeId:z.z.string(),outcome:ne,parentDeviceId:z.z.number().int().nonnegative().nullable(),accessoryCount:z.z.number().int().nonnegative(),error:z.z.string().nullable()}),re=z.z.object({jobId:z.z.string(),addonId:z.z.string(),integrationId:z.z.string(),state:te,total:z.z.number().int().nonnegative(),processed:z.z.number().int().nonnegative(),adopted:z.z.number().int().nonnegative(),alreadyAdopted:z.z.number().int().nonnegative(),failed:z.z.number().int().nonnegative(),accessoriesCreated:z.z.number().int().nonnegative(),currentChildNativeId:z.z.string().nullable(),results:z.z.array(ae).readonly(),startedAt:z.z.number(),finishedAt:z.z.number().nullable(),error:z.z.string().nullable()}),oe={cleanupIntervalMs:36e5,detectionEventsDays:30,audioLevelsDays:7,snapshotsDays:14},ie=z.z.enum(["stream-broker","object-detection","privacy-mask","device-audio","broker-audio","audio-analysis","recording","notifications"]),ce=["stream-broker","object-detection","privacy-mask","device-audio","broker-audio","audio-analysis","recording","notifications"],se=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("device-disabled")}),z.z.object({kind:z.z.literal("wrapper-binding"),capName:z.z.string()}),z.z.object({kind:z.z.literal("recording-config")}),z.z.object({kind:z.z.literal("notification-mute")}),z.z.object({kind:z.z.literal("camera-audio"),capName:z.z.string()}),z.z.object({kind:z.z.literal("camera-mask"),capName:z.z.string()}),z.z.object({kind:z.z.literal("broker-audio-mute")})]),de=z.z.enum(["no-provider","source-unreachable","not-configured"]),le=z.z.object({id:ie,label:z.z.string(),costWhenOff:z.z.string(),available:z.z.boolean(),unavailableReason:de.optional(),enabled:z.z.boolean(),authority:se}),ue=z.z.object({deviceId:z.z.number().int(),switches:z.z.array(le).readonly(),fetchedAt:z.z.number()}),me="detection-pipeline",pe="audio-analysis",be="privacy-mask",ge={"stream-broker":{id:"stream-broker",label:"Camera",costWhenOff:"Off: the whole camera stops. No live view, no recording, no detection and no notifications \u2014 its streams are released and nothing dials it again until you turn it back on.",authority:{kind:"device-disabled"},countsAsSwitchedOff:!0},"object-detection":{id:"object-detection",label:"Object detection & tracking",costWhenOff:"Off: nothing is detected or tracked on this camera, so it produces no events \u2014 and with no events there are no object notifications and no event-triggered recording. Live view and continuous recording are unaffected.",authority:{kind:"wrapper-binding",capName:me},countsAsSwitchedOff:!0},"privacy-mask":{id:"privacy-mask",label:"Privacy mask",costWhenOff:"On: the zones you drew on this camera are blacked out by the camera itself \u2014 live view, playback, exports and detection all see the black boxes, and nothing behind them was ever recorded. Off: the camera captures the whole frame, and your zones are kept for when you turn it back on.",authority:{kind:"camera-mask",capName:be},countsAsSwitchedOff:!1},"device-audio":{id:"device-audio",label:"Camera microphone",costWhenOff:"Off: the camera captures no sound at all. Live view and recordings become silent video, and audio detection and classification have nothing left to analyse \u2014 turning them back on will not recover it. The picture, motion and object detection are unaffected, and two-way talk still works. Applies at the camera, so every consumer sees the same silence.",authority:{kind:"camera-audio",capName:be},countsAsSwitchedOff:!0},"broker-audio":{id:"broker-audio",label:"Audio distribution",costWhenOff:"Off: this server distributes no sound for this camera \u2014 live view is silent and everything recorded while it is off is silent FOREVER, even after you turn it back on. Audio detection and classification also have nothing to analyse. The camera keeps capturing sound, so nothing about the camera changes and turning this back on is instant, with no interruption to the picture.",authority:{kind:"broker-audio-mute"},countsAsSwitchedOff:!0},"audio-analysis":{id:"audio-analysis",label:"Audio detection & classification",costWhenOff:"Off: no audio is decoded or classified for this camera. Tracks carry no audio labels and no audio-triggered rule can fire. Audio recorded alongside video is unaffected.",authority:{kind:"wrapper-binding",capName:pe},countsAsSwitchedOff:!0},recording:{id:"recording",label:"Recording",costWhenOff:"Off: nothing new is written to disk. Footage already recorded stays, but retention keeps deleting it \u2014 so this camera\u2019s history shrinks and is not replaced. Your recording schedule is kept and resumes when you turn it back on.",authority:{kind:"recording-config"},countsAsSwitchedOff:!0},notifications:{id:"notifications",label:"Notifications",costWhenOff:"Off: this camera never notifies anyone, on any rule, with no expiry. Detection, events and recording carry on exactly as before \u2014 you simply stop being told about them.",authority:{kind:"notification-mute"},countsAsSwitchedOff:!0}};function ze(e,t){switch(e.authority.kind){case"device-disabled":return{available:!0,enabled:!t.deviceDisabled};case"wrapper-binding":{const n=e.authority.capName;return null===t.bindableCapNames||null===t.activeWrapperCapNames?{available:!1,enabled:!0,unavailableReason:"source-unreachable"}:t.bindableCapNames.includes(n)?{available:!0,enabled:t.activeWrapperCapNames.includes(n)}:{available:!1,enabled:!0,unavailableReason:"no-provider"}}case"recording-config":return null===t.recordingEnabled?{available:!1,enabled:!0,unavailableReason:"source-unreachable"}:{available:!0,enabled:t.recordingEnabled};case"notification-mute":return null===t.notificationsMuted?{available:!1,enabled:!0,unavailableReason:"source-unreachable"}:{available:!0,enabled:!t.notificationsMuted};case"camera-audio":{const e=t.deviceAudio;return null===e?{available:!1,enabled:!0,unavailableReason:"source-unreachable"}:e.supported?null===e.enabled?{available:!1,enabled:!0,unavailableReason:"source-unreachable"}:{available:!0,enabled:e.enabled}:{available:!1,enabled:!0,unavailableReason:"no-provider"}}case"camera-mask":{const e=t.privacyMask;return null===e?{available:!1,enabled:!1,unavailableReason:"source-unreachable"}:e.supported?null===e.configuredRegions||null===e.enabled?{available:!1,enabled:!1,unavailableReason:"source-unreachable"}:0===e.configuredRegions?{available:!1,enabled:!1,unavailableReason:"not-configured"}:{available:!0,enabled:e.enabled}:{available:!1,enabled:!1,unavailableReason:"no-provider"}}case"broker-audio-mute":{const e=t.brokerAudio;return null===e?{available:!1,enabled:!0,unavailableReason:"source-unreachable"}:{available:!0,enabled:!e.muted}}}}function ye(e){return ce.map(t=>{const n=ge[t],a=ze(n,e);return Object.assign({id:n.id,label:n.label,costWhenOff:n.costWhenOff,available:a.available},void 0!==a.unavailableReason?{unavailableReason:a.unavailableReason}:{},{enabled:a.enabled,authority:n.authority})})}function fe(e){return e.filter(e=>ge[e.id].countsAsSwitchedOff&&e.available&&!e.enabled).map(e=>e.id)}var ve={high:"High",mid:"Mid",low:"Low"};function he(e){return ve[e]??e.charAt(0).toUpperCase()+e.slice(1)}function Se(e){return(e.width??0)*(e.height??0)}function je(e){if(0===e.length)return[];const t=e.map((e,t)=>({s:e,i:t,px:Se(e.metadata??{})})).toSorted((e,t)=>t.px-e.px),n=Array.from({length:e.length});for(let e=0;e<t.length;e++){const{s:a,i:r}=t[e];let o;o=0===e?"high":e===t.length-1?"low":"mid",n[r]=Object.assign({},a,{quality:o})}return n}function ke(e){const t=e.height??0,n=e.width??0;return t>=1080||n>=1920?"high":t>=480||n>=640?"mid":"low"}function Ie(e){const t=e.protocols.find(e=>"rtsp"===e.type&&e.url)??e.protocols.find(e=>e.url),n=t?.type,a="rtsp"===n?"rtsp":"http"===n||"flv"===n?"http-mjpeg":"custom";return{id:e.id,label:e.label??e.id,protocol:a,url:t?.url,profileHint:e.quality}}function Ae(e){return"string"==typeof e}function Pe(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function we(e){return Ae(e)&&e.trim()?{url:e}:Pe(e)&&Ae(e.url)&&e.url.trim()?{url:e.url,label:Ae(e.label)?e.label:void 0}:null}function Oe(e){const t=Ae(e.snapshot_url)?e.snapshot_url:void 0;if(Array.isArray(e.streams)){const n=[];for(const t of e.streams){const e=we(t);e&&n.push(e)}return{streams:n,snapshot_url:t}}const n=[],a=Ae(e.main_stream_url)?e.main_stream_url:void 0;a&&n.push({url:a,label:Ae(e.main_stream_name)?e.main_stream_name:void 0});const r=Ae(e.sub_stream_url)?e.sub_stream_url:void 0;r&&n.push({url:r,label:Ae(e.sub_stream_name)?e.sub_stream_name:void 0});const o=Ae(e.third_stream_url)?e.third_stream_url:void 0;return o&&n.push({url:o,label:Ae(e.third_stream_name)?e.third_stream_name:void 0}),{streams:n,snapshot_url:t}}function Ce(e){if(0===e.length)return{};const t=je(e),n={},a=t.find(e=>"high"===e.quality),r=t.find(e=>"mid"===e.quality),o=t.find(e=>"low"===e.quality);a&&(n.high=a.id),r&&(n.mid=r.id),o&&(n.low=o.id);const i=a??r??o??t[0];return i&&(n.high||(n.high=i.id),n.mid||(n.mid=i.id),n.low||(n.low=i.id)),n}var Ne={streaming:!0,notifications:!0,objectDetection:!1,remoteAccess:!0,agentCluster:!1,smartHome:!0,recordings:!0,backup:!0,repl:!0},xe={debug:0,info:1,warn:2,error:3};function Me(e,t){return xe[e]<=xe[t]}var Ee=z.z.enum(["recording","events"]),Te=z.z.enum(["prune","manual-delete","rescan","retention-run","relocate","orphan-audit"]),De=z.z.enum(["retention","quota","manual","operator","maintenance"]),Re=z.z.object({id:z.z.string(),at:z.z.number(),domain:Ee,op:Te,reason:De,deviceId:z.z.number().nullable(),nodeId:z.z.string(),itemsAffected:z.z.number(),bytesReclaimed:z.z.number(),detail:z.z.string().nullable(),actor:z.z.string()}),Be=z.z.object({deviceId:z.z.number().optional(),limit:z.z.number().int().min(1).max(1e3).optional()}),Le=500,Fe=200,_e={preMs:5e3,postMs:1e4},qe=z.z.number().int().min(0).max(6),Ue=/^([01]\d|2[0-3]):[0-5]\d$/,$e=z.z.enum(["off","events","continuous"]),Ve=z.z.object({motion:z.z.boolean().optional(),audioThresholdDbfs:z.z.number().optional()}),He=z.z.enum(["continuous","events"]),Ke=Ve,We=z.z.object({days:z.z.array(qe),start:z.z.string().regex(Ue),end:z.z.string().regex(Ue),mode:He,triggers:Ke.optional(),preBufferSec:z.z.number().min(0).optional(),postBufferSec:z.z.number().min(0).optional()}),Ge={preBufferSec:10,postBufferSec:30},Ze=z.z.object({maxAgeDays:z.z.number().min(0).optional(),maxSizeGb:z.z.number().min(0).optional()}),Je=z.z.enum(["minimal","low","standard","high","max"]),Ye="standard",Xe={minimal:{tileWidth:240,tileHeight:135,quality:55},low:{tileWidth:320,tileHeight:180,quality:60},standard:{tileWidth:480,tileHeight:270,quality:72},high:{tileWidth:640,tileHeight:360,quality:80},max:{tileWidth:960,tileHeight:540,quality:85}},Qe={minimal:"Minimal (240p)",low:"Low (320p)",standard:"Standard (480p)",high:"High (640p)",max:"Max (960p)"},et=["minimal","low","standard","high","max"];function tt(e){return Xe[e??"standard"]}var nt=z.z.object({enabled:z.z.boolean(),mode:$e.optional(),profiles:z.z.array(m.G).optional(),segmentSeconds:z.z.number().int().positive().optional(),bands:z.z.array(We).default([]),retention:Ze.optional(),scrubThumbnails:Je.optional()}).strict();function at(e){return e.enabled&&0!==e.bands.length?e.bands.some(e=>"continuous"===e.mode)?"continuous":"events":"off"}var rt=z.z.enum(["running","done","failed","cancelled"]),ot=z.z.object({jobId:z.z.string(),state:rt,fromLocationId:z.z.string(),toLocationId:z.z.string(),deviceId:z.z.number().nullable(),entities:z.z.array(z.z.string()),filesMoved:z.z.number().int(),bytesMoved:z.z.number().int(),filesTotal:z.z.number().int().nullable(),startedAt:z.z.number(),finishedAt:z.z.number().nullable(),error:z.z.string().nullable()}),it=z.z.object({deviceId:z.z.number().optional(),fromLocationId:z.z.string(),toLocationId:z.z.string(),entities:z.z.array(z.z.enum(["segments"])).optional(),throttleMbps:z.z.number().min(1).max(1e3).optional()}),ct=z.z.object({deviceId:z.z.number().optional(),toLocationId:z.z.string(),throttleMbps:z.z.number().min(1).max(1e3).optional()}),st=["face","plate"],dt=["face","plate","clip","custom"],lt=z.z.string().regex(/^[a-z][a-zA-Z0-9-]*$/),ut=z.z.object({id:z.z.string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),type:z.z.string(),displayName:z.z.string().min(1),providerId:z.z.string().min(1),config:z.z.record(z.z.string(),z.z.unknown()),nodeId:z.z.string().optional(),isDefault:z.z.boolean().default(!1),isSystem:z.z.boolean().default(!1),capacity:z.z.object({totalBytes:z.z.number(),availableBytes:z.z.number()}).nullable().optional(),createdAt:z.z.number(),updatedAt:z.z.number()}),mt=z.z.union([lt,z.z.string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/)]),pt=z.z.object({id:z.z.string().regex(/^[a-z][a-zA-Z0-9-]*$/,{message:"id must start with a lowercase letter and contain only letters, digits, or hyphens"}),displayName:z.z.string().min(1,{message:"displayName must not be empty"}),description:z.z.string().optional(),cardinality:z.z.enum(["single","multi"]),defaultsTo:z.z.string().optional(),defaultRoot:z.z.enum(["data","media","backup"]).optional()}),bt=z.z.object({inputFps:z.z.number(),outputFps:z.z.number(),avgDecodeTimeMs:z.z.number(),droppedFrames:z.z.number(),lagMs:z.z.number().optional(),effectiveFps:z.z.number().optional(),adaptiveFps:z.z.number().optional()}),gt=z.z.object({codec:z.z.string(),maxFps:z.z.number().default(0),outputFormat:z.z.enum(["jpeg","rgb","bgr","yuv420","gray"]).default("jpeg"),scale:z.z.number().default(1),width:z.z.number().optional(),height:z.z.number().optional(),deviceId:z.z.number().int().nonnegative().optional(),tag:z.z.string().optional(),frameSink:z.z.enum(["callback","shm"]).default("callback"),debug:z.z.boolean().optional()}),zt={offsetHours:1,startMonth:3,startWeekIndex:5,startWeekday:"Sunday",startHour:2,endMonth:10,endWeekIndex:5,endWeekday:"Sunday",endHour:3},yt={offsetHours:1,startMonth:3,startWeekIndex:2,startWeekday:"Sunday",startHour:2,endMonth:11,endWeekIndex:1,endWeekday:"Sunday",endHour:2},ft=[{id:"UTC",label:"UTC (UTC+0)",region:"Universal",stdOffsetMinutes:0,dst:null},{id:"Europe/London",label:"Europe/London (UTC+0 / BST)",region:"Europe",stdOffsetMinutes:0,dst:zt},{id:"Europe/Rome",label:"Europe/Rome (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:zt},{id:"Europe/Paris",label:"Europe/Paris (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:zt},{id:"Europe/Berlin",label:"Europe/Berlin (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:zt},{id:"Europe/Madrid",label:"Europe/Madrid (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:zt},{id:"Europe/Amsterdam",label:"Europe/Amsterdam (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:zt},{id:"Europe/Istanbul",label:"Europe/Istanbul (UTC+3)",region:"Europe",stdOffsetMinutes:180,dst:null},{id:"America/New_York",label:"America/New York (UTC\u22125 / EDT)",region:"Americas",stdOffsetMinutes:-300,dst:yt},{id:"America/Chicago",label:"America/Chicago (UTC\u22126 / CDT)",region:"Americas",stdOffsetMinutes:-360,dst:yt},{id:"America/Denver",label:"America/Denver (UTC\u22127 / MDT)",region:"Americas",stdOffsetMinutes:-420,dst:yt},{id:"America/Los_Angeles",label:"America/Los Angeles (UTC\u22128 / PDT)",region:"Americas",stdOffsetMinutes:-480,dst:yt},{id:"America/Sao_Paulo",label:"America/Sao Paulo (UTC\u22123)",region:"Americas",stdOffsetMinutes:-180,dst:null},{id:"Asia/Dubai",label:"Asia/Dubai (UTC+4)",region:"Asia",stdOffsetMinutes:240,dst:null},{id:"Asia/Kolkata",label:"Asia/Kolkata (UTC+5:30)",region:"Asia",stdOffsetMinutes:330,dst:null},{id:"Asia/Singapore",label:"Asia/Singapore (UTC+8)",region:"Asia",stdOffsetMinutes:480,dst:null},{id:"Asia/Shanghai",label:"Asia/Shanghai (UTC+8)",region:"Asia",stdOffsetMinutes:480,dst:null},{id:"Asia/Tokyo",label:"Asia/Tokyo (UTC+9)",region:"Asia",stdOffsetMinutes:540,dst:null},{id:"Australia/Sydney",label:"Australia/Sydney (UTC+10 / AEDT)",region:"Oceania",stdOffsetMinutes:600,dst:{offsetHours:1,startMonth:10,startWeekIndex:1,startWeekday:"Sunday",startHour:2,endMonth:4,endWeekIndex:1,endWeekday:"Sunday",endHour:3}}];function vt(e){return ft.find(t=>t.id===e)}function ht(e,t,n,a={}){if(0===e.length)return null;const r=`${n}/`,o=e=>Object.assign({brokerId:e.brokerId,profileId:e.brokerId.startsWith(r)?e.brokerId.slice(r.length):e.brokerId,url:e.url,mutedUrl:e.mutedUrl,enabled:e.enabled},void 0!==e.codec?{codec:e.codec}:{},void 0!==e.resolution?{resolution:e.resolution}:{});if("auto"!==t){const n=e.find(e=>e.enabled&&e.url.length>0&&(e.profile===t||e.brokerId===`${r}${t}`));if(n)return o(n)}const i=e.filter(e=>e.enabled&&e.url.length>0);if(0===i.length)return null;const c=a.targetResolution;if(c){const e=i.filter(e=>void 0!==e.resolution);if(e.length>0){const t=St(e,c);if(t)return o(t)}}return o(i[0])}function St(e,t){const n=t.width*t.height;let a,r;for(const t of e){if(void 0===t.resolution)continue;const e=t.resolution.width*t.resolution.height;e>=n?(!a||e<a.pixels)&&(a={entry:t,pixels:e}):(!r||e>r.pixels)&&(r={entry:t,pixels:e})}return a?.entry??r?.entry}var jt=z.z.object({id:z.z.string(),name:z.z.string(),category:z.z.string().optional(),description:z.z.string().optional(),icon:z.z.string().optional()}),kt=["onnx","coreml","openvino","tflite","pt"];function It(e){return e.toUpperCase()}function At(e,t){const n=It(e),a=t.replace(new RegExp(`^${n}\\s+`,"i"),"").trim();return a.length>0?a:t}function Pt(e,t){const n=[];return"fast"===t&&n.push("Fast"),n.push("int8"===e?"Int8":"Standard"),n.join(" \xb7 ")}function wt(e){const t=kt.map(t=>e.formats[t]?.sizeMB).filter(e=>"number"==typeof e);return t.length>0?Math.min(...t):0}var Ot=["n","s","m","l","x"],Ct=["fp32","int8"];function Nt(e){const t=new Map;for(const n of e){if(!0===n.legacy||void 0===n.group)continue;const{family:e,tier:a}=n.group,r=t.get(e)??new Map,o=r.get(a)??[];o.push(n),r.set(a,o),t.set(e,r)}const n=[];for(const[e,a]of t){const t=[];for(const[n,r]of a){const a=r.map(e=>{const t=e.group?.precision??"fp32",n=e.group?.optimization??"standard";return{modelId:e.id,precision:t,optimization:n,resolution:e.group?.resolution,label:Pt(t,n),formats:(a=e,kt.filter(e=>void 0!==a.formats[e])),sizeMB:wt(e)};var a}).toSorted((e,t)=>e.resolution!==t.resolution?(t.resolution??1/0)-(e.resolution??1/0):e.optimization!==t.optimization?"fast"===e.optimization?1:-1:Ct.indexOf(e.precision)-Ct.indexOf(t.precision)),o=a.find(e=>"fp32"===e.precision&&"standard"===e.optimization&&void 0===e.resolution)??a[0];if(void 0===o)continue;const i=r.find(e=>e.id===o.modelId);t.push({tier:n,label:i?At(e,i.name):n.toUpperCase(),baseModelId:o.modelId,options:a})}t.sort((e,t)=>{const n=Ot.indexOf(e.tier),a=Ot.indexOf(t.tier);return-1!==n&&-1!==a?n-a:-1!==n?-1:-1!==a?1:e.tier.localeCompare(t.tier)}),n.push({family:e,label:It(e),tiers:t})}return n.sort((e,t)=>e.family.localeCompare(t.family)),n}function xt(e,t){const n=t.precision??"fp32",a=t.optimization??"standard";for(const r of e)if(void 0!==r.group&&r.group.family===t.family&&r.group.tier===t.tier&&(r.group.precision??"fp32")===n&&(r.group.optimization??"standard")===a&&r.group.resolution===t.resolution)return r.id;return null}function Mt(e,t){const n=e.find(e=>e.id===t);return void 0===n?.group?null:{family:n.group.family,tier:n.group.tier,precision:n.group.precision??"fp32",optimization:n.group.optimization??"standard",resolution:n.group.resolution}}var Et=["onnx","coreml","openvino","tflite","pt","gguf"],Tt=z.z.object({url:z.z.string(),sizeMB:z.z.number(),isDirectory:z.z.boolean().optional(),files:z.z.array(z.z.string()).readonly().optional(),runtimes:z.z.array(z.z.enum(["node","python"])).readonly().optional()}),Dt=z.z.object({url:z.z.string(),filename:z.z.string(),sizeMB:z.z.number()}),Rt=z.z.object({onnx:Tt.optional(),coreml:Tt.optional(),openvino:Tt.optional(),tflite:Tt.optional(),pt:Tt.optional(),gguf:Tt.optional()}),Bt=z.z.object({family:z.z.string(),tier:z.z.string(),precision:z.z.enum(["fp32","int8"]).optional(),optimization:z.z.enum(["standard","fast"]).optional(),resolution:z.z.number().int().positive().optional()}),Lt=z.z.object({id:z.z.string(),name:z.z.string(),description:z.z.string(),formats:Rt,inputSize:z.z.object({width:z.z.number(),height:z.z.number()}),inputChannels:z.z.number().int().positive().optional(),labels:z.z.array(jt).readonly(),inputLayout:z.z.enum(["nchw","nhwc"]).optional(),inputNormalization:z.z.enum(["zero-one","imagenet","none"]).optional(),outputProbabilities:z.z.boolean().optional(),preprocessMode:z.z.enum(["letterbox","resize"]).optional(),postprocessor:z.z.custom().optional(),faceAlignment:z.z.boolean().optional(),extraFiles:z.z.array(Dt).readonly().optional(),legacy:z.z.boolean().optional(),metrics:z.z.object({map50:z.z.number().optional(),p95LatencyMs:z.z.record(z.z.string(),z.z.number()).optional()}).optional(),license:z.z.string().optional(),group:Bt.optional()}),Ft=z.z.discriminatedUnion("format",[z.z.object({format:z.z.literal("openvino"),precisions:z.z.array(z.z.enum(["fp16","int8"])).min(1).readonly()}),z.z.object({format:z.z.literal("coreml")})]),_t=z.z.object({id:z.z.string().regex(/^[a-zA-Z0-9._-]+$/),name:z.z.string(),labels:z.z.array(jt).readonly(),inputSize:z.z.object({width:z.z.number(),height:z.z.number()}),inputLayout:z.z.enum(["nchw","nhwc"]).optional(),inputNormalization:z.z.enum(["zero-one","imagenet","none"]).optional(),preprocessMode:z.z.enum(["letterbox","resize"]).optional(),outputFormat:z.z.enum(["yolo","ssd","embedding","classification","ocr","segmentation"]),faceAlignment:z.z.boolean().optional()}),qt=z.z.object({format:z.z.enum(Et),precision:z.z.enum(["fp16","int8"]).optional(),sizeMB:z.z.number(),validated:z.z.boolean(),files:z.z.array(z.z.string()).readonly()}),Ut=z.z.object({entry:Lt,artifacts:z.z.array(qt).readonly()});function $t(e){switch(e.toUpperCase()){case"GET":case"HEAD":case"OPTIONS":return"view";case"POST":case"PUT":case"PATCH":return"create";default:return"delete"}}function Vt(e,t){return e.some(e=>"category"===e.type&&"device"===e.target&&e.access.includes(t))}function Ht(e,t,n){return e.some(e=>"addon"===e.type&&e.target===t&&e.access.includes(n))}function Kt(e){const t=e.kind;if(void 0===t)return{kind:"session"};if("sso-bridge"!==t)return{kind:"not-a-credential",reason:`bridge token kind=${String(t)}`};const n=e.provider;return"oauth-access"===n?{kind:"integration",provider:"oauth-access"}:{kind:"not-a-credential",reason:`bridge token provider=${String(n)}`}}function Wt(e){const{principal:t}=e;if("not-a-credential"===t.kind)return{allowed:!1,reason:t.reason};if("session"===t.kind)return{allowed:!0};const n=$t(e.method);return Ht(e.scopes,e.addonId,n)?{allowed:!0}:{allowed:!1,reason:`integration token holds no addon:${e.addonId}[${n}] grant`}}var Gt=class extends Error{constructor(e,t){super(e),this.name="ExpressionParseError",this.position=t}},Zt=class extends Error{constructor(e){super(e),this.name="ExpressionEvalError"}};function Jt(e,t,n){if("number"!=typeof e||!Number.isFinite(e))throw new Zt(`${t}: argument ${n+1} must be a finite number`);return e}function Yt(e,t,n){if("string"!=typeof e)throw new Zt(`${t}: argument ${n+1} must be a string`);return e}function Xt(e,t){if(!Number.isFinite(e))throw new Zt(`${t}: produced a non-finite result`);return e}function Qt(e,t){return e.map((e,n)=>Jt(e,t,n))}var en=Number.POSITIVE_INFINITY,tn={min:{minArgs:1,maxArgs:en,apply:e=>Xt(Math.min(...Qt(e,"min")),"min")},max:{minArgs:1,maxArgs:en,apply:e=>Xt(Math.max(...Qt(e,"max")),"max")},abs:{minArgs:1,maxArgs:1,apply:e=>Xt(Math.abs(Jt(e[0],"abs",0)),"abs")},floor:{minArgs:1,maxArgs:1,apply:e=>Xt(Math.floor(Jt(e[0],"floor",0)),"floor")},ceil:{minArgs:1,maxArgs:1,apply:e=>Xt(Math.ceil(Jt(e[0],"ceil",0)),"ceil")},sqrt:{minArgs:1,maxArgs:1,apply:e=>Xt(Math.sqrt(Jt(e[0],"sqrt",0)),"sqrt")},round:{minArgs:1,maxArgs:2,apply:e=>{const t=Jt(e[0],"round",0),n=e.length>1?Math.trunc(Jt(e[1],"round",1)):0;if(n<0||n>100)throw new Zt("round: digits must be between 0 and 100");const a=10**n;return Xt(Math.round(t*a)/a,"round")}},pow:{minArgs:2,maxArgs:2,apply:e=>Xt(Jt(e[0],"pow",0)**Jt(e[1],"pow",1),"pow")},clamp:{minArgs:3,maxArgs:3,apply:e=>{const t=Jt(e[0],"clamp",0),n=Jt(e[1],"clamp",1),a=Jt(e[2],"clamp",2);if(n>a)throw new Zt("clamp: lower bound is greater than upper bound");return Xt(Math.min(a,Math.max(n,t)),"clamp")}},avg:{minArgs:1,maxArgs:en,apply:e=>{const t=Qt(e,"avg");return Xt(t.reduce((e,t)=>e+t,0)/t.length,"avg")}},sum:{minArgs:1,maxArgs:en,apply:e=>Xt(Qt(e,"sum").reduce((e,t)=>e+t,0),"sum")},coalesce:{minArgs:1,maxArgs:en,apply:e=>{for(const t of e)if(null!==t)return t;return null}},age:{minArgs:2,maxArgs:2,apply:e=>Xt(Jt(e[0],"age",0)-Jt(e[1],"age",1),"age")},convert:{minArgs:3,maxArgs:3,apply:(e,t)=>{const n=Jt(e[0],"convert",0),a=Yt(e[1],"convert",1).trim(),r=Yt(e[2],"convert",2).trim();if(t.convert){const e=t.convert(n,a,r);if(null===e)throw new Zt(`convert: cannot convert '${a}' to '${r}'`);return Xt(e,"convert")}if(a===r)return n;throw new Zt("convert: unit conversion table not installed")}}},nn=Object.freeze(Object.assign(Object.create(null),tn)),an=new Set(Object.keys(tn)),rn=2048,on=256,cn=4096,sn=32,dn=16,ln=256,un=/^[A-Za-z_][A-Za-z0-9_]*$/,mn=new Set(["now","true","false","null"]),pn=new Set(["true","false","null"]);function bn(e){return e>="0"&&e<="9"}function gn(e){return e>="A"&&e<="Z"||e>="a"&&e<="z"||"_"===e}function zn(e){return gn(e)||bn(e)}function yn(e){return" "===e||"\t"===e||"\n"===e||"\r"===e||"\f"===e||"\v"===e}function fn(e){if(e.length>2048)throw new Gt(`expression too long (${e.length} > ${rn} chars)`,0);const t=[];let n=0;const a=e.length;for(;n<a;){const r=e[n];if(yn(r)){n+=1;continue}if(bn(r)){const r=n;for(;n<a&&bn(e[n]);)n+=1;if(n<a&&"."===e[n]){if(n+1>=a||!bn(e[n+1]))throw new Gt("malformed number: decimal point needs a digit",n);for(n+=1;n<a&&bn(e[n]);)n+=1}const o=e.slice(r,n),i=Number(o);if(!Number.isFinite(i))throw new Gt(`malformed number: '${o}'`,r);t.push({type:"number",value:i,pos:r});continue}if("'"===r||"\""===r){const o=r,i=n;n+=1;let c="",s=!1;for(;n<a;){const t=e[n];if("\\"===t){const t=n+1<a?e[n+1]:"";if("\\"===t||"'"===t||"\""===t){c+=t,n+=2;continue}throw new Gt(`invalid string escape: '\\${t}'`,n)}if(t===o){s=!0,n+=1;break}c+=t,n+=1}if(!s)throw new Gt("unterminated string literal",i);t.push({type:"string",value:c,pos:i});continue}if(gn(r)){const r=n;for(;n<a&&zn(e[n]);)n+=1;const o=e.slice(r,n);pn.has(o)?t.push({type:"keyword",keyword:vn(o),pos:r}):t.push({type:"identifier",name:o,pos:r});continue}const o=n+1<a?e.slice(n,n+2):"";if("<="!==o&&">="!==o&&"=="!==o&&"!="!==o&&"&&"!==o&&"||"!==o){if(!hn(r))throw new Gt(`unexpected character '${r}'`,n);t.push({type:"punct",punct:r,pos:n}),n+=1}else t.push({type:"punct",punct:o,pos:n}),n+=2}return t.push({type:"eof",pos:a}),t}function vn(e){return"true"===e?"true":"false"===e?"false":"null"}function hn(e){return"("===e||")"===e||","===e||"?"===e||":"===e||"+"===e||"-"===e||"*"===e||"/"===e||"%"===e||"!"===e||"<"===e||">"===e}var Sn={"||":1,"&&":2,"==":3,"!=":3,"<":4,"<=":4,">":4,">=":4,"+":5,"-":5,"*":6,"/":6,"%":6};function jn(e){return"&&"===e||"||"===e}function kn(e){return"+"===e||"-"===e||"*"===e||"/"===e||"%"===e||"=="===e||"!="===e||"<"===e||"<="===e||">"===e||">="===e}var In=class{pos=0;nodeCount=0;identifiers=new Set;callees=new Set;constructor(e){this.tokens=e}parse(){const e=this.parseTernary(),t=this.peek();if("eof"!==t.type)throw new Gt("unexpected trailing input",t.pos);return{ast:e,identifiers:this.identifiers,callees:this.callees,nodeCount:this.nodeCount}}peek(){return this.tokens[this.pos]}next(){return this.tokens[this.pos++]}expectPunct(e){const t=this.peek();if("punct"!==t.type||t.punct!==e)throw new Gt(`expected '${e}'`,t.pos);this.pos+=1}matchPunct(e){const t=this.peek();return"punct"===t.type&&t.punct===e&&(this.pos+=1,!0)}countNode(){if(this.nodeCount+=1,this.nodeCount>256)throw new Gt("expression too complex",this.peek().pos)}parseTernary(){const e=this.parseBinary(1);if(this.matchPunct("?")){const t=this.parseTernary();this.expectPunct(":");const n=this.parseTernary();return this.countNode(),{kind:"conditional",test:e,consequent:t,alternate:n}}return e}parseBinary(e){let t=this.parseUnary();for(;;){const n=this.peek();if("punct"!==n.type)break;const a=Sn[n.punct];if(void 0===a||a<e)break;const r=n.punct;this.pos+=1;const o=this.parseBinary(a+1);if(this.countNode(),jn(r))t={kind:"logical",op:r,left:t,right:o};else{if(!kn(r))throw new Gt(`unexpected operator '${r}'`,n.pos);t={kind:"binary",op:r,left:t,right:o}}}return t}parseUnary(){const e=this.peek();if("punct"===e.type&&("!"===e.punct||"-"===e.punct)){const t=e.punct;this.pos+=1;const n=this.parseUnary();return this.countNode(),{kind:"unary",op:t,operand:n}}return this.parsePrimary()}parsePrimary(){const e=this.next();switch(e.type){case"number":case"string":return this.countNode(),{kind:"literal",value:e.value};case"keyword":return this.countNode(),{kind:"literal",value:"null"===e.keyword?null:"true"===e.keyword};case"identifier":{const t=this.peek();return"punct"===t.type&&"("===t.punct?this.parseCall(e.name,e.pos):(this.identifiers.add(e.name),this.countNode(),{kind:"identifier",name:e.name})}case"punct":if("("===e.punct){const e=this.parseTernary();return this.expectPunct(")"),e}throw new Gt(`unexpected token '${e.punct}'`,e.pos);case"eof":throw new Gt("unexpected end of expression",e.pos)}}parseCall(e,t){if(!an.has(e))throw new Gt(`unknown function '${e}'`,t);this.expectPunct("(");const n=[];if(!this.matchPunct(")"))for(;;){if(n.push(this.parseTernary()),n.length>16)throw new Gt(`too many arguments to '${e}'`,t);if(!this.matchPunct(",")){this.expectPunct(")");break}}return this.callees.add(e),this.countNode(),{kind:"call",callee:e,args:n}}};function An(e){return new In(fn(e)).parse()}var Pn=new Map;function wn(e){const t=Pn.get(e);if(void 0!==t)return Pn.delete(e),Pn.set(e,t),t;let n;try{n={ok:!0,parsed:An(e)}}catch(e){n={ok:!1,error:e instanceof Gt?e.message:String(e)}}if(Pn.set(e,n),Pn.size>256){const e=Pn.keys().next().value;void 0!==e&&Pn.delete(e)}return n}function On(e){const t=wn(e);if(t.ok)return t.parsed;throw new Gt(t.error)}function Cn(e){return wn(e)}var Nn=Object.freeze({});function xn(e){const t=Object.create(null);for(const n of Object.keys(e))Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function Mn(e){return"number"==typeof e&&Number.isFinite(e)}function En(e){return Boolean(e)}function Tn(e,t){if(!Number.isFinite(e))throw new Zt(`${t} produced a non-finite result`);return e}function Dn(e){if(e.steps+=1,e.steps>e.maxSteps)throw new Zt("expression evaluation step budget exceeded")}function Rn(e,t){switch(Dn(t),e.kind){case"literal":return e.value;case"identifier":if(!(e.name in t.scope))throw new Zt(`unknown identifier: ${e.name}`);return t.scope[e.name];case"unary":return Bn(e.op,Rn(e.operand,t));case"binary":return Ln(e.op,Rn(e.left,t),Rn(e.right,t));case"logical":{const n=Rn(e.left,t);return"&&"===e.op?En(n)?Rn(e.right,t):n:En(n)?n:Rn(e.right,t)}case"conditional":return En(Rn(e.test,t))?Rn(e.consequent,t):Rn(e.alternate,t);case"call":return Fn(e.callee,e.args.map(e=>Rn(e,t)),t.hooks)}}function Bn(e,t){if("!"===e)return!En(t);if(!Mn(t))throw new Zt("unary \"-\" requires a finite number");return Tn(-t,"unary \"-\"")}function Ln(e,t,n){switch(e){case"==":return t===n;case"!=":return t!==n;case"+":if("string"==typeof t&&"string"==typeof n)return t+n;if(Mn(t)&&Mn(n))return Tn(t+n,"\"+\"");throw new Zt("\"+\" requires two numbers or two strings");case"-":case"*":case"/":case"%":if(!Mn(t)||!Mn(n))throw new Zt(`"${e}" requires two finite numbers`);return Tn("-"===e?t-n:"*"===e?t*n:"/"===e?t/n:t%n,`"${e}"`);case"<":case"<=":case">":case">=":if(Mn(t)&&Mn(n))return"<"===e?t<n:"<="===e?t<=n:">"===e?t>n:t>=n;if("string"==typeof t&&"string"==typeof n)return"<"===e?t<n:"<="===e?t<=n:">"===e?t>n:t>=n;throw new Zt(`"${e}" requires two numbers or two strings`)}}function Fn(e,t,n){if(!Object.prototype.hasOwnProperty.call(nn,e))throw new Zt(`unknown function: ${e}`);const a=nn[e];if(t.length<a.minArgs||t.length>a.maxArgs)throw new Zt(`${e}: wrong number of arguments (${t.length})`);return a.apply(t,n)}function _n(e,t,n){return Rn(e,{scope:t,hooks:n?.hooks??Nn,maxSteps:n?.maxSteps??4096,steps:0})}var qn="now";function Un(e){return null===e?null:"string"==typeof e||"boolean"==typeof e||"number"==typeof e&&Number.isFinite(e)?e:void 0}function $n(e){const t=Object.keys(e.bindings);if(t.length>32)return`too many bindings (${t.length} > 32)`;for(const e of t){if(!un.test(e))return`invalid binding name '${e}'`;if(mn.has(e))return`binding name '${e}' is reserved`;if(an.has(e))return`binding name '${e}' shadows a builtin function`}const n=Cn(e.expr);if(!n.ok)return n.error;const a=new Set(t);for(const e of n.parsed.identifiers)if("now"!==e&&!a.has(e))return`expression references unbound identifier '${e}'`;return null}function Vn(e,t,n,a){const r=Cn(e);if(!r.ok)return{ok:!1,error:r.error};const o=xn(Object.assign({},t,{now:n}));try{return{ok:!0,value:_n(r.parsed.ast,o,a)}}catch(e){return{ok:!1,error:e instanceof Zt?e.message:String(e)}}}var Hn=z.z.object({kind:z.z.literal("field").optional(),sourceKey:z.z.string(),cap:z.z.string(),fieldPath:z.z.string()}),Kn=z.z.object({kind:z.z.literal("literal"),value:z.z.union([z.z.string(),z.z.number(),z.z.boolean(),z.z.null()])}),Wn=z.z.object({kind:z.z.literal("global"),sourceStableId:z.z.string(),cap:z.z.string(),fieldPath:z.z.string()}),Gn=z.z.union([Hn,Kn,Wn]),Zn=z.z.object({expr:z.z.string().min(1).max(rn),bindings:z.z.record(z.z.string().regex(un),Gn)}).superRefine((e,t)=>{const n=$n(e);null!==n&&t.addIssue({code:"custom",message:n,path:["expr"]})}),Jn=3,Yn=32,Xn=z.z.enum(["eq","ne","gt","gte","lt","lte","contains","in"]),Qn=z.z.object({kind:z.z.literal("condition"),deviceId:z.z.number().int().nonnegative(),cap:z.z.string().min(1),fieldPath:z.z.string().min(1),operator:Xn,value:z.z.union([z.z.string(),z.z.number(),z.z.boolean(),z.z.array(z.z.union([z.z.string(),z.z.number()]))])}),ea=z.z.object({kind:z.z.literal("expression"),expr:z.z.string().min(1).max(rn),bindings:z.z.record(z.z.string().regex(un),Gn)}).superRefine((e,t)=>{const n=$n(e);null!==n&&t.addIssue({code:"custom",message:n,path:["expr"]})}),ta=z.z.lazy(()=>z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("all"),children:z.z.array(ta)}),z.z.object({kind:z.z.literal("any"),children:z.z.array(ta)}),z.z.object({kind:z.z.literal("not"),child:ta}),Qn,ea])),na=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("device-state"),deviceId:z.z.number().int().nonnegative(),cap:z.z.string().min(1),fieldPath:z.z.string().min(1),becomes:z.z.union([z.z.string(),z.z.number(),z.z.boolean()]).optional(),edge:z.z.boolean().optional(),forMs:z.z.number().int().min(0).max(864e5).optional(),debounceMs:z.z.number().int().min(0).max(6e5).optional()}),z.z.object({kind:z.z.literal("device-event"),category:z.z.string().min(1),deviceId:z.z.number().int().nonnegative().optional()}),z.z.object({kind:z.z.literal("schedule"),cron:z.z.string().min(1).max(120)}),z.z.object({kind:z.z.literal("manual")})]),aa=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("wait"),seconds:z.z.number().min(0).max(300)}),z.z.object({kind:z.z.literal("cap"),deviceId:z.z.union([z.z.number().int(),z.z.object({$var:z.z.string().min(1)})]),cap:z.z.string().min(1),method:z.z.string().min(1),args:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.object({kind:z.z.literal("code"),code:z.z.string().min(1).max(2e4)})]),ra=z.z.object({triggers:z.z.array(na),conditions:ta.optional(),actions:z.z.array(aa)});function oa(e){if("condition"===e.kind||"expression"===e.kind)return 1;if("not"===e.kind)return 1+oa(e.child);const t=e.children;if(0===t.length)return 1;let n=0;for(const e of t){const t=oa(e);t>n&&(n=t)}return 1+n}function ia(e){if("condition"===e.kind||"expression"===e.kind)return 1;if("not"===e.kind)return ia(e.child);let t=0;for(const n of e.children)t+=ia(n);return t}function ca(e){return"condition"!==e.kind&&"expression"!==e.kind&&("not"===e.kind?ca(e.child):0===e.children.length||e.children.some(ca))}function sa(e){if(0===e.triggers.length)return"an automation needs at least one trigger \u2014 without one nothing can start a run";if(0===e.actions.length)return"an automation needs at least one action \u2014 a rule that does nothing is not a rule";const t=e.conditions;if(void 0!==t){if(ca(t))return"a condition group is empty \u2014 group existing rows instead of leaving a container to fill";const e=oa(t);if(e>3)return`conditions nest ${e} levels deep \u2014 the limit is 3. "not (any of \u2026)" is the same as "all of (not \u2026)", which is one level shallower`;const n=ia(t);if(n>32)return`conditions use ${n} leaves \u2014 the limit is 32`}return null}var da=15e3;function la(e){return JSON.stringify(e)}function ua(e,t){switch(e.kind){case"all":return`allOf([\n${e.children.map(e=>`${t} () => ${ua(e,`${t} `)}`).join(",\n")}\n${t}])`;case"any":return`anyOf([\n${e.children.map(e=>`${t} () => ${ua(e,`${t} `)}`).join(",\n")}\n${t}])`;case"not":return`notOf(() => ${ua(e.child,t)})`;case"condition":return`leaf(${la(e.deviceId)}, ${la(e.cap)}, ${la(e.fieldPath)}, ${la(e.operator)}, ${la(e.value)})`;case"expression":return`exprLeaf(${la(e.expr)}, ${la(e.bindings)})`}}function ma(e,t){switch(e.kind){case"schedule":return` // trigger ${t}: schedule \u2014 armed to the next minute boundary and\n // RE-ARMED from the wall clock every tick, so it cannot drift the way a\n // setInterval(24h) does. No cron library: a block cannot resolve one.\n {\n let timer: ReturnType<typeof setTimeout> | undefined\n const arm = (): void => {\n timer = setTimeout(() => {\n if (cronMatches(${la(e.cron)}, new Date())) {\n void run({ kind: 'schedule', at: Date.now() })\n }\n arm()\n }, nextMinuteBoundary())\n }\n arm()\n disposers.push(() => { if (timer !== undefined) clearTimeout(timer) })\n }`;case"device-event":return` // trigger ${t}: device event\n disposers.push(\n ctx.eventBus.subscribe(\n { category: ${la(e.category)}${void 0===e.deviceId?"":`, deviceId: ${la(e.deviceId)}`} },\n (event) => {\n void run({\n kind: 'device-event',\n at: Date.now(),\n deviceId: event.deviceId,\n category: ${la(e.category)},\n })\n },\n ),\n )`;case"device-state":{const n=void 0===e.becomes?"undefined":la(e.becomes);return` // trigger ${t}: device state \u2014 the mirror is the authority, the\n // event only WAKES the evaluation, so a dropped event delays and never loses.\n {\n let previous: unknown = undefined\n let debounce: ReturnType<typeof setTimeout> | undefined\n let heldSince: number | undefined\n const check = async (): Promise<void> => {\n const value = await readField(${la(e.deviceId)}, ${la(e.cap)}, ${la(e.fieldPath)})\n const want = ${n}\n const matches = want === undefined ? value !== previous : value === want\n const changed = value !== previous\n previous = value\n if (!matches) { heldSince = undefined; return }\n if (${!0===e.edge?"true":"false"} && !changed) return\n const forMs = ${la(e.forMs??0)}\n if (forMs > 0) {\n if (heldSince === undefined) { heldSince = Date.now(); return }\n if (Date.now() - heldSince < forMs) return\n }\n heldSince = undefined\n void run({\n kind: 'device-state',\n at: Date.now(),\n deviceId: ${la(e.deviceId)},\n cap: ${la(e.cap)},\n field: ${la(e.fieldPath)},\n to: value,\n })\n }\n const wake = (): void => {\n if (debounce !== undefined) clearTimeout(debounce)\n debounce = setTimeout(() => { void check() }, ${la(e.debounceMs??0)})\n }\n disposers.push(\n ctx.eventBus.subscribe({ category: 'device.state-changed', deviceId: ${la(e.deviceId)} }, wake),\n )\n const reconcile = setInterval(() => { void check() }, RECONCILE_MS)\n disposers.push(() => clearInterval(reconcile))\n }`}case"manual":return` // trigger ${t}: manual \u2014 fired by automation-control.trigger\n // ("Run actions"), which runs the THEN half with an EMPTY vars bag.`}}function pa(e,t){switch(e.kind){case"wait":return` case ${t}: await sleep(${la(1e3*e.seconds)}); break`;case"cap":return` case ${t}: {\n const deviceId = ${"number"==typeof e.deviceId?la(e.deviceId):`resolveTarget(vars, ${la(e.deviceId.$var)})`}\n await actuate(deviceId, ${la(e.cap)}, ${la(e.method)}, ${la(e.args??{})}, vars)\n break\n }`;case"code":return` case ${t}: {\n // inline code action \u2014 a fragment of THIS block, bundled by esbuild\n await (async () => {\n${e.code.split("\n").map(e=>` ${e}`).join("\n")}\n })()\n break\n }`}}function ba(e){const t=sa(e.recipe);if(null!==t)throw new Error(`cannot generate an automation from an invalid recipe: ${t}`);const{name:n,recipe:a}=e,r=void 0===a.conditions?"true":`await ${ua(a.conditions," ")}`;return`import type { AddonContext } from '@camstack/types'\nimport { evaluateExpressionSource, toExpressionValue } from '@camstack/types'\n\n/**\n * ${n}\n *\n * GENERATED FROM A RECIPE \u2014 do not edit by hand. Editing this file makes it a\n * script: the visual editor reads AUTOMATION_RECIPE below, and hand edits are\n * lost the next time the recipe is saved. Use "Eject to code" to take ownership\n * of it permanently (one way).\n */\n\nconst AUTOMATION_RECIPE = ${JSON.stringify(a,null,2)} as const\n\nconst RECONCILE_MS = ${da}\n\n/** A cap is named \`alarm-panel\`; \`ctx.api\` is keyed by the ROUTER name,\n * \`alarmPanel\`. Indexing ctx.api with the cap name yields undefined and every\n * action throws, so the conversion is not cosmetic. */\nfunction capToRouterKey(cap: string): string {\n return cap.replace(/-([a-z0-9])/g, (_m, c: string) => c.toUpperCase())\n}\n\n/** Ms until the top of the next minute. Recomputed every tick so a long-lived\n * schedule cannot accumulate drift. */\nfunction nextMinuteBoundary(): number {\n const now = Date.now()\n return 60_000 - (now % 60_000)\n}\n\n/** Does \`when\` satisfy a 5-field cron expression (min hour dom mon dow)?\n * Supports wildcards, step syntax, ranges, comma lists and plain numbers \u2014\n * the subset an operator can author, and nothing that needs a library. */\nfunction cronMatches(expr: string, when: Date): boolean {\n const fields = expr.trim().split(/\\s+/)\n if (fields.length !== 5) return false\n const actual = [\n when.getMinutes(),\n when.getHours(),\n when.getDate(),\n when.getMonth() + 1,\n when.getDay(),\n ]\n return fields.every((field, i) => matchField(field, actual[i]!))\n}\n\nfunction matchField(field: string, value: number): boolean {\n for (const part of field.split(',')) {\n const [range, stepRaw] = part.split('/')\n const step = stepRaw === undefined ? 1 : Number.parseInt(stepRaw, 10)\n if (!Number.isFinite(step) || step < 1) continue\n if (range === '*') {\n if (value % step === 0) return true\n continue\n }\n const bounds = range!.split('-')\n const lo = Number.parseInt(bounds[0]!, 10)\n const hi = bounds[1] === undefined ? lo : Number.parseInt(bounds[1], 10)\n if (!Number.isFinite(lo) || !Number.isFinite(hi)) continue\n if (value >= lo && value <= hi && (value - lo) % step === 0) return true\n }\n return false\n}\n\nexport default function block(ctx: AddonContext) {\n const disposers: Array<() => void> = []\n const sleep = (ms: number): Promise<void> => new Promise((r) => setTimeout(r, ms))\n\n /** Read one cap field off the state mirror. Returns undefined when the device,\n * the cap or the field cannot be resolved \u2014 the caller decides what that\n * means, and it always logs. */\n async function readField(\n deviceId: number,\n cap: string,\n fieldPath: string,\n ): Promise<unknown> {\n try {\n const slice = await ctx.api.deviceState.getCapSlice.query({ deviceId, capName: cap })\n let cursor: unknown = slice\n for (const part of fieldPath.split('.')) {\n if (cursor === null || typeof cursor !== 'object') return undefined\n cursor = (cursor as Record<string, unknown>)[part]\n }\n return cursor\n } catch {\n return undefined\n }\n }\n\n function compare(actual: unknown, operator: string, expected: unknown): boolean {\n switch (operator) {\n case 'eq': return actual === expected\n case 'ne': return actual !== expected\n case 'gt': return typeof actual === 'number' && typeof expected === 'number' && actual > expected\n case 'gte': return typeof actual === 'number' && typeof expected === 'number' && actual >= expected\n case 'lt': return typeof actual === 'number' && typeof expected === 'number' && actual < expected\n case 'lte': return typeof actual === 'number' && typeof expected === 'number' && actual <= expected\n case 'contains': return typeof actual === 'string' && typeof expected === 'string' && actual.includes(expected)\n case 'in': return Array.isArray(expected) && expected.some((v) => v === actual)\n default: return false\n }\n }\n\n /** A leaf whose device or cap is currently unresolvable is FALSE and logs.\n * It never throws the pass away, and it never counts as true. */\n async function leaf(\n deviceId: number,\n cap: string,\n fieldPath: string,\n operator: string,\n expected: unknown,\n ): Promise<boolean> {\n const actual = await readField(deviceId, cap, fieldPath)\n if (actual === undefined) {\n ctx.logger.warn('condition leaf unresolvable \u2014 treated as false', {\n tags: { deviceId },\n cap,\n fieldPath,\n })\n return false\n }\n return compare(actual, operator, expected)\n }\n\n /** The expression leaf goes through the bounded engine \u2014 parsed AST, no\n * member access, no loops, hard step/node limits. Never inline JS. */\n async function exprLeaf(\n expr: string,\n bindings: Record<string, { kind?: string; cap?: string; fieldPath?: string; value?: unknown; sourceStableId?: string }>,\n ): Promise<boolean> {\n const values: Record<string, string | number | boolean | null> = {}\n for (const [alias, binding] of Object.entries(bindings)) {\n if (binding.kind === 'literal') {\n values[alias] = toExpressionValue(binding.value) ?? null\n continue\n }\n const deviceId = await stableIdToDeviceId(binding.sourceStableId)\n if (deviceId === undefined) {\n ctx.logger.warn('condition leaf unresolvable \u2014 treated as false', {\n tags: { deviceId: -1 },\n binding: alias,\n })\n return false\n }\n const raw = await readField(deviceId, binding.cap ?? '', binding.fieldPath ?? '')\n values[alias] = toExpressionValue(raw) ?? null\n }\n const result = evaluateExpressionSource(expr, values, Date.now())\n if (!result.ok) {\n ctx.logger.warn('expression leaf failed \u2014 treated as false', { expr, error: result.error })\n return false\n }\n return result.value === true\n }\n\n async function stableIdToDeviceId(stableId: string | undefined): Promise<number | undefined> {\n if (stableId === undefined) return undefined\n try {\n const all = await ctx.api.deviceManager.listAll.query({})\n const hit = all.devices.find((d: { stableId?: string; id: number }) => d.stableId === stableId)\n return hit?.id\n } catch {\n return undefined\n }\n }\n\n async function allOf(children: Array<() => Promise<boolean>>): Promise<boolean> {\n for (const c of children) { if (!(await c())) return false }\n return true\n }\n async function anyOf(children: Array<() => Promise<boolean>>): Promise<boolean> {\n for (const c of children) { if (await c()) return true }\n return false\n }\n async function notOf(child: () => Promise<boolean>): Promise<boolean> {\n return !(await child())\n }\n\n /** A {$var} action target, resolved from the run's bag BEFORE dispatch \u2014 the\n * action runner only ever sees a number. */\n function resolveTarget(vars: Record<string, unknown>, name: string): number {\n const raw = vars[name]\n if (typeof raw === 'number') return raw\n throw new Error('action target var "' + name + '" is not a device id')\n }\n\n /** Substitute {{vars.x}} slots. Substitution only \u2014 never evaluation. */\n function substitute(value: unknown, vars: Record<string, unknown>): unknown {\n if (typeof value !== 'string') return value\n return value.replace(/\\{\\{\\s*vars\\.([A-Za-z_][A-Za-z0-9_]*)\\s*\\}\\}/g, (_m, key: string) => {\n const v = vars[key]\n if (v === undefined) {\n ctx.logger.warn('template referenced a var that was never set', { var: key })\n return ''\n }\n return String(v)\n })\n }\n\n async function actuate(\n deviceId: number,\n cap: string,\n method: string,\n args: Record<string, unknown>,\n vars: Record<string, unknown>,\n ): Promise<void> {\n const resolved: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(args)) resolved[k] = substitute(v, vars)\n const client = (ctx.api as unknown as Record<string, Record<string, { mutate: (i: unknown) => Promise<unknown> }>>)[capToRouterKey(cap)]\n if (client === undefined || client[method] === undefined) {\n throw new Error('no such device method: ' + cap + '.' + method)\n }\n await client[method]!.mutate({ ...resolved, deviceId })\n }\n\n async function evaluateConditions(): Promise<boolean> {\n return ${r}\n }\n\n /** The THEN half. Stops at the first failure \u2014 continuing past a failed step\n * executes an intent the operator never expressed. */\n async function runActions(vars: Record<string, unknown>): Promise<void> {\n for (let step = 0; step < ${a.actions.length}; step += 1) {\n try {\n switch (step) {\n${a.actions.map((e,t)=>pa(e,t)).join("\n")}\n }\n } catch (err: unknown) {\n ctx.logger.warn('action failed \u2014 stopping the sequence', {\n step,\n error: err instanceof Error ? err.message : String(err),\n })\n return\n }\n }\n }\n\n async function run(trigger: Record<string, unknown>): Promise<void> {\n const vars: Record<string, unknown> = { ...trigger }\n const passed = await evaluateConditions()\n if (!passed) {\n ctx.logger.debug('automation did not run \u2014 conditions were false', { trigger })\n return\n }\n ctx.logger.info('automation running', { trigger })\n await runActions(vars)\n }\n\n${a.triggers.map((e,t)=>ma(e,t)).join("\n\n")}\n\n return () => {\n for (const dispose of disposers) dispose()\n }\n}\n`}var ga=z.z.object({id:z.z.string(),label:z.z.string(),icon:z.z.string(),path:z.z.string(),remoteName:z.z.string(),bundle:z.z.string(),section:z.z.string().optional(),sectionLabel:z.z.string().optional()}),za=z.z.object({addonId:z.z.string(),page:ga,bundleUrl:z.z.string()}),ya={name:"addon-pages",scope:"system",mode:"singleton",methods:{listPages:(0,m.A)(z.z.void(),z.z.array(za).readonly())}},fa=z.z.object({id:z.z.string(),label:z.z.string(),icon:z.z.string(),path:z.z.string(),remoteName:z.z.string(),bundle:z.z.string(),section:z.z.string().optional(),sectionLabel:z.z.string().optional()}),va={name:"addon-pages-source",scope:"system",mode:"collection",internal:!0,methods:{listPages:(0,m.A)(z.z.void(),z.z.array(fa).readonly())}},ha=z.z.object({method:z.z.enum(["GET","POST","PUT","DELETE","PATCH"]),path:z.z.string(),access:z.z.enum(["public","authenticated","admin"]).optional(),description:z.z.string().optional()}),Sa=z.z.object({method:z.z.string(),path:z.z.string(),params:z.z.record(z.z.string(),z.z.string()),query:z.z.record(z.z.string(),z.z.string()),body:z.z.unknown(),headers:z.z.record(z.z.string(),z.z.string()),user:z.z.object({id:z.z.string(),username:z.z.string(),isAdmin:z.z.boolean()}).optional(),scopedToken:z.z.unknown().optional()}),ja=z.z.object({status:z.z.number().int(),headers:z.z.record(z.z.string(),z.z.string()),redirectUrl:z.z.string().nullable(),body:z.z.unknown().optional(),contentType:z.z.string().optional()}),ka={name:"addon-routes",scope:"system",mode:"collection",internal:!0,methods:{getRoutes:(0,m.A)(z.z.void(),z.z.array(ha)),invoke:(0,m.A)(Sa,ja,{kind:"mutation"})},mount:{kind:"skip"}},Ia=z.z.object({id:z.z.string(),label:z.z.string(),icon:z.z.string(),order:z.z.number().optional()}),Aa=z.z.object({id:z.z.string(),title:z.z.string(),description:z.z.string().optional(),style:z.z.enum(["card","accordion"]).optional(),defaultCollapsed:z.z.boolean().optional(),columns:z.z.union([z.z.literal(1),z.z.literal(2),z.z.literal(3),z.z.literal(4)]).optional(),tab:z.z.string().optional(),location:z.z.enum(["settings","top-tab"]).optional(),order:z.z.number().optional(),fields:z.z.array(z.z.any())}),Pa=z.z.object({tabs:z.z.array(Ia).optional(),sections:z.z.array(Aa)}),wa=z.z.record(z.z.string(),z.z.unknown()),Oa=z.z.object({success:z.z.literal(!0)}),Ca={name:"addon-settings",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{getGlobalSettings:(0,m.A)(z.z.object({addonId:z.z.string(),nodeId:z.z.string().optional(),overlay:z.z.record(z.z.string(),z.z.unknown()).optional(),cap:z.z.string().optional()}),Pa.nullable()),updateGlobalSettings:(0,m.A)(z.z.object({addonId:z.z.string(),nodeId:z.z.string().optional(),patch:wa}),Oa,{kind:"mutation",auth:"admin"}),getDeviceSettings:(0,m.A)(z.z.object({addonId:z.z.string(),deviceId:z.z.number(),nodeId:z.z.string().optional()}),Pa.nullable()),updateDeviceSettings:(0,m.A)(z.z.object({addonId:z.z.string(),deviceId:z.z.number(),nodeId:z.z.string().optional(),patch:wa}),Oa,{kind:"mutation",auth:"admin"})}},Na=z.z.enum(["device-tab","dashboard","integration-detail"]),xa=z.z.enum(["xs","sm","md","lg","xl"]),Ma=z.z.object({remoteName:z.z.string(),exposedModule:z.z.string(),componentKey:z.z.string().optional()}),Ea=z.z.object({tab:z.z.string(),subTab:z.z.string().optional(),label:z.z.string(),order:z.z.number().optional(),kind:z.z.literal("remote"),remote:Ma,stableId:z.z.string(),description:z.z.string().optional(),icon:z.z.string().optional(),bundle:z.z.string(),hosts:z.z.array(Na).readonly(),requires:z.z.object({deviceContext:z.z.boolean().default(!1),integrationContext:z.z.boolean().default(!1)}),preAuth:z.z.boolean().optional().default(!1),defaultSize:xa.default("md"),allowedSizes:z.z.array(xa).readonly().default(["sm","md","lg"]),defaultColumns:z.z.number().int().min(1).max(12).default(6),defaultRows:z.z.number().int().min(1).max(12).default(1)}),Ta={name:"addon-widgets-source",scope:"system",mode:"collection",internal:!0,methods:{listWidgets:(0,m.A)(z.z.void(),z.z.array(Ea).readonly())}},Da=Ea.extend({addonId:z.z.string(),bundleUrl:z.z.string()}),Ra={name:"addon-widgets",scope:"system",mode:"singleton",methods:{listWidgets:(0,m.A)(z.z.void(),z.z.array(Da).readonly())}},Ba=z.z.enum(["info","success","warning","error"]),La=z.z.enum(["active","in-progress","completed","failed","dismissed"]),Fa=z.z.object({type:z.z.string(),id:z.z.string()}),_a=z.z.object({id:z.z.string(),category:z.z.string(),severity:Ba,title:z.z.string(),message:z.z.string(),status:La,progress:z.z.number().optional(),read:z.z.boolean(),createdAt:z.z.number(),updatedAt:z.z.number(),source:Fa.optional(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional()}),qa={name:"alerts",scope:"system",mode:"singleton",methods:{emit:(0,m.A)(_a,z.z.void(),{kind:"mutation"}),update:(0,m.A)(z.z.object({alertId:z.z.string(),patch:_a.partial()}),z.z.void(),{kind:"mutation"}),list:(0,m.A)(z.z.object({unreadOnly:z.z.boolean().optional(),limit:z.z.number().optional()}).optional(),z.z.array(_a).readonly()),getUnreadCount:(0,m.A)(z.z.void(),z.z.number()),markRead:(0,m.A)(z.z.object({alertId:z.z.string()}),z.z.void(),{kind:"mutation"}),markAllRead:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation"}),dismiss:(0,m.A)(z.z.object({alertId:z.z.string()}),z.z.void(),{kind:"mutation"})}},Ua={name:"audio-analysis",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],exposesDeviceSettings:!0,methods:{resolveDeviceSettings:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.custom())},events:{onAudioLevel:(0,m.D)(z.z.object({deviceId:z.z.number(),rms:z.z.number(),dbfs:z.z.number()}))}},$a=z.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),Va=z.z.object({data:z.z.custom(),format:$a,width:z.z.number(),height:z.z.number(),timestamp:z.z.number()}),Ha=z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),Ka=z.z.object({class:z.z.string(),originalClass:z.z.string(),score:z.z.number(),bbox:Ha}),Wa=z.z.object({data:z.z.instanceof(Uint8Array),sampleRate:z.z.number(),channels:z.z.number(),timestamp:z.z.number(),deviceId:z.z.number().optional()}),Ga=z.z.object({rms:z.z.number(),dbfs:z.z.number()}),Za=z.z.object({className:z.z.string(),originalClass:z.z.string().optional(),score:z.z.number()}),Ja=z.z.object({level:Ga,classification:z.z.object({labels:z.z.array(Za).readonly(),inferenceMs:z.z.number()}).optional(),timestamp:z.z.number()}),Ya=z.z.object({minConfidence:z.z.number().min(0).max(1).default(.3),allowedClasses:z.z.array(z.z.string()).default([])}),Xa=z.z.object({labels:z.z.array(Za).readonly(),rawLabels:z.z.array(Za).readonly().optional(),inferenceMs:z.z.number()}),Qa=[{value:"auto",label:"Auto (platform default)"},{value:"apple-soundanalysis",label:"Apple SoundAnalysis (macOS 12+)"},{value:"yamnet-onnx",label:"YAMNet ONNX (cross-platform)"}],er={audioBackend:"auto",probedBestAudioBackend:"",selectedAudioModel:""},tr={name:"audio-analyzer",scope:"system",mode:"singleton",methods:{analyseChunk:(0,m.A)(z.z.object({chunk:Wa,settings:Ya}),Ja.nullable(),{kind:"mutation"}),classify:(0,m.A)(Wa,Xa,{timeoutMs:3e4}),isReady:(0,m.A)(z.z.void(),z.z.boolean()),dispose:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation"}),reprobeAudioEngine:(0,m.A)(z.z.void(),z.z.object({backend:z.z.string()}),{kind:"mutation",auth:"admin"})}},nr=z.z.enum(["f32le","s16le"]),ar=z.z.object({codec:z.z.string(),canDecode:z.z.boolean(),canEncode:z.z.boolean(),label:z.z.string().optional()}),rr=z.z.object({codec:z.z.string(),sourceSampleRate:z.z.number().int().positive(),sourceChannels:z.z.number().int().positive(),extraData:z.z.instanceof(Uint8Array).optional(),targetSampleRate:z.z.number().int().positive(),targetChannels:z.z.number().int().positive(),targetFormat:nr.optional(),idleMs:z.z.number().int().positive().optional(),tag:z.z.string().optional()}),or=z.z.object({codec:z.z.string(),sourceSampleRate:z.z.number().int().positive(),sourceChannels:z.z.number().int().positive(),sourceFormat:nr.optional(),targetSampleRate:z.z.number().int().positive(),targetChannels:z.z.number().int().positive(),bitrateKbps:z.z.number().int().positive().optional(),idleMs:z.z.number().int().positive().optional(),tag:z.z.string().optional()}),ir=z.z.object({data:z.z.instanceof(Uint8Array),sampleRate:z.z.number().int().positive(),channels:z.z.number().int().positive(),format:nr,pts:z.z.number()}),cr=z.z.object({data:z.z.instanceof(Uint8Array),codec:z.z.string(),pts:z.z.number(),frameComplete:z.z.boolean()}),sr=z.z.object({sessionId:z.z.string(),kind:z.z.enum(["decode","encode"]),codec:z.z.string(),sourceSampleRate:z.z.number(),sourceChannels:z.z.number(),targetSampleRate:z.z.number(),targetChannels:z.z.number(),format:nr,tag:z.z.string().optional(),createdAtMs:z.z.number(),lastActivityMs:z.z.number(),framesIn:z.z.number(),framesOut:z.z.number()}),dr={name:"audio-codec",scope:"system",mode:"singleton",preferredProvider:"decoder-nodeav",methods:{listSupportedCodecs:(0,m.A)(z.z.void(),z.z.array(ar).readonly()),canHandle:(0,m.A)(z.z.object({codec:z.z.string(),kind:z.z.enum(["decode","encode"])}),z.z.boolean()),createDecodeSession:(0,m.A)(rr,z.z.object({sessionId:z.z.string(),nodeId:z.z.string()}),{kind:"mutation"}),createEncodeSession:(0,m.A)(or,z.z.object({sessionId:z.z.string(),nodeId:z.z.string()}),{kind:"mutation"}),closeSession:(0,m.A)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional()}),z.z.void(),{kind:"mutation"}),pushEncodedFrame:(0,m.A)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional(),data:z.z.instanceof(Uint8Array),pts:z.z.number().optional()}),z.z.void(),{kind:"mutation"}),pullPcm:(0,m.A)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional(),maxCount:z.z.number().int().positive().default(8)}),z.z.array(ir)),pushPcm:(0,m.A)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional(),data:z.z.instanceof(Uint8Array),pts:z.z.number().optional()}),z.z.void(),{kind:"mutation"}),pullEncoded:(0,m.A)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional(),maxCount:z.z.number().int().positive().default(8)}),z.z.array(cr)),flushEncode:(0,m.A)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional()}),z.z.array(cr),{kind:"mutation"}),listActiveSessions:(0,m.A)(z.z.void(),z.z.array(sr).readonly())}},lr=z.z.object({userId:z.z.string(),username:z.z.string(),email:z.z.string().optional(),displayName:z.z.string().optional(),isAdmin:z.z.boolean().default(!1)}),ur={name:"auth-provider",scope:"system",mode:"collection",internal:!0,methods:{validateCredentials:(0,m.A)(z.z.object({username:z.z.string(),password:z.z.string()}),lr.nullable(),{kind:"mutation"}),getLoginUrl:(0,m.A)(z.z.object({state:z.z.string()}),z.z.string()),handleCallback:(0,m.A)(z.z.record(z.z.string(),z.z.string()),lr,{kind:"mutation"}),validateToken:(0,m.A)(z.z.object({token:z.z.string()}),lr.nullable())},mount:{kind:"skip"}},mr=z.z.object({subId:z.z.string(),displayName:z.z.string(),description:z.z.string().optional(),kind:z.z.string(),triggerSupported:z.z.boolean(),restoreSupported:z.z.boolean()}).extend({id:z.z.string(),addonId:z.z.string(),enabled:z.z.boolean(),retentionCount:z.z.number(),label:z.z.string().optional(),lastSuccessAt:z.z.number().optional(),lastSuccessSizeBytes:z.z.number().optional(),cron:z.z.string().optional(),nextRunAt:z.z.number().optional(),lastRunAt:z.z.number().optional()}),pr=z.z.object({id:z.z.string(),filename:z.z.string(),createdAt:z.z.number(),sizeBytes:z.z.number(),label:z.z.string().optional(),locations:z.z.array(z.z.string()).readonly()}),br=z.z.object({id:z.z.string(),destinationId:z.z.string().optional(),label:z.z.string().optional(),createdAt:z.z.number(),sizeBytes:z.z.number(),locations:z.z.array(z.z.string()).optional()}),gr=z.z.object({path:z.z.string(),kind:z.z.enum(["file","dir","symlink"]),sizeBytes:z.z.number(),mtime:z.z.number()}),zr=z.z.object({archiveVersion:z.z.literal(1),createdAt:z.z.number(),dataDir:z.z.string(),locations:z.z.array(z.z.string()),entries:z.z.array(gr),totalBytes:z.z.number(),totalFiles:z.z.number()}),yr=z.z.object({name:z.z.string(),sizeBytes:z.z.number(),fileCount:z.z.number(),present:z.z.boolean()}),fr=z.z.object({id:z.z.string(),label:z.z.string(),cron:z.z.string(),enabled:z.z.boolean(),locationIds:z.z.array(z.z.string()).readonly(),retentionCount:z.z.number().int().min(1).max(1e3),dataSources:z.z.array(z.z.string()).readonly().optional(),lastRunAt:z.z.number().optional(),nextRunAt:z.z.number().optional()}),vr={name:"backup",scope:"system",mode:"singleton",methods:{listDestinations:(0,m.A)(z.z.void(),z.z.array(mr).readonly(),{auth:"admin"}),trigger:(0,m.A)(z.z.object({destinations:z.z.array(z.z.string()).optional(),locations:z.z.array(z.z.string()).optional(),label:z.z.string().optional(),retentionCount:z.z.number().int().min(1).max(1e3).optional()}).optional(),z.z.array(br).readonly(),{kind:"mutation",auth:"admin"}),list:(0,m.A)(z.z.void(),z.z.array(br).readonly(),{auth:"admin"}),listLocations:(0,m.A)(z.z.void(),z.z.array(yr).readonly(),{auth:"admin"}),getEntries:(0,m.A)(z.z.object({destinationId:z.z.string(),backupId:z.z.string()}),zr.nullable(),{auth:"admin"}),restore:(0,m.A)(z.z.object({destinationId:z.z.string(),backupId:z.z.string(),locations:z.z.array(z.z.string()).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),delete:(0,m.A)(z.z.object({destinationId:z.z.string(),backupId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listArchives:(0,m.A)(z.z.object({destinationId:z.z.string()}),z.z.array(pr).readonly(),{auth:"admin"}),upsertDestinationPolicy:(0,m.A)(z.z.object({locationId:z.z.string(),enabled:z.z.boolean(),retentionCount:z.z.number().int().min(1).max(1e3),label:z.z.string().optional(),cron:z.z.string().optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),previewSchedule:(0,m.A)(z.z.object({cron:z.z.string(),count:z.z.number().int().min(1).max(20).optional()}),z.z.object({ok:z.z.boolean(),error:z.z.string().optional(),nextRuns:z.z.array(z.z.number()).readonly()})),listSchedules:(0,m.A)(z.z.void(),z.z.array(fr).readonly(),{auth:"admin"}),upsertSchedule:(0,m.A)(z.z.object({id:z.z.string().optional(),label:z.z.string(),cron:z.z.string(),enabled:z.z.boolean(),locationIds:z.z.array(z.z.string()).readonly(),retentionCount:z.z.number().int().min(1).max(1e3),dataSources:z.z.array(z.z.string()).readonly().optional()}),fr,{kind:"mutation",auth:"admin"}),deleteSchedule:(0,m.A)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"})}},hr=z.z.enum(["connected","disconnected","connecting","auth-failed","unreachable","error"]),Sr=z.z.object({id:z.z.string(),addonId:z.z.string(),name:z.z.string(),kind:z.z.string(),status:hr,info:z.z.record(z.z.string(),z.z.unknown()),lastCheckedAt:z.z.number().nullable(),error:z.z.string().nullable()}),jr=z.z.object({brokerCount:z.z.number().int().nonnegative(),connectedCount:z.z.number().int().nonnegative()}),kr=z.z.object({addonId:z.z.string(),kinds:z.z.array(z.z.object({kind:z.z.string(),label:z.z.string()}))}),Ir=z.z.object({kind:z.z.string().optional()}),Ar=z.z.object({id:z.z.string()}),Pr=z.z.object({kind:z.z.string().min(1),name:z.z.string().min(1),id:z.z.string().min(1).optional(),settings:z.z.record(z.z.string(),z.z.unknown())}),wr=z.z.object({id:z.z.string()}),Or=z.z.object({id:z.z.string()}),Cr=z.z.discriminatedUnion("ok",[z.z.object({ok:z.z.literal(!0),latencyMs:z.z.number().nonnegative()}),z.z.object({ok:z.z.literal(!1),error:z.z.string()})]),Nr=z.z.record(z.z.string(),z.z.unknown()),xr=z.z.object({kind:z.z.string()}),Mr=z.z.object({kind:z.z.string(),settings:Nr}),Er=z.z.discriminatedUnion("ok",[z.z.object({ok:z.z.literal(!0),latencyMs:z.z.number().nonnegative().optional()}).strict(),z.z.object({ok:z.z.literal(!1),error:z.z.string()})]),Tr=z.z.unknown().nullable(),Dr=z.z.object({brokerId:z.z.string(),target:z.z.record(z.z.string(),z.z.unknown()),payload:z.z.unknown().optional()}),Rr=z.z.object({brokerId:z.z.string(),filter:z.z.record(z.z.string(),z.z.unknown())}),Br=z.z.object({subscriptionId:z.z.string()}),Lr=z.z.object({brokerId:z.z.string(),subscriptionId:z.z.string()}),Fr=z.z.object({brokerId:z.z.string(),key:z.z.string()}),_r={name:"broker",scope:"system",mode:"collection",providerKind:"broker",status:{schema:jr,kind:"poll"},methods:{list:(0,m.A)(Ir,z.z.array(Sr)),get:(0,m.A)(Ar,Sr.nullable()),listProviders:(0,m.A)(z.z.void(),z.z.array(kr),{auth:"admin"}),add:(0,m.A)(Pr,wr,{kind:"mutation",auth:"admin"}),remove:(0,m.A)(Or,z.z.void(),{kind:"mutation",auth:"admin"}),testConnection:(0,m.A)(Ar,Cr,{kind:"mutation",auth:"admin"}),getSettings:(0,m.A)(Ar,Nr.nullable(),{auth:"admin"}),setSettings:(0,m.A)(z.z.object({id:z.z.string(),settings:Nr}),z.z.void(),{kind:"mutation",auth:"admin"}),getBrokerConfig:(0,m.A)(Ar,Nr.nullable(),{auth:"admin"}),getSettingsSchema:(0,m.A)(xr,Tr,{auth:"admin"}),testSettings:(0,m.A)(Mr,Er,{kind:"mutation",auth:"admin"}),publish:(0,m.A)(Dr,z.z.unknown(),{kind:"mutation",auth:"admin"}),subscribe:(0,m.A)(Rr,Br,{kind:"mutation",auth:"admin"}),unsubscribe:(0,m.A)(Lr,z.z.void(),{kind:"mutation",auth:"admin"}),getState:(0,m.A)(Fr,z.z.unknown().nullable()),getStatus:(0,m.A)(z.z.void(),jr)}},qr={name:"camera-pipeline-config",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],exposesDeviceSettings:!0,methods:{}},Ur=z.z.enum(["webrtc","hls","mjpeg","rtsp"]),$r=z.z.enum(["mp4","gif"]),Vr=z.z.object({kind:$r,handle:z.z.string(),nodeId:z.z.string(),mime:z.z.string(),bytes:z.z.number().int(),width:z.z.number().int(),height:z.z.number().int()}),Hr=z.z.object({fromTs:z.z.number(),toTs:z.z.number(),packets:z.z.number().int()}),Kr=z.z.object({media:z.z.array(Vr).readonly(),coverage:Hr,profile:m.G,video:z.z.enum(["copy","encode"])}),Wr=z.z.object({brokerId:z.z.string(),url:z.z.string(),mutedUrl:z.z.string(),enabled:z.z.boolean(),codec:z.z.string().optional(),resolution:z.z.object({width:z.z.number().int().positive(),height:z.z.number().int().positive()}).optional()}),Gr=z.z.object({sessionId:z.z.string(),remoteAddr:z.z.string(),userAgent:z.z.string().nullish(),playing:z.z.boolean(),muted:z.z.boolean(),connectedAt:z.z.number(),lastRtpAt:z.z.number(),bytesSent:z.z.number()}),Zr=z.z.object({tag:z.z.string(),subscribedAt:z.z.number(),maxFps:z.z.number(),framesDelivered:z.z.number(),framesDropped:z.z.number()}),Jr=z.z.object({tag:z.z.string(),subscribedAt:z.z.number(),chunksDelivered:z.z.number()}),Yr=z.z.enum(["alexa","homekit","webrtc-browser","webrtc-mobile","webrtc-whep","rtsp-listen","derived-broker","recording","pipeline","snapshot","warmup","unknown"]),Xr=z.z.object({kind:Yr,label:z.z.string().optional(),media:z.z.enum(["audio","video","both"]).optional(),targetCodec:z.z.string().optional(),transport:z.z.enum(["passthrough","repacketize","transcode"]).optional(),remoteAddr:z.z.string().optional(),userAgent:z.z.string().optional(),userId:z.z.string().optional(),sessionId:z.z.string().optional(),extra:z.z.record(z.z.string(),z.z.string()).optional()}).readonly(),Qr=z.z.object({id:z.z.string(),channel:z.z.enum(["annexb","rtp"]),attribution:Xr,subscribedAt:z.z.number(),packetsDelivered:z.z.number()}),eo=z.z.object({rtsp:z.z.array(Gr).readonly(),decoded:z.z.array(Zr).readonly(),audio:z.z.array(Jr).readonly(),encoded:z.z.array(Qr).readonly(),pipeClients:z.z.number(),encodedSubscribers:z.z.number()}),to=z.z.enum(["reconnecting","sleeping","offline","disabled","waking"]),no=z.z.enum(["h264","h265","copy"]),ao=z.z.enum(["aac","opus","pcmu","copy","none"]),ro=z.z.object({deviceId:z.z.number().int().nonnegative(),video:no,audio:ao.optional(),profile:m.G.optional(),targetResolution:z.z.object({width:z.z.number().int().positive(),height:z.z.number().int().positive()}).optional(),outputArgs:z.z.array(z.z.string()).optional(),audioEgress:z.z.boolean().optional(),hostname:z.z.string().optional(),tag:z.z.string().optional()}),oo=z.z.object({url:z.z.string(),videoCodec:z.z.enum(["H264","H265"]),audioCodec:z.z.string(),resolution:z.z.object({width:z.z.number().int().positive(),height:z.z.number().int().positive()}),transcoded:z.z.boolean(),encoder:z.z.string(),pipelineKey:z.z.string()}),io=k.omit({inputArgs:!0,outputArgs:!0}),co=z.z.enum(["tight","relaxed"]),so=z.z.object({deviceId:z.z.number().int().nonnegative(),source:z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("profile"),profile:m.G}),z.z.object({kind:z.z.literal("cam-stream"),camStreamId:z.z.string().min(1)})]),encode:io,rateControl:co.optional(),bitstreamFilter:z.z.enum(["dump_extra","h264_mp4toannexb","hevc_mp4toannexb"]).optional(),publishLocally:z.z.boolean().optional(),pixelFormat:z.z.enum(["yuv420p","nv12"]).optional(),decodeHwAccel:z.z.enum(["auto","none","videotoolbox","vaapi","qsv","cuda"]).optional(),hostname:z.z.string().optional(),tag:z.z.string().optional()}),lo=z.z.object({url:z.z.string(),pipelineKey:z.z.string(),videoCodec:z.z.enum(["H264","H265"]),resolution:z.z.object({width:z.z.number().int().positive(),height:z.z.number().int().positive()}),transcoded:z.z.boolean(),encoder:z.z.string(),decodeHwAccel:z.z.string().nullable(),camStreamId:z.z.string().nullable()}),uo={name:"stream-broker",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{publishCameraStream:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string().min(1),kind:m.K,url:z.z.string().optional(),codec:z.z.string().optional(),resolution:m.q.optional(),fps:z.z.number().positive().optional(),label:z.z.string().optional(),deviceFeatures:z.z.array(z.z.string()).optional(),autoEligible:z.z.boolean().optional(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional(),sourceCamStreamId:z.z.string().min(1).optional(),encodeProfile:k.optional()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),retractCameraStream:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string().min(1)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),assignProfile:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.G,camStreamId:z.z.string().min(1)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignProfile:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.G}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),renderPreBufferClip:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:m.G.optional(),aroundMs:z.z.number(),preRollSec:z.z.number().min(0).max(20).default(3),postRollSec:z.z.number().min(0).max(20).default(5),format:z.z.enum(["gif","mp4"]).default("gif"),maxWidth:z.z.number().int().min(120).max(1920).default(480),fps:z.z.number().int().min(1).max(15).default(5),speed:z.z.number().min(1).max(8).default(2)}),z.z.object({base64:z.z.string(),mime:z.z.string(),bytes:z.z.number().int(),profile:m.G,durationMs:z.z.number()}),{kind:"mutation",auth:"admin"}),produceEventMedia:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:m.G.optional(),aroundMs:z.z.number(),preSeconds:z.z.number().min(0).max(20).default(4),postSeconds:z.z.number().min(0).max(20).default(6),kinds:z.z.array($r).min(1).default(["mp4"]),gifMaxWidth:z.z.number().int().min(120).max(1280).default(640),gifFps:z.z.number().int().min(1).max(15).default(12),gifSpeed:z.z.number().min(1).max(8).default(4),speed:z.z.number().min(1).max(8).default(4)}),Kr,{kind:"mutation",auth:"admin"}),fetchEventMedia:(0,m.A)(z.z.object({handle:z.z.string()}),z.z.object({base64:z.z.string(),mime:z.z.string(),bytes:z.z.number().int()}).nullable(),{kind:"mutation",auth:"admin"}),listAllCameraStreams:(0,m.A)(z.z.void(),z.z.array(m.J).readonly()),listAllProfileSlots:(0,m.A)(z.z.void(),z.z.array(m.tt).readonly()),getBrokerStats:(0,m.A)(z.z.object({brokerId:z.z.string()}),m.H),probeStream:(0,m.A)(z.z.object({brokerId:z.z.string()}),z.z.object({probed:z.z.boolean(),summary:z.z.string()}),{kind:"mutation",auth:"admin"}),listClients:(0,m.A)(z.z.object({brokerId:z.z.string()}),eo),killClient:(0,m.A)(z.z.object({brokerId:z.z.string(),channel:z.z.enum(["rtsp","decoded","audio"]),handle:z.z.string()}),z.z.object({killed:z.z.boolean()}),{kind:"mutation",auth:"admin"}),restartProfile:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.G}),z.z.object({success:z.z.boolean()}),{kind:"mutation",auth:"admin"}),getStreamUrl:(0,m.A)(z.z.object({streamId:z.z.string(),format:Ur}),z.z.object({url:z.z.string()})),getStreamWithCodec:(0,m.A)(ro,oo,{kind:"mutation",auth:"admin"}),releaseStreamWithCodec:(0,m.A)(z.z.object({pipelineKey:z.z.string()}),z.z.object({released:z.z.boolean(),refcount:z.z.number().int().nonnegative()}),{kind:"mutation",auth:"admin"}),acquireEgressTranscode:(0,m.A)(so,lo,{kind:"mutation",auth:"admin"}),releaseEgressTranscode:(0,m.A)(z.z.object({pipelineKey:z.z.string()}),z.z.object({released:z.z.boolean(),refcount:z.z.number().int().nonnegative()}),{kind:"mutation",auth:"admin"}),subscribeAudioChunks:(0,m.A)(m.at,m.ot,{kind:"mutation"}),pullAudioChunks:(0,m.A)(z.z.object({subscriptionId:z.z.string(),maxCount:z.z.number().int().positive().default(8)}),z.z.array(m.Y).readonly()),unsubscribeAudioChunks:(0,m.A)(z.z.object({subscriptionId:z.z.string()}),z.z.object({released:z.z.boolean()}),{kind:"mutation"}),subscribeFrames:(0,m.A)(m.st,m.ct,{kind:"mutation"}),pullFrameHandles:(0,m.A)(z.z.object({subscriptionId:z.z.string(),maxCount:z.z.number().int().positive().default(4)}),z.z.array(m.$).readonly()),unsubscribeFrames:(0,m.A)(z.z.object({subscriptionId:z.z.string()}),z.z.object({released:z.z.boolean()}),{kind:"mutation"}),setPreBufferDuration:(0,m.A)(z.z.object({brokerId:z.z.string(),seconds:z.z.number().min(0).max(30)}),z.z.void(),{kind:"mutation",auth:"admin"}),getPreBufferInfo:(0,m.A)(z.z.object({brokerId:z.z.string()}),z.z.object({configuredSec:z.z.number(),bufferedMs:z.z.number(),packetCount:z.z.number()})),getRtspPort:(0,m.A)(z.z.void(),z.z.number()),getAllRtspEntries:(0,m.A)(z.z.object({hostname:z.z.string().optional()}),z.z.array(Wr).readonly()),getRtspEntry:(0,m.A)(z.z.object({brokerId:z.z.string(),hostname:z.z.string().optional()}),Wr.nullable()),regenerateRtspToken:(0,m.A)(z.z.object({brokerId:z.z.string()}),z.z.string().nullable(),{kind:"mutation",auth:"admin"}),setRtspEnabled:(0,m.A)(z.z.object({brokerId:z.z.string(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),isRtspEnabled:(0,m.A)(z.z.object({brokerId:z.z.string()}),z.z.boolean()),getDeviceAudioMute:(0,m.A)(z.z.object({deviceId:z.z.number().int()}),z.z.object({muted:z.z.boolean(),appliedBrokers:z.z.number().int().nonnegative()})),setDeviceAudioMute:(0,m.A)(z.z.object({deviceId:z.z.number().int(),muted:z.z.boolean()}),z.z.object({muted:z.z.boolean(),appliedBrokers:z.z.number().int().nonnegative()}),{kind:"mutation",auth:"admin"})},events:{onCamStreamDemand:(0,m.D)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string(),profile:m.G})),onCamStreamIdle:(0,m.D)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string()})),onRequestStreamSourceRefresh:(0,m.D)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string(),brokerId:z.z.string()}))}},mo=z.z.enum(["h264","h265","hevc","av1","mjpeg","vp8","vp9"]),po=z.z.object({acceptCodecs:z.z.array(mo).readonly().optional(),minHeight:z.z.number().int().positive().optional(),minWidth:z.z.number().int().positive().optional(),excludeDerived:z.z.boolean().optional(),requireSiblingCodec:z.z.array(mo).readonly().optional()}).readonly(),bo=z.z.object({preferredProviders:z.z.array(z.z.string()).readonly().optional(),resolutionPreference:z.z.enum(["highest","lowest"]).optional()}).readonly(),go=z.z.object({camStreamId:z.z.string(),codec:z.z.string().optional(),resolution:m.q.optional(),reason:z.z.string()}),zo={name:"camera-streams",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],methods:{getCameraStreams:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(m.J).readonly()),getBrokerStreams:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(m.tt).readonly()),getRtspEntries:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),hostname:z.z.string().optional()}),z.z.array(Wr).readonly()),getProfileRtspEntries:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),hostname:z.z.string().optional()}),z.z.array(m.et).readonly()),pickStream:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),requirements:po,preferences:bo.optional()}),go.nullable())},events:{onCamStreamsChanged:(0,m.D)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreams:z.z.array(m.J).readonly()})),onProfileSlotsChanged:(0,m.D)(z.z.object({deviceId:z.z.number().int().nonnegative(),profileSlots:z.z.array(m.tt).readonly()}))},runtimeState:z.z.object({online:z.z.boolean(),slotStatuses:z.z.object({high:m.nt.optional(),mid:m.nt.optional(),low:m.nt.optional()}),slotErrors:z.z.object({high:z.z.string().optional(),mid:z.z.string().optional(),low:z.z.string().optional()}),lastChangedAt:z.z.number()})};function yo(e){const t=e._def;return"ZodVoid"===e.constructor?.name||"void"===t?.type||"ZodVoid"===t?.typeName}function fo(e){const t=e._def;return"ZodObject"===e.constructor?.name||"object"===t?.type||"ZodObject"===t?.typeName}function vo(e){let t=e;for(let e=0;e<8&&null!=t;e+=1){const e=t._def,n=t.constructor?.name;if("ZodArray"===n||"array"===e?.type)return!0;if("ZodReadonly"!==n&&"readonly"!==e?.type&&"ZodOptional"!==n&&"optional"!==e?.type&&"ZodNullable"!==n&&"nullable"!==e?.type&&"ZodDefault"!==n&&"default"!==e?.type||null==e?.innerType)return!1;t=e.innerType}return!1}function ho(e,t){if(void 0===e||"collection"!==e.mode)return!1;const n=(0,m.O)(e)[t];return void 0!==n&&"subscription"!==n.kind&&vo(n.output)}function So(e){const t=e.loose;return"function"==typeof t?t.call(e):e}function jo(e){if(null!==e&&"object"==typeof e)for(const t of Object.values(e))if(null!==t&&"object"==typeof t){const e=t.addonId;if("string"==typeof e)return e}}function ko(e){if(null===e||"object"!=typeof e&&"function"!=typeof e)return!1;const t=e.shape,n=null!=t?t:(a=e._def?.shape,"function"==typeof a?a():a);var a;return null!=n&&"object"==typeof n&&Object.prototype.hasOwnProperty.call(n,"addonId")}function Io(e){return"public"===e?"public":"admin"===e||"superAdmin"===e?"admin":"protected"}function Ao(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}var Po="core-block-",wo="core-blocks";function Oo(e){return`${Po}${e}`}function Co(e){if(!e.startsWith("core-block-"))return null;const t=e.slice(11);return t.length>0?t:null}var No=z.z.union([z.z.literal("hub"),z.z.string().min(1)]),xo=z.z.enum(["stopped","starting","running","failed"]),Mo=z.z.object({name:z.z.string().min(1).max(120),code:z.z.string().max(2e5),enabled:z.z.boolean(),placement:No,integrationId:z.z.string().optional()}),Eo=Mo.extend({id:z.z.string(),createdAt:z.z.number(),updatedAt:z.z.number(),createdBy:z.z.string(),status:xo,lastError:z.z.string().optional(),lastChangedAt:z.z.number()}),To=z.z.object({ok:z.z.boolean(),error:z.z.string().optional(),line:z.z.number().optional(),column:z.z.number().optional()}),Do={name:"core-blocks",scope:"system",mode:"singleton",methods:{list:(0,m.A)(z.z.object({}),z.z.object({blocks:z.z.array(Eo)}),{auth:"admin"}),get:(0,m.A)(z.z.object({blockId:z.z.string()}),z.z.object({block:Eo.nullable()}),{auth:"admin"}),create:(0,m.A)(z.z.object({block:Mo}),z.z.object({block:Eo}),{kind:"mutation",auth:"admin",caller:"required"}),update:(0,m.A)(z.z.object({blockId:z.z.string(),block:Mo.partial()}),z.z.object({block:Eo}),{kind:"mutation",auth:"admin",caller:"required"}),delete:(0,m.A)(z.z.object({blockId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setEnabled:(0,m.A)(z.z.object({blockId:z.z.string(),enabled:z.z.boolean()}),z.z.object({block:Eo}),{kind:"mutation",auth:"admin"}),restart:(0,m.A)(z.z.object({blockId:z.z.string()}),z.z.object({block:Eo}),{kind:"mutation",auth:"admin"}),compile:(0,m.A)(z.z.object({code:z.z.string()}),To,{kind:"mutation",auth:"admin"}),getTypeDefs:(0,m.A)(z.z.object({}),z.z.object({libs:z.z.array(z.z.object({filePath:z.z.string(),content:z.z.string()}))}),{auth:"admin"})}};function Ro(e){return e}function Bo(e,t,n){return Object.assign({input:e,output:t,kind:n?.kind??"query",auth:n?.auth??"protected",scope:n?.scope??{kind:"system"}},n?.caller?{caller:"required"}:{})}function Lo(e,t,n){return{input:e,output:t,kind:n?.kind??"query",auth:n?.auth??"protected",scope:Object.assign({kind:"device"},n?.deviceTypes?{deviceTypes:n.deviceTypes}:{})}}var Fo=z.z.object({stepId:z.z.string(),entry:Lt}),_o={name:"custom-model-registry",scope:"system",mode:"collection",internal:!0,methods:{listModels:(0,m.A)(z.z.void(),z.z.array(Fo).readonly())}},qo=z.z.object({where:z.z.record(z.z.string(),z.z.unknown()).optional(),whereIn:z.z.record(z.z.string(),z.z.array(z.z.unknown())).optional(),whereBetween:z.z.record(z.z.string(),z.z.tuple([z.z.unknown(),z.z.unknown()])).optional(),orderBy:z.z.object({field:z.z.string(),direction:z.z.enum(["asc","desc"])}).optional(),limit:z.z.number().optional(),offset:z.z.number().optional()}),Uo=z.z.object({where:z.z.record(z.z.string(),z.z.unknown()).optional(),whereIn:z.z.record(z.z.string(),z.z.array(z.z.unknown())).optional(),whereBetween:z.z.record(z.z.string(),z.z.tuple([z.z.unknown(),z.z.unknown()])).optional()}),$o=z.z.object({id:z.z.string(),data:z.z.record(z.z.string(),z.z.unknown())}),Vo=z.z.object({name:z.z.string(),type:z.z.enum(["TEXT","INTEGER","REAL","JSON","BOOLEAN"]),primaryKey:z.z.boolean().optional(),notNull:z.z.boolean().optional(),unique:z.z.boolean().optional(),defaultValue:z.z.union([z.z.string(),z.z.number(),z.z.boolean()]).optional()}),Ho=z.z.object({name:z.z.string(),columns:z.z.array(z.z.string()).readonly(),unique:z.z.boolean().optional()}),Ko={name:"settings-store",scope:"system",mode:"singleton",methods:{get:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.unknown()),set:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string(),value:z.z.unknown()}),z.z.void(),{kind:"mutation"}),query:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:qo.optional()}),z.z.array($o).readonly()),insert:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),record:$o}),z.z.void(),{kind:"mutation"}),update:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),id:z.z.string(),data:z.z.record(z.z.string(),z.z.unknown())}),z.z.void(),{kind:"mutation"}),delete:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.void(),{kind:"mutation"}),deleteWhere:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:Uo}),z.z.object({deleted:z.z.number().int()}),{kind:"mutation"}),updateWhere:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:Uo,data:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({updated:z.z.number().int()}),{kind:"mutation"}),count:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:qo.optional()}),z.z.number()),histogram:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),field:z.z.string(),bucketSize:z.z.number().int().positive(),origin:z.z.number().int(),filter:qo.optional()}),z.z.array(z.z.object({bucket:z.z.number().int(),count:z.z.number().int()})).readonly()),isEmpty:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string()}),z.z.boolean()),declareCollection:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),columns:z.z.array(Vo).readonly(),indexes:z.z.array(Ho).readonly().optional()}),z.z.void(),{kind:"mutation"})}},Wo=z.z.object({engineId:z.z.string(),kind:z.z.enum(["relational","vector"]),displayName:z.z.string()}),Go={name:"data-store-provider",scope:"system",mode:"collection",internal:!0,methods:{getEngineInfo:(0,m.A)(z.z.void(),Wo),get:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.unknown()),set:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string(),value:z.z.unknown()}),z.z.void(),{kind:"mutation"}),query:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:qo.optional()}),z.z.array($o).readonly()),insert:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),record:$o}),z.z.void(),{kind:"mutation"}),update:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),id:z.z.string(),data:z.z.record(z.z.string(),z.z.unknown())}),z.z.void(),{kind:"mutation"}),delete:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.void(),{kind:"mutation"}),deleteWhere:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:Uo}),z.z.object({deleted:z.z.number().int()}),{kind:"mutation"}),updateWhere:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:Uo,data:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({updated:z.z.number().int()}),{kind:"mutation"}),count:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:qo.optional()}),z.z.number()),histogram:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),field:z.z.string(),bucketSize:z.z.number().int().positive(),origin:z.z.number().int(),filter:qo.optional()}),z.z.array(z.z.object({bucket:z.z.number().int(),count:z.z.number().int()})).readonly()),isEmpty:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string()}),z.z.boolean()),declareCollection:(0,m.A)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),columns:z.z.array(Vo).readonly(),indexes:z.z.array(Ho).readonly().optional()}),z.z.void(),{kind:"mutation"})}},Zo=[{value:"auto",label:"Auto (defer to probed best)"},{value:"none",label:"Off (software)"},{value:"videotoolbox",label:"VideoToolbox (macOS)"},{value:"cuda",label:"CUDA (NVIDIA)"},{value:"nvdec",label:"NVDEC (NVIDIA legacy)"},{value:"vaapi",label:"VAAPI (Linux Intel/AMD)"},{value:"qsv",label:"QuickSync (Intel)"},{value:"d3d11va",label:"D3D11VA (Windows)"},{value:"dxva2",label:"DXVA2 (Windows legacy)"},{value:"amf",label:"AMF (AMD)"},{value:"vdpau",label:"VDPAU (Linux NVIDIA legacy)"},{value:"drm",label:"DRM (Linux generic)"}],Jo={hwaccel:"auto",probedBestHwaccel:""},Yo=z.z.object({sessionId:z.z.string(),slotCount:z.z.number().int(),slotByteLength:z.z.number().int(),segmentBytes:z.z.number().int(),budgetMb:z.z.number().int(),framesWritten:z.z.number().int(),getFrameHits:z.z.number().int(),getFrameMisses:z.z.number().int()}),Xo={name:"decoder",scope:"system",mode:"singleton",preferredProvider:"decoder-nodeav",methods:{supportsCodec:(0,m.A)(z.z.object({codec:z.z.string()}),z.z.boolean()),getInfo:(0,m.A)(z.z.void(),z.z.object({id:z.z.string(),name:z.z.string(),isPullMode:z.z.boolean().optional(),priority:z.z.number().optional(),hwaccel:z.z.string().optional(),probedBestHwaccel:z.z.string().optional()})),createSession:(0,m.A)(gt,z.z.object({sessionId:z.z.string(),nodeId:z.z.string()})),destroySession:(0,m.A)(z.z.object({sessionId:z.z.string()}),z.z.void()),pushPacket:(0,m.A)(z.z.object({sessionId:z.z.string(),packet:m.Z}),z.z.void()),openStream:(0,m.A)(z.z.object({sessionId:z.z.string(),url:z.z.string()}),z.z.void()),pullFrames:(0,m.A)(z.z.object({sessionId:z.z.string(),maxCount:z.z.number().default(1),waitMs:z.z.number().optional()}),z.z.array(m.X)),pullHandles:(0,m.A)(z.z.object({sessionId:z.z.string(),maxCount:z.z.number().default(1),waitMs:z.z.number().optional()}),z.z.array(m.$)),getFrame:(0,m.A)(z.z.object({handle:m.$}),m.X.nullable()),getShmStats:(0,m.A)(z.z.object({sessionId:z.z.string()}),Yo.nullable()),updateConfig:(0,m.A)(z.z.object({sessionId:z.z.string(),config:gt.partial()}),z.z.void()),getStats:(0,m.A)(z.z.object({sessionId:z.z.string()}),bt),listActiveSessions:(0,m.A)(z.z.void(),z.z.array(z.z.object({sessionId:z.z.string(),codec:z.z.string(),outputFormat:z.z.string(),createdAtMs:z.z.number()})).readonly()),reprobeHwaccel:(0,m.A)(z.z.void(),z.z.object({backend:z.z.string()}),{kind:"mutation",auth:"admin"})}},Qo={name:"detection-pipeline",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],exposesDeviceSettings:!0,methods:{}},ei=z.z.object({id:z.z.string(),system:z.z.string(),uniqueId:z.z.string().optional(),raw:z.z.record(z.z.string(),z.z.unknown()).optional()});function ti(e){return{id:e.stableId,system:e.addonId}}function ni(e,t){const n=Object.assign({},e);for(const[a,r]of Object.entries(t))void 0!==r&&("raw"!==a||"object"!=typeof r||null===r?n[a]=r:n.raw=Object.assign({},e.raw,r));return n}function ai(e){if(null==e)return;const t=e.trim();if(""===t)return;const n=t.toLowerCase();return"\xb0c"===n||"c"===n||"celsius"===n?"\xb0C":"\xb0f"===n||"f"===n||"fahrenheit"===n?"\xb0F":"k"===n||"kelvin"===n?"K":"%"===n||"percent"===n||"percentage"===n?"%":"lx"===n||"lux"===n?"lx":"hpa"===n||"hectopascal"===n?"hPa":"kpa"===n?"kPa":"pa"===n?"Pa":"mbar"===n||"millibar"===n?"mbar":"w"===n||"watt"===n?"W":"kw"===n||"kilowatt"===n?"kW":"wh"===n||"watt-hour"===n?"Wh":"kwh"===n||"kilowatt-hour"===n?"kWh":"v"===n||"volt"===n?"V":"a"===n||"amp"===n||"ampere"===n?"A":"ma"===n||"milliampere"===n?"mA":"va"===n?"VA":"ppm"===n?"ppm":"ppb"===n?"ppb":"\xb5g/m\xb3"===n||"ug/m3"===n||"\xb5g/m3"===n?"\xb5g/m\xb3":"km/h"===n||"kph"===n?"km/h":"mph"===n?"mph":"m/s"===n?"m/s":"m"===n?"m":"km"===n?"km":"kg"===n?"kg":"g"===n?"g":t}var ri="sourceInfo";function oi(e){if(!e)return null;const t=e[ri];if(!t)return null;const n=ei.safeParse(t);return n.success?n.data:null}var ii=z.z.enum(["online","sleeping","offline","unknown"]),ci=z.z.lazy(()=>z.z.object({childNativeId:z.z.string(),name:z.z.string(),type:z.z.enum(m.C),status:ii,metadata:z.z.object({model:z.z.string().optional(),serialNumber:z.z.string().optional(),uid:z.z.string().optional(),rtspChannel:z.z.number().int().nonnegative().optional(),isBattery:z.z.boolean().optional(),isDoorbell:z.z.boolean().optional(),isMultifocal:z.z.boolean().optional(),externalLocation:z.z.string().optional(),manufacturer:z.z.string().optional(),integration:z.z.string().optional()}).default({}),alreadyAdopted:z.z.boolean(),adoptedDeviceId:z.z.number().int().nonnegative().nullable(),capabilities:z.z.array(z.z.string()).readonly().optional(),features:z.z.array(z.z.string()).readonly().optional(),sourceInfo:ei.optional(),children:z.z.array(ci).readonly().optional()})),si=z.z.object({discovered:z.z.array(ci),lastDiscoveryAt:z.z.number().int().nonnegative().nullable(),lastError:z.z.string().nullable()}),di={name:"device-discovery",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Hub],status:{schema:si,kind:"poll"},runtimeState:si.extend({lastFetchedAt:z.z.number().int().nonnegative()}),methods:{listDiscovered:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(ci).readonly()),refreshDiscovery:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(ci).readonly(),{kind:"mutation",auth:"admin"}),adoptDevice:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),childNativeId:z.z.string(),name:z.z.string().optional()}),z.z.object({deviceId:z.z.number().int().nonnegative(),stableId:z.z.string()}),{kind:"mutation",auth:"admin"}),releaseDevice:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),childDeviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})}},li=z.z.object({id:z.z.string(),label:z.z.string(),isDefault:z.z.boolean().optional()}),ui=z.z.object({search:z.z.string().optional(),area:z.z.string().optional(),manufacturer:z.z.string().optional(),adoptedOnly:z.z.boolean().optional(),unadoptedOnly:z.z.boolean().optional()}),mi=z.z.object({integrationId:z.z.string(),page:z.z.number().int().positive().default(1),pageSize:z.z.number().int().positive().max(2e4).default(50),filter:z.z.string().optional(),filterText:ui.optional()}),pi=z.z.object({candidates:z.z.array(ci).readonly(),totalCount:z.z.number().int().nonnegative(),page:z.z.number().int().positive(),pageSize:z.z.number().int().positive()}),bi=z.z.object({integrationId:z.z.string(),childNativeId:z.z.string()}),gi=z.z.object({lastDiscoveryAt:z.z.number().int().nonnegative().nullable(),candidateCount:z.z.number().int().nonnegative(),adoptedCount:z.z.number().int().nonnegative(),lastError:z.z.string().nullable()}),zi=z.z.object({name:z.z.string().min(1).optional(),hiddenChildIds:z.z.array(z.z.string()).optional()}),yi=z.z.object({integrationId:z.z.string(),childNativeIds:z.z.array(z.z.string()).min(1),filter:z.z.string().optional(),importLocations:z.z.boolean().optional(),perCandidate:z.z.record(z.z.string(),zi).optional()}),fi=z.z.object({adopted:z.z.array(z.z.object({childNativeId:z.z.string(),parentDeviceId:z.z.number().int().nonnegative(),accessoryDeviceIds:z.z.array(z.z.number().int().nonnegative()).readonly()})).readonly()}),vi=z.z.object({integrationId:z.z.string(),camDeviceId:z.z.number().int().nonnegative()}),hi=z.z.object({camDeviceId:z.z.number().int().nonnegative(),resetToSource:z.z.boolean().optional()}),Si=z.z.object({changed:z.z.boolean(),rebuiltChildren:z.z.number().int().nonnegative(),removedChildren:z.z.number().int().nonnegative().optional()}),ji={name:"device-adoption",scope:"system",mode:"singleton",status:{schema:gi,kind:"poll"},methods:{listCandidateFilters:(0,m.A)(z.z.object({integrationId:z.z.string()}),z.z.object({filters:z.z.array(li)}),{auth:"admin"}),listCandidates:(0,m.A)(mi,pi,{auth:"admin"}),getCandidate:(0,m.A)(bi,ci.nullable(),{auth:"admin"}),refresh:(0,m.A)(z.z.object({integrationId:z.z.string()}),gi,{kind:"mutation",auth:"admin"}),adopt:(0,m.A)(yi,fi,{kind:"mutation",auth:"admin"}),release:(0,m.A)(vi,z.z.void(),{kind:"mutation",auth:"admin"}),resync:(0,m.A)(hi,Si,{kind:"mutation",auth:"admin"})}},ki=z.z.enum(["unlinked","linked","error"]),Ii=z.z.object({label:z.z.string(),value:z.z.string(),secret:z.z.boolean().optional()}),Ai=z.z.object({qr:z.z.string().optional(),fields:z.z.array(Ii).readonly().optional(),note:z.z.string().optional()}),Pi=z.z.object({linkState:ki,exposedDeviceCount:z.z.number(),error:z.z.string().optional(),setup:Ai.optional()}),wi=z.z.string(),Oi=z.z.object({deviceId:z.z.string(),exposedAs:z.z.string().optional(),capabilities:z.z.array(z.z.string()).optional()}),Ci=z.z.object({deviceId:z.z.string(),capabilities:z.z.array(z.z.string()).optional()}),Ni=z.z.object({deviceId:z.z.string()}),xi={name:"device-export",scope:"system",mode:"collection",providerKind:"device-export",status:{schema:Pi,kind:"poll"},exposesDeviceSettings:!0,methods:{getStatus:(0,m.A)(z.z.void(),Pi),listSupportedDeviceKinds:(0,m.A)(z.z.void(),z.z.array(wi)),listExposedDevices:(0,m.A)(z.z.void(),z.z.array(Oi)),exposeDevice:(0,m.A)(Ci,z.z.void(),{kind:"mutation"}),unexposeDevice:(0,m.A)(Ni,z.z.void(),{kind:"mutation"})}},Mi=z.z.object({connected:z.z.boolean(),deviceCount:z.z.number(),error:z.z.string().optional()}),Ei=z.z.object({externalId:z.z.string(),name:z.z.string(),type:z.z.string(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional()}),Ti=z.z.object({stableId:z.z.string(),type:z.z.enum(m.C),suggestedName:z.z.string(),prefilledConfig:z.z.record(z.z.string(),z.z.unknown()),sourceInfo:ei.optional()}),Di=z.z.object({id:z.z.number(),stableId:z.z.string(),addonId:z.z.string(),type:z.z.string(),name:z.z.string(),parentDeviceId:z.z.number().nullable(),online:z.z.boolean(),features:z.z.array(z.z.string()),config:z.z.record(z.z.string(),z.z.unknown()),sourceInfo:ei.optional()}),Ri=z.z.object({status:z.z.enum(["ok","error"]),labels:z.z.array(z.z.string()).optional(),error:z.z.string().optional()}),Bi=z.z.unknown(),Li={name:"device-provider",scope:"system",mode:"collection",methods:{start:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation"}),stop:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation"}),getStatus:(0,m.A)(z.z.void(),Mi),getDevices:(0,m.A)(z.z.void(),z.z.array(z.z.object({id:z.z.string(),name:z.z.string(),type:z.z.string()}))),supportsDiscovery:(0,m.A)(z.z.object({}),z.z.boolean()),discoverDevices:(0,m.A)(z.z.object({params:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.array(Ti),{kind:"mutation",auth:"admin"}),getDiscoveryParamsSchema:(0,m.A)(z.z.object({}),Bi),getManualCreationType:(0,m.A)(z.z.object({}),z.z.object({deviceType:z.z.enum(m.C).nullable()})),adoptDiscoveredDevice:(0,m.A)(z.z.object({candidate:Ti}),Di,{kind:"mutation",auth:"admin"}),supportsManualCreation:(0,m.A)(z.z.object({}),z.z.boolean()),getChildCreationSchema:(0,m.A)(z.z.object({type:z.z.enum(m.C)}),Bi),createDevice:(0,m.A)(z.z.object({type:z.z.enum(m.C),config:z.z.record(z.z.string(),z.z.unknown())}),Di,{kind:"mutation",auth:"admin"}),testCreationField:(0,m.A)(z.z.object({type:z.z.enum(m.C),key:z.z.string(),value:z.z.unknown(),formValues:z.z.record(z.z.string(),z.z.unknown()).optional()}),Ri,{kind:"mutation",auth:"admin"})}},Fi=z.z.object({childKey:z.z.string(),section:z.z.string(),order:z.z.number().optional(),collapsed:z.z.boolean().optional()}),_i=z.z.object({unit:z.z.string().min(1).optional(),precision:z.z.number().int().min(0).max(10).optional()}),qi=z.z.object({icon:z.z.string().min(1).optional(),label:z.z.string().min(1).optional(),unit:z.z.string().min(1).optional(),precision:z.z.number().int().min(0).max(10).optional(),hidden:z.z.boolean().optional(),perCap:z.z.record(z.z.string(),_i).optional()}),Ui=z.z.object({unit:z.z.string().min(1).optional(),precision:z.z.number().int().min(0).max(10).optional(),icon:z.z.string().min(1).optional()}),$i=z.z.object({id:z.z.number(),stableId:z.z.string(),addonId:z.z.string(),type:z.z.enum(m.C),name:z.z.string(),location:z.z.string().nullable(),disabled:z.z.boolean(),parentDeviceId:z.z.number().nullable(),role:z.z.string().nullable().optional(),online:z.z.boolean(),probed:z.z.boolean().optional(),features:z.z.array(z.z.string()),isCamera:z.z.boolean(),config:z.z.record(z.z.string(),z.z.unknown()),metadata:z.z.record(z.z.string(),z.z.unknown()).nullable().optional(),sourceInfo:ei.optional(),integrationId:z.z.string().optional(),linkDeviceId:z.z.number().nullable().optional(),primaryChildEntityId:z.z.string().nullable().optional(),childLayout:z.z.array(Fi).readonly().optional(),display:qi.optional()}),Vi=z.z.object({key:z.z.string(),value:z.z.unknown(),description:z.z.string().optional()}),Hi=z.z.enum(["auto","manual"]),Ki=z.z.object({deviceId:z.z.number(),name:z.z.string(),location:z.z.string().nullable(),features:z.z.array(z.z.string()),producesTrackedEvents:z.z.boolean().optional()}),Wi=z.z.object({id:z.z.number(),stableId:z.z.string(),type:z.z.string(),name:z.z.string(),location:z.z.string().nullable(),disabled:z.z.boolean(),parentDeviceId:z.z.number().nullable(),role:z.z.string().nullable().optional()}),Gi=z.z.object({id:z.z.number(),stableId:z.z.string(),addonId:z.z.string(),type:z.z.string(),name:z.z.string(),userNamed:z.z.boolean().optional(),location:z.z.string().nullable(),disabled:z.z.boolean(),parentDeviceId:z.z.number().nullable(),metadata:z.z.record(z.z.string(),z.z.unknown()).nullable().optional(),sourceInfo:ei.optional(),integrationId:z.z.string().optional(),linkDeviceId:z.z.number().nullable().optional(),primaryChildEntityId:z.z.string().nullable().optional(),childLayout:z.z.array(Fi).readonly().optional(),role:z.z.string().nullable().optional(),display:qi.optional()}),Zi=z.z.unknown().nullable(),Ji=z.z.object({streamId:z.z.string(),width:z.z.number().optional(),height:z.z.number().optional(),codec:z.z.string().optional(),fps:z.z.number().optional(),bitrateKbps:z.z.number().optional()}),Yi=z.z.object({addonId:z.z.string(),stableId:z.z.string(),id:z.z.number(),type:z.z.string(),name:z.z.string(),location:z.z.string().nullable().optional(),disabled:z.z.boolean().optional(),parentDeviceId:z.z.number().nullable(),role:z.z.string().nullable().optional(),features:z.z.array(z.z.string()).optional(),config:z.z.record(z.z.string(),z.z.unknown())}),Xi=z.z.object({deviceId:z.z.number()}),Qi=z.z.object({deviceId:z.z.number(),data:z.z.record(z.z.string(),z.z.unknown())}),ec={name:"device-manager",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{allocateDeviceId:(0,m.A)(z.z.object({addonId:z.z.string(),stableId:z.z.string()}),z.z.object({id:z.z.number()}),{kind:"mutation"}),registerDevice:(0,m.A)(Yi,z.z.void(),{kind:"mutation"}),removeDevice:(0,m.A)(Xi,z.z.void(),{kind:"mutation"}),persistConfig:(0,m.A)(Qi,z.z.void(),{kind:"mutation"}),loadConfig:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.unknown())),loadRuntimeState:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.unknown())),loadMeta:(0,m.A)(z.z.object({deviceId:z.z.number()}),Gi.nullable()),setName:(0,m.A)(z.z.object({deviceId:z.z.number(),name:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),setLocation:(0,m.A)(z.z.object({deviceId:z.z.number(),location:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),setType:(0,m.A)(z.z.object({deviceId:z.z.number(),type:z.z.enum(m.C)}),z.z.void(),{kind:"mutation",auth:"admin"}),setIntegrationId:(0,m.A)(z.z.object({deviceId:z.z.number(),integrationId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),setLinkDeviceId:(0,m.A)(z.z.object({deviceId:z.z.number(),linkDeviceId:z.z.number().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),setPrimaryChildEntityId:(0,m.A)(z.z.object({deviceId:z.z.number(),primaryChildEntityId:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),setChildLayout:(0,m.A)(z.z.object({deviceId:z.z.number(),childLayout:z.z.array(Fi).readonly()}),z.z.void(),{kind:"mutation",auth:"admin"}),setDisplay:(0,m.A)(z.z.object({deviceId:z.z.number(),display:qi.nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),getRoleDisplayDefaults:(0,m.A)(z.z.object({}),z.z.object({defaults:z.z.record(z.z.string(),Ui)}),{kind:"query"}),setRoleDisplayDefaults:(0,m.A)(z.z.object({defaults:z.z.record(z.z.string(),Ui)}),z.z.void(),{kind:"mutation",auth:"admin"}),getWireableFields:(0,m.A)(z.z.object({deviceId:z.z.number(),includeSynthesizable:z.z.boolean().optional()}),z.z.object({caps:z.z.array(z.z.object({cap:z.z.string(),fields:z.z.array(z.z.object({path:z.z.string(),kind:z.z.enum(["string","number","boolean","enum"]),enumValues:z.z.array(z.z.string()).optional(),item:z.z.boolean().optional()})).readonly(),itemArray:z.z.object({path:z.z.string(),keyField:z.z.string()}).optional()})).readonly()}),{kind:"query"}),setRole:(0,m.A)(z.z.object({deviceId:z.z.number(),role:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),applyInitialMeta:(0,m.A)(z.z.object({deviceId:z.z.number(),name:z.z.string().optional(),location:z.z.string().nullable().optional(),type:z.z.enum(m.C).optional(),integrationId:z.z.string().optional(),linkDeviceId:z.z.number().nullable().optional(),role:z.z.string().nullable().optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),setMetadata:(0,m.A)(z.z.object({deviceId:z.z.number(),patch:z.z.record(z.z.string(),z.z.unknown())}),z.z.void(),{kind:"mutation",auth:"admin"}),listLocations:(0,m.A)(z.z.void(),z.z.array(z.z.string())),addLocation:(0,m.A)(z.z.object({name:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),removeLocation:(0,m.A)(z.z.object({name:z.z.string(),cascade:z.z.boolean().optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),setDisabled:(0,m.A)(z.z.object({deviceId:z.z.number(),disabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),listPersistedByAddon:(0,m.A)(z.z.object({addonId:z.z.string()}),z.z.array(Wi)),listAll:(0,m.A)(z.z.object({addonId:z.z.string().optional(),projection:z.z.enum(["full","slim"]).optional(),isCamera:z.z.boolean().optional()}),z.z.array($i)),getDevice:(0,m.A)(z.z.object({deviceId:z.z.number()}),$i.nullable()),getChildren:(0,m.A)(z.z.object({parentDeviceId:z.z.number()}),z.z.array($i)),getLinkedDevices:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({mode:Hi,devices:z.z.array(Ki)})),getStreamSources:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(m.rt)),getConfigSchema:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(Vi)),getSettingsSchema:(0,m.A)(z.z.object({deviceId:z.z.number()}),Zi),updateConfig:(0,m.A)(z.z.object({deviceId:z.z.number(),values:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),enable:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),disable:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),remove:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),removeByIntegration:(0,m.A)(z.z.object({integrationId:z.z.string()}),z.z.object({removed:z.z.number()}),{kind:"mutation",auth:"admin"}),getStreamProfileMap:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.string().nullable())),setStreamProfileMap:(0,m.A)(z.z.object({deviceId:z.z.number(),profileMap:z.z.record(z.z.string(),z.z.string().nullable())}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),probeStreams:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(Ji),{kind:"mutation",auth:"admin"}),getBindings:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({deviceId:z.z.number(),entries:z.z.array(z.z.object({capName:z.z.string(),kind:z.z.enum(["native","wrapped"]),providerAddonId:z.z.string(),providerNodeId:z.z.string(),nativeAddonId:z.z.string()}))})),getAllBindings:(0,m.A)(z.z.object({}),z.z.array(z.z.object({deviceId:z.z.number(),entries:z.z.array(z.z.object({capName:z.z.string(),kind:z.z.enum(["native","wrapped"]),providerAddonId:z.z.string(),providerNodeId:z.z.string(),nativeAddonId:z.z.string()}))}))),setWrapperActive:(0,m.A)(z.z.object({deviceId:z.z.number(),capName:z.z.string(),wrapperAddonId:z.z.string(),active:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),listWrappersForCap:(0,m.A)(z.z.object({capName:z.z.string()}),z.z.array(z.z.string())),listBindableCapsForDeviceType:(0,m.A)(z.z.object({deviceType:z.z.string()}),z.z.array(z.z.object({capName:z.z.string(),wrappers:z.z.array(z.z.string())}))),getDeviceSettingsAggregate:(0,m.A)(z.z.object({deviceId:z.z.number()}),Pa.nullable()),getDeviceLiveInfoAggregate:(0,m.A)(z.z.object({deviceId:z.z.number()}),Pa.nullable()),getDeviceAggregate:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({settings:Pa.nullable(),live:Pa.nullable()})),runDeviceAction:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),action:z.z.string().min(1),input:z.z.unknown()}),z.z.unknown(),{kind:"mutation"}),updateDeviceField:(0,m.A)(z.z.object({deviceId:z.z.number(),writerCapName:z.z.string(),writerAddonId:z.z.string(),key:z.z.string(),value:z.z.unknown()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),updateDeviceFieldsBatch:(0,m.A)(z.z.object({deviceId:z.z.number(),changes:z.z.array(z.z.object({writerCapName:z.z.string(),writerAddonId:z.z.string(),key:z.z.string(),value:z.z.unknown()}))}),z.z.object({success:z.z.literal(!0),failures:z.z.array(z.z.object({writerCapName:z.z.string(),writerAddonId:z.z.string(),error:z.z.string()}))}),{kind:"mutation",auth:"admin"}),discoverDevices:(0,m.A)(z.z.object({addonId:z.z.string()}),z.z.array(Ti),{kind:"mutation",auth:"admin"}),adoptDevice:(0,m.A)(z.z.object({addonId:z.z.string(),candidate:Ti,integrationId:z.z.string().optional()}),Di,{kind:"mutation",auth:"admin"}),getCreationSchema:(0,m.A)(z.z.object({addonId:z.z.string(),type:z.z.enum(m.C)}),z.z.unknown().nullable()),createDevice:(0,m.A)(z.z.object({addonId:z.z.string(),type:z.z.enum(m.C),config:z.z.record(z.z.string(),z.z.unknown()),integrationId:z.z.string().optional()}),Di,{kind:"mutation",auth:"admin"}),testCreationField:(0,m.A)(z.z.object({addonId:z.z.string(),type:z.z.enum(m.C),key:z.z.string(),value:z.z.unknown(),formValues:z.z.record(z.z.string(),z.z.unknown()).optional()}),Ri,{kind:"mutation",auth:"admin"}),adoptionListCandidateFilters:(0,m.A)(z.z.object({addonId:z.z.string(),integrationId:z.z.string()}),z.z.object({filters:z.z.array(li)}),{auth:"admin"}),adoptionListCandidates:(0,m.A)(mi.extend({addonId:z.z.string()}),pi,{auth:"admin"}),adoptionRefresh:(0,m.A)(z.z.object({addonId:z.z.string(),integrationId:z.z.string()}),gi,{kind:"mutation",auth:"admin"}),adoptionAdopt:(0,m.A)(yi.extend({addonId:z.z.string()}),fi,{kind:"mutation",auth:"admin"}),adoptionRelease:(0,m.A)(vi.extend({addonId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),adoptionStartJob:(0,m.A)(yi.extend({addonId:z.z.string()}),z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),adoptionListJobs:(0,m.A)(z.z.object({addonId:z.z.string(),integrationId:z.z.string().optional()}),z.z.array(re).readonly(),{auth:"admin"}),adoptionCancelJob:(0,m.A)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),adoptionResync:(0,m.A)(hi,Si,{kind:"mutation",auth:"admin"}),discoveryProviders:(0,m.A)(z.z.object({}),z.z.object({providers:z.z.array(z.z.object({addonId:z.z.string(),label:z.z.string()})).readonly()}),{auth:"admin"}),discoverAllProviders:(0,m.A)(z.z.object({}),z.z.object({groups:z.z.array(z.z.object({addonId:z.z.string(),label:z.z.string(),candidates:z.z.array(Ti).readonly(),error:z.z.string().nullable()})).readonly()}),{kind:"mutation",auth:"admin"}),discoverProvider:(0,m.A)(z.z.object({addonId:z.z.string(),params:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.object({candidates:z.z.array(Ti).readonly()}),{kind:"mutation",auth:"admin"}),providerCreationType:(0,m.A)(z.z.object({addonId:z.z.string()}),z.z.object({deviceType:z.z.enum(m.C).nullable()}),{auth:"admin"}),providerDiscoveryParamsSchema:(0,m.A)(z.z.object({addonId:z.z.string()}),z.z.unknown(),{auth:"admin"}),testField:(0,m.A)(z.z.object({deviceId:z.z.number(),key:z.z.string(),value:z.z.unknown()}),Ri,{kind:"mutation",auth:"admin"}),getDeviceStatusAggregate:(0,m.A)(z.z.object({deviceId:z.z.number(),caps:z.z.array(z.z.string()).readonly().optional()}),z.z.record(z.z.string(),z.z.unknown().nullable())),getDeviceStatusAggregateBatch:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).readonly(),caps:z.z.array(z.z.string()).readonly().optional()}),z.z.record(z.z.string(),z.z.record(z.z.string(),z.z.unknown().nullable())))}},tc={name:"device-state",scope:"system",mode:"singleton",methods:{getSnapshot:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.record(z.z.string(),z.z.unknown()))),getCapSlice:(0,m.A)(z.z.object({deviceId:z.z.number(),capName:z.z.string()}),z.z.record(z.z.string(),z.z.unknown()).nullable()),getAllSnapshots:(0,m.A)(z.z.object({}),z.z.record(z.z.string(),z.z.record(z.z.string(),z.z.record(z.z.string(),z.z.unknown())))),setCapSlice:(0,m.A)(z.z.object({deviceId:z.z.number(),capName:z.z.string(),slice:z.z.record(z.z.string(),z.z.unknown())}),z.z.void(),{kind:"mutation"})},events:{onChanged:(0,m.D)(z.z.object({deviceId:z.z.number(),capName:z.z.string(),slice:z.z.record(z.z.string(),z.z.unknown())}))}},nc=z.z.object({embedding:z.z.array(z.z.number()),inferenceMs:z.z.number()}),ac=z.z.object({modelId:z.z.string(),embeddingDim:z.z.number(),ready:z.z.boolean()}),rc={name:"embedding-encoder",scope:"system",mode:"collection",internal:!0,methods:{encode:(0,m.A)(z.z.object({crop:z.z.instanceof(Uint8Array),width:z.z.number(),height:z.z.number()}),nc),encodeText:(0,m.A)(z.z.object({text:z.z.string()}),nc),getInfo:(0,m.A)(z.z.void(),ac)}},oc=z.z.object({name:z.z.string(),path:z.z.string()}),ic=z.z.object({path:z.z.string(),entries:z.z.array(oc).readonly(),freeBytes:z.z.number(),totalBytes:z.z.number()}),cc={name:"filesystem-browse",scope:"system",mode:"singleton",internal:!0,methods:{listAllowedRoots:(0,m.A)(z.z.void(),z.z.array(z.z.string()).readonly(),{auth:"admin"}),browse:(0,m.A)(z.z.object({path:z.z.string()}),ic,{auth:"admin"}),createDir:(0,m.A)(z.z.object({path:z.z.string()}),z.z.object({path:z.z.string()}),{kind:"mutation",auth:"admin"})}},sc=z.z.object({inputTokens:z.z.number(),outputTokens:z.z.number()}),dc=z.z.enum(["timeout","rate-limited","auth","refusal","bad-request","unavailable","no-profile","budget-exceeded","adapter-error"]),lc=z.z.object({ok:z.z.literal(!0),text:z.z.string(),model:z.z.string(),usage:sc,truncated:z.z.boolean(),latencyMs:z.z.number()}),uc=z.z.object({ok:z.z.literal(!1),code:dc,message:z.z.string(),retryAfterMs:z.z.number().optional()}),mc=z.z.discriminatedUnion("ok",[lc,uc]),pc=z.z.object({bytes:z.z.instanceof(Uint8Array),mimeType:z.z.string()}),bc=z.z.object({addonId:z.z.string().optional(),profileId:z.z.string().optional(),consumer:z.z.string(),system:z.z.string().optional(),prompt:z.z.string(),jsonSchema:z.z.record(z.z.string(),z.z.unknown()).optional(),maxTokens:z.z.number().int().positive().optional(),temperature:z.z.number().optional()}),gc=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("catalog"),catalogId:z.z.string()}),z.z.object({kind:z.z.literal("url"),url:z.z.string(),sha256:z.z.string().optional()}),z.z.object({kind:z.z.literal("path"),path:z.z.string()})]),zc=z.z.object({nodeId:z.z.string(),engine:z.z.enum(["llama-cpp"]),model:gc,contextSize:z.z.number().int().default(4096),gpuLayers:z.z.number().int().default(0),threads:z.z.number().int().optional(),parallel:z.z.number().int().default(1),autoStart:z.z.boolean().default(!1),idleStopMinutes:z.z.number().int().default(30)}),yc=z.z.object({nodeId:z.z.string(),state:z.z.enum(["stopped","downloading","starting","ready","crashed","failed"]),pid:z.z.number().optional(),port:z.z.number().optional(),modelPath:z.z.string().optional(),modelId:z.z.string().optional(),downloadProgress:z.z.number().min(0).max(1).optional(),lastError:z.z.string().optional(),crashesInWindow:z.z.number(),memoryBytes:z.z.number().optional(),vramBytes:z.z.number().optional()}),fc=z.z.object({file:z.z.string(),sizeBytes:z.z.number(),catalogId:z.z.string().optional(),installedAt:z.z.number().optional()}),vc=z.z.object({nodeId:z.z.string(),modelsBytes:z.z.number(),freeBytes:z.z.number().optional()}),hc=bc.extend({images:z.z.array(pc).optional(),runtime:zc,timeoutMs:z.z.number().int().positive().optional()}),Sc={name:"llm-runtime",scope:"system",mode:"singleton",internal:!0,methods:{complete:(0,m.A)(hc,mc,{kind:"mutation"}),ensureStarted:(0,m.A)(z.z.object({runtime:zc}),yc,{kind:"mutation",auth:"admin"}),stop:(0,m.A)(z.z.object({}),z.z.void(),{kind:"mutation",auth:"admin"}),status:(0,m.A)(z.z.object({}),yc),installModel:(0,m.A)(z.z.object({model:gc}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteModel:(0,m.A)(z.z.object({file:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listLocalModels:(0,m.A)(z.z.object({}),z.z.array(fc)),getDiskUsage:(0,m.A)(z.z.object({}),vc)}},jc=z.z.enum(["openai-compatible","openai","anthropic","google","managed-local"]),kc=z.z.object({id:z.z.string(),name:z.z.string(),kind:jc,addonId:z.z.string(),enabled:z.z.boolean(),model:z.z.string(),baseUrl:z.z.string().optional(),apiKey:z.z.string().optional(),supportsVision:z.z.boolean(),temperature:z.z.number().min(0).max(2).optional(),maxTokens:z.z.number().int().positive().optional(),timeoutMs:z.z.number().int().positive().default(6e4),extraHeaders:z.z.record(z.z.string(),z.z.string()).optional(),runtime:zc.optional()}),Ic=z.z.unknown(),Ac=z.z.object({kind:jc,label:z.z.string(),icon:z.z.string(),addonId:z.z.string(),configSchema:Ic}),Pc=z.z.union([z.z.object({consumer:z.z.string()}),z.z.object({purpose:z.z.enum(["text","vision"])})]),wc=z.z.object({selector:Pc,profileId:z.z.string()}),Oc=z.z.object({day:z.z.string(),consumer:z.z.string(),profileId:z.z.string(),calls:z.z.number(),okCalls:z.z.number(),errorCalls:z.z.number(),inputTokens:z.z.number(),outputTokens:z.z.number(),avgLatencyMs:z.z.number()}),Cc=z.z.object({id:z.z.string(),label:z.z.string(),family:z.z.string(),purpose:z.z.enum(["text","vision"]),url:z.z.string(),sha256:z.z.string(),sizeBytes:z.z.number(),quantization:z.z.string(),minRamBytes:z.z.number(),contextSizeDefault:z.z.number().int(),mmprojUrl:z.z.string().optional()}),Nc=z.z.object({nodeId:z.z.string(),reachable:z.z.boolean(),status:yc.optional(),disk:vc.optional(),error:z.z.string().optional()}),xc=bc.extend({images:z.z.array(pc).min(1)}),Mc=z.z.object({addonId:z.z.string(),profileId:z.z.string()}),Ec={name:"llm",scope:"system",mode:"collection",internal:!1,providerKind:"ai",nodeIdMode:"data",methods:{generate:(0,m.A)(bc,mc,{kind:"mutation"}),generateVision:(0,m.A)(xc,mc,{kind:"mutation"}),listProfileKinds:(0,m.A)(z.z.object({}),z.z.array(Ac)),listProfiles:(0,m.A)(z.z.object({}),z.z.array(kc)),upsertProfile:(0,m.A)(z.z.object({profile:kc}),kc,{kind:"mutation",auth:"admin"}),deleteProfile:(0,m.A)(Mc,z.z.void(),{kind:"mutation",auth:"admin"}),testProfile:(0,m.A)(Mc,mc,{kind:"mutation",auth:"admin"}),listModels:(0,m.A)(Mc,z.z.array(z.z.string())),getDefaults:(0,m.A)(z.z.object({}),z.z.array(wc)),setDefault:(0,m.A)(z.z.object({selector:Pc,profileId:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),getUsage:(0,m.A)(z.z.object({since:z.z.number().optional(),until:z.z.number().optional(),consumer:z.z.string().optional(),profileId:z.z.string().optional()}),z.z.array(Oc)),listModelCatalog:(0,m.A)(z.z.object({}),z.z.array(Cc)),listRuntimeNodes:(0,m.A)(z.z.object({}),z.z.array(Nc)),listNodeModels:(0,m.A)(z.z.object({nodeId:z.z.string()}),z.z.array(fc)),installModel:(0,m.A)(z.z.object({nodeId:z.z.string(),model:gc}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteModel:(0,m.A)(z.z.object({nodeId:z.z.string(),file:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),getRuntimeStatus:(0,m.A)(Mc,yc),startRuntime:(0,m.A)(Mc,yc,{kind:"mutation",auth:"admin"}),stopRuntime:(0,m.A)(Mc,z.z.void(),{kind:"mutation",auth:"admin"})}},Tc=z.z.enum(["debug","info","warn","error"]),Dc=z.z.object({timestamp:z.z.date(),level:Tc,scope:z.z.array(z.z.string()),message:z.z.string(),meta:z.z.record(z.z.string(),z.z.unknown()).optional(),tags:z.z.record(z.z.string(),z.z.string()).optional()}),Rc={name:"log-destination",scope:"system",mode:"collection",internal:!0,methods:{write:(0,m.A)(Dc,z.z.void(),{kind:"mutation"}),query:(0,m.A)(z.z.object({scope:z.z.array(z.z.string()).optional(),level:Tc.optional(),since:z.z.date().optional(),until:z.z.date().optional(),limit:z.z.number().optional(),tags:z.z.record(z.z.string(),z.z.string()).optional()}),z.z.array(Dc).readonly())},mount:{kind:"skip"}},Bc=z.z.enum(["primary","second-factor"]),Lc=z.z.object({kind:z.z.literal("redirect"),id:z.z.string(),label:z.z.string(),icon:z.z.string().optional(),startUrl:z.z.string(),stage:Bc}),Fc=z.z.object({kind:z.z.literal("widget"),id:z.z.string(),addonId:z.z.string(),bundle:z.z.string(),remote:Ma,stage:Bc}),_c=z.z.object({kind:z.z.literal("passkey"),id:z.z.string(),label:z.z.string(),stage:Bc,rpId:z.z.string(),origin:z.z.string().nullable()}),qc=z.z.discriminatedUnion("kind",[Lc,Fc,_c]),Uc={name:"login-method",scope:"system",mode:"collection",internal:!0,methods:{getLoginMethods:(0,m.A)(z.z.void(),z.z.array(qc).readonly())},mount:{kind:"skip"}},$c=z.z.object({total:z.z.number(),user:z.z.number(),system:z.z.number(),irq:z.z.number(),nice:z.z.number(),loadAvg:z.z.tuple([z.z.number(),z.z.number(),z.z.number()]),cores:z.z.number()}),Vc=z.z.object({percent:z.z.number(),totalBytes:z.z.number(),usedBytes:z.z.number(),availableBytes:z.z.number(),swapUsedBytes:z.z.number(),swapTotalBytes:z.z.number()}),Hc=z.z.object({readBytes:z.z.number(),writeBytes:z.z.number(),readOps:z.z.number(),writeOps:z.z.number(),timestampMs:z.z.number()}),Kc=z.z.object({rxBytes:z.z.number(),txBytes:z.z.number(),rxPackets:z.z.number(),txPackets:z.z.number(),rxErrors:z.z.number(),txErrors:z.z.number(),timestampMs:z.z.number()}),Wc=z.z.object({utilization:z.z.number(),model:z.z.string(),memoryUsedBytes:z.z.number(),memoryTotalBytes:z.z.number(),temperature:z.z.number().nullable()}),Gc=z.z.object({openFds:z.z.number(),threadCount:z.z.number(),activeHandles:z.z.number(),activeRequests:z.z.number()}),Zc=z.z.object({avg10:z.z.number(),avg60:z.z.number(),avg300:z.z.number()}),Jc=z.z.object({some:Zc,full:Zc.nullable()}),Yc=z.z.object({cpu:$c,memory:Vc,gpu:Wc.nullable(),network:Kc,disk:Hc,pressure:z.z.object({cpu:Jc.nullable(),memory:Jc.nullable(),io:Jc.nullable()}),process:Gc,cpuTemperature:z.z.number().nullable(),timestampMs:z.z.number()}),Xc=z.z.object({path:z.z.string(),totalBytes:z.z.number(),usedBytes:z.z.number(),availableBytes:z.z.number(),percent:z.z.number()}),Qc=z.z.object({pid:z.z.number(),cpu:z.z.number(),memory:z.z.number(),privateBytes:z.z.number().optional(),sharedBytes:z.z.number().optional()}),es=z.z.object({addonId:z.z.string(),nodeId:z.z.string(),role:z.z.enum(["hub","worker"]),pid:z.z.number(),state:z.z.enum(["starting","running","stopping","stopped","crashed"]),uptimeSec:z.z.number()}),ts=z.z.object({pid:z.z.number(),ppid:z.z.number(),pgid:z.z.number(),classification:z.z.enum(["root","managed","system","ghost"]),addonId:z.z.string().nullable(),nodeId:z.z.string().nullable(),command:z.z.string(),cpuPercent:z.z.number(),memoryRssBytes:z.z.number(),uptimeSec:z.z.number(),orphaned:z.z.boolean()}),ns=z.z.object({pid:z.z.number(),force:z.z.boolean().optional()}),as=z.z.object({success:z.z.boolean(),reason:z.z.string().optional(),signal:z.z.enum(["SIGTERM","SIGKILL"]).optional()}),rs=z.z.object({addonId:z.z.string()}),os=z.z.object({success:z.z.boolean(),path:z.z.string().optional(),pid:z.z.number().optional(),reason:z.z.string().optional()}),is=z.z.object({cpuPercent:z.z.number(),memoryPercent:z.z.number(),memoryUsedMB:z.z.number(),memoryTotalMB:z.z.number(),diskPercent:z.z.number().optional(),temperature:z.z.number().optional(),gpuPercent:z.z.number().optional(),gpuMemoryPercent:z.z.number().optional()}),cs={name:"metrics-provider",scope:"system",mode:"singleton",methods:{collectSnapshot:(0,m.A)(z.z.void(),Yc),getCached:(0,m.A)(z.z.void(),Yc.nullable()),getCurrent:(0,m.A)(z.z.void(),is),getDiskSpace:(0,m.A)(z.z.object({dirPath:z.z.string()}),Xc),getGpuInfo:(0,m.A)(z.z.void(),Wc.nullable()),getCpuTemperature:(0,m.A)(z.z.void(),z.z.number().nullable()),getProcessStats:(0,m.A)(z.z.object({pids:z.z.array(z.z.number())}),z.z.array(Qc)),listAddonInstances:(0,m.A)(z.z.void(),z.z.array(es).readonly()),getAddonStats:(0,m.A)(z.z.object({addonId:z.z.string()}),Qc.nullable()),listNodeProcesses:(0,m.A)(z.z.void(),z.z.array(ts).readonly()),killProcess:(0,m.A)(ns,as,{kind:"mutation",auth:"admin"}),dumpHeapSnapshot:(0,m.A)(rs,os,{kind:"mutation",auth:"admin"})}},ss=z.z.object({sourceUrl:z.z.string(),metadata:_t,targets:z.z.array(Ft).min(1).readonly(),calibrationRef:z.z.string().optional(),sessionId:z.z.string().optional()}),ds={name:"model-convert",scope:"system",mode:"singleton",internal:!0,methods:{convert:(0,m.A)(ss,Ut,{kind:"mutation",auth:"admin",timeoutMs:6e5})}},ls=z.z.object({nodeId:z.z.string(),modelId:z.z.string(),format:z.z.enum(Et),entry:Lt}),us=z.z.object({ok:z.z.boolean(),sha256:z.z.string(),bytes:z.z.number(),path:z.z.string()}),ms={name:"model-distributor",scope:"system",mode:"singleton",internal:!0,methods:{distributeModel:(0,m.A)(ls,us,{kind:"mutation",auth:"admin"})}},ps=z.z.object({bbox:Ha,pixelCount:z.z.number(),intensity:z.z.number()}),bs=z.z.object({detected:z.z.boolean(),regionCount:z.z.number(),regions:z.z.array(ps).readonly(),rawRegions:z.z.array(ps).readonly(),frameWidth:z.z.number(),frameHeight:z.z.number(),analysisMs:z.z.number()}),gs={name:"motion-detection",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],exposesDeviceSettings:!0,methods:{analyze:(0,m.A)(z.z.object({deviceId:z.z.number(),frame:Va.optional(),frameHandle:m.$.optional()}),bs,{kind:"mutation"}),removeCamera:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),reset:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation"})},events:{onMotion:{data:z.z.object({deviceId:z.z.number(),detected:z.z.boolean(),regionCount:z.z.number()})}}},zs=z.z.enum(["external","embedded"]),ys=z.z.enum(["connected","disconnected","auth-failed","unreachable","tls-error"]),fs=z.z.object({id:z.z.string(),name:z.z.string(),url:z.z.string(),kind:zs,status:ys,latencyMs:z.z.number().nullable(),error:z.z.string().optional(),connectedClients:z.z.number().int().nonnegative().optional(),lastCheckedAt:z.z.number().optional()}),vs=z.z.object({url:z.z.string(),username:z.z.string().optional(),password:z.z.string().optional(),clientIdPrefix:z.z.string().optional()}),hs=z.z.object({name:z.z.string().min(1),url:z.z.string().regex(/^(mqtt|mqtts|ws|wss):\/\//,"URL must start with mqtt(s):// or ws(s)://"),username:z.z.string().optional(),password:z.z.string().optional(),clientIdPrefix:z.z.string().optional()}),Ss=z.z.object({id:z.z.string()}),js=z.z.object({id:z.z.string()}),ks=z.z.discriminatedUnion("ok",[z.z.object({ok:z.z.literal(!0),latencyMs:z.z.number()}),z.z.object({ok:z.z.literal(!1),error:z.z.string()})]),Is=z.z.object({port:z.z.number().int().min(1).max(65535).default(1883),allowAnonymous:z.z.boolean().default(!1),username:z.z.string().optional(),password:z.z.string().optional()}),As=z.z.object({id:z.z.string(),url:z.z.string()}),Ps=z.z.object({brokerCount:z.z.number(),embeddedRunning:z.z.boolean()}),ws={name:"mqtt-broker",scope:"system",mode:"collection",providerKind:"broker",status:{schema:Ps,kind:"poll"},methods:{listBrokers:(0,m.A)(z.z.void(),z.z.array(fs)),getBrokerConfig:(0,m.A)(js,vs),addBroker:(0,m.A)(hs,Ss,{kind:"mutation"}),removeBroker:(0,m.A)(js,z.z.void(),{kind:"mutation"}),testConnection:(0,m.A)(js,ks,{kind:"mutation"}),startEmbeddedBroker:(0,m.A)(Is,As,{kind:"mutation"}),stopEmbeddedBroker:(0,m.A)(js,z.z.void(),{kind:"mutation"}),getStatus:(0,m.A)(z.z.void(),Ps)}},Os=z.z.object({url:z.z.string(),hostname:z.z.string(),port:z.z.number(),protocol:z.z.enum(["http","https"])}),Cs=z.z.object({connected:z.z.boolean(),endpoint:Os.nullable(),error:z.z.string().optional()}),Ns=Os.extend({id:z.z.string(),label:z.z.string(),mode:z.z.string().optional(),sourcePort:z.z.number().optional()}),xs={name:"network-access",scope:"system",mode:"collection",providerKind:"ingress",methods:{start:(0,m.A)(z.z.void(),Os,{kind:"mutation"}),stop:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation"}),getEndpoint:(0,m.A)(z.z.void(),Os.nullable()),getStatus:(0,m.A)(z.z.void(),Cs),listEndpoints:(0,m.A)(z.z.void(),z.z.array(Ns).readonly())}},Ms=z.z.enum(["image","video","gif","audio","icon"]),Es=z.z.object({mediaType:Ms,url:z.z.string().optional(),bytes:z.z.instanceof(Uint8Array).optional(),mime:z.z.string().optional(),name:z.z.string().optional()}).refine(e=>void 0!==e.url||void 0!==e.bytes,{message:"Attachment requires either `url` or `bytes`"}),Ts=z.z.enum(["text","markdown","html"]),Ds=z.z.enum(["acknowledge","dismiss","silence","view","play","open","close","lock","unlock","arm","disarm","light","alert"]),Rs=z.z.object({id:z.z.string(),label:z.z.string(),url:z.z.string().optional(),icon:Ds.optional(),destructive:z.z.boolean().optional()}),Bs=z.z.object({body:z.z.string(),title:z.z.string().optional(),format:Ts.default("text"),priority:z.z.number().int().min(1).max(5).default(3),level:z.z.string().optional(),attachments:z.z.array(Es).optional(),clickUrl:z.z.string().optional(),actions:z.z.array(Rs).optional(),sound:z.z.string().optional(),ttl:z.z.number().optional(),tag:z.z.string().optional(),deviceId:z.z.number().optional(),eventId:z.z.string().optional(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional()}),Ls=z.z.object({id:z.z.string(),label:z.z.string(),ordinal:z.z.number().int().min(1).max(5).nullable(),flags:z.z.object({critical:z.z.boolean().optional(),silent:z.z.boolean().optional(),noPush:z.z.boolean().optional()}).optional(),requires:z.z.array(z.z.string()).optional(),description:z.z.string().optional()}),Fs=z.z.object({mediaTypes:z.z.array(Ms),mode:z.z.enum(["url","bytes","both"]),max:z.z.number().int().nonnegative(),maxBytes:z.z.number().int().positive().optional()}),_s=z.z.object({attachments:Fs,actions:z.z.number().int().nonnegative(),actionIcons:z.z.boolean().optional(),levels:z.z.array(Ls),format:z.z.array(Ts),clickUrl:z.z.boolean(),sound:z.z.boolean(),ttl:z.z.boolean(),bodyMaxLen:z.z.number().int().positive()}),qs=z.z.unknown(),Us=z.z.object({kind:z.z.string(),label:z.z.string(),icon:z.z.string(),addonId:z.z.string(),iconUrl:z.z.string().optional(),iconMediaType:z.z.string().optional(),configSchema:qs,supportsDiscovery:z.z.boolean(),caps:_s}),$s=z.z.object({id:z.z.string(),name:z.z.string(),kind:z.z.string(),addonId:z.z.string(),enabled:z.z.boolean(),config:z.z.record(z.z.string(),z.z.unknown())}),Vs=z.z.object({kind:z.z.string(),suggestedName:z.z.string(),config:z.z.record(z.z.string(),z.z.unknown())}),Hs=z.z.object({level:z.z.string(),format:Ts,attachmentsSent:z.z.number().int().nonnegative(),actionsSent:z.z.number().int().nonnegative(),truncated:z.z.boolean(),dropped:z.z.array(z.z.string())}),Ks=z.z.object({success:z.z.boolean(),error:z.z.string().optional(),renderedAs:Hs.optional()}),Ws=Ks,Gs={name:"notification-output",scope:"system",mode:"collection",methods:{listTargetKinds:(0,m.A)(z.z.object({}),z.z.array(Us)),listTargets:(0,m.A)(z.z.object({}),z.z.array($s)),discoverTargets:(0,m.A)(z.z.object({kind:z.z.string(),config:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.array(Vs)),send:(0,m.A)(z.z.object({targetId:z.z.string(),notification:Bs}),Ks,{kind:"mutation"}),testTarget:(0,m.A)(z.z.object({targetId:z.z.string(),sample:Bs.optional()}),Ws,{kind:"mutation"}),upsertTarget:(0,m.A)(z.z.object({target:$s}),$s,{kind:"mutation"}),deleteTarget:(0,m.A)(z.z.object({targetId:z.z.string()}),z.z.void(),{kind:"mutation"}),setTargetEnabled:(0,m.A)(z.z.object({targetId:z.z.string(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation"})}},Zs=[{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"}],Js=[{id:"person",name:"Person"},{id:"vehicle",name:"Vehicle"},{id:"animal",name:"Animal"},{id:"package",name:"Package"}],Ys={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",suitcase:"package",backpack:"package",handbag:"package"},preserveOriginal:!1},Xs=[{id:"speech",name:"Speech",icon:"\ud83d\udde3\ufe0f"},{id:"scream",name:"Scream / Shout",icon:"\ud83d\ude31"},{id:"crying",name:"Crying / Baby",icon:"\ud83d\ude22"},{id:"laughter",name:"Laughter",icon:"\ud83d\ude02"},{id:"music",name:"Music",icon:"\ud83c\udfb5"},{id:"dog",name:"Dog",icon:"\ud83d\udc15"},{id:"cat",name:"Cat",icon:"\ud83d\udc08"},{id:"bird",name:"Bird",icon:"\ud83d\udc26"},{id:"animal",name:"Animal (other)",icon:"\ud83d\udc3e"},{id:"alarm",name:"Alarm / Siren",icon:"\ud83d\udea8"},{id:"doorbell",name:"Doorbell / Knock",icon:"\ud83d\udd14"},{id:"glass_breaking",name:"Glass Breaking",icon:"\ud83d\udca5"},{id:"gunshot",name:"Gunshot / Explosion",icon:"\ud83d\udca3"},{id:"vehicle",name:"Vehicle",icon:"\ud83d\ude97"},{id:"siren",name:"Emergency Siren",icon:"\ud83d\ude91"},{id:"fire",name:"Fire / Smoke",icon:"\ud83d\udd25"},{id:"water",name:"Water",icon:"\ud83d\udca7"},{id:"wind",name:"Wind / Weather",icon:"\ud83c\udf2c\ufe0f"},{id:"door",name:"Door",icon:"\ud83d\udeaa"},{id:"footsteps",name:"Footsteps",icon:"\ud83d\udc63"},{id:"crowd",name:"Crowd / Chatter",icon:"\ud83d\udc65"},{id:"telephone",name:"Telephone",icon:"\ud83d\udcde"},{id:"engine",name:"Engine / Motor",icon:"\u2699\ufe0f"},{id:"tools",name:"Tools / Construction",icon:"\ud83d\udd28"},{id:"silence",name:"Silence",icon:"\ud83e\udd2b"}],Qs={mapping:{Speech:"speech","Child speech, kid speaking":"speech",Conversation:"speech","Narration, monologue":"speech",Babbling:"speech",Whispering:"speech","Speech synthesizer":"speech",Humming:"speech",Rapping:"speech",Singing:"speech",Choir:"speech","Child singing":"speech",Shout:"scream",Bellow:"scream",Yell:"scream",Screaming:"scream","Children shouting":"scream",Whoop:"scream","Crying, sobbing":"crying","Baby cry, infant cry":"crying",Whimper:"crying","Wail, moan":"crying",Groan:"crying",Laughter:"laughter","Baby laughter":"laughter",Giggle:"laughter",Snicker:"laughter","Belly laugh":"laughter","Chuckle, chortle":"laughter",Music:"music","Musical instrument":"music",Guitar:"music",Piano:"music",Drum:"music","Drum kit":"music","Violin, fiddle":"music",Flute:"music",Saxophone:"music",Trumpet:"music",Synthesizer:"music","Pop music":"music","Rock music":"music","Hip hop music":"music","Classical music":"music",Jazz:"music","Electronic music":"music","Background music":"music",Dog:"dog",Bark:"dog",Yip:"dog",Howl:"dog","Bow-wow":"dog",Growling:"dog","Whimper (dog)":"dog",Cat:"cat",Purr:"cat",Meow:"cat",Hiss:"cat",Caterwaul:"cat",Bird:"bird","Bird vocalization, bird call, bird song":"bird","Chirp, tweet":"bird",Squawk:"bird",Crow:"bird",Owl:"bird","Pigeon, dove":"bird",Animal:"animal","Domestic animals, pets":"animal","Livestock, farm animals, working animals":"animal",Horse:"animal","Cattle, bovinae":"animal",Pig:"animal",Sheep:"animal",Goat:"animal",Frog:"animal",Insect:"animal",Cricket:"animal",Alarm:"alarm","Alarm clock":"alarm","Smoke detector, smoke alarm":"alarm","Fire alarm":"alarm",Buzzer:"alarm","Civil defense siren":"alarm","Car alarm":"alarm",Siren:"siren","Police car (siren)":"siren","Ambulance (siren)":"siren","Fire engine, fire truck (siren)":"siren","Emergency vehicle":"siren",Foghorn:"siren",Doorbell:"doorbell","Ding-dong":"doorbell",Knock:"doorbell",Tap:"doorbell",Glass:"glass_breaking",Shatter:"glass_breaking","Chink, clink":"glass_breaking","Gunshot, gunfire":"gunshot","Machine gun":"gunshot",Explosion:"gunshot",Fireworks:"gunshot",Firecracker:"gunshot","Artillery fire":"gunshot","Cap gun":"gunshot",Boom:"gunshot",Vehicle:"vehicle",Car:"vehicle",Truck:"vehicle",Bus:"vehicle",Motorcycle:"vehicle","Car passing by":"vehicle","Vehicle horn, car horn, honking":"vehicle","Traffic noise, roadway noise":"vehicle",Train:"vehicle",Aircraft:"vehicle",Helicopter:"vehicle",Bicycle:"vehicle",Skateboard:"vehicle",Fire:"fire",Crackle:"fire",Water:"water",Rain:"water",Raindrop:"water","Rain on surface":"water",Stream:"water",Waterfall:"water",Ocean:"water","Waves, surf":"water","Splash, splatter":"water",Wind:"wind",Thunderstorm:"wind",Thunder:"wind","Wind noise (microphone)":"wind","Rustling leaves":"wind",Door:"door","Sliding door":"door",Slam:"door","Cupboard open or close":"door","Walk, footsteps":"footsteps",Run:"footsteps",Shuffle:"footsteps",Crowd:"crowd",Chatter:"crowd",Cheering:"crowd",Applause:"crowd","Children playing":"crowd","Hubbub, speech noise, speech babble":"crowd",Telephone:"telephone","Telephone bell ringing":"telephone",Ringtone:"telephone","Telephone dialing, DTMF":"telephone","Busy signal":"telephone",Engine:"engine","Engine starting":"engine",Idling:"engine","Accelerating, revving, vroom":"engine","Light engine (high frequency)":"engine","Medium engine (mid frequency)":"engine","Heavy engine (low frequency)":"engine","Lawn mower":"engine",Chainsaw:"engine",Hammer:"tools",Jackhammer:"tools",Sawing:"tools","Power tool":"tools",Drill:"tools",Sanding:"tools",Silence:"silence"},preserveOriginal:!1},ed={mapping:{speech:"speech",child_speech:"speech",conversation:"speech",whispering:"speech",singing:"speech",humming:"speech",shout:"scream",yell:"scream",screaming:"scream",crying:"crying",baby_crying:"crying",sobbing:"crying",laughter:"laughter",baby_laughter:"laughter",giggling:"laughter",music:"music",guitar:"music",piano:"music",drums:"music",dog_bark:"dog",dog_bow_wow:"dog",dog_growling:"dog",dog_howl:"dog",cat_meow:"cat",cat_purr:"cat",cat_hiss:"cat",bird:"bird",bird_chirp:"bird",bird_squawk:"bird",animal:"animal",horse:"animal",cow_moo:"animal",insect:"animal",alarm:"alarm",smoke_alarm:"alarm",fire_alarm:"alarm",car_alarm:"alarm",siren:"siren",police_siren:"siren",ambulance_siren:"siren",doorbell:"doorbell",door_knock:"doorbell",knocking:"doorbell",glass_breaking:"glass_breaking",glass_shatter:"glass_breaking",gunshot:"gunshot",explosion:"gunshot",fireworks:"gunshot",car:"vehicle",truck:"vehicle",motorcycle:"vehicle",car_horn:"vehicle",vehicle_horn:"vehicle",traffic:"vehicle",fire:"fire",fire_crackle:"fire",water:"water",rain:"water",ocean:"water",splash:"water",wind:"wind",thunder:"wind",thunderstorm:"wind",door:"door",door_slam:"door",sliding_door:"door",footsteps:"footsteps",walking:"footsteps",running:"footsteps",crowd:"crowd",chatter:"crowd",cheering:"crowd",applause:"crowd",telephone_ring:"telephone",ringtone:"telephone",engine:"engine",engine_starting:"engine",lawn_mower:"engine",chainsaw:"engine",hammer:"tools",jackhammer:"tools",drill:"tools",power_tool:"tools",silence:"silence"},preserveOriginal:!1},td=new Map;for(const[e,t]of Object.entries(Qs.mapping))td.set(e.toLowerCase(),t);for(const[e,t]of Object.entries(ed.mapping))td.set(e.toLowerCase(),t);function nd(e){return td.get(e.toLowerCase())??null}function ad(){return Xs.map(e=>e.id)}var rd={motion:"#f59e0b",audio:"#06b6d4",person:"#22c55e",vehicle:"#3b82f6",animal:"#f97316",package:"#a855f7",sensor:"#8b5cf6",control:"#10b981",genericDetection:"#64748b"},od="#22ff55",id={car:"#f59e0b",truck:"#d97706",bus:"#b45309",motorcycle:"#eab308",bicycle:"#ca8a04",airplane:"#60a5fa",boat:"#2563eb",train:"#1d4ed8",bird:"#14b8a6",dog:"#84cc16",cat:"#f97316",horse:"#a16207",sheep:"#a3a3a3",cow:"#78716c",elephant:"#6b7280",bear:"#7c2d12",zebra:"#404040",giraffe:"#d4a373"};function cd(e){return e.split(/[-_ ]/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}var sd=new Map;function dd(e,t,n,a,r){sd.set(e,{kind:e,parentKind:null,level:"macro",category:t,color:n,iconId:a,labelKey:`eventKind.${e}`,label:r})}function ld(e,t,n,a,r,o){sd.set(e,{kind:e,parentKind:t,level:"sub",category:n,color:a,iconId:r,labelKey:`eventKind.${e}`,label:o})}dd("motion","motion",rd.motion,"motion","Motion"),dd("audio","audio",rd.audio,"audio","Audio"),dd("person","detection",rd.person,"person","Person"),dd("vehicle","detection",rd.vehicle,"vehicle","Vehicle"),dd("animal","detection",rd.animal,"animal","Animal"),dd("package","package",rd.package,"package","Package"),dd("sensor","sensor",rd.sensor,"sensor","Sensor"),dd("control","control",rd.control,"control","Control");for(const[e,t]of Object.entries(Ys.mapping))"vehicle"!==t&&"animal"!==t||sd.has(e)||ld(e,t,"detection",id[e]??rd.genericDetection,e,cd(e));ld("package-delivered","package","package",rd.package,"package","Package delivered"),ld("package-picked-up","package","package",rd.package,"package","Package picked up"),ld("contact","sensor","sensor","#f59e0b","door","Contact"),ld("motion-sensor","sensor","sensor",rd.sensor,"pir","Motion sensor"),ld("smoke","sensor","sensor","#ef4444","smoke","Smoke"),ld("flood","sensor","sensor","#3b82f6","water","Water leak"),ld("gas","sensor","sensor","#ef4444","gas","Gas"),ld("carbon-monoxide","sensor","sensor","#dc2626","smoke","Carbon monoxide"),ld("vibration","sensor","sensor","#eab308","vibration","Vibration"),ld("tamper","sensor","sensor","#f97316","tamper","Tamper"),ld("presence","sensor","sensor","#22c55e","presence","Presence"),ld("enum-sensor","sensor","sensor",rd.sensor,"generic","Sensor state"),ld("device-event","sensor","sensor","#10b981","button","Device event"),ld("lock","control","control","#0ea5e9","lock","Lock"),ld("switch","control","control",rd.control,"switch","Switch"),ld("siren","control","control","#dc2626","siren","Siren"),ld("button","control","control","#10b981","button","Button"),ld("doorbell","control","control","#a855f7","doorbell","Doorbell");for(const e of Xs){const t=`audio-${e.id}`;sd.has(t)||ld(t,"audio","audio",rd.audio,t,e.name)}var ud=Object.freeze(Object.fromEntries(sd));function md(e){return ud[e]}function pd(e){return ud[e]?.color??"#22ff55"}function bd(e){const t=[];for(const n of Object.values(ud))n.parentKind===e&&t.push(n);return t}var gd=z.z.object({kind:z.z.string(),label:z.z.string(),parentKind:z.z.string().nullable()}),zd=z.z.object({videoClasses:z.z.array(gd),audioKinds:z.z.array(gd),labels:z.z.array(gd)});function yd(e,t,n){return{kind:e,label:t,parentKind:n}}function fd(){const e=Object.values(ud);return{videoClasses:e.filter(e=>"detection"===e.category).map(e=>yd(e.kind,e.label,e.parentKind)),audioKinds:e.filter(e=>"audio"===e.category&&"sub"===e.level).map(e=>yd(e.kind,e.label,e.parentKind)),labels:e.filter(e=>"sensor"===e.category||"control"===e.category).map(e=>yd(e.kind,e.label,e.parentKind))}}var vd=Object.freeze(fd()),hd=z.z.enum(["disarmed","armed_home","armed_away","armed_night","armed_vacation","armed_custom_bypass","arming","disarming","pending","triggered"]),Sd=z.z.enum(["home","away","night","vacation","custom_bypass"]),jd=z.z.object({state:hd,availableModes:z.z.array(Sd),requiresCode:z.z.boolean(),lastChangedAt:z.z.number()}),kd={name:"alarm-panel",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.AlarmPanel],methods:{arm:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:Sd,code:z.z.string().min(1).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),disarm:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),code:z.z.string().min(1).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),trigger:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:jd,kind:"push"},runtimeState:jd},Id=z.z.object({x:z.z.number(),y:z.z.number()}),Ad=z.z.object({kind:z.z.literal("rect"),x:z.z.number(),y:z.z.number(),width:z.z.number(),height:z.z.number()}),Pd=z.z.object({kind:z.z.literal("polygon"),points:z.z.array(Id)}),wd=z.z.object({kind:z.z.literal("grid"),gridWidth:z.z.number(),gridHeight:z.z.number(),cells:z.z.array(z.z.boolean())}),Od=z.z.object({kind:z.z.literal("line"),points:z.z.array(Id)}),Cd=z.z.discriminatedUnion("kind",[Ad,Pd,wd,Od]),Nd=z.z.enum(["rect","polygon","grid","line"]),xd=z.z.object({min:z.z.number(),max:z.z.number()}),Md=z.z.object({width:z.z.number(),height:z.z.number()}),Ed=z.z.enum(["immediate","track-end","device-event","package-event"]),Td=1,Dd=z.z.object({days:z.z.array(z.z.number().int().min(0).max(6)).min(1),startMinute:z.z.number().int().min(0).max(1439),endMinute:z.z.number().int().min(0).max(1439)}),Rd=z.z.object({windows:z.z.array(Dd).min(1),timezone:z.z.string().optional(),invert:z.z.boolean().optional()}),Bd=z.z.object({values:z.z.array(z.z.string().min(1)).min(1),maxDistance:z.z.number().int().min(0).max(3).default(1)}),Ld=z.z.object({zoneId:z.z.string().optional(),className:z.z.string().optional(),op:z.z.enum(["became-occupied","became-free",">=","<="]).default("became-occupied"),count:z.z.number().int().min(0).default(1),sustainSeconds:z.z.number().int().min(0).max(3600).default(15)}),Fd=z.z.enum(["enter","exit","any"]),_d=z.z.object({ids:z.z.array(z.z.string().min(1)).min(1),match:z.z.enum(["any","all"]).default("any")}),qd=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("wait"),seconds:z.z.number().min(0).max(300)}),z.z.object({kind:z.z.literal("cap"),deviceId:z.z.number().int(),cap:z.z.string().min(1),method:z.z.string().min(1),args:z.z.record(z.z.string(),z.z.unknown()).optional()})]),Ud=z.z.object({name:z.z.string().min(1).max(120),enabled:z.z.boolean(),minDelaySec:z.z.number().int().min(0).max(86400).optional(),actions:z.z.array(qd).min(1)}),$d=z.z.object({id:z.z.string().min(1).max(64),label:z.z.string().min(1).max(40),sequence:z.z.string().min(1).max(120),icon:Ds.optional(),destructive:z.z.boolean().optional()}),Vd=z.z.object({onTrigger:z.z.array(Ud).optional(),buttons:z.z.array($d).max(8).optional()}),Hd=z.z.object({deviceId:z.z.number().int(),states:z.z.array(z.z.string().min(1)).min(1)}),Kd=z.z.object({deviceState:Hd.optional(),devices:z.z.array(z.z.number()).optional(),classes:z.z.array(z.z.string().min(1)).optional(),classesExclude:z.z.array(z.z.string().min(1)).optional(),minConfidence:z.z.number().min(0).max(1).optional(),zones:_d.optional(),zonesExclude:z.z.array(z.z.string().min(1)).optional(),crossing:Fd.optional(),labelEquals:z.z.array(z.z.string().min(1)).optional(),identities:z.z.array(z.z.string().min(1)).optional(),plates:Bd.optional(),identitiesExclude:z.z.array(z.z.string().min(1)).optional(),minImportance:z.z.number().min(0).max(1).optional(),minDwellSeconds:z.z.number().min(0).optional(),source:z.z.enum(["pipeline","onboard","sensor","audio","any"]).optional(),minLabelConfidence:z.z.number().min(0).max(1).optional(),eventTypeTokens:z.z.array(z.z.string().min(1)).optional(),sensorKinds:z.z.array(z.z.string().min(1)).optional(),packagePhase:z.z.enum(["delivered","picked-up","both"]).optional(),customZones:z.z.array(Pd).optional(),occupancy:Ld.optional()}),Wd=z.z.object({targetId:z.z.string().min(1),params:z.z.record(z.z.string(),z.z.unknown()).optional()}),Gd=z.z.enum(["cropped","full","boxed"]),Zd=z.z.object({attach:z.z.enum(["best","best-matching","keyFrame","none"]).default("best"),frame:Gd.optional(),zoneCrop:z.z.boolean().optional(),gif:z.z.boolean().optional(),clip:z.z.boolean().optional(),clipPreRollSec:z.z.number().int().min(0).max(30).optional(),clipPostRollSec:z.z.number().int().min(0).max(30).optional(),clipSpeed:z.z.number().min(1).max(8).optional(),profile:m.G.optional()}),Jd=z.z.enum(["shared","per-class"]),Yd=z.z.object({cooldownSec:z.z.number().int().min(0).max(86400).default(60),scope:z.z.enum(["rule","rule-device"]).default("rule-device"),granularity:Jd.optional()}),Xd=z.z.object({name:z.z.string().min(1).max(200),enabled:z.z.boolean().default(!0),delivery:Ed,conditions:Kd.default({}),schedule:Rd.optional(),targets:z.z.array(Wd),targetUsers:z.z.array(z.z.string()).optional(),media:Zd.default({attach:"best"}),throttle:Yd.default({cooldownSec:60,scope:"rule-device"}),template:z.z.object({title:z.z.string().max(500).optional(),body:z.z.string().max(2e3).optional()}).optional(),priority:z.z.number().int().min(1).max(5).default(3),ownerUserId:z.z.string().optional(),snoozeAllowGlobal:z.z.boolean().optional(),actions:Vd.optional()}),Qd=Xd.partial().extend({disabledTargetIds:z.z.array(z.z.string()).optional()}),el=Xd.extend({id:z.z.string(),createdBy:z.z.string(),createdAt:z.z.number(),updatedAt:z.z.number(),disabledTargetIds:z.z.array(z.z.string()).default([])}),tl=z.z.object({recordId:z.z.string(),recordKind:z.z.enum(["object-event","track","device-event","package-event"]),deviceId:z.z.number(),timestamp:z.z.number(),wouldFire:z.z.boolean(),failedCondition:z.z.string().optional(),className:z.z.string().optional(),label:z.z.string().optional()}),nl=z.z.object({id:z.z.string(),group:z.z.enum(["scope","class","zones","quality","label","schedule","device","package","occupancy"]),label:z.z.string(),valueType:z.z.enum(["deviceIdList","stringList","number01","number","sourceSelect","zoneSelection","zoneIdList","schedule","plateMatcher","packagePhase","crossingSelect","polygonDraw","occupancy","deviceState"]),operator:z.z.enum(["in","notIn","anyOf","allOf","gte","fuzzyIn","withinSchedule"]),appliesTo:z.z.array(Ed),phase:z.z.string(),description:z.z.string().optional(),options:z.z.array(z.z.object({value:z.z.string(),label:z.z.string(),hint:z.z.string().optional()})).readonly().optional()}),al=[{id:"devices",group:"scope",label:"Devices",valueType:"deviceIdList",operator:"in",appliesTo:["immediate","track-end","device-event","package-event"],phase:"P1",description:"Restrict the rule to these devices; absent = all devices. A sensor event matches either the SENSOR that fired or the camera it is attributed to, so a rule may name either one."},{id:"classes",group:"class",label:"Object classes",valueType:"stringList",operator:"in",appliesTo:["immediate","track-end","package-event"],phase:"P1",description:"Any overlap with the detection class set passes."},{id:"classesExclude",group:"class",label:"Excluded classes",valueType:"stringList",operator:"notIn",appliesTo:["immediate","track-end","package-event"],phase:"P1"},{id:"minConfidence",group:"quality",label:"Minimum confidence",valueType:"number01",operator:"gte",appliesTo:["immediate","track-end","package-event"],phase:"P1"},{id:"zones",group:"zones",label:"Zones",valueType:"zoneSelection",operator:"anyOf",appliesTo:["immediate","track-end","package-event"],phase:"P1",description:"Admin zone ids; quantifier any/all over the visited set."},{id:"zonesExclude",group:"zones",label:"Excluded zones",valueType:"zoneIdList",operator:"notIn",appliesTo:["immediate","track-end","package-event"],phase:"P1"},{id:"crossing",group:"zones",label:"Zone crossing",valueType:"crossingSelect",options:[{value:"",label:"Not set \u2014 entering",hint:"Entries, and every detection that is not a crossing at all. Exits are excluded. This is what a rule without a crossing condition already does, and choosing it writes nothing to the rule."},{value:"enter",label:"Entered a zone",hint:"The same matches as \"not set\", stated explicitly: entries and non-crossing detections pass, exits do not."},{value:"exit",label:"Left a zone",hint:"ONLY an exit crossing. A detection that is not a crossing fails, so this rule cannot fire on ordinary movement \u2014 pair it with the zones the subject must have left. Also matches a tripwire crossed against its drawn direction."},{value:"any",label:"Entered or left",hint:"No direction filter: entries, exits and non-crossing detections alike. This is the only choice that adds exits to what the rule already matched."}],operator:"in",appliesTo:["immediate"],phase:"P1",description:"Direction of the zone crossing: enter (the default, and what every rule authored before this did) / exit / any. An exit rule matches only crossings."},{id:"labelEquals",group:"label",label:"Label equals",valueType:"stringList",operator:"in",appliesTo:["immediate","track-end"],phase:"P1",description:"Exact match on the collapsed label (identity / plate / subclass)."},{id:"identities",group:"label",label:"Identities",valueType:"stringList",operator:"in",appliesTo:["immediate","track-end"],phase:"P1",description:"P1: matched against the identity display name on the record label."},{id:"plates",group:"label",label:"License plates",valueType:"plateMatcher",operator:"fuzzyIn",appliesTo:["immediate","track-end"],phase:"P1",description:"Levenshtein-tolerant match against the plate text."},{id:"identitiesExclude",group:"label",label:"Excluded identities",valueType:"stringList",operator:"notIn",appliesTo:["immediate","track-end"],phase:"P1",description:"Veto by identity display name (mirror of Identities; absent label passes)."},{id:"minLabelConfidence",group:"label",label:"Minimum label confidence",valueType:"number01",operator:"gte",appliesTo:["track-end"],phase:"P1",description:"Best identity/plate recognition match confidence [0,1] for the label the track carries at close (peak assigned-identity cosine / peak plate OCR score; the higher of the two when both were read). Distinct from detection confidence. Fails closed for a track that ended un-recognized."},{id:"minImportance",group:"quality",label:"Minimum importance",valueType:"number01",operator:"gte",appliesTo:["track-end"],phase:"P1",description:"Server-computed key-event importance [0,1]; track-end rules only (importance is scored at close). Fails when the record has none."},{id:"minDwellSeconds",group:"quality",label:"Minimum dwell (seconds)",valueType:"number",operator:"gte",appliesTo:["track-end"],phase:"P1",description:"Track lifespan in seconds (lastSeen \u2212 firstSeen); track-end rules only."},{id:"source",group:"scope",label:"Detection source",valueType:"sourceSelect",options:[{value:"any",label:"Any source"},{value:"pipeline",label:"Pipeline"},{value:"onboard",label:"Onboard (camera)"},{value:"sensor",label:"Sensor"},{value:"audio",label:"Audio marker"}],operator:"in",appliesTo:["immediate","track-end","device-event","package-event"],phase:"P1",description:"pipeline / onboard / sensor / audio; a record with no stamped source counts as pipeline."},{id:"deviceState",group:"scope",label:"Device state",valueType:"deviceState",operator:"in",appliesTo:["immediate","track-end","device-event","package-event"],phase:"P2",description:"Only fire while another device is in one of the chosen states \u2014 the alarm armed, a switch on, a contact closed. A state that cannot be read does NOT fire."},{id:"sensorKinds",group:"device",label:"Sensor kinds",valueType:"stringList",operator:"in",appliesTo:["device-event"],phase:"P1",description:"Sensor/control taxonomy kinds (doorbell / contact / button / \u2026) matched against the persisted device event."},{id:"eventTypeTokens",group:"device",label:"Event-type tokens",valueType:"stringList",operator:"in",appliesTo:["device-event"],phase:"P1",description:"Raw device event-type tokens (e.g. doorbell press / press_long) from the event-emitter slice; absent on doorbell-pulse / passive sensors."},{id:"packagePhase",group:"package",label:"Package phase",valueType:"packagePhase",options:[{value:"delivered",label:"Delivered"},{value:"picked-up",label:"Picked up"},{value:"both",label:"Both"}],operator:"in",appliesTo:["package-event"],phase:"P1",description:"Delivered / picked-up / both."},{id:"occupancy",group:"occupancy",label:"Occupancy",valueType:"occupancy",operator:"anyOf",appliesTo:["device-event"],phase:"P1",description:"ZoneAnalytics occupancy edge (optionally zone/class-scoped): count crosses the threshold and holds for sustainSeconds. Fail-closed on a missing snapshot."},{id:"customZones",group:"zones",label:"Custom zones",valueType:"polygonDraw",operator:"anyOf",appliesTo:["immediate","track-end","package-event"],phase:"P1",description:"User-drawn polygons; a detection whose bbox overlaps any polygon matches."},{id:"schedule",group:"schedule",label:"Schedule",valueType:"schedule",operator:"withinSchedule",appliesTo:["immediate","track-end","device-event","package-event"],phase:"P1",description:"Weekly activation windows (invertible); absent = always active."}],rl=z.z.enum(["pending","sent","dead"]),ol=z.z.enum(["object-event","track-end","device-event","package-event"]),il=z.z.object({className:z.z.string(),label:z.z.string().optional(),confidence:z.z.number().optional(),zones:z.z.array(z.z.string()),timestamp:z.z.number()}),cl=z.z.object({id:z.z.string(),ruleId:z.z.string(),ruleName:z.z.string(),delivery:Ed,targetId:z.z.string(),deviceId:z.z.number(),recordKind:ol,recordId:z.z.string(),trackId:z.z.string().optional(),status:rl,attempts:z.z.number().int(),createdAt:z.z.number(),updatedAt:z.z.number(),error:z.z.string().optional(),subject:il}),sl=100,dl=500,ll=z.z.object({ruleId:z.z.string().optional(),deviceId:z.z.number().optional(),status:rl.optional(),since:z.z.number().optional(),until:z.z.number().optional(),limit:z.z.number().int().min(1).max(500).default(100)}),ul=z.z.enum(["rule","device","all"]),ml=1440,pl=z.z.object({scope:ul,ruleId:z.z.string().optional(),deviceId:z.z.number().int().optional(),durationMinutes:z.z.number().int().min(1).max(ml),global:z.z.boolean().optional(),summary:z.z.boolean().optional()}),bl=z.z.object({id:z.z.string(),userId:z.z.string(),scope:ul,ruleId:z.z.string().optional(),deviceId:z.z.number().int().optional(),startedAt:z.z.number(),expiresAt:z.z.number(),global:z.z.boolean(),summary:z.z.boolean(),digestSentAt:z.z.number().optional()}),gl=z.z.object({snoozeId:z.z.string(),targetId:z.z.string(),ruleId:z.z.string(),ruleName:z.z.string(),deviceId:z.z.number().int(),count:z.z.number().int(),firstAt:z.z.number(),lastAt:z.z.number()}),zl=z.z.object({exitDelaySec:z.z.number().int().min(0).max(600),entryDelaySec:z.z.number().int().min(0).max(600),triggeredDurationSec:z.z.number().int().min(0).max(3600),announceArm:z.z.boolean(),announceTargets:z.z.array(z.z.string().min(1)).max(16)}),yl=zl.partial(),fl=z.z.object({mode:Sd,ruleCount:z.z.number().int().min(0),allDevices:z.z.boolean(),deviceIds:z.z.array(z.z.number().int())}),vl=z.z.object({deviceId:z.z.number().int().nullable(),settings:zl,coverage:z.z.array(fl)}),hl={name:"notification-rules",scope:"system",mode:"singleton",methods:{listRules:(0,m.A)(z.z.object({}),z.z.object({rules:z.z.array(el)}),{auth:"admin"}),getRule:(0,m.A)(z.z.object({ruleId:z.z.string()}),z.z.object({rule:el.nullable()}),{auth:"admin"}),createRule:(0,m.A)(z.z.object({rule:Xd}),z.z.object({rule:el}),{kind:"mutation",auth:"admin",caller:"required"}),updateRule:(0,m.A)(z.z.object({ruleId:z.z.string(),patch:Qd}),z.z.object({rule:el}),{kind:"mutation",auth:"admin",caller:"required"}),deleteRule:(0,m.A)(z.z.object({ruleId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setRuleEnabled:(0,m.A)(z.z.object({ruleId:z.z.string(),enabled:z.z.boolean()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),listDeviceMutes:(0,m.A)(z.z.object({}),z.z.object({mutedDeviceIds:z.z.array(z.z.number().int()).readonly()}),{auth:"admin"}),setDeviceMuted:(0,m.A)(z.z.object({deviceId:z.z.number().int(),muted:z.z.boolean()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),testRule:(0,m.A)(z.z.object({rule:Xd,lookbackMinutes:z.z.number().int().min(1).max(1440).default(60)}),z.z.object({results:z.z.array(tl)}),{kind:"mutation",auth:"admin"}),getConditionCatalog:(0,m.A)(z.z.object({}),z.z.object({catalog:z.z.array(nl),taxonomy:zd.optional()})),getHistory:(0,m.A)(z.z.object({filter:ll.default({limit:100})}),z.z.object({entries:z.z.array(cl)}),{auth:"admin"}),listSnoozes:(0,m.A)(z.z.object({}),z.z.object({snoozes:z.z.array(bl)}),{caller:"required"}),createSnooze:(0,m.A)(z.z.object({snooze:pl}),z.z.object({snooze:bl}),{kind:"mutation",caller:"required"}),cancelSnooze:(0,m.A)(z.z.object({snoozeId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",caller:"required"}),getAlarmConfig:(0,m.A)(z.z.object({}),vl,{auth:"admin"}),setAlarmConfig:(0,m.A)(z.z.object({patch:yl}),vl,{kind:"mutation",auth:"admin"})}},Sl=z.z.enum(["view","create","delete"]),jl=z.z.union([z.z.literal("*"),z.z.array(z.z.string())]),kl=z.z.record(z.z.string(),z.z.union([z.z.literal("*"),z.z.array(z.z.string())])),Il=z.z.enum(["device","system"]),Al=z.z.discriminatedUnion("type",[z.z.object({type:z.z.literal("category"),target:Il,access:z.z.array(Sl).min(1)}),z.z.object({type:z.z.literal("capability"),target:z.z.string(),access:z.z.array(Sl).min(1)}),z.z.object({type:z.z.literal("addon"),target:z.z.string(),access:z.z.array(Sl).min(1)}),z.z.object({type:z.z.literal("device"),targets:z.z.array(z.z.string()).min(1),access:z.z.array(Sl).min(1)})]),Pl=z.z.object({id:z.z.string(),username:z.z.string(),passwordHash:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:jl,allowedDevices:kl,scopes:z.z.array(Al).default([]),createdAt:z.z.number(),updatedAt:z.z.number()}),wl=z.z.object({id:z.z.string(),label:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:jl,allowedDevices:kl,tokenHash:z.z.string(),tokenPrefix:z.z.string(),createdAt:z.z.number(),lastUsedAt:z.z.number().optional()}),Ol=z.z.object({id:z.z.string(),userId:z.z.string(),name:z.z.string(),tokenHash:z.z.string(),tokenPrefix:z.z.string(),scopes:z.z.array(Al),expiresAt:z.z.number().nullish(),lastUsedAt:z.z.number().nullish(),createdAt:z.z.number()}),Cl=z.z.object({integrationId:z.z.string(),displayName:z.z.string(),requestedScopes:z.z.array(Al),allowedRedirectPrefixes:z.z.array(z.z.string()).min(1),allowedPrivateHostPaths:z.z.array(z.z.string()).optional(),requiresPkce:z.z.boolean().optional(),hubUrl:z.z.string().optional(),refreshTokenTtlSec:z.z.union([z.z.number().int().positive(),z.z.literal("never")]).optional()}),Nl={name:"oauth-integration",scope:"system",mode:"collection",internal:!0,methods:{getDescriptor:(0,m.A)(z.z.void(),Cl)}},xl=z.z.enum(["new","entered","left","moving","idle"]),Ml=z.z.enum(["motion","object","audio"]),El=z.z.discriminatedUnion("kind",[Ad,Pd]),Tl=z.z.enum(["motion","audio","person","vehicle","animal","door","pir","smoke","water","button","package","generic"]),Dl=z.z.enum(["motion","audio","detection","sensor","control","custom","package"]),Rl=z.z.enum(["macro","sub"]),Bl=z.z.object({kind:z.z.string(),labelKey:z.z.string(),label:z.z.string(),color:z.z.string(),iconId:z.z.string(),icon:Tl,category:Dl,parentKind:z.z.string().nullable(),level:Rl,source:z.z.object({capName:z.z.string(),deviceId:z.z.number()})}),Ll=z.z.object({deviceId:z.z.number(),kinds:z.z.array(Bl).readonly()}),Fl=z.z.object({id:z.z.string(),deviceId:z.z.number(),sourceDeviceId:z.z.number(),kind:z.z.string(),value:z.z.record(z.z.string(),z.z.unknown()).nullable(),timestamp:z.z.number()}),_l=z.z.object({x:z.z.number(),y:z.z.number(),timestamp:z.z.number(),bbox:Ha}),ql=z.z.object({timestamp:z.z.number(),position:_l,mediaKey:z.z.string()}),Ul=z.z.object({minX:z.z.number(),minY:z.z.number(),maxX:z.z.number(),maxY:z.z.number()}),$l=z.z.enum(["full","slim"]),Vl=z.z.object({label:z.z.string(),peakScore:z.z.number(),count:z.z.number(),firstAt:z.z.number(),lastAt:z.z.number()}),Hl=z.z.enum(["pipeline","sensor","audio"]),Kl=z.z.enum(["none","staging","trained"]),Wl={markForTrain:z.z.boolean().optional(),debug:z.z.boolean().optional()},Gl={retrainStatus:Kl.optional()},Zl=z.z.object(Wl),Jl=z.z.object({trackId:z.z.string(),markForTrain:z.z.boolean(),debug:z.z.boolean(),retrainStatus:Kl}),Yl=z.z.union([z.z.literal(1),z.z.literal(2)]),Xl=z.z.object({stepId:z.z.string(),modelId:z.z.string().optional(),decidedAt:z.z.number()}),Ql={label:z.z.string().optional(),labelScore:z.z.number().optional(),labelMeta:Xl.optional(),subLabel:z.z.string().optional(),subLabelScore:z.z.number().optional(),subLabelMeta:Xl.optional()},eu=z.z.object({deviceId:z.z.number(),tracks:z.z.number().int(),files:z.z.number().int(),bytes:z.z.number().int()}),tu=z.z.object({generatedAt:z.z.number(),trackCount:z.z.number().int(),fileCount:z.z.number().int(),byteCount:z.z.number().int(),truncated:z.z.boolean(),devices:z.z.array(eu).readonly()}),nu=z.z.object(Object.assign({trackId:z.z.string(),deviceId:z.z.number(),className:z.z.string()},Ql,{producingDeviceName:z.z.string().optional(),source:Hl.optional(),firstSeen:z.z.number(),lastSeen:z.z.number(),positions:z.z.array(_l).readonly(),snapshots:z.z.array(ql).readonly(),zonesVisited:z.z.array(z.z.string()).readonly(),zoneNames:z.z.array(z.z.string()).readonly().optional(),classes:z.z.array(z.z.string()).readonly().optional(),totalDistance:z.z.number(),state:xl,active:z.z.boolean(),importance:z.z.number().optional(),bestEventId:z.z.string().optional(),importanceReason:z.z.string().optional(),audioLabels:z.z.array(Vl).readonly().optional(),envelope:Ul.optional(),hasFace:z.z.boolean().optional()},Wl,Gl)),au={id:z.z.string(),deviceId:z.z.number(),timestamp:z.z.number()},ru=z.z.object(Object.assign({},au,{kind:z.z.literal("motion"),regionCount:z.z.number(),regions:z.z.array(z.z.object({bbox:Ha,pixelCount:z.z.number(),intensity:z.z.number()})).readonly().optional(),frameWidth:z.z.number().optional(),frameHeight:z.z.number().optional(),mediaUrl:z.z.string().optional()})),ou=z.z.enum(["pipeline","onboard"]),iu=z.z.enum(["enter","exit"]),cu=z.z.object({direction:iu,zoneId:z.z.string(),zoneName:z.z.string().optional()}),su=z.z.object(Object.assign({},au,{kind:z.z.literal("object"),source:ou.optional(),frameId:z.z.string().optional(),trackId:z.z.string().optional(),className:z.z.string()},Ql,{confidence:z.z.number().optional(),bbox:Ha.optional(),zones:z.z.array(z.z.string()).readonly().optional(),state:xl.optional(),zoneCrossing:cu.optional(),frameWidth:z.z.number().optional(),frameHeight:z.z.number().optional(),mediaKey:z.z.string().optional(),keyFrameMediaKey:z.z.string().optional(),mediaUrl:z.z.string().optional(),importance:z.z.number().optional()})),du=z.z.object(Object.assign({},au,{kind:z.z.literal("audio"),rms:z.z.number(),dbfs:z.z.number(),classification:z.z.object({className:z.z.string(),originalClass:z.z.string().optional(),score:z.z.number()}).optional(),mediaUrl:z.z.string().optional()})),lu=z.z.enum(["crop","thumbnail","snapshot","firstFrame","lastFrame","fullFrame","fullFrameBoxed","faceCrop","plateCrop","keyFrame","keyFrameSmall","thumbnailSmall"]),uu=z.z.object({key:z.z.string(),kind:lu,base64:z.z.string(),sizeBytes:z.z.number(),timestamp:z.z.number()}),mu=uu.omit({base64:!0}),pu=z.z.enum(["person","vehicle","animal","package","face","plate"]),bu=z.z.enum(["subject","model_error"]),gu=z.z.enum(["operator","assist"]),zu=z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),yu=z.z.object({id:z.z.string(),trackId:z.z.string(),deviceId:z.z.number(),mediaKey:z.z.string(),bbox:zu,macroClass:pu,label:z.z.string().optional(),subLabel:z.z.string().optional(),kind:bu,source:gu,assistModelId:z.z.string().optional(),assistScore:z.z.number().optional(),exportedInBatch:z.z.string().optional(),createdAt:z.z.number()}),fu=yu.omit({id:!0,trackId:!0,deviceId:!0,mediaKey:!0,createdAt:!0,exportedInBatch:!0}),vu=z.z.object({trackId:z.z.string(),deviceId:z.z.number(),className:z.z.string(),label:z.z.string().optional(),firstSeen:z.z.number(),lastSeen:z.z.number(),frameCount:z.z.number().int(),annotationCount:z.z.number().int()}),hu=z.z.object({mediaKey:z.z.string(),kind:lu,timestamp:z.z.number(),sizeBytes:z.z.number().int(),copied:z.z.boolean()}),Su=z.z.object({frameId:z.z.string(),deviceId:z.z.number(),trackId:z.z.string(),sourceMediaKey:z.z.string(),sourceKind:lu,sizeBytes:z.z.number().int(),width:z.z.number().int(),height:z.z.number().int(),copiedAt:z.z.number()}),ju=z.z.enum(["source-missing","unreadable-image","write-failed"]),ku=z.z.object({copied:z.z.array(Su).readonly(),refused:z.z.array(z.z.object({sourceMediaKey:z.z.string(),reason:ju})).readonly()}),Iu=z.z.object({candidates:z.z.array(hu).readonly(),copies:z.z.array(Su).readonly(),autoPickMediaKey:z.z.string().optional()}),Au=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("package"),zone:zu.optional()}),z.z.object({kind:z.z.literal("objects"),modelId:z.z.string(),minScore:z.z.number().optional()})]),Pu=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("proposed"),modelId:z.z.string(),stepId:z.z.string(),minScore:z.z.number(),proposals:z.z.array(fu).readonly(),belowThreshold:z.z.number().int()}),z.z.object({kind:z.z.literal("refused"),reason:z.z.string(),detail:z.z.string().optional()})]),wu=z.z.object({trackId:z.z.string(),retrainStatus:Kl,changed:z.z.boolean(),reason:z.z.enum(["unknown-track","no-frames-copied","not-staging","not-trained","unchanged"]).optional()}),Ou=z.z.object({deviceId:z.z.number(),since:z.z.number().optional(),until:z.z.number().optional(),limit:z.z.number().int().min(1).max(5e3).default(1e3),projection:z.z.enum(["full","slim"]).optional()}),Cu=Ou.extend({classFilter:z.z.string().optional()}),Nu=z.z.object({deviceIds:z.z.array(z.z.number()),since:z.z.number().optional(),until:z.z.number().optional(),limit:z.z.number().int().min(1).max(1e3).default(200),cursor:z.z.string().optional(),projection:$l.optional()}),xu=z.z.object({tracks:z.z.array(nu).readonly(),nextCursor:z.z.string().nullable()}),Mu=z.z.object({deviceId:z.z.number(),since:z.z.number(),until:z.z.number(),limit:z.z.number().int().min(1).max(200).default(50),minImportance:z.z.number().min(0).max(1).optional(),classFilter:z.z.string().optional()}),Eu=z.z.object(Object.assign({id:z.z.string(),trackId:z.z.string(),timestamp:z.z.number(),className:z.z.string()},Ql,{importance:z.z.number(),bestEventId:z.z.string(),windowMs:z.z.number().optional()},Wl,Gl)),Tu=z.z.object({trackId:z.z.string(),className:z.z.string(),confidence:z.z.number(),bbox:Ha,zones:z.z.array(z.z.string()).readonly(),state:xl}),Du=z.z.looseObject({id:z.z.string(),kind:z.z.enum(["first-level","detail"]),macroClass:z.z.string(),score:z.z.number(),bbox:z.z.object({x:z.z.number(),y:z.z.number(),width:z.z.number(),height:z.z.number()}),labels:z.z.array(z.z.looseObject({label:z.z.string(),score:z.z.number()})).readonly(),parentId:z.z.string().optional()}),Ru=su.extend({score:z.z.number()}),Bu=z.z.object({text:z.z.string(),deviceId:z.z.number().optional(),since:z.z.number().optional(),until:z.z.number().optional(),classFilter:z.z.string().optional(),limit:z.z.number().default(50),minScore:z.z.number().min(0).max(1).default(.2)}),Lu=z.z.object({tracks:z.z.number().int(),events:z.z.number().int(),media:z.z.number().int(),faces:z.z.number().int(),plates:z.z.number().int(),embeddings:z.z.number().int()}),Fu=z.z.object({deviceId:z.z.number(),rows:z.z.number().int(),bytes:z.z.number().int()}),_u=z.z.object({totalRows:z.z.number().int(),totalBytes:z.z.number().int(),devices:z.z.array(Fu).readonly()}),qu=z.z.object({motion:z.z.number().int(),object:z.z.number().int(),audio:z.z.number().int()}),Uu=z.z.object({deviceId:z.z.number().optional(),since:z.z.number().optional(),until:z.z.number().optional(),maxTracks:z.z.number().int().positive().optional(),executeOnNodeId:z.z.string().optional(),pacingMs:z.z.number().int().nonnegative().optional()}),$u=z.z.object({deleted:z.z.number()}),Vu=z.z.object({started:z.z.boolean(),alreadyRunning:z.z.boolean()}),Hu=z.z.object({running:z.z.boolean(),scanned:z.z.number(),rebuilt:z.z.number(),missingKeyFrame:z.z.number(),missingBbox:z.z.number(),notRunnable:z.z.number(),noCapableNode:z.z.number(),failed:z.z.number(),complete:z.z.boolean().nullable(),startedAtMs:z.z.number().nullable(),finishedAtMs:z.z.number().nullable(),error:z.z.string().nullable()}),Ku={name:"pipeline-analytics",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],exposesDeviceSettings:!0,methods:{getActiveTracks:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(nu).readonly()),getTrack:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string()}),nu.nullable()),listTracks:(0,m.A)(z.z.object({deviceId:z.z.number(),since:z.z.number().optional(),until:z.z.number().optional(),limit:z.z.number().optional(),zone:El.optional(),projection:$l.optional()}),z.z.array(nu).readonly()),listRecentTracks:(0,m.A)(Nu,xu),clearTracks:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),getMotionEvents:(0,m.A)(Ou,z.z.array(ru).readonly()),getObjectEvents:(0,m.A)(Cu,z.z.array(su).readonly()),getAudioEvents:(0,m.A)(Ou,z.z.array(du).readonly()),listEventKinds:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(Bl).readonly()),listEventKindsBatch:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).min(1).max(200)}),z.z.array(Ll).readonly()),getSensorEvents:(0,m.A)(z.z.object({deviceId:z.z.number(),since:z.z.number().optional(),until:z.z.number().optional(),kinds:z.z.array(z.z.string()).optional(),limit:z.z.number().int().min(1).max(5e3).default(1e3)}),z.z.array(Fl).readonly()),getKeyEvents:(0,m.A)(Mu,z.z.array(Eu).readonly()),getEventDensity:(0,m.A)(z.z.object({deviceId:z.z.number(),since:z.z.number(),until:z.z.number(),bucketMs:z.z.number().int().positive()}),z.z.array(z.z.object({bucketStart:z.z.number(),motion:z.z.number().int(),object:z.z.number().int(),audio:z.z.number().int()})).readonly()),pruneEventsBefore:(0,m.A)(z.z.object({deviceId:z.z.number(),cutoffMs:z.z.number()}),z.z.object({motion:z.z.number().int(),object:z.z.number().int(),audio:z.z.number().int()}),{kind:"mutation",auth:"admin"}),pruneTracksBefore:(0,m.A)(z.z.object({deviceId:z.z.number(),cutoffMs:z.z.number()}),Lu,{kind:"mutation",auth:"admin"}),wipeAllAnalytics:(0,m.A)(z.z.object({deviceId:z.z.number()}),Lu,{kind:"mutation",auth:"admin"}),deleteTracks:(0,m.A)(z.z.object({deviceId:z.z.number(),trackIds:z.z.array(z.z.string()).min(1)}),z.z.object({deleted:z.z.number().int(),failed:z.z.array(z.z.string()).readonly()}),{kind:"mutation",auth:"admin"}),setTrackFlags:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),flags:Zl}),Jl,{kind:"mutation"}),getEventStoreFootprint:(0,m.A)(z.z.object({}),_u,{kind:"query",auth:"admin"}),pruneEvents:(0,m.A)(z.z.object({olderThanMs:z.z.number(),reason:De.optional()}),qu,{kind:"mutation",auth:"admin"}),deleteDeviceEvents:(0,m.A)(z.z.object({deviceId:z.z.number()}),qu,{kind:"mutation",auth:"admin"}),relocateMedia:(0,m.A)(ct,z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),getMediaRelocateStatus:(0,m.A)(z.z.object({}),z.z.array(ot).readonly(),{kind:"query",auth:"admin"}),cancelMediaRelocate:(0,m.A)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),listOpsLog:(0,m.A)(Be,z.z.array(Re).readonly(),{kind:"query",auth:"admin"}),getTrainingExportSummary:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).optional()}),tu,{kind:"query",auth:"admin"}),getTrainingExportUrl:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).optional()}),z.z.object({url:z.z.string()}),{kind:"query",auth:"admin"}),listRetrainStaging:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).optional(),limit:z.z.number().int().min(1).max(500).optional()}),z.z.array(vu).readonly(),{kind:"query",auth:"admin"}),listRetrainFrames:(0,m.A)(z.z.object({trackId:z.z.string()}),Iu,{kind:"query",auth:"admin"}),selectRetrainFrames:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),mediaKeys:z.z.array(z.z.string()).min(1)}),ku,{kind:"mutation",auth:"admin"}),deselectRetrainFrame:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),frameId:z.z.string()}),z.z.object({removed:z.z.boolean(),removedAnnotations:z.z.number().int()}),{kind:"mutation",auth:"admin"}),getRetrainFrameImage:(0,m.A)(z.z.object({frameId:z.z.string()}),z.z.object({base64:z.z.string(),width:z.z.number().int(),height:z.z.number().int()}),{kind:"query",auth:"admin"}),proposeRetrainAnnotations:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),frameId:z.z.string(),subject:Au,nodeId:z.z.string().optional()}),Pu,{kind:"mutation",auth:"admin"}),listRetrainAnnotations:(0,m.A)(z.z.object({trackId:z.z.string()}),z.z.array(yu).readonly(),{kind:"query",auth:"admin"}),saveRetrainAnnotations:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),frameId:z.z.string(),annotations:z.z.array(fu)}),z.z.array(yu).readonly(),{kind:"mutation",auth:"admin"}),completeRetrainTrack:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string()}),wu,{kind:"mutation",auth:"admin"}),restageRetrainTrack:(0,m.A)(z.z.object({deviceId:z.z.number(),trackId:z.z.string()}),wu,{kind:"mutation",auth:"admin"}),getRetrainExportUrl:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).optional()}),z.z.object({url:z.z.string()}),{kind:"query",auth:"admin"}),getEventMedia:(0,m.A)(z.z.object({eventId:z.z.string(),kind:lu.optional()}),z.z.array(uu).readonly()),getTrackMedia:(0,m.A)(z.z.object({trackId:z.z.string(),kinds:z.z.array(lu).optional()}),z.z.array(uu).readonly()),listTrackMedia:(0,m.A)(z.z.object({trackId:z.z.string()}),z.z.array(mu).readonly()),searchObjectEvents:(0,m.A)(Bu,z.z.array(Ru).readonly()),wipeObjectEmbeddings:(0,m.A)(z.z.object({}),$u,{kind:"mutation",auth:"admin"}),rebuildObjectEmbeddings:(0,m.A)(Uu,Vu,{kind:"mutation",auth:"admin"}),getObjectEmbeddingRebuildStatus:(0,m.A)(z.z.object({}),Hu)},events:{onFrameTracked:{data:z.z.object({deviceId:z.z.number(),timestamp:z.z.number(),frameWidth:z.z.number(),frameHeight:z.z.number(),detections:z.z.array(Du).readonly()})},onTrackStarted:{data:z.z.object({deviceId:z.z.number(),trackId:z.z.string(),className:z.z.string()})},onTrackEnded:{data:z.z.object({deviceId:z.z.number(),trackId:z.z.string(),className:z.z.string(),durationMs:z.z.number()})},onDetectionEvent:{data:z.z.object({deviceId:z.z.number(),kind:Ml,eventId:z.z.string(),timestamp:z.z.number()})}}},Wu=z.z.object({handle:m.$,cropFrameSpace:z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()})}),Gu=z.z.enum(["onnx","coreml","openvino","tflite","pt","gguf"]),Zu=z.z.enum(["detector","cropper","classifier","refiner","audio-classifier"]),Ju=z.z.object({runtime:z.z.enum(["node","python"]),backend:z.z.string(),format:Gu,device:z.z.string().optional()}),Yu=z.z.object({id:z.z.string(),label:z.z.string(),description:z.z.string().optional()}),Xu=z.z.object({engine:Ju,devices:z.z.array(Yu).readonly(),defaultDevice:z.z.string()}),Qu=z.z.lazy(()=>z.z.object({addonId:z.z.string(),addonName:z.z.string(),slot:Zu,inputClasses:z.z.array(z.z.string()).readonly(),outputClasses:z.z.array(z.z.string()).readonly(),enabled:z.z.boolean(),modelId:z.z.string(),children:z.z.array(Qu).readonly(),group:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional()})),em=z.z.lazy(()=>z.z.object({addonId:z.z.string(),enabled:z.z.boolean(),modelId:z.z.string(),children:z.z.array(em).readonly(),settings:z.z.record(z.z.string(),z.z.unknown()).optional()})),tm=z.z.object({id:z.z.string(),name:z.z.string(),createdAt:z.z.string(),updatedAt:z.z.string(),engine:Ju,steps:z.z.array(em).readonly()}),nm=z.z.object({id:z.z.string(),name:z.z.string(),formats:z.z.record(z.z.string(),z.z.object({downloaded:z.z.boolean(),sizeMB:z.z.number()})),group:Bt.optional(),legacy:z.z.boolean().optional()}),am=z.z.custom(),rm=z.z.object({id:z.z.string(),name:z.z.string(),slot:Zu,inputClasses:z.z.array(z.z.string()).readonly(),outputClasses:z.z.array(z.z.string()).readonly(),childSlots:z.z.array(Zu).readonly(),models:z.z.array(nm).readonly(),defaultModelId:z.z.string(),defaultModelIdByFormat:z.z.record(z.z.string(),z.z.string()).optional(),enabledByDefault:z.z.boolean().optional(),backfillIntoExistingOverrides:z.z.boolean().optional(),defaultConfidence:z.z.number(),group:z.z.string().optional(),configSchema:z.z.array(am).readonly().optional()}),om=z.z.object({id:Zu,label:z.z.string(),priority:z.z.number(),parentSlot:Zu.nullable(),addons:z.z.array(rm).readonly()}),im=z.z.object({availableEngines:z.z.array(Xu).readonly(),selectedEngine:Ju,slots:z.z.array(om).readonly()}),cm=z.z.object({runtimeId:z.z.enum(["onnx","openvino","coreml","edgetpu"]).nullable(),device:z.z.string().nullable(),state:z.z.enum(["idle","installing","verifying","ready","failed"]),progress:z.z.number().optional(),error:z.z.string().optional(),nextRetryAt:z.z.number().optional(),configIssues:z.z.array(z.z.string()).optional()}),sm=z.z.lazy(()=>z.z.object({addonId:z.z.string(),modelId:z.z.string().optional(),enabled:z.z.boolean().default(!0),children:z.z.array(sm).optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional(),jumpDeviceKey:z.z.string().optional()})),dm=z.z.object({addonId:z.z.string(),chosen:z.z.string(),running:z.z.string(),format:z.z.string()}),lm=z.z.object({addonId:z.z.string(),kind:z.z.enum(["unknown-addon","no-format-build"]),detail:z.z.string()}),um=z.z.object({ok:z.z.boolean(),issues:z.z.array(lm).readonly(),substitutions:z.z.array(dm).readonly(),format:z.z.string()}),mm=z.z.object({filename:z.z.string(),stepIds:z.z.array(z.z.string()).readonly().optional()}),pm=z.z.object({base64:z.z.string(),filename:z.z.string()}),bm=z.z.object({filename:z.z.string(),sizeKb:z.z.number()}),gm=z.z.object({base64:z.z.string()}),zm=z.z.object({id:z.z.string(),name:z.z.string(),description:z.z.string(),available:z.z.boolean(),rawLabels:z.z.array(z.z.string()).readonly().optional()}),ym=z.z.object({activeBackend:z.z.string(),availableBackends:z.z.array(zm).readonly(),sampleRate:z.z.number(),chunkDurationMs:z.z.number()}),fm=z.z.object({filePath:z.z.string(),sizeMB:z.z.number(),durationMs:z.z.number()}),vm=z.z.object({success:z.z.boolean(),error:z.z.string().optional(),frame:z.z.custom().optional()}),hm=z.z.custom(),Sm=z.z.custom(),jm=z.z.custom(),km=z.z.custom(),Im=z.z.custom(),Am=z.z.custom(),Pm={name:"pipeline-executor",scope:"system",mode:"singleton",methods:{getAvailableEngines:(0,m.A)(z.z.void(),z.z.array(Ju)),getSelectedEngine:(0,m.A)(z.z.void(),Ju),getDefaultSteps:(0,m.A)(Ju,z.z.array(Qu)),getEngineProvisioning:(0,m.A)(z.z.object({nodeId:z.z.string()}),cm),getVideoPipelineSteps:(0,m.A)(z.z.void(),z.z.record(z.z.string(),z.z.object({modelId:z.z.string(),settings:z.z.record(z.z.string(),z.z.unknown()).readonly()}))),setVideoPipelineSteps:(0,m.A)(z.z.object({steps:z.z.record(z.z.string(),z.z.object({modelId:z.z.string(),settings:z.z.record(z.z.string(),z.z.unknown()).readonly()}))}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),clearDeviceOverrides:(0,m.A)(z.z.object({nodeId:z.z.string()}),z.z.object({success:z.z.literal(!0),clearedDevices:z.z.number()}),{kind:"mutation",auth:"admin"}),getSchema:(0,m.A)(z.z.void(),im),getGlobalSteps:(0,m.A)(z.z.void(),z.z.array(Qu).readonly().nullable()),getGlobalPipelineConfig:(0,m.A)(z.z.void(),hm),getOrchestratorConfigSchema:(0,m.A)(z.z.void(),Sm),validatePipeline:(0,m.A)(z.z.object({steps:z.z.array(sm)}),um),listTemplates:(0,m.A)(z.z.void(),z.z.array(tm).readonly()),saveTemplate:(0,m.A)(z.z.object({name:z.z.string(),steps:z.z.array(em).readonly(),engine:Ju}),tm,{kind:"mutation"}),updateTemplate:(0,m.A)(z.z.object({id:z.z.string(),name:z.z.string().optional(),steps:z.z.array(em).readonly().optional()}),tm,{kind:"mutation"}),deleteTemplate:(0,m.A)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation"}),getCapabilities:(0,m.A)(z.z.void(),km),getAddonModels:(0,m.A)(z.z.object({addonId:z.z.string()}),Im),downloadModel:(0,m.A)(z.z.object({addonId:z.z.string(),modelId:z.z.string(),format:Gu}),fm,{kind:"mutation"}),deleteModel:(0,m.A)(z.z.object({addonId:z.z.string(),modelId:z.z.string(),format:Gu}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),runPipeline:(0,m.A)(z.z.object({engine:Ju.optional(),steps:z.z.array(sm).min(1),frame:Va.optional(),frameHandle:m.$.optional(),imageBase64:z.z.string().optional(),image:z.z.instanceof(Uint8Array).optional(),referenceImage:z.z.string().optional(),deviceId:z.z.number().optional(),sessionId:z.z.string().optional(),plane:z.z.enum(["full","frame"]).optional(),deviceKey:z.z.string().optional(),nativeCropRef:Wu.optional()}),Am,{kind:"mutation"}),runPipelineBatch:(0,m.A)(z.z.object({engine:Ju.optional(),steps:z.z.array(sm).min(1),frames:z.z.array(Va).min(1).max(255),deviceId:z.z.number().optional(),sessionId:z.z.string().optional(),frameId:z.z.number().int().nonnegative().optional(),deviceKey:z.z.string().optional()}),z.z.object({results:z.z.array(Am).readonly()}),{kind:"mutation"}),cacheFrameInPool:(0,m.A)(z.z.object({data:z.z.instanceof(Uint8Array),width:z.z.number().int().positive(),height:z.z.number().int().positive(),format:z.z.enum(["rgb","bgr","gray"])}),z.z.object({frameId:z.z.number(),width:z.z.number(),height:z.z.number()}),{kind:"mutation"}),inferCached:(0,m.A)(z.z.object({stepId:z.z.string(),frameId:z.z.number().int()}),z.z.record(z.z.string(),z.z.unknown()),{kind:"mutation"}),uncacheFrame:(0,m.A)(z.z.object({frameId:z.z.number().int()}),z.z.void(),{kind:"mutation"}),getEffectiveTuning:(0,m.A)(z.z.void(),z.z.object({batchMode:z.z.string(),windowMs:z.z.number(),maxBatchSize:z.z.number(),concurrency:z.z.number()})),listLoadedEngines:(0,m.A)(z.z.void(),z.z.array(z.z.object({engineKey:z.z.string(),engine:Ju,modelsLoaded:z.z.array(z.z.string()).readonly(),inUseByCameras:z.z.array(z.z.number()).readonly(),kind:z.z.enum(["runtime","warm-override","device-pool"]),poolPid:z.z.number().nullable(),idleMs:z.z.number().nullable(),idleTtlMs:z.z.number().nullable()})).readonly()),spinEngine:(0,m.A)(z.z.object({engine:Ju}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),killEngine:(0,m.A)(z.z.object({engine:Ju,force:z.z.boolean().optional()}),z.z.object({success:z.z.boolean(),reason:z.z.string().optional()}),{kind:"mutation",auth:"admin"}),listReferenceImages:(0,m.A)(z.z.void(),z.z.array(mm).readonly()),getReferenceImage:(0,m.A)(z.z.object({filename:z.z.string()}),pm.nullable()),getReferenceAudioFiles:(0,m.A)(z.z.void(),z.z.array(bm).readonly()),getReferenceAudio:(0,m.A)(z.z.object({filename:z.z.string()}),gm.nullable()),getAudioCapabilities:(0,m.A)(z.z.void(),ym),runAudioTest:(0,m.A)(z.z.object({addonId:z.z.string(),modelId:z.z.string(),filename:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional()}),vm,{kind:"mutation"}),getDetectionConfigSchema:(0,m.A)(z.z.void(),jm)}},wm=z.z.object({activeCameras:z.z.number(),throttledCameras:z.z.number(),avgInferenceTimeMs:z.z.number(),queueDepth:z.z.number()}),Om=z.z.object({detectionMode:z.z.enum(["disabled","always-on","on-motion"]),configuredFps:z.z.number(),actualFps:z.z.number(),queueDepth:z.z.number(),avgInferenceTimeMs:z.z.number(),droppedFrames:z.z.number(),phase:z.z.enum(["idle","watching","active"])}),Cm=Om.extend({deviceId:z.z.number()}),Nm=z.z.enum(["polygon","tripwire"]),xm=z.z.object({x:z.z.number(),y:z.z.number()}),Mm=z.z.object({id:z.z.string(),name:z.z.string(),kind:Nm.default("polygon"),polygon:z.z.array(xm).readonly(),color:z.z.string().default("#3b82f6")}),Em={name:"zones",scope:"device",mode:"singleton",deviceTypes:[m.C.Camera],methods:{listZones:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(Mm).readonly()),addZone:(0,m.A)(z.z.object({deviceId:z.z.number(),zone:Mm}),z.z.void(),{kind:"mutation",auth:"admin"}),removeZone:(0,m.A)(z.z.object({deviceId:z.z.number(),zoneId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),updateZone:(0,m.A)(z.z.object({deviceId:z.z.number(),zone:Mm}),z.z.void(),{kind:"mutation",auth:"admin"})},runtimeState:z.z.object({zones:z.z.array(Mm).readonly()})},Tm=z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),Dm=z.z.object({bytes:z.z.instanceof(Uint8Array).optional(),jpeg:z.z.string().optional(),width:z.z.number().int().positive(),height:z.z.number().int().positive(),tier:z.z.enum(["native","ram-fullframe"]).optional()}),Rm=z.z.object({bbox:Tm,className:z.z.string()}),Bm=z.z.object({stepId:z.z.string(),className:z.z.string(),score:z.z.number(),bbox:Tm.optional(),embedding:z.z.string().optional(),label:z.z.string().optional(),labelTier:z.z.union([z.z.literal(1),z.z.literal(2)]).optional(),labelModelId:z.z.string().optional(),alignedCropJpeg:z.z.string().optional(),nativeFaceShortSidePx:z.z.number().optional()}),Lm=z.z.enum(["unknown-step","model-not-servable","unreadable-frame","execution-failed"]),Fm=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("ran"),nodeId:z.z.string(),modelId:z.z.string(),details:z.z.array(Bm)}),z.z.object({kind:z.z.literal("refused"),nodeId:z.z.string(),reason:Lm,detail:z.z.string()})]),_m=0,qm=6e4,Um=3e4,$m=500,Vm=0,Hm=6e5,Km=12e4,Wm=5e3,Gm=1,Zm=30,Jm=4,Ym=1,Xm=1,Qm=30,ep=10,tp=1,np=0,ap=300,rp=30,op=5,ip=1,cp=10,sp=4,dp=1,lp=z.z.enum(["onboard","analyzer"]),up=z.z.array(lp),mp=z.z.object({deviceId:z.z.number(),detected:z.z.boolean(),source:lp.default("analyzer"),regions:z.z.array(ps).readonly().optional()}),pp=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("local-broker")}),z.z.object({kind:z.z.literal("remote-restream"),ownerNodeId:z.z.string(),ownerReachableHost:z.z.string().optional(),hubHostnameOverride:z.z.string().optional()})]).describe("Per-camera frame-source mode for the runner (P2c)"),bp=z.z.object({deviceKey:z.z.string(),weight:z.z.number().positive().default(1),maxSessions:z.z.number().int().positive().nullable().default(null)}),gp=z.z.object({deviceId:z.z.number(),detectionMode:z.z.enum(["disabled","always-on","on-motion"]).default("on-motion"),audioMode:z.z.enum(["disabled","always-on","on-motion"]).default("always-on"),motionCooldownMs:z.z.number().min(_m).default(Um),maxSessionHoldMs:z.z.number().min(Vm).max(Hm).optional(),motionFps:z.z.number().min(Gm).max(Zm).default(Jm),detectionFps:z.z.number().min(Xm).max(Qm).default(ep),motionStreamId:z.z.string(),detectionStreamId:z.z.string(),motionSources:up.default(["analyzer"]),pipelineEnabled:z.z.boolean().default(!0),steps:z.z.array(sm).readonly().optional(),audio:z.z.object({modelId:z.z.string().optional(),enabled:z.z.boolean()}).nullable().optional(),zones:z.z.array(Mm).readonly().default([]),onboardMotionDrivesAnalyzer:z.z.boolean().default(!0),occupancyRecheckEnabled:z.z.boolean().default(!1),occupancyRecheckSec:z.z.number().min(np).max(ap).default(rp),occupancyRecheckFrames:z.z.number().min(ip).max(cp).default(sp),frameSource:pp.default({kind:"local-broker"}),deviceKey:z.z.string().optional(),inferenceDevices:z.z.array(bp).readonly().optional()}),zp=[{key:"motionSources",type:"multiselect",label:"Motion Sources",default:["analyzer"],options:[{value:"analyzer",label:"Frame-diff Analyzer (motion addon)"},{value:"onboard",label:"Camera Onboard Sensor"}]},{key:"motionFps",type:"slider",label:"Motion FPS (analyzer)",min:Gm,max:Zm,step:Ym,default:Jm,showValue:!0,unit:"fps",nullable:!0,nullLabel:"Default",showWhen:{field:"motionSources",includes:"analyzer"}},{key:"detectionFps",type:"slider",label:"Detection FPS",min:Xm,max:Qm,step:tp,default:ep,showValue:!0,unit:"fps",nullable:!0,nullLabel:"Default"},{key:"motionCooldownMs",type:"slider",label:"Motion Cooldown",description:"Time without a fresh motion event before the active phase ends. Applies to all motion sources \u2014 every motion event re-arms the timer.",min:_m,max:qm,step:$m,default:Um,showValue:!0,unit:"s",displayScale:1e3,nullable:!0,nullLabel:"Default"},{key:"maxSessionHoldMs",type:"slider",label:"Max session hold",description:"Upper bound on how long detection keeps running past the motion cooldown while a subject is still moving in-frame but no longer triggering motion. Prevents the detection box from stopping on a slow-moving subject. Set to 0 to disable.",min:Vm,max:Hm,step:Wm,default:Km,showValue:!0,unit:"s",displayScale:1e3,nullable:!0,nullLabel:"Default"},{key:"onboardMotionDrivesAnalyzer",type:"boolean",label:"Run motion analyzer on onboard motion",description:"When onboard motion is detected, temporarily start the frame-diff analyzer to emit zone results. Stops after the motion cooldown window.",default:!0,showWhen:{field:"motionSources",includes:"onboard"}},{key:"occupancyRecheckEnabled",type:"boolean",style:"checkbox",label:"Occupancy re-check",description:"Periodically re-sample a few frames during the watching phase to confirm the scene is truly empty (catches stationary objects motion-gating would miss). Off by default \u2014 it adds decoder re-dial churn.",default:!1},{key:"occupancyRecheckSec",type:"slider",label:"Occupancy re-check interval",description:"How often (in seconds) the runner re-samples a few frames to confirm the scene is truly empty during the watching phase.",min:np,max:ap,step:op,default:rp,showValue:!0,unit:"s",showWhen:{field:"occupancyRecheckEnabled",equals:!0}},{key:"occupancyRecheckFrames",type:"slider",label:"Occupancy re-check frames",description:"Number of frames sampled per occupancy re-check burst.",min:ip,max:cp,step:dp,default:sp,showValue:!0,showWhen:{field:"occupancyRecheckEnabled",equals:!0}}],yp=z.z.object({nodeId:z.z.string(),attachedCameras:z.z.number(),activeCameras:z.z.number(),avgInferenceFps:z.z.number(),avgInferenceTimeMs:z.z.number(),queueDepthTotal:z.z.number(),devices:z.z.array(z.z.object({deviceKey:z.z.string(),backend:z.z.string(),attachedCameras:z.z.number(),queueDepthTotal:z.z.number()})).default([]),hardware:z.z.object({hasGpu:z.z.boolean(),inferenceBackend:z.z.string().optional(),cpuCores:z.z.number().optional()})}),fp=z.z.object({nodeId:z.z.string(),activeCameras:z.z.number(),throttledCameras:z.z.number(),avgInferenceTimeMs:z.z.number(),queueDepth:z.z.number()}),vp={name:"pipeline-runner",scope:"system",mode:"singleton",methods:{attachCamera:(0,m.A)(gp,z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),detachCamera:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),reportMotion:(0,m.A)(mp,z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),getLocalLoad:(0,m.A)(z.z.void(),yp),getLocalMetrics:(0,m.A)(z.z.void(),fp),getCameraMetrics:(0,m.A)(z.z.object({deviceId:z.z.number()}),Om.nullable()),getAllCameraMetrics:(0,m.A)(z.z.void(),z.z.array(Cm).readonly()),getLocalCameras:(0,m.A)(z.z.void(),z.z.array(z.z.number()).readonly()),getNativeCrop:(0,m.A)(z.z.object({handle:m.$,bbox:Tm,maxWidth:z.z.number().int().positive().optional(),encodeJpeg:z.z.boolean().optional()}),Dm.nullable()),runDetailSubtree:(0,m.A)(z.z.object({deviceId:z.z.number(),frameHandle:m.$.optional(),frameJpeg:z.z.string().optional(),cropJpeg:z.z.string().optional(),parent:Rm,steps:z.z.array(z.z.string()).optional()}),z.z.object({details:z.z.array(Bm)}).nullable(),{kind:"mutation"}),runStatelessStep:(0,m.A)(z.z.object({stepId:z.z.string(),modelId:z.z.string(),frameJpeg:z.z.string(),bbox:Tm,className:z.z.string(),sourceDeviceId:z.z.number()}),Fm,{kind:"mutation"})}},hp=z.z.object({engine:Ju.optional(),steps:z.z.array(sm).readonly(),audio:z.z.object({engine:Ju.optional(),modelId:z.z.string().optional(),enabled:z.z.boolean(),settings:z.z.record(z.z.string(),z.z.unknown()).readonly().optional()}).nullable().optional()}),Sp=z.z.object({id:z.z.string(),name:z.z.string(),description:z.z.string().optional(),config:hp,createdAt:z.z.string(),updatedAt:z.z.string()}),jp=z.z.object({modelId:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional(),jumpDeviceKey:z.z.string().optional()}),kp=z.z.object({maxCameras:z.z.number().int().nonnegative().nullable().default(null),detectWeight:z.z.number().positive().optional(),detect:z.z.boolean().optional(),decode:z.z.boolean().optional(),audio:z.z.boolean().optional(),ingest:z.z.boolean().optional(),reachableHost:z.z.string().optional(),inferenceDevices:z.z.record(z.z.string(),z.z.object({enabled:z.z.boolean(),weight:z.z.number().positive().optional(),maxSessions:z.z.number().int().positive().optional(),steps:z.z.record(z.z.string(),jp).optional()})).optional()}),Ip=z.z.object({steps:z.z.array(sm).readonly(),audio:z.z.object({modelId:z.z.string(),enabled:z.z.boolean()}).nullable()}),Ap=z.z.object({modelId:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).readonly().optional()}),Pp=z.z.object({pinnedAgentNodeId:z.z.string().optional(),stepToggles:z.z.record(z.z.string(),z.z.boolean()).optional(),stepOverridesByDevice:z.z.record(z.z.string(),z.z.record(z.z.string(),z.z.record(z.z.string(),Ap))).optional(),pipelineByAgent:z.z.record(z.z.string(),Ip).optional()}),wp=z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string(),pinned:z.z.boolean(),reason:z.z.enum(["manual","capacity","hardware-affinity","failover","rebalance"]),assignedAt:z.z.number()}),Op=z.z.object({nodeId:z.z.string(),online:z.z.boolean(),load:yp,score:z.z.number(),decodeHwaccel:z.z.string().nullable()}),Cp=z.z.object({totalAgents:z.z.number(),onlineAgents:z.z.number(),totalCameras:z.z.number(),attachedCameras:z.z.number(),activeCameras:z.z.number(),avgInferenceTimeMs:z.z.number(),queueDepth:z.z.number()}),Np=z.z.record(z.z.string(),z.z.string()),xp=z.z.object({ownerNodeId:z.z.string(),reachableHost:z.z.string().optional(),configIssue:z.z.string().optional()}),Mp=z.z.object({camStreamId:z.z.string(),codec:z.z.string(),width:z.z.number(),height:z.z.number(),fps:z.z.number(),kind:z.z.string()}),Ep=z.z.object({streams:z.z.array(Mp).readonly()}),Tp=z.z.object({detectionNodeId:z.z.string().nullable(),decoderNodeId:z.z.string().nullable(),audioNodeId:z.z.string().nullable(),sourceNodeId:z.z.string().nullable(),pinned:z.z.object({detection:z.z.boolean(),decoder:z.z.boolean(),audio:z.z.boolean()}),reasons:z.z.object({detection:z.z.string().optional(),decoder:z.z.string().optional(),audio:z.z.string().optional()})}),Dp=z.z.object({profile:z.z.string(),status:z.z.string(),codec:z.z.string(),width:z.z.number(),height:z.z.number(),subscribers:z.z.number(),inFps:z.z.number(),outFps:z.z.number()}),Rp=z.z.object({profiles:z.z.array(Dp).readonly(),webrtcSessions:z.z.number(),rtspRestream:z.z.boolean()}),Bp=z.z.object({framesWritten:z.z.number(),getFrameHits:z.z.number(),getFrameMisses:z.z.number(),budgetMb:z.z.number()}),Lp=z.z.object({nodeId:z.z.string(),formats:z.z.array(z.z.string()).readonly(),sessionCount:z.z.number(),shm:Bp}),Fp=z.z.object({enabled:z.z.boolean(),fps:z.z.number()}),_p=z.z.enum(["idle","installing","verifying","ready","failed"]),qp=z.z.object({state:_p,error:z.z.string().optional()}),Up=z.z.enum(["idle","watching","active"]),$p=z.z.object({nodeId:z.z.string(),engine:z.z.object({backend:z.z.string(),device:z.z.string()}),phase:Up,configuredFps:z.z.number(),actualFps:z.z.number(),queueDepth:z.z.number(),avgInferenceMs:z.z.number(),provisioning:qp}),Vp=z.z.object({nodeId:z.z.string(),enabled:z.z.boolean()}),Hp=z.z.enum(["off","continuous","events"]),Kp=z.z.object({mode:Hp,active:z.z.boolean(),storageBytes:z.z.number()}),Wp=z.z.enum(["source","broker","detection","recording","switches"]),Gp=z.z.enum(["timeout","error","partial"]),Zp=z.z.object({stage:Wp,reason:Gp,elapsedMs:z.z.number()}),Jp=z.z.object({deviceId:z.z.number(),assignment:Tp,source:Ep,broker:Rp.nullable(),decoder:Lp.nullable(),motion:Fp.nullable(),detection:$p.nullable(),audio:Vp.nullable(),recording:Kp.nullable(),switchedOff:z.z.array(ie).readonly(),degraded:z.z.array(Zp).readonly(),fetchedAt:z.z.number()}),Yp=z.z.object({key:z.z.string(),backend:z.z.string(),device:z.z.string(),format:z.z.enum(Et),available:z.z.boolean(),enabled:z.z.boolean(),weight:z.z.number(),maxSessions:z.z.number().nullable(),defaultModelId:z.z.string(),steps:z.z.record(z.z.string(),jp).optional()}),Xp=z.z.object({nodeId:z.z.string(),reachable:z.z.boolean(),devices:z.z.array(Yp).readonly()}),Qp={name:"pipeline-orchestrator",scope:"system",mode:"singleton",nodeIdMode:"data",exposesDeviceSettings:!0,methods:{assignPipeline:(0,m.A)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignPipeline:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setPipelineDevicePin:(0,m.A)(z.z.object({deviceId:z.z.number(),deviceKey:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getPipelineDevicePin:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({deviceKey:z.z.string().nullable()})),rebalance:(0,m.A)(z.z.void(),z.z.object({migrated:z.z.number()}),{kind:"mutation",auth:"admin"}),getPipelineAssignments:(0,m.A)(z.z.void(),z.z.array(wp).readonly()),getPipelineAssignment:(0,m.A)(z.z.object({deviceId:z.z.number()}),wp.nullable()),getAgentLoad:(0,m.A)(z.z.void(),z.z.array(Op).readonly()),getGlobalMetrics:(0,m.A)(z.z.void(),Cp),getCameraMetrics:(0,m.A)(z.z.object({deviceId:z.z.number()}),Om.nullable()),getCapabilityBindings:(0,m.A)(z.z.object({nodeId:z.z.string()}),Np),setCapabilityBinding:(0,m.A)(z.z.object({nodeId:z.z.string(),capName:z.z.string(),addonId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getIngestOwner:(0,m.A)(z.z.void(),xp),assignAudio:(0,m.A)(z.z.object({deviceId:z.z.number(),nodeId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignAudio:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getAudioAssignment:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({nodeId:z.z.string(),pinned:z.z.boolean(),assignedAt:z.z.number()}).nullable()),getAudioNodeLoad:(0,m.A)(z.z.void(),z.z.array(z.z.object({nodeId:z.z.string(),deviceCount:z.z.number()}))),getAudioAssignments:(0,m.A)(z.z.void(),z.z.array(z.z.object({deviceId:z.z.number(),nodeId:z.z.string(),pinned:z.z.boolean(),assignedAt:z.z.number()}))),getAgentSettings:(0,m.A)(z.z.object({agentNodeId:z.z.string()}),kp.nullable()),listAgentSettings:(0,m.A)(z.z.void(),z.z.array(z.z.object({nodeId:z.z.string(),settings:kp})).readonly()),removeAgentSettings:(0,m.A)(z.z.object({agentNodeId:z.z.string()}),z.z.object({success:z.z.boolean(),removed:z.z.boolean()}),{kind:"mutation",auth:"admin"}),setAgentMaxCameras:(0,m.A)(z.z.object({agentNodeId:z.z.string(),maxCameras:z.z.number().int().nonnegative().nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setAgentDetectWeight:(0,m.A)(z.z.object({agentNodeId:z.z.string(),detectWeight:z.z.number().positive().nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setAgentCapabilities:(0,m.A)(z.z.object({agentNodeId:z.z.string(),detect:z.z.boolean().nullable().optional(),audio:z.z.boolean().nullable().optional(),ingest:z.z.boolean().nullable().optional()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setAgentReachableHost:(0,m.A)(z.z.object({agentNodeId:z.z.string(),reachableHost:z.z.string().nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setAgentInferenceDevices:(0,m.A)(z.z.object({agentNodeId:z.z.string(),inferenceDevices:z.z.record(z.z.string(),z.z.object({enabled:z.z.boolean(),weight:z.z.number().positive().optional(),maxSessions:z.z.number().int().positive().optional(),steps:z.z.record(z.z.string(),jp).optional()}))}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getNodeInferenceDevices:(0,m.A)(z.z.object({nodeId:z.z.string()}),Xp),resetNodePipelineDefaults:(0,m.A)(z.z.object({agentNodeId:z.z.string()}),z.z.object({success:z.z.literal(!0),effectiveModelId:z.z.string().nullable(),clearedCameraOverrides:z.z.number()}),{kind:"mutation",auth:"admin"}),getCameraSettings:(0,m.A)(z.z.object({deviceId:z.z.number()}),Pp.nullable()),setCameraStepToggle:(0,m.A)(z.z.object({deviceId:z.z.number(),addonId:z.z.string(),enabled:z.z.boolean().nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getCameraStepOverrides:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.record(z.z.string(),z.z.record(z.z.string(),Ap))).nullable()),setCameraStepOverride:(0,m.A)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string(),deviceKey:z.z.string(),addonId:z.z.string(),patch:Ap.nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setCameraPipelineForAgent:(0,m.A)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string(),pipeline:Ip.nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),resolvePipeline:(0,m.A)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string().optional()}),hp),getCameraSwitches:(0,m.A)(z.z.object({deviceId:z.z.number()}),ue),setCameraSwitch:(0,m.A)(z.z.object({deviceId:z.z.number(),switchId:ie,enabled:z.z.boolean()}),ue,{kind:"mutation",auth:"admin"}),getCameraStatus:(0,m.A)(z.z.object({deviceId:z.z.number()}),Jp),getCameraStatuses:(0,m.A)(z.z.object({deviceIds:z.z.array(z.z.number()).optional()}),z.z.array(Jp).readonly()),listTemplates:(0,m.A)(z.z.void(),z.z.array(Sp).readonly()),saveTemplate:(0,m.A)(z.z.object({name:z.z.string(),description:z.z.string().optional(),config:hp}),Sp,{kind:"mutation",auth:"admin"}),updateTemplate:(0,m.A)(z.z.object({id:z.z.string(),name:z.z.string().optional(),description:z.z.string().optional(),config:hp.optional()}),Sp,{kind:"mutation",auth:"admin"}),deleteTemplate:(0,m.A)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"})}},eb={motion:"motion",audio:"audio",person:"person",vehicle:"vehicle",animal:"animal",package:"package",door:"door",pir:"pir",smoke:"smoke",water:"water",button:"button",generic:"generic",gas:"smoke",vibration:"generic",tamper:"generic",presence:"person",lock:"generic",siren:"generic",switch:"generic",doorbell:"button"};function tb(e){return eb[e]??"generic"}var nb={contact:"contact",motion:"motion-sensor",smoke:"smoke",flood:"flood",gas:"gas","carbon-monoxide":"carbon-monoxide",vibration:"vibration",tamper:"tamper",presence:"presence","enum-sensor":"enum-sensor","event-emitter":"device-event","lock-control":"lock",switch:"switch",button:"button",doorbell:"doorbell"};function ab(e,t){const n=ud[t];if(void 0===n)throw new Error(`EVENT_KIND_BY_CAP: cap '${e}' maps to unknown taxonomy kind '${t}'`);return Object.assign({},n,{icon:tb(n.iconId)})}var rb=Object.freeze(Object.fromEntries(Object.entries(nb).map(([e,t])=>[e,ab(e,t)]))),ob=Object.keys(nb);function ib(e,t){const n=ud[e];return void 0===n?null:{kind:n.kind,labelKey:n.labelKey,label:n.label,color:n.color,iconId:n.iconId,icon:tb(n.iconId),category:n.category,parentKind:n.parentKind,level:n.level,source:{capName:t.capName,deviceId:t.deviceId}}}var cb=z.z.enum(["workspace","baked","data-root"]),sb=z.z.enum(["idle","checking","staging","pending-restart","awaiting-confirmation"]),db=z.z.enum(["in-sync","behind-patch","behind-series","ahead","unknown"]),lb=z.z.object({state:db,seedVersion:z.z.string().nullable(),contractVersion:z.z.string().nullable(),contractSource:z.z.enum(["registry","running"]).nullable(),message:z.z.string()}),ub=z.z.object({fromVersion:z.z.string(),toVersion:z.z.string().nullable(),atMs:z.z.number(),reason:z.z.string()}),mb=z.z.object({packageName:z.z.string(),runningVersion:z.z.string().nullable(),nodeRuntimeVersion:z.z.string().nullable(),activeVersion:z.z.string().nullable(),previousVersion:z.z.string().nullable(),seedVersion:z.z.string().nullable(),latestVersion:z.z.string().nullable(),updateAvailable:z.z.boolean(),bootMode:cb,updateState:sb,pendingVersion:z.z.string().nullable(),rolledBack:ub.nullable(),stateFileCorrupt:z.z.boolean(),lastCheckedAtMs:z.z.number().nullable(),imageContract:lb.optional()}),pb=z.z.object({packageName:z.z.string(),runningVersion:z.z.string().nullable(),latestVersion:z.z.string().nullable(),updateAvailable:z.z.boolean(),checkedAtMs:z.z.number(),error:z.z.string().nullable()}),bb=z.z.object({accepted:z.z.boolean(),targetVersion:z.z.string().nullable(),restarting:z.z.boolean(),message:z.z.string()}),gb={name:"server-management",scope:"system",mode:"singleton",methods:{getServerPackageStatus:(0,m.A)(z.z.void(),mb,{auth:"admin"}),checkServerUpdate:(0,m.A)(z.z.void(),pb,{kind:"mutation",auth:"admin"}),applyServerUpdate:(0,m.A)(z.z.object({version:z.z.string().optional()}),bb,{kind:"mutation",auth:"admin",timeoutMs:96e4}),rollbackServerUpdate:(0,m.A)(z.z.void(),bb,{kind:"mutation",auth:"admin"}),restartServer:(0,m.A)(z.z.void(),bb,{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},zb=z.z.email(),yb=z.z.object({to:z.z.union([zb,z.z.array(zb).min(1)]),cc:z.z.array(zb).optional(),bcc:z.z.array(zb).optional(),from:z.z.string().optional(),replyTo:z.z.string().optional(),subject:z.z.string(),text:z.z.string(),html:z.z.string().optional()}),fb=z.z.object({messageId:z.z.string(),accepted:z.z.array(zb).default([]),rejected:z.z.array(zb).default([])}),vb=z.z.object({ready:z.z.boolean(),host:z.z.string(),error:z.z.string().optional(),lastVerifiedAt:z.z.number().optional()}),hb={name:"smtp-provider",scope:"system",mode:"collection",internal:!0,providerKind:"email",methods:{sendEmail:(0,m.A)(yb,fb,{kind:"mutation",auth:"admin",access:"create"}),verify:(0,m.A)(z.z.void(),vb,{kind:"mutation",auth:"admin",access:"view"}),getStatus:(0,m.A)(z.z.void(),vb,{auth:"admin"})}},Sb=z.z.object({base64:z.z.string(),contentType:z.z.string()}),jb=z.z.object({lastCapturedAt:z.z.number().nullable(),cacheAgeMs:z.z.number().nullable(),lastBytes:z.z.number().nullable(),lastStreamId:z.z.string().nullable()}),kb={name:"snapshot",scope:"device",deviceNative:!0,mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],exposesDeviceSettings:!0,methods:{getSnapshot:(0,m.A)(z.z.object({deviceId:z.z.number(),streamId:z.z.string().optional(),force:z.z.boolean().optional()}),Sb.nullable()),invalidateCache:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),getSnapshotOverview:(0,m.M)(z.z.object({deviceIds:z.z.array(z.z.number()).min(1).max(200)}),z.z.array(z.z.object({deviceId:z.z.number(),lastCapturedAt:z.z.number().nullable(),cacheAgeMs:z.z.number().nullable(),etag:z.z.string().nullable()}))),getSnapshotLinks:(0,m.M)(z.z.object({targets:z.z.array(z.z.object({deviceId:z.z.number(),width:z.z.number().int().positive().optional()})).min(1).max(200)}),z.z.array(z.z.object({deviceId:z.z.number(),url:z.z.string().nullable(),capturedAt:z.z.number().nullable(),ageMs:z.z.number().nullable(),expiresAt:z.z.number().nullable(),width:z.z.number().nullable(),neverCaptured:z.z.boolean(),sleeping:z.z.boolean()})))},status:{schema:jb,kind:"poll"}},Ib=z.z.object({userId:z.z.string(),username:z.z.string(),isAdmin:z.z.boolean(),provider:z.z.string(),email:z.z.string().optional(),displayName:z.z.string().optional(),hubUrl:z.z.string().optional(),scopes:z.z.array(Al).optional(),redirectUri:z.z.string().optional(),integrationId:z.z.string().optional(),jti:z.z.string().optional(),codeChallenge:z.z.string().optional(),sessionId:z.z.string().optional(),refreshTtl:z.z.union([z.z.number().int().positive(),z.z.literal("never")]).optional()}),Ab={name:"sso-bridge",scope:"system",mode:"singleton",internal:!0,methods:{signBridgeToken:(0,m.A)(z.z.object({claims:Ib,ttlSec:z.z.union([z.z.number().int().positive(),z.z.literal("never")]).optional()}),z.z.object({token:z.z.string()})),verifyBridgeToken:(0,m.A)(z.z.object({token:z.z.string()}),Ib.nullable())}},Pb=z.z.discriminatedUnion("shouldSaveDiskSpace",[z.z.object({providerId:z.z.string().min(1),displayName:z.z.string().min(1),configSchema:z.z.unknown(),nodeLocal:z.z.boolean(),shouldSaveDiskSpace:z.z.literal(!0),minFreePercent:z.z.number().min(0).max(100)}),z.z.object({providerId:z.z.string().min(1),displayName:z.z.string().min(1),configSchema:z.z.unknown(),nodeLocal:z.z.boolean(),shouldSaveDiskSpace:z.z.literal(!1),minFreePercent:z.z.literal(null)})]),wb={name:"storage",scope:"system",mode:"singleton",methods:{resolve:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string()}),z.z.string()),write:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string(),data:z.z.instanceof(Uint8Array)}),z.z.void(),{kind:"mutation"}),read:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string()}),z.z.instanceof(Uint8Array)),exists:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string()}),z.z.boolean()),list:(0,m.A)(z.z.object({location:mt,prefix:z.z.string().optional()}),z.z.array(z.z.string()).readonly()),delete:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string()}),z.z.void(),{kind:"mutation"}),getAvailableSpace:(0,m.A)(z.z.object({location:mt}),z.z.number().nullable()),beginUpload:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string(),sizeBytes:z.z.number().optional()}),z.z.object({uploadId:z.z.string()}),{kind:"mutation"}),writeChunk:(0,m.A)(z.z.object({uploadId:z.z.string(),offset:z.z.number(),data:z.z.instanceof(Uint8Array)}),z.z.void(),{kind:"mutation"}),finalizeUpload:(0,m.A)(z.z.object({uploadId:z.z.string()}),z.z.void(),{kind:"mutation"}),abortUpload:(0,m.A)(z.z.object({uploadId:z.z.string()}),z.z.void(),{kind:"mutation"}),beginDownload:(0,m.A)(z.z.object({location:mt,relativePath:z.z.string()}),z.z.object({downloadId:z.z.string(),sizeBytes:z.z.number()}),{kind:"mutation"}),readChunk:(0,m.A)(z.z.object({downloadId:z.z.string(),offset:z.z.number(),length:z.z.number()}),z.z.instanceof(Uint8Array)),endDownload:(0,m.A)(z.z.object({downloadId:z.z.string()}),z.z.void(),{kind:"mutation"}),listLocations:(0,m.A)(z.z.object({type:lt.optional()}),z.z.array(ut).readonly()),getDefaultLocation:(0,m.A)(z.z.object({type:lt}),ut.nullable()),listLocationDeclarations:(0,m.A)(z.z.void(),z.z.array(pt).readonly()),upsertLocation:(0,m.A)(ut.omit({createdAt:!0,updatedAt:!0}),ut,{kind:"mutation",auth:"admin"}),deleteLocation:(0,m.A)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),testLocation:(0,m.A)(z.z.object({id:z.z.string()}),z.z.object({ok:z.z.boolean(),error:z.z.string().optional()}),{auth:"admin"}),listProviders:(0,m.A)(z.z.void(),z.z.array(Pb).readonly()),testConfig:(0,m.A)(z.z.object({providerId:z.z.string(),config:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({ok:z.z.boolean(),error:z.z.string().optional()}),{auth:"admin"})}},Ob=z.z.object({bytes:z.z.number().int().nonnegative()}),Cb=z.z.object({reclaimedBytes:z.z.number().int().nonnegative(),exhausted:z.z.boolean()}),Nb={name:"storage-evictable",scope:"system",mode:"collection",internal:!0,methods:{getEvictableUsage:(0,m.A)(z.z.object({locationId:z.z.string()}),Ob),evict:(0,m.A)(z.z.object({locationId:z.z.string(),targetBytes:z.z.number().int().positive()}),Cb,{kind:"mutation"})}},xb=z.z.discriminatedUnion("shouldSaveDiskSpace",[z.z.object({providerId:z.z.string().min(1),displayName:z.z.string().min(1),configSchema:z.z.unknown(),nodeLocal:z.z.boolean(),shouldSaveDiskSpace:z.z.literal(!0),minFreePercent:z.z.number().min(0).max(100)}),z.z.object({providerId:z.z.string().min(1),displayName:z.z.string().min(1),configSchema:z.z.unknown(),nodeLocal:z.z.boolean(),shouldSaveDiskSpace:z.z.literal(!1),minFreePercent:z.z.literal(null)})]),Mb=z.z.object({ok:z.z.boolean(),error:z.z.string().optional()}),Eb=z.z.object({location:ut,relativePath:z.z.string(),sizeBytes:z.z.number().optional()}),Tb=z.z.object({uploadId:z.z.string()}),Db=z.z.object({uploadId:z.z.string(),offset:z.z.number(),data:z.z.instanceof(Uint8Array)}),Rb=z.z.object({uploadId:z.z.string()}),Bb=z.z.object({uploadId:z.z.string()}),Lb=z.z.object({location:ut,relativePath:z.z.string()}),Fb=z.z.object({downloadId:z.z.string(),sizeBytes:z.z.number()}),_b=z.z.object({downloadId:z.z.string(),offset:z.z.number(),length:z.z.number()}),qb=z.z.object({downloadId:z.z.string()}),Ub={name:"storage-provider",scope:"system",mode:"collection",internal:!0,methods:{getProviderInfo:(0,m.A)(z.z.void(),xb),testLocation:(0,m.A)(z.z.object({config:z.z.record(z.z.string(),z.z.unknown())}),Mb,{auth:"admin"}),resolve:(0,m.A)(z.z.object({location:ut,relativePath:z.z.string()}),z.z.string()),write:(0,m.A)(z.z.object({location:ut,relativePath:z.z.string(),data:z.z.instanceof(Uint8Array)}),z.z.void(),{kind:"mutation"}),read:(0,m.A)(z.z.object({location:ut,relativePath:z.z.string()}),z.z.instanceof(Uint8Array)),exists:(0,m.A)(z.z.object({location:ut,relativePath:z.z.string()}),z.z.boolean()),list:(0,m.A)(z.z.object({location:ut,prefix:z.z.string().optional()}),z.z.array(z.z.string()).readonly()),delete:(0,m.A)(z.z.object({location:ut,relativePath:z.z.string()}),z.z.void(),{kind:"mutation"}),getAvailableSpace:(0,m.A)(z.z.object({location:ut}),z.z.number().nullable()),beginUpload:(0,m.A)(Eb,Tb,{kind:"mutation"}),writeChunk:(0,m.A)(Db,z.z.void(),{kind:"mutation"}),finalizeUpload:(0,m.A)(Rb,z.z.void(),{kind:"mutation"}),abortUpload:(0,m.A)(Bb,z.z.void(),{kind:"mutation"}),beginDownload:(0,m.A)(Lb,Fb,{kind:"mutation"}),readChunk:(0,m.A)(_b,z.z.instanceof(Uint8Array)),endDownload:(0,m.A)(qb,z.z.void(),{kind:"mutation"})}},$b=z.z.object({sessionId:z.z.string(),profileId:z.z.string(),label:z.z.string(),cols:z.z.number().int().positive(),rows:z.z.number().int().positive(),startedAt:z.z.number()}),Vb=z.z.object({profileId:z.z.string(),label:z.z.string(),description:z.z.string().optional()}),Hb={name:"terminal-session",scope:"system",mode:"singleton",methods:{listProfiles:(0,m.A)(z.z.void(),z.z.array(Vb).readonly(),{auth:"admin"}),listSessions:(0,m.A)(z.z.void(),z.z.array($b).readonly(),{auth:"admin"}),openSession:(0,m.A)(z.z.object({profileId:z.z.string(),cols:z.z.number().int().positive(),rows:z.z.number().int().positive()}),$b,{kind:"mutation",auth:"admin"}),resize:(0,m.A)(z.z.object({sessionId:z.z.string(),cols:z.z.number().int().positive(),rows:z.z.number().int().positive()}),z.z.void(),{kind:"mutation",auth:"admin"}),close:(0,m.A)(z.z.object({sessionId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"})}},Kb=z.z.object({urls:z.z.union([z.z.string(),z.z.array(z.z.string())]),username:z.z.string().optional(),credential:z.z.string().optional()}),Wb={name:"turn-provider",scope:"system",mode:"collection",methods:{getTurnServers:(0,m.A)(z.z.void(),z.z.array(Kb).readonly())}},Gb=z.z.object({credentialId:z.z.string(),label:z.z.string(),createdAt:z.z.number(),lastUsedAt:z.z.number().nullable(),transports:z.z.array(z.z.string()).default([])}),Zb={name:"user-passkeys",scope:"system",mode:"collection",internal:!0,methods:{beginRegistration:(0,m.A)(z.z.object({userId:z.z.string(),username:z.z.string()}),z.z.object({optionsJSON:z.z.record(z.z.string(),z.z.unknown())}),{kind:"mutation",auth:"admin",access:"create"}),finishRegistration:(0,m.A)(z.z.object({userId:z.z.string(),response:z.z.record(z.z.string(),z.z.unknown()),label:z.z.string()}),z.z.object({success:z.z.literal(!0),credentialId:z.z.string()}),{kind:"mutation",auth:"admin",access:"create"}),beginAuthentication:(0,m.A)(z.z.object({userId:z.z.string().optional()}),z.z.object({optionsJSON:z.z.record(z.z.string(),z.z.unknown())}),{kind:"mutation",access:"view"}),finishAuthentication:(0,m.A)(z.z.object({userId:z.z.string(),response:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({verified:z.z.boolean()}),{kind:"mutation",access:"view"}),beginDiscoverableAuthentication:(0,m.A)(z.z.object({}),z.z.object({optionsJSON:z.z.record(z.z.string(),z.z.unknown())}),{kind:"mutation",access:"view"}),finishDiscoverableAuthentication:(0,m.A)(z.z.object({response:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({verified:z.z.boolean(),userId:z.z.string().nullable()}),{kind:"mutation",access:"view"}),listPasskeys:(0,m.A)(z.z.object({userId:z.z.string()}),z.z.array(Gb),{auth:"admin"}),removePasskey:(0,m.A)(z.z.object({userId:z.z.string(),credentialId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),getSecondFactorPreference:(0,m.A)(z.z.object({userId:z.z.string()}),z.z.object({enabled:z.z.boolean()}),{auth:"admin"}),setSecondFactorPreference:(0,m.A)(z.z.object({userId:z.z.string(),enabled:z.z.boolean()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"})}},Jb=z.z.enum(["cosine","dot","euclidean"]),Yb=z.z.record(z.z.string(),z.z.union([z.z.string(),z.z.number(),z.z.boolean()])),Xb=z.z.object({equals:z.z.record(z.z.string(),z.z.union([z.z.string(),z.z.number(),z.z.boolean()])).optional(),between:z.z.record(z.z.string(),z.z.tuple([z.z.number(),z.z.number()])).optional()}),Qb=z.z.object({id:z.z.string(),vector:z.z.string(),metadata:Yb}),eg=z.z.object({id:z.z.string(),score:z.z.number(),metadata:Yb}),tg=z.z.object({index:z.z.string(),dim:z.z.number().int().positive(),metric:Jb.default("cosine")}),ng=z.z.object({index:z.z.string(),items:z.z.array(Qb)}),ag=z.z.object({upserted:z.z.number(),rejected:z.z.number()}),rg=z.z.object({index:z.z.string(),vector:z.z.string(),topK:z.z.number().int().positive(),minScore:z.z.number().optional(),filter:Xb.optional()}),og=z.z.object({matches:z.z.array(eg),scanned:z.z.number(),truncated:z.z.boolean()}),ig=z.z.object({index:z.z.string(),ids:z.z.array(z.z.string())}),cg=z.z.object({index:z.z.string(),filter:Xb}),sg=z.z.object({deleted:z.z.number()}),dg=z.z.object({index:z.z.string(),ids:z.z.array(z.z.string())}),lg=z.z.object({items:z.z.array(z.z.object({id:z.z.string(),metadata:Yb}))}),ug=z.z.object({index:z.z.string()}),mg=z.z.object({backend:z.z.string(),count:z.z.number(),dim:z.z.number(),metric:Jb,bytes:z.z.number().optional(),exact:z.z.boolean()}),pg={name:"vector-store",scope:"system",mode:"singleton",internal:!0,methods:{declareIndex:(0,m.A)(tg,z.z.void(),{kind:"mutation"}),upsert:(0,m.A)(ng,ag,{kind:"mutation"}),query:(0,m.A)(rg,og),getByIds:(0,m.A)(dg,lg),deleteByIds:(0,m.A)(ig,sg,{kind:"mutation"}),deleteByFilter:(0,m.A)(cg,sg,{kind:"mutation"}),stats:(0,m.A)(ug,mg)}},bg=z.z.object({id:z.z.string(),source:z.z.string(),kind:z.z.enum(["motion","object","audio","native"]),timeRange:z.z.object({startMs:z.z.number(),endMs:z.z.number()}),thumbnail:z.z.string().optional()}),gg=z.z.object({playbackUrl:z.z.string(),playbackEndpoints:z.z.array(z.z.string()).optional(),token:z.z.string().optional()}),zg={name:"videoclips",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],methods:{listClips:(0,m.A)(z.z.object({deviceId:z.z.number(),since:z.z.number(),until:z.z.number(),limit:z.z.number().int().positive().optional()}),z.z.array(bg).readonly(),{kind:"query",auth:"admin"}),getClipPlayback:(0,m.A)(z.z.object({deviceId:z.z.number(),clipId:z.z.string()}),gg,{kind:"query",auth:"admin"})}},yg=z.z.object({viewportWidth:z.z.number().int().positive().optional(),viewportHeight:z.z.number().int().positive().optional(),devicePixelRatio:z.z.number().positive().optional(),downlinkMbps:z.z.number().nonnegative().optional(),prefersTier:z.z.string().optional()}).partial(),fg=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("adaptive")}),z.z.object({kind:z.z.literal("profile"),profile:m.G}),z.z.object({kind:z.z.literal("cam-stream"),camStreamId:z.z.string().min(1)})]),vg=z.z.object({id:z.z.string(),label:z.z.string(),target:fg,codec:z.z.string().nullable(),resolution:z.z.object({width:z.z.number(),height:z.z.number()}).nullable(),status:z.z.enum(["idle","connecting","streaming","error","stopped"]).nullable(),inputFps:z.z.number().nullable(),decodeFps:z.z.number().nullable(),bitrateKbps:z.z.number().nullable()}),hg={name:"webrtc-session",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,preferredProvider:"stream-broker",deviceTypes:[m.C.Camera],methods:{listStreams:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(vg)),createSession:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),target:fg,hints:yg.optional(),relayOnly:z.z.boolean().optional(),consumerAttribution:Xr.optional()}),z.z.object({sessionId:z.z.string(),sdpOffer:z.z.string()}),{kind:"mutation"}),handleOffer:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),target:fg.optional(),sdpOffer:z.z.string(),sessionId:z.z.string().optional(),relayOnly:z.z.boolean().optional(),nonTrickle:z.z.boolean().optional(),disableTurn:z.z.boolean().optional(),disableIpv6:z.z.boolean().optional(),consumerAttribution:Xr.optional(),hints:yg.optional()}),z.z.object({sessionId:z.z.string(),sdpAnswer:z.z.string()}),{kind:"mutation"}),handleAnswer:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string(),sdpAnswer:z.z.string()}),z.z.void(),{kind:"mutation"}),addIceCandidate:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string(),candidate:z.z.string(),sdpMid:z.z.string().nullable().optional(),sdpMLineIndex:z.z.number().int().nullable().optional()}),z.z.void(),{kind:"mutation"}),getIceCandidates:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string()}),z.z.object({candidates:z.z.array(z.z.object({candidate:z.z.string(),sdpMid:z.z.string().nullable(),sdpMLineIndex:z.z.number().int().nullable()})),done:z.z.boolean()}),{kind:"query"}),closeSession:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string()}),z.z.void(),{kind:"mutation"}),hasAdaptiveBitrate:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.G}),z.z.boolean()),getSessionState:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string()}),z.z.object({pendingRenegotiation:z.z.object({target:fg,epoch:z.z.number()}).nullable()}))},mount:{kind:"server-provided"}},Sg=z.z.object({childDeviceIds:z.z.array(z.z.number()).readonly(),hiddenChildIds:z.z.array(z.z.number()).readonly()}),jg={name:"accessories",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera,m.C.Hub,m.C.Switch,m.C.Light,m.C.Sensor,m.C.Thermostat,m.C.Cover,m.C.Lock,m.C.Fan,m.C.MediaPlayer,m.C.AlarmPanel,m.C.Generic],methods:{setChildHidden:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),childDeviceId:z.z.number().int().nonnegative(),hidden:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onAccessoriesChanged:{data:z.z.object({deviceId:z.z.number(),childDeviceIds:z.z.array(z.z.number()).readonly(),hiddenChildIds:z.z.array(z.z.number()).readonly()})},onChildVisibilityChanged:{data:z.z.object({deviceId:z.z.number(),childDeviceId:z.z.number(),hidden:z.z.boolean()})}},status:{schema:Sg,kind:"command-driven"}},kg=z.z.enum(["install","update","uninstall","restart"]),Ig=z.z.enum(["queued","fetching","staged","validating","applying","restarting","applied","done","failed","skipped"]),Ag=z.z.enum(["framework","addon"]),Pg=z.z.object({tsMs:z.z.number(),nodeId:z.z.string(),packageName:z.z.string(),phase:Ig,message:z.z.string()}),wg=z.z.object({taskId:z.z.string(),nodeId:z.z.string(),packageName:z.z.string(),fromVersion:z.z.string().nullable(),toVersion:z.z.string(),target:Ag,phase:Ig,stagedPath:z.z.string().nullable(),attempts:z.z.number(),steps:z.z.array(Pg),error:z.z.string().nullable(),startedAtMs:z.z.number().nullable(),finishedAtMs:z.z.number().nullable()}),Og=z.z.enum(["running","completed","failed","partially-failed","cancelled"]),Cg=z.z.enum(["single","bulk","cluster"]),Ng=z.z.object({jobId:z.z.string(),kind:kg,createdAtMs:z.z.number(),createdBy:z.z.string(),scope:Cg,tasks:z.z.array(wg),state:Og,schemaVersion:z.z.literal(1)}),xg=z.z.enum(["debug","info","warn","error"]),Mg=z.z.enum(["off","latest","beta"]),Eg=z.z.enum(["off","latest","beta","inherit"]),Tg=z.z.object({id:z.z.string(),name:z.z.string().optional(),version:z.z.string().optional(),description:z.z.string().optional(),icon:z.z.string().optional(),color:z.z.string().optional(),capabilities:z.z.array(z.z.unknown()).readonly().optional(),packageName:z.z.string(),packageVersion:z.z.string(),packageDisplayName:z.z.string().optional(),bundle:z.z.object({displayName:z.z.string(),description:z.z.string().optional(),icon:z.z.string().optional()}).optional(),protected:z.z.boolean().optional(),removable:z.z.boolean().optional()}),Dg=z.z.object({pid:z.z.number().optional(),mode:z.z.string(),state:z.z.string()}),Rg=z.z.object({phase:z.z.enum(["pending","healthy","failed"]),retryCount:z.z.number(),firstFailureAt:z.z.number().nullable(),lastAttemptAt:z.z.number().nullable(),lastError:z.z.object({message:z.z.string(),stack:z.z.string().optional()}).nullable(),nextRetryAt:z.z.number().nullable(),alertEmitted:z.z.boolean(),retrying:z.z.boolean(),inGracePeriod:z.z.boolean()}),Bg=z.z.object({manifest:Tg,declaration:z.z.unknown().optional(),source:z.z.string(),installSource:z.z.string().optional(),process:Dg.optional(),hasBackup:z.z.boolean().optional(),health:Rg.nullable().optional()}),Lg=z.z.object({name:z.z.string(),version:z.z.string(),dir:z.z.string(),installSource:z.z.string().optional()}),Fg=z.z.object({name:z.z.string(),currentVersion:z.z.string(),latestVersion:z.z.string(),category:z.z.enum(["addon","core"]),requiresRestart:z.z.boolean(),isSystem:z.z.boolean()}),_g=z.z.object({version:z.z.string(),publishedAt:z.z.string(),deprecated:z.z.string().optional(),distTags:z.z.array(z.z.string()).readonly()}),qg=z.z.object({name:z.z.string(),version:z.z.string(),description:z.z.string(),keywords:z.z.array(z.z.string()).readonly(),publishedAt:z.z.string(),author:z.z.string(),installed:z.z.boolean(),installedVersion:z.z.string().optional()}),Ug=z.z.object({channel:Mg,intervalSeconds:z.z.number()}),$g=Eg,Vg=z.z.unknown(),Hg=z.z.unknown(),Kg=z.z.unknown(),Wg=z.z.enum(["queued","updating","done","done-pending-restart","failed"]),Gg=z.z.object({name:z.z.string(),isSystem:z.z.boolean(),fromVersion:z.z.string(),toVersion:z.z.string(),status:Wg,error:z.z.string().optional(),startedAtMs:z.z.number().optional(),completedAtMs:z.z.number().optional()}),Zg=z.z.enum(["regular","system","restarting","finalizing"]);z.z.object({id:z.z.string(),nodeId:z.z.string(),startedAtMs:z.z.number(),completedAtMs:z.z.number().optional(),total:z.z.number(),completed:z.z.number(),failed:z.z.number(),current:z.z.string().nullable(),phase:Zg,cancelled:z.z.boolean(),items:z.z.array(Gg).readonly()});var Jg=z.z.object({packageName:z.z.string(),currentVersion:z.z.string(),latestVersion:z.z.string().nullable(),hasUpdate:z.z.boolean(),description:z.z.string().optional(),buildId:z.z.string().nullable()}),Yg=z.z.object({timestamp:z.z.string(),level:z.z.string(),message:z.z.string(),scope:z.z.string().optional()}),Xg=z.z.unknown(),Qg=z.z.object({addonId:z.z.string().min(1),action:z.z.string().min(1),input:z.z.unknown()}),ez={name:"addons",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{list:(0,m.A)(z.z.void(),z.z.array(Bg).readonly()),getLogs:(0,m.A)(z.z.object({addonId:z.z.string(),limit:z.z.number().min(1).max(500).default(100),level:xg.optional()}),z.z.array(Xg)),listPackages:(0,m.A)(z.z.void(),z.z.array(Lg).readonly()),installPackage:(0,m.A)(z.z.object({packageName:z.z.string(),version:z.z.string().optional()}),Hg,{kind:"mutation",auth:"admin"}),installFromWorkspace:(0,m.A)(z.z.object({packageName:z.z.string()}),Hg,{kind:"mutation",auth:"admin"}),isWorkspaceAvailable:(0,m.A)(z.z.void(),z.z.boolean()),listWorkspacePackages:(0,m.A)(z.z.void(),z.z.array(z.z.unknown()).readonly()),uninstallPackage:(0,m.A)(z.z.object({packageName:z.z.string()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),reloadPackages:(0,m.A)(z.z.void(),Kg,{kind:"mutation",auth:"admin"}),searchAvailable:(0,m.A)(z.z.object({query:z.z.string().optional()}),z.z.array(qg)),listUpdates:(0,m.A)(z.z.object({nodeId:z.z.string().optional()}),z.z.array(Fg).readonly(),{auth:"admin"}),updatePackage:(0,m.A)(z.z.object({name:z.z.string().min(1),version:z.z.string().optional(),nodeId:z.z.string().optional()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),rollbackPackage:(0,m.A)(z.z.object({name:z.z.string().min(1)}),z.z.object({rolledBackTo:z.z.string().nullable()}),{kind:"mutation",auth:"admin"}),forceRefresh:(0,m.A)(z.z.object({nodeId:z.z.string().optional()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),restartServer:(0,m.A)(z.z.object({confirm:z.z.literal(!0)}),z.z.unknown(),{kind:"mutation",auth:"admin"}),getLastRestart:(0,m.A)(z.z.void(),z.z.object({kind:z.z.enum(["framework-update","manual","system","framework-bulk-update"]),packageName:z.z.string().optional(),fromVersion:z.z.string().optional(),toVersion:z.z.string().optional(),requestedBy:z.z.string().optional(),requestedAt:z.z.number()}).nullable(),{auth:"admin"}),listFrameworkPackages:(0,m.A)(z.z.void(),z.z.array(Jg).readonly(),{auth:"admin"}),listCapabilityProviders:(0,m.A)(z.z.object({capName:z.z.string().min(1)}),z.z.array(z.z.object({addonId:z.z.string(),mode:z.z.enum(["singleton","collection"]),isActive:z.z.boolean()})).readonly()),setCapabilityProviderEnabled:(0,m.A)(z.z.object({capName:z.z.string().min(1),addonId:z.z.string().min(1),enabled:z.z.boolean()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getVersions:(0,m.A)(z.z.object({name:z.z.string()}),z.z.array(_g).readonly()),restartAddon:(0,m.A)(z.z.object({addonId:z.z.string()}),Vg,{kind:"mutation",auth:"admin"}),retryLoad:(0,m.A)(z.z.object({packageName:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getAutoUpdateSettings:(0,m.A)(z.z.void(),Ug,{auth:"admin"}),setAutoUpdateSettings:(0,m.A)(z.z.object({channel:Mg,intervalSeconds:z.z.number().min(300).max(86400).optional()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),getAddonAutoUpdate:(0,m.A)(z.z.object({addonId:z.z.string()}),$g,{auth:"admin"}),setAddonAutoUpdate:(0,m.A)(z.z.object({addonId:z.z.string(),channel:Eg}),z.z.unknown(),{kind:"mutation",auth:"admin"}),applyAutoUpdateToAll:(0,m.A)(z.z.object({channel:Mg}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),custom:(0,m.A)(Qg,z.z.unknown(),{kind:"mutation"}),startJob:(0,m.A)(z.z.object({kind:z.z.enum(["install","update","uninstall","restart"]),targets:z.z.array(z.z.object({name:z.z.string().min(1),version:z.z.string().min(1)})).min(1),nodeIds:z.z.array(z.z.string()).optional()}),z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),getJob:(0,m.A)(z.z.object({jobId:z.z.string()}),Ng.nullable(),{auth:"admin"}),listJobs:(0,m.A)(z.z.object({activeOnly:z.z.boolean().optional()}),z.z.array(Ng),{auth:"admin"}),cancelJob:(0,m.A)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),onAddonLogs:(0,m.A)(z.z.object({addonId:z.z.string(),level:xg.optional()}),Yg,{kind:"subscription"})},mount:{kind:"server-provided"}},tz=z.z.object({co2Ppm:z.z.number().min(0).optional(),vocPpb:z.z.number().min(0).optional(),pm25:z.z.number().min(0).optional(),pm10:z.z.number().min(0).optional(),aqi:z.z.number().optional(),lastFetchedAt:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional()}),nz={name:"air-quality-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:tz,kind:"push"},runtimeState:tz},az=z.z.object({lux:z.z.number().min(0),lastFetchedAt:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional()}),rz={name:"ambient-light-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:az,kind:"push"},runtimeState:az},oz=z.z.object({className:z.z.string(),hits:z.z.number().int().nonnegative(),avgScore:z.z.number().min(0).max(1),peakScore:z.z.number().min(0).max(1)}),iz=z.z.object({ts:z.z.number().int(),windowSec:z.z.number().int().positive(),level:z.z.object({rms:z.z.number(),dbfs:z.z.number()}),peakDbfs:z.z.number(),avgDbfs:z.z.number(),current:z.z.object({className:z.z.string(),score:z.z.number().min(0).max(1),timestamp:z.z.number().int()}).nullable(),byClass:z.z.array(oz).readonly()}),cz=z.z.object({ts:z.z.number().int(),dbfs:z.z.number().nullable(),peakDbfs:z.z.number(),avgDbfs:z.z.number(),topClass:z.z.string().nullable(),topScore:z.z.number().min(0).max(1).nullable()}),sz=z.z.object({points:z.z.array(cz).readonly(),effectiveSampleEveryMs:z.z.number().int().positive(),windowMsActual:z.z.number().int().nonnegative()}),dz={name:"audio-metrics",scope:"device",mode:"singleton",deviceTypes:[m.C.Camera],methods:{getCurrentSnapshot:(0,m.A)(z.z.object({deviceId:z.z.number()}),iz.nullable()),getHistory:(0,m.A)(z.z.object({deviceId:z.z.number(),windowSec:z.z.number().int().positive().optional(),sampleEveryMs:z.z.number().int().positive().optional()}),sz)},runtimeState:iz},lz=z.z.object({enabled:z.z.boolean(),isRunning:z.z.boolean(),lastTriggeredAt:z.z.number(),lastError:z.z.string().nullable(),lastChangedAt:z.z.number()}),uz={name:"automation-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Automation],methods:{enable:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),disable:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),trigger:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),skipCondition:z.z.boolean().optional()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:lz,kind:"push"},runtimeState:lz},mz=z.z.object({percentage:z.z.number().min(0).max(100),charging:z.z.enum(["dc","solar","none"]),sleeping:z.z.boolean(),lastUpdated:z.z.number(),binary:z.z.boolean().optional()}),pz={name:"battery",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera,m.C.Sensor,m.C.Button,m.C.Switch],methods:{wakeForStream:(0,m.A)(z.z.object({deviceId:z.z.number(),timeoutMs:z.z.number().int().min(500).max(3e4).default(8e3)}),z.z.object({awoke:z.z.boolean(),durationMs:z.z.number()}),{kind:"mutation"})},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:mz})}},status:{schema:mz,kind:"push",empty:{percentage:0,charging:"none",sleeping:!1,lastUpdated:0}},runtimeState:mz},bz=z.z.object({on:z.z.boolean(),lastChangedAt:z.z.number()}),gz={name:"binary",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:bz,kind:"push"},runtimeState:bz},zz=z.z.object({percentage:z.z.number().min(0).max(100),lastChangedAt:z.z.number()}),yz={name:"brightness",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Light],methods:{setBrightness:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),percentage:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onBrightnessChanged:{data:z.z.object({deviceId:z.z.number(),percentage:z.z.number().min(0).max(100),lastChangedAt:z.z.number()})}},status:{schema:zz,kind:"command-driven"},runtimeState:zz},fz={name:"button",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Button],methods:{press:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})}},vz=z.z.object({host:z.z.string(),port:z.z.number().int().positive().optional(),onvifPort:z.z.number().int().positive().optional(),rtspPort:z.z.number().int().positive().optional(),https:z.z.boolean().optional(),username:z.z.string().optional(),password:z.z.string().optional(),onvifProfile:z.z.string().optional()}),hz=z.z.object({host:z.z.string(),port:z.z.number().int().positive().nullable(),onvifPort:z.z.number().int().positive().nullable(),rtspPort:z.z.number().int().positive().nullable(),https:z.z.boolean().nullable(),hasUsername:z.z.boolean(),hasPassword:z.z.boolean(),onvifProfile:z.z.string().nullable()}),Sz={name:"camera-credentials",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],methods:{getCredentials:(0,m.A)(z.z.object({deviceId:z.z.number()}),vz.nullable(),{kind:"query",auth:"admin"})},status:{schema:hz,kind:"command-driven"}},jz=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),kz={name:"carbon-monoxide",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:jz,kind:"push"},runtimeState:jz},Iz=z.z.enum(["off","heat","cool","auto","heat_cool","fan_only","dry"]),Az=z.z.object({mode:Iz,availableModes:z.z.array(Iz),fanMode:z.z.string(),availableFanModes:z.z.array(z.z.string()),preset:z.z.string(),availablePresets:z.z.array(z.z.string()),target:z.z.number().nullable(),targetHigh:z.z.number().nullable(),targetLow:z.z.number().nullable(),targetHumidity:z.z.number().min(0).max(100).nullable(),currentTemp:z.z.number().nullable(),currentHumidity:z.z.number().min(0).max(100).nullable(),swingVertical:z.z.boolean().nullable(),swingHorizontal:z.z.boolean().nullable(),lastFetchedAt:z.z.number()}),Pz={name:"climate-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Thermostat,m.C.Climate],methods:{setMode:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:Iz}),z.z.void(),{kind:"mutation",auth:"admin"}),setFanMode:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),fanMode:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),setPreset:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),preset:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),setTarget:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),target:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),setTargetRange:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),targetLow:z.z.number(),targetHigh:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),setTargetHumidity:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),targetHumidity:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"}),setSwingVertical:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setSwingHorizontal:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Az,kind:"push"},runtimeState:Az},wz=z.z.object({r:z.z.number().int().min(0).max(255),g:z.z.number().int().min(0).max(255),b:z.z.number().int().min(0).max(255)}),Oz=z.z.object({h:z.z.number().min(0).max(360),s:z.z.number().min(0).max(100),v:z.z.number().min(0).max(100)}),Cz=z.z.discriminatedUnion("mode",[z.z.object({mode:z.z.literal("rgb"),rgb:wz}),z.z.object({mode:z.z.literal("hsv"),hsv:Oz}),z.z.object({mode:z.z.literal("mired"),mireds:z.z.number().int().min(50).max(1e3)})]),Nz=z.z.object({mode:z.z.enum(["rgb","hsv","mired"]),rgb:wz.optional(),hsv:Oz.optional(),mireds:z.z.number().int().optional(),lastChangedAt:z.z.number()}),xz={name:"color",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Light],methods:{setColor:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),color:Cz}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onColorChanged:{data:z.z.object({deviceId:z.z.number(),mode:z.z.enum(["rgb","hsv","mired"]),rgb:wz.optional(),hsv:Oz.optional(),mireds:z.z.number().int().optional(),lastChangedAt:z.z.number()})}},status:{schema:Nz,kind:"command-driven"},runtimeState:Nz},Mz=2e4,Ez=z.z.discriminatedUnion("outcome",[z.z.object({outcome:z.z.literal("validated"),latencyMs:z.z.number().nonnegative().optional(),detail:z.z.string().optional()}).strict(),z.z.object({outcome:z.z.literal("rejected"),error:z.z.string()}).strict(),z.z.object({outcome:z.z.literal("inconclusive"),error:z.z.string()}).strict()]),Tz=z.z.object({settings:z.z.record(z.z.string(),z.z.unknown())}),Dz=z.z.object({label:z.z.string()}),Rz={name:"connection-test",scope:"system",mode:"collection",methods:{testSettings:(0,m.A)(Tz,Ez,{kind:"mutation",auth:"admin"}),describeTest:(0,m.A)(z.z.void(),Dz,{auth:"admin"})}},Bz=z.z.object({connected:z.z.boolean(),lastChangedAt:z.z.number()}),Lz={name:"connectivity",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:Bz,kind:"push"},runtimeState:Bz},Fz=z.z.object({key:z.z.string().min(1),label:z.z.string().min(1),level:z.z.number().min(0).max(100).nullable(),status:z.z.enum(["ok","replace"]).nullable(),lastResetAt:z.z.number().nullable(),resettable:z.z.boolean()}),_z=z.z.object({items:z.z.array(Fz),lastChangedAt:z.z.number()}),qz={name:"consumables",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:Object.values(m.C),deviceConfig:{ui:{kind:"widget",widgetId:"host/consumables-panel",tab:"consumables",topTab:!0,label:"Consumables",order:5}},methods:{reset:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),key:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:_z,kind:"push",empty:{items:[],lastChangedAt:0},itemArray:{path:"items",keyField:"key",labelField:"label",itemSchema:Fz,emptyItem:{key:"",label:"",level:null,status:null,lastResetAt:null,resettable:!1}}},runtimeState:_z.extend({lastFetchedAt:z.z.number()})},Uz=z.z.object({entryOpen:z.z.boolean(),lastChangedAt:z.z.number()}),$z={name:"contact",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:Uz,kind:"push"},runtimeState:Uz},Vz=z.z.enum(["numeric","select","text","datetime"]),Hz=z.z.object({kind:Vz,value:z.z.union([z.z.number(),z.z.string()]),options:z.z.array(z.z.string()),lastChangedAt:z.z.number(),unit:z.z.string().optional(),min:z.z.number().optional(),max:z.z.number().optional(),step:z.z.number().optional(),precision:z.z.number().int().min(0).max(10).optional(),format:z.z.enum(["date","time","datetime"]).optional()}),Kz=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("numeric"),value:z.z.number()}),z.z.object({kind:z.z.literal("select"),value:z.z.string().min(1)}),z.z.object({kind:z.z.literal("text"),value:z.z.string()}),z.z.object({kind:z.z.literal("datetime"),value:z.z.string().min(1)})]),Wz={name:"control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Control],methods:{setValue:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),control:Kz}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Hz,kind:"push"},runtimeState:Hz},Gz=z.z.enum(["open","opening","closing","closed","stopped"]),Zz=z.z.object({state:Gz,position:z.z.number().min(0).max(100).nullable(),tiltPosition:z.z.number().min(0).max(100).nullable(),lastChangedAt:z.z.number()}),Jz={name:"cover",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Cover],methods:{open:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),close:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setPosition:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),position:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"}),setTiltPosition:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),tiltPosition:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Zz,kind:"push"},runtimeState:Zz},Yz=z.z.enum(["auto","day","night","schedule"]),Xz=z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()}),Qz=z.z.object({mode:Yz,sensitivity:z.z.number().optional(),switchDelaySec:z.z.number().optional(),lastFetchedAt:z.z.number()}),ey=z.z.object({modes:z.z.array(Yz),supportsSensitivity:z.z.boolean(),sensitivity:Xz.optional(),supportsSwitchDelay:z.z.boolean(),switchDelaySec:Xz.optional()}),ty=z.z.object({mode:Yz.optional(),sensitivity:z.z.number().optional(),switchDelaySec:z.z.number().optional()}),ny={name:"day-night",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"derived-form",builderId:"day-night",tab:"image"}},methods:{getOptions:(0,m.A)(z.z.object({deviceId:z.z.number()}),ey),setSettings:(0,m.A)(z.z.object({deviceId:z.z.number(),settings:ty}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Qz,kind:"poll"},runtimeState:Qz},ay=z.z.object({online:z.z.boolean(),lastChangedAt:z.z.number()}),ry={name:"device-status",scope:"device",deviceNative:!0,mode:"singleton",methods:{},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:ay})}},status:{schema:ay,kind:"push"},runtimeState:ay},oy=z.z.object({lastPressedAt:z.z.number().nullable(),pressCountSinceStart:z.z.number()}),iy=z.z.object({deviceId:z.z.number(),timestamp:z.z.number()}),cy={name:"doorbell",scope:"device",deviceNative:!0,mode:"singleton",kind:"wrapper",defaultActive:!1,deviceTypes:[m.C.Button,m.C.Camera],exposesDeviceSettings:!0,methods:{},events:{onPressed:{data:iy}},status:{schema:oy,kind:"push"},runtimeState:oy},sy=z.z.enum(["date","time","datetime"]),dy=z.z.object({value:z.z.string(),format:sy.optional(),lastFetchedAt:z.z.number()}),ly={name:"enum-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:dy,kind:"push"},runtimeState:dy},uy=z.z.object({deviceId:z.z.number(),eventType:z.z.string(),data:z.z.record(z.z.string(),z.z.unknown()).nullable(),timestamp:z.z.number(),seq:z.z.number()}),my=z.z.object({eventTypes:z.z.array(z.z.string()),lastEvent:uy.nullable(),eventCountSinceStart:z.z.number()}),py={name:"event-emitter",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.EventEmitter],methods:{},events:{onEvent:{data:uy}},status:{schema:my,kind:"push"},runtimeState:my},by=z.z.object({id:z.z.string(),type:z.z.string(),timestamp:z.z.number(),label:z.z.string().optional(),thumbnailUrl:z.z.string().optional(),clipUrl:z.z.string().optional(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional()}),gy={name:"events",scope:"device",mode:"singleton",deviceTypes:[m.C.Camera],methods:{getEvents:(0,m.A)(z.z.object({deviceId:z.z.number(),from:z.z.number().optional(),to:z.z.number().optional(),limit:z.z.number().optional()}),z.z.array(by)),getEventThumbnail:(0,m.A)(z.z.object({deviceId:z.z.number(),eventId:z.z.string()}),z.z.object({base64:z.z.string(),contentType:z.z.string()}).nullable()),getEventClipUrl:(0,m.A)(z.z.object({deviceId:z.z.number(),eventId:z.z.string()}),z.z.string().nullable())}},zy=z.z.object({id:z.z.string(),name:z.z.string(),sampleCount:z.z.number().int().nonnegative(),coverMediaKey:z.z.string().optional(),coverBase64:z.z.string().optional()}),yy=z.z.object({id:z.z.string(),source:z.z.enum(["detected","photo"]),addedAt:z.z.number().int(),deviceId:z.z.number().int().optional(),base64:z.z.string().optional()}),fy=z.z.object({faceId:z.z.string(),deviceId:z.z.number().int(),trackId:z.z.string(),timestamp:z.z.number().int(),recognizedIdentityId:z.z.string().optional(),identityName:z.z.string().optional(),assigned:z.z.boolean(),base64:z.z.string().optional(),cropUrl:z.z.string().optional(),faceBbox:Ha.optional(),keyFrameMediaKey:z.z.string().optional(),bestMatchScore:z.z.number().optional(),nativeFaceShortSidePx:z.z.number().optional(),suggestedIdentityId:z.z.string().optional(),suggestedMatchScore:z.z.number().optional()}),vy=z.z.enum(["unassigned","recognized","all"]),hy=z.z.object({key:z.z.string(),kind:z.z.string(),base64:z.z.string(),sizeBytes:z.z.number(),timestamp:z.z.number()}),Sy={name:"face-gallery",scope:"system",mode:"singleton",methods:{listIdentities:(0,m.A)(z.z.void(),z.z.array(zy).readonly()),createIdentity:(0,m.A)(z.z.object({name:z.z.string().min(1)}),zy,{kind:"mutation",auth:"admin"}),renameIdentity:(0,m.A)(z.z.object({id:z.z.string(),name:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteIdentity:(0,m.A)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listIdentitySamples:(0,m.A)(z.z.object({identityId:z.z.string()}),z.z.array(yy).readonly()),removeSample:(0,m.A)(z.z.object({identityId:z.z.string(),sampleId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listRecentFaces:(0,m.A)(z.z.object({limit:z.z.number().int().positive().optional(),filter:vy.optional(),includeCrops:z.z.boolean().optional()}).optional(),z.z.array(fy).readonly()),getFaceByTrack:(0,m.A)(z.z.object({deviceId:z.z.number().int(),trackId:z.z.string()}),fy.nullable()),getFaceMedia:(0,m.A)(z.z.object({faceId:z.z.string()}),z.z.array(hy).readonly()),assignFace:(0,m.A)(z.z.object({faceId:z.z.string(),identityId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),unassignFace:(0,m.A)(z.z.object({faceId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteFace:(0,m.A)(z.z.object({faceId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),assignFaces:(0,m.A)(z.z.object({faceIds:z.z.array(z.z.string()).min(1),identityId:z.z.string()}),z.z.object({assigned:z.z.number().int(),failed:z.z.array(z.z.string()).readonly()}),{kind:"mutation",auth:"admin"}),unassignFaces:(0,m.A)(z.z.object({faceIds:z.z.array(z.z.string()).min(1)}),z.z.object({unassigned:z.z.number().int(),failed:z.z.array(z.z.string()).readonly()}),{kind:"mutation",auth:"admin"}),suggestFaceClusters:(0,m.A)(z.z.object({threshold:z.z.number().min(0).max(1).optional(),minClusterSize:z.z.number().int().min(2).optional(),limit:z.z.number().int().positive().optional()}).optional(),z.z.array(z.z.object({faceIds:z.z.array(z.z.string()).readonly(),representativeFaceId:z.z.string(),size:z.z.number().int(),cohesion:z.z.number()})).readonly())}},jy=z.z.enum(["forward","reverse"]),ky=z.z.object({percentage:z.z.number().min(0).max(100).nullable(),percentageStep:z.z.number().positive().optional(),preset:z.z.string(),availablePresets:z.z.array(z.z.string()),direction:jy.nullable(),oscillating:z.z.boolean().nullable(),lastChangedAt:z.z.number()}),Iy={name:"fan-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Fan],methods:{setPercentage:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),percentage:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"}),setPreset:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),preset:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),setDirection:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),direction:jy}),z.z.void(),{kind:"mutation",auth:"admin"}),setOscillating:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),oscillating:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:ky,kind:"push"},runtimeState:ky},Ay=z.z.object({flags:z.z.record(z.z.string(),z.z.unknown()),deviceType:z.z.string().nullable(),model:z.z.string().nullable(),channelCount:z.z.number().nullable(),lastProbedAt:z.z.number(),lastFetchedAt:z.z.number()}),Py={name:"feature-probe",scope:"device",deviceNative:!0,mode:"singleton",methods:{},events:{onProbeChanged:{data:z.z.object({deviceId:z.z.number(),status:Ay})}},status:{schema:Ay,kind:"push"},runtimeState:Ay},wy=z.z.object({flooded:z.z.boolean(),lastChangedAt:z.z.number()}),Oy={name:"flood",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:wy,kind:"push"},runtimeState:wy},Cy=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),Ny={name:"gas",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:Cy,kind:"push"},runtimeState:Cy},xy=z.z.object({on:z.z.boolean(),currentHumidity:z.z.number().min(0).max(100).nullable(),targetHumidity:z.z.number().min(0).max(100).nullable(),mode:z.z.string().nullable(),availableModes:z.z.array(z.z.string()),action:z.z.string().nullable(),minHumidity:z.z.number().nullable(),maxHumidity:z.z.number().nullable(),lastChangedAt:z.z.number()}),My={name:"humidifier",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Humidifier],methods:{setOn:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setTargetHumidity:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),humidity:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"}),setMode:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:xy,kind:"push"},runtimeState:xy},Ey=z.z.object({percent:z.z.number().min(0).max(100),lastFetchedAt:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional()}),Ty={name:"humidity-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor,m.C.Thermostat],methods:{},status:{schema:Ey,kind:"push"},runtimeState:Ey},Dy=z.z.object({url:z.z.string().nullable(),lastUpdated:z.z.number().nullable()}),Ry={name:"image",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Image],methods:{},status:{schema:Dy,kind:"push"},runtimeState:Dy},By=z.z.enum(["0","90","180","270"]),Ly=z.z.enum(["auto","manual"]),Fy=z.z.enum(["auto","manual"]),_y=z.z.enum(["off","blc","wdr","hlc"]),qy=z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()}),Uy=z.z.object({brightness:z.z.number().optional(),contrast:z.z.number().optional(),saturation:z.z.number().optional(),sharpness:z.z.number().optional(),mirror:z.z.boolean().optional(),flip:z.z.boolean().optional(),rotate:By.optional(),whiteBalance:Ly.optional(),warmth:z.z.number().optional(),exposureMode:Fy.optional(),backlightMode:_y.optional(),lastFetchedAt:z.z.number()}),$y=z.z.object({supportsBrightness:z.z.boolean(),brightness:qy.optional(),supportsContrast:z.z.boolean(),contrast:qy.optional(),supportsSaturation:z.z.boolean(),saturation:qy.optional(),supportsSharpness:z.z.boolean(),sharpness:qy.optional(),supportsMirror:z.z.boolean(),supportsFlip:z.z.boolean(),rotateOptions:z.z.array(By),whiteBalanceModes:z.z.array(Ly),supportsWarmth:z.z.boolean(),warmth:qy.optional(),exposureModes:z.z.array(Fy),backlightModes:z.z.array(_y)}),Vy=z.z.object({brightness:z.z.number().optional(),contrast:z.z.number().optional(),saturation:z.z.number().optional(),sharpness:z.z.number().optional(),mirror:z.z.boolean().optional(),flip:z.z.boolean().optional(),rotate:By.optional(),whiteBalance:Ly.optional(),warmth:z.z.number().optional(),exposureMode:Fy.optional(),backlightMode:_y.optional()}),Hy={name:"image-settings",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"derived-form",builderId:"image-settings",tab:"image"}},methods:{getOptions:(0,m.A)(z.z.object({deviceId:z.z.number()}),$y),setSettings:(0,m.A)(z.z.object({deviceId:z.z.number(),settings:Vy}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Uy,kind:"poll"},runtimeState:Uy},Ky=z.z.object({id:z.z.string(),addonId:z.z.string(),name:z.z.string(),enabled:z.z.boolean(),info:z.z.record(z.z.string(),z.z.unknown()).readonly(),createdAt:z.z.number(),updatedAt:z.z.number(),processState:z.z.string()}),Wy=z.z.object({id:z.z.string(),addonId:z.z.string(),name:z.z.string(),enabled:z.z.boolean(),info:z.z.record(z.z.string(),z.z.unknown()).readonly(),createdAt:z.z.number(),updatedAt:z.z.number()}),Gy=z.z.object({addonId:z.z.string(),name:z.z.string(),description:z.z.string(),iconUrl:z.z.string().nullable(),color:z.z.string(),instanceMode:z.z.string(),mode:z.z.enum(["standalone","account","broker"]),discoveryMode:z.z.string(),kind:z.z.enum(["device-adoption","device-provider"]),brokerKind:z.z.string().nullable(),supportsLocationImport:z.z.boolean(),canTest:z.z.boolean(),existingInstances:z.z.array(z.z.object({id:z.z.string(),name:z.z.string()})),canAdd:z.z.boolean()}),Zy=z.z.enum(["validated","rejected","inconclusive","unsupported"]),Jy=z.z.object({success:z.z.boolean(),error:z.z.string().optional(),status:Zy.optional(),testedBy:z.z.string().nullable().optional(),latencyMs:z.z.number().nonnegative().optional(),detail:z.z.string().optional()}),Yy=z.z.object({addonId:z.z.string(),name:z.z.string(),enabled:z.z.boolean().optional(),info:z.z.record(z.z.string(),z.z.unknown()).optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional(),skipRestart:z.z.boolean().optional()}),Xy=z.z.object({id:z.z.string(),name:z.z.string().optional(),enabled:z.z.boolean().optional(),info:z.z.record(z.z.string(),z.z.unknown()).optional()}),Qy=z.z.object({success:z.z.boolean(),deletedId:z.z.string()}),ef={name:"integrations",scope:"system",mode:"singleton",methods:{list:(0,m.A)(z.z.void(),z.z.array(Ky)),get:(0,m.A)(z.z.object({id:z.z.string()}),Ky),getByAddonId:(0,m.A)(z.z.object({addonId:z.z.string()}),Wy.nullable()),create:(0,m.A)(Yy,Wy,{kind:"mutation",auth:"admin"}),update:(0,m.A)(Xy,Wy,{kind:"mutation",auth:"admin"}),delete:(0,m.A)(z.z.object({id:z.z.string()}),Qy,{kind:"mutation",auth:"admin"}),getSettings:(0,m.A)(z.z.object({id:z.z.string()}),z.z.record(z.z.string(),z.z.unknown()),{auth:"admin"}),setSettings:(0,m.A)(z.z.object({id:z.z.string(),settings:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({success:z.z.boolean()}),{kind:"mutation",auth:"admin"}),getAvailableTypes:(0,m.A)(z.z.void(),z.z.array(Gy),{auth:"admin"}),testConnection:(0,m.A)(z.z.object({addonId:z.z.string(),settings:z.z.record(z.z.string(),z.z.unknown())}),Jy,{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},tf=z.z.object({codecs:z.z.array(z.z.string()),sampleRate:z.z.number(),duplex:z.z.enum(["half","full"]),maxBacklogMs:z.z.number()}),nf=z.z.object({talking:z.z.boolean(),lastSessionAt:z.z.number().nullable(),ability:tf.nullable()}),af=z.z.enum(["opus","s16le","g711ulaw","g711alaw"]),rf={name:"intercom",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],methods:{startSession:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({sessionId:z.z.string(),sdpOffer:z.z.string()}),{kind:"mutation",auth:"admin"}),handleAnswer:(0,m.A)(z.z.object({deviceId:z.z.number(),sessionId:z.z.string(),sdpAnswer:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),stopSession:(0,m.A)(z.z.object({deviceId:z.z.number(),sessionId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),startTalkSession:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.object({sessionId:z.z.string()}),{kind:"mutation",auth:"admin"}),pushTalkAudio:(0,m.A)(z.z.object({deviceId:z.z.number(),audioBase64:z.z.string(),codec:af.optional(),sampleRate:z.z.number().int().positive().optional(),channels:z.z.number().int().positive().optional(),sequenceNumber:z.z.number().int()}),z.z.object({accepted:z.z.boolean()}),{kind:"mutation",auth:"admin"}),endTalkSession:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:nf})}},status:{schema:nf,kind:"command-driven"}},of=z.z.enum(["idle","mowing","paused","docked","error"]),cf=z.z.enum(["info","warning","error"]),sf=z.z.object({activity:of,batteryLevel:z.z.number().min(0).max(100).nullable(),progressPercent:z.z.number().min(0).max(100).nullable(),currentCode:z.z.number().nullable(),currentCodeLabel:z.z.string().nullable(),severity:cf,lastChangedAt:z.z.number()}),df={name:"lawn-mower-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.LawnMower],methods:{startMowing:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),pause:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),dock:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:sf,kind:"push"},runtimeState:sf},lf=z.z.enum(["lan","wifi","docker","vpn","loopback","other"]),uf=z.z.object({name:z.z.string(),family:z.z.enum(["IPv4","IPv6"]),address:z.z.string(),cidr:z.z.string(),netmask:z.z.string(),internal:z.z.boolean(),mac:z.z.string(),kind:lf,preferred:z.z.boolean(),plausible:z.z.boolean(),plausibleReason:z.z.string()}),mf=z.z.object({interfaces:z.z.array(uf).readonly(),probedAt:z.z.number()}),pf=uf.nullable(),bf=z.z.object({label:z.z.string(),baseUrl:z.z.string(),kind:z.z.enum(["lan-ipv4","lan-ipv6","public","loopback"]),interfaceKind:z.z.enum(["lan","wifi","docker","vpn","other","loopback","public"]),plausible:z.z.boolean(),plausibleReason:z.z.string(),priority:z.z.number()}),gf=z.z.object({endpoints:z.z.array(bf).readonly()}),zf=z.z.object({baseUrl:z.z.string().nullable(),resolved:z.z.string().nullable()}),yf=z.z.object({addresses:z.z.array(z.z.string()).readonly()}),ff={name:"local-network",scope:"system",mode:"singleton",methods:{list:(0,m.A)(z.z.void(),mf),getPreferred:(0,m.A)(z.z.void(),pf),getConnectionEndpoints:(0,m.A)(z.z.object({port:z.z.number().int().min(1).max(65535),includeLoopback:z.z.boolean().optional(),ipv4Only:z.z.boolean().optional(),scheme:z.z.enum(["http","https"]).optional()}),gf),getNotificationEndpoint:(0,m.A)(z.z.void(),zf),setNotificationEndpoint:(0,m.A)(z.z.object({baseUrl:z.z.string().nullable()}),zf,{kind:"mutation"}),getAllowedAddresses:(0,m.A)(z.z.void(),yf),setAllowedAddresses:(0,m.A)(yf,z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),resetAllowlistToBestMatch:(0,m.A)(z.z.void(),yf,{kind:"mutation"})},mount:{kind:"hub-only"}},vf=z.z.enum(["locked","unlocked","locking","unlocking","jammed"]),hf=z.z.object({state:vf,lastChangedAt:z.z.number()}),Sf={name:"lock-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Lock],methods:{lock:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),code:z.z.string().min(1).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),unlock:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),code:z.z.string().min(1).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),open:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:hf,kind:"push"},runtimeState:hf},jf=z.z.enum(["off","on","idle","playing","paused","buffering","standby"]),kf=z.z.enum(["off","all","one"]),If=z.z.object({type:z.z.string(),title:z.z.string(),artist:z.z.string().optional(),album:z.z.string().optional(),imageUrl:z.z.string().optional()}),Af=z.z.object({state:jf,volumeLevel:z.z.number().min(0).max(100).nullable(),isMuted:z.z.boolean().nullable(),source:z.z.string(),availableSources:z.z.array(z.z.string()),currentMedia:If.nullable(),positionMs:z.z.number().int().nonnegative().nullable(),durationMs:z.z.number().int().nonnegative().nullable(),shuffle:z.z.boolean().nullable(),repeat:kf.nullable(),lastChangedAt:z.z.number()}),Pf={name:"media-player",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.MediaPlayer],methods:{play:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),pause:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),next:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),previous:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),seek:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),positionMs:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setVolume:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),volumeLevel:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"}),setMute:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),muted:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setShuffle:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),shuffle:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setRepeat:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),repeat:kf}),z.z.void(),{kind:"mutation",auth:"admin"}),selectSource:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),source:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),playMedia:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),mediaId:z.z.string().min(1),mediaType:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Af,kind:"push"},runtimeState:Af},wf=z.z.object({id:z.z.string(),label:z.z.string(),scope:z.z.enum(["mesh","public"]),url:z.z.string(),hostname:z.z.string(),port:z.z.number(),protocol:z.z.enum(["http","https"])}),Of=z.z.object({id:z.z.string(),hostname:z.z.string(),magicDns:z.z.string(),addresses:z.z.array(z.z.string()).readonly(),os:z.z.string().optional(),online:z.z.boolean(),lastSeenMs:z.z.number(),isSelf:z.z.boolean(),connection:z.z.enum(["direct","relay","idle"]),relay:z.z.string().nullable(),lastHandshakeMs:z.z.number(),rxBytes:z.z.number(),txBytes:z.z.number(),tags:z.z.array(z.z.string()).readonly(),exitNodeOption:z.z.boolean(),advertisedRoutes:z.z.array(z.z.string()).readonly(),userLogin:z.z.string().nullable(),keyExpiry:z.z.number().nullable()}),Cf=z.z.object({joined:z.z.boolean(),meshIp:z.z.string(),magicDnsHostname:z.z.string(),peerCount:z.z.number(),endpoints:z.z.array(wf).readonly(),error:z.z.string().optional(),tenantName:z.z.string(),magicDnsSuffix:z.z.string(),userLogin:z.z.string().nullable(),controlPlaneUrl:z.z.string(),keyExpiry:z.z.number().nullable(),daemonSocket:z.z.string().optional(),daemonCliPath:z.z.string().optional()}),Nf={name:"mesh-network",scope:"system",mode:"collection",providerKind:"mesh",methods:{getStatus:(0,m.A)(z.z.void(),Cf),join:(0,m.A)(z.z.object({authKey:z.z.string().min(8),hostname:z.z.string().optional()}),z.z.object({joined:z.z.literal(!0)}),{kind:"mutation"}),startLogin:(0,m.A)(z.z.object({hostname:z.z.string().optional()}),z.z.object({loginUrl:z.z.string()}),{kind:"mutation"}),leave:(0,m.A)(z.z.void(),z.z.object({left:z.z.literal(!0)}),{kind:"mutation"}),logout:(0,m.A)(z.z.void(),z.z.object({loggedOut:z.z.literal(!0)}),{kind:"mutation"}),listPeers:(0,m.A)(z.z.void(),z.z.object({peers:z.z.array(Of).readonly()})),testConnection:(0,m.A)(z.z.object({authKey:z.z.string().optional()}),z.z.object({ok:z.z.boolean(),tenant:z.z.string().optional(),daemonVersion:z.z.string().optional(),error:z.z.string().optional()}),{kind:"mutation"})}},xf=z.z.object({detected:z.z.boolean(),lastDetectedAt:z.z.number().nullable(),autoClearAfterMs:z.z.number().nullable()}),Mf=z.z.object({deviceId:z.z.number(),detected:z.z.boolean(),timestamp:z.z.number(),source:lp,regions:z.z.array(ps).readonly().optional()}),Ef={name:"motion",scope:"device",mode:"singleton",deviceNative:!0,deviceTypes:[m.C.Camera,m.C.Sensor],methods:{isDetected:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.boolean())},events:{onMotionChanged:{data:Mf}},status:{schema:xf,kind:"push"},runtimeState:xf},Tf=z.z.object({enabled:z.z.boolean(),lastChangedAt:z.z.number()}),Df=Tf.extend({lastFetchedAt:z.z.number()}),Rf={name:"motion-trigger",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Light,m.C.Siren,m.C.Switch],methods:{setMotionTrigger:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onMotionTriggerChanged:{data:z.z.object({deviceId:z.z.number(),enabled:z.z.boolean(),lastChangedAt:z.z.number()})}},status:{schema:Tf,kind:"command-driven"},runtimeState:Df},Bf=z.z.object({id:z.z.number(),enabled:z.z.boolean(),shape:wd}),Lf=z.z.object({enabled:z.z.boolean(),sensitivity:z.z.number(),regions:z.z.array(Bf),lastFetchedAt:z.z.number()}),Ff=z.z.object({maxRegions:z.z.number(),supportedShapes:z.z.array(Nd),grid:Md,sensitivity:z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()})}),_f=z.z.object({enabled:z.z.boolean().optional(),sensitivity:z.z.number().optional(),regions:z.z.array(Bf).optional()}),qf={name:"motion-zones",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/motion-zones-grid",tab:"motion",label:"Motion Zones"}},methods:{getOptions:(0,m.A)(z.z.object({deviceId:z.z.number()}),Ff),setZone:(0,m.A)(z.z.object({deviceId:z.z.number(),patch:_f}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Lf,kind:"poll"},runtimeState:Lf},Uf=z.z.enum(["person","vehicle","animal","face","package","other"]),$f=z.z.object({class:Uf,timestamp:z.z.number(),confidence:z.z.number().min(0).max(1).optional()}),Vf=z.z.object({lastByClass:z.z.partialRecord(Uf,$f.nullable()),supportedClasses:z.z.array(Uf).readonly(),enabled:z.z.boolean()}),Hf=Vf.extend({lastFetchedAt:z.z.number()}),Kf={name:"native-object-detection",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],methods:{setEnabled:(0,m.A)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onDetected:{data:z.z.object({deviceId:z.z.number(),detection:$f})}},status:{schema:Vf,kind:"push"},runtimeState:Hf},Wf=z.z.object({nominalBitrateKbps:z.z.number(),observedBitrateKbps:z.z.number(),peakBitrateKbps:z.z.number(),packetLossPercent:z.z.number(),lastUpdated:z.z.number()}),Gf=z.z.object({rttMs:z.z.number(),jitterMs:z.z.number(),estimatedBandwidthKbps:z.z.number(),packetLossPercent:z.z.number().min(0).max(100),lastUpdated:z.z.number()}),Zf=z.z.object({deviceId:z.z.number(),streams:z.z.record(z.z.string(),Wf),client:Gf.optional()}),Jf={name:"network-quality",scope:"system",mode:"singleton",methods:{getDeviceStats:(0,m.A)(z.z.object({deviceId:z.z.number()}),Zf.nullable()),getAllStats:(0,m.A)(z.z.void(),z.z.array(Zf).readonly()),reportClientStats:(0,m.A)(z.z.object({deviceId:z.z.number(),rttMs:z.z.number().min(0).max(6e4),jitterMs:z.z.number().min(0).max(1e4),estimatedBandwidthKbps:z.z.number().min(0).max(1e6),packetLossPercent:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation"})},mount:{kind:"server-provided"}},Yf=z.z.object({addonId:z.z.string(),capabilities:z.z.array(z.z.string()).readonly(),status:z.z.string()}),Xf=z.z.object({pid:z.z.number(),name:z.z.string(),state:z.z.string(),cpuPercent:z.z.number(),memoryRss:z.z.number(),uptimeSeconds:z.z.number(),services:z.z.array(Yf).readonly(),groupId:z.z.string().optional()}),Qf=z.z.object({id:z.z.string(),status:z.z.string(),cpuPercent:z.z.number(),memoryRss:z.z.number()}),ev=z.z.object({category:z.z.string(),total:z.z.number(),healthy:z.z.number(),addons:z.z.array(Qf).readonly()}),tv=z.z.object({name:z.z.string(),version:z.z.string()}),nv=z.z.object({id:z.z.string(),name:z.z.string(),hostname:z.z.string(),platform:z.z.string(),arch:z.z.string(),cpuModel:z.z.string().nullable(),cpuCores:z.z.number(),memoryMB:z.z.number(),engines:z.z.array(z.z.string()).readonly(),isHub:z.z.boolean(),isOnline:z.z.boolean(),cpuPercent:z.z.number(),memoryPercent:z.z.number(),uptime:z.z.number(),lastSeen:z.z.string(),localIps:z.z.array(z.z.string()).readonly(),addons:z.z.array(z.z.object({id:z.z.string(),capabilities:z.z.array(z.z.string()).readonly(),status:z.z.string()})).readonly(),processes:z.z.array(Xf).readonly(),categories:z.z.array(ev).readonly(),rootPackage:tv.nullable()}),av=z.z.object({callerAddonId:z.z.string(),providerAddonId:z.z.string(),capName:z.z.string(),callsPerMin:z.z.number(),lastCallAtMs:z.z.number()}),rv=z.z.object({nodeId:z.z.string(),name:z.z.string(),version:z.z.string(),status:z.z.string(),synced:z.z.boolean()}),ov=z.z.object({hubVersion:z.z.string(),nodes:z.z.array(rv)}),iv=z.z.object({nodeId:z.z.string(),addonId:z.z.string()}),cv=z.z.object({id:z.z.string(),status:z.z.string(),version:z.z.string().optional(),packageName:z.z.string().optional()}),sv=z.z.object({success:z.z.boolean()}),dv=z.z.object({success:z.z.boolean(),reason:z.z.string().optional()}),lv=z.z.object({restarted:z.z.array(z.z.string()).readonly(),failed:z.z.array(z.z.string()).readonly()}),uv=z.z.object({nodeId:z.z.string(),name:z.z.string()}),mv={name:"nodes",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{topology:(0,m.A)(z.z.void(),z.z.array(nv).readonly(),{auth:"admin"}),deployAddon:(0,m.A)(iv,sv,{kind:"mutation",auth:"admin"}),undeployAddon:(0,m.A)(iv,sv,{kind:"mutation",auth:"admin"}),restartAddon:(0,m.A)(iv,sv,{kind:"mutation",auth:"admin"}),restartProcess:(0,m.A)(z.z.object({nodeId:z.z.string(),processName:z.z.string()}),dv,{kind:"mutation",auth:"admin"}),restartNode:(0,m.A)(z.z.object({nodeId:z.z.string()}),lv,{kind:"mutation",auth:"admin"}),shutdownNode:(0,m.A)(z.z.object({nodeId:z.z.string()}),sv,{kind:"mutation",auth:"admin"}),renameNode:(0,m.A)(z.z.object({nodeId:z.z.string(),name:z.z.string().min(1).max(64)}),uv,{kind:"mutation",auth:"admin"}),clusterAddonStatus:(0,m.A)(z.z.void(),z.z.record(z.z.string(),ov),{auth:"admin"}),getCapUsageGraph:(0,m.A)(z.z.object({windowSeconds:z.z.number().int().positive().max(300).default(60)}),z.z.array(av).readonly(),{auth:"admin"}),getNodeAddons:(0,m.A)(z.z.object({nodeId:z.z.string()}),z.z.array(cv).readonly(),{auth:"admin"}),setProcessLogLevel:(0,m.A)(z.z.object({nodeId:z.z.string(),level:z.z.string()}),sv,{kind:"mutation",auth:"admin"}),executeQuery:(0,m.A)(z.z.object({nodeId:z.z.string(),addonId:z.z.string(),queryName:z.z.string(),params:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.unknown(),{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},pv=z.z.enum(["min","low","normal","high"]),bv=z.z.object({id:z.z.string().min(1),title:z.z.string().min(1),uri:z.z.url().optional(),destructive:z.z.boolean().optional()}),gv=z.z.object({image:z.z.boolean(),priority:z.z.boolean(),data:z.z.boolean(),actions:z.z.boolean(),recipients:z.z.boolean()}),zv=z.z.object({lastSentAt:z.z.number(),lastError:z.z.string().nullable(),queueDepth:z.z.number().int().nonnegative(),supports:gv}),yv=z.z.object({deviceId:z.z.number().int().nonnegative(),title:z.z.string().optional(),body:z.z.string().min(1),image:z.z.string().optional(),priority:pv.optional(),channel:z.z.string().optional(),recipients:z.z.array(z.z.string()).optional(),actions:z.z.array(bv).optional(),data:z.z.record(z.z.string(),z.z.unknown()).optional()}),fv=z.z.object({notificationId:z.z.string(),acceptedAt:z.z.number()}),vv={name:"notifier",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Notifier],methods:{send:(0,m.A)(yv,fv,{kind:"mutation",auth:"admin"}),cancel:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),notificationId:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onSent:{data:z.z.object({deviceId:z.z.number(),notificationId:z.z.string(),success:z.z.boolean(),error:z.z.string().nullable(),acceptedAt:z.z.number()})}},status:{schema:zv,kind:"command-driven"},runtimeState:zv},hv=z.z.object({value:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional(),lastFetchedAt:z.z.number()}),Sv={name:"numeric-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:hv,kind:"push"},runtimeState:hv},jv=z.z.enum(["text","timestamp","watermark"]),kv=z.z.enum(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right","custom"]),Iv=z.z.object({id:z.z.string(),kind:jv,enabled:z.z.boolean(),text:z.z.string().optional(),position:kv.optional(),availablePositions:z.z.array(kv).readonly(),readOnly:z.z.boolean().optional()}),Av=z.z.object({overlays:z.z.array(Iv).readonly()}),Pv=z.z.object({enabled:z.z.boolean().optional(),text:z.z.string().optional(),position:kv.optional()}).partial(),wv={name:"osd",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],methods:{setOverlay:(0,m.A)(z.z.object({deviceId:z.z.number(),overlayId:z.z.string(),patch:Pv}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:Av})}},status:{schema:Av,kind:"command-driven"},settings:{bindings:[{kind:"array",statusPath:"overlays",idField:"id",method:"setOverlay",idArg:"overlayId",patchArg:"patch",sectionId:"osd",sectionTitle:"Video overlays",itemFields:{enabled:{label:e=>`${String(e.id)} enabled`,kind:"boolean"},text:{label:e=>`${String(e.id)} text`,kind:"text",when:e=>"timestamp"!==e.kind&&!e.readOnly},position:{label:e=>`${String(e.id)} position`,kind:"select",options:e=>e.availablePositions??[],when:e=>Array.isArray(e.availablePositions)&&e.availablePositions.length>0}}}]}},Ov=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("static"),text:z.z.string().max(64)}),z.z.object({kind:z.z.literal("clock"),pattern:z.z.string().min(1).max(32).default("HH:mm"),timezone:z.z.string().min(1).max(64).optional()}),z.z.object({kind:z.z.literal("device-state"),deviceId:z.z.number().int().optional(),capName:z.z.string().min(1).max(64),valuePath:z.z.string().min(1).max(64)})]),Cv=z.z.object({enabled:z.z.boolean().default(!0),source:Ov,template:z.z.string().max(96).default("${value}"),maxCharacters:z.z.number().int().min(4).max(64).optional(),maxDecimals:z.z.number().int().min(0).max(4).default(1),unitLabel:z.z.string().max(8).optional(),valueMap:z.z.record(z.z.string(),z.z.string()).optional(),schedule:Rd.optional(),conditions:Kd.optional(),fallbackText:z.z.string().max(64).default("")}),Nv=z.z.object({slotId:z.z.string(),kind:jv,readOnly:z.z.boolean(),cameraEnabled:z.z.boolean(),cameraText:z.z.string().optional(),binding:Cv.nullable()}),xv=z.z.enum(["written","unchanged","gated","unreadable","disabled","unbound","failed"]),Mv=z.z.object({slotId:z.z.string(),outcome:xv,text:z.z.string(),reason:z.z.string().optional()}),Ev=z.z.enum(["number","boolean","string","enum"]),Tv=z.z.object({deviceId:z.z.number().int(),deviceName:z.z.string(),capName:z.z.string(),valuePath:z.z.string(),label:z.z.string(),valueType:Ev,enumValues:z.z.array(z.z.string()).readonly().optional()}),Dv={name:"osd-manager",scope:"system",mode:"singleton",methods:{getDeviceOsd:(0,m.A)(z.z.object({deviceId:z.z.number().int()}),z.z.object({supported:z.z.boolean(),slots:z.z.array(Nv)}),{auth:"admin"}),getSourceCatalog:(0,m.A)(z.z.object({deviceId:z.z.number().int()}),z.z.object({sources:z.z.array(Tv)}),{auth:"admin"}),getConditionSupport:(0,m.A)(z.z.object({}),z.z.object({supported:z.z.array(z.z.string()),catalog:z.z.array(nl)}),{auth:"admin"}),setSlotBinding:(0,m.A)(z.z.object({deviceId:z.z.number().int(),slotId:z.z.string().min(1),binding:Cv}),z.z.object({slot:Nv,render:Mv}),{kind:"mutation",auth:"admin"}),clearSlotBinding:(0,m.A)(z.z.object({deviceId:z.z.number().int(),slotId:z.z.string().min(1)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),previewSlot:(0,m.A)(z.z.object({deviceId:z.z.number().int(),slotId:z.z.string().min(1),binding:Cv.optional()}),Mv,{kind:"mutation",auth:"admin"}),renderDevice:(0,m.A)(z.z.object({deviceId:z.z.number().int()}),z.z.object({results:z.z.array(Mv)}),{kind:"mutation",auth:"admin"})}},Rv=4,Bv=200,Lv=z.z.enum(["normal","offline","on_batteries"]),Fv=z.z.number().int().min(4).max(200),_v=z.z.object({foodLevel:z.z.number().nullable(),food1:z.z.number().nullable(),food2:z.z.number().nullable(),lowFood:z.z.boolean(),batteryPower:z.z.number().min(0).max(100).nullable(),desiccantLeftDays:z.z.number().nullable(),feeding:z.z.boolean(),status:Lv.nullable(),error:z.z.string().nullable(),errorCode:z.z.number().nullable(),isDualHopper:z.z.boolean(),childLock:z.z.boolean(),indicatorLight:z.z.boolean(),feedSound:z.z.boolean(),volume:z.z.number(),lastFetchedAt:z.z.number()}),qv={name:"pet-feeder",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.PetFeeder],methods:{feed:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),grams:Fv.optional(),hopper1:Fv.optional(),hopper2:Fv.optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),cancelFeed:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),resetDesiccant:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),markFoodReplenished:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),callPet:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),playSound:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),soundId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setChildLock:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setIndicatorLight:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setFeedSound:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setVolume:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),level:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:_v,kind:"poll"},runtimeState:_v},Uv=z.z.object({id:z.z.string(),name:z.z.string(),sampleCount:z.z.number().int().nonnegative(),coverMediaKey:z.z.string().optional(),coverBase64:z.z.string().optional()}),$v=z.z.object({id:z.z.string(),text:z.z.string(),score:z.z.number(),addedAt:z.z.number().int(),deviceId:z.z.number().int().optional(),base64:z.z.string().optional()}),Vv=z.z.object({plateId:z.z.string(),deviceId:z.z.number().int(),trackId:z.z.string(),timestamp:z.z.number().int(),text:z.z.string(),score:z.z.number(),corrected:z.z.boolean(),recognizedVehicleId:z.z.string().optional(),vehicleName:z.z.string().optional(),assigned:z.z.boolean(),plateBbox:Ha.optional(),keyFrameMediaKey:z.z.string().optional(),base64:z.z.string().optional()}),Hv=z.z.object({key:z.z.string(),kind:z.z.string(),base64:z.z.string(),sizeBytes:z.z.number(),timestamp:z.z.number()}),Kv=z.z.object({plateIds:z.z.array(z.z.string()).readonly(),representativePlateId:z.z.string(),representativeText:z.z.string(),size:z.z.number().int(),cohesion:z.z.number()}),Wv={name:"plate-gallery",scope:"system",mode:"singleton",methods:{listPlates:(0,m.A)(z.z.object({deviceId:z.z.number().int().optional(),limit:z.z.number().int().positive().optional()}).optional(),z.z.array(Vv).readonly()),getPlateByTrack:(0,m.A)(z.z.object({deviceId:z.z.number().int(),trackId:z.z.string()}),Vv.nullable()),getPlateMedia:(0,m.A)(z.z.object({plateId:z.z.string()}),z.z.array(Hv).readonly()),searchPlates:(0,m.A)(z.z.object({text:z.z.string().min(1),maxDistance:z.z.number().int().min(0).optional(),limit:z.z.number().int().positive().optional()}),z.z.array(Vv).readonly()),suggestPlateClusters:(0,m.A)(z.z.object({maxDistance:z.z.number().int().min(0).optional(),minClusterSize:z.z.number().int().min(2).optional(),limit:z.z.number().int().positive().optional()}).optional(),z.z.array(Kv).readonly()),correctPlateText:(0,m.A)(z.z.object({plateId:z.z.string(),text:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),deletePlate:(0,m.A)(z.z.object({plateId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listVehicles:(0,m.A)(z.z.void(),z.z.array(Uv).readonly()),createVehicle:(0,m.A)(z.z.object({name:z.z.string().min(1)}),Uv,{kind:"mutation",auth:"admin"}),renameVehicle:(0,m.A)(z.z.object({id:z.z.string(),name:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteVehicle:(0,m.A)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listVehicleSamples:(0,m.A)(z.z.object({vehicleId:z.z.string()}),z.z.array($v).readonly()),removeVehicleSample:(0,m.A)(z.z.object({vehicleId:z.z.string(),sampleId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),assignPlate:(0,m.A)(z.z.object({plateId:z.z.string(),vehicleId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),unassignPlate:(0,m.A)(z.z.object({plateId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),assignPlates:(0,m.A)(z.z.object({plateIds:z.z.array(z.z.string()).min(1),vehicleId:z.z.string()}),z.z.object({assigned:z.z.number().int(),failed:z.z.array(z.z.string()).readonly()}),{kind:"mutation",auth:"admin"}),unassignPlates:(0,m.A)(z.z.object({plateIds:z.z.array(z.z.string()).min(1)}),z.z.object({unassigned:z.z.number().int(),failed:z.z.array(z.z.string()).readonly()}),{kind:"mutation",auth:"admin"})}},Gv=z.z.enum(Et),Zv=z.z.enum(["videotoolbox","cuda","nvdec","vaapi","qsv","d3d11va","dxva2","amf","vdpau","drm","coreml","tensorrt","openvino","directml","webgpu","none"]).nullable().optional(),Jv=z.z.object({preferred:z.z.array(z.z.string()).readonly(),rationale:z.z.string()}),Yv=z.z.enum(["h264_videotoolbox","hevc_videotoolbox","h264_vaapi","hevc_vaapi","h264_nvenc","hevc_nvenc","h264_qsv","hevc_qsv","h264_amf","hevc_amf","libx264","libx265"]),Xv=z.z.object({encoder:Yv,codec:z.z.enum(["H264","H265"]),family:z.z.enum(["videotoolbox","vaapi","nvenc","qsv","amf","software"]),available:z.z.boolean(),reason:z.z.string().optional()});z.z.object({encoders:z.z.array(Xv).readonly(),defaultH264:Yv,defaultH265:Yv,probedAt:z.z.number()}),z.z.object({methods:z.z.array(z.z.string()).readonly(),probedAt:z.z.number()});var Qv=z.z.enum(["darwin","linux","win32"]),eh=z.z.enum(["arm64","x64"]),th=z.z.object({type:z.z.enum(["nvidia","amd","intel","apple"]),name:z.z.string(),memoryMB:z.z.number().optional()}),nh=z.z.object({type:z.z.enum(["apple-ane","intel-npu"])}),ah=z.z.object({type:z.z.literal("coral-edgetpu"),bus:z.z.string().optional()}),rh=z.z.object({platform:Qv,arch:eh,cpuModel:z.z.string(),cpuCores:z.z.number(),totalRAM_MB:z.z.number(),availableRAM_MB:z.z.number(),gpu:th.nullable(),npu:nh.nullable(),coral:ah.nullable().optional()}),oh=z.z.object({runtime:z.z.enum(["node","python"]),backend:z.z.string(),format:z.z.enum(["onnx","coreml","openvino","tflite"]),score:z.z.number(),reason:z.z.string(),available:z.z.boolean()}),ih=z.z.object({key:z.z.string(),backend:z.z.string(),device:z.z.string(),format:Gv,runtime:z.z.literal("python"),score:z.z.number(),available:z.z.boolean()}),ch=z.z.object({hardware:rh,scores:z.z.array(oh).readonly(),bestScore:oh,pythonPath:z.z.string().nullable(),devices:z.z.array(ih).readonly()}),sh=z.z.object({modelId:z.z.string(),name:z.z.string(),minRAM_MB:z.z.number(),accuracyScore:z.z.number(),formats:z.z.array(z.z.string()).readonly()}),dh=z.z.object({modelId:z.z.string(),runtime:z.z.enum(["node","python"]),backend:z.z.string(),format:Gv,reason:z.z.string()}),lh={name:"platform-probe",scope:"system",mode:"singleton",methods:{getCapabilities:(0,m.A)(z.z.void(),ch),getHardware:(0,m.A)(z.z.void(),rh),resolveInferenceConfig:(0,m.A)(z.z.object({requirements:z.z.array(sh).readonly()}),dh),resolveHwAccel:(0,m.A)(z.z.object({prefer:Zv}),Jv)}},uh=z.z.object({watts:z.z.number().optional(),kwhTotal:z.z.number().optional(),volts:z.z.number().optional(),amps:z.z.number().optional(),va:z.z.number().optional(),powerFactor:z.z.number().min(0).max(1).optional(),lastFetchedAt:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional()}),mh={name:"power-meter",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:uh,kind:"push"},runtimeState:uh},ph=z.z.object({latitude:z.z.number().min(-90).max(90),longitude:z.z.number().min(-180).max(180),accuracyMeters:z.z.number().nonnegative()}),bh=z.z.object({state:z.z.string(),location:z.z.string().nullable(),gps:ph.nullable(),batteryPercent:z.z.number().min(0).max(100).nullable(),lastChangedAt:z.z.number()}),gh={name:"presence",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Presence],methods:{},status:{schema:bh,kind:"push"},runtimeState:bh},zh=z.z.object({hpa:z.z.number(),lastFetchedAt:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional()}),yh={name:"pressure-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:zh,kind:"push"},runtimeState:zh},fh=z.z.discriminatedUnion("kind",[Ad,Pd]),vh=z.z.object({id:z.z.number(),enabled:z.z.boolean(),shape:fh}),hh=z.z.object({enabled:z.z.boolean(),regions:z.z.array(vh),audioEnabled:z.z.boolean().nullable(),lastFetchedAt:z.z.number()}),Sh=z.z.object({maxRegions:z.z.number(),supportedShapes:z.z.array(Nd),polygonVertices:xd.optional(),supportsAudioMute:z.z.boolean()}),jh=z.z.object({enabled:z.z.boolean().optional(),regions:z.z.array(vh).optional()}),kh={name:"privacy-mask",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/privacy-mask-grid",tab:"image",label:"Privacy Mask"}},methods:{getOptions:(0,m.A)(z.z.object({deviceId:z.z.number()}),Sh),setMask:(0,m.A)(z.z.object({deviceId:z.z.number(),patch:jh}),z.z.void(),{kind:"mutation",auth:"admin"}),setAudioEnabled:(0,m.A)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:hh,kind:"poll"},runtimeState:hh};function Ih(e){return 0===e.length?null:e.some(e=>e.audioEnabled)}var Ah=z.z.object({id:z.z.string(),name:z.z.string()}),Ph=z.z.object({pan:z.z.number(),tilt:z.z.number(),zoom:z.z.number()}),wh=z.z.object({pan:z.z.number().optional(),tilt:z.z.number().optional(),zoom:z.z.number().optional(),speed:z.z.number().optional()}),Oh=Ph.extend({autofocus:z.z.boolean()}),Ch=z.z.object({hasPan:z.z.boolean(),hasTilt:z.z.boolean(),hasZoom:z.z.boolean(),supportsPresets:z.z.boolean(),maxPresets:z.z.number().optional(),hasAutofocus:z.z.boolean()}),Nh={name:"ptz",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/ptz-panel",tab:"ptz",topTab:!0,label:"PTZ",order:0}},methods:{move:(0,m.A)(wh.extend({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),continuousMove:(0,m.A)(wh.extend({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),stop:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),getPresets:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.array(Ah)),goToPreset:(0,m.A)(z.z.object({deviceId:z.z.number(),presetId:z.z.string()}),z.z.void(),{kind:"mutation"}),savePreset:(0,m.A)(z.z.object({deviceId:z.z.number(),presetId:z.z.string(),name:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),deletePreset:(0,m.A)(z.z.object({deviceId:z.z.number(),presetId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),getOptions:(0,m.A)(z.z.object({deviceId:z.z.number()}),Ch),goHome:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),getPosition:(0,m.A)(z.z.object({deviceId:z.z.number()}),Ph),setAutofocus:(0,m.A)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation"})},status:{schema:Oh,kind:"command-driven"}},xh=z.z.string().describe("Vendor target string (people/vehicle/pet); empty = camera default"),Mh=z.z.object({targetType:xh,stopDelaySeconds:z.z.number().int().min(0).max(300),disappearDelaySeconds:z.z.number().int().min(0).max(300)}),Eh=z.z.object({value:z.z.string(),label:z.z.string()}),Th=z.z.object({enabled:z.z.boolean(),lastChangedAt:z.z.number(),currentSettings:Mh.nullable(),supportedTargetTypes:z.z.array(Eh)}),Dh=Th.extend({lastFetchedAt:z.z.number()}),Rh={name:"ptz-autotrack",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/ptz-autotrack",tab:"ptz",topTab:!0,label:"Auto-Tracking",order:5}},methods:{getStatus:(0,m.A)(z.z.object({deviceId:z.z.number()}),Th),setEnabled:(0,m.A)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation"}),getSettings:(0,m.A)(z.z.object({deviceId:z.z.number()}),Mh.nullable()),setSettings:(0,m.A)(z.z.object({deviceId:z.z.number(),settings:Mh.partial()}),z.z.void(),{kind:"mutation"})},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:Th})}},status:{schema:Th,kind:"command-driven"},runtimeState:Dh},Bh={name:"reboot",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera,m.C.Sensor,m.C.Switch],methods:{reboot:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"})}},Lh=z.z.object({deviceId:z.z.number(),enabled:z.z.boolean(),activeMode:z.z.enum(["off","continuous","events"]),nodeId:z.z.string(),storageBytes:z.z.number()}),Fh=z.z.object({profile:z.z.string(),startMs:z.z.number(),endMs:z.z.number()}),_h=z.z.object({deviceId:z.z.number(),ranges:z.z.array(Fh)}),qh=z.z.object({deviceId:z.z.number(),days:z.z.array(z.z.number())}),Uh=z.z.object({deviceId:z.z.number(),localMasterPath:z.z.string().nullable(),playbackUrl:z.z.string().nullable(),playbackEndpoints:z.z.array(z.z.string())}),$h=z.z.object({deviceId:z.z.number(),usedBytes:z.z.number()}),Vh=z.z.object({locationId:z.z.string().nullable(),locationIds:z.z.array(z.z.string()).optional(),usedBytes:z.z.number(),availableBytes:z.z.number().nullable(),totalBytes:z.z.number().nullable()}),Hh=z.z.object({nodeId:z.z.string(),totalUsedBytes:z.z.number(),devices:z.z.array($h),locations:z.z.array(Vh)}),Kh=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("segment"),startMs:z.z.number(),durMs:z.z.number(),bytes:z.z.number()}),z.z.object({kind:z.z.literal("gap"),nearestEdgeMs:z.z.number().nullable(),prevEndMs:z.z.number().nullable().optional()})]),Wh=z.z.object({data:z.z.instanceof(Uint8Array)}),Gh=z.z.object({data:z.z.instanceof(Uint8Array),gopStartMs:z.z.number(),gopDurMs:z.z.number()}),Zh={name:"recording",scope:"system",mode:"singleton",exposesDeviceSettings:!0,status:{schema:Lh,kind:"command-driven"},methods:{getAvailability:(0,m.A)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number(),toMs:z.z.number()}),_h,{kind:"query",auth:"admin"}),getDaysWithRecordings:(0,m.A)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number(),toMs:z.z.number(),tzOffsetMinutes:z.z.number()}),qh,{kind:"query",auth:"admin"}),getPlaybackManifest:(0,m.A)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number(),toMs:z.z.number()}),Uh,{kind:"query",auth:"admin"}),getStorageUsage:(0,m.A)(z.z.object({}),Hh,{kind:"query",auth:"admin"}),getDeviceConfig:(0,m.A)(z.z.object({deviceId:z.z.number()}),nt,{kind:"query",auth:"admin"}),locateSegment:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),epochMs:z.z.number()}),Kh,{kind:"query",auth:"admin"}),readSegmentBytes:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),startMs:z.z.number()}),Wh,{kind:"query",auth:"admin"}),readGopBytes:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),startMs:z.z.number(),epochMs:z.z.number()}),Gh,{kind:"query",auth:"admin"}),setDeviceConfig:(0,m.A)(z.z.object({deviceId:z.z.number(),config:nt}),nt,{kind:"mutation",auth:"admin"}),rescanStorage:(0,m.A)(z.z.object({deviceId:z.z.number()}),Lh,{kind:"mutation",auth:"admin"}),pruneFootage:(0,m.A)(z.z.object({deviceId:z.z.number(),reason:De.optional()}),z.z.object({floorMs:z.z.number().nullable(),deletedBuckets:z.z.number().int(),reclaimedBytes:z.z.number().int()}),{kind:"mutation",auth:"admin"}),deleteFootprint:(0,m.A)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number().optional(),toMs:z.z.number().optional()}),z.z.object({deletedBuckets:z.z.number().int(),reclaimedBytes:z.z.number().int()}),{kind:"mutation",auth:"admin"}),listOpsLog:(0,m.A)(Be,z.z.array(Re).readonly(),{kind:"query",auth:"admin"}),renderGif:(0,m.A)(z.z.object({deviceId:z.z.number(),aroundMs:z.z.number(),preRollSec:z.z.number().min(0).max(30).default(2),postRollSec:z.z.number().min(0).max(30).default(5),maxWidth:z.z.number().int().min(120).max(1280).default(480),fps:z.z.number().int().min(1).max(15).default(5)}),z.z.object({gifBase64:z.z.string(),fromMs:z.z.number(),toMs:z.z.number()}),{kind:"mutation",auth:"admin"}),renderClip:(0,m.A)(z.z.object({deviceId:z.z.number(),aroundMs:z.z.number(),preRollSec:z.z.number().min(0).max(30).default(3),postRollSec:z.z.number().min(0).max(30).default(7),maxWidth:z.z.number().int().min(160).max(1920).default(640)}),z.z.object({clipBase64:z.z.string(),mime:z.z.string(),fromMs:z.z.number(),toMs:z.z.number(),bytes:z.z.number().int()}),{kind:"mutation",auth:"admin"}),relocateFootage:(0,m.A)(it,z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),getRelocateStatus:(0,m.A)(z.z.object({}),z.z.array(ot).readonly(),{kind:"query",auth:"admin"}),cancelRelocate:(0,m.A)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"})}},Jh=z.z.number().min(.25).max(32),Yh=z.z.object({everyMs:z.z.number().int().positive(),outputFps:z.z.number().int().min(1).max(60).optional()}),Xh=z.z.object({speed:Jh.optional(),timelapse:Yh.optional(),includeAudio:z.z.boolean(),maxLifeMs:z.z.number().int().positive(),deleteAfterDownload:z.z.boolean(),title:z.z.string().max(200).optional()}).superRefine((e,t)=>{void 0!==e.speed&&void 0!==e.timelapse&&t.addIssue({code:z.z.ZodIssueCode.custom,message:"speed and timelapse are mutually exclusive",path:["timelapse"]})}),Qh=z.z.enum(["queued","rendering","ready","failed","expired","deleted"]),eS=z.z.object({id:z.z.string(),deviceId:z.z.number(),profile:z.z.string(),fromMs:z.z.number(),toMs:z.z.number(),options:Xh,state:Qh,progressPct:z.z.number().nullable(),fileBytes:z.z.number().nullable(),expiresAt:z.z.number(),deleteAfterDownload:z.z.boolean(),downloadedAt:z.z.number().nullable(),createdAt:z.z.number(),createdBy:z.z.string(),error:z.z.string().nullable()}),tS=z.z.object({url:z.z.string(),endpoints:z.z.array(z.z.string())}),nS={name:"recordingExport",scope:"system",mode:"singleton",methods:{createExport:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),fromMs:z.z.number(),toMs:z.z.number(),options:Xh}),eS,{kind:"mutation",auth:"protected"}),listExports:(0,m.A)(z.z.object({deviceId:z.z.number().optional()}),z.z.array(eS),{kind:"query",auth:"protected"}),getExport:(0,m.A)(z.z.object({exportId:z.z.string()}),eS,{kind:"query",auth:"protected"}),cancelExport:(0,m.A)(z.z.object({exportId:z.z.string()}),eS,{kind:"mutation",auth:"protected"}),deleteExport:(0,m.A)(z.z.object({exportId:z.z.string()}),eS,{kind:"mutation",auth:"protected"}),getDownloadUrl:(0,m.A)(z.z.object({exportId:z.z.string()}),tS,{kind:"query",auth:"protected"})}},aS=z.z.string(),rS=z.z.object({embedding:z.z.array(z.z.number()),modelId:z.z.string(),condition:aS,capturedAt:z.z.number(),thumbnailMediaId:z.z.string().optional()}),oS=z.z.object({id:z.z.string(),label:z.z.string(),references:z.z.array(rS),textPrompts:z.z.array(z.z.string()).optional(),referenceCount:z.z.number(),currentlyMatched:z.z.boolean()}),iS=z.z.discriminatedUnion("mode",[z.z.object({mode:z.z.literal("similarity"),threshold:z.z.number().min(0).max(1),hysteresisCount:z.z.number().int().positive()}),z.z.object({mode:z.z.literal("llm"),prompt:z.z.string(),profileId:z.z.string().optional(),hysteresisCount:z.z.number().int().positive()})]),cS=z.z.object({id:z.z.string(),label:z.z.string(),roi:Ad,enabled:z.z.boolean(),triggerMode:z.z.enum(["periodic","on-motion","both"]),checkIntervalSec:z.z.number().optional(),check:iS,states:z.z.array(oS),currentStateId:z.z.string().nullable(),lastCheckedAt:z.z.number().nullable(),lastConfidence:z.z.number().nullable(),currentCondition:aS.nullable(),availability:z.z.enum(["ok","unavailable"]),unavailableReason:z.z.string().nullable()}),sS=z.z.object({monitors:z.z.array(cS),lastFetchedAt:z.z.number()}),dS={name:"scene-monitor",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/scene-monitor-editor",tab:"scenes",label:"Scenes"}},methods:{listScenes:(0,m.A)(z.z.object({deviceId:z.z.number()}),sS),createScene:(0,m.A)(z.z.object({deviceId:z.z.number(),label:z.z.string(),roi:Ad,check:iS,triggerMode:z.z.enum(["periodic","on-motion","both"]).optional(),checkIntervalSec:z.z.number().optional()}),cS,{kind:"mutation",auth:"admin"}),updateScene:(0,m.A)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string(),patch:z.z.object({label:z.z.string().optional(),roi:Ad.optional(),enabled:z.z.boolean().optional(),triggerMode:z.z.enum(["periodic","on-motion","both"]).optional(),checkIntervalSec:z.z.number().optional(),check:iS.optional()})}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteScene:(0,m.A)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),captureReference:(0,m.A)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string(),stateId:z.z.string().optional(),label:z.z.string().optional(),condition:aS.optional()}),z.z.object({stateId:z.z.string(),referenceCount:z.z.number()}),{kind:"mutation",auth:"admin"}),deleteReference:(0,m.A)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string(),stateId:z.z.string(),index:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),recheckNow:(0,m.A)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:sS,kind:"push"},runtimeState:sS},lS=z.z.enum(["include","exclude"]),uS=z.z.object({id:z.z.string(),name:z.z.string().optional(),zoneIds:z.z.array(z.z.string()).min(1).readonly(),mode:lS,classFilter:z.z.array(z.z.string()).readonly().optional(),overlapThreshold:z.z.number().min(0).max(1).optional(),bboxInclusionPct:z.z.number().min(0).max(100).optional(),preferMask:z.z.boolean().optional(),enabled:z.z.boolean().default(!0)}),mS=z.z.array(uS).readonly(),pS=z.z.object({isRunning:z.z.boolean(),lastRunAt:z.z.number(),lastRunSuccess:z.z.boolean().nullable(),lastError:z.z.string().nullable(),lastChangedAt:z.z.number()}),bS={name:"script-runner",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Script],methods:{run:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),variables:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:pS,kind:"push"},runtimeState:pS},gS=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),zS={name:"smoke",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:gS,kind:"push"},runtimeState:gS},yS=z.z.object({camStreamId:z.z.string().min(1),kind:m.K,url:z.z.string().optional(),codec:z.z.string().optional(),resolution:m.q.optional(),fps:z.z.number().positive().optional(),label:z.z.string().optional(),deviceFeatures:z.z.array(z.z.string()).optional(),autoEligible:z.z.boolean().optional(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional()}),fS={name:"stream-catalog",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],methods:{getCatalog:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(yS).readonly())}},vS=z.z.enum(["main","sub","ext"]),hS=z.z.object({width:z.z.number(),height:z.z.number(),codec:z.z.enum(["h264","h265"]),framerate:z.z.number(),bitrate:z.z.number(),bitrateMode:z.z.enum(["vbr","cbr"]).optional(),encoderProfile:z.z.enum(["high","main","baseline"]).optional(),gop:z.z.number().optional(),audio:z.z.boolean().optional()}),SS=z.z.object({main:hS.optional(),sub:hS.optional(),ext:hS.optional(),lastFetchedAt:z.z.number()}),jS=z.z.object({resolutions:z.z.array(z.z.object({width:z.z.number(),height:z.z.number()})),codecs:z.z.array(z.z.enum(["h264","h265"])),framerates:z.z.array(z.z.number()),bitrates:z.z.array(z.z.number()),bitrateRange:z.z.tuple([z.z.number(),z.z.number()]).optional(),supportsBitrateMode:z.z.boolean(),supportsEncoderProfile:z.z.boolean(),supportsGop:z.z.boolean(),gop:z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()}).optional()}),kS=z.z.object({main:jS.optional(),sub:jS.optional(),ext:jS.optional()}),IS=z.z.object({width:z.z.number().optional(),height:z.z.number().optional(),codec:z.z.enum(["h264","h265"]).optional(),framerate:z.z.number().optional(),bitrate:z.z.number().optional(),bitrateMode:z.z.enum(["vbr","cbr"]).optional(),encoderProfile:z.z.enum(["high","main","baseline"]).optional(),gop:z.z.number().optional()}),AS={name:"stream-params",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Camera],deviceConfig:{ui:{kind:"derived-form",builderId:"stream-params",tab:"streaming"}},methods:{getOptions:(0,m.A)(z.z.object({deviceId:z.z.number()}),kS),setProfile:(0,m.A)(z.z.object({deviceId:z.z.number(),profile:vS,patch:IS}),z.z.void(),{kind:"mutation",auth:"admin"}),getConfigSchema:(0,m.A)(z.z.object({deviceId:z.z.number()}),z.z.unknown().nullable())},status:{schema:SS,kind:"poll"},runtimeState:SS},PS=[{profile:"main",prefix:"streamMain",label:"Main stream"},{profile:"sub",prefix:"streamSub",label:"Sub stream"},{profile:"ext",prefix:"streamExt",label:"Third stream"}];function wS(e,t,n){const a=[];if(t.resolutions.length>0){const r=t.resolutions.map(e=>({value:`${String(e.width)}x${String(e.height)}`,label:`${String(e.width)}\xd7${String(e.height)}`})),o=n?`${String(n.width)}x${String(n.height)}`:void 0;o&&!r.some(e=>e.value===o)&&r.unshift({value:o,label:`${o.replace("x","\xd7")} (current)`}),a.push({type:"select",key:`${e.prefix}_resolution`,label:"Resolution",options:r,default:o??r[0]?.value??""})}if(t.codecs.length>0&&a.push({type:"select",key:`${e.prefix}_codec`,label:"Codec",options:t.codecs.map(e=>({value:e,label:"h264"===e?"H.264":"H.265"})),default:n?.codec??t.codecs[0]}),t.framerates.length>0){const r=t.framerates.map(e=>({value:String(e),label:`${String(e)} fps`})),o=n?.framerate;void 0===o||t.framerates.includes(o)||r.unshift({value:String(o),label:`${String(o)} fps (current)`}),a.push({type:"select",key:`${e.prefix}_framerate`,label:"Frame rate",options:r,default:void 0!==o?String(o):r[0]?.value??""})}if(t.bitrates.length>0){const r=t.bitrates.map(e=>({value:String(e),label:`${String(e)} kbps`})),o=n?.bitrate;void 0===o||t.bitrates.includes(o)||r.unshift({value:String(o),label:`${String(o)} kbps (current)`}),a.push({type:"select",key:`${e.prefix}_bitrate`,label:"Bitrate",options:r,default:void 0!==o?String(o):r[0]?.value??""})}else{const r=t.bitrateRange;a.push(Object.assign({type:"number",key:`${e.prefix}_bitrate`,label:"Bitrate",unit:"kbps"},r?{min:r[0],max:r[1]}:{},{default:n?.bitrate??r?.[0]??0}))}if(t.supportsBitrateMode&&a.push({type:"select",key:`${e.prefix}_bitrateMode`,label:"Bitrate mode",options:[{value:"vbr",label:"VBR (variable)"},{value:"cbr",label:"CBR (constant)"}],default:n?.bitrateMode??"vbr"}),t.supportsEncoderProfile&&a.push({type:"select",key:`${e.prefix}_encoderProfile`,label:"Encoder profile",options:[{value:"baseline",label:"Baseline"},{value:"main",label:"Main"},{value:"high",label:"High"}],default:n?.encoderProfile??"main"}),t.supportsGop){const r=t.gop;if(r){const t=[];for(let e=r.min;e<=r.max;e+=r.step)t.push({value:String(e),label:`${String(e)} s`});const o=n?.gop;void 0===o||t.some(e=>e.value===String(o))||t.unshift({value:String(o),label:`${String(o)} s (current)`}),a.push({type:"select",key:`${e.prefix}_gop`,label:"I-frame interval (GOP)",options:t,default:void 0!==o?String(o):t[0]?.value??""})}else a.push({type:"number",key:`${e.prefix}_gop`,label:"I-frame interval (GOP)",unit:"s",min:1,default:n?.gop??1})}return 0===a.length?null:{id:`stream-${e.profile}`,tab:"streaming",title:e.label,description:"Encoder parameters pushed to the camera. Option lists are read live from the camera \u2014 fields the firmware doesn't expose are hidden.",columns:2,fields:a}}function OS(e,t){const n=[];for(const a of PS){const r=e[a.profile];if(!r)continue;const o=wS(a,r,t?.[a.profile]);o&&n.push(o)}return 0===n.length?null:{sections:n}}function CS(e,t){const n={};let a=!1;const r=`${t}_resolution`;if(r in e&&"string"==typeof e[r]){const[t,o]=e[r].split("x").map(Number);Number.isFinite(t)&&Number.isFinite(o)&&(n.width=t,n.height=o,a=!0)}const o=`${t}_codec`;!(o in e)||"h264"!==e[o]&&"h265"!==e[o]||(n.codec=e[o],a=!0);const i=`${t}_framerate`;if(i in e){const t=Number(e[i]);Number.isFinite(t)&&(n.framerate=t,a=!0)}const c=`${t}_bitrate`;if(c in e){const t=Number(e[c]);Number.isFinite(t)&&(n.bitrate=t,a=!0)}const s=`${t}_bitrateMode`;!(s in e)||"vbr"!==e[s]&&"cbr"!==e[s]||(n.bitrateMode=e[s],a=!0);const d=`${t}_encoderProfile`;!(d in e)||"high"!==e[d]&&"main"!==e[d]&&"baseline"!==e[d]||(n.encoderProfile=e[d],a=!0);const l=`${t}_gop`;if(l in e){const t=Number(e[l]);Number.isFinite(t)&&(n.gop=t,a=!0)}return a?n:null}var NS=z.z.object({on:z.z.boolean(),lastChangedAt:z.z.number()}),xS={name:"switch",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Switch,m.C.Siren,m.C.Light],methods:{setState:(0,m.A)(z.z.object({deviceId:z.z.number(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onStateChanged:{data:z.z.object({deviceId:z.z.number(),on:z.z.boolean(),lastChangedAt:z.z.number()})}},status:{schema:NS,kind:"command-driven"},runtimeState:NS,settings:{bindings:[{kind:"scalar",statusPath:"on",method:"setState",valueArg:"on",field:{label:"On",kind:"boolean"}}]}},MS=z.z.object({streaming:z.z.boolean(),notifications:z.z.boolean(),objectDetection:z.z.boolean(),remoteAccess:z.z.boolean(),agentCluster:z.z.boolean(),smartHome:z.z.boolean(),recordings:z.z.boolean(),backup:z.z.boolean(),repl:z.z.boolean()}),ES=z.z.object({status:z.z.literal("ok"),uptime:z.z.number()}),TS=z.z.object({name:z.z.string(),address:z.z.string(),family:z.z.string(),internal:z.z.boolean()}),DS={name:"system",scope:"system",mode:"singleton",methods:{info:(0,m.A)(z.z.void(),MS),health:(0,m.A)(z.z.void(),ES),featureFlags:(0,m.A)(z.z.void(),MS),networkAddresses:(0,m.A)(z.z.void(),z.z.array(TS).readonly()),getRetentionConfig:(0,m.A)(z.z.void(),z.z.unknown().nullable(),{auth:"admin"}),setRetentionConfig:(0,m.A)(z.z.record(z.z.string(),z.z.unknown()),z.z.null(),{kind:"mutation",auth:"admin"}),forceRetentionCleanup:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},RS=z.z.object({tampered:z.z.boolean(),lastChangedAt:z.z.number()}),BS={name:"tamper",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:RS,kind:"push"},runtimeState:RS},LS=z.z.object({celsius:z.z.number(),lastFetchedAt:z.z.number(),unit:z.z.string().optional(),precision:z.z.number().int().min(0).max(10).optional()}),FS={name:"temperature-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor,m.C.Thermostat],methods:{},status:{schema:LS,kind:"push"},runtimeState:LS},_S=z.z.object({title:z.z.string(),message:z.z.string(),severity:z.z.enum(["info","warning","critical"]),duration:z.z.number().optional(),action:z.z.object({label:z.z.string(),url:z.z.string()}).optional()}),qS={name:"toast",scope:"system",mode:"singleton",methods:{onToast:(0,m.A)(z.z.void(),_S,{kind:"subscription"})},mount:{kind:"server-provided"}},US=z.z.object({currentVersion:z.z.string().nullable(),availableVersion:z.z.string().nullable(),updatable:z.z.boolean(),state:z.z.string().nullable(),inProgress:z.z.boolean()}),$S={name:"update",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Update],methods:{installUpdate:(0,m.A)(z.z.void(),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:US,kind:"poll"},runtimeState:US},VS=z.z.object({id:z.z.string(),username:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:z.z.union([z.z.array(z.z.string()),z.z.literal("*")]),allowedDevices:z.z.record(z.z.string(),z.z.union([z.z.array(z.z.string()),z.z.literal("*")])),scopes:z.z.array(Al).default([]),totpEnabled:z.z.boolean().default(!1),createdAt:z.z.number(),updatedAt:z.z.number()}),HS=z.z.object({username:z.z.string(),password:z.z.string().min(6),isAdmin:z.z.boolean().default(!1),allowedProviders:z.z.union([z.z.array(z.z.string()),z.z.literal("*")]).optional(),allowedDevices:z.z.record(z.z.string(),z.z.union([z.z.array(z.z.string()),z.z.literal("*")])).optional(),scopes:z.z.array(Al).optional()}),KS=z.z.object({id:z.z.string(),isAdmin:z.z.boolean().optional(),allowedProviders:z.z.union([z.z.array(z.z.string()),z.z.literal("*")]).optional(),allowedDevices:z.z.record(z.z.string(),z.z.union([z.z.array(z.z.string()),z.z.literal("*")])).optional(),scopes:z.z.array(Al).optional()}),WS=z.z.object({id:z.z.string(),label:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:z.z.union([z.z.array(z.z.string()),z.z.literal("*")]).optional(),allowedDevices:z.z.record(z.z.string(),z.z.union([z.z.array(z.z.string()),z.z.literal("*")])).optional(),tokenPrefix:z.z.string(),createdAt:z.z.number(),lastUsedAt:z.z.number().optional()}),GS=z.z.object({label:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:z.z.union([z.z.array(z.z.string()),z.z.literal("*")]).optional(),allowedDevices:z.z.record(z.z.string(),z.z.union([z.z.array(z.z.string()),z.z.literal("*")])).optional()}),ZS=z.z.object({token:z.z.string(),record:WS}),JS=z.z.object({id:z.z.string(),userId:z.z.string(),name:z.z.string(),tokenPrefix:z.z.string(),scopes:z.z.array(Al),expiresAt:z.z.number().nullish(),lastUsedAt:z.z.number().nullish(),createdAt:z.z.number()}),YS=z.z.object({userId:z.z.string(),name:z.z.string(),scopes:z.z.array(Al),expiresAt:z.z.number().optional()}),XS=z.z.object({token:z.z.string(),record:JS}),QS=z.z.object({id:z.z.string(),userId:z.z.string(),username:z.z.string(),integrationId:z.z.string(),scopes:z.z.array(Al),createdAt:z.z.number(),lastUsedAt:z.z.number(),revokedAt:z.z.number().nullable()}),ej=z.z.object({secret:z.z.string(),otpauthUrl:z.z.string()}),tj=z.z.object({enabled:z.z.boolean(),confirmedAt:z.z.number().nullable()}),nj={name:"user-management",scope:"system",mode:"singleton",methods:{listUsers:(0,m.A)(z.z.void(),z.z.array(VS),{auth:"admin"}),createUser:(0,m.A)(HS,VS,{kind:"mutation",auth:"admin",access:"create"}),updateUser:(0,m.A)(KS,z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"}),deleteUser:(0,m.A)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),resetPassword:(0,m.A)(z.z.object({id:z.z.string(),newPassword:z.z.string().min(6)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"}),setUserScopes:(0,m.A)(z.z.object({userId:z.z.string(),scopes:z.z.array(Al)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"}),validateCredentials:(0,m.A)(z.z.object({username:z.z.string(),password:z.z.string()}),VS.extend({passwordHash:z.z.string()}).nullable(),{kind:"mutation",access:"view"}),listApiKeys:(0,m.A)(z.z.void(),z.z.array(WS),{auth:"admin"}),createApiKey:(0,m.A)(GS,ZS,{kind:"mutation",auth:"admin",access:"create"}),revokeApiKey:(0,m.A)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),validateApiKey:(0,m.A)(z.z.object({token:z.z.string()}),WS.nullable(),{kind:"mutation",access:"view"}),createScopedToken:(0,m.A)(YS,XS,{kind:"mutation",auth:"admin",access:"create"}),revokeScopedToken:(0,m.A)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),validateScopedToken:(0,m.A)(z.z.object({token:z.z.string()}),JS.nullable(),{access:"view"}),listScopedTokens:(0,m.A)(z.z.object({userId:z.z.string()}),z.z.array(JS),{auth:"admin"}),setupTotp:(0,m.A)(z.z.object({userId:z.z.string()}),ej,{kind:"mutation",auth:"admin",access:"create"}),confirmTotp:(0,m.A)(z.z.object({userId:z.z.string(),code:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"}),disableTotp:(0,m.A)(z.z.object({userId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),getTotpStatus:(0,m.A)(z.z.object({userId:z.z.string()}),tj,{auth:"admin"}),verifyTotp:(0,m.A)(z.z.object({userId:z.z.string(),code:z.z.string()}),z.z.object({valid:z.z.boolean()}),{kind:"mutation",access:"view"}),oauthIssueCode:(0,m.A)(z.z.object({integrationId:z.z.string(),userId:z.z.string(),username:z.z.string(),scopes:z.z.array(Al),redirectUri:z.z.string(),hubUrl:z.z.string(),codeChallenge:z.z.string().optional(),refreshTtlSec:z.z.union([z.z.number().int().positive(),z.z.literal("never")]).optional()}),z.z.object({code:z.z.string()}),{kind:"mutation",access:"create"}),oauthExchangeCode:(0,m.A)(z.z.object({code:z.z.string(),redirectUri:z.z.string(),codeVerifier:z.z.string().optional()}),z.z.object({accessToken:z.z.string(),refreshToken:z.z.string(),expiresIn:z.z.number()}).nullable(),{kind:"mutation",access:"view"}),oauthRefresh:(0,m.A)(z.z.object({refreshToken:z.z.string()}),z.z.object({accessToken:z.z.string(),refreshToken:z.z.string(),expiresIn:z.z.number()}).nullable(),{kind:"mutation",access:"view"}),oauthVerifyAccessToken:(0,m.A)(z.z.object({token:z.z.string()}),z.z.object({userId:z.z.string(),username:z.z.string(),scopes:z.z.array(Al)}).nullable(),{access:"view"}),listOauthSessions:(0,m.A)(z.z.void(),z.z.array(QS),{auth:"admin"}),revokeOauthSession:(0,m.A)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.boolean()}),{kind:"mutation",auth:"admin",access:"delete"})}},aj=z.z.enum(["idle","cleaning","paused","returning","docked","drying","error"]),rj=z.z.object({level:z.z.number().min(0).max(100).nullable(),status:z.z.enum(["ok","low","full"]).nullable()}),oj=z.z.object({state:aj,batteryLevel:z.z.number().min(0).max(100).nullable(),fanSpeed:z.z.string().nullable(),availableFanSpeeds:z.z.array(z.z.string()),cleanWater:rj.nullable(),dirtyWater:rj.nullable(),detergent:rj.nullable(),dustBin:rj.nullable(),progressPercent:z.z.number().min(0).max(100).nullable(),errorCode:z.z.number().nullable(),errorLabel:z.z.string().nullable(),lastChangedAt:z.z.number()}),ij={name:"vacuum-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Vacuum],methods:{start:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),pause:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),returnToBase:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),locate:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setFanSpeed:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),speed:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:oj,kind:"push"},runtimeState:oj},cj=z.z.enum(["open","opening","closing","closed","stopped"]),sj=z.z.object({state:cj,position:z.z.number().min(0).max(100).nullable(),lastChangedAt:z.z.number()}),dj={name:"valve",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Valve],methods:{open:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),close:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setPosition:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),position:z.z.number().min(0).max(100)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:sj,kind:"push"},runtimeState:sj},lj=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),uj={name:"vibration",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Sensor],methods:{},status:{schema:lj,kind:"push"},runtimeState:lj},mj=z.z.object({currentTemp:z.z.number().nullable(),targetTemp:z.z.number().nullable(),operationMode:z.z.string().nullable(),availableModes:z.z.array(z.z.string()),away:z.z.boolean().nullable(),minTemp:z.z.number().nullable(),maxTemp:z.z.number().nullable(),lastChangedAt:z.z.number()}),pj={name:"water-heater",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.WaterHeater],methods:{setTargetTemp:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),temp:z.z.number().finite()}),z.z.void(),{kind:"mutation",auth:"admin"}),setOperationMode:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),setAway:(0,m.A)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:mj,kind:"push"},runtimeState:mj},bj=z.z.object({condition:z.z.string().nullable(),temperature:z.z.number().nullable(),temperatureUnit:z.z.string().nullable(),humidity:z.z.number().min(0).max(100).nullable(),pressure:z.z.number().nullable(),pressureUnit:z.z.string().nullable(),windSpeed:z.z.number().nullable(),windSpeedUnit:z.z.string().nullable(),windBearing:z.z.number().nullable(),lastFetchedAt:z.z.number()}),gj={name:"weather",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.C.Weather],methods:{},status:{schema:bj,kind:"push"},runtimeState:bj},zj=z.z.object({totalObjects:z.z.number().int().nonnegative(),byClass:z.z.record(z.z.string(),z.z.number().int().nonnegative())}),yj=zj.extend({zoneId:z.z.string(),zoneName:z.z.string(),trackIds:z.z.array(z.z.string()).readonly()}),fj=z.z.object({id:z.z.string(),className:z.z.string(),bbox:z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),frameWidth:z.z.number().int().nonnegative(),frameHeight:z.z.number().int().nonnegative(),firstSeenAt:z.z.number().int(),becameStationaryAt:z.z.number().int(),lastConfirmedAt:z.z.number().int(),label:z.z.string().optional(),keyFrameMediaKey:z.z.string().optional()}),vj=z.z.object({ts:z.z.number().int(),frameWidth:z.z.number().int().nonnegative(),frameHeight:z.z.number().int().nonnegative(),zones:z.z.array(yj).readonly(),frame:zj,unzoned:zj,stationaryObjects:z.z.array(fj).readonly().optional()}),hj=z.z.enum(["minute","5min","hour"]),Sj=z.z.object({from:z.z.number().int(),to:z.z.number().int(),resolution:hj}),jj=z.z.object({ts:z.z.number().int(),count:z.z.number().int().nonnegative()}),kj={name:"zone-analytics",scope:"device",mode:"singleton",deviceTypes:[m.C.Camera],methods:{getCurrentSnapshot:(0,m.A)(z.z.object({deviceId:z.z.number()}),vj.nullable()),getZoneHistory:(0,m.A)(z.z.object({deviceId:z.z.number(),zoneId:z.z.string(),className:z.z.string().optional()}).extend(Sj.shape),z.z.array(jj).readonly()),getCameraHistory:(0,m.A)(z.z.object({deviceId:z.z.number(),className:z.z.string().optional()}).extend(Sj.shape),z.z.array(jj).readonly()),getUnzonedHistory:(0,m.A)(z.z.object({deviceId:z.z.number(),className:z.z.string().optional()}).extend(Sj.shape),z.z.array(jj).readonly())},runtimeState:vj},Ij=z.z.enum(["motion","detection","package"]),Aj={name:"zone-rules",scope:"device",mode:"singleton",deviceTypes:[m.C.Camera],methods:{listRules:(0,m.A)(z.z.object({deviceId:z.z.number(),stage:Ij}),z.z.array(uS).readonly()),setRules:(0,m.A)(z.z.object({deviceId:z.z.number(),stage:Ij,rules:z.z.array(uS).readonly()}),z.z.void(),{kind:"mutation",auth:"admin"})},runtimeState:z.z.object({motion:z.z.array(uS).readonly(),detection:z.z.array(uS).readonly(),package:z.z.array(uS).readonly()})},Pj=["decoder","motion-detection","pipeline-executor","audio-analyzer","pipeline-analytics","notification-output"],wj=[...Pj,"pipeline-orchestrator","pipeline-runner"],Oj=[{cap:"alarm-panel",field:"state"},{cap:"cover",field:"state"},{cap:"presence",field:"state"},{cap:"lock",field:"locked",booleanWords:["locked","unlocked"]},{cap:"contact",field:"entryOpen",booleanWords:["open","closed"]},{cap:"switch",field:"on",booleanWords:["on","off"]},{cap:"binary",field:"on",booleanWords:["on","off"]}];function Cj(e){for(const t of Oj){const n=e[t.cap];if(null===n||"object"!=typeof n)continue;const a=n[t.field];if("string"==typeof a&&a.length>0)return a;if("boolean"==typeof a&&void 0!==t.booleanWords)return a?t.booleanWords[0]:t.booleanWords[1]}}function Nj(e,t=[]){for(const n of Oj){const a=e[n.cap];if(null===a||"object"!=typeof a)continue;if(void 0!==n.booleanWords)return[...n.booleanWords];if("alarm-panel"===n.cap)return[...t];const r=a[n.field];return"string"==typeof r?[r]:[]}return[]}var xj="camstack/camstack-models",Mj=`https://huggingface.co/${xj}/resolve/main`,Ej={"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:[],"ffmpeg.binaryPath":"ffmpeg","ffmpeg.hwAccel":"auto","ffmpeg.threadCount":0,"auth.tokenExpiry":"7d"},Tj={Siren:m.S.Siren,Floodlight:m.S.Floodlight,Spotlight:m.S.Spotlight,PirSensor:m.S.PirSensor,Chime:m.S.Chime,Autotrack:m.S.Autotrack,Nightvision:m.S.Nightvision,PrivacyMask:m.S.PrivacyMask},Dj={[Tj.Siren]:"Siren",[Tj.Floodlight]:"Floodlight",[Tj.Spotlight]:"Spotlight",[Tj.PirSensor]:"PIR",[Tj.Chime]:"Chime",[Tj.Autotrack]:"Autotracking",[Tj.Nightvision]:"Night Vision",[Tj.PrivacyMask]:"Privacy Mask"};function Rj(e,t,n){const a=`${e}:${t}`;return"number"==typeof n?`${a}:${n}`:a}var Bj=class e{constructor(e,t,n){this.schema=e,this.data=t,this.persistFn=n}static fromSchema(t,n,a={},r){const o=t.safeParse(a);if(o.success)return new e(t,o.data,n);const i=new Set;for(const e of o.error.issues){const t=e.path[0];"string"==typeof t&&i.add(t)}const c=Object.assign({},a);for(const e of i)delete c[e];const s=t.safeParse(c);return r?.({droppedKeys:[...i],issues:o.error.issues}),s.success?(n(s.data).catch(()=>{}),new e(t,s.data,n)):new e(t,t.parse({}),n)}get values(){return this.data}get(e){return this.data[e]}async set(e,t){const n=this.schema.parse(Object.assign({},this.data,{[e]:t}));this.data=n,await this.persistFn(this.data)}async setAll(e){const t=this.schema.parse(Object.assign({},this.data,e));this.data=t,await this.persistFn(this.data)}async deleteKey(e){const t=this.data,n=(0,d.default)(t,[e].map(l.default)),a=this.schema.parse(n);this.data=a,await this.persistFn(this.data)}entries(){const e=this.schema.shape;return Object.entries(e).map(([e,t])=>({key:e,schema:t,value:this.data[e],description:t.description}))}},Lj=class e{pendingWrites=new Set;schemas=new Map;listeners=new Set;capListeners=new Map;constructor(e,t){this.writer=t,this.slices=new Map;for(const[t,n]of Object.entries(e))n&&"object"==typeof n&&!Array.isArray(n)&&this.slices.set(t,Object.assign({},n))}static fromInitial(t,n){return new e(t,n)}installCapSchema(e,t){const n=this.schemas.get(e);if(n){if(n!==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 a=this.slices.get(e);if(a){const n=t.safeParse(a);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(Object.assign({},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,n){const a=this.schemas.get(e);if(!a)throw new Error(`[DeviceRuntimeState] no schema registered for cap "${e}" \u2014 did the device register it via ctx.registerNativeCap before writing?`);const r=this.slices.get(e)??{},o=n?Object.assign({},r,t):Object.assign({},t),i=a.parse(o);if(Fj(r,i))return;this.slices.set(e,i),this.fireListeners([e]);const c=this.writer(e,Object.assign({},i)).catch(()=>{});this.pendingWrites.add(c),c.finally(()=>{this.pendingWrites.delete(c)})}fireListeners(e){const t=this.snapshot();for(const n of this.listeners)try{n(e,t)}catch{}for(const t of e){const e=this.capListeners.get(t);if(!e)continue;const n=this.getCapState(t);for(const t of e)try{t(n)}catch{}}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}subscribeCap(e,t){let n=this.capListeners.get(e);n||(n=new Set,this.capListeners.set(e,n));const a=e=>{t(e)};return n.add(a),()=>{const t=this.capListeners.get(e);t&&(t.delete(a),0===t.size&&this.capListeners.delete(e))}}snapshot(){const e={};for(const[t,n]of this.slices)e[t]=Object.freeze(Object.assign({},n));return Object.freeze(e)}async flush(){if(0===this.pendingWrites.size)return;const e=[...this.pendingWrites];await Promise.allSettled(e)}};function Fj(e,t){const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(const a of n)if(e[a]!==t[a])return!1;return!0}var _j={airQualitySensor:nz,alarmPanel:kd,ambientLightSensor:rz,audioMetrics:dz,automationControl:uz,battery:pz,binary:gz,brightness:yz,cameraStreams:zo,carbonMonoxide:kz,climateControl:Pz,color:xz,connectivity:Lz,consumables:qz,contact:$z,control:Wz,cover:Jz,dayNight:ny,deviceDiscovery:di,deviceStatus:ry,doorbell:cy,enumSensor:ly,eventEmitter:py,fanControl:Iy,featureProbe:Py,flood:Oy,gas:Ny,humidifier:My,humiditySensor:Ty,image:Ry,imageSettings:Hy,lawnMowerControl:df,lockControl:Sf,mediaPlayer:Pf,motion:Ef,motionTrigger:Rf,motionZones:qf,nativeObjectDetection:Kf,notifier:vv,numericSensor:Sv,petFeeder:qv,powerMeter:mh,presence:gh,pressureSensor:yh,privacyMask:kh,ptzAutotrack:Rh,sceneMonitor:dS,scriptRunner:bS,smoke:zS,streamParams:AS,switch:xS,tamper:BS,temperatureSensor:FS,update:$S,vacuumControl:ij,valve:dj,vibration:uj,waterHeater:pj,weather:gj,zoneAnalytics:kj,zoneRules:Aj,zones:Em},qj=class{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:(t,n)=>{const a=n;if(a in e)return e[a];const r=_j[a];if(!r)return;const o=this.sliceProxy(r);return e[a]=o,o}};this._stateProxyCache=new Proxy(e,t)}return this._stateProxyCache}_sourceInfoCache=null;constructor(e,t,n){if(this.ctx=e,this.id=e.id,this.stableId=e.stableId,this.type=n.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=n.role,this.parentDeviceId=e.parentDeviceId;const a=e.persistedConfig??{};this.config=Bj.fromSchema(t,t=>e.persistConfig(t),a,({droppedKeys:t,issues:n})=>{e.logger.warn("Device config recovery: dropping invalid persisted fields",{tags:{deviceId:e.id,stableId:e.stableId},meta:{droppedKeys:[...t],firstIssue:n[0]?.message??null}})});let r=null;const o=e.initialRuntimeState??{};this.runtimeState=Lj.fromInitial(o,async(t,n)=>{r||(r=e.fetchDevice(e.id)),await(await r).deviceState.setCapSlice({capName:t,slice:n})}),e.bindRuntimeState?.(this.runtimeState),e.registerNativeCap?.(ry,{});const i={online:!0,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",i),e.registerNativeCap?.(Py,{}),this.runtimeState.setCapState("feature-probe",{flags:{},deviceType:null,model:null,channelCount:null,lastProbedAt:0,lastFetchedAt:0})}deviceActions=new Map;registerDeviceAction(e,t,n){this.deviceActions.set(e,{spec:t,handler:n})}async runDeviceAction(e,t){const n=this.deviceActions.get(e);if(!n)throw new Error(`unknown device action "${e}" on device ${this.id}`);const a=n.spec.input.parse(t);return n.handler(a)}async removeDevice(){}markOnline(e){if(this.online===e)return;const t={online:e,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",t)}get sourceInfo(){if(this._sourceInfoCache)return this._sourceInfoCache;const e=oi(this.ctx.deviceMeta.metadata)??ti({stableId:this.stableId,addonId:this.ctx.deviceMeta.addonId});return this._sourceInfoCache=Object.freeze(Object.assign({},e)),this._sourceInfoCache}get sourceId(){return this.sourceInfo.id}async updateSourceInfo(e){const t=ni(this.sourceInfo,e);this._sourceInfoCache=Object.freeze(Object.assign({},t));const n=this.ctx.api?.deviceManager?.setMetadata;if(n)try{await n.mutate({deviceId:this.id,patch:{[ri]:t}})}catch{}this.ctx.eventBus.emit((0,m.vt)("device.source-info-changed",{type:"device",id:this.stableId},{deviceId:this.id,sourceInfo:t}))}async refreshFeatures(){const e=this.ctx.api?.deviceManager?.registerDevice;if(e)try{await e.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(e){}}getCapSlice(e){return this.runtimeState.getCapState(e.name)??null}setCapSlice(e,t){this.runtimeState.setCapState(e.name,t)}sliceProxy(e){return new Proxy({},{get:(t,n)=>this.runtimeState.getCapState(e.name)?.[n],set:(t,n,a)=>(this.runtimeState.patchCapState(e.name,{[n]:a}),!0),has:(t,n)=>{const a=this.runtimeState.getCapState(e.name);return!!a&&n in a},ownKeys:()=>{const t=this.runtimeState.getCapState(e.name);return t?Object.keys(t):[]},getOwnPropertyDescriptor:(t,n)=>{const a=this.runtimeState.getCapState(e.name);if(a&&n in a)return{configurable:!0,enumerable:!0,value:a[n]}}})}getSettingsUISchema(){return{sections:[]}}async applySettingsPatch(e){await this.config.setAll(e)}async onProbe(){const e=this.runtimeState.getCapState("feature-probe")??{flags:{},deviceType:null,model:null,channelCount:null,lastProbedAt:0,lastFetchedAt:0};this.runtimeState.setCapState("feature-probe",Object.assign({},e,{lastProbedAt:Date.now()}))}async onActivate(){}async reprobe(){this._kernelReprobe?await this._kernelReprobe():await this.onProbe()}getAccessoryChildren(){return[]}getProbeFlags(){return this.runtimeState.getCapState("feature-probe")?.flags??{}}hasProbed(){return(this.runtimeState.getCapState("feature-probe")?.lastProbedAt??0)>0}};function Uj(e,t){const n={};for(const t of e.config.entries())n[t.key]=t.value;return{id:e.id,stableId:e.stableId,addonId:t,type:String(e.type),name:e.name,parentDeviceId:e.parentDeviceId,online:e.online,features:[...e.features],config:n,sourceInfo:e.sourceInfo}}var $j=class extends m.ht{async onInitialize(){return this.ctx.logger.info(`${this.providerName} Provider initialized`),[{capability:Li,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(e){this.ctx.logger.warn(`${this.providerName}: decommission failed`,{tags:{deviceId:t.id,stableId:t.stableId},meta:{error:e instanceof Error?e.message:String(e)}})}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(e=>({id:e.stableId,name:e.name,type:String(e.type)}))}async supportsDiscovery(){return!1}async discoverDevices(e){return[]}async getDiscoveryParamsSchema(){return null}async getManualCreationType(){return await this.supportsManualCreation()?{deviceType:Object.values(m.C).find(e=>void 0!==this.deviceClasses[e])??null}:{deviceType:null}}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),n=this.deviceClasses[t.meta.type];if(!n)throw new Error(`${this.providerName} provider: no device class registered for type "${t.meta.type}" \u2014 add it to the deviceClasses map`);const a=this.generateStableId(t.meta.type,t.config),r=await this.ctx.kernel.devices.create(a,n,t.config,null,t.meta);if(t.onAfterCreate)try{await t.onAfterCreate(r)}catch(e){this.ctx.logger.warn("createDevice: onAfterCreate hook threw \u2014 device is already registered",{tags:{deviceId:r.id,stableId:a},meta:{error:e instanceof Error?e.message:String(e)}})}return this.toSummary(r)}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 n of e){if(null!==n.parentDeviceId)continue;const e=this.deviceClasses[n.type];if(e)try{await this.ctx.kernel.devices.create(n.stableId,e,{}),t.add(n.id)}catch(e){this.ctx.logger.warn("Failed to restore device",{tags:{stableId:n.stableId},meta:{type:n.type,error:e instanceof Error?e.message:String(e)}})}else this.ctx.logger.warn("No device class registered for restored type \u2014 skipping",{tags:{stableId:n.stableId},meta:{type:n.type}})}const n=e.filter(e=>null!==e.parentDeviceId);for(const e of n){const n=this.deviceClasses[e.type];if(n&&(null!==e.parentDeviceId&&t.has(e.parentDeviceId)))try{await this.ctx.kernel.devices.create(e.stableId,n,{},e.parentDeviceId),t.add(e.id)}catch(t){this.ctx.logger.warn("Failed to restore hub-adopted child",{tags:{stableId:e.stableId,parentDeviceId:e.parentDeviceId},meta:{type:e.type,error:t instanceof Error?t.message:String(t)}})}}}toSummary(e){return Uj(e,this.addonId)}},Vj="fixed";function Hj(e){const t=e??"hub";return t.includes("/")?t.split("/")[0]??"hub":t}var Kj=32,Wj=class{constructor(e){const t=e.addonId;if("string"!=typeof t||0===t.length)throw new Error(`DeclaredDevices: addonId must be the declaring addon's id, got ${JSON.stringify(t)}. On an addon context it is \`ctx.id\` \u2014 there is no \`ctx.addonId\`.`);this.ports=e}async reconcile(e){if("hub"===(e.placement??"hub")){const e=Hj(this.ports.localNodeId);if("hub"!==e)return this.ports.logger.info("declared devices are hub-owned \u2014 skipping on this node",{meta:{nodeId:e,rawNodeId:this.ports.localNodeId??null}}),{integrationId:null,devices:[],removed:[],owned:!1}}const t=e.integrationId??await this.ensureIntegration(e.integrationName),n=await this.readIndex(),a=[];for(const r of e.devices){const e=await this.applyDeclaration(r,t,n);null!==e&&a.push(e)}return{integrationId:t,devices:a,removed:await this.sweepWithdrawn(e.devices,t,n),owned:!0}}async ensureIntegration(e){const t=await this.ports.getIntegration(this.ports.addonId);if(null===t){const t=await this.ports.createIntegration({addonId:this.ports.addonId,name:e,info:{[Vj]:!0}});return this.ports.logger.info("declared a fixed integration",{meta:{integrationId:t.id,name:e}}),t.id}return!0!==t.info?.fixed&&(await this.ports.updateIntegration({id:t.id,info:{[Vj]:!0}}),this.ports.logger.info("re-asserted `fixed` on a declared integration",{meta:{integrationId:t.id}})),t.id}async readIndex(){const e=await this.ports.listOwnDevices();return new Map(e.map(e=>[e.stableId,e]))}async applyDeclaration(e,t,n){try{let a=n.get(e.stableId);if(void 0===a&&(a=(await this.readIndex()).get(e.stableId),void 0!==a&&this.ports.logger.warn("device index disagreed with itself \u2014 adopting instead of re-creating",{tags:{deviceId:a.id},meta:{stableId:e.stableId,addonId:this.ports.addonId}})),void 0!==a){const n=await this.ports.devices.create(e.stableId,e.DeviceClass,{},null,void 0);return this.ports.logger.info("declared device adopted",{tags:{deviceId:n.id},meta:{stableId:e.stableId,integrationId:t}}),{stableId:e.stableId,deviceId:n.id,device:n,created:!1}}const r=await this.ports.devices.create(e.stableId,e.DeviceClass,e.config??{},null,Object.assign({type:e.type,name:e.name,integrationId:t},void 0===e.role?{}:{role:e.role}));return this.ports.logger.info("declared device created",{tags:{deviceId:r.id},meta:{stableId:e.stableId,integrationId:t}}),{stableId:e.stableId,deviceId:r.id,device:r,created:!0}}catch(t){return this.ports.logger.warn("a declared device could not be brought up",{meta:{stableId:e.stableId,error:t instanceof Error?t.message:String(t)}}),null}}async sweepWithdrawn(e,t,n){const a=new Set(e.map(e=>e.stableId)),r=[...n.values()].filter(e=>e.integrationId===t&&!a.has(e.stableId));if(0===r.length)return[];if(r.length>32)return this.ports.logger.warn("withdrawal sweep exceeded its bound \u2014 removing nothing",{meta:{integrationId:t,candidates:r.length,bound:32}}),[];const o=[];for(const e of r)try{await this.ports.devices.remove(e.id),o.push(e.id),this.ports.logger.info("declared device removed \u2014 its declaration was withdrawn",{tags:{deviceId:e.id},meta:{stableId:e.stableId,integrationId:t}})}catch(t){this.ports.logger.warn("a withdrawn declared device could not be removed",{tags:{deviceId:e.id},meta:{stableId:e.stableId,error:t instanceof Error?t.message:String(t)}})}return o}},Gj={[m.C.Cover]:"cover",[m.C.Valve]:"valve",[m.C.Humidifier]:"humidifier",[m.C.WaterHeater]:"water-heater",[m.C.Camera]:"dummy",[m.C.Hub]:"dummy",[m.C.Switch]:"switch",[m.C.Siren]:"switch",[m.C.Light]:"light",[m.C.Fan]:"fan",[m.C.Sensor]:"sensor",[m.C.Thermostat]:"thermostat",[m.C.Climate]:"climate",[m.C.Button]:"button",[m.C.EventEmitter]:"dummy",[m.C.Update]:"update",[m.C.Generic]:"dummy",[m.C.Notifier]:"dummy",[m.C.Script]:"script",[m.C.Automation]:"automation",[m.C.Lock]:"lock",[m.C.MediaPlayer]:"media-player",[m.C.AlarmPanel]:"alarm",[m.C.Control]:"control",[m.C.Presence]:"sensor",[m.C.Weather]:"weather",[m.C.Vacuum]:"vacuum",[m.C.LawnMower]:"lawn-mower",[m.C.Container]:"dummy",[m.C.Image]:"image",[m.C.PetFeeder]:"pet-feeder"},Zj=new Set(Object.values(m.C));function Jj(e){return Zj.has(e)?Gj[e]:null}var Yj="motion-trigger";function Xj(e){return e.includes(Yj)}var Qj=["temperature-sensor","humidity-sensor","ambient-light-sensor","numeric-sensor","enum-sensor"];function ek(e){const t=new Set(e.features);switch(e.type){case m.C.Cover:return{kind:"cover"};case m.C.Valve:return{kind:"valve"};case m.C.Lock:return{kind:"lock"};case m.C.AlarmPanel:return{kind:"alarm"};case m.C.Light:return t.has("brightness")?{kind:"brightness"}:{kind:"switch"};case m.C.Switch:case m.C.Siren:return{kind:"switch"};case m.C.Sensor:case m.C.Presence:{const e=Qj.find(e=>t.has(e));return e?{kind:"sensor",sensorFeature:e}:{kind:"none"}}default:return{kind:"none"}}}var tk={"temperature-sensor":{capKey:"temperatureSensor",field:"celsius",fallbackUnit:"\xb0C"},"humidity-sensor":{capKey:"humiditySensor",field:"percent",fallbackUnit:"%"},"ambient-light-sensor":{capKey:"ambientLightSensor",field:"lux",fallbackUnit:"lx"},"numeric-sensor":{capKey:"numericSensor",field:"value"}};function nk(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function ak(e,t){if(!nk(e))return null;const n=e[t];if(!nk(n))return null;const a=n.mutate;return"function"==typeof a?a:null}function rk(e,t){return!(!e||0===e.length)&&e.includes(t.when.hasFeature)}var ok={id:"battery",label:"Battery-operated camera",when:{hasFeature:m.x.BatteryOperated},defaults:{audioMode:"disabled",detectionMode:"on-motion"},settings:{}},ik=[ok];function ck(e){for(const t of ik)if(rk(e,t))return t;return null}function sk(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function dk(e,t){const n=t.split(".");let a=e;for(const e of n){if(!sk(a))return;a=a[e]}return a}function lk(e,t,n){const a=t.indexOf(".");if(-1===a)return Object.assign({},e,{[t]:n});const r=t.slice(0,a),o=t.slice(a+1),i=e[r],c=sk(i)?i:{};return Object.assign({},e,{[r]:lk(c,o,n)})}var uk=3e4,mk=3,pk=1e4;async function bk(e,t,n){let a;const r=new Promise((e,r)=>{a=setTimeout(()=>r(new Error(`${n} timed out after ${String(t)}ms`)),t)});try{return await Promise.race([e,r])}finally{void 0!==a&&clearTimeout(a)}}function gk(e){const t=e.intervalMs??3e4,n=e.failuresToOffline??3,a=e.probeTimeoutMs??1e4,r=e.runImmediately??!0;let o,i=!1,c=!1,s=0;const d=async()=>{if(!i&&!c&&(!e.isEnabled||e.isEnabled())){c=!0;try{const t=await bk(Promise.resolve().then(e.probe),a,"reachability probe");if(i)return;t?(s=0,e.setOnline(!0)):l("probe resolved unreachable")}catch(e){if(i)return;l(e instanceof Error?e.message:"probe threw")}finally{c=!1}}},l=t=>{s+=1,e.logger?.debug("reachability probe failed",{reason:t,consecutiveFailures:s,failuresToOffline:n}),s>=n&&e.setOnline(!1)};return o=setInterval(()=>{d()},t),"object"==typeof o&&null!==o&&"unref"in o&&o.unref(),r&&d(),{stop:()=>{i||(i=!0,void 0!==o&&clearInterval(o),o=void 0)}}}var zk="lastFetchedAt";function yk(e){const{runtimeState:t,cap:n,ownDeviceId:a,refresh:r,staleMs:o,empty:i,logger:c}=e,s=e.refreshMissCooldownMs??6e4;let u=0;const m=()=>{const e=t.getCapState(n.name)?.[zk];return"number"==typeof e?e:0},p=e=>{u=Date.now()+s,c?.warn(`${n.name}: refresh did not land \u2014 serving the last slice and not re-reading the camera for ${String(s)}ms`,{tags:{deviceId:a},meta:{cooldownMs:s,error:void 0===e?null:e instanceof Error?e.message:String(e)}})},b=async()=>{const e=t.getCapState(n.name),i=m();if(e&&Date.now()-i<=o)u=0;else if(!(Date.now()<u)){try{await r()}catch(e){throw p(e),e}m()>i?0!==u&&(u=0,c?.info(`${n.name}: refresh landed again \u2014 resuming normal polling`,{tags:{deviceId:a}})):p(void 0)}},g=()=>{const e=t.getCapState(n.name);if(!e)return i();return(0,d.default)(e,[zk].map(l.default))};return{ensureFresh:b,getStatus:async({deviceId:e})=>{if(e!==a)throw new Error(`${n.name}: deviceId mismatch, expected ${a}, got ${e}`);return await b(),g()}}}function fk(e){let t=e;for(;t instanceof z.z.ZodNullable||t instanceof z.z.ZodOptional||t instanceof z.z.ZodDefault;)t=t.unwrap();return t}function vk(e){const t=fk(e);return t instanceof z.z.ZodEnum?{kind:"enum",enumValues:t.options}:t instanceof z.z.ZodNumber?{kind:"number"}:t instanceof z.z.ZodString?{kind:"string"}:t instanceof z.z.ZodBoolean?{kind:"boolean"}:null}function hk(e,t=""){const n=fk(e);if(!(n instanceof z.z.ZodObject))return[];const a=[],r=n.shape;for(const[e,n]of Object.entries(r)){const r=t?`${t}.${e}`:e,o=fk(n);if(o instanceof z.z.ZodObject){a.push(...hk(o,r));continue}const i=vk(n);i&&a.push(Object.assign({path:r,kind:i.kind},i.enumValues?{enumValues:i.enumValues}:{}))}return a}function Sk(e){return hk(e.itemSchema).filter(t=>t.path!==e.keyField).map(e=>Object.assign({},e,{item:!0}))}var jk=class{stateMirror=new Map;bindings=new Map;devices=new Map;handleListeners=new Map;globalStateListeners=new Set;capListeners=new Map;deviceListeners=new Map;addedListeners=new Set;removedListeners=new Set;pendingWaits=new Set;bridges=[];initialized=!1;initPromise=null;constructor(e){this.api=e,this.stateSource=(0,m.h)(this.stateMirror,this.handleListeners,this.api)}async init(e=15e3){if(!this.initialized){if(this.initPromise)return this.initPromise;this.initPromise=(async()=>{const t=(t,n)=>Number.isFinite(e)?new Promise((a,r)=>{const o=setTimeout(()=>r(new Error(`SystemMirror.init: '${n}' timed out after ${e}ms`)),e);t.then(e=>{clearTimeout(o),a(e)},e=>{clearTimeout(o),r(e)})}):t,[n,a,r]=await Promise.all([t(this.api.deviceManager.getAllBindings.query({}),"deviceManager.getAllBindings"),t(this.api.deviceState.getAllSnapshots.query({}),"deviceState.getAllSnapshots"),t(this.api.deviceManager.listAll.query({}),"deviceManager.listAll")]);for(const e of n)this.bindings.set(e.deviceId,e);for(const[e,t]of Object.entries(a)){const n=Number(e);if(!Number.isFinite(n))continue;const a=new Map;for(const[e,n]of Object.entries(t))a.set(e,n);this.stateMirror.set(n,a)}for(const e of r)this.devices.set(e.id,e);try{this.subscribeBus()}catch(e){}this.initialized=!0})();try{await this.initPromise}finally{this.initPromise=null}}}isReady(){return this.initialized}async awaitReady(){if(!this.initialized)return this.initPromise?this.initPromise:this.init()}dispose(){for(const e of this.bridges)try{e.unsubscribe()}catch{}this.bridges=[],this.handleListeners.clear(),this.globalStateListeners.clear(),this.capListeners.clear(),this.deviceListeners.clear(),this.addedListeners.clear(),this.removedListeners.clear(),this.pendingWaits.clear(),this.initialized=!1}getDeviceById(e){const t=this.bindings.get(e);return t?(0,m.p)(this.api,t,{stateSource:this.stateSource}):null}getDeviceByName(e){for(const t of this.devices.values())if(t.name===e)return this.getDeviceById(t.id);return null}getDeviceByStableId(e){for(const t of this.devices.values())if(t.stableId===e)return this.getDeviceById(t.id);return null}getDevicesByAddon(e){return this.query({addonId:e})}getDevicesByType(e){return this.query({type:e})}getDeviceInfo(e){return this.devices.get(e)??null}getAllDevices(){const e=[];for(const t of this.bindings.keys()){const n=this.getDeviceById(t);n&&e.push(n)}return e}filterByCap(e){return this.query({caps:e})}query(e={}){const t=[];for(const[n,a]of this.bindings){const r=this.devices.get(n);if(void 0!==e.id&&!kk(n,e.id))continue;if(void 0!==e.stableId){if(!r)continue;if(!kk(r.stableId,e.stableId))continue}if(void 0!==e.addonId){if(!r)continue;if(!kk(r.addonId,e.addonId))continue}if(void 0!==e.type){if(!r)continue;if(!kk(r.type,e.type))continue}if(void 0!==e.caps){const t=Ik(e.caps),n=new Set(a.entries.map(e=>e.capName));if(!t.every(e=>n.has(e)))continue}if(void 0!==e.anyCap){const t=Ik(e.anyCap),n=new Set(a.entries.map(e=>e.capName));if(!t.some(e=>n.has(e)))continue}if(void 0!==e.name){if(!r)continue;if(!Ak(r.name,e.name))continue}if(void 0!==e.online){if(!r)continue;if(r.online!==e.online)continue}if(void 0!==e.parentDeviceId){if(!r)continue;const t=e.parentDeviceId;if((r.parentDeviceId??null)!==t)continue}if(void 0!==e.feature){if(!r)continue;if(!Ik(e.feature).every(e=>r.features.includes(e)))continue}if(void 0!==e.isCamera){if(!r)continue;if(r.isCamera!==e.isCamera)continue}const o=this.getDeviceById(n);if(o){if(e.where&&r){if(!e.where(r,o))continue}else if(e.where&&!r)continue;t.push(o)}}return t}whereState(e,t){const n=[];for(const[a,r]of this.stateMirror){const o=r.get(e);if(!o)continue;if(!t(o,a))continue;const i=this.getDeviceById(a);i&&n.push(i)}return n}mapState(e,t){const n=[];for(const[a,r]of this.stateMirror){const o=r.get(e);o&&n.push(t(o,a))}return n}findState(e,t){for(const[n,a]of this.stateMirror){const r=a.get(e);if(r&&t(r,n))return this.getDeviceById(n)}return null}countByCap(e){let t=0;for(const n of this.bindings.values())n.entries.some(t=>t.capName===e)&&t++;return t}countByState(e,t){let n=0;for(const[a,r]of this.stateMirror){const o=r.get(e);o&&(t(o,a)&&n++)}return n}listen(e){return this.globalStateListeners.add(e),()=>{this.globalStateListeners.delete(e)}}listenCap(e,t){let n=this.capListeners.get(e);return n||(n=new Set,this.capListeners.set(e,n)),n.add(t),()=>{n.delete(t),0===n.size&&this.capListeners.delete(e)}}listenDevice(e,t){let n=this.deviceListeners.get(e);return n||(n=new Set,this.deviceListeners.set(e,n)),n.add(t),()=>{n.delete(t),0===n.size&&this.deviceListeners.delete(e)}}onDeviceAdded(e){return this.addedListeners.add(e),()=>{this.addedListeners.delete(e)}}onDeviceRemoved(e){return this.removedListeners.add(e),()=>{this.removedListeners.delete(e)}}waitForState(e,t,n,a=3e4){return new Promise((r,o)=>{const i=(()=>{const a=this.stateMirror.get(e)?.get(t);return a&&n(a)?a:null})();if(i)return void r(i);let c=null;const s=this.listenDevice(e,(e,a,o)=>{a===t&&o&&n(o)&&(c&&clearTimeout(c),s(),r(o))});Number.isFinite(a)&&(c=setTimeout(()=>{s(),o(new Error(`waitForState timed out after ${a}ms (deviceId=${e}, capName=${t})`))},a))})}waitForDevice(e,t=3e4){return new Promise((n,a)=>{const r=this.getDeviceById(e);if(r)return void n(r);let o=null;const i=this.onDeviceAdded(t=>{if(t!==e)return;const a=this.getDeviceById(t);a&&(o&&clearTimeout(o),i(),n(a))});Number.isFinite(t)&&(o=setTimeout(()=>{i(),a(new Error(`waitForDevice timed out after ${t}ms (deviceId=${e})`))},t))})}async forEachCap(e,t){for(const n of this.filterByCap(e))await t(n)}async invokeCap(e,t,n,a={}){const r=this.filterByCap(e),o=Math.max(1,a.parallelism??r.length),i=[];for(let a=0;a<r.length;a+=o){const c=r.slice(a,a+o),s=await Promise.allSettled(c.map(async a=>{const r=a[e];if(!r||"function"!=typeof r[t])throw new Error(`device '${a.deviceId}' does not expose '${e}.${t}'`);return await r[t](n)}));for(let e=0;e<s.length;e++){const t=c[e],n=s[e];"fulfilled"===n.status?i.push({deviceId:t.deviceId,ok:!0,result:n.value}):i.push({deviceId:t.deviceId,ok:!1,error:n.reason})}}return i}summary(){const e={},t={},n={};let a=0,r=0;for(const t of this.bindings.values())for(const n of t.entries)e[n.capName]=(e[n.capName]??0)+1;for(const e of this.devices.values())t[e.addonId]=(t[e.addonId]??0)+1,n[e.type]=(n[e.type]??0)+1,e.online?a++:r++;return{totalDevices:this.bindings.size,online:a,offline:r,byCap:e,byAddon:t,byType:n,statedDevices:this.stateMirror.size}}dump(e){const t=e=>{const t=this.devices.get(e)??null,n=this.bindings.get(e)??null,a={},r=this.stateMirror.get(e);if(r)for(const[e,t]of r)a[e]=Object.assign({},t);return{deviceId:e,info:t,binding:n?Object.assign({},n,{entries:n.entries.map(e=>Object.assign({},e))}):null,state:a}};if(void 0!==e)return t(e);const n=[];for(const e of this.bindings.keys())n.push(t(e));return n}getRawMirror(){return this.stateMirror}getSystemState(){const e=new Map;for(const[t,n]of this.stateMirror){const a=new Map;for(const[e,t]of n)a.set(e,Object.assign({},t));e.set(t,a)}return e}subscribeBus(){if(!this.api.live?.onEvent)return;const e=this.api.live.onEvent;this.bridges.push(e.subscribe({category:"device.state-changed"},{onData:e=>{const t=e.data;t&&"number"==typeof t.deviceId&&"string"==typeof t.capName&&this.applyStateUpdate(t.deviceId,t.capName,t.slice)}})),this.bridges.push(e.subscribe({category:"capability.binding-changed"},{onData:e=>{const t=e.data,n="number"==typeof t?.deviceId?t.deviceId:"device"===t?.source?.type&&"number"==typeof t.source.id?t.source.id:null;null!==n&&this.refreshBinding(n)}})),this.bridges.push(e.subscribe({category:"device.registered"},{onData:e=>{const t=e.data;"number"==typeof t?.deviceId&&this.refreshDeviceMetadata(t.deviceId,"added")}})),this.bridges.push(e.subscribe({category:"device.unregistered"},{onData:e=>{const t=e.data;"number"==typeof t?.deviceId&&this.applyDeviceRemoval(t.deviceId)}})),this.bridges.push(e.subscribe({category:"device.updated"},{onData:e=>{const t=e.data;"number"==typeof t?.deviceId&&this.refreshDeviceMetadata(t.deviceId,"updated")}}))}applyStateUpdate(e,t,n){let a=this.stateMirror.get(e);a||(a=new Map,this.stateMirror.set(e,a)),void 0===n?a.delete(t):a.set(t,n);const r=`${e}:${t}`,o=this.handleListeners.get(r);if(o)for(const e of o)try{e(n)}catch{}for(const a of this.globalStateListeners)try{a(e,t,n)}catch{}const i=this.capListeners.get(t);if(i)for(const t of i)try{t(e,n)}catch{}const c=this.deviceListeners.get(e);if(c)for(const a of c)try{a(e,t,n)}catch{}}applyDeviceRemoval(e){const t=this.devices.get(e)??null;this.bindings.delete(e),this.devices.delete(e),this.stateMirror.delete(e);for(const n of this.removedListeners)try{n(e,t)}catch{}}async refreshBinding(e){try{const t=(await this.api.deviceManager.getAllBindings.query({})).find(t=>t.deviceId===e);t?this.bindings.set(e,t):this.applyDeviceRemoval(e)}catch{}}async refreshDeviceMetadata(e,t){try{const n=await this.api.deviceManager.getDevice.query({deviceId:e});if(!n)return;const a=!this.devices.has(e);if(this.devices.set(e,n),"added"===t&&a){await this.refreshBinding(e);for(const t of this.addedListeners)try{t(e,n)}catch{}}}catch{}}};function kk(e,t){return Array.isArray(t)?t.includes(e):e===t}function Ik(e){return Array.isArray(e)?e:[e]}function Ak(e,t){return"string"==typeof t?e===t:t instanceof RegExp?t.test(e):"exact"in t?e===t.exact:"contains"in t&&e.toLowerCase().includes(t.contains.toLowerCase())}function Pk(e){return e.def}function wk(e,t="Configuration",n="main"){return{sections:[{id:n,title:t,fields:e.map(e=>Ok(e.key,e.schema,e.description))}]}}function Ok(e,t,n){const a=Ek(t),r=Tk(t),o={key:e,label:n??Dk(e),description:n,default:r};return a instanceof z.z.ZodString?Ck(e,o):a instanceof z.z.ZodNumber?Nk(a,o):a instanceof z.z.ZodBoolean?Object.assign({},o,{type:"boolean"}):a instanceof z.z.ZodEnum?Mk(a,o):a instanceof z.z.ZodArray||a instanceof z.z.ZodObject?Object.assign({},o,{type:"textarea",rows:6,isJson:!0}):Object.assign({},o,{type:"text"})}function Ck(e,t){const n=e.toLowerCase();return n.includes("password")||n.includes("secret")||n.includes("token")||n.includes("apikey")||n.includes("api_key")?Object.assign({},t,{type:"password",showToggle:!0}):Object.assign({},t,{type:"text"})}function Nk(e,t){const n=e,a=n.minValue,r=n.maxValue,o=null!=a&&isFinite(a)?a:void 0,i=null!=r&&isFinite(r)?r:void 0,c=xk(e);return Object.assign({},t,{type:"number"},void 0!==o?{min:o}:{},void 0!==i?{max:i}:{},void 0!==c?{step:c}:{})}function xk(e){const t=Pk(e).checks??[];for(const e of t)if("multiple_of"===e._zod?.def?.check&&void 0!==e._zod.def.value)return e._zod.def.value}function Mk(e,t){const n=e.options.map(e=>String(e));return Object.assign({},t,{type:"select",options:n.map(e=>({label:Dk(e),value:e}))})}function Ek(e){return e instanceof z.z.ZodDefault||e instanceof z.z.ZodOptional||e instanceof z.z.ZodNullable?Ek(Pk(e).innerType):e}function Tk(e){if(e instanceof z.z.ZodDefault)return Pk(e).defaultValue}function Dk(e){return e.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/^\w/,e=>e.toUpperCase()).trim()}var Rk=["accessories","air-quality-sensor","alarm-panel","ambient-light-sensor","automation-control","battery","binary","brightness","broker","camera-credentials","carbon-monoxide","climate-control","color","connectivity","consumables","contact","control","cover","day-night","device-adoption","device-discovery","device-export","device-status","doorbell","enum-sensor","event-emitter","fan-control","feature-probe","flood","gas","humidifier","humidity-sensor","image","image-settings","intercom","lawn-mower-control","lock-control","media-player","motion","motion-trigger","motion-zones","mqtt-broker","native-object-detection","notifier","numeric-sensor","osd","pet-feeder","power-meter","presence","pressure-sensor","privacy-mask","ptz","ptz-autotrack","recording","scene-monitor","script-runner","smoke","snapshot","stream-params","switch","tamper","temperature-sensor","update","vacuum-control","valve","vibration","water-heater","weather"],Bk={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",airQualitySensor:"air-quality-sensor",alarmPanel:"alarm-panel",alerts:"alerts",ambientLightSensor:"ambient-light-sensor",audioAnalysis:"audio-analysis",audioAnalyzer:"audio-analyzer",audioCodec:"audio-codec",audioMetrics:"audio-metrics",authProvider:"auth-provider",automationControl:"automation-control",backup:"backup",battery:"battery",binary:"binary",brightness:"brightness",broker:"broker",button:"button",cameraCredentials:"camera-credentials",cameraPipelineConfig:"camera-pipeline-config",cameraStreams:"camera-streams",carbonMonoxide:"carbon-monoxide",climateControl:"climate-control",color:"color",connectionTest:"connection-test",connectivity:"connectivity",consumables:"consumables",contact:"contact",control:"control",coreBlocks:"core-blocks",cover:"cover",customModelRegistry:"custom-model-registry",dataStoreProvider:"data-store-provider",dayNight:"day-night",decoder:"decoder",detectionPipeline:"detection-pipeline",deviceAdoption:"device-adoption",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",enumSensor:"enum-sensor",eventEmitter:"event-emitter",events:"events",faceGallery:"face-gallery",fanControl:"fan-control",featureProbe:"feature-probe",filesystemBrowse:"filesystem-browse",flood:"flood",gas:"gas",humidifier:"humidifier",humiditySensor:"humidity-sensor",image:"image",imageSettings:"image-settings",integrations:"integrations",intercom:"intercom",lawnMowerControl:"lawn-mower-control",llm:"llm",llmRuntime:"llm-runtime",localNetwork:"local-network",lockControl:"lock-control",logDestination:"log-destination",loginMethod:"login-method",mediaPlayer:"media-player",meshNetwork:"mesh-network",metricsProvider:"metrics-provider",modelConvert:"model-convert",modelDistributor:"model-distributor",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",notificationRules:"notification-rules",notifier:"notifier",numericSensor:"numeric-sensor",oauthIntegration:"oauth-integration",osd:"osd",osdManager:"osd-manager",petFeeder:"pet-feeder",pipelineAnalytics:"pipeline-analytics",pipelineExecutor:"pipeline-executor",pipelineOrchestrator:"pipeline-orchestrator",pipelineRunner:"pipeline-runner",plateGallery:"plate-gallery",platformProbe:"platform-probe",powerMeter:"power-meter",presence:"presence",pressureSensor:"pressure-sensor",privacyMask:"privacy-mask",ptz:"ptz",ptzAutotrack:"ptz-autotrack",reboot:"reboot",recording:"recording",recordingExport:"recordingExport",sceneMonitor:"scene-monitor",scriptRunner:"script-runner",serverManagement:"server-management",settingsStore:"settings-store",smoke:"smoke",smtpProvider:"smtp-provider",snapshot:"snapshot",ssoBridge:"sso-bridge",storage:"storage",storageEvictable:"storage-evictable",storageProvider:"storage-provider",streamBroker:"stream-broker",streamCatalog:"stream-catalog",streamParams:"stream-params",switch:"switch",system:"system",tamper:"tamper",temperatureSensor:"temperature-sensor",terminalSession:"terminal-session",toast:"toast",turnProvider:"turn-provider",update:"update",userManagement:"user-management",userPasskeys:"user-passkeys",vacuumControl:"vacuum-control",valve:"valve",vectorStore:"vector-store",vibration:"vibration",videoclips:"videoclips",viewerUi:"viewer-ui",waterHeater:"water-heater",weather:"weather",webrtcSession:"webrtc-session",zoneAnalytics:"zone-analytics",zoneRules:"zone-rules",zones:"zones"},Lk=[{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:"airQualitySensor",name:"air-quality-sensor"},{key:"alarmPanel",name:"alarm-panel"},{key:"alerts",name:"alerts"},{key:"ambientLightSensor",name:"ambient-light-sensor"},{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:"automationControl",name:"automation-control"},{key:"backup",name:"backup"},{key:"battery",name:"battery"},{key:"binary",name:"binary"},{key:"brightness",name:"brightness"},{key:"broker",name:"broker"},{key:"button",name:"button"},{key:"cameraCredentials",name:"camera-credentials"},{key:"cameraPipelineConfig",name:"camera-pipeline-config"},{key:"cameraStreams",name:"camera-streams"},{key:"carbonMonoxide",name:"carbon-monoxide"},{key:"climateControl",name:"climate-control"},{key:"color",name:"color"},{key:"connectionTest",name:"connection-test"},{key:"connectivity",name:"connectivity"},{key:"consumables",name:"consumables"},{key:"contact",name:"contact"},{key:"control",name:"control"},{key:"coreBlocks",name:"core-blocks"},{key:"cover",name:"cover"},{key:"customModelRegistry",name:"custom-model-registry"},{key:"dataStoreProvider",name:"data-store-provider"},{key:"dayNight",name:"day-night"},{key:"decoder",name:"decoder"},{key:"detectionPipeline",name:"detection-pipeline"},{key:"deviceAdoption",name:"device-adoption"},{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:"enumSensor",name:"enum-sensor"},{key:"eventEmitter",name:"event-emitter"},{key:"events",name:"events"},{key:"faceGallery",name:"face-gallery"},{key:"fanControl",name:"fan-control"},{key:"featureProbe",name:"feature-probe"},{key:"filesystemBrowse",name:"filesystem-browse"},{key:"flood",name:"flood"},{key:"gas",name:"gas"},{key:"humidifier",name:"humidifier"},{key:"humiditySensor",name:"humidity-sensor"},{key:"image",name:"image"},{key:"imageSettings",name:"image-settings"},{key:"integrations",name:"integrations"},{key:"intercom",name:"intercom"},{key:"lawnMowerControl",name:"lawn-mower-control"},{key:"llm",name:"llm"},{key:"llmRuntime",name:"llm-runtime"},{key:"localNetwork",name:"local-network"},{key:"lockControl",name:"lock-control"},{key:"logDestination",name:"log-destination"},{key:"loginMethod",name:"login-method"},{key:"mediaPlayer",name:"media-player"},{key:"meshNetwork",name:"mesh-network"},{key:"metricsProvider",name:"metrics-provider"},{key:"modelConvert",name:"model-convert"},{key:"modelDistributor",name:"model-distributor"},{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:"notificationRules",name:"notification-rules"},{key:"notifier",name:"notifier"},{key:"numericSensor",name:"numeric-sensor"},{key:"oauthIntegration",name:"oauth-integration"},{key:"osd",name:"osd"},{key:"osdManager",name:"osd-manager"},{key:"petFeeder",name:"pet-feeder"},{key:"pipelineAnalytics",name:"pipeline-analytics"},{key:"pipelineExecutor",name:"pipeline-executor"},{key:"pipelineOrchestrator",name:"pipeline-orchestrator"},{key:"pipelineRunner",name:"pipeline-runner"},{key:"plateGallery",name:"plate-gallery"},{key:"platformProbe",name:"platform-probe"},{key:"powerMeter",name:"power-meter"},{key:"presence",name:"presence"},{key:"pressureSensor",name:"pressure-sensor"},{key:"privacyMask",name:"privacy-mask"},{key:"ptz",name:"ptz"},{key:"ptzAutotrack",name:"ptz-autotrack"},{key:"reboot",name:"reboot"},{key:"recording",name:"recording"},{key:"recordingExport",name:"recordingExport"},{key:"sceneMonitor",name:"scene-monitor"},{key:"scriptRunner",name:"script-runner"},{key:"serverManagement",name:"server-management"},{key:"settingsStore",name:"settings-store"},{key:"smoke",name:"smoke"},{key:"smtpProvider",name:"smtp-provider"},{key:"snapshot",name:"snapshot"},{key:"ssoBridge",name:"sso-bridge"},{key:"storage",name:"storage"},{key:"storageEvictable",name:"storage-evictable"},{key:"storageProvider",name:"storage-provider"},{key:"streamBroker",name:"stream-broker"},{key:"streamCatalog",name:"stream-catalog"},{key:"streamParams",name:"stream-params"},{key:"switch",name:"switch"},{key:"system",name:"system"},{key:"tamper",name:"tamper"},{key:"temperatureSensor",name:"temperature-sensor"},{key:"terminalSession",name:"terminal-session"},{key:"toast",name:"toast"},{key:"turnProvider",name:"turn-provider"},{key:"update",name:"update"},{key:"userManagement",name:"user-management"},{key:"userPasskeys",name:"user-passkeys"},{key:"vacuumControl",name:"vacuum-control"},{key:"valve",name:"valve"},{key:"vectorStore",name:"vector-store"},{key:"vibration",name:"vibration"},{key:"videoclips",name:"videoclips"},{key:"viewerUi",name:"viewer-ui"},{key:"waterHeater",name:"water-heater"},{key:"weather",name:"weather"},{key:"webrtcSession",name:"webrtc-session"},{key:"zoneAnalytics",name:"zone-analytics"},{key:"zoneRules",name:"zone-rules"},{key:"zones",name:"zones"}],Fk=[jg,ya,va,ka,Ca,Ra,Ta,ez,m.w,nz,kd,qa,rz,Ua,tr,dr,dz,ur,uz,vr,pz,gz,yz,_r,fz,Sz,qr,zo,kz,Pz,xz,Rz,Lz,qz,$z,Wz,Do,Jz,_o,Go,ny,Xo,Qo,ji,di,xi,ec,m.v,Li,tc,ry,cy,rc,ly,py,gy,Sy,Iy,Py,cc,Oy,Ny,My,Ty,Ry,Hy,ef,rf,df,Ec,Sc,ff,Sf,Rc,Uc,Pf,Nf,cs,ds,ms,Ef,gs,Rf,qf,ws,Kf,xs,Jf,mv,Gs,hl,vv,Sv,Nl,wv,Dv,qv,Ku,Pm,Qp,vp,Wv,lh,mh,gh,yh,kh,Nh,Rh,Bh,Zh,nS,dS,bS,gb,Ko,zS,hb,kb,Ab,wb,Nb,Ub,uo,fS,AS,xS,DS,BS,FS,Hb,qS,Wb,$S,nj,Zb,ij,dj,pg,uj,zg,m.y,pj,gj,hg,kj,Aj,Em],_k=Object.freeze({"accessories.setChildHidden":{capName:"accessories",capScope:"device",addonId:null,access:"create"},"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.cancelJob":{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.getJob":{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.listJobs":{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.startJob":{capName:"addons",capScope:"system",addonId:null,access:"create"},"addons.uninstallPackage":{capName:"addons",capScope:"system",addonId:null,access:"delete"},"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"},"alarmPanel.arm":{capName:"alarm-panel",capScope:"device",addonId:null,access:"create"},"alarmPanel.disarm":{capName:"alarm-panel",capScope:"device",addonId:null,access:"create"},"alarmPanel.trigger":{capName:"alarm-panel",capScope:"device",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"},"automationControl.disable":{capName:"automation-control",capScope:"device",addonId:null,access:"create"},"automationControl.enable":{capName:"automation-control",capScope:"device",addonId:null,access:"create"},"automationControl.trigger":{capName:"automation-control",capScope:"device",addonId:null,access:"create"},"backup.delete":{capName:"backup",capScope:"system",addonId:null,access:"delete"},"backup.deleteSchedule":{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.listSchedules":{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"},"backup.upsertSchedule":{capName:"backup",capScope:"system",addonId:null,access:"create"},"battery.wakeForStream":{capName:"battery",capScope:"device",addonId:null,access:"create"},"brightness.setBrightness":{capName:"brightness",capScope:"device",addonId:null,access:"create"},"broker.add":{capName:"broker",capScope:"system",addonId:null,access:"create"},"broker.get":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.getBrokerConfig":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.getSettings":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.getSettingsSchema":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.getState":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.getStatus":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.list":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.listProviders":{capName:"broker",capScope:"system",addonId:null,access:"view"},"broker.publish":{capName:"broker",capScope:"system",addonId:null,access:"create"},"broker.remove":{capName:"broker",capScope:"system",addonId:null,access:"delete"},"broker.setSettings":{capName:"broker",capScope:"system",addonId:null,access:"create"},"broker.subscribe":{capName:"broker",capScope:"system",addonId:null,access:"create"},"broker.testConnection":{capName:"broker",capScope:"system",addonId:null,access:"create"},"broker.testSettings":{capName:"broker",capScope:"system",addonId:null,access:"create"},"broker.unsubscribe":{capName:"broker",capScope:"system",addonId:null,access:"create"},"button.press":{capName:"button",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.getProfileRtspEntries":{capName:"camera-streams",capScope:"device",addonId:null,access:"view"},"cameraStreams.getRtspEntries":{capName:"camera-streams",capScope:"device",addonId:null,access:"view"},"cameraStreams.pickStream":{capName:"camera-streams",capScope:"device",addonId:null,access:"view"},"climateControl.setFanMode":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setMode":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setPreset":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setSwingHorizontal":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setSwingVertical":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setTarget":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setTargetHumidity":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"climateControl.setTargetRange":{capName:"climate-control",capScope:"device",addonId:null,access:"create"},"color.setColor":{capName:"color",capScope:"device",addonId:null,access:"create"},"connectionTest.describeTest":{capName:"connection-test",capScope:"system",addonId:null,access:"view"},"connectionTest.testSettings":{capName:"connection-test",capScope:"system",addonId:null,access:"create"},"consumables.reset":{capName:"consumables",capScope:"device",addonId:null,access:"delete"},"control.setValue":{capName:"control",capScope:"device",addonId:null,access:"create"},"coreBlocks.compile":{capName:"core-blocks",capScope:"system",addonId:null,access:"create"},"coreBlocks.create":{capName:"core-blocks",capScope:"system",addonId:null,access:"create"},"coreBlocks.delete":{capName:"core-blocks",capScope:"system",addonId:null,access:"delete"},"coreBlocks.get":{capName:"core-blocks",capScope:"system",addonId:null,access:"view"},"coreBlocks.getTypeDefs":{capName:"core-blocks",capScope:"system",addonId:null,access:"view"},"coreBlocks.list":{capName:"core-blocks",capScope:"system",addonId:null,access:"view"},"coreBlocks.restart":{capName:"core-blocks",capScope:"system",addonId:null,access:"create"},"coreBlocks.setEnabled":{capName:"core-blocks",capScope:"system",addonId:null,access:"create"},"coreBlocks.update":{capName:"core-blocks",capScope:"system",addonId:null,access:"create"},"cover.close":{capName:"cover",capScope:"device",addonId:null,access:"create"},"cover.open":{capName:"cover",capScope:"device",addonId:null,access:"create"},"cover.setPosition":{capName:"cover",capScope:"device",addonId:null,access:"create"},"cover.setTiltPosition":{capName:"cover",capScope:"device",addonId:null,access:"create"},"cover.stop":{capName:"cover",capScope:"device",addonId:null,access:"create"},"customModelRegistry.listModels":{capName:"custom-model-registry",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.count":{capName:"data-store-provider",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.declareCollection":{capName:"data-store-provider",capScope:"system",addonId:null,access:"create"},"dataStoreProvider.delete":{capName:"data-store-provider",capScope:"system",addonId:null,access:"delete"},"dataStoreProvider.deleteWhere":{capName:"data-store-provider",capScope:"system",addonId:null,access:"delete"},"dataStoreProvider.get":{capName:"data-store-provider",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.getEngineInfo":{capName:"data-store-provider",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.histogram":{capName:"data-store-provider",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.insert":{capName:"data-store-provider",capScope:"system",addonId:null,access:"create"},"dataStoreProvider.isEmpty":{capName:"data-store-provider",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.query":{capName:"data-store-provider",capScope:"system",addonId:null,access:"view"},"dataStoreProvider.set":{capName:"data-store-provider",capScope:"system",addonId:null,access:"create"},"dataStoreProvider.update":{capName:"data-store-provider",capScope:"system",addonId:null,access:"create"},"dataStoreProvider.updateWhere":{capName:"data-store-provider",capScope:"system",addonId:null,access:"create"},"dayNight.getOptions":{capName:"day-night",capScope:"device",addonId:null,access:"view"},"dayNight.setSettings":{capName:"day-night",capScope:"device",addonId:null,access:"create"},"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"},"deviceAdoption.adopt":{capName:"device-adoption",capScope:"system",addonId:null,access:"create"},"deviceAdoption.getCandidate":{capName:"device-adoption",capScope:"system",addonId:null,access:"view"},"deviceAdoption.listCandidateFilters":{capName:"device-adoption",capScope:"system",addonId:null,access:"view"},"deviceAdoption.listCandidates":{capName:"device-adoption",capScope:"system",addonId:null,access:"view"},"deviceAdoption.refresh":{capName:"device-adoption",capScope:"system",addonId:null,access:"create"},"deviceAdoption.release":{capName:"device-adoption",capScope:"system",addonId:null,access:"create"},"deviceAdoption.resync":{capName:"device-adoption",capScope:"system",addonId:null,access:"create"},"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.adoptionAdopt":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.adoptionCancelJob":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.adoptionListCandidateFilters":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.adoptionListCandidates":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.adoptionListJobs":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.adoptionRefresh":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.adoptionRelease":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.adoptionResync":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.adoptionStartJob":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.allocateDeviceId":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.applyInitialMeta":{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.discoverAllProviders":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.discoverDevices":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.discoverProvider":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.discoveryProviders":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"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.getDeviceStatusAggregateBatch":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getLinkedDevices":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.getRoleDisplayDefaults":{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.getWireableFields":{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.providerCreationType":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.providerDiscoveryParamsSchema":{capName:"device-manager",capScope:"system",addonId:null,access:"view"},"deviceManager.registerDevice":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.remove":{capName:"device-manager",capScope:"system",addonId:null,access:"delete"},"deviceManager.removeByIntegration":{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.runDeviceAction":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setChildLayout":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setDisabled":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setDisplay":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setIntegrationId":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setLinkDeviceId":{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.setPrimaryChildEntityId":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setRole":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setRoleDisplayDefaults":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setStreamProfileMap":{capName:"device-manager",capScope:"system",addonId:null,access:"create"},"deviceManager.setType":{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.getRawState":{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.runAction":{capName:"device-ops",capScope:"device",addonId:null,access:"create"},"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.getDiscoveryParamsSchema":{capName:"device-provider",capScope:"system",addonId:null,access:"view"},"deviceProvider.getManualCreationType":{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"},"faceGallery.assignFace":{capName:"face-gallery",capScope:"system",addonId:null,access:"create"},"faceGallery.assignFaces":{capName:"face-gallery",capScope:"system",addonId:null,access:"create"},"faceGallery.createIdentity":{capName:"face-gallery",capScope:"system",addonId:null,access:"create"},"faceGallery.deleteFace":{capName:"face-gallery",capScope:"system",addonId:null,access:"delete"},"faceGallery.deleteIdentity":{capName:"face-gallery",capScope:"system",addonId:null,access:"delete"},"faceGallery.getFaceByTrack":{capName:"face-gallery",capScope:"system",addonId:null,access:"view"},"faceGallery.getFaceMedia":{capName:"face-gallery",capScope:"system",addonId:null,access:"view"},"faceGallery.listIdentities":{capName:"face-gallery",capScope:"system",addonId:null,access:"view"},"faceGallery.listIdentitySamples":{capName:"face-gallery",capScope:"system",addonId:null,access:"view"},"faceGallery.listRecentFaces":{capName:"face-gallery",capScope:"system",addonId:null,access:"view"},"faceGallery.removeSample":{capName:"face-gallery",capScope:"system",addonId:null,access:"delete"},"faceGallery.renameIdentity":{capName:"face-gallery",capScope:"system",addonId:null,access:"create"},"faceGallery.suggestFaceClusters":{capName:"face-gallery",capScope:"system",addonId:null,access:"view"},"faceGallery.unassignFace":{capName:"face-gallery",capScope:"system",addonId:null,access:"create"},"faceGallery.unassignFaces":{capName:"face-gallery",capScope:"system",addonId:null,access:"create"},"fanControl.setDirection":{capName:"fan-control",capScope:"device",addonId:null,access:"create"},"fanControl.setOscillating":{capName:"fan-control",capScope:"device",addonId:null,access:"create"},"fanControl.setPercentage":{capName:"fan-control",capScope:"device",addonId:null,access:"create"},"fanControl.setPreset":{capName:"fan-control",capScope:"device",addonId:null,access:"create"},"filesystemBrowse.browse":{capName:"filesystem-browse",capScope:"system",addonId:null,access:"view"},"filesystemBrowse.createDir":{capName:"filesystem-browse",capScope:"system",addonId:null,access:"create"},"filesystemBrowse.listAllowedRoots":{capName:"filesystem-browse",capScope:"system",addonId:null,access:"view"},"humidifier.setMode":{capName:"humidifier",capScope:"device",addonId:null,access:"create"},"humidifier.setOn":{capName:"humidifier",capScope:"device",addonId:null,access:"create"},"humidifier.setTargetHumidity":{capName:"humidifier",capScope:"device",addonId:null,access:"create"},"imageSettings.getOptions":{capName:"image-settings",capScope:"device",addonId:null,access:"view"},"imageSettings.setSettings":{capName:"image-settings",capScope:"device",addonId:null,access:"create"},"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.pushTalkAudio":{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"},"lawnMowerControl.dock":{capName:"lawn-mower-control",capScope:"device",addonId:null,access:"create"},"lawnMowerControl.pause":{capName:"lawn-mower-control",capScope:"device",addonId:null,access:"create"},"lawnMowerControl.startMowing":{capName:"lawn-mower-control",capScope:"device",addonId:null,access:"create"},"llm.deleteModel":{capName:"llm",capScope:"system",addonId:null,access:"delete"},"llm.deleteProfile":{capName:"llm",capScope:"system",addonId:null,access:"delete"},"llm.generate":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.generateVision":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.getDefaults":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.getRuntimeStatus":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.getUsage":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.installModel":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.listModelCatalog":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.listModels":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.listNodeModels":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.listProfileKinds":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.listProfiles":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.listRuntimeNodes":{capName:"llm",capScope:"system",addonId:null,access:"view"},"llm.setDefault":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.startRuntime":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.stopRuntime":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.testProfile":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llm.upsertProfile":{capName:"llm",capScope:"system",addonId:null,access:"create"},"llmRuntime.complete":{capName:"llm-runtime",capScope:"system",addonId:null,access:"create"},"llmRuntime.deleteModel":{capName:"llm-runtime",capScope:"system",addonId:null,access:"delete"},"llmRuntime.ensureStarted":{capName:"llm-runtime",capScope:"system",addonId:null,access:"create"},"llmRuntime.getDiskUsage":{capName:"llm-runtime",capScope:"system",addonId:null,access:"view"},"llmRuntime.installModel":{capName:"llm-runtime",capScope:"system",addonId:null,access:"create"},"llmRuntime.listLocalModels":{capName:"llm-runtime",capScope:"system",addonId:null,access:"view"},"llmRuntime.status":{capName:"llm-runtime",capScope:"system",addonId:null,access:"view"},"llmRuntime.stop":{capName:"llm-runtime",capScope:"system",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.getNotificationEndpoint":{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"},"localNetwork.setNotificationEndpoint":{capName:"local-network",capScope:"system",addonId:null,access:"create"},"lockControl.lock":{capName:"lock-control",capScope:"device",addonId:null,access:"create"},"lockControl.open":{capName:"lock-control",capScope:"device",addonId:null,access:"create"},"lockControl.unlock":{capName:"lock-control",capScope:"device",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"},"loginMethod.getLoginMethods":{capName:"login-method",capScope:"system",addonId:null,access:"view"},"mediaPlayer.next":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.pause":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.play":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.playMedia":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.previous":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.seek":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.selectSource":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.setMute":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.setRepeat":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.setShuffle":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.setVolume":{capName:"media-player",capScope:"device",addonId:null,access:"create"},"mediaPlayer.stop":{capName:"media-player",capScope:"device",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.dumpHeapSnapshot":{capName:"metrics-provider",capScope:"system",addonId:null,access:"create"},"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"},"modelConvert.convert":{capName:"model-convert",capScope:"system",addonId:null,access:"create"},"modelDistributor.distributeModel":{capName:"model-distributor",capScope:"system",addonId:null,access:"create"},"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"},"nativeObjectDetection.setEnabled":{capName:"native-object-detection",capScope:"device",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.deleteTarget":{capName:"notification-output",capScope:"system",addonId:null,access:"delete"},"notificationOutput.discoverTargets":{capName:"notification-output",capScope:"system",addonId:null,access:"view"},"notificationOutput.listTargetKinds":{capName:"notification-output",capScope:"system",addonId:null,access:"view"},"notificationOutput.listTargets":{capName:"notification-output",capScope:"system",addonId:null,access:"view"},"notificationOutput.send":{capName:"notification-output",capScope:"system",addonId:null,access:"create"},"notificationOutput.setTargetEnabled":{capName:"notification-output",capScope:"system",addonId:null,access:"create"},"notificationOutput.testTarget":{capName:"notification-output",capScope:"system",addonId:null,access:"create"},"notificationOutput.upsertTarget":{capName:"notification-output",capScope:"system",addonId:null,access:"create"},"notificationRules.cancelSnooze":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.createRule":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.createSnooze":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.deleteRule":{capName:"notification-rules",capScope:"system",addonId:null,access:"delete"},"notificationRules.getAlarmConfig":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.getConditionCatalog":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.getHistory":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.getRule":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.listDeviceMutes":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.listRules":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.listSnoozes":{capName:"notification-rules",capScope:"system",addonId:null,access:"view"},"notificationRules.setAlarmConfig":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.setDeviceMuted":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.setRuleEnabled":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.testRule":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notificationRules.updateRule":{capName:"notification-rules",capScope:"system",addonId:null,access:"create"},"notifier.cancel":{capName:"notifier",capScope:"device",addonId:null,access:"create"},"notifier.send":{capName:"notifier",capScope:"device",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"},"osdManager.clearSlotBinding":{capName:"osd-manager",capScope:"system",addonId:null,access:"delete"},"osdManager.getConditionSupport":{capName:"osd-manager",capScope:"system",addonId:null,access:"view"},"osdManager.getDeviceOsd":{capName:"osd-manager",capScope:"system",addonId:null,access:"view"},"osdManager.getSourceCatalog":{capName:"osd-manager",capScope:"system",addonId:null,access:"view"},"osdManager.previewSlot":{capName:"osd-manager",capScope:"system",addonId:null,access:"create"},"osdManager.renderDevice":{capName:"osd-manager",capScope:"system",addonId:null,access:"create"},"osdManager.setSlotBinding":{capName:"osd-manager",capScope:"system",addonId:null,access:"create"},"petFeeder.callPet":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.cancelFeed":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.feed":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.markFoodReplenished":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.playSound":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.resetDesiccant":{capName:"pet-feeder",capScope:"device",addonId:null,access:"delete"},"petFeeder.setChildLock":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.setFeedSound":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.setIndicatorLight":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"petFeeder.setVolume":{capName:"pet-feeder",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.cancelMediaRelocate":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.clearTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"delete"},"pipelineAnalytics.completeRetrainTrack":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.deleteDeviceEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"delete"},"pipelineAnalytics.deleteTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"delete"},"pipelineAnalytics.deselectRetrainFrame":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.getActiveTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getAudioEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getEventDensity":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getEventMedia":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getEventStoreFootprint":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getKeyEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getMediaRelocateStatus":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getMotionEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getObjectEmbeddingRebuildStatus":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getObjectEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getRetrainExportUrl":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getRetrainFrameImage":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getSensorEvents":{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.getTrainingExportSummary":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.getTrainingExportUrl":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listEventKinds":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listEventKindsBatch":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listOpsLog":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listRecentTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listRetrainAnnotations":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listRetrainFrames":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listRetrainStaging":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listTrackMedia":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.listTracks":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.proposeRetrainAnnotations":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.pruneEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.pruneEventsBefore":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.pruneTracksBefore":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.rebuildObjectEmbeddings":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.relocateMedia":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.restageRetrainTrack":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.saveRetrainAnnotations":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.searchObjectEvents":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"view"},"pipelineAnalytics.selectRetrainFrames":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.setTrackFlags":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.wipeAllAnalytics":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"delete"},"pipelineAnalytics.wipeObjectEmbeddings":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"delete"},"pipelineExecutor.cacheFrameInPool":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"create"},"pipelineExecutor.clearDeviceOverrides":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"delete"},"pipelineExecutor.deleteModel":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"delete"},"pipelineExecutor.deleteTemplate":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"delete"},"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.getEngineProvisioning":{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.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"},"pipelineExecutor.validatePipeline":{capName:"pipeline-executor",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.assignAudio":{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.getCameraStatus":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCameraStatuses":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCameraStepOverrides":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCameraSwitches":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getCapabilityBindings":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getGlobalMetrics":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getIngestOwner":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"view"},"pipelineOrchestrator.getNodeInferenceDevices":{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.getPipelineDevicePin":{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.resetNodePipelineDefaults":{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.setAgentCapabilities":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setAgentDetectWeight":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setAgentInferenceDevices":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setAgentMaxCameras":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setAgentReachableHost":{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.setCameraSwitch":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setCapabilityBinding":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.setPipelineDevicePin":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"pipelineOrchestrator.unassignAudio":{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.getNativeCrop":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"view"},"pipelineRunner.reportMotion":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"create"},"pipelineRunner.runDetailSubtree":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"create"},"pipelineRunner.runStatelessStep":{capName:"pipeline-runner",capScope:"system",addonId:null,access:"create"},"plateGallery.assignPlate":{capName:"plate-gallery",capScope:"system",addonId:null,access:"create"},"plateGallery.assignPlates":{capName:"plate-gallery",capScope:"system",addonId:null,access:"create"},"plateGallery.correctPlateText":{capName:"plate-gallery",capScope:"system",addonId:null,access:"create"},"plateGallery.createVehicle":{capName:"plate-gallery",capScope:"system",addonId:null,access:"create"},"plateGallery.deletePlate":{capName:"plate-gallery",capScope:"system",addonId:null,access:"delete"},"plateGallery.deleteVehicle":{capName:"plate-gallery",capScope:"system",addonId:null,access:"delete"},"plateGallery.getPlateByTrack":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.getPlateMedia":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.listPlates":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.listVehicles":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.listVehicleSamples":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.removeVehicleSample":{capName:"plate-gallery",capScope:"system",addonId:null,access:"delete"},"plateGallery.renameVehicle":{capName:"plate-gallery",capScope:"system",addonId:null,access:"create"},"plateGallery.searchPlates":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.suggestPlateClusters":{capName:"plate-gallery",capScope:"system",addonId:null,access:"view"},"plateGallery.unassignPlate":{capName:"plate-gallery",capScope:"system",addonId:null,access:"create"},"plateGallery.unassignPlates":{capName:"plate-gallery",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.resolveHwAccel":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"platformProbe.resolveInferenceConfig":{capName:"platform-probe",capScope:"system",addonId:null,access:"view"},"privacyMask.getOptions":{capName:"privacy-mask",capScope:"device",addonId:null,access:"view"},"privacyMask.setAudioEnabled":{capName:"privacy-mask",capScope:"device",addonId:null,access:"create"},"privacyMask.setMask":{capName:"privacy-mask",capScope:"device",addonId:null,access:"create"},"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.cancelRelocate":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.deleteFootprint":{capName:"recording",capScope:"system",addonId:null,access:"delete"},"recording.getAvailability":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.getDaysWithRecordings":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.getDeviceConfig":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.getPlaybackManifest":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.getRelocateStatus":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.getStorageUsage":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.listOpsLog":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.locateSegment":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.pruneFootage":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.readGopBytes":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.readSegmentBytes":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.relocateFootage":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.renderClip":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.renderGif":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.rescanStorage":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.setDeviceConfig":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recordingExport.cancelExport":{capName:"recordingExport",capScope:"system",addonId:null,access:"create"},"recordingExport.createExport":{capName:"recordingExport",capScope:"system",addonId:null,access:"create"},"recordingExport.deleteExport":{capName:"recordingExport",capScope:"system",addonId:null,access:"delete"},"recordingExport.getDownloadUrl":{capName:"recordingExport",capScope:"system",addonId:null,access:"view"},"recordingExport.getExport":{capName:"recordingExport",capScope:"system",addonId:null,access:"view"},"recordingExport.listExports":{capName:"recordingExport",capScope:"system",addonId:null,access:"view"},"sceneMonitor.captureReference":{capName:"scene-monitor",capScope:"device",addonId:null,access:"create"},"sceneMonitor.createScene":{capName:"scene-monitor",capScope:"device",addonId:null,access:"create"},"sceneMonitor.deleteReference":{capName:"scene-monitor",capScope:"device",addonId:null,access:"delete"},"sceneMonitor.deleteScene":{capName:"scene-monitor",capScope:"device",addonId:null,access:"delete"},"sceneMonitor.listScenes":{capName:"scene-monitor",capScope:"device",addonId:null,access:"view"},"sceneMonitor.recheckNow":{capName:"scene-monitor",capScope:"device",addonId:null,access:"create"},"sceneMonitor.updateScene":{capName:"scene-monitor",capScope:"device",addonId:null,access:"create"},"scriptRunner.run":{capName:"script-runner",capScope:"device",addonId:null,access:"create"},"scriptRunner.stop":{capName:"script-runner",capScope:"device",addonId:null,access:"create"},"serverManagement.applyServerUpdate":{capName:"server-management",capScope:"system",addonId:null,access:"create"},"serverManagement.checkServerUpdate":{capName:"server-management",capScope:"system",addonId:null,access:"create"},"serverManagement.getServerPackageStatus":{capName:"server-management",capScope:"system",addonId:null,access:"view"},"serverManagement.restartServer":{capName:"server-management",capScope:"system",addonId:null,access:"create"},"serverManagement.rollbackServerUpdate":{capName:"server-management",capScope:"system",addonId:null,access:"create"},"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.deleteWhere":{capName:"settings-store",capScope:"system",addonId:null,access:"delete"},"settingsStore.get":{capName:"settings-store",capScope:"system",addonId:null,access:"view"},"settingsStore.histogram":{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"},"settingsStore.updateWhere":{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.getSnapshotLinks":{capName:"snapshot",capScope:"device",addonId:null,access:"view"},"snapshot.getSnapshotOverview":{capName:"snapshot",capScope:"device",addonId:null,access:"view"},"snapshot.invalidateCache":{capName:"snapshot",capScope:"device",addonId:null,access:"create"},"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.listLocationDeclarations":{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"},"storageEvictable.evict":{capName:"storage-evictable",capScope:"system",addonId:null,access:"create"},"storageEvictable.getEvictableUsage":{capName:"storage-evictable",capScope:"system",addonId:null,access:"view"},"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.acquireEgressTranscode":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.assignProfile":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.fetchEventMedia":{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.getDeviceAudioMute":{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.probeStream":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.produceEventMedia":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"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.releaseEgressTranscode":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.releaseStreamWithCodec":{capName:"stream-broker",capScope:"system",addonId:null,access:"create"},"streamBroker.renderPreBufferClip":{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.setDeviceAudioMute":{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"},"streamCatalog.getCatalog":{capName:"stream-catalog",capScope:"device",addonId:null,access:"view"},"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"},"terminalSession.close":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.listProfiles":{capName:"terminal-session",capScope:"system",addonId:null,access:"view"},"terminalSession.listSessions":{capName:"terminal-session",capScope:"system",addonId:null,access:"view"},"terminalSession.openSession":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.resize":{capName:"terminal-session",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"},"update.installUpdate":{capName:"update",capScope:"device",addonId:null,access:"create"},"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.beginDiscoverableAuthentication":{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.finishDiscoverableAuthentication":{capName:"user-passkeys",capScope:"system",addonId:null,access:"view"},"userPasskeys.finishRegistration":{capName:"user-passkeys",capScope:"system",addonId:null,access:"create"},"userPasskeys.getSecondFactorPreference":{capName:"user-passkeys",capScope:"system",addonId:null,access:"view"},"userPasskeys.listPasskeys":{capName:"user-passkeys",capScope:"system",addonId:null,access:"view"},"userPasskeys.removePasskey":{capName:"user-passkeys",capScope:"system",addonId:null,access:"delete"},"userPasskeys.setSecondFactorPreference":{capName:"user-passkeys",capScope:"system",addonId:null,access:"create"},"vacuumControl.locate":{capName:"vacuum-control",capScope:"device",addonId:null,access:"create"},"vacuumControl.pause":{capName:"vacuum-control",capScope:"device",addonId:null,access:"create"},"vacuumControl.returnToBase":{capName:"vacuum-control",capScope:"device",addonId:null,access:"create"},"vacuumControl.setFanSpeed":{capName:"vacuum-control",capScope:"device",addonId:null,access:"create"},"vacuumControl.start":{capName:"vacuum-control",capScope:"device",addonId:null,access:"create"},"vacuumControl.stop":{capName:"vacuum-control",capScope:"device",addonId:null,access:"create"},"valve.close":{capName:"valve",capScope:"device",addonId:null,access:"create"},"valve.open":{capName:"valve",capScope:"device",addonId:null,access:"create"},"valve.setPosition":{capName:"valve",capScope:"device",addonId:null,access:"create"},"valve.stop":{capName:"valve",capScope:"device",addonId:null,access:"create"},"vectorStore.declareIndex":{capName:"vector-store",capScope:"system",addonId:null,access:"create"},"vectorStore.deleteByFilter":{capName:"vector-store",capScope:"system",addonId:null,access:"delete"},"vectorStore.deleteByIds":{capName:"vector-store",capScope:"system",addonId:null,access:"delete"},"vectorStore.getByIds":{capName:"vector-store",capScope:"system",addonId:null,access:"view"},"vectorStore.query":{capName:"vector-store",capScope:"system",addonId:null,access:"view"},"vectorStore.stats":{capName:"vector-store",capScope:"system",addonId:null,access:"view"},"vectorStore.upsert":{capName:"vector-store",capScope:"system",addonId:null,access:"create"},"videoclips.getClipPlayback":{capName:"videoclips",capScope:"device",addonId:null,access:"view"},"videoclips.listClips":{capName:"videoclips",capScope:"device",addonId:null,access:"view"},"viewerUi.getStaticDir":{capName:"viewer-ui",capScope:"system",addonId:null,access:"view"},"viewerUi.getVersion":{capName:"viewer-ui",capScope:"system",addonId:null,access:"view"},"waterHeater.setAway":{capName:"water-heater",capScope:"device",addonId:null,access:"create"},"waterHeater.setOperationMode":{capName:"water-heater",capScope:"device",addonId:null,access:"create"},"waterHeater.setTargetTemp":{capName:"water-heater",capScope:"device",addonId:null,access:"create"},"webrtcSession.addIceCandidate":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.closeSession":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.createSession":{capName:"webrtc-session",capScope:"device",addonId:null,access:"create"},"webrtcSession.getIceCandidates":{capName:"webrtc-session",capScope:"device",addonId:null,access:"view"},"webrtcSession.getSessionState":{capName:"webrtc-session",capScope:"device",addonId:null,access:"view"},"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"}}),qk=["accessories","addon-pages","addon-pages-source","addon-routes","addon-settings","addon-widgets","addon-widgets-source","addons","admin-ui","alarm-panel","alerts","audio-analysis","audio-analyzer","audio-codec","audio-metrics","auth-provider","automation-control","backup","battery","brightness","broker","button","camera-credentials","camera-streams","climate-control","color","connection-test","consumables","control","core-blocks","cover","custom-model-registry","data-store-provider","day-night","decoder","device-adoption","device-discovery","device-export","device-manager","device-ops","device-provider","device-state","embedding-encoder","events","face-gallery","fan-control","filesystem-browse","humidifier","image-settings","integrations","intercom","lawn-mower-control","llm","llm-runtime","local-network","lock-control","log-destination","login-method","media-player","mesh-network","metrics-provider","model-convert","model-distributor","motion","motion-detection","motion-trigger","motion-zones","mqtt-broker","native-object-detection","network-access","network-quality","nodes","notification-output","notification-rules","notifier","oauth-integration","osd","osd-manager","pet-feeder","pipeline-analytics","pipeline-executor","pipeline-orchestrator","pipeline-runner","plate-gallery","platform-probe","privacy-mask","ptz","ptz-autotrack","reboot","recording","recordingExport","scene-monitor","script-runner","server-management","settings-store","smtp-provider","snapshot","sso-bridge","storage","storage-evictable","storage-provider","stream-broker","stream-catalog","stream-params","switch","system","terminal-session","toast","turn-provider","update","user-management","user-passkeys","vacuum-control","valve","vector-store","videoclips","viewer-ui","water-heater","webrtc-session","zone-analytics","zone-rules","zones"],Uk=["accessories","alarm-panel","audio-analysis","audio-metrics","automation-control","battery","brightness","button","camera-credentials","camera-streams","climate-control","color","consumables","control","cover","day-night","device-discovery","device-ops","events","fan-control","humidifier","image-settings","intercom","lawn-mower-control","lock-control","media-player","motion","motion-detection","motion-trigger","motion-zones","native-object-detection","notifier","osd","pet-feeder","pipeline-analytics","privacy-mask","ptz","ptz-autotrack","reboot","scene-monitor","script-runner","snapshot","stream-catalog","stream-params","switch","update","vacuum-control","valve","videoclips","water-heater","webrtc-session","zone-analytics","zone-rules","zones"],$k=["addon-pages","addon-pages-source","addon-routes","addon-settings","addon-widgets","addon-widgets-source","addons","admin-ui","alerts","audio-analyzer","audio-codec","auth-provider","backup","broker","connection-test","core-blocks","custom-model-registry","data-store-provider","decoder","device-adoption","device-export","device-manager","device-provider","device-state","embedding-encoder","face-gallery","filesystem-browse","integrations","llm","llm-runtime","local-network","log-destination","login-method","mesh-network","metrics-provider","model-convert","model-distributor","mqtt-broker","network-access","network-quality","nodes","notification-output","notification-rules","oauth-integration","osd-manager","pipeline-executor","pipeline-orchestrator","pipeline-runner","plate-gallery","platform-probe","recording","recordingExport","server-management","settings-store","smtp-provider","sso-bridge","storage","storage-evictable","storage-provider","stream-broker","system","terminal-session","toast","turn-provider","user-management","user-passkeys","vector-store","viewer-ui"],Vk=Object.freeze({broker:"broker","device-export":"device-export",llm:"ai","mesh-network":"mesh","mqtt-broker":"broker","network-access":"ingress","smtp-provider":"email"}),Hk=["broker","device-export","llm","mesh-network","mqtt-broker","network-access","smtp-provider"];function Kk(e){const t=[];for(const[n,a]of Object.entries(Vk))a===e&&t.push(n);return t}var Wk=[{id:"camera-viewer",label:"Camera viewer",description:"Read-only over every device \u2014 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 \u2014 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"]}]}];function Gk(e){const t=e;function n(e,n,a,r,o){const i=t[e]?.[n];if(!i)throw new Error(`SystemProxy: api has no '${e}.${n}'`);const c=i;return"mutation"===a?c.mutate(r):"subscription"===a?c.subscribe(r,o):c.query(r)}return{addonPages:{listPages:e=>n("addonPages","listPages","query",e)},addons:{list:e=>n("addons","list","query",e),getLogs:e=>n("addons","getLogs","query",e),listPackages:e=>n("addons","listPackages","query",e),installPackage:e=>n("addons","installPackage","mutation",e),installFromWorkspace:e=>n("addons","installFromWorkspace","mutation",e),isWorkspaceAvailable:e=>n("addons","isWorkspaceAvailable","query",e),listWorkspacePackages:e=>n("addons","listWorkspacePackages","query",e),uninstallPackage:e=>n("addons","uninstallPackage","mutation",e),reloadPackages:e=>n("addons","reloadPackages","mutation",e),searchAvailable:e=>n("addons","searchAvailable","query",e),listUpdates:e=>n("addons","listUpdates","query",e),updatePackage:e=>n("addons","updatePackage","mutation",e),rollbackPackage:e=>n("addons","rollbackPackage","mutation",e),forceRefresh:e=>n("addons","forceRefresh","mutation",e),restartServer:e=>n("addons","restartServer","mutation",e),getLastRestart:e=>n("addons","getLastRestart","query",e),listFrameworkPackages:e=>n("addons","listFrameworkPackages","query",e),listCapabilityProviders:e=>n("addons","listCapabilityProviders","query",e),setCapabilityProviderEnabled:e=>n("addons","setCapabilityProviderEnabled","mutation",e),getVersions:e=>n("addons","getVersions","query",e),restartAddon:e=>n("addons","restartAddon","mutation",e),retryLoad:e=>n("addons","retryLoad","mutation",e),getAutoUpdateSettings:e=>n("addons","getAutoUpdateSettings","query",e),setAutoUpdateSettings:e=>n("addons","setAutoUpdateSettings","mutation",e),getAddonAutoUpdate:e=>n("addons","getAddonAutoUpdate","query",e),setAddonAutoUpdate:e=>n("addons","setAddonAutoUpdate","mutation",e),applyAutoUpdateToAll:e=>n("addons","applyAutoUpdateToAll","mutation",e),custom:e=>n("addons","custom","mutation",e),startJob:e=>n("addons","startJob","mutation",e),getJob:e=>n("addons","getJob","query",e),listJobs:e=>n("addons","listJobs","query",e),cancelJob:e=>n("addons","cancelJob","mutation",e),onAddonLogs:(e,t)=>n("addons","onAddonLogs","subscription",e,t)},addonSettings:{getGlobalSettings:e=>n("addonSettings","getGlobalSettings","query",e),updateGlobalSettings:e=>n("addonSettings","updateGlobalSettings","mutation",e)},addonWidgets:{listWidgets:e=>n("addonWidgets","listWidgets","query",e)},alerts:{emit:e=>n("alerts","emit","mutation",e),update:e=>n("alerts","update","mutation",e),list:e=>n("alerts","list","query",e),getUnreadCount:e=>n("alerts","getUnreadCount","query",e),markRead:e=>n("alerts","markRead","mutation",e),markAllRead:e=>n("alerts","markAllRead","mutation",e),dismiss:e=>n("alerts","dismiss","mutation",e)},audioAnalyzer:{analyseChunk:e=>n("audioAnalyzer","analyseChunk","mutation",e),classify:e=>n("audioAnalyzer","classify","query",e),isReady:e=>n("audioAnalyzer","isReady","query",e),dispose:e=>n("audioAnalyzer","dispose","mutation",e),reprobeAudioEngine:e=>n("audioAnalyzer","reprobeAudioEngine","mutation",e)},audioCodec:{listSupportedCodecs:e=>n("audioCodec","listSupportedCodecs","query",e),canHandle:e=>n("audioCodec","canHandle","query",e),createDecodeSession:e=>n("audioCodec","createDecodeSession","mutation",e),createEncodeSession:e=>n("audioCodec","createEncodeSession","mutation",e),closeSession:e=>n("audioCodec","closeSession","mutation",e),pushEncodedFrame:e=>n("audioCodec","pushEncodedFrame","mutation",e),pullPcm:e=>n("audioCodec","pullPcm","query",e),pushPcm:e=>n("audioCodec","pushPcm","mutation",e),pullEncoded:e=>n("audioCodec","pullEncoded","query",e),flushEncode:e=>n("audioCodec","flushEncode","mutation",e),listActiveSessions:e=>n("audioCodec","listActiveSessions","query",e)},backup:{listDestinations:e=>n("backup","listDestinations","query",e),trigger:e=>n("backup","trigger","mutation",e),list:e=>n("backup","list","query",e),listLocations:e=>n("backup","listLocations","query",e),getEntries:e=>n("backup","getEntries","query",e),restore:e=>n("backup","restore","mutation",e),delete:e=>n("backup","delete","mutation",e),listArchives:e=>n("backup","listArchives","query",e),upsertDestinationPolicy:e=>n("backup","upsertDestinationPolicy","mutation",e),previewSchedule:e=>n("backup","previewSchedule","query",e),listSchedules:e=>n("backup","listSchedules","query",e),upsertSchedule:e=>n("backup","upsertSchedule","mutation",e),deleteSchedule:e=>n("backup","deleteSchedule","mutation",e)},broker:{list:e=>n("broker","list","query",e),get:e=>n("broker","get","query",e),listProviders:e=>n("broker","listProviders","query",e),add:e=>n("broker","add","mutation",e),remove:e=>n("broker","remove","mutation",e),testConnection:e=>n("broker","testConnection","mutation",e),getSettings:e=>n("broker","getSettings","query",e),setSettings:e=>n("broker","setSettings","mutation",e),getBrokerConfig:e=>n("broker","getBrokerConfig","query",e),getSettingsSchema:e=>n("broker","getSettingsSchema","query",e),testSettings:e=>n("broker","testSettings","mutation",e),publish:e=>n("broker","publish","mutation",e),subscribe:e=>n("broker","subscribe","mutation",e),unsubscribe:e=>n("broker","unsubscribe","mutation",e),getState:e=>n("broker","getState","query",e),getStatus:e=>n("broker","getStatus","query",e)},connectionTest:{testSettings:e=>n("connectionTest","testSettings","mutation",e),describeTest:e=>n("connectionTest","describeTest","query",e)},coreBlocks:{list:e=>n("coreBlocks","list","query",e),get:e=>n("coreBlocks","get","query",e),create:e=>n("coreBlocks","create","mutation",e),update:e=>n("coreBlocks","update","mutation",e),delete:e=>n("coreBlocks","delete","mutation",e),setEnabled:e=>n("coreBlocks","setEnabled","mutation",e),restart:e=>n("coreBlocks","restart","mutation",e),compile:e=>n("coreBlocks","compile","mutation",e),getTypeDefs:e=>n("coreBlocks","getTypeDefs","query",e)},decoder:{supportsCodec:e=>n("decoder","supportsCodec","query",e),getInfo:e=>n("decoder","getInfo","query",e),createSession:e=>n("decoder","createSession","query",e),destroySession:e=>n("decoder","destroySession","query",e),pushPacket:e=>n("decoder","pushPacket","query",e),openStream:e=>n("decoder","openStream","query",e),pullFrames:e=>n("decoder","pullFrames","query",e),pullHandles:e=>n("decoder","pullHandles","query",e),getFrame:e=>n("decoder","getFrame","query",e),getShmStats:e=>n("decoder","getShmStats","query",e),updateConfig:e=>n("decoder","updateConfig","query",e),getStats:e=>n("decoder","getStats","query",e),listActiveSessions:e=>n("decoder","listActiveSessions","query",e),reprobeHwaccel:e=>n("decoder","reprobeHwaccel","mutation",e)},deviceAdoption:{listCandidateFilters:e=>n("deviceAdoption","listCandidateFilters","query",e),listCandidates:e=>n("deviceAdoption","listCandidates","query",e),getCandidate:e=>n("deviceAdoption","getCandidate","query",e),refresh:e=>n("deviceAdoption","refresh","mutation",e),adopt:e=>n("deviceAdoption","adopt","mutation",e),release:e=>n("deviceAdoption","release","mutation",e),resync:e=>n("deviceAdoption","resync","mutation",e)},deviceExport:{getStatus:e=>n("deviceExport","getStatus","query",e),listSupportedDeviceKinds:e=>n("deviceExport","listSupportedDeviceKinds","query",e),listExposedDevices:e=>n("deviceExport","listExposedDevices","query",e),exposeDevice:e=>n("deviceExport","exposeDevice","mutation",e),unexposeDevice:e=>n("deviceExport","unexposeDevice","mutation",e)},deviceManager:{allocateDeviceId:e=>n("deviceManager","allocateDeviceId","mutation",e),registerDevice:e=>n("deviceManager","registerDevice","mutation",e),removeDevice:e=>n("deviceManager","removeDevice","mutation",e),persistConfig:e=>n("deviceManager","persistConfig","mutation",e),getRoleDisplayDefaults:e=>n("deviceManager","getRoleDisplayDefaults","query",e),setRoleDisplayDefaults:e=>n("deviceManager","setRoleDisplayDefaults","mutation",e),listLocations:e=>n("deviceManager","listLocations","query",e),addLocation:e=>n("deviceManager","addLocation","mutation",e),removeLocation:e=>n("deviceManager","removeLocation","mutation",e),listPersistedByAddon:e=>n("deviceManager","listPersistedByAddon","query",e),listAll:e=>n("deviceManager","listAll","query",e),getChildren:e=>n("deviceManager","getChildren","query",e),removeByIntegration:e=>n("deviceManager","removeByIntegration","mutation",e),listWrappersForCap:e=>n("deviceManager","listWrappersForCap","query",e),listBindableCapsForDeviceType:e=>n("deviceManager","listBindableCapsForDeviceType","query",e),discoverDevices:e=>n("deviceManager","discoverDevices","mutation",e),adoptDevice:e=>n("deviceManager","adoptDevice","mutation",e),getCreationSchema:e=>n("deviceManager","getCreationSchema","query",e),createDevice:e=>n("deviceManager","createDevice","mutation",e),testCreationField:e=>n("deviceManager","testCreationField","mutation",e),adoptionListCandidateFilters:e=>n("deviceManager","adoptionListCandidateFilters","query",e),adoptionListCandidates:e=>n("deviceManager","adoptionListCandidates","query",e),adoptionRefresh:e=>n("deviceManager","adoptionRefresh","mutation",e),adoptionAdopt:e=>n("deviceManager","adoptionAdopt","mutation",e),adoptionRelease:e=>n("deviceManager","adoptionRelease","mutation",e),adoptionStartJob:e=>n("deviceManager","adoptionStartJob","mutation",e),adoptionListJobs:e=>n("deviceManager","adoptionListJobs","query",e),adoptionCancelJob:e=>n("deviceManager","adoptionCancelJob","mutation",e),adoptionResync:e=>n("deviceManager","adoptionResync","mutation",e),discoveryProviders:e=>n("deviceManager","discoveryProviders","query",e),discoverAllProviders:e=>n("deviceManager","discoverAllProviders","mutation",e),discoverProvider:e=>n("deviceManager","discoverProvider","mutation",e),providerCreationType:e=>n("deviceManager","providerCreationType","query",e),providerDiscoveryParamsSchema:e=>n("deviceManager","providerDiscoveryParamsSchema","query",e),getDeviceStatusAggregateBatch:e=>n("deviceManager","getDeviceStatusAggregateBatch","query",e)},deviceProvider:{start:e=>n("deviceProvider","start","mutation",e),stop:e=>n("deviceProvider","stop","mutation",e),getStatus:e=>n("deviceProvider","getStatus","query",e),getDevices:e=>n("deviceProvider","getDevices","query",e),supportsDiscovery:e=>n("deviceProvider","supportsDiscovery","query",e),discoverDevices:e=>n("deviceProvider","discoverDevices","mutation",e),getDiscoveryParamsSchema:e=>n("deviceProvider","getDiscoveryParamsSchema","query",e),getManualCreationType:e=>n("deviceProvider","getManualCreationType","query",e),adoptDiscoveredDevice:e=>n("deviceProvider","adoptDiscoveredDevice","mutation",e),supportsManualCreation:e=>n("deviceProvider","supportsManualCreation","query",e),getChildCreationSchema:e=>n("deviceProvider","getChildCreationSchema","query",e),createDevice:e=>n("deviceProvider","createDevice","mutation",e),testCreationField:e=>n("deviceProvider","testCreationField","mutation",e)},deviceState:{getAllSnapshots:e=>n("deviceState","getAllSnapshots","query",e)},faceGallery:{listIdentities:e=>n("faceGallery","listIdentities","query",e),createIdentity:e=>n("faceGallery","createIdentity","mutation",e),renameIdentity:e=>n("faceGallery","renameIdentity","mutation",e),deleteIdentity:e=>n("faceGallery","deleteIdentity","mutation",e),listIdentitySamples:e=>n("faceGallery","listIdentitySamples","query",e),removeSample:e=>n("faceGallery","removeSample","mutation",e),listRecentFaces:e=>n("faceGallery","listRecentFaces","query",e),getFaceMedia:e=>n("faceGallery","getFaceMedia","query",e),assignFace:e=>n("faceGallery","assignFace","mutation",e),unassignFace:e=>n("faceGallery","unassignFace","mutation",e),deleteFace:e=>n("faceGallery","deleteFace","mutation",e),assignFaces:e=>n("faceGallery","assignFaces","mutation",e),unassignFaces:e=>n("faceGallery","unassignFaces","mutation",e),suggestFaceClusters:e=>n("faceGallery","suggestFaceClusters","query",e)},integrations:{list:e=>n("integrations","list","query",e),get:e=>n("integrations","get","query",e),getByAddonId:e=>n("integrations","getByAddonId","query",e),create:e=>n("integrations","create","mutation",e),update:e=>n("integrations","update","mutation",e),delete:e=>n("integrations","delete","mutation",e),getSettings:e=>n("integrations","getSettings","query",e),setSettings:e=>n("integrations","setSettings","mutation",e),getAvailableTypes:e=>n("integrations","getAvailableTypes","query",e),testConnection:e=>n("integrations","testConnection","mutation",e)},llm:{generate:e=>n("llm","generate","mutation",e),generateVision:e=>n("llm","generateVision","mutation",e),listProfileKinds:e=>n("llm","listProfileKinds","query",e),listProfiles:e=>n("llm","listProfiles","query",e),upsertProfile:e=>n("llm","upsertProfile","mutation",e),deleteProfile:e=>n("llm","deleteProfile","mutation",e),testProfile:e=>n("llm","testProfile","mutation",e),listModels:e=>n("llm","listModels","query",e),getDefaults:e=>n("llm","getDefaults","query",e),setDefault:e=>n("llm","setDefault","mutation",e),getUsage:e=>n("llm","getUsage","query",e),listModelCatalog:e=>n("llm","listModelCatalog","query",e),listRuntimeNodes:e=>n("llm","listRuntimeNodes","query",e),listNodeModels:e=>n("llm","listNodeModels","query",e),installModel:e=>n("llm","installModel","mutation",e),deleteModel:e=>n("llm","deleteModel","mutation",e),getRuntimeStatus:e=>n("llm","getRuntimeStatus","query",e),startRuntime:e=>n("llm","startRuntime","mutation",e),stopRuntime:e=>n("llm","stopRuntime","mutation",e)},localNetwork:{list:e=>n("localNetwork","list","query",e),getPreferred:e=>n("localNetwork","getPreferred","query",e),getConnectionEndpoints:e=>n("localNetwork","getConnectionEndpoints","query",e),getNotificationEndpoint:e=>n("localNetwork","getNotificationEndpoint","query",e),setNotificationEndpoint:e=>n("localNetwork","setNotificationEndpoint","mutation",e),getAllowedAddresses:e=>n("localNetwork","getAllowedAddresses","query",e),setAllowedAddresses:e=>n("localNetwork","setAllowedAddresses","mutation",e),resetAllowlistToBestMatch:e=>n("localNetwork","resetAllowlistToBestMatch","mutation",e)},meshNetwork:{getStatus:e=>n("meshNetwork","getStatus","query",e),join:e=>n("meshNetwork","join","mutation",e),startLogin:e=>n("meshNetwork","startLogin","mutation",e),leave:e=>n("meshNetwork","leave","mutation",e),logout:e=>n("meshNetwork","logout","mutation",e),listPeers:e=>n("meshNetwork","listPeers","query",e),testConnection:e=>n("meshNetwork","testConnection","mutation",e)},metricsProvider:{collectSnapshot:e=>n("metricsProvider","collectSnapshot","query",e),getCached:e=>n("metricsProvider","getCached","query",e),getCurrent:e=>n("metricsProvider","getCurrent","query",e),getDiskSpace:e=>n("metricsProvider","getDiskSpace","query",e),getGpuInfo:e=>n("metricsProvider","getGpuInfo","query",e),getCpuTemperature:e=>n("metricsProvider","getCpuTemperature","query",e),getProcessStats:e=>n("metricsProvider","getProcessStats","query",e),listAddonInstances:e=>n("metricsProvider","listAddonInstances","query",e),getAddonStats:e=>n("metricsProvider","getAddonStats","query",e),listNodeProcesses:e=>n("metricsProvider","listNodeProcesses","query",e),killProcess:e=>n("metricsProvider","killProcess","mutation",e),dumpHeapSnapshot:e=>n("metricsProvider","dumpHeapSnapshot","mutation",e)},mqttBroker:{listBrokers:e=>n("mqttBroker","listBrokers","query",e),getBrokerConfig:e=>n("mqttBroker","getBrokerConfig","query",e),addBroker:e=>n("mqttBroker","addBroker","mutation",e),removeBroker:e=>n("mqttBroker","removeBroker","mutation",e),testConnection:e=>n("mqttBroker","testConnection","mutation",e),startEmbeddedBroker:e=>n("mqttBroker","startEmbeddedBroker","mutation",e),stopEmbeddedBroker:e=>n("mqttBroker","stopEmbeddedBroker","mutation",e),getStatus:e=>n("mqttBroker","getStatus","query",e)},networkAccess:{start:e=>n("networkAccess","start","mutation",e),stop:e=>n("networkAccess","stop","mutation",e),getEndpoint:e=>n("networkAccess","getEndpoint","query",e),getStatus:e=>n("networkAccess","getStatus","query",e),listEndpoints:e=>n("networkAccess","listEndpoints","query",e)},networkQuality:{getAllStats:e=>n("networkQuality","getAllStats","query",e)},nodes:{topology:e=>n("nodes","topology","query",e),deployAddon:e=>n("nodes","deployAddon","mutation",e),undeployAddon:e=>n("nodes","undeployAddon","mutation",e),restartAddon:e=>n("nodes","restartAddon","mutation",e),restartProcess:e=>n("nodes","restartProcess","mutation",e),restartNode:e=>n("nodes","restartNode","mutation",e),shutdownNode:e=>n("nodes","shutdownNode","mutation",e),renameNode:e=>n("nodes","renameNode","mutation",e),clusterAddonStatus:e=>n("nodes","clusterAddonStatus","query",e),getCapUsageGraph:e=>n("nodes","getCapUsageGraph","query",e),getNodeAddons:e=>n("nodes","getNodeAddons","query",e),setProcessLogLevel:e=>n("nodes","setProcessLogLevel","mutation",e),executeQuery:e=>n("nodes","executeQuery","mutation",e)},notificationOutput:{listTargetKinds:e=>n("notificationOutput","listTargetKinds","query",e),listTargets:e=>n("notificationOutput","listTargets","query",e),discoverTargets:e=>n("notificationOutput","discoverTargets","query",e),send:e=>n("notificationOutput","send","mutation",e),testTarget:e=>n("notificationOutput","testTarget","mutation",e),upsertTarget:e=>n("notificationOutput","upsertTarget","mutation",e),deleteTarget:e=>n("notificationOutput","deleteTarget","mutation",e),setTargetEnabled:e=>n("notificationOutput","setTargetEnabled","mutation",e)},osdManager:{getConditionSupport:e=>n("osdManager","getConditionSupport","query",e)},pipelineExecutor:{getAvailableEngines:e=>n("pipelineExecutor","getAvailableEngines","query",e),getSelectedEngine:e=>n("pipelineExecutor","getSelectedEngine","query",e),getDefaultSteps:e=>n("pipelineExecutor","getDefaultSteps","query",e),getEngineProvisioning:e=>n("pipelineExecutor","getEngineProvisioning","query",e),getVideoPipelineSteps:e=>n("pipelineExecutor","getVideoPipelineSteps","query",e),setVideoPipelineSteps:e=>n("pipelineExecutor","setVideoPipelineSteps","mutation",e),clearDeviceOverrides:e=>n("pipelineExecutor","clearDeviceOverrides","mutation",e),getSchema:e=>n("pipelineExecutor","getSchema","query",e),getGlobalSteps:e=>n("pipelineExecutor","getGlobalSteps","query",e),getGlobalPipelineConfig:e=>n("pipelineExecutor","getGlobalPipelineConfig","query",e),getOrchestratorConfigSchema:e=>n("pipelineExecutor","getOrchestratorConfigSchema","query",e),validatePipeline:e=>n("pipelineExecutor","validatePipeline","query",e),listTemplates:e=>n("pipelineExecutor","listTemplates","query",e),saveTemplate:e=>n("pipelineExecutor","saveTemplate","mutation",e),updateTemplate:e=>n("pipelineExecutor","updateTemplate","mutation",e),deleteTemplate:e=>n("pipelineExecutor","deleteTemplate","mutation",e),getCapabilities:e=>n("pipelineExecutor","getCapabilities","query",e),getAddonModels:e=>n("pipelineExecutor","getAddonModels","query",e),downloadModel:e=>n("pipelineExecutor","downloadModel","mutation",e),deleteModel:e=>n("pipelineExecutor","deleteModel","mutation",e),cacheFrameInPool:e=>n("pipelineExecutor","cacheFrameInPool","mutation",e),inferCached:e=>n("pipelineExecutor","inferCached","mutation",e),uncacheFrame:e=>n("pipelineExecutor","uncacheFrame","mutation",e),getEffectiveTuning:e=>n("pipelineExecutor","getEffectiveTuning","query",e),listLoadedEngines:e=>n("pipelineExecutor","listLoadedEngines","query",e),spinEngine:e=>n("pipelineExecutor","spinEngine","mutation",e),killEngine:e=>n("pipelineExecutor","killEngine","mutation",e),listReferenceImages:e=>n("pipelineExecutor","listReferenceImages","query",e),getReferenceImage:e=>n("pipelineExecutor","getReferenceImage","query",e),getReferenceAudioFiles:e=>n("pipelineExecutor","getReferenceAudioFiles","query",e),getReferenceAudio:e=>n("pipelineExecutor","getReferenceAudio","query",e),getAudioCapabilities:e=>n("pipelineExecutor","getAudioCapabilities","query",e),runAudioTest:e=>n("pipelineExecutor","runAudioTest","mutation",e),getDetectionConfigSchema:e=>n("pipelineExecutor","getDetectionConfigSchema","query",e)},pipelineOrchestrator:{rebalance:e=>n("pipelineOrchestrator","rebalance","mutation",e),getPipelineAssignments:e=>n("pipelineOrchestrator","getPipelineAssignments","query",e),getAgentLoad:e=>n("pipelineOrchestrator","getAgentLoad","query",e),getGlobalMetrics:e=>n("pipelineOrchestrator","getGlobalMetrics","query",e),getCapabilityBindings:e=>n("pipelineOrchestrator","getCapabilityBindings","query",e),setCapabilityBinding:e=>n("pipelineOrchestrator","setCapabilityBinding","mutation",e),getIngestOwner:e=>n("pipelineOrchestrator","getIngestOwner","query",e),getAudioNodeLoad:e=>n("pipelineOrchestrator","getAudioNodeLoad","query",e),getAgentSettings:e=>n("pipelineOrchestrator","getAgentSettings","query",e),listAgentSettings:e=>n("pipelineOrchestrator","listAgentSettings","query",e),removeAgentSettings:e=>n("pipelineOrchestrator","removeAgentSettings","mutation",e),setAgentMaxCameras:e=>n("pipelineOrchestrator","setAgentMaxCameras","mutation",e),setAgentDetectWeight:e=>n("pipelineOrchestrator","setAgentDetectWeight","mutation",e),setAgentCapabilities:e=>n("pipelineOrchestrator","setAgentCapabilities","mutation",e),setAgentReachableHost:e=>n("pipelineOrchestrator","setAgentReachableHost","mutation",e),setAgentInferenceDevices:e=>n("pipelineOrchestrator","setAgentInferenceDevices","mutation",e),getNodeInferenceDevices:e=>n("pipelineOrchestrator","getNodeInferenceDevices","query",e),resetNodePipelineDefaults:e=>n("pipelineOrchestrator","resetNodePipelineDefaults","mutation",e),getCameraStatuses:e=>n("pipelineOrchestrator","getCameraStatuses","query",e),listTemplates:e=>n("pipelineOrchestrator","listTemplates","query",e),saveTemplate:e=>n("pipelineOrchestrator","saveTemplate","mutation",e),updateTemplate:e=>n("pipelineOrchestrator","updateTemplate","mutation",e),deleteTemplate:e=>n("pipelineOrchestrator","deleteTemplate","mutation",e)},pipelineRunner:{attachCamera:e=>n("pipelineRunner","attachCamera","mutation",e),reportMotion:e=>n("pipelineRunner","reportMotion","mutation",e),getLocalLoad:e=>n("pipelineRunner","getLocalLoad","query",e),getLocalMetrics:e=>n("pipelineRunner","getLocalMetrics","query",e),getAllCameraMetrics:e=>n("pipelineRunner","getAllCameraMetrics","query",e),getLocalCameras:e=>n("pipelineRunner","getLocalCameras","query",e),getNativeCrop:e=>n("pipelineRunner","getNativeCrop","query",e),runStatelessStep:e=>n("pipelineRunner","runStatelessStep","mutation",e)},plateGallery:{getPlateMedia:e=>n("plateGallery","getPlateMedia","query",e),searchPlates:e=>n("plateGallery","searchPlates","query",e),suggestPlateClusters:e=>n("plateGallery","suggestPlateClusters","query",e),correctPlateText:e=>n("plateGallery","correctPlateText","mutation",e),deletePlate:e=>n("plateGallery","deletePlate","mutation",e),listVehicles:e=>n("plateGallery","listVehicles","query",e),createVehicle:e=>n("plateGallery","createVehicle","mutation",e),renameVehicle:e=>n("plateGallery","renameVehicle","mutation",e),deleteVehicle:e=>n("plateGallery","deleteVehicle","mutation",e),listVehicleSamples:e=>n("plateGallery","listVehicleSamples","query",e),removeVehicleSample:e=>n("plateGallery","removeVehicleSample","mutation",e),assignPlate:e=>n("plateGallery","assignPlate","mutation",e),unassignPlate:e=>n("plateGallery","unassignPlate","mutation",e),assignPlates:e=>n("plateGallery","assignPlates","mutation",e),unassignPlates:e=>n("plateGallery","unassignPlates","mutation",e)},recording:{getStorageUsage:e=>n("recording","getStorageUsage","query",e),listOpsLog:e=>n("recording","listOpsLog","query",e),relocateFootage:e=>n("recording","relocateFootage","mutation",e),getRelocateStatus:e=>n("recording","getRelocateStatus","query",e),cancelRelocate:e=>n("recording","cancelRelocate","mutation",e)},recordingExport:{getExport:e=>n("recordingExport","getExport","query",e),cancelExport:e=>n("recordingExport","cancelExport","mutation",e),deleteExport:e=>n("recordingExport","deleteExport","mutation",e),getDownloadUrl:e=>n("recordingExport","getDownloadUrl","query",e)},serverManagement:{getServerPackageStatus:e=>n("serverManagement","getServerPackageStatus","query",e),checkServerUpdate:e=>n("serverManagement","checkServerUpdate","mutation",e),applyServerUpdate:e=>n("serverManagement","applyServerUpdate","mutation",e),rollbackServerUpdate:e=>n("serverManagement","rollbackServerUpdate","mutation",e),restartServer:e=>n("serverManagement","restartServer","mutation",e)},settingsStore:{get:e=>n("settingsStore","get","query",e),set:e=>n("settingsStore","set","mutation",e),query:e=>n("settingsStore","query","query",e),insert:e=>n("settingsStore","insert","mutation",e),update:e=>n("settingsStore","update","mutation",e),delete:e=>n("settingsStore","delete","mutation",e),deleteWhere:e=>n("settingsStore","deleteWhere","mutation",e),updateWhere:e=>n("settingsStore","updateWhere","mutation",e),count:e=>n("settingsStore","count","query",e),histogram:e=>n("settingsStore","histogram","query",e),isEmpty:e=>n("settingsStore","isEmpty","query",e),declareCollection:e=>n("settingsStore","declareCollection","mutation",e)},storage:{resolve:e=>n("storage","resolve","query",e),write:e=>n("storage","write","mutation",e),read:e=>n("storage","read","query",e),exists:e=>n("storage","exists","query",e),list:e=>n("storage","list","query",e),delete:e=>n("storage","delete","mutation",e),getAvailableSpace:e=>n("storage","getAvailableSpace","query",e),beginUpload:e=>n("storage","beginUpload","mutation",e),writeChunk:e=>n("storage","writeChunk","mutation",e),finalizeUpload:e=>n("storage","finalizeUpload","mutation",e),abortUpload:e=>n("storage","abortUpload","mutation",e),beginDownload:e=>n("storage","beginDownload","mutation",e),readChunk:e=>n("storage","readChunk","query",e),endDownload:e=>n("storage","endDownload","mutation",e),listLocations:e=>n("storage","listLocations","query",e),getDefaultLocation:e=>n("storage","getDefaultLocation","query",e),listLocationDeclarations:e=>n("storage","listLocationDeclarations","query",e),upsertLocation:e=>n("storage","upsertLocation","mutation",e),deleteLocation:e=>n("storage","deleteLocation","mutation",e),testLocation:e=>n("storage","testLocation","query",e),listProviders:e=>n("storage","listProviders","query",e),testConfig:e=>n("storage","testConfig","query",e)},streamBroker:{fetchEventMedia:e=>n("streamBroker","fetchEventMedia","mutation",e),listAllCameraStreams:e=>n("streamBroker","listAllCameraStreams","query",e),listAllProfileSlots:e=>n("streamBroker","listAllProfileSlots","query",e),getBrokerStats:e=>n("streamBroker","getBrokerStats","query",e),probeStream:e=>n("streamBroker","probeStream","mutation",e),listClients:e=>n("streamBroker","listClients","query",e),killClient:e=>n("streamBroker","killClient","mutation",e),getStreamUrl:e=>n("streamBroker","getStreamUrl","query",e),getStreamWithCodec:e=>n("streamBroker","getStreamWithCodec","mutation",e),releaseStreamWithCodec:e=>n("streamBroker","releaseStreamWithCodec","mutation",e),acquireEgressTranscode:e=>n("streamBroker","acquireEgressTranscode","mutation",e),releaseEgressTranscode:e=>n("streamBroker","releaseEgressTranscode","mutation",e),subscribeAudioChunks:e=>n("streamBroker","subscribeAudioChunks","mutation",e),pullAudioChunks:e=>n("streamBroker","pullAudioChunks","query",e),unsubscribeAudioChunks:e=>n("streamBroker","unsubscribeAudioChunks","mutation",e),subscribeFrames:e=>n("streamBroker","subscribeFrames","mutation",e),pullFrameHandles:e=>n("streamBroker","pullFrameHandles","query",e),unsubscribeFrames:e=>n("streamBroker","unsubscribeFrames","mutation",e),setPreBufferDuration:e=>n("streamBroker","setPreBufferDuration","mutation",e),getPreBufferInfo:e=>n("streamBroker","getPreBufferInfo","query",e),getRtspPort:e=>n("streamBroker","getRtspPort","query",e),getAllRtspEntries:e=>n("streamBroker","getAllRtspEntries","query",e),getRtspEntry:e=>n("streamBroker","getRtspEntry","query",e),regenerateRtspToken:e=>n("streamBroker","regenerateRtspToken","mutation",e),setRtspEnabled:e=>n("streamBroker","setRtspEnabled","mutation",e),isRtspEnabled:e=>n("streamBroker","isRtspEnabled","query",e)},system:{info:e=>n("system","info","query",e),health:e=>n("system","health","query",e),featureFlags:e=>n("system","featureFlags","query",e),networkAddresses:e=>n("system","networkAddresses","query",e),getRetentionConfig:e=>n("system","getRetentionConfig","query",e),setRetentionConfig:e=>n("system","setRetentionConfig","mutation",e),forceRetentionCleanup:e=>n("system","forceRetentionCleanup","mutation",e)},terminalSession:{listProfiles:e=>n("terminalSession","listProfiles","query",e),listSessions:e=>n("terminalSession","listSessions","query",e),openSession:e=>n("terminalSession","openSession","mutation",e),resize:e=>n("terminalSession","resize","mutation",e),close:e=>n("terminalSession","close","mutation",e)},toast:{onToast:(e,t)=>n("toast","onToast","subscription",e,t)},turnProvider:{getTurnServers:e=>n("turnProvider","getTurnServers","query",e)},userManagement:{listUsers:e=>n("userManagement","listUsers","query",e),createUser:e=>n("userManagement","createUser","mutation",e),updateUser:e=>n("userManagement","updateUser","mutation",e),deleteUser:e=>n("userManagement","deleteUser","mutation",e),resetPassword:e=>n("userManagement","resetPassword","mutation",e),setUserScopes:e=>n("userManagement","setUserScopes","mutation",e),validateCredentials:e=>n("userManagement","validateCredentials","mutation",e),listApiKeys:e=>n("userManagement","listApiKeys","query",e),createApiKey:e=>n("userManagement","createApiKey","mutation",e),revokeApiKey:e=>n("userManagement","revokeApiKey","mutation",e),validateApiKey:e=>n("userManagement","validateApiKey","mutation",e),createScopedToken:e=>n("userManagement","createScopedToken","mutation",e),revokeScopedToken:e=>n("userManagement","revokeScopedToken","mutation",e),validateScopedToken:e=>n("userManagement","validateScopedToken","query",e),listScopedTokens:e=>n("userManagement","listScopedTokens","query",e),setupTotp:e=>n("userManagement","setupTotp","mutation",e),confirmTotp:e=>n("userManagement","confirmTotp","mutation",e),disableTotp:e=>n("userManagement","disableTotp","mutation",e),getTotpStatus:e=>n("userManagement","getTotpStatus","query",e),verifyTotp:e=>n("userManagement","verifyTotp","mutation",e),oauthIssueCode:e=>n("userManagement","oauthIssueCode","mutation",e),oauthExchangeCode:e=>n("userManagement","oauthExchangeCode","mutation",e),oauthRefresh:e=>n("userManagement","oauthRefresh","mutation",e),oauthVerifyAccessToken:e=>n("userManagement","oauthVerifyAccessToken","query",e),listOauthSessions:e=>n("userManagement","listOauthSessions","query",e),revokeOauthSession:e=>n("userManagement","revokeOauthSession","mutation",e)}}}var Zk=new Set(["classes","classesExclude"]),Jk=new Set(["sensorKinds"]);function Yk(e){return{value:e.kind,label:e.label}}function Xk(e){const t=[],n=new Map,a=(e,a)=>{const r=n.get(e);if(void 0!==r)return r;const o={fallbackLabel:a,options:[]};return n.set(e,o),t.push(e),o};for(const t of e){const e=t.parentKind??t.kind,n=a(e,null===t.parentKind?t.label:e);n.options.push(Yk(t)),null===t.parentKind&&(n.fallbackLabel=t.label)}return t.flatMap(e=>{const t=n.get(e);return void 0===t?[]:[{key:e,fallbackLabel:t.fallbackLabel,options:t.options}]})}function Qk(e){const t=[],n=new Map;for(const a of e){const e=a.parentKind??"other",r=n.get(e);void 0===r?(n.set(e,[Yk(a)]),t.push(e)):r.push(Yk(a))}return t.flatMap(e=>{const t=n.get(e);return void 0===t?[]:[{key:e,fallbackLabel:e,options:t}]})}function eI(e,t){if(!t)return null;if(Zk.has(e)){const e=Xk(t.videoClasses);return t.audioKinds.length>0&&e.push({key:"audio",fallbackLabel:"Audio",options:t.audioKinds.map(Yk)}),e.length>0?{groups:e}:null}if(Jk.has(e)){const e=Qk(t.labels);return e.length>0?{groups:e}:null}return null}function tI(e){const t=new Set;for(const n of e.groups)for(const e of n.options)t.add(e.value);return t}var nI=["devices","classes"],aI=new Set(nI);function rI(e){return aI.has(e)}function oI(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/(\*\*|__)(.*?)\1/g,"$2").replace(/(\*|_)(.*?)\1/g,"$2").replace(/`([^`]*)`/g,"$1").replace(/^\s{0,3}#{1,6}\s*/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}[-*+]\s+/gm,"").replace(/^\s{0,3}\d+\.\s+/gm,"").trim()}var iI=[[/&nbsp;/g," "],[/&amp;/g,"&"],[/&lt;/g,"<"],[/&gt;/g,">"],[/&quot;/g,"\""],[/&#39;/g,"'"]];function cI(e){let t=e.replace(/<\s*br\s*\/?\s*>/gi,"\n").replace(/<\s*\/\s*(p|div|li|h[1-6])\s*>/gi,"\n").replace(/<[^>]+>/g,"");for(const[e,n]of iI)t=t.replace(e,n);return t.replace(/\n{3,}/g,"\n\n").trim()}var sI=[[/&/g,"&amp;"],[/</g,"&lt;"],[/>/g,"&gt;"],[/"/g,"&quot;"],[/'/g,"&#39;"]];function dI(e){let t=e;for(const[e,n]of sI)t=t.replace(e,n);return t}function lI(e){return dI(e).replace(/\n/g,"<br>")}function uI(e){return dI(e).replace(/(\*\*|__)(.*?)\1/g,"<b>$2</b>").replace(/(\*|_)(.*?)\1/g,"<i>$2</i>").replace(/`([^`]*)`/g,"<code>$1</code>").replace(/\[([^\]]*)\]\(([^)]*)\)/g,"<a href=\"$2\">$1</a>").replace(/\n/g,"<br>")}var mI={text:["text","markdown","html"],markdown:["markdown","html","text"],html:["html","text","markdown"]};function pI(e,t){for(const n of mI[e]??mI.text)if(t.includes(n))return n;return t[0]??"text"}function bI(e,t,n){if(t===n)return e;if("text"===n){if("markdown"===t)return oI(e);if("html"===t)return cI(e)}if("html"===n){if("text"===t)return lI(e);if("markdown"===t)return uI(e)}if("markdown"===n){if("text"===t)return e;if("html"===t)return cI(e)}return e}function gI(e){return Object.assign({id:e.id,ordinal:e.ordinal},e.flags?{flags:e.flags}:{},e.requires?{requires:e.requires}:{})}function zI(e,t){if(0===e.length)return null;if(void 0!==t.level){const n=e.find(e=>e.id===t.level);if(n)return gI(n)}const n=e.filter(e=>null!==e.ordinal);if(0===n.length)return gI(e[0]);const a=t.priority;return gI([...n].sort((e,t)=>{const n=Math.abs((e.ordinal??0)-a),r=Math.abs((t.ordinal??0)-a);return n!==r?n-r:(t.ordinal??0)-(e.ordinal??0)})[0])}function yI(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return[e];const n=[];for(let a=0;a<e.length;a+=t)n.push(e.slice(a,a+t));return n}function fI(e,t){const n=[],a=t.format,r=pI(a,e.format);r!==a&&n.push("format");const o=bI(t.body,a,r),i=zI(e.levels,t),s=t.attachments??[],l=[];for(const t of s){if(!e.attachments.mediaTypes.includes(t.mediaType)){n.push(`attachment:${t.mediaType}`);continue}if("url"===e.attachments.mode&&void 0===t.url){n.push("attachment:noUrl");continue}if(void 0!==t.bytes&&void 0!==e.attachments.maxBytes&&t.bytes.length>e.attachments.maxBytes){n.push("attachment:maxBytes");continue}if(l.length>=e.attachments.max){n.push("attachment:max");continue}const a="bytes"===e.attachments.mode&&void 0===t.bytes&&void 0!==t.url;l.push(Object.assign({mediaType:t.mediaType},void 0!==t.url?{url:t.url}:{},void 0!==t.bytes?{bytes:t.bytes}:{},void 0!==t.mime?{mime:t.mime}:{},void 0!==t.name?{name:t.name}:{},{needsFetch:a}))}const u=t.actions??[],m=u.slice(0,Math.max(0,e.actions));u.length>m.length&&n.push("actions");const p=!0===e.actionIcons;!p&&m.some(e=>void 0!==e.icon)&&n.push("actionIcons");const b=p?m:m.map(e=>(0,d.default)(e,c));let g=null;void 0!==t.clickUrl&&(e.clickUrl?g=t.clickUrl:n.push("clickUrl"));let z=null;void 0!==t.sound&&(e.sound?z=t.sound:n.push("sound"));let y=null;void 0!==t.ttl&&(e.ttl?y=t.ttl:n.push("ttl"));const f=t.tag??null,v=yI(o,e.bodyMaxLen),h=v.length>1,S={level:i?.id??"",format:r,attachmentsSent:l.length,actionsSent:b.length,truncated:h,dropped:n};return Object.assign({body:v[0]??""},void 0!==t.title?{title:t.title}:{},{format:r,level:i,attachments:l,actions:b,clickUrl:g,sound:z,ttl:y,tag:f,bodyParts:v,renderedAs:S})}var vI={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function hI(e,t){const n=new Date(e);if(void 0!==t)try{const e=new Intl.DateTimeFormat("en-US",{timeZone:t,weekday:"short",hour:"numeric",minute:"numeric",hourCycle:"h23"}).formatToParts(n);let a,r,o;for(const t of e)"weekday"===t.type?a=t.value:"hour"===t.type?r=Number(t.value):"minute"===t.type&&(o=Number(t.value));const i=void 0!==a?vI[a]:void 0;if(void 0!==i&&void 0!==r&&void 0!==o)return{day:i,minute:60*r+o}}catch{}return{day:n.getDay(),minute:60*n.getHours()+n.getMinutes()}}function SI(e,t){if(void 0===e)return!0;const{day:n,minute:a}=hI(t,e.timezone),r=(n+6)%7;let o=!1;for(const t of e.windows)if(t.startMinute<=t.endMinute){if(t.days.includes(n)&&a>=t.startMinute&&a<t.endMinute){o=!0;break}}else if(t.days.includes(n)&&a>=t.startMinute||t.days.includes(r)&&a<t.endMinute){o=!0;break}return!0===e.invert?!o:o}var jI=z.z.object({title:z.z.string().max(500).optional(),body:z.z.string().max(2e3).optional()}),kI=z.z.string().min(1).max(200),II=z.z.array(z.z.number()).min(1),AI=z.z.number().int().min(2).max(3600),PI=z.z.number().int().min(1).max(60),wI=z.z.array(Wd).min(1),OI=z.z.number().int().min(1).max(5),CI=z.z.object({name:kI,enabled:z.z.boolean().default(!0),deviceIds:II,schedule:Rd,cadenceSec:AI.default(15),framerate:PI.default(10),targets:wI,template:jI.optional(),priority:OI.default(3)}),NI=z.z.object({name:kI.optional(),enabled:z.z.boolean().optional(),deviceIds:II.optional(),schedule:Rd.optional(),cadenceSec:AI.optional(),framerate:PI.optional(),targets:wI.optional(),template:jI.nullable().optional(),priority:OI.optional()}),xI=CI.extend({id:z.z.string(),ownerUserId:z.z.string().optional(),lastGeneratedAt:z.z.number().optional(),createdBy:z.z.string(),createdAt:z.z.number(),updatedAt:z.z.number()}),MI="detail-crop",EI="detailCropPaddingRatio",TI="detailCropSquare",DI=z.z.object({paddingRatio:z.z.number().min(0).max(4),square:z.z.boolean()}),RI={paddingRatio:.15,square:!1};function BI(e){const t=DI.shape.paddingRatio.safeParse(e[EI]),n=DI.shape.square.safeParse(e[TI]);return{paddingRatio:t.success?t.data:RI.paddingRatio,square:n.success?n.data:RI.square}}function LI(e){return"object"==typeof e&&null!==e&&"key"in e}function FI(e){if(null===e)return RI;const t={};for(const n of e.sections)for(const e of n.fields)LI(e)&&"string"==typeof e.key&&("detailCropPaddingRatio"!==e.key&&"detailCropSquare"!==e.key||(t[e.key]=e.value));return BI(t)}var _I={min:0,max:1,step:.05,default:RI.paddingRatio};function qI(e,t,n,a){const r=a.paddingRatio*e.w,o=a.paddingRatio*e.h,i={x:e.x-r,y:e.y-o,w:e.w+2*r,h:e.h+2*o};return a.square?VI(UI(i,t,n),t,n):$I(i,t,n)}function UI(e,t,n){const a=Math.min(Math.max(e.w,e.h),Math.min(t,n));return{x:e.x+e.w/2-a/2,y:e.y+e.h/2-a/2,w:a,h:a}}function $I(e,t,n){const a=Math.max(0,e.x),r=Math.max(0,e.y),o=Math.min(t,e.x+e.w),i=Math.min(n,e.y+e.h);return{x:a,y:r,w:Math.max(0,o-a),h:Math.max(0,i-r)}}function VI(e,t,n){const a=Math.max(0,Math.min(e.w,t)),r=Math.max(0,Math.min(e.h,n));return{x:Math.min(Math.max(0,e.x),Math.max(0,t-a)),y:Math.min(Math.max(0,e.y),Math.max(0,n-r)),w:a,h:r}}var HI="native-lease",KI="nativeLeaseTtlMs",WI="nativeLeaseBudgetMb",GI="nativeLeaseActivityMs",ZI="nativeLeaseAdmission",JI=z.z.enum(["all","inferred"]),YI=z.z.object({ttlMs:z.z.number().int().min(250).max(1e4),budgetMb:z.z.number().int().min(0).max(4096),activityMs:z.z.number().int().min(0).max(12e4),admission:JI}),XI={ttlMs:1200,budgetMb:1024,activityMs:15e3,admission:"inferred"},QI={min:250,max:1e4,step:50,default:XI.ttlMs},eA={min:0,max:4096,step:64,default:XI.budgetMb},tA={min:0,max:12e4,step:1e3,default:XI.activityMs},nA={options:[{value:"all",label:"Every delivered frame"},{value:"inferred",label:"Only frames sent to inference"}],default:XI.admission};function aA(e,t){const n=YI.shape[e].safeParse(t);return n.success?n.data===XI[e]?null:n.data:null}function rA(e){const t=JI.safeParse(e);return t.success?t.data===XI.admission?null:t.data:null}function oA(e){const t=aA("ttlMs",e[KI]),n=aA("budgetMb",e[WI]),a=aA("activityMs",e[GI]),r=rA(e[ZI]);return Object.assign({},null===t?{}:{ttlMs:t},null===n?{}:{budgetMb:n},null===a?{}:{activityMs:a},null===r?{}:{admission:r})}function iA(e){return"object"==typeof e&&null!==e&&"key"in e}var cA=[KI,WI,GI,ZI];function sA(e){if(null===e)return{};const t={};for(const n of e.sections)for(const e of n.fields)iA(e)&&"string"==typeof e.key&&cA.includes(e.key)&&(t[e.key]=e.value);return oA(t)}var dA={camera:{type:"camera",label:"Camera",icon:"camera"}},lA={"\xb0C":{dimension:"temperature",factor:1,offset:0},"\xb0F":{dimension:"temperature",factor:.5555555555555556,offset:-17.77777777777778},K:{dimension:"temperature",factor:1,offset:-273.15},hPa:{dimension:"pressure",factor:1,offset:0},kPa:{dimension:"pressure",factor:10,offset:0},Pa:{dimension:"pressure",factor:.01,offset:0},mbar:{dimension:"pressure",factor:1,offset:0},bar:{dimension:"pressure",factor:1e3,offset:0},inHg:{dimension:"pressure",factor:33.8639,offset:0},mmHg:{dimension:"pressure",factor:1.33322,offset:0},psi:{dimension:"pressure",factor:68.9476,offset:0},"m/s":{dimension:"speed",factor:1,offset:0},"km/h":{dimension:"speed",factor:.2777777777777778,offset:0},mph:{dimension:"speed",factor:.44704,offset:0},kn:{dimension:"speed",factor:.514444,offset:0},"mm/h":{dimension:"precipitation-rate",factor:1,offset:0},"in/h":{dimension:"precipitation-rate",factor:25.4,offset:0},m:{dimension:"length",factor:1,offset:0},mm:{dimension:"length",factor:.001,offset:0},cm:{dimension:"length",factor:.01,offset:0},km:{dimension:"length",factor:1e3,offset:0},in:{dimension:"length",factor:.0254,offset:0},ft:{dimension:"length",factor:.3048,offset:0},mi:{dimension:"length",factor:1609.344,offset:0},lx:{dimension:"illuminance",factor:1,offset:0},"W/m\xb2":{dimension:"irradiance",factor:1,offset:0},W:{dimension:"power",factor:1,offset:0},kW:{dimension:"power",factor:1e3,offset:0},VA:{dimension:"apparent-power",factor:1,offset:0},Wh:{dimension:"energy",factor:1,offset:0},kWh:{dimension:"energy",factor:1e3,offset:0},MWh:{dimension:"energy",factor:1e6,offset:0},V:{dimension:"voltage",factor:1,offset:0},mV:{dimension:"voltage",factor:.001,offset:0},A:{dimension:"current",factor:1,offset:0},mA:{dimension:"current",factor:.001,offset:0},ppm:{dimension:"concentration-volume",factor:1,offset:0},ppb:{dimension:"concentration-volume",factor:.001,offset:0},"\xb5g/m\xb3":{dimension:"concentration-mass",factor:1,offset:0},"mg/m\xb3":{dimension:"concentration-mass",factor:1e3,offset:0},kg:{dimension:"mass",factor:1,offset:0},g:{dimension:"mass",factor:.001,offset:0},lb:{dimension:"mass",factor:.453592,offset:0},oz:{dimension:"mass",factor:.0283495,offset:0},"%":{dimension:"percentage",factor:1,offset:0}},uA=class extends Error{constructor(e,t,n){super(`[units] cannot convert '${e}' \u2192 '${t}': ${n}`),this.name="UnitConversionError",this.from=e,this.to=t,this.reason=n}};function mA(e){return Object.hasOwn(lA,e)?lA[e]:void 0}function pA(e){return mA(e)?.dimension}function bA(e,t){return e*t.factor+t.offset}function gA(e,t){return(e-t.offset)/t.factor}function zA(e,t,n){if(t===n)return e;const a=mA(t);if(!a)throw new uA(t,n,"unknown-from");const r=mA(n);if(!r)throw new uA(t,n,"unknown-to");if(a.dimension!==r.dimension)throw new uA(t,n,"cross-dimension");return gA(bA(e,a),r)}function yA(e,t,n){if(t===n)return e;const a=mA(t);if(!a)return;const r=mA(n);return r&&a.dimension===r.dimension?gA(bA(e,a),r):void 0}function fA(e,t){if(e===t)return!0;const n=pA(e);return void 0!==n&&n===pA(t)}function vA(e){const t=[];for(const[n,a]of Object.entries(lA))a.dimension===e&&t.push(n);return t}function hA(e,t){const n=e.length,a=t.length;if(0===n)return a;if(0===a)return n;const r=Array.from({length:a+1},(e,t)=>t),o=Array.from({length:a+1},()=>0);for(let i=1;i<=n;i++){o[0]=i;let n=r[0]??0;for(let c=1;c<=a;c++){const a=r[c]??0,s=o[c-1]??0,d=e.charCodeAt(i-1)===t.charCodeAt(c-1)?0:1;o[c]=Math.min(a+1,s+1,n+d),n=a}for(let e=0;e<=a;e++)r[e]=o[e]??0}return r[a]??0}function SA(e,t){const n=e.trim().toLowerCase(),a=t.trim().toLowerCase();return n===a?1:0===n.length||0===a.length?0:1-hA(n,a)/Math.max(n.length,a.length)}function jA(e,t,n=.8){let a=null,r=0;for(const o of t){const t=SA(e,o);t>=n&&t>r&&(a=o,r=t)}return a}var kA="addon:";function IA(e){return e.startsWith(kA)?e.slice(6):e}function AA(e,t){return IA(e)===IA(t)}function PA(e,t){if(e.length!==t.length)return 0;let n=0,a=0,r=0;for(let o=0;o<e.length;o++)n+=e[o]*t[o],a+=e[o]*e[o],r+=t[o]*t[o];const o=Math.sqrt(a)*Math.sqrt(r);return 0===o?0:n/o}var wA=class{cache={};listeners=new Set;loaded=!1;constructor(e,t){this.elementId=e,this.getBackend="function"==typeof t?t:()=>t}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 Object.assign({},this.cache)}get(e){const t=e.split(".");let n=this.cache;for(const e of t){if(null===n||"object"!=typeof n||Array.isArray(n))return;n=Reflect.get(n,e)}return n}async set(e,t){await this.ensureLoaded(),OA(this.cache,e,t),await this.persist(),this.notifyListeners()}async setAll(e){await this.ensureLoaded(),this.cache=Object.assign({},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(),0===Object.keys(this.cache).length&&(this.cache=Object.assign({},e),await this.persist())}async persist(){const e=this.getBackend();if(!e)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available \u2014 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 OA(e,t,n){const a=t.split(".");let r=e;for(let e=0;e<a.length-1;e++){const t=a[e],n=r[t];if(null===n||"object"!=typeof n||Array.isArray(n)){const e={};r[t]=e,r=e}else r=n}r[a[a.length-1]]=n}function CA(e,t){return`https://huggingface.co/${e}/resolve/main/${t}`}var NA=[/^user$/i,/^usr$/i,/^username$/i,/^password$/i,/^pwd$/i,/^pass$/i,/^passwd$/i,/^secret$/i,/^token$/i,/^auth$/i,/^auth[_-]?token$/i,/^bearer$/i,/^api[_-]?key$/i,/^access[_-]?token$/i,/^refresh[_-]?token$/i];function xA(e){return NA.some(t=>t.test(e))}function MA(e){try{const t=new URL(e);let n=!1;(t.username||t.password)&&(t.username="",t.password="",n=!0);for(const e of Array.from(t.searchParams.keys()))xA(e)&&(t.searchParams.set(e,"***"),n=!0);return n?t.toString():e}catch{return e}}function EA(e,t,n){const a=t*n;if(a<=0||0===e.length)return Array.from({length:Math.max(0,a)}).fill(!1);const r=Array.from({length:a}).fill(!1);for(let a=0;a<n;a++)for(let o=0;o<t;o++){const i=(o+.5)/t,c=(a+.5)/n;for(const n of e)if(i>=n.x&&i<=n.x+n.w&&c>=n.y&&c<=n.y+n.h){r[a*t+o]=!0;break}}return r}function TA(e,t,n,a){if(t<=0||n<=0||a<=0)return[];const r=t*n,o=Array.from({length:r}).fill(!1),i=Math.min(e.length,r);for(let t=0;t<i;t++)o[t]=!0===e[t];const c=[],s=[];for(let e=0;e<=n;e++){const a=[];if(e<n){let n=-1;for(let r=0;r<=t;r++){const i=r<t&&!0===o[e*t+r];i&&-1===n?n=r:i||-1===n||(a.push({colStart:n,colEnd:r-1}),n=-1)}}const r=new Set,i=[];for(const t of s){const n=a.findIndex(e=>e.colStart===t.colStart&&e.colEnd===t.colEnd);n>=0?(i.push(t),r.add(n)):c.push(Object.assign({},t,{rowEnd:e-1}))}for(let t=0;t<a.length;t++)if(!r.has(t)){const n=a[t];i.push({colStart:n.colStart,colEnd:n.colEnd,rowStart:e})}s.length=0;for(const e of i)s.push(e)}if(0===c.length)return[];const d=c.slice().toSorted((e,t)=>{const n=(e.colEnd-e.colStart+1)*(e.rowEnd-e.rowStart+1);return(t.colEnd-t.colStart+1)*(t.rowEnd-t.rowStart+1)-n});return(a>0?d.slice(0,a):d).map(e=>({x:e.colStart/t,y:e.rowStart/n,w:(e.colEnd-e.colStart+1)/t,h:(e.rowEnd-e.rowStart+1)/n}))}var DA=class{head=0;tail=0;count=0;constructor(e){this.capacity=e,this.items=Array.from({length:e})}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=[],n=Math.min(e,this.count);for(let e=0;e<n;e++)t.push(this.items[this.head]),this.items[this.head]=void 0,this.head=(this.head+1)%this.capacity;return this.count-=n,t}};async function RA(e,t){const n=performance.now();try{return{output:void 0!==t?await(a=e(),r=t,new Promise((e,t)=>{const n=setTimeout(()=>t(new Error(`Inference timeout after ${r}ms`)),r);a.then(t=>{clearTimeout(n),e(t)}).catch(e=>{clearTimeout(n),t(e)})})):await e(),durationMs:BA(performance.now()-n),ok:!0}}catch(e){return{output:void 0,durationMs:BA(performance.now()-n),ok:!1,error:(0,g.t)(e)}}var a,r}function BA(e){return Math.round(100*e)/100}var LA={cpu:"onnx",coreml:"onnx",cuda:"onnx",tensorrt:"onnx","onnx-py":"onnx",pytorch:"pt",openvino:"openvino"},FA={openvino:"openvino",edgetpu:"tflite",coreml:"coreml",onnx:"onnx",cpu:"onnx",cuda:"onnx"};function _A(e){return FA[e]??"onnx"}var qA={onnx:"onnx",coreml:"coreml",openvino:"openvino",tflite:"tflite",pytorch:"pt"},UA={coreml:"coreml_inference.py",pytorch:"pytorch_inference.py",openvino:"openvino_inference.py"};function $A(e,t){return"node"===e?"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pytorch","onnx-py":"onnx",cpu:"onnx"}[t]??t}function VA(e,t){return"node"===e?LA[t]??"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pt","onnx-py":"onnx",cpu:"onnx"}[t]??"onnx"}function HA(e,t){return e&&"auto"!==e?$A(e,t??"cpu"):"auto"}function KA(e){return LA[e]??"onnx"}function WA(e){return qA[e]}function GA(e){return UA[e]}function ZA(e){return"coreml"===e||"pytorch"===e||"openvino"===e}function JA(e){const t=e instanceof Float32Array?e:Float32Array.from(e),n=new Uint8Array(4*t.length),a=new DataView(n.buffer);for(let e=0;e<t.length;e+=1)a.setFloat32(4*e,t[e]??0,!0);return Buffer.from(n).toString("base64")}function YA(e){const t=Buffer.from(e,"base64");if(t.byteLength%4!=0)throw new Error(`decodeVectorBase64: ${t.byteLength} bytes is not a whole number of Float32 values`);const n=new Float32Array(t.byteLength/4);for(let e=0;e<n.length;e+=1)n[e]=t.readFloatLE(4*e);return n}function XA(e){return Math.floor(Buffer.from(e,"base64").byteLength/4)}function QA(e,t,n,a,r){if(0===n.length||0===t.length)return{passed:e,excluded:[]};const o=n.filter(e=>!1!==e.enabled),i=o.filter(e=>"include"===e.mode),c=o.filter(e=>"exclude"===e.mode),s=i.length>0,d=new Map(t.map(e=>[e.id,e])),l=[],u=[];for(const t of e){const e=a(t),n=r?.(t),o=i.some(t=>eP(t,e,n,d)),m=c.some(t=>eP(t,e,n,d));s?o&&!m?l.push(t):u.push(t):m?u.push(t):l.push(t)}return{passed:l,excluded:u}}function eP(e,t,n,a){if(e.classFilter&&e.classFilter.length>0&&void 0!==n&&!e.classFilter.includes(n))return!1;for(const n of e.zoneIds){const e=a.get(n);if(e&&tP(t,e.polygon))return!0}return!1}function tP(e,t){if(t.length<3)return!1;let n=!1;const{x:a,y:r}=e;for(let e=0,o=t.length-1;e<t.length;o=e++){const i=t[e],c=t[o];i.y>r!=c.y>r&&a<(c.x-i.x)*(r-i.y)/(c.y-i.y||Number.EPSILON)+i.x&&(n=!n)}return n}function nP(e,t,n){const a={};for(const r of Object.keys(n))a[r]=n=>e.addons.custom.mutate({addonId:t,action:r,input:n});return a}var aP={value:"auto",label:"Auto"},rP={value:"cpu",label:"CPU"},oP={value:"usb",label:"Coral USB"},iP=[{id:"onnx",supports:()=>!0,devices:e=>{if(!e)return[rP];const t=[rP];return"nvidia"===e.gpu?.type&&t.push({value:"cuda",label:"CUDA"}),"apple-ane"===e.npu?.type&&t.push({value:"coreml",label:"CoreML EP"}),t},defaultDevice:"cpu"},{id:"openvino",supports:e=>"x64"===e?.arch&&"darwin"!==e.platform&&"intel"===e.gpu?.type,devices:e=>{if(!e)return[aP];const t=[aP,rP];return"intel"===e.gpu?.type&&t.push({value:"gpu",label:"GPU"}),"intel-npu"===e.npu?.type&&t.push({value:"npu",label:"NPU"}),t},defaultDevice:"auto"},{id:"coreml",supports:e=>"darwin"===e?.platform,devices:e=>{const t={value:"all",label:"All (ANE + GPU + CPU)"};if(!e)return[t];const n=[t];return"apple-ane"===e.npu?.type&&n.push({value:"ane",label:"Apple Neural Engine"}),n.push({value:"gpu",label:"GPU"},rP),n},defaultDevice:"all"},{id:"edgetpu",supports:e=>null!=e?.coral,devices:()=>[oP],defaultDevice:"usb"}];function cP(e){const t=iP.find(t=>t.id===e);if(!t)throw new Error(`Unknown runtime: ${e}`);return t}function sP(e){return iP.filter(t=>t.supports(e)).map(e=>e.id)}function dP(e,t){return cP(e).devices(t)}function lP(e){return cP(e).defaultDevice}function uP(e){return"edgetpu"===e?"tflite":WA(e)}function mP(e){const t=[];if("darwin"===e.platform&&"arm64"===e.arch&&t.push({runtime:"python",backend:"coreml",format:"coreml",score:95,reason:"Apple Neural Engine (Python CoreML)",available:!0}),"nvidia"===e.gpu?.type&&t.push({runtime:"python",backend:"cuda",format:"onnx",score:85,reason:"NVIDIA CUDA (Python ONNX Runtime)",available:!0}),"intel"===e.gpu?.type){const n="intel-npu"===e.npu?.type?90:80;t.push({runtime:"python",backend:"openvino",format:"openvino",score:n,reason:"Intel OpenVINO",available:!0})}null!=e.coral&&t.push({runtime:"python",backend:"edgetpu",format:"tflite",score:70,reason:"Coral Edge TPU (Python LiteRT)",available:!0}),t.push({runtime:"python",backend:"cpu",format:"onnx",score:50,reason:"CPU (Python ONNX Runtime)",available:!0});const n=t.toSorted((e,t)=>t.score-e.score);return{scores:n,best:n.find(e=>e.available)??n[n.length-1]}}var pP={cuda:"gpu",edgetpu:"usb",coreml:"all",cpu:"cpu"};function bP(e,t,n,a){return{key:"cpu"===e?"cpu":`${e}:${t}`,backend:e,device:t,format:n,runtime:"python",score:a,available:!0}}function gP(e){const{scores:t}=mP(e),n=[];for(const a of t){if("openvino"===a.backend){"intel-npu"===e.npu?.type&&n.push(bP("openvino","npu",a.format,a.score+2)),"intel"===e.gpu?.type&&n.push(bP("openvino","gpu",a.format,a.score));continue}if("edgetpu"===a.backend){const t=Math.max(1,e.coral?.count??1);for(let e=0;e<t;e++){const t=0===e?"usb":`usb:${e}`;n.push(bP("edgetpu",t,a.format,a.score))}continue}const t=pP[a.backend]??a.backend;n.push(bP(a.backend,t,a.format,a.score))}return n}},1033,[120,410,1034,1035,1117,1119,1120,1036]);
2323
2323
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"t",{enumerable:!0,get:function(){return n}});var n=(function(n){return n.SystemBoot="system.boot",n.SystemAddonsReady="system.addons-ready",n.SystemRestarting="system.restarting",n.SystemRestartCompleted="system.restart-completed",n.SystemReadyState="system.ready-state",n.AddonStarted="addon.started",n.AddonStopped="addon.stopped",n.AddonRestarted="addon.restarted",n.AddonUpdated="addon.updated",n.AddonInstalled="addon.installed",n.AddonUninstalled="addon.uninstalled",n.AddonCrashed="addon.crashed",n.AddonError="addon.error",n.AddonPageReady="addon.page-ready",n.AddonWidgetReady="addon.widget-ready",n.AddonLoadFailed="addon.load-failed",n.AddonLoadRecovered="addon.load-recovered",n.AddonRetryScheduled="addon.retry-scheduled",n.SystemLivenessFailed="system.liveness-failed",n.SystemLivenessRecovered="system.liveness-recovered",n.AddonRetryAttempting="addon.retry-attempting",n.DeviceRegistered="device.registered",n.DeviceUnregistered="device.unregistered",n.DeviceEnabled="device.enabled",n.DeviceDisabled="device.disabled",n.DeviceSettingsUpdated="device.settings-updated",n.DeviceBindingsChanged="device.bindings-changed",n.DeviceMetaChanged="device.meta-changed",n.DeviceSourceInfoChanged="device.source-info-changed",n.DeviceStreamsRegistered="device.streams-registered",n.DeviceProvisioned="device.provisioned",n.DeviceReady="device.ready",n.IntegrationEnabled="integration.enabled",n.IntegrationDisabled="integration.disabled",n.IntegrationDeleted="integration.deleted",n.BrokerStatusChanged="broker.status-changed",n.BrokerMessage="broker.message",n.ProviderStarted="provider.started",n.ProviderStopped="provider.stopped",n.ProcessCrashed="process.crashed",n.ProcessRestartScheduled="process.restart_scheduled",n.ProcessRestarted="process.restarted",n.RecordingStarted="recording.started",n.RecordingStopped="recording.stopped",n.RecordingError="recording.error",n.RecordingHealthDegraded="recording.health.degraded",n.RecordingStorageCritical="recording.storage.critical",n.RecordingSegmentWritten="recording.segment.written",n.RecordingPolicyFallback="recording.policy.fallback",n.RecordingRetentionCompleted="recording.retention.completed",n.RecordingExportProgress="recording.export.progress",n.RecordingExportCompleted="recording.export.completed",n.RecordingExportFailed="recording.export.failed",n.DetectionEvent="detection.event",n.SessionTrackNew="session.track.new",n.SessionTrackExpired="session.track.expired",n.BenchmarkProgress="benchmark.progress",n.PlatformProbePhase="platform-probe.phase",n.PipelineProgress="pipeline.progress",n.PipelineTrace="pipeline.trace",n.PipelineInferenceResult="pipeline.inference-result",n.PipelineCameraAssigned="pipeline.camera-assigned",n.PipelineCameraUnassigned="pipeline.camera-unassigned",n.PipelineCameraUpdated="pipeline.camera-updated",n.PipelineIngestOwnerChanged="pipeline.ingest-owner-changed",n.PipelineRunnerLoadSnapshot="pipeline.runner-load-snapshot",n.PipelineCameraMetricsSnapshot="pipeline.camera-metrics-snapshot",n.StreamBrokerMetricsSnapshot="stream-broker.metrics-snapshot",n.StreamBrokerOnCamStreamDemand="stream-broker.onCamStreamDemand",n.StreamBrokerOnCamStreamIdle="stream-broker.onCamStreamIdle",n.StreamBrokerOnRequestStreamSourceRefresh="stream-broker.onRequestStreamSourceRefresh",n.StreamParamsChanged="stream-params.changed",n.DeviceStateChanged="device.state-changed",n.ZoneAnalyticsOccupancyChanged="zone-analytics.occupancy-changed",n.BatteryOnStatusChanged="battery.onStatusChanged",n.BatteryOnWakeStarted="battery.onWakeStarted",n.DoorbellOnPressed="doorbell.onPressed",n.EventEmitted="event-emitter.event",n.PipelineEngineMetricsSnapshot="pipeline.engine-metrics-snapshot",n.PipelineEngineProvisioning="pipeline.engine-provisioning",n.ClusterTopologySnapshot="cluster.topology-snapshot",n.MetricsNodeResourcesSnapshot="metrics.node-resources-snapshot",n.MetricsNodeProcessesSnapshot="metrics.node-processes-snapshot",n.CapabilityBindingChanged="capability.binding-changed",n.ModelDownloadProgress="model.download.progress",n.AgentRegistered="agent.registered",n.AgentUnregistered="agent.unregistered",n.AgentOnline="agent.online",n.AgentOffline="agent.offline",n.WorkerOnline="worker.online",n.WorkerOffline="worker.offline",n.AgentTaskDispatched="agent.task.dispatched",n.AgentTaskAssigned="agent.task.assigned",n.AgentTrpcConnected="agent.trpc.connected",n.AgentWsConnected="agent.ws.connected",n.AgentWsDisconnected="agent.ws.disconnected",n.AgentBackupActivated="agent.backup.activated",n.OrchestrationSettingsUpdated="orchestration.settings-updated",n.PipelineAgentHwaccelChanged="pipeline.agent-hwaccel-changed",n.MotionAnalysis="detection.motion-analysis",n.MotionZonesRaw="detection.motion-zones-raw",n.MotionOnMotionChanged="motion.on-motion-changed",n.DetectionResult="detection.result",n.DetectionRaw="detection.raw",n.DetectionCameraNative="detection.camera-native",n.PipelineAudioInferenceResult="pipeline.audio-inference-result",n.DetectionPhaseTransition="detection.phase-transition",n.ProviderMotion="provider.motion",n.ProviderDetection="provider.detection",n.EnrichmentEmbeddingStored="enrichment.embedding.stored",n.EnrichmentSceneStateChanged="enrichment.scene.state-changed",n.EnrichmentActivitySummary="enrichment.activity.summary",n.PipelineAnalyticsTrackLifecycle="pipeline-analytics.track-lifecycle",n.PipelineAnalyticsTrackStarted="pipeline-analytics.track-started",n.PipelineAnalyticsTrackEnded="pipeline-analytics.track-ended",n.PipelineAnalyticsDetectionEvent="pipeline-analytics.detection-event",n.PipelineAnalyticsFrameTracked="pipeline-analytics.frame-tracked",n.PipelineAnalyticsStationaryChanged="pipeline-analytics.stationary-changed",n.PipelineAnalyticsPackageDelivered="pipeline-analytics.package-delivered",n.PipelineAnalyticsPackagePickedUp="pipeline-analytics.package-picked-up",n.PipelineAnalyticsFaceGalleryChanged="pipeline-analytics.face-gallery-changed",n.PipelineAnalyticsPlateGalleryChanged="pipeline-analytics.plate-gallery-changed",n.FrigateLiveEvent="frigate.live-event",n.CameraStreamsProfileSlotsChanged="camera-streams.onProfileSlotsChanged",n.StreamOnline="stream.online",n.StreamOffline="stream.offline",n.NetworkTunnelStarted="network.tunnel.started",n.NetworkTunnelStopped="network.tunnel.stopped",n.LocalNetworkChanged="network.local.changed",n.MeshNetworkChanged="network.mesh.changed",n.BackupCompleted="backup.completed",n.BackupRestored="backup.restored",n.NotificationDispatched="notification.dispatched",n.NotificationFailed="notification.failed",n.DeviceUpdated="device.updated",n.DeviceOnline="device.online",n.DeviceOffline="device.offline",n.DeviceAwake="device.awake",n.DeviceSleeping="device.sleeping",n.RetentionCleanup="retention.cleanup",n.AddonsBulkUpdateProgress="addons.bulk-update-progress",n.AddonsJobProgress="addons.job-progress",n.AddonsJobLog="addons.job-log",n.AccessoriesChildVisibilityChanged="accessories.onChildVisibilityChanged",n.AccessoriesChanged="accessories.onAccessoriesChanged",n.ModelConvertProgress="model-convert.progress",n})({})},1034,[]);
2324
- __d(function(e,t,i,n,r,o,a){"use strict";Object.defineProperty(o,'__esModule',{value:!0}),Object.defineProperty(o,"$",{enumerable:!0,get:function(){return K}}),Object.defineProperty(o,"A",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(o,"B",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(o,"C",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(o,"Ct",{enumerable:!0,get:function(){return p}}),Object.defineProperty(o,"D",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(o,"E",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(o,"Et",{enumerable:!0,get:function(){return y}}),Object.defineProperty(o,"F",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(o,"G",{enumerable:!0,get:function(){return R}}),Object.defineProperty(o,"H",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(o,"I",{enumerable:!0,get:function(){return me}}),Object.defineProperty(o,"J",{enumerable:!0,get:function(){return x}}),Object.defineProperty(o,"K",{enumerable:!0,get:function(){return E}}),Object.defineProperty(o,"L",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(o,"M",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(o,"N",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(o,"O",{enumerable:!0,get:function(){return we}}),Object.defineProperty(o,"P",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(o,"Q",{enumerable:!0,get:function(){return W}}),Object.defineProperty(o,"R",{enumerable:!0,get:function(){return re}}),Object.defineProperty(o,"S",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(o,"St",{enumerable:!0,get:function(){return l}}),Object.defineProperty(o,"T",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(o,"Tt",{enumerable:!0,get:function(){return v}}),Object.defineProperty(o,"U",{enumerable:!0,get:function(){return te}}),Object.defineProperty(o,"V",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(o,"W",{enumerable:!0,get:function(){return N}}),Object.defineProperty(o,"X",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(o,"Y",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(o,"Z",{enumerable:!0,get:function(){return V}}),Object.defineProperty(o,"_",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(o,"_t",{enumerable:!0,get:function(){return w}}),Object.defineProperty(o,"a",{enumerable:!0,get:function(){return We}}),Object.defineProperty(o,"at",{enumerable:!0,get:function(){return X}}),Object.defineProperty(o,"b",{enumerable:!0,get:function(){return je}}),Object.defineProperty(o,"bt",{enumerable:!0,get:function(){return h}}),Object.defineProperty(o,"c",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(o,"ct",{enumerable:!0,get:function(){return J}}),Object.defineProperty(o,"d",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(o,"dt",{enumerable:!0,get:function(){return $}}),Object.defineProperty(o,"et",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(o,"f",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(o,"ft",{enumerable:!0,get:function(){return H}}),Object.defineProperty(o,"g",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(o,"gt",{enumerable:!0,get:function(){return I}}),Object.defineProperty(o,"h",{enumerable:!0,get:function(){return He}}),Object.defineProperty(o,"ht",{enumerable:!0,get:function(){return O}}),Object.defineProperty(o,"i",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(o,"it",{enumerable:!0,get:function(){return G}}),Object.defineProperty(o,"j",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(o,"k",{enumerable:!0,get:function(){return De}}),Object.defineProperty(o,"l",{enumerable:!0,get:function(){return et}}),Object.defineProperty(o,"lt",{enumerable:!0,get:function(){return B}}),Object.defineProperty(o,"m",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(o,"mt",{enumerable:!0,get:function(){return A}}),Object.defineProperty(o,"n",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(o,"nt",{enumerable:!0,get:function(){return F}}),Object.defineProperty(o,"o",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(o,"ot",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(o,"p",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(o,"pt",{enumerable:!0,get:function(){return j}}),Object.defineProperty(o,"q",{enumerable:!0,get:function(){return T}}),Object.defineProperty(o,"r",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(o,"rt",{enumerable:!0,get:function(){return U}}),Object.defineProperty(o,"s",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(o,"st",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(o,"t",{enumerable:!0,get:function(){return it}}),Object.defineProperty(o,"tt",{enumerable:!0,get:function(){return L}}),Object.defineProperty(o,"u",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(o,"ut",{enumerable:!0,get:function(){return _}}),Object.defineProperty(o,"v",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(o,"vt",{enumerable:!0,get:function(){return S}}),Object.defineProperty(o,"w",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(o,"wt",{enumerable:!0,get:function(){return m}}),Object.defineProperty(o,"x",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(o,"xt",{enumerable:!0,get:function(){return u}}),Object.defineProperty(o,"y",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(o,"yt",{enumerable:!0,get:function(){return z}}),Object.defineProperty(o,"z",{enumerable:!0,get:function(){return de}});var s=t(a[0]),c=t(a[1]),u=[{id:"overview",label:"Overview",icon:"layout-dashboard",order:-10},{id:"general",label:"General",icon:"settings",order:0},{id:"image",label:"Image",icon:"image",order:5},{id:"light",label:"Light",icon:"lightbulb",order:7},{id:"motion",label:"Motion",icon:"activity",order:10},{id:"audio",label:"Audio",icon:"mic",order:12},{id:"alarms",label:"Alarms",icon:"bell-ring",order:13},{id:"snapshot",label:"Snapshot",icon:"camera",order:15},{id:"osd",label:"OSD",icon:"type",order:18},{id:"stream-broker",label:"Stream Broker",icon:"radio",order:20},{id:"streaming",label:"Streaming",icon:"video",order:35},{id:"ptz",label:"PTZ",icon:"move",order:40},{id:"consumables",label:"Consumables",icon:"recycle",order:44},{id:"pipeline",label:"Detection Pipeline",icon:"cpu",order:39},{id:"detection-pipeline",label:"Detection pipeline",icon:"cpu",order:39},{id:"zones",label:"Detection",icon:"shapes",order:38},{id:"analytics",label:"Analytics",icon:"activity",order:37},{id:"live-stats",label:"Live Stats",icon:"activity",order:39},{id:"recording",label:"Recording",icon:"circle-dot",order:40},{id:"engine",label:"Inference Engine",icon:"zap",order:41},{id:"scheduler",label:"Scheduler",icon:"list-checks",order:42},{id:"decoder",label:"Decoder",icon:"film",order:43},{id:"notifications",label:"Notifications",icon:"bell",order:50},{id:"network",label:"Network",icon:"globe",order:60},{id:"storage",label:"Storage",icon:"hard-drive",order:70},{id:"advanced",label:"Advanced",icon:"wrench",order:100}],l=Object.fromEntries(u.map(e=>[e.id,e]));function d(e){return"separator"===e.type||"info"===e.type||"qr-code"===e.type||"button"===e.type||"object-array"===e.type||"widget"===e.type||"addon-action-button"===e.type||"device-action-button"===e.type}function p(e){const t=new Map;if("object"!=typeof e||null===e)return t;const i=e.sections;if(!Array.isArray(i))return t;for(const e of i)"object"==typeof e&&null!==e&&g(e.fields,t);return t}function g(e,t){if(Array.isArray(e))for(const i of e){if("object"!=typeof i||null===i)continue;const e=i.type;if("group"===e){g(i.fields,t);continue}if("sub-tabs"===e){const e=i.tabs;if(Array.isArray(e))for(const i of e)"object"==typeof i&&null!==i&&g(i.fields,t);continue}const n=i.key;"string"==typeof n&&0!==n.length&&("value"in i&&t.set(n,{value:i.value,default:i.default}))}}function m(e){const t=new Map;for(const[i,n]of p(e))t.set(i,n.value??n.default);return t}function y(e,t){const i=p(e).get(t);return void 0===i?void 0:i.value??i.default}function v(e,t){return Object.assign({},e.tabs?{tabs:[...e.tabs]}:{},{sections:e.sections.map(e=>Object.assign({},e,{fields:e.fields.map(e=>b(e,t))}))})}function b(e,t){if(d(e))return e;if("group"===e.type){const i=e.fields.map(e=>b(e,t));return Object.assign({},e,{fields:i})}if("sub-tabs"===e.type){const i=e.tabs.map(e=>Object.assign({},e,{fields:e.fields.map(e=>b(e,t))}));return Object.assign({},e,{tabs:i})}const i=e.key,n=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0,r=e.default;if(e.multiple){const t=Array.isArray(n)?n:null!=n?[n]:[],i=void 0!==e.multiple.itemDefault?e.multiple.itemDefault:void 0!==r?r:"string"===f(e)?"":null,o=Math.max(e.multiple.min,t.length),a=[];for(let e=0;e<o;e++)a.push(e<t.length?t[e]:i);return Object.assign({},e,{value:a})}const o=void 0!==n?n:void 0!==r?r:null,a="textarea"===e.type&&e.isJson&&null!==o&&"object"==typeof o?JSON.stringify(o,null,2):o;return Object.assign({},e,{value:a})}function f(e){switch(e.type){case"text":case"textarea":case"password":case"color":case"probe":case"timezone":case"datetime":return"string";case"number":case"slider":return"number";case"boolean":return"boolean";default:return"other"}}function h(e,t){return e.category===t}function S(e,t,i){return{id:"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2),timestamp:new Date,source:t,category:e,data:i}}function z(e,t){const i=t.ts??Date.now();e.emit(S("system.ready-state",{type:"capability",id:t.capName,nodeId:t.sourceNodeId},{capName:t.capName,scope:t.scope,state:t.state,generation:t.generation,sourceNodeId:t.sourceNodeId,ts:i}))}function w(e){const t=async()=>{const t=(await e.read())[e.key];if(void 0===t)return e.fallback;const i=e.schema.safeParse(t);return i.success?i.data:(e.onParseError?.(e.key,i.error),e.fallback)},i=async t=>{const i=e.schema.parse(t);await e.write({[e.key]:i})};return{get:t,set:i,update:async e=>{await i(e(await t()))}}}function P(e){if(null==e||""===e)return"hub";const t=e.indexOf("/");if(t<0)return e;const i=e.slice(0,t);return""===i?"hub":i}function C(e,t){return`${e}@${P(t)}`}function q(e,t,i){return e[C(t,i)]}function D(e,t,i){const n={};for(const[r,o]of Object.entries(e))n[t.has(r)?C(r,i):r]=o;return n}function k(e,t,i){const n={};for(const[i,r]of Object.entries(e))i.includes("@")||t.has(i)||(n[i]=r);for(const r of t){const t=q(e,r,i);void 0!==t&&(n[r]=t)}return n}var O=class{_ctx=null;_readinessGeneration="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14);_registeredCapNames=[];constructor(e){this.defaults=e,this._config=Object.assign({},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(s.t.AddonStarted);const i=I(t),n=i&&"providers"in i&&i.providers?i.providers:[];return this._registeredCapNames=n.map(e=>e.capability.name),i}postBrokerStart(){this.autoEmitReadiness&&this._registeredCapNames.length>0&&this.emitReadinessForProviders("ready")}async onHubReachable(){}async shutdown(){this.emitLifecycle(s.t.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(e){return null}deviceSettingsSchema(){return null}async getGlobalSettings(e,t,i){const n=this.globalSettingsSchema(t);if(!n)return{sections:[]};const r=await this.resolveGlobalStore(i,t);return v(n,e?Object.assign({},r,e):r)}async resolveGlobalStore(e,t){const i=await(this._ctx?.settings?.readAddonStore())??{},n=this.perNodeKeys(t),r=P(e??this._ctx?.kernel?.localNodeId);return n.size>0?k(i,n,r):i}async updateGlobalSettings(e,t){const i=this.perNodeKeys(),n=P(this._ctx?.kernel?.localNodeId),r=P(t??this._ctx?.kernel?.localNodeId),o=e,a=i.size>0?D(o,i,r):o;await(this._ctx?.settings?.writeAddonStore(a)),r===n&&(await this.resolveConfig(),await this.onConfigChanged(),this.emitLifecycle(s.t.AddonUpdated,{level:"global"}),this.maybeAutoRestart(e,this.globalSettingsSchema()))}_perNodeKeysCache=new Map;perNodeKeys(e){const t=e??"",i=this._perNodeKeysCache.get(t);if(i)return i;const n=this.globalSettingsSchema(e),r=new Set(n?n.sections.flatMap(e=>M(e.fields)):[]);return this._perNodeKeysCache.set(t,r),r}maybeAutoRestart(e,t){if(!t)return;const i=new Set;for(const e of t.sections)for(const t of e.fields)"separator"!==t.type&&"info"!==t.type&&t.requiresRestart&&i.add(t.key);if(0===i.size)return;if(!Object.keys(e).some(e=>i.has(e)))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(e=>i.has(e))}})}).catch(e=>{n.logger.error("addon auto-restart failed",{meta:{error:e instanceof Error?e.message:String(e)}})})})}async getDeviceSettings(e){const t=this.deviceSettingsSchema();return t?v(t,await(this._ctx?.settings?.readDeviceStore(e))??{}):{sections:[]}}async updateDeviceSettings(e,t){await(this._ctx?.settings?.writeDeviceStore(e,t))}_subscriptions=[];watchCapability(e,t){const i=new Set(Array.isArray(e)?e:[e]);this.subscribe({category:"system.ready-state"},e=>{const n=e.data;if("string"!=typeof n.capName)return;if(!i.has(n.capName))return;if("node"!==n.scope?.type)return;const r=n.scope.nodeId;if("string"!=typeof r||0===r.length)return;const o=n.capName;"down"===n.state?t.onDown?.(r,o):"ready"===n.state&&t.onReady?.(r,o)})}subscribe(e,t){const i=this.ctx.eventBus.subscribe(e,t);this._subscriptions.push(i)}emitLifecycle(e,t){try{const i=this._ctx;if(!i)return;i.eventBus.emit({id:`${i.id}-${Date.now()}`,timestamp:new Date,source:{type:"addon",id:i.id,nodeId:i.kernel.localNodeId??"hub"},category:e,data:Object.assign({addonId:i.id},t)})}catch{}}emitReadinessForProviders(e){const t=this._ctx;if(!t)return;if(0===this._registeredCapNames.length)return;const i=t.kernel?.localNodeId??"hub",n=i.includes("/")?i.split("/")[0]:i;for(const i of this._registeredCapNames)try{z(t.eventBus,{capName:i,scope:{type:"node",nodeId:n},state:e,generation:this._readinessGeneration,sourceNodeId:n})}catch{}}async resolveModelsDir(){const{join:e}=await t(a[3])(a[2],a.paths),{promises:i}=await t(a[3])(a[4],a.paths),n=e(this.ctx.nodeDataDir,"models");return await i.mkdir(n,{recursive:!0}),n}get capabilities(){return this.ctx.capabilities??null}async resolveConfig(){const e=await this.readAddonStoreWithRetry(),t=this.perNodeKeys(),i=P(this._ctx?.kernel?.localNodeId),n=Object.assign({},this.defaults);for(const r of Object.keys(this.defaults)){const o=t.has(r)?q(e,r,i):e[r];if(null!=o){typeof o===typeof this.defaults[r]&&(n[r]=o)}}this._config=n}state(e,t,i){return w({key:e,schema:t,fallback:i,read:()=>this.readAddonStoreWithRetry(),write:async e=>{await(this._ctx?.settings?.writeAddonStore(e))},onParseError:(e,t)=>this._ctx?.logger?.warn?.(`durable-state: stored "${e}" failed validation \u2014 using fallback`,{meta:{addonId:this._ctx?.id,key:e,error:String(t)}})})}deviceState(e,t,i,n){return w({key:t,schema:i,fallback:n,read:async()=>await(this._ctx?.settings?.readDeviceStore(e))??{},write:async t=>{await(this._ctx?.settings?.writeDeviceStore(e,t))},onParseError:(t,i)=>this._ctx?.logger?.warn?.(`durable-state: stored device ${e} "${t}" failed validation \u2014 using fallback`,{meta:{addonId:this._ctx?.id,deviceId:e,key:t,error:String(i)}})})}async readAddonStoreWithRetry(){const e=this._ctx?.settings;if(!e)return{};const t=[150,350,600,900];let i;for(let n=0;n<=t.length;n++)try{return await e.readAddonStore()??{}}catch(e){i=e;const r=e instanceof Error?e.message:String(e);if(!r.includes("SqliteSettingsBackend not initialized")&&!r.includes("provider not available"))throw e;if(n===t.length)break;await new Promise(e=>setTimeout(e,t[n]))}return this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries \u2014 using defaults",{meta:{error:i instanceof Error?i.message:String(i)}}),{}}};function M(e){const t=[];for(const i of e)if("group"!==i.type)if("sub-tabs"!==i.type)"perNode"in i&&!0===i.perNode&&t.push(i.key);else for(const e of i.tabs)t.push(...M(e.fields));else t.push(...M(i.fields));return t}function I(e){if(null!=e)return Array.isArray(e)?{providers:e}:e}var A=class{disposers=[];disposed=!1;constructor(e={}){this.onError=e.onError??((e,t)=>{console.error(`[DisposerChain] disposer #${t} threw`,e)})}add(e){if(this.disposed){try{const t=e();t&&"function"==typeof t.then&&t.catch(e=>this.onError(e,-1))}catch(e){this.onError(e,-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().toReversed();this.disposers=[];for(let t=0;t<e.length;t++){const i=e[t];try{const e=i();e&&"function"==typeof e.then&&await e}catch(i){this.onError(i,e.length-1-t)}}}},j="x-camstack-dataplane-secret",R=c.z.enum(["high","mid","low"]),N=["high","mid","low"],E=c.z.enum(["pull-rtsp","pull-rtmp","pull-http","pull-flv","pull-rfc4571","push-annexb","derived"]),T=c.z.object({width:c.z.number().int().positive(),height:c.z.number().int().positive()}),x=c.z.object({camStreamId:c.z.string().min(1),deviceId:c.z.number().int().nonnegative(),kind:E,url:c.z.string().optional(),codec:c.z.string().optional(),resolution:T.optional(),fps:c.z.number().positive().optional(),label:c.z.string().optional(),deviceFeatures:c.z.array(c.z.string()).optional(),autoEligible:c.z.boolean().optional(),metadata:c.z.record(c.z.string(),c.z.unknown()).optional()}),F=c.z.enum(["unassigned","idle","connecting","streaming","error"]),L=c.z.object({deviceId:c.z.number().int().nonnegative(),profile:R,brokerId:c.z.string(),sourceCamStreamId:c.z.string().nullable(),status:F,resolution:T.optional(),codec:c.z.string().optional(),preBufferSec:c.z.number().nonnegative().optional(),errorMessage:c.z.string().optional()});function B(e,t){return`${e}/${t}`}function _(e,t){return`${e}/${t}`}function $(e){const t=e.indexOf("/");if(t<=0)return null;const i=e.slice(0,t),n=e.slice(t+1);if(!/^\d+$/.test(i))return null;const r=R.safeParse(n);return r.success?{deviceId:Number(i),profile:r.data}:null}function H(e,t){const i=[...e].filter(e=>void 0===t||e.deviceId===t).toSorted((e,t)=>N.indexOf(e.profile)-N.indexOf(t.profile)),n=new Set,r=[];for(const e of i){const t=e.sourceCamStreamId;null!==t&&(n.has(t)||(n.add(t),r.push(e)))}return r}var U=c.z.object({id:c.z.string(),label:c.z.string(),protocol:c.z.enum(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:c.z.string().optional(),resolution:c.z.object({width:c.z.number(),height:c.z.number()}).readonly().optional(),fps:c.z.number().optional(),bitrate:c.z.number().optional(),codec:c.z.string().optional(),profileHint:R.optional()}),G=c.z.object({type:c.z.string(),url:c.z.string(),videoCodec:c.z.string().optional(),audioCodec:c.z.string().optional(),metadata:c.z.record(c.z.string(),c.z.unknown()).readonly().optional()}),V=c.z.object({type:c.z.enum(["video","audio"]),data:c.z.instanceof(Uint8Array),pts:c.z.number(),dts:c.z.number(),keyframe:c.z.boolean(),codec:c.z.string()}),Z=c.z.object({data:c.z.instanceof(Uint8Array),width:c.z.number(),height:c.z.number(),format:c.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),timestamp:c.z.number()}),K=c.z.object({shmId:c.z.string(),slot:c.z.number().int().nonnegative(),seq:c.z.number().int().nonnegative(),width:c.z.number().int().positive(),height:c.z.number().int().positive(),format:c.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),pts:c.z.number(),byteLength:c.z.number().int().nonnegative(),nodeId:c.z.string(),slotCount:c.z.number().int().positive()}),W=c.z.enum(["rgb","bgr","yuv420","gray"]),Q=c.z.object({brokerId:c.z.string(),format:W,maxFps:c.z.number().positive().optional(),tag:c.z.string().optional()}),J=c.z.object({subscriptionId:c.z.string(),maxFps:c.z.number().nonnegative()}),Y=c.z.object({data:c.z.instanceof(Uint8Array),sampleRate:c.z.number().int().positive(),channels:c.z.number().int().positive(),timestamp:c.z.number()}),X=c.z.object({brokerId:c.z.string(),tag:c.z.string().optional()}),ee=c.z.object({subscriptionId:c.z.string()}),te=c.z.enum(["idle","connecting","streaming","error","stopped"]),ie=c.z.object({status:te,inputFps:c.z.number(),decodeFps:c.z.number(),encodedSubscribers:c.z.number(),decodedSubscribers:c.z.number(),uptimeMs:c.z.number(),bitrateKbps:c.z.number(),idrIntervalMs:c.z.number(),codec:c.z.string().optional(),totalBytes:c.z.number(),packetCount:c.z.number(),rtspClients:c.z.number(),pipeClients:c.z.number(),preBufferSec:c.z.number(),preBufferMs:c.z.number(),preBufferPackets:c.z.number(),decoderNodeId:c.z.string().nullable(),audio:c.z.object({codec:c.z.string(),sampleRate:c.z.number(),channels:c.z.number(),supported:c.z.boolean()}).nullable().optional(),audioMuted:c.z.boolean().optional(),audioMutedDropped:c.z.number().optional()}),ne=c.z.object({profile:R,brokerId:c.z.string(),url:c.z.string(),mutedUrl:c.z.string(),enabled:c.z.boolean(),codec:c.z.string().optional(),resolution:T.optional()}),re=class extends Error{constructor(e,t,i){super(`Timed out waiting for ${e} (${ae(t)}) to become ready after ${i}ms`),this.name="ReadinessTimeoutError",this.capName=e,this.scope=t,this.waitedMs=i}};function oe(e,t){return`${e}|${ae(t)}`}function ae(e){switch(e.type){case"global":return"global";case"node":return`node:${e.nodeId}`;case"device":return`device:${e.deviceId}`}}function se(e){switch(e){case"starting":return 0;case"ready":return 1;case"down":return 2}}function ce(e,t){return e.type===t.type&&("global"===e.type||"global"===t.type||("node"===e.type&&"node"===t.type?e.nodeId===t.nodeId:"device"===e.type&&"device"===t.type&&e.deviceId===t.deviceId))}var ue=class{snapshot=new Map;subscriptions=new Set;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??le(),this.verboseDeviceScopeLogs=e.verboseDeviceScopeLogs??!1,this.unsubscribeBus=this.bus.subscribe({category:"system.ready-state"},e=>this.ingest(e.data)),this.unsubscribeAgentOffline=this.bus.subscribe({category:"agent.offline"},e=>this.synthesizeDownForNode(e.data.agentId)),"function"==typeof this.bus.getRecent)try{const e=this.bus.getRecent({category:"system.ready-state"});for(const t of e)this.ingest(t.data)}catch{}}close(){this.unsubscribeBus(),this.unsubscribeAgentOffline(),this.subscriptions.clear()}get(e,t){return this.snapshot.get(oe(e,t))??null}getSnapshotForTransport(){return Array.from(this.snapshot.values())}hydrate(e){const t=this.now();let i=0;for(const n of e){const e=oe(n.capName,n.scope),r=this.snapshot.get(e)??null;let o,a;if(null!==r){if(this.isLocallyAuthoritative(r))continue;const e=r.generation===n.generation;if(e&&se(n.state)<=se(r.state))continue;o=e||"ready"!==n.state?r.epoch:r.epoch+1,a=Math.max(0,t-r.lastChange)}else o=1,a=0;const s={capName:n.capName,scope:n.scope,state:n.state,generation:n.generation,epoch:o,lastChange:t,sourceNodeId:n.sourceNodeId};this.snapshot.set(e,s),i++,this.logPerRecord(n.scope,`readiness: ${n.capName} (${ae(n.scope)}) \u2192 ${n.state} (hydrated${null!==r?" update":""}, gen=${n.generation.slice(0,6)})`);const c={capName:n.capName,scope:n.scope,state:n.state,epoch:o,generation:n.generation,sourceNodeId:"hydrated",ts:t,durationInPrevState:a};for(const e of this.subscriptions)if(e.capName===n.capName&&ce(e.scope,n.scope))try{e.handler(c)}catch(e){this.logger?.warn(`readiness hydrate handler threw for ${n.capName}: ${e.message??String(e)}`)}}return i}logPerRecord(e,t){if(this.logger)if("device"!==e.type)this.logger.debug(t);else{if(!this.verboseDeviceScopeLogs)return;this.logger.debug(t,{tags:{deviceId:e.deviceId}})}}isLocallyAuthoritative(e){return"node"===e.scope.type?e.scope.nodeId===this.sourceNodeId:e.sourceNodeId===this.sourceNodeId}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,i={}){const n=i.timeoutMs??Number.POSITIVE_INFINITY,r=this.now();return"ready"===this.get(e,t)?.state?Promise.resolve():i.signal?.aborted?Promise.reject(i.signal.reason??new Error("aborted")):new Promise((o,a)=>{let s=!1;const c=this.onReadyState(e,t,e=>{"ready"===e.state&&(s||(s=!0,p(),o()))}),u=Number.isFinite(n)?setTimeout(()=>{s||(s=!0,p(),a(new re(e,t,this.now()-r)))},n):null,l=setInterval(()=>{s||this.logger?.warn(`readiness: still awaiting ${e} (${ae(t)}) after ${this.now()-r}ms`)},3e4);"function"==typeof l.unref&&l.unref();const d=()=>{s||(s=!0,p(),a(i.signal?.reason??new Error("aborted")))};function p(){c(),null!==u&&clearTimeout(u),clearInterval(l),i.signal?.removeEventListener("abort",d)}i.signal?.addEventListener("abort",d,{once:!0})})}onReadyState(e,t,i){const n={capName:e,scope:t,handler:i};this.subscriptions.add(n);const r=this.get(e,t);return null!==r&&queueMicrotask(()=>{this.subscriptions.has(n)&&i({capName:e,scope:t,state:r.state,epoch:r.epoch,generation:r.generation,sourceNodeId:this.sourceNodeId,ts:r.lastChange,durationInPrevState:0})}),()=>{this.subscriptions.delete(n)}}emitTransition(e,t,i){const n=this.now();this.bus.emit(S("system.ready-state",{type:"capability",id:e,nodeId:this.sourceNodeId},{capName:e,scope:t,state:i,generation:this.generation,sourceNodeId:this.sourceNodeId,ts:n}))}ingest(e){if("string"!=typeof e?.capName)return;if("ready"!==e.state&&"starting"!==e.state&&"down"!==e.state)return;if("string"!=typeof e.generation)return;if("global"!==e.scope?.type&&"node"!==e.scope?.type&&"device"!==e.scope?.type)return;const t=oe(e.capName,e.scope),i=this.snapshot.get(t)??null,n=this.now();let r;if(r=null===i?"ready"===e.state?1:0:i.generation!==e.generation&&"ready"===e.state?i.epoch+1:i.epoch,null!==i&&i.generation===e.generation&&i.state===e.state)return;const o=null===i?0:Math.max(0,n-i.lastChange),a={capName:e.capName,scope:e.scope,state:e.state,generation:e.generation,epoch:r,lastChange:n,sourceNodeId:e.sourceNodeId};this.snapshot.set(t,a);const s={capName:e.capName,scope:e.scope,state:e.state,epoch:r,generation:e.generation,sourceNodeId:e.sourceNodeId,ts:e.ts,durationInPrevState:o};this.logPerRecord(e.scope,`readiness: ${e.capName} (${ae(e.scope)}) \u2192 ${e.state} epoch=${r} gen=${e.generation.slice(0,6)} (prev ${o}ms)`);for(const t of this.subscriptions)if(t.capName===e.capName&&ce(t.scope,e.scope))try{t.handler(s)}catch(t){this.logger?.warn(`readiness handler threw for ${e.capName}: ${t.message??String(t)}`)}}synthesizeDownForNode(e){const t=this.now();for(const[i,n]of this.snapshot){if("down"===n.state)continue;if(!("node"===n.scope.type&&n.scope.nodeId===e||"device"===n.scope.type&&n.sourceNodeId===e))continue;const r=Math.max(0,t-n.lastChange),o=Object.assign({},n,{state:"down",lastChange:t});this.snapshot.set(i,o);const a={capName:n.capName,scope:n.scope,state:"down",epoch:n.epoch,generation:n.generation,sourceNodeId:this.sourceNodeId,ts:t,durationInPrevState:r};this.logPerRecord(n.scope,`readiness: ${n.capName} (${ae(n.scope)}) \u2192 down (synthesized from agent.offline ${e})`);for(const e of this.subscriptions)if(e.capName===n.capName&&ce(e.scope,n.scope))try{e.handler(a)}catch(e){this.logger?.warn(`readiness handler threw during agent.offline demux for ${n.capName}: ${e.message??String(e)}`)}}}};function le(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14)}function de(e,t){for(const{capName:i,scope:n}of t)e.emitDown(i,n)}var pe="__camstackNodePin";function ge(e){return{context:{[pe]:me(e)}}}function me(e){const t=e.split("/")[0];return void 0===t||0===t.length?e:t}function ye(e){if(null===e||"object"!=typeof e)return;const t=Reflect.get(e,pe);return"string"==typeof t?t:void 0}function ve(e){return e.mount?e.mount:!0===e.deviceNative?{kind:"device-native"}:"collection"===e.mode?{kind:"collection"}:{kind:"singleton"}}var be=c.z.object({id:c.z.string(),title:c.z.string(),description:c.z.string().optional(),style:c.z.enum(["card","accordion"]).optional(),defaultCollapsed:c.z.boolean().optional(),columns:c.z.union([c.z.literal(1),c.z.literal(2),c.z.literal(3),c.z.literal(4)]).optional(),tab:c.z.string().optional(),location:c.z.enum(["settings","top-tab"]).optional(),order:c.z.number().optional(),fields:c.z.array(c.z.any())}),fe=c.z.object({id:c.z.string(),label:c.z.string(),icon:c.z.string(),order:c.z.number().optional()}),he=c.z.object({tabs:c.z.array(fe).optional(),sections:c.z.array(be)}).nullable(),Se={getDeviceSettingsContribution:{input:c.z.object({deviceId:c.z.number()}),output:he,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:c.z.object({deviceId:c.z.number()}),output:he,kind:"query",auth:"protected"},applyDeviceSettingsPatch:{input:c.z.object({deviceId:c.z.number(),patch:c.z.record(c.z.string(),c.z.unknown())}),output:c.z.object({success:c.z.literal(!0)}),kind:"mutation",auth:"admin"}},ze={getStatus:{input:c.z.object({deviceId:c.z.number()}),output:c.z.unknown().nullable(),kind:"query",auth:"protected"}};function we(e){let t=e.methods;return e.exposesDeviceSettings&&(t=Object.assign({},Se,t)),e.status&&(t=Object.assign({},ze,t)),t}function Pe(e,t,i){return Object.assign({input:e,output:t,kind:i?.kind??"query",auth:i?.auth??"protected"},void 0!==i?.access?{access:i.access}:{},void 0!==i?.caller?{caller:i.caller}:{},{timeoutMs:i?.timeoutMs})}function Ce(e,t,i){return Object.assign({},Pe(e,t,i),{systemOnly:!0})}function qe(e){return{data:e}}function De(e){return void 0!==e?.deviceConfig}var ke=c.z.object({staticDir:c.z.string()}),Oe=c.z.object({version:c.z.string()}),Me={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Pe(c.z.void(),ke),getVersion:Pe(c.z.void(),Oe)}},Ie=(function(e){return e.Camera="camera",e.Hub="hub",e.Light="light",e.Siren="siren",e.Switch="switch",e.Sensor="sensor",e.Thermostat="thermostat",e.Climate="climate",e.Button="button",e.EventEmitter="event-emitter",e.Update="update",e.Generic="generic",e.Notifier="notifier",e.Script="script",e.Automation="automation",e.Lock="lock",e.Cover="cover",e.Valve="valve",e.Humidifier="humidifier",e.WaterHeater="water-heater",e.Fan="fan",e.MediaPlayer="media-player",e.AlarmPanel="alarm-panel",e.Control="control",e.Presence="presence",e.Weather="weather",e.Vacuum="vacuum",e.LawnMower="lawn-mower",e.Container="container",e.Image="image",e.PetFeeder="pet-feeder",e})({}),Ae=(function(e){return e.BatteryOperated="battery-operated",e.Rebootable="rebootable",e.Resyncable="resyncable",e.NativeSnapshot="native-snapshot",e.DoorbellButton="doorbell-button",e.TwoWayAudio="two-way-audio",e.PanTiltZoom="pan-tilt-zoom",e.PtzAutotrack="ptz-autotrack",e.MotionTrigger="motion-trigger",e.LightColorRgb="light-color-rgb",e.LightColorHsv="light-color-hsv",e.LightColorMired="light-color-mired",e.ClimateDualSetpoint="climate-dual-setpoint",e.ClimateHumidity="climate-humidity",e.ClimateFanMode="climate-fan-mode",e.ClimatePreset="climate-preset",e.ClimateSwingVertical="climate-swing-vertical",e.ClimateSwingHorizontal="climate-swing-horizontal",e.CoverPositionable="cover-positionable",e.CoverTilt="cover-tilt",e.ValvePositionable="valve-positionable",e.FanSpeed="fan-speed",e.FanPreset="fan-preset",e.FanDirection="fan-direction",e.FanOscillating="fan-oscillating",e.LockPinRequired="lock-pin-required",e.LockOpen="lock-open",e.MediaPlayerSeek="media-player-seek",e.MediaPlayerVolume="media-player-volume",e.MediaPlayerMute="media-player-mute",e.MediaPlayerShuffle="media-player-shuffle",e.MediaPlayerRepeat="media-player-repeat",e.MediaPlayerSelectSource="media-player-select-source",e.MediaPlayerPlayMedia="media-player-play-media",e.MediaPlayerNext="media-player-next",e.MediaPlayerPrevious="media-player-previous",e.MediaPlayerStop="media-player-stop",e.AlarmPinRequired="alarm-pin-required",e.PresenceGps="presence-gps",e.NotifierImage="notifier-image",e.NotifierPriority="notifier-priority",e.NotifierData="notifier-data",e.NotifierActions="notifier-actions",e.NotifierRecipients="notifier-recipients",e.ScriptVariables="script-variables",e.AutomationSkipCondition="automation-skip-condition",e.VacuumHasMap="vacuum-has-map",e.VacuumHasAi="vacuum-has-ai",e.MowerHasMap="mower-has-map",e.MowerHasTargetedMowing="mower-has-targeted-mowing",e})({}),je=(function(e){return e.ChargingDC="charging-dc",e.ChargingSolar="charging-solar",e.NotCharging="not-charging",e})({}),Re=(function(e){return e.Siren="siren",e.Floodlight="floodlight",e.Spotlight="spotlight",e.PirSensor="pir-sensor",e.Chime="chime",e.Autotrack="autotrack",e.Nightvision="nightvision",e.PrivacyMask="privacy-mask",e.Doorbell="doorbell",e.BinaryHelper="binary-helper",e.MotionSensor="motion-sensor",e.ContactSensor="contact-sensor",e.LeakSensor="leak-sensor",e.SmokeSensor="smoke-sensor",e.COSensor="co-sensor",e.GasSensor="gas-sensor",e.TamperSensor="tamper-sensor",e.VibrationSensor="vibration-sensor",e.ConnectivitySensor="connectivity-sensor",e.SoundSensor="sound-sensor",e.BinarySensor="binary-sensor",e.TemperatureSensor="temperature-sensor",e.HumiditySensor="humidity-sensor",e.AmbientLightSensor="ambient-light-sensor",e.PressureSensor="pressure-sensor",e.WindSensor="wind-sensor",e.RainSensor="rain-sensor",e.UvSensor="uv-sensor",e.SolarRadiationSensor="solar-radiation-sensor",e.SoilMoistureSensor="soil-moisture-sensor",e.PowerSensor="power-sensor",e.EnergySensor="energy-sensor",e.VoltageSensor="voltage-sensor",e.CurrentSensor="current-sensor",e.AirQualitySensor="air-quality-sensor",e.BatterySensor="battery-sensor",e.NumericSensor="numeric-sensor",e.EnumSensor="enum-sensor",e.DateTimeSensor="datetime-sensor",e.GenericSensor="generic-sensor",e.NumericControl="numeric-control",e.SelectControl="select-control",e.TextControl="text-control",e.DateTimeControl="datetime-control",e.MobilePushNotifier="mobile-push-notifier",e.MessagingNotifier="messaging-notifier",e.EmailNotifier="email-notifier",e.GenericNotifier="generic-notifier",e})({}),Ne=c.z.object({staticDir:c.z.string()}),Ee=c.z.object({version:c.z.string()}),Te={name:"viewer-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Pe(c.z.void(),Ne),getVersion:Pe(c.z.void(),Ee)}},xe=c.z.object({id:c.z.string(),label:c.z.string(),protocol:c.z.enum(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:c.z.string().optional(),resolution:c.z.object({width:c.z.number(),height:c.z.number()}).optional(),fps:c.z.number().optional(),bitrate:c.z.number().optional(),codec:c.z.string().optional(),profileHint:R.optional(),sdp:c.z.string().optional()}),Fe=c.z.object({key:c.z.string(),value:c.z.unknown()}),Le=c.z.object({source:c.z.string(),data:c.z.record(c.z.string(),c.z.unknown())}),Be={name:"device-ops",scope:"device",deviceNative:!0,mode:"singleton",methods:{getStreamSources:Pe(c.z.object({deviceId:c.z.number()}),c.z.array(xe)),getConfigEntries:Pe(c.z.object({deviceId:c.z.number()}),c.z.array(Fe)),setConfig:Pe(c.z.object({deviceId:c.z.number(),values:c.z.record(c.z.string(),c.z.unknown())}),c.z.void(),{kind:"mutation"}),runAction:Pe(c.z.object({deviceId:c.z.number(),action:c.z.string().min(1),input:c.z.unknown()}),c.z.unknown(),{kind:"mutation"}),removeDevice:Pe(c.z.object({deviceId:c.z.number()}),c.z.void(),{kind:"mutation"}),getSettingsSchema:Pe(c.z.object({deviceId:c.z.number()}),c.z.unknown().nullable()),getRawState:Pe(c.z.object({deviceId:c.z.number()}),Le.nullable(),{auth:"protected"})}},_e="device.state-changed";function $e(e){const t=new Map,i=new Map;let n=null;const r=(e,t)=>`${e}:${t}`;return{read:(e,i)=>t.get(r(e,i)),async refresh(n,o){const a=await e.deviceState.getCapSlice.query({deviceId:n,capName:o}),s=r(n,o);t.set(s,a??void 0);const c=i.get(s);if(c)for(const e of c)try{e(a??void 0)}catch{}},watch(o,a,s){const c=r(o,a);let u=i.get(c);return u||(u=new Set,i.set(c,u)),u.add(s),n||e.live?.onEvent&&(n=e.live.onEvent.subscribe({category:_e},{onData:e=>{const n=e.data;if(!n||"number"!=typeof n.deviceId||"string"!=typeof n.capName)return;const o=r(n.deviceId,n.capName);t.set(o,n.slice);const a=i.get(o);if(a)for(const e of a)try{e(n.slice)}catch{}}})),()=>{u.delete(s),0===u.size&&i.delete(c),n&&(i.size>0||(n.unsubscribe(),n=null))}},async write(t,i,n){await e.deviceState.setCapSlice.mutate({deviceId:t,capName:i,slice:n})}}}function He(e,t,i){const n=(e,t)=>`${e}:${t}`;return{read:(t,i)=>e.get(t)?.get(i),async refresh(){},watch(e,i,r){const o=n(e,i);let a=t.get(o);return a||(a=new Set,t.set(o,a)),a.add(r),()=>{a.delete(r),0===a.size&&t.delete(o)}},async write(e,t,n){if(!i)throw new Error("createMirrorSource: write requires an api reference \u2014 pass it as the third argument when constructing the source");await i.deviceState.setCapSlice.mutate({deviceId:e,capName:t,slice:n})}}}function Ue(e,t,i){const n="function"==typeof(r=e).read&&"function"==typeof r.watch?e:$e(e);var r;return{get value(){return n.read(t,i)},refresh:()=>n.refresh(t,i),subscribe(e){const r=n.watch(t,i,t=>{try{e(t)}catch{}});try{e(n.read(t,i))}catch{}return void 0===n.read(t,i)&&n.refresh(t,i).catch(()=>{}),r},async set(e){await n.write(t,i,e)},async patch(e){const r=Object.assign({},n.read(t,i),e);await n.write(t,i,r)}}}function Ge(e,t,i){const n=e,r=i?.stateSource??$e(e);function o(e,i){const n="object"==typeof e&&null!==e?e:{};return void 0!==i?Object.assign({},n,{deviceId:t.deviceId,nodeId:i}):Object.assign({},n,{deviceId:t.deviceId})}function a(e,t,i,r,o){const a=n[e]?.[t];if(!a)throw new Error(`DeviceProxy: api has no '${e}.${t}'`);const s=a;return"mutation"===i?s.mutate(r):"subscription"===i?s.subscribe(r,o):s.query(r)}function s(e,i,n,r,s,c){return a(i,n,r,o(s,t.entries.find(t=>t.capName===e)?.providerNodeId),c)}function c(e,t,i,n,r){return a(e,t,i,o(n,void 0),r)}return{deviceId:t.deviceId,binding:t,state:{airQualitySensor:Ue(r,t.deviceId,"air-quality-sensor"),alarmPanel:Ue(r,t.deviceId,"alarm-panel"),ambientLightSensor:Ue(r,t.deviceId,"ambient-light-sensor"),audioMetrics:Ue(r,t.deviceId,"audio-metrics"),automationControl:Ue(r,t.deviceId,"automation-control"),battery:Ue(r,t.deviceId,"battery"),binary:Ue(r,t.deviceId,"binary"),brightness:Ue(r,t.deviceId,"brightness"),cameraStreams:Ue(r,t.deviceId,"camera-streams"),carbonMonoxide:Ue(r,t.deviceId,"carbon-monoxide"),climateControl:Ue(r,t.deviceId,"climate-control"),color:Ue(r,t.deviceId,"color"),connectivity:Ue(r,t.deviceId,"connectivity"),consumables:Ue(r,t.deviceId,"consumables"),contact:Ue(r,t.deviceId,"contact"),control:Ue(r,t.deviceId,"control"),cover:Ue(r,t.deviceId,"cover"),dayNight:Ue(r,t.deviceId,"day-night"),deviceDiscovery:Ue(r,t.deviceId,"device-discovery"),deviceStatus:Ue(r,t.deviceId,"device-status"),doorbell:Ue(r,t.deviceId,"doorbell"),enumSensor:Ue(r,t.deviceId,"enum-sensor"),eventEmitter:Ue(r,t.deviceId,"event-emitter"),fanControl:Ue(r,t.deviceId,"fan-control"),featureProbe:Ue(r,t.deviceId,"feature-probe"),flood:Ue(r,t.deviceId,"flood"),gas:Ue(r,t.deviceId,"gas"),humidifier:Ue(r,t.deviceId,"humidifier"),humiditySensor:Ue(r,t.deviceId,"humidity-sensor"),image:Ue(r,t.deviceId,"image"),imageSettings:Ue(r,t.deviceId,"image-settings"),lawnMowerControl:Ue(r,t.deviceId,"lawn-mower-control"),lockControl:Ue(r,t.deviceId,"lock-control"),mediaPlayer:Ue(r,t.deviceId,"media-player"),motion:Ue(r,t.deviceId,"motion"),motionTrigger:Ue(r,t.deviceId,"motion-trigger"),motionZones:Ue(r,t.deviceId,"motion-zones"),nativeObjectDetection:Ue(r,t.deviceId,"native-object-detection"),notifier:Ue(r,t.deviceId,"notifier"),numericSensor:Ue(r,t.deviceId,"numeric-sensor"),petFeeder:Ue(r,t.deviceId,"pet-feeder"),powerMeter:Ue(r,t.deviceId,"power-meter"),presence:Ue(r,t.deviceId,"presence"),pressureSensor:Ue(r,t.deviceId,"pressure-sensor"),privacyMask:Ue(r,t.deviceId,"privacy-mask"),ptzAutotrack:Ue(r,t.deviceId,"ptz-autotrack"),sceneMonitor:Ue(r,t.deviceId,"scene-monitor"),scriptRunner:Ue(r,t.deviceId,"script-runner"),smoke:Ue(r,t.deviceId,"smoke"),streamParams:Ue(r,t.deviceId,"stream-params"),switch:Ue(r,t.deviceId,"switch"),tamper:Ue(r,t.deviceId,"tamper"),temperatureSensor:Ue(r,t.deviceId,"temperature-sensor"),update:Ue(r,t.deviceId,"update"),vacuumControl:Ue(r,t.deviceId,"vacuum-control"),valve:Ue(r,t.deviceId,"valve"),vibration:Ue(r,t.deviceId,"vibration"),waterHeater:Ue(r,t.deviceId,"water-heater"),weather:Ue(r,t.deviceId,"weather"),zoneAnalytics:Ue(r,t.deviceId,"zone-analytics"),zoneRules:Ue(r,t.deviceId,"zone-rules"),zones:Ue(r,t.deviceId,"zones")},accessories:{setChildHidden:e=>s("accessories","accessories","setChildHidden","mutation",e),getStatus:e=>s("accessories","accessories","getStatus","query",e)},airQualitySensor:{getStatus:e=>s("air-quality-sensor","airQualitySensor","getStatus","query",e)},alarmPanel:{arm:e=>s("alarm-panel","alarmPanel","arm","mutation",e),disarm:e=>s("alarm-panel","alarmPanel","disarm","mutation",e),trigger:e=>s("alarm-panel","alarmPanel","trigger","mutation",e),getStatus:e=>s("alarm-panel","alarmPanel","getStatus","query",e)},ambientLightSensor:{getStatus:e=>s("ambient-light-sensor","ambientLightSensor","getStatus","query",e)},audioAnalysis:{resolveDeviceSettings:e=>s("audio-analysis","audioAnalysis","resolveDeviceSettings","query",e),getDeviceSettingsContribution:e=>s("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",e)},audioMetrics:{getCurrentSnapshot:e=>s("audio-metrics","audioMetrics","getCurrentSnapshot","query",e),getHistory:e=>s("audio-metrics","audioMetrics","getHistory","query",e)},automationControl:{enable:e=>s("automation-control","automationControl","enable","mutation",e),disable:e=>s("automation-control","automationControl","disable","mutation",e),trigger:e=>s("automation-control","automationControl","trigger","mutation",e),getStatus:e=>s("automation-control","automationControl","getStatus","query",e)},battery:{wakeForStream:e=>s("battery","battery","wakeForStream","mutation",e),getStatus:e=>s("battery","battery","getStatus","query",e)},binary:{getStatus:e=>s("binary","binary","getStatus","query",e)},brightness:{setBrightness:e=>s("brightness","brightness","setBrightness","mutation",e),getStatus:e=>s("brightness","brightness","getStatus","query",e)},button:{press:e=>s("button","button","press","mutation",e)},cameraCredentials:{getCredentials:e=>s("camera-credentials","cameraCredentials","getCredentials","query",e),getStatus:e=>s("camera-credentials","cameraCredentials","getStatus","query",e)},cameraStreams:{getCameraStreams:e=>s("camera-streams","cameraStreams","getCameraStreams","query",e),getBrokerStreams:e=>s("camera-streams","cameraStreams","getBrokerStreams","query",e),getRtspEntries:e=>s("camera-streams","cameraStreams","getRtspEntries","query",e),getProfileRtspEntries:e=>s("camera-streams","cameraStreams","getProfileRtspEntries","query",e),pickStream:e=>s("camera-streams","cameraStreams","pickStream","query",e)},carbonMonoxide:{getStatus:e=>s("carbon-monoxide","carbonMonoxide","getStatus","query",e)},climateControl:{setMode:e=>s("climate-control","climateControl","setMode","mutation",e),setFanMode:e=>s("climate-control","climateControl","setFanMode","mutation",e),setPreset:e=>s("climate-control","climateControl","setPreset","mutation",e),setTarget:e=>s("climate-control","climateControl","setTarget","mutation",e),setTargetRange:e=>s("climate-control","climateControl","setTargetRange","mutation",e),setTargetHumidity:e=>s("climate-control","climateControl","setTargetHumidity","mutation",e),setSwingVertical:e=>s("climate-control","climateControl","setSwingVertical","mutation",e),setSwingHorizontal:e=>s("climate-control","climateControl","setSwingHorizontal","mutation",e),getStatus:e=>s("climate-control","climateControl","getStatus","query",e)},color:{setColor:e=>s("color","color","setColor","mutation",e),getStatus:e=>s("color","color","getStatus","query",e)},connectivity:{getStatus:e=>s("connectivity","connectivity","getStatus","query",e)},consumables:{reset:e=>s("consumables","consumables","reset","mutation",e),getStatus:e=>s("consumables","consumables","getStatus","query",e)},contact:{getStatus:e=>s("contact","contact","getStatus","query",e)},control:{setValue:e=>s("control","control","setValue","mutation",e),getStatus:e=>s("control","control","getStatus","query",e)},cover:{open:e=>s("cover","cover","open","mutation",e),close:e=>s("cover","cover","close","mutation",e),stop:e=>s("cover","cover","stop","mutation",e),setPosition:e=>s("cover","cover","setPosition","mutation",e),setTiltPosition:e=>s("cover","cover","setTiltPosition","mutation",e),getStatus:e=>s("cover","cover","getStatus","query",e)},dayNight:{getOptions:e=>s("day-night","dayNight","getOptions","query",e),setSettings:e=>s("day-night","dayNight","setSettings","mutation",e),getStatus:e=>s("day-night","dayNight","getStatus","query",e)},detectionPipeline:{getDeviceSettingsContribution:e=>s("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",e)},deviceDiscovery:{listDiscovered:e=>s("device-discovery","deviceDiscovery","listDiscovered","query",e),refreshDiscovery:e=>s("device-discovery","deviceDiscovery","refreshDiscovery","mutation",e),adoptDevice:e=>s("device-discovery","deviceDiscovery","adoptDevice","mutation",e),releaseDevice:e=>s("device-discovery","deviceDiscovery","releaseDevice","mutation",e),getStatus:e=>s("device-discovery","deviceDiscovery","getStatus","query",e)},deviceOps:{getStreamSources:e=>s("device-ops","deviceOps","getStreamSources","query",e),getConfigEntries:e=>s("device-ops","deviceOps","getConfigEntries","query",e),setConfig:e=>s("device-ops","deviceOps","setConfig","mutation",e),runAction:e=>s("device-ops","deviceOps","runAction","mutation",e),removeDevice:e=>s("device-ops","deviceOps","removeDevice","mutation",e),getSettingsSchema:e=>s("device-ops","deviceOps","getSettingsSchema","query",e),getRawState:e=>s("device-ops","deviceOps","getRawState","query",e)},deviceStatus:{getStatus:e=>s("device-status","deviceStatus","getStatus","query",e)},doorbell:{getStatus:e=>s("doorbell","doorbell","getStatus","query",e),getDeviceSettingsContribution:e=>s("doorbell","doorbell","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("doorbell","doorbell","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("doorbell","doorbell","applyDeviceSettingsPatch","mutation",e)},enumSensor:{getStatus:e=>s("enum-sensor","enumSensor","getStatus","query",e)},eventEmitter:{getStatus:e=>s("event-emitter","eventEmitter","getStatus","query",e)},events:{getEvents:e=>s("events","events","getEvents","query",e),getEventThumbnail:e=>s("events","events","getEventThumbnail","query",e),getEventClipUrl:e=>s("events","events","getEventClipUrl","query",e)},fanControl:{setPercentage:e=>s("fan-control","fanControl","setPercentage","mutation",e),setPreset:e=>s("fan-control","fanControl","setPreset","mutation",e),setDirection:e=>s("fan-control","fanControl","setDirection","mutation",e),setOscillating:e=>s("fan-control","fanControl","setOscillating","mutation",e),getStatus:e=>s("fan-control","fanControl","getStatus","query",e)},featureProbe:{getStatus:e=>s("feature-probe","featureProbe","getStatus","query",e)},flood:{getStatus:e=>s("flood","flood","getStatus","query",e)},gas:{getStatus:e=>s("gas","gas","getStatus","query",e)},humidifier:{setOn:e=>s("humidifier","humidifier","setOn","mutation",e),setTargetHumidity:e=>s("humidifier","humidifier","setTargetHumidity","mutation",e),setMode:e=>s("humidifier","humidifier","setMode","mutation",e),getStatus:e=>s("humidifier","humidifier","getStatus","query",e)},humiditySensor:{getStatus:e=>s("humidity-sensor","humiditySensor","getStatus","query",e)},image:{getStatus:e=>s("image","image","getStatus","query",e)},imageSettings:{getOptions:e=>s("image-settings","imageSettings","getOptions","query",e),setSettings:e=>s("image-settings","imageSettings","setSettings","mutation",e),getStatus:e=>s("image-settings","imageSettings","getStatus","query",e)},intercom:{startSession:e=>s("intercom","intercom","startSession","mutation",e),handleAnswer:e=>s("intercom","intercom","handleAnswer","mutation",e),stopSession:e=>s("intercom","intercom","stopSession","mutation",e),startTalkSession:e=>s("intercom","intercom","startTalkSession","mutation",e),pushTalkAudio:e=>s("intercom","intercom","pushTalkAudio","mutation",e),endTalkSession:e=>s("intercom","intercom","endTalkSession","mutation",e),getStatus:e=>s("intercom","intercom","getStatus","query",e)},lawnMowerControl:{startMowing:e=>s("lawn-mower-control","lawnMowerControl","startMowing","mutation",e),pause:e=>s("lawn-mower-control","lawnMowerControl","pause","mutation",e),dock:e=>s("lawn-mower-control","lawnMowerControl","dock","mutation",e),getStatus:e=>s("lawn-mower-control","lawnMowerControl","getStatus","query",e)},lockControl:{lock:e=>s("lock-control","lockControl","lock","mutation",e),unlock:e=>s("lock-control","lockControl","unlock","mutation",e),open:e=>s("lock-control","lockControl","open","mutation",e),getStatus:e=>s("lock-control","lockControl","getStatus","query",e)},mediaPlayer:{play:e=>s("media-player","mediaPlayer","play","mutation",e),pause:e=>s("media-player","mediaPlayer","pause","mutation",e),stop:e=>s("media-player","mediaPlayer","stop","mutation",e),next:e=>s("media-player","mediaPlayer","next","mutation",e),previous:e=>s("media-player","mediaPlayer","previous","mutation",e),seek:e=>s("media-player","mediaPlayer","seek","mutation",e),setVolume:e=>s("media-player","mediaPlayer","setVolume","mutation",e),setMute:e=>s("media-player","mediaPlayer","setMute","mutation",e),setShuffle:e=>s("media-player","mediaPlayer","setShuffle","mutation",e),setRepeat:e=>s("media-player","mediaPlayer","setRepeat","mutation",e),selectSource:e=>s("media-player","mediaPlayer","selectSource","mutation",e),playMedia:e=>s("media-player","mediaPlayer","playMedia","mutation",e),getStatus:e=>s("media-player","mediaPlayer","getStatus","query",e)},motion:{isDetected:e=>s("motion","motion","isDetected","query",e),getStatus:e=>s("motion","motion","getStatus","query",e)},motionDetection:{analyze:e=>s("motion-detection","motionDetection","analyze","mutation",e),removeCamera:e=>s("motion-detection","motionDetection","removeCamera","mutation",e),reset:e=>s("motion-detection","motionDetection","reset","mutation",e),getDeviceSettingsContribution:e=>s("motion-detection","motionDetection","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("motion-detection","motionDetection","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",e)},motionTrigger:{setMotionTrigger:e=>s("motion-trigger","motionTrigger","setMotionTrigger","mutation",e),getStatus:e=>s("motion-trigger","motionTrigger","getStatus","query",e)},motionZones:{getOptions:e=>s("motion-zones","motionZones","getOptions","query",e),setZone:e=>s("motion-zones","motionZones","setZone","mutation",e),getStatus:e=>s("motion-zones","motionZones","getStatus","query",e)},nativeObjectDetection:{setEnabled:e=>s("native-object-detection","nativeObjectDetection","setEnabled","mutation",e),getStatus:e=>s("native-object-detection","nativeObjectDetection","getStatus","query",e)},notificationRules:{listRules:e=>s("notification-rules","notificationRules","listRules","query",e),getRule:e=>s("notification-rules","notificationRules","getRule","query",e),createRule:e=>s("notification-rules","notificationRules","createRule","mutation",e),updateRule:e=>s("notification-rules","notificationRules","updateRule","mutation",e),deleteRule:e=>s("notification-rules","notificationRules","deleteRule","mutation",e),setRuleEnabled:e=>s("notification-rules","notificationRules","setRuleEnabled","mutation",e),listDeviceMutes:e=>s("notification-rules","notificationRules","listDeviceMutes","query",e),setDeviceMuted:e=>s("notification-rules","notificationRules","setDeviceMuted","mutation",e),testRule:e=>s("notification-rules","notificationRules","testRule","mutation",e),getConditionCatalog:e=>s("notification-rules","notificationRules","getConditionCatalog","query",e),getHistory:e=>s("notification-rules","notificationRules","getHistory","query",e),listSnoozes:e=>s("notification-rules","notificationRules","listSnoozes","query",e),createSnooze:e=>s("notification-rules","notificationRules","createSnooze","mutation",e),cancelSnooze:e=>s("notification-rules","notificationRules","cancelSnooze","mutation",e),getAlarmConfig:e=>s("notification-rules","notificationRules","getAlarmConfig","query",e),setAlarmConfig:e=>s("notification-rules","notificationRules","setAlarmConfig","mutation",e)},notifier:{send:e=>s("notifier","notifier","send","mutation",e),cancel:e=>s("notifier","notifier","cancel","mutation",e),getStatus:e=>s("notifier","notifier","getStatus","query",e)},numericSensor:{getStatus:e=>s("numeric-sensor","numericSensor","getStatus","query",e)},osd:{setOverlay:e=>s("osd","osd","setOverlay","mutation",e),getStatus:e=>s("osd","osd","getStatus","query",e)},petFeeder:{feed:e=>s("pet-feeder","petFeeder","feed","mutation",e),cancelFeed:e=>s("pet-feeder","petFeeder","cancelFeed","mutation",e),resetDesiccant:e=>s("pet-feeder","petFeeder","resetDesiccant","mutation",e),markFoodReplenished:e=>s("pet-feeder","petFeeder","markFoodReplenished","mutation",e),callPet:e=>s("pet-feeder","petFeeder","callPet","mutation",e),playSound:e=>s("pet-feeder","petFeeder","playSound","mutation",e),setChildLock:e=>s("pet-feeder","petFeeder","setChildLock","mutation",e),setIndicatorLight:e=>s("pet-feeder","petFeeder","setIndicatorLight","mutation",e),setFeedSound:e=>s("pet-feeder","petFeeder","setFeedSound","mutation",e),setVolume:e=>s("pet-feeder","petFeeder","setVolume","mutation",e),getStatus:e=>s("pet-feeder","petFeeder","getStatus","query",e)},pipelineAnalytics:{getActiveTracks:e=>s("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",e),getTrack:e=>s("pipeline-analytics","pipelineAnalytics","getTrack","query",e),listTracks:e=>s("pipeline-analytics","pipelineAnalytics","listTracks","query",e),listRecentTracks:e=>s("pipeline-analytics","pipelineAnalytics","listRecentTracks","query",e),clearTracks:e=>s("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",e),getMotionEvents:e=>s("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",e),getObjectEvents:e=>s("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",e),getAudioEvents:e=>s("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",e),listEventKinds:e=>s("pipeline-analytics","pipelineAnalytics","listEventKinds","query",e),listEventKindsBatch:e=>s("pipeline-analytics","pipelineAnalytics","listEventKindsBatch","query",e),getSensorEvents:e=>s("pipeline-analytics","pipelineAnalytics","getSensorEvents","query",e),getKeyEvents:e=>s("pipeline-analytics","pipelineAnalytics","getKeyEvents","query",e),getEventDensity:e=>s("pipeline-analytics","pipelineAnalytics","getEventDensity","query",e),pruneEventsBefore:e=>s("pipeline-analytics","pipelineAnalytics","pruneEventsBefore","mutation",e),pruneTracksBefore:e=>s("pipeline-analytics","pipelineAnalytics","pruneTracksBefore","mutation",e),wipeAllAnalytics:e=>s("pipeline-analytics","pipelineAnalytics","wipeAllAnalytics","mutation",e),deleteTracks:e=>s("pipeline-analytics","pipelineAnalytics","deleteTracks","mutation",e),setTrackFlags:e=>s("pipeline-analytics","pipelineAnalytics","setTrackFlags","mutation",e),getEventStoreFootprint:e=>s("pipeline-analytics","pipelineAnalytics","getEventStoreFootprint","query",e),pruneEvents:e=>s("pipeline-analytics","pipelineAnalytics","pruneEvents","mutation",e),deleteDeviceEvents:e=>s("pipeline-analytics","pipelineAnalytics","deleteDeviceEvents","mutation",e),relocateMedia:e=>s("pipeline-analytics","pipelineAnalytics","relocateMedia","mutation",e),getMediaRelocateStatus:e=>s("pipeline-analytics","pipelineAnalytics","getMediaRelocateStatus","query",e),cancelMediaRelocate:e=>s("pipeline-analytics","pipelineAnalytics","cancelMediaRelocate","mutation",e),listOpsLog:e=>s("pipeline-analytics","pipelineAnalytics","listOpsLog","query",e),getTrainingExportSummary:e=>s("pipeline-analytics","pipelineAnalytics","getTrainingExportSummary","query",e),getTrainingExportUrl:e=>s("pipeline-analytics","pipelineAnalytics","getTrainingExportUrl","query",e),listRetrainStaging:e=>s("pipeline-analytics","pipelineAnalytics","listRetrainStaging","query",e),listRetrainFrames:e=>s("pipeline-analytics","pipelineAnalytics","listRetrainFrames","query",e),selectRetrainFrames:e=>s("pipeline-analytics","pipelineAnalytics","selectRetrainFrames","mutation",e),deselectRetrainFrame:e=>s("pipeline-analytics","pipelineAnalytics","deselectRetrainFrame","mutation",e),getRetrainFrameImage:e=>s("pipeline-analytics","pipelineAnalytics","getRetrainFrameImage","query",e),proposeRetrainAnnotations:e=>s("pipeline-analytics","pipelineAnalytics","proposeRetrainAnnotations","mutation",e),listRetrainAnnotations:e=>s("pipeline-analytics","pipelineAnalytics","listRetrainAnnotations","query",e),saveRetrainAnnotations:e=>s("pipeline-analytics","pipelineAnalytics","saveRetrainAnnotations","mutation",e),completeRetrainTrack:e=>s("pipeline-analytics","pipelineAnalytics","completeRetrainTrack","mutation",e),restageRetrainTrack:e=>s("pipeline-analytics","pipelineAnalytics","restageRetrainTrack","mutation",e),getRetrainExportUrl:e=>s("pipeline-analytics","pipelineAnalytics","getRetrainExportUrl","query",e),getEventMedia:e=>s("pipeline-analytics","pipelineAnalytics","getEventMedia","query",e),getTrackMedia:e=>s("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",e),listTrackMedia:e=>s("pipeline-analytics","pipelineAnalytics","listTrackMedia","query",e),searchObjectEvents:e=>s("pipeline-analytics","pipelineAnalytics","searchObjectEvents","query",e),wipeObjectEmbeddings:e=>s("pipeline-analytics","pipelineAnalytics","wipeObjectEmbeddings","mutation",e),rebuildObjectEmbeddings:e=>s("pipeline-analytics","pipelineAnalytics","rebuildObjectEmbeddings","mutation",e),getObjectEmbeddingRebuildStatus:e=>s("pipeline-analytics","pipelineAnalytics","getObjectEmbeddingRebuildStatus","query",e),getDeviceSettingsContribution:e=>s("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",e)},powerMeter:{getStatus:e=>s("power-meter","powerMeter","getStatus","query",e)},presence:{getStatus:e=>s("presence","presence","getStatus","query",e)},pressureSensor:{getStatus:e=>s("pressure-sensor","pressureSensor","getStatus","query",e)},privacyMask:{getOptions:e=>s("privacy-mask","privacyMask","getOptions","query",e),setMask:e=>s("privacy-mask","privacyMask","setMask","mutation",e),setAudioEnabled:e=>s("privacy-mask","privacyMask","setAudioEnabled","mutation",e),getStatus:e=>s("privacy-mask","privacyMask","getStatus","query",e)},ptz:{move:e=>s("ptz","ptz","move","mutation",e),continuousMove:e=>s("ptz","ptz","continuousMove","mutation",e),stop:e=>s("ptz","ptz","stop","mutation",e),getPresets:e=>s("ptz","ptz","getPresets","query",e),goToPreset:e=>s("ptz","ptz","goToPreset","mutation",e),savePreset:e=>s("ptz","ptz","savePreset","mutation",e),deletePreset:e=>s("ptz","ptz","deletePreset","mutation",e),getOptions:e=>s("ptz","ptz","getOptions","query",e),goHome:e=>s("ptz","ptz","goHome","mutation",e),getPosition:e=>s("ptz","ptz","getPosition","query",e),setAutofocus:e=>s("ptz","ptz","setAutofocus","mutation",e),getStatus:e=>s("ptz","ptz","getStatus","query",e)},ptzAutotrack:{getStatus:e=>s("ptz-autotrack","ptzAutotrack","getStatus","query",e),setEnabled:e=>s("ptz-autotrack","ptzAutotrack","setEnabled","mutation",e),getSettings:e=>s("ptz-autotrack","ptzAutotrack","getSettings","query",e),setSettings:e=>s("ptz-autotrack","ptzAutotrack","setSettings","mutation",e)},reboot:{reboot:e=>s("reboot","reboot","reboot","mutation",e)},sceneMonitor:{listScenes:e=>s("scene-monitor","sceneMonitor","listScenes","query",e),createScene:e=>s("scene-monitor","sceneMonitor","createScene","mutation",e),updateScene:e=>s("scene-monitor","sceneMonitor","updateScene","mutation",e),deleteScene:e=>s("scene-monitor","sceneMonitor","deleteScene","mutation",e),captureReference:e=>s("scene-monitor","sceneMonitor","captureReference","mutation",e),deleteReference:e=>s("scene-monitor","sceneMonitor","deleteReference","mutation",e),recheckNow:e=>s("scene-monitor","sceneMonitor","recheckNow","mutation",e),getStatus:e=>s("scene-monitor","sceneMonitor","getStatus","query",e)},scriptRunner:{run:e=>s("script-runner","scriptRunner","run","mutation",e),stop:e=>s("script-runner","scriptRunner","stop","mutation",e),getStatus:e=>s("script-runner","scriptRunner","getStatus","query",e)},smoke:{getStatus:e=>s("smoke","smoke","getStatus","query",e)},snapshot:{getSnapshot:e=>s("snapshot","snapshot","getSnapshot","query",e),invalidateCache:e=>s("snapshot","snapshot","invalidateCache","mutation",e),getSnapshotOverview:e=>s("snapshot","snapshot","getSnapshotOverview","query",e),getSnapshotLinks:e=>s("snapshot","snapshot","getSnapshotLinks","query",e),getStatus:e=>s("snapshot","snapshot","getStatus","query",e),getDeviceSettingsContribution:e=>s("snapshot","snapshot","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("snapshot","snapshot","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("snapshot","snapshot","applyDeviceSettingsPatch","mutation",e)},streamCatalog:{getCatalog:e=>s("stream-catalog","streamCatalog","getCatalog","query",e)},streamParams:{getOptions:e=>s("stream-params","streamParams","getOptions","query",e),setProfile:e=>s("stream-params","streamParams","setProfile","mutation",e),getConfigSchema:e=>s("stream-params","streamParams","getConfigSchema","query",e),getStatus:e=>s("stream-params","streamParams","getStatus","query",e)},switch:{setState:e=>s("switch","switch","setState","mutation",e),getStatus:e=>s("switch","switch","getStatus","query",e)},tamper:{getStatus:e=>s("tamper","tamper","getStatus","query",e)},temperatureSensor:{getStatus:e=>s("temperature-sensor","temperatureSensor","getStatus","query",e)},update:{installUpdate:e=>s("update","update","installUpdate","mutation",e),getStatus:e=>s("update","update","getStatus","query",e)},vacuumControl:{start:e=>s("vacuum-control","vacuumControl","start","mutation",e),pause:e=>s("vacuum-control","vacuumControl","pause","mutation",e),stop:e=>s("vacuum-control","vacuumControl","stop","mutation",e),returnToBase:e=>s("vacuum-control","vacuumControl","returnToBase","mutation",e),locate:e=>s("vacuum-control","vacuumControl","locate","mutation",e),setFanSpeed:e=>s("vacuum-control","vacuumControl","setFanSpeed","mutation",e),getStatus:e=>s("vacuum-control","vacuumControl","getStatus","query",e)},valve:{open:e=>s("valve","valve","open","mutation",e),close:e=>s("valve","valve","close","mutation",e),stop:e=>s("valve","valve","stop","mutation",e),setPosition:e=>s("valve","valve","setPosition","mutation",e),getStatus:e=>s("valve","valve","getStatus","query",e)},vibration:{getStatus:e=>s("vibration","vibration","getStatus","query",e)},videoclips:{listClips:e=>s("videoclips","videoclips","listClips","query",e),getClipPlayback:e=>s("videoclips","videoclips","getClipPlayback","query",e)},waterHeater:{setTargetTemp:e=>s("water-heater","waterHeater","setTargetTemp","mutation",e),setOperationMode:e=>s("water-heater","waterHeater","setOperationMode","mutation",e),setAway:e=>s("water-heater","waterHeater","setAway","mutation",e),getStatus:e=>s("water-heater","waterHeater","getStatus","query",e)},weather:{getStatus:e=>s("weather","weather","getStatus","query",e)},webrtcSession:{listStreams:e=>s("webrtc-session","webrtcSession","listStreams","query",e),createSession:e=>s("webrtc-session","webrtcSession","createSession","mutation",e),handleOffer:e=>s("webrtc-session","webrtcSession","handleOffer","mutation",e),handleAnswer:e=>s("webrtc-session","webrtcSession","handleAnswer","mutation",e),addIceCandidate:e=>s("webrtc-session","webrtcSession","addIceCandidate","mutation",e),getIceCandidates:e=>s("webrtc-session","webrtcSession","getIceCandidates","query",e),closeSession:e=>s("webrtc-session","webrtcSession","closeSession","mutation",e),hasAdaptiveBitrate:e=>s("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",e),getSessionState:e=>s("webrtc-session","webrtcSession","getSessionState","query",e)},zoneAnalytics:{getCurrentSnapshot:e=>s("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",e),getZoneHistory:e=>s("zone-analytics","zoneAnalytics","getZoneHistory","query",e),getCameraHistory:e=>s("zone-analytics","zoneAnalytics","getCameraHistory","query",e),getUnzonedHistory:e=>s("zone-analytics","zoneAnalytics","getUnzonedHistory","query",e)},zoneRules:{listRules:e=>s("zone-rules","zoneRules","listRules","query",e),setRules:e=>s("zone-rules","zoneRules","setRules","mutation",e)},zones:{listZones:e=>s("zones","zones","listZones","query",e),addZone:e=>s("zones","zones","addZone","mutation",e),removeZone:e=>s("zones","zones","removeZone","mutation",e),updateZone:e=>s("zones","zones","updateZone","mutation",e)},addonSettings:{getDeviceSettings:e=>c("addonSettings","getDeviceSettings","query",e),updateDeviceSettings:e=>c("addonSettings","updateDeviceSettings","mutation",e)},cameraPipelineConfig:{getDeviceSettingsContribution:e=>c("cameraPipelineConfig","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("cameraPipelineConfig","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("cameraPipelineConfig","applyDeviceSettingsPatch","mutation",e)},deviceAdoption:{getStatus:e=>c("deviceAdoption","getStatus","query",e)},deviceExport:{getDeviceSettingsContribution:e=>c("deviceExport","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("deviceExport","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("deviceExport","applyDeviceSettingsPatch","mutation",e)},deviceManager:{loadConfig:e=>c("deviceManager","loadConfig","query",e),loadRuntimeState:e=>c("deviceManager","loadRuntimeState","query",e),loadMeta:e=>c("deviceManager","loadMeta","query",e),setName:e=>c("deviceManager","setName","mutation",e),setLocation:e=>c("deviceManager","setLocation","mutation",e),setType:e=>c("deviceManager","setType","mutation",e),setIntegrationId:e=>c("deviceManager","setIntegrationId","mutation",e),setLinkDeviceId:e=>c("deviceManager","setLinkDeviceId","mutation",e),setPrimaryChildEntityId:e=>c("deviceManager","setPrimaryChildEntityId","mutation",e),setChildLayout:e=>c("deviceManager","setChildLayout","mutation",e),setDisplay:e=>c("deviceManager","setDisplay","mutation",e),getWireableFields:e=>c("deviceManager","getWireableFields","query",e),setRole:e=>c("deviceManager","setRole","mutation",e),applyInitialMeta:e=>c("deviceManager","applyInitialMeta","mutation",e),setMetadata:e=>c("deviceManager","setMetadata","mutation",e),setDisabled:e=>c("deviceManager","setDisabled","mutation",e),getDevice:e=>c("deviceManager","getDevice","query",e),getLinkedDevices:e=>c("deviceManager","getLinkedDevices","query",e),getStreamSources:e=>c("deviceManager","getStreamSources","query",e),getConfigSchema:e=>c("deviceManager","getConfigSchema","query",e),getSettingsSchema:e=>c("deviceManager","getSettingsSchema","query",e),updateConfig:e=>c("deviceManager","updateConfig","mutation",e),enable:e=>c("deviceManager","enable","mutation",e),disable:e=>c("deviceManager","disable","mutation",e),remove:e=>c("deviceManager","remove","mutation",e),getStreamProfileMap:e=>c("deviceManager","getStreamProfileMap","query",e),setStreamProfileMap:e=>c("deviceManager","setStreamProfileMap","mutation",e),probeStreams:e=>c("deviceManager","probeStreams","mutation",e),getBindings:e=>c("deviceManager","getBindings","query",e),getAllBindings:e=>c("deviceManager","getAllBindings","query",e),setWrapperActive:e=>c("deviceManager","setWrapperActive","mutation",e),getDeviceSettingsAggregate:e=>c("deviceManager","getDeviceSettingsAggregate","query",e),getDeviceLiveInfoAggregate:e=>c("deviceManager","getDeviceLiveInfoAggregate","query",e),getDeviceAggregate:e=>c("deviceManager","getDeviceAggregate","query",e),runDeviceAction:e=>c("deviceManager","runDeviceAction","mutation",e),updateDeviceField:e=>c("deviceManager","updateDeviceField","mutation",e),updateDeviceFieldsBatch:e=>c("deviceManager","updateDeviceFieldsBatch","mutation",e),testField:e=>c("deviceManager","testField","mutation",e),getDeviceStatusAggregate:e=>c("deviceManager","getDeviceStatusAggregate","query",e),getDeviceSettingsContribution:e=>c("deviceManager","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("deviceManager","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("deviceManager","applyDeviceSettingsPatch","mutation",e)},deviceState:{getSnapshot:e=>c("deviceState","getSnapshot","query",e),getCapSlice:e=>c("deviceState","getCapSlice","query",e),setCapSlice:e=>c("deviceState","setCapSlice","mutation",e)},faceGallery:{getFaceByTrack:e=>c("faceGallery","getFaceByTrack","query",e)},networkQuality:{getDeviceStats:e=>c("networkQuality","getDeviceStats","query",e),reportClientStats:e=>c("networkQuality","reportClientStats","mutation",e)},osdManager:{getDeviceOsd:e=>c("osdManager","getDeviceOsd","query",e),getSourceCatalog:e=>c("osdManager","getSourceCatalog","query",e),setSlotBinding:e=>c("osdManager","setSlotBinding","mutation",e),clearSlotBinding:e=>c("osdManager","clearSlotBinding","mutation",e),previewSlot:e=>c("osdManager","previewSlot","mutation",e),renderDevice:e=>c("osdManager","renderDevice","mutation",e)},pipelineExecutor:{runPipeline:e=>c("pipelineExecutor","runPipeline","mutation",e),runPipelineBatch:e=>c("pipelineExecutor","runPipelineBatch","mutation",e)},pipelineOrchestrator:{assignPipeline:e=>c("pipelineOrchestrator","assignPipeline","mutation",e),unassignPipeline:e=>c("pipelineOrchestrator","unassignPipeline","mutation",e),setPipelineDevicePin:e=>c("pipelineOrchestrator","setPipelineDevicePin","mutation",e),getPipelineDevicePin:e=>c("pipelineOrchestrator","getPipelineDevicePin","query",e),getPipelineAssignment:e=>c("pipelineOrchestrator","getPipelineAssignment","query",e),getCameraMetrics:e=>c("pipelineOrchestrator","getCameraMetrics","query",e),assignAudio:e=>c("pipelineOrchestrator","assignAudio","mutation",e),unassignAudio:e=>c("pipelineOrchestrator","unassignAudio","mutation",e),getAudioAssignment:e=>c("pipelineOrchestrator","getAudioAssignment","query",e),getAudioAssignments:e=>c("pipelineOrchestrator","getAudioAssignments","query",e),getCameraSettings:e=>c("pipelineOrchestrator","getCameraSettings","query",e),setCameraStepToggle:e=>c("pipelineOrchestrator","setCameraStepToggle","mutation",e),getCameraStepOverrides:e=>c("pipelineOrchestrator","getCameraStepOverrides","query",e),setCameraStepOverride:e=>c("pipelineOrchestrator","setCameraStepOverride","mutation",e),setCameraPipelineForAgent:e=>c("pipelineOrchestrator","setCameraPipelineForAgent","mutation",e),resolvePipeline:e=>c("pipelineOrchestrator","resolvePipeline","query",e),getCameraSwitches:e=>c("pipelineOrchestrator","getCameraSwitches","query",e),setCameraSwitch:e=>c("pipelineOrchestrator","setCameraSwitch","mutation",e),getCameraStatus:e=>c("pipelineOrchestrator","getCameraStatus","query",e),getDeviceSettingsContribution:e=>c("pipelineOrchestrator","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("pipelineOrchestrator","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",e)},pipelineRunner:{detachCamera:e=>c("pipelineRunner","detachCamera","mutation",e),getCameraMetrics:e=>c("pipelineRunner","getCameraMetrics","query",e),runDetailSubtree:e=>c("pipelineRunner","runDetailSubtree","mutation",e)},plateGallery:{listPlates:e=>c("plateGallery","listPlates","query",e),getPlateByTrack:e=>c("plateGallery","getPlateByTrack","query",e)},recording:{getAvailability:e=>c("recording","getAvailability","query",e),getDaysWithRecordings:e=>c("recording","getDaysWithRecordings","query",e),getPlaybackManifest:e=>c("recording","getPlaybackManifest","query",e),getDeviceConfig:e=>c("recording","getDeviceConfig","query",e),locateSegment:e=>c("recording","locateSegment","query",e),readSegmentBytes:e=>c("recording","readSegmentBytes","query",e),readGopBytes:e=>c("recording","readGopBytes","query",e),setDeviceConfig:e=>c("recording","setDeviceConfig","mutation",e),rescanStorage:e=>c("recording","rescanStorage","mutation",e),pruneFootage:e=>c("recording","pruneFootage","mutation",e),deleteFootprint:e=>c("recording","deleteFootprint","mutation",e),renderGif:e=>c("recording","renderGif","mutation",e),renderClip:e=>c("recording","renderClip","mutation",e),getStatus:e=>c("recording","getStatus","query",e),getDeviceSettingsContribution:e=>c("recording","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("recording","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("recording","applyDeviceSettingsPatch","mutation",e)},recordingExport:{createExport:e=>c("recordingExport","createExport","mutation",e),listExports:e=>c("recordingExport","listExports","query",e)},streamBroker:{publishCameraStream:e=>c("streamBroker","publishCameraStream","mutation",e),retractCameraStream:e=>c("streamBroker","retractCameraStream","mutation",e),assignProfile:e=>c("streamBroker","assignProfile","mutation",e),unassignProfile:e=>c("streamBroker","unassignProfile","mutation",e),renderPreBufferClip:e=>c("streamBroker","renderPreBufferClip","mutation",e),produceEventMedia:e=>c("streamBroker","produceEventMedia","mutation",e),restartProfile:e=>c("streamBroker","restartProfile","mutation",e),getDeviceAudioMute:e=>c("streamBroker","getDeviceAudioMute","query",e),setDeviceAudioMute:e=>c("streamBroker","setDeviceAudioMute","mutation",e),getDeviceSettingsContribution:e=>c("streamBroker","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("streamBroker","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("streamBroker","applyDeviceSettingsPatch","mutation",e)}}}var Ve=new Set(["accessories","air-quality-sensor","alarm-panel","ambient-light-sensor","audio-analysis","audio-metrics","automation-control","battery","binary","brightness","button","camera-credentials","camera-pipeline-config","camera-streams","carbon-monoxide","climate-control","color","connectivity","consumables","contact","control","cover","day-night","detection-pipeline","device-discovery","device-ops","device-status","doorbell","enum-sensor","event-emitter","events","fan-control","feature-probe","flood","gas","humidifier","humidity-sensor","image","image-settings","intercom","lawn-mower-control","lock-control","media-player","motion","motion-detection","motion-trigger","motion-zones","native-object-detection","notifier","numeric-sensor","osd","pet-feeder","pipeline-analytics","power-meter","presence","pressure-sensor","privacy-mask","ptz","ptz-autotrack","reboot","scene-monitor","script-runner","smoke","snapshot","stream-catalog","stream-params","switch","tamper","temperature-sensor","update","vacuum-control","valve","vibration","videoclips","water-heater","weather","webrtc-session","zone-analytics","zone-rules","zones"]);function Ze(e){return Ve.has(e)}function Ke(e){return JSON.parse(e)}function We(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:Object.assign({},e)}function Qe(e){return Array.isArray(e)?e:[]}function Je(e,t=""){return"string"==typeof e?e:t}function Ye(e,t=0){return"number"==typeof e?e:t}function Xe(e,t=!1){return"boolean"==typeof e?e:t}function et(e){try{return We(Ke(e))}catch{return null}}function tt(e){try{const t=Ke(e);return Array.isArray(t)?t:null}catch{return null}}function it(e){return new Promise(t=>setTimeout(t,Math.max(0,e)))}function nt(e,t){return t.aborted?Promise.resolve():new Promise(i=>{const n=setTimeout(()=>{t.removeEventListener("abort",r),i()},Math.max(0,e)),r=()=>{clearTimeout(n),t.removeEventListener("abort",r),i()};t.addEventListener("abort",r,{once:!0})})}},1035,{"0":1034,"1":1036,"2":2162,"3":1115,"4":2163,"paths":{"2162":"/viewer/camstack/_expo/static/js/web/node-path-b4104903c9511874cbbf037d17e9f78d.js","2163":"/viewer/camstack/_expo/static/js/web/node-fs-7cc97cb7668ecaeabcbcfee447afb982.js"}});
2324
+ __d(function(e,t,i,n,r,o,a){"use strict";Object.defineProperty(o,'__esModule',{value:!0}),Object.defineProperty(o,"$",{enumerable:!0,get:function(){return K}}),Object.defineProperty(o,"A",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(o,"B",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(o,"C",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(o,"Ct",{enumerable:!0,get:function(){return p}}),Object.defineProperty(o,"D",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(o,"E",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(o,"Et",{enumerable:!0,get:function(){return y}}),Object.defineProperty(o,"F",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(o,"G",{enumerable:!0,get:function(){return R}}),Object.defineProperty(o,"H",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(o,"I",{enumerable:!0,get:function(){return me}}),Object.defineProperty(o,"J",{enumerable:!0,get:function(){return x}}),Object.defineProperty(o,"K",{enumerable:!0,get:function(){return E}}),Object.defineProperty(o,"L",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(o,"M",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(o,"N",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(o,"O",{enumerable:!0,get:function(){return we}}),Object.defineProperty(o,"P",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(o,"Q",{enumerable:!0,get:function(){return W}}),Object.defineProperty(o,"R",{enumerable:!0,get:function(){return re}}),Object.defineProperty(o,"S",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(o,"St",{enumerable:!0,get:function(){return l}}),Object.defineProperty(o,"T",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(o,"Tt",{enumerable:!0,get:function(){return v}}),Object.defineProperty(o,"U",{enumerable:!0,get:function(){return te}}),Object.defineProperty(o,"V",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(o,"W",{enumerable:!0,get:function(){return N}}),Object.defineProperty(o,"X",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(o,"Y",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(o,"Z",{enumerable:!0,get:function(){return V}}),Object.defineProperty(o,"_",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(o,"_t",{enumerable:!0,get:function(){return w}}),Object.defineProperty(o,"a",{enumerable:!0,get:function(){return We}}),Object.defineProperty(o,"at",{enumerable:!0,get:function(){return X}}),Object.defineProperty(o,"b",{enumerable:!0,get:function(){return je}}),Object.defineProperty(o,"bt",{enumerable:!0,get:function(){return h}}),Object.defineProperty(o,"c",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(o,"ct",{enumerable:!0,get:function(){return J}}),Object.defineProperty(o,"d",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(o,"dt",{enumerable:!0,get:function(){return $}}),Object.defineProperty(o,"et",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(o,"f",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(o,"ft",{enumerable:!0,get:function(){return H}}),Object.defineProperty(o,"g",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(o,"gt",{enumerable:!0,get:function(){return I}}),Object.defineProperty(o,"h",{enumerable:!0,get:function(){return He}}),Object.defineProperty(o,"ht",{enumerable:!0,get:function(){return O}}),Object.defineProperty(o,"i",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(o,"it",{enumerable:!0,get:function(){return G}}),Object.defineProperty(o,"j",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(o,"k",{enumerable:!0,get:function(){return De}}),Object.defineProperty(o,"l",{enumerable:!0,get:function(){return et}}),Object.defineProperty(o,"lt",{enumerable:!0,get:function(){return B}}),Object.defineProperty(o,"m",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(o,"mt",{enumerable:!0,get:function(){return A}}),Object.defineProperty(o,"n",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(o,"nt",{enumerable:!0,get:function(){return F}}),Object.defineProperty(o,"o",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(o,"ot",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(o,"p",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(o,"pt",{enumerable:!0,get:function(){return j}}),Object.defineProperty(o,"q",{enumerable:!0,get:function(){return T}}),Object.defineProperty(o,"r",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(o,"rt",{enumerable:!0,get:function(){return U}}),Object.defineProperty(o,"s",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(o,"st",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(o,"t",{enumerable:!0,get:function(){return it}}),Object.defineProperty(o,"tt",{enumerable:!0,get:function(){return L}}),Object.defineProperty(o,"u",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(o,"ut",{enumerable:!0,get:function(){return _}}),Object.defineProperty(o,"v",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(o,"vt",{enumerable:!0,get:function(){return S}}),Object.defineProperty(o,"w",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(o,"wt",{enumerable:!0,get:function(){return m}}),Object.defineProperty(o,"x",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(o,"xt",{enumerable:!0,get:function(){return u}}),Object.defineProperty(o,"y",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(o,"yt",{enumerable:!0,get:function(){return z}}),Object.defineProperty(o,"z",{enumerable:!0,get:function(){return de}});var s=t(a[0]),c=t(a[1]),u=[{id:"overview",label:"Overview",icon:"layout-dashboard",order:-10},{id:"general",label:"General",icon:"settings",order:0},{id:"image",label:"Image",icon:"image",order:5},{id:"light",label:"Light",icon:"lightbulb",order:7},{id:"motion",label:"Motion",icon:"activity",order:10},{id:"audio",label:"Audio",icon:"mic",order:12},{id:"alarms",label:"Alarms",icon:"bell-ring",order:13},{id:"snapshot",label:"Snapshot",icon:"camera",order:15},{id:"osd",label:"OSD",icon:"type",order:18},{id:"stream-broker",label:"Stream Broker",icon:"radio",order:20},{id:"streaming",label:"Streaming",icon:"video",order:35},{id:"ptz",label:"PTZ",icon:"move",order:40},{id:"consumables",label:"Consumables",icon:"recycle",order:44},{id:"pipeline",label:"Detection Pipeline",icon:"cpu",order:39},{id:"detection-pipeline",label:"Detection pipeline",icon:"cpu",order:39},{id:"zones",label:"Detection",icon:"shapes",order:38},{id:"analytics",label:"Analytics",icon:"activity",order:37},{id:"live-stats",label:"Live Stats",icon:"activity",order:39},{id:"recording",label:"Recording",icon:"circle-dot",order:40},{id:"engine",label:"Inference Engine",icon:"zap",order:41},{id:"scheduler",label:"Scheduler",icon:"list-checks",order:42},{id:"decoder",label:"Decoder",icon:"film",order:43},{id:"notifications",label:"Notifications",icon:"bell",order:50},{id:"network",label:"Network",icon:"globe",order:60},{id:"storage",label:"Storage",icon:"hard-drive",order:70},{id:"advanced",label:"Advanced",icon:"wrench",order:100}],l=Object.fromEntries(u.map(e=>[e.id,e]));function d(e){return"separator"===e.type||"info"===e.type||"qr-code"===e.type||"button"===e.type||"object-array"===e.type||"widget"===e.type||"addon-action-button"===e.type||"device-action-button"===e.type}function p(e){const t=new Map;if("object"!=typeof e||null===e)return t;const i=e.sections;if(!Array.isArray(i))return t;for(const e of i)"object"==typeof e&&null!==e&&g(e.fields,t);return t}function g(e,t){if(Array.isArray(e))for(const i of e){if("object"!=typeof i||null===i)continue;const e=i.type;if("group"===e){g(i.fields,t);continue}if("sub-tabs"===e){const e=i.tabs;if(Array.isArray(e))for(const i of e)"object"==typeof i&&null!==i&&g(i.fields,t);continue}const n=i.key;"string"==typeof n&&0!==n.length&&("value"in i&&t.set(n,{value:i.value,default:i.default}))}}function m(e){const t=new Map;for(const[i,n]of p(e))t.set(i,n.value??n.default);return t}function y(e,t){const i=p(e).get(t);return void 0===i?void 0:i.value??i.default}function v(e,t){return Object.assign({},e.tabs?{tabs:[...e.tabs]}:{},{sections:e.sections.map(e=>Object.assign({},e,{fields:e.fields.map(e=>b(e,t))}))})}function b(e,t){if(d(e))return e;if("group"===e.type){const i=e.fields.map(e=>b(e,t));return Object.assign({},e,{fields:i})}if("sub-tabs"===e.type){const i=e.tabs.map(e=>Object.assign({},e,{fields:e.fields.map(e=>b(e,t))}));return Object.assign({},e,{tabs:i})}const i=e.key,n=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0,r=e.default;if(e.multiple){const t=Array.isArray(n)?n:null!=n?[n]:[],i=void 0!==e.multiple.itemDefault?e.multiple.itemDefault:void 0!==r?r:"string"===f(e)?"":null,o=Math.max(e.multiple.min,t.length),a=[];for(let e=0;e<o;e++)a.push(e<t.length?t[e]:i);return Object.assign({},e,{value:a})}const o=void 0!==n?n:void 0!==r?r:null,a="textarea"===e.type&&e.isJson&&null!==o&&"object"==typeof o?JSON.stringify(o,null,2):o;return Object.assign({},e,{value:a})}function f(e){switch(e.type){case"text":case"textarea":case"password":case"color":case"probe":case"timezone":case"datetime":return"string";case"number":case"slider":return"number";case"boolean":return"boolean";default:return"other"}}function h(e,t){return e.category===t}function S(e,t,i){return{id:"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2),timestamp:new Date,source:t,category:e,data:i}}function z(e,t){const i=t.ts??Date.now();e.emit(S("system.ready-state",{type:"capability",id:t.capName,nodeId:t.sourceNodeId},{capName:t.capName,scope:t.scope,state:t.state,generation:t.generation,sourceNodeId:t.sourceNodeId,ts:i}))}function w(e){const t=async()=>{const t=(await e.read())[e.key];if(void 0===t)return e.fallback;const i=e.schema.safeParse(t);return i.success?i.data:(e.onParseError?.(e.key,i.error),e.fallback)},i=async t=>{const i=e.schema.parse(t);await e.write({[e.key]:i})};return{get:t,set:i,update:async e=>{await i(e(await t()))}}}function P(e){if(null==e||""===e)return"hub";const t=e.indexOf("/");if(t<0)return e;const i=e.slice(0,t);return""===i?"hub":i}function C(e,t){return`${e}@${P(t)}`}function q(e,t,i){return e[C(t,i)]}function D(e,t,i){const n={};for(const[r,o]of Object.entries(e))n[t.has(r)?C(r,i):r]=o;return n}function k(e,t,i){const n={};for(const[i,r]of Object.entries(e))i.includes("@")||t.has(i)||(n[i]=r);for(const r of t){const t=q(e,r,i);void 0!==t&&(n[r]=t)}return n}var O=class{_ctx=null;_readinessGeneration="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14);_registeredCapNames=[];constructor(e){this.defaults=e,this._config=Object.assign({},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(s.t.AddonStarted);const i=I(t),n=i&&"providers"in i&&i.providers?i.providers:[];return this._registeredCapNames=n.map(e=>e.capability.name),i}postBrokerStart(){this.autoEmitReadiness&&this._registeredCapNames.length>0&&this.emitReadinessForProviders("ready")}async onHubReachable(){}async shutdown(){this.emitLifecycle(s.t.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(e){return null}deviceSettingsSchema(){return null}async getGlobalSettings(e,t,i){const n=this.globalSettingsSchema(t);if(!n)return{sections:[]};const r=await this.resolveGlobalStore(i,t);return v(n,e?Object.assign({},r,e):r)}async resolveGlobalStore(e,t){const i=await(this._ctx?.settings?.readAddonStore())??{},n=this.perNodeKeys(t),r=P(e??this._ctx?.kernel?.localNodeId);return n.size>0?k(i,n,r):i}async updateGlobalSettings(e,t){const i=this.perNodeKeys(),n=P(this._ctx?.kernel?.localNodeId),r=P(t??this._ctx?.kernel?.localNodeId),o=e,a=i.size>0?D(o,i,r):o;await(this._ctx?.settings?.writeAddonStore(a)),r===n&&(await this.resolveConfig(),await this.onConfigChanged(),this.emitLifecycle(s.t.AddonUpdated,{level:"global"}),this.maybeAutoRestart(e,this.globalSettingsSchema()))}_perNodeKeysCache=new Map;perNodeKeys(e){const t=e??"",i=this._perNodeKeysCache.get(t);if(i)return i;const n=this.globalSettingsSchema(e),r=new Set(n?n.sections.flatMap(e=>M(e.fields)):[]);return this._perNodeKeysCache.set(t,r),r}maybeAutoRestart(e,t){if(!t)return;const i=new Set;for(const e of t.sections)for(const t of e.fields)"separator"!==t.type&&"info"!==t.type&&t.requiresRestart&&i.add(t.key);if(0===i.size)return;if(!Object.keys(e).some(e=>i.has(e)))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(e=>i.has(e))}})}).catch(e=>{n.logger.error("addon auto-restart failed",{meta:{error:e instanceof Error?e.message:String(e)}})})})}async getDeviceSettings(e){const t=this.deviceSettingsSchema();return t?v(t,await(this._ctx?.settings?.readDeviceStore(e))??{}):{sections:[]}}async updateDeviceSettings(e,t){await(this._ctx?.settings?.writeDeviceStore(e,t))}_subscriptions=[];watchCapability(e,t){const i=new Set(Array.isArray(e)?e:[e]);this.subscribe({category:"system.ready-state"},e=>{const n=e.data;if("string"!=typeof n.capName)return;if(!i.has(n.capName))return;if("node"!==n.scope?.type)return;const r=n.scope.nodeId;if("string"!=typeof r||0===r.length)return;const o=n.capName;"down"===n.state?t.onDown?.(r,o):"ready"===n.state&&t.onReady?.(r,o)})}subscribe(e,t){const i=this.ctx.eventBus.subscribe(e,t);this._subscriptions.push(i)}emitLifecycle(e,t){try{const i=this._ctx;if(!i)return;i.eventBus.emit({id:`${i.id}-${Date.now()}`,timestamp:new Date,source:{type:"addon",id:i.id,nodeId:i.kernel.localNodeId??"hub"},category:e,data:Object.assign({addonId:i.id},t)})}catch{}}emitReadinessForProviders(e){const t=this._ctx;if(!t)return;if(0===this._registeredCapNames.length)return;const i=t.kernel?.localNodeId??"hub",n=i.includes("/")?i.split("/")[0]:i;for(const i of this._registeredCapNames)try{z(t.eventBus,{capName:i,scope:{type:"node",nodeId:n},state:e,generation:this._readinessGeneration,sourceNodeId:n})}catch{}}async resolveModelsDir(){const{join:e}=await t(a[3])(a[2],a.paths),{promises:i}=await t(a[3])(a[4],a.paths),n=e(this.ctx.nodeDataDir,"models");return await i.mkdir(n,{recursive:!0}),n}get capabilities(){return this.ctx.capabilities??null}async resolveConfig(){const e=await this.readAddonStoreWithRetry(),t=this.perNodeKeys(),i=P(this._ctx?.kernel?.localNodeId),n=Object.assign({},this.defaults);for(const r of Object.keys(this.defaults)){const o=t.has(r)?q(e,r,i):e[r];if(null!=o){typeof o===typeof this.defaults[r]&&(n[r]=o)}}this._config=n}state(e,t,i){return w({key:e,schema:t,fallback:i,read:()=>this.readAddonStoreWithRetry(),write:async e=>{await(this._ctx?.settings?.writeAddonStore(e))},onParseError:(e,t)=>this._ctx?.logger?.warn?.(`durable-state: stored "${e}" failed validation \u2014 using fallback`,{meta:{addonId:this._ctx?.id,key:e,error:String(t)}})})}deviceState(e,t,i,n){return w({key:t,schema:i,fallback:n,read:async()=>await(this._ctx?.settings?.readDeviceStore(e))??{},write:async t=>{await(this._ctx?.settings?.writeDeviceStore(e,t))},onParseError:(t,i)=>this._ctx?.logger?.warn?.(`durable-state: stored device ${e} "${t}" failed validation \u2014 using fallback`,{meta:{addonId:this._ctx?.id,deviceId:e,key:t,error:String(i)}})})}async readAddonStoreWithRetry(){const e=this._ctx?.settings;if(!e)return{};const t=[150,350,600,900];let i;for(let n=0;n<=t.length;n++)try{return await e.readAddonStore()??{}}catch(e){i=e;const r=e instanceof Error?e.message:String(e);if(!r.includes("SqliteSettingsBackend not initialized")&&!r.includes("provider not available"))throw e;if(n===t.length)break;await new Promise(e=>setTimeout(e,t[n]))}return this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries \u2014 using defaults",{meta:{error:i instanceof Error?i.message:String(i)}}),{}}};function M(e){const t=[];for(const i of e)if("group"!==i.type)if("sub-tabs"!==i.type)"perNode"in i&&!0===i.perNode&&t.push(i.key);else for(const e of i.tabs)t.push(...M(e.fields));else t.push(...M(i.fields));return t}function I(e){if(null!=e)return Array.isArray(e)?{providers:e}:e}var A=class{disposers=[];disposed=!1;constructor(e={}){this.onError=e.onError??((e,t)=>{console.error(`[DisposerChain] disposer #${t} threw`,e)})}add(e){if(this.disposed){try{const t=e();t&&"function"==typeof t.then&&t.catch(e=>this.onError(e,-1))}catch(e){this.onError(e,-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().toReversed();this.disposers=[];for(let t=0;t<e.length;t++){const i=e[t];try{const e=i();e&&"function"==typeof e.then&&await e}catch(i){this.onError(i,e.length-1-t)}}}},j="x-camstack-dataplane-secret",R=c.z.enum(["high","mid","low"]),N=["high","mid","low"],E=c.z.enum(["pull-rtsp","pull-rtmp","pull-http","pull-flv","pull-rfc4571","push-annexb","derived"]),T=c.z.object({width:c.z.number().int().positive(),height:c.z.number().int().positive()}),x=c.z.object({camStreamId:c.z.string().min(1),deviceId:c.z.number().int().nonnegative(),kind:E,url:c.z.string().optional(),codec:c.z.string().optional(),resolution:T.optional(),fps:c.z.number().positive().optional(),label:c.z.string().optional(),deviceFeatures:c.z.array(c.z.string()).optional(),autoEligible:c.z.boolean().optional(),metadata:c.z.record(c.z.string(),c.z.unknown()).optional()}),F=c.z.enum(["unassigned","idle","connecting","streaming","error"]),L=c.z.object({deviceId:c.z.number().int().nonnegative(),profile:R,brokerId:c.z.string(),sourceCamStreamId:c.z.string().nullable(),status:F,resolution:T.optional(),codec:c.z.string().optional(),preBufferSec:c.z.number().nonnegative().optional(),errorMessage:c.z.string().optional()});function B(e,t){return`${e}/${t}`}function _(e,t){return`${e}/${t}`}function $(e){const t=e.indexOf("/");if(t<=0)return null;const i=e.slice(0,t),n=e.slice(t+1);if(!/^\d+$/.test(i))return null;const r=R.safeParse(n);return r.success?{deviceId:Number(i),profile:r.data}:null}function H(e,t){const i=[...e].filter(e=>void 0===t||e.deviceId===t).toSorted((e,t)=>N.indexOf(e.profile)-N.indexOf(t.profile)),n=new Set,r=[];for(const e of i){const t=e.sourceCamStreamId;null!==t&&(n.has(t)||(n.add(t),r.push(e)))}return r}var U=c.z.object({id:c.z.string(),label:c.z.string(),protocol:c.z.enum(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:c.z.string().optional(),resolution:c.z.object({width:c.z.number(),height:c.z.number()}).readonly().optional(),fps:c.z.number().optional(),bitrate:c.z.number().optional(),codec:c.z.string().optional(),profileHint:R.optional()}),G=c.z.object({type:c.z.string(),url:c.z.string(),videoCodec:c.z.string().optional(),audioCodec:c.z.string().optional(),metadata:c.z.record(c.z.string(),c.z.unknown()).readonly().optional()}),V=c.z.object({type:c.z.enum(["video","audio"]),data:c.z.instanceof(Uint8Array),pts:c.z.number(),dts:c.z.number(),keyframe:c.z.boolean(),codec:c.z.string()}),Z=c.z.object({data:c.z.instanceof(Uint8Array),width:c.z.number(),height:c.z.number(),format:c.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),timestamp:c.z.number()}),K=c.z.object({shmId:c.z.string(),slot:c.z.number().int().nonnegative(),seq:c.z.number().int().nonnegative(),width:c.z.number().int().positive(),height:c.z.number().int().positive(),format:c.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),pts:c.z.number(),byteLength:c.z.number().int().nonnegative(),nodeId:c.z.string(),slotCount:c.z.number().int().positive()}),W=c.z.enum(["rgb","bgr","yuv420","gray"]),Q=c.z.object({brokerId:c.z.string(),format:W,maxFps:c.z.number().positive().optional(),tag:c.z.string().optional()}),J=c.z.object({subscriptionId:c.z.string(),maxFps:c.z.number().nonnegative()}),Y=c.z.object({data:c.z.instanceof(Uint8Array),sampleRate:c.z.number().int().positive(),channels:c.z.number().int().positive(),timestamp:c.z.number()}),X=c.z.object({brokerId:c.z.string(),tag:c.z.string().optional()}),ee=c.z.object({subscriptionId:c.z.string()}),te=c.z.enum(["idle","connecting","streaming","error","stopped"]),ie=c.z.object({status:te,inputFps:c.z.number(),decodeFps:c.z.number(),encodedSubscribers:c.z.number(),decodedSubscribers:c.z.number(),uptimeMs:c.z.number(),bitrateKbps:c.z.number(),idrIntervalMs:c.z.number(),codec:c.z.string().optional(),totalBytes:c.z.number(),packetCount:c.z.number(),rtspClients:c.z.number(),pipeClients:c.z.number(),preBufferSec:c.z.number(),preBufferMs:c.z.number(),preBufferPackets:c.z.number(),decoderNodeId:c.z.string().nullable(),audio:c.z.object({codec:c.z.string(),sampleRate:c.z.number(),channels:c.z.number(),supported:c.z.boolean()}).nullable().optional(),audioMuted:c.z.boolean().optional(),audioMutedDropped:c.z.number().optional()}),ne=c.z.object({profile:R,brokerId:c.z.string(),url:c.z.string(),mutedUrl:c.z.string(),enabled:c.z.boolean(),codec:c.z.string().optional(),resolution:T.optional()}),re=class extends Error{constructor(e,t,i){super(`Timed out waiting for ${e} (${ae(t)}) to become ready after ${i}ms`),this.name="ReadinessTimeoutError",this.capName=e,this.scope=t,this.waitedMs=i}};function oe(e,t){return`${e}|${ae(t)}`}function ae(e){switch(e.type){case"global":return"global";case"node":return`node:${e.nodeId}`;case"device":return`device:${e.deviceId}`}}function se(e){switch(e){case"starting":return 0;case"ready":return 1;case"down":return 2}}function ce(e,t){return e.type===t.type&&("global"===e.type||"global"===t.type||("node"===e.type&&"node"===t.type?e.nodeId===t.nodeId:"device"===e.type&&"device"===t.type&&e.deviceId===t.deviceId))}var ue=class{snapshot=new Map;subscriptions=new Set;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??le(),this.verboseDeviceScopeLogs=e.verboseDeviceScopeLogs??!1,this.unsubscribeBus=this.bus.subscribe({category:"system.ready-state"},e=>this.ingest(e.data)),this.unsubscribeAgentOffline=this.bus.subscribe({category:"agent.offline"},e=>this.synthesizeDownForNode(e.data.agentId)),"function"==typeof this.bus.getRecent)try{const e=this.bus.getRecent({category:"system.ready-state"});for(const t of e)this.ingest(t.data)}catch{}}close(){this.unsubscribeBus(),this.unsubscribeAgentOffline(),this.subscriptions.clear()}get(e,t){return this.snapshot.get(oe(e,t))??null}getSnapshotForTransport(){return Array.from(this.snapshot.values())}hydrate(e){const t=this.now();let i=0;for(const n of e){const e=oe(n.capName,n.scope),r=this.snapshot.get(e)??null;let o,a;if(null!==r){if(this.isLocallyAuthoritative(r))continue;const e=r.generation===n.generation;if(e&&se(n.state)<=se(r.state))continue;o=e||"ready"!==n.state?r.epoch:r.epoch+1,a=Math.max(0,t-r.lastChange)}else o=1,a=0;const s={capName:n.capName,scope:n.scope,state:n.state,generation:n.generation,epoch:o,lastChange:t,sourceNodeId:n.sourceNodeId};this.snapshot.set(e,s),i++,this.logPerRecord(n.scope,`readiness: ${n.capName} (${ae(n.scope)}) \u2192 ${n.state} (hydrated${null!==r?" update":""}, gen=${n.generation.slice(0,6)})`);const c={capName:n.capName,scope:n.scope,state:n.state,epoch:o,generation:n.generation,sourceNodeId:"hydrated",ts:t,durationInPrevState:a};for(const e of this.subscriptions)if(e.capName===n.capName&&ce(e.scope,n.scope))try{e.handler(c)}catch(e){this.logger?.warn(`readiness hydrate handler threw for ${n.capName}: ${e.message??String(e)}`)}}return i}logPerRecord(e,t){if(this.logger)if("device"!==e.type)this.logger.debug(t);else{if(!this.verboseDeviceScopeLogs)return;this.logger.debug(t,{tags:{deviceId:e.deviceId}})}}isLocallyAuthoritative(e){return"node"===e.scope.type?e.scope.nodeId===this.sourceNodeId:e.sourceNodeId===this.sourceNodeId}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,i={}){const n=i.timeoutMs??Number.POSITIVE_INFINITY,r=this.now();return"ready"===this.get(e,t)?.state?Promise.resolve():i.signal?.aborted?Promise.reject(i.signal.reason??new Error("aborted")):new Promise((o,a)=>{let s=!1;const c=this.onReadyState(e,t,e=>{"ready"===e.state&&(s||(s=!0,p(),o()))}),u=Number.isFinite(n)?setTimeout(()=>{s||(s=!0,p(),a(new re(e,t,this.now()-r)))},n):null,l=setInterval(()=>{s||this.logger?.warn(`readiness: still awaiting ${e} (${ae(t)}) after ${this.now()-r}ms`)},3e4);"function"==typeof l.unref&&l.unref();const d=()=>{s||(s=!0,p(),a(i.signal?.reason??new Error("aborted")))};function p(){c(),null!==u&&clearTimeout(u),clearInterval(l),i.signal?.removeEventListener("abort",d)}i.signal?.addEventListener("abort",d,{once:!0})})}onReadyState(e,t,i){const n={capName:e,scope:t,handler:i};this.subscriptions.add(n);const r=this.get(e,t);return null!==r&&queueMicrotask(()=>{this.subscriptions.has(n)&&i({capName:e,scope:t,state:r.state,epoch:r.epoch,generation:r.generation,sourceNodeId:this.sourceNodeId,ts:r.lastChange,durationInPrevState:0})}),()=>{this.subscriptions.delete(n)}}emitTransition(e,t,i){const n=this.now();this.bus.emit(S("system.ready-state",{type:"capability",id:e,nodeId:this.sourceNodeId},{capName:e,scope:t,state:i,generation:this.generation,sourceNodeId:this.sourceNodeId,ts:n}))}ingest(e){if("string"!=typeof e?.capName)return;if("ready"!==e.state&&"starting"!==e.state&&"down"!==e.state)return;if("string"!=typeof e.generation)return;if("global"!==e.scope?.type&&"node"!==e.scope?.type&&"device"!==e.scope?.type)return;const t=oe(e.capName,e.scope),i=this.snapshot.get(t)??null,n=this.now();let r;if(r=null===i?"ready"===e.state?1:0:i.generation!==e.generation&&"ready"===e.state?i.epoch+1:i.epoch,null!==i&&i.generation===e.generation&&i.state===e.state)return;const o=null===i?0:Math.max(0,n-i.lastChange),a={capName:e.capName,scope:e.scope,state:e.state,generation:e.generation,epoch:r,lastChange:n,sourceNodeId:e.sourceNodeId};this.snapshot.set(t,a);const s={capName:e.capName,scope:e.scope,state:e.state,epoch:r,generation:e.generation,sourceNodeId:e.sourceNodeId,ts:e.ts,durationInPrevState:o};this.logPerRecord(e.scope,`readiness: ${e.capName} (${ae(e.scope)}) \u2192 ${e.state} epoch=${r} gen=${e.generation.slice(0,6)} (prev ${o}ms)`);for(const t of this.subscriptions)if(t.capName===e.capName&&ce(t.scope,e.scope))try{t.handler(s)}catch(t){this.logger?.warn(`readiness handler threw for ${e.capName}: ${t.message??String(t)}`)}}synthesizeDownForNode(e){const t=this.now();for(const[i,n]of this.snapshot){if("down"===n.state)continue;if(!("node"===n.scope.type&&n.scope.nodeId===e||"device"===n.scope.type&&n.sourceNodeId===e))continue;const r=Math.max(0,t-n.lastChange),o=Object.assign({},n,{state:"down",lastChange:t});this.snapshot.set(i,o);const a={capName:n.capName,scope:n.scope,state:"down",epoch:n.epoch,generation:n.generation,sourceNodeId:this.sourceNodeId,ts:t,durationInPrevState:r};this.logPerRecord(n.scope,`readiness: ${n.capName} (${ae(n.scope)}) \u2192 down (synthesized from agent.offline ${e})`);for(const e of this.subscriptions)if(e.capName===n.capName&&ce(e.scope,n.scope))try{e.handler(a)}catch(e){this.logger?.warn(`readiness handler threw during agent.offline demux for ${n.capName}: ${e.message??String(e)}`)}}}};function le(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14)}function de(e,t){for(const{capName:i,scope:n}of t)e.emitDown(i,n)}var pe="__camstackNodePin";function ge(e){return{context:{[pe]:me(e)}}}function me(e){const t=e.split("/")[0];return void 0===t||0===t.length?e:t}function ye(e){if(null===e||"object"!=typeof e)return;const t=Reflect.get(e,pe);return"string"==typeof t?t:void 0}function ve(e){return e.mount?e.mount:!0===e.deviceNative?{kind:"device-native"}:"collection"===e.mode?{kind:"collection"}:{kind:"singleton"}}var be=c.z.object({id:c.z.string(),title:c.z.string(),description:c.z.string().optional(),style:c.z.enum(["card","accordion"]).optional(),defaultCollapsed:c.z.boolean().optional(),columns:c.z.union([c.z.literal(1),c.z.literal(2),c.z.literal(3),c.z.literal(4)]).optional(),tab:c.z.string().optional(),location:c.z.enum(["settings","top-tab"]).optional(),order:c.z.number().optional(),fields:c.z.array(c.z.any())}),fe=c.z.object({id:c.z.string(),label:c.z.string(),icon:c.z.string(),order:c.z.number().optional()}),he=c.z.object({tabs:c.z.array(fe).optional(),sections:c.z.array(be)}).nullable(),Se={getDeviceSettingsContribution:{input:c.z.object({deviceId:c.z.number()}),output:he,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:c.z.object({deviceId:c.z.number()}),output:he,kind:"query",auth:"protected"},applyDeviceSettingsPatch:{input:c.z.object({deviceId:c.z.number(),patch:c.z.record(c.z.string(),c.z.unknown())}),output:c.z.object({success:c.z.literal(!0)}),kind:"mutation",auth:"admin"}},ze={getStatus:{input:c.z.object({deviceId:c.z.number()}),output:c.z.unknown().nullable(),kind:"query",auth:"protected"}};function we(e){let t=e.methods;return e.exposesDeviceSettings&&(t=Object.assign({},Se,t)),e.status&&(t=Object.assign({},ze,t)),t}function Pe(e,t,i){return Object.assign({input:e,output:t,kind:i?.kind??"query",auth:i?.auth??"protected"},void 0!==i?.access?{access:i.access}:{},void 0!==i?.caller?{caller:i.caller}:{},{timeoutMs:i?.timeoutMs})}function Ce(e,t,i){return Object.assign({},Pe(e,t,i),{systemOnly:!0})}function qe(e){return{data:e}}function De(e){return void 0!==e?.deviceConfig}var ke=c.z.object({staticDir:c.z.string()}),Oe=c.z.object({version:c.z.string()}),Me={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Pe(c.z.void(),ke),getVersion:Pe(c.z.void(),Oe)}},Ie=(function(e){return e.Camera="camera",e.Hub="hub",e.Light="light",e.Siren="siren",e.Switch="switch",e.Sensor="sensor",e.Thermostat="thermostat",e.Climate="climate",e.Button="button",e.EventEmitter="event-emitter",e.Update="update",e.Generic="generic",e.Notifier="notifier",e.Script="script",e.Automation="automation",e.Lock="lock",e.Cover="cover",e.Valve="valve",e.Humidifier="humidifier",e.WaterHeater="water-heater",e.Fan="fan",e.MediaPlayer="media-player",e.AlarmPanel="alarm-panel",e.Control="control",e.Presence="presence",e.Weather="weather",e.Vacuum="vacuum",e.LawnMower="lawn-mower",e.Container="container",e.Image="image",e.PetFeeder="pet-feeder",e})({}),Ae=(function(e){return e.BatteryOperated="battery-operated",e.Rebootable="rebootable",e.Resyncable="resyncable",e.NativeSnapshot="native-snapshot",e.DoorbellButton="doorbell-button",e.TwoWayAudio="two-way-audio",e.PanTiltZoom="pan-tilt-zoom",e.PtzAutotrack="ptz-autotrack",e.MotionTrigger="motion-trigger",e.LightColorRgb="light-color-rgb",e.LightColorHsv="light-color-hsv",e.LightColorMired="light-color-mired",e.ClimateDualSetpoint="climate-dual-setpoint",e.ClimateHumidity="climate-humidity",e.ClimateFanMode="climate-fan-mode",e.ClimatePreset="climate-preset",e.ClimateSwingVertical="climate-swing-vertical",e.ClimateSwingHorizontal="climate-swing-horizontal",e.CoverPositionable="cover-positionable",e.CoverTilt="cover-tilt",e.ValvePositionable="valve-positionable",e.FanSpeed="fan-speed",e.FanPreset="fan-preset",e.FanDirection="fan-direction",e.FanOscillating="fan-oscillating",e.LockPinRequired="lock-pin-required",e.LockOpen="lock-open",e.MediaPlayerSeek="media-player-seek",e.MediaPlayerVolume="media-player-volume",e.MediaPlayerMute="media-player-mute",e.MediaPlayerShuffle="media-player-shuffle",e.MediaPlayerRepeat="media-player-repeat",e.MediaPlayerSelectSource="media-player-select-source",e.MediaPlayerPlayMedia="media-player-play-media",e.MediaPlayerNext="media-player-next",e.MediaPlayerPrevious="media-player-previous",e.MediaPlayerStop="media-player-stop",e.AlarmPinRequired="alarm-pin-required",e.PresenceGps="presence-gps",e.NotifierImage="notifier-image",e.NotifierPriority="notifier-priority",e.NotifierData="notifier-data",e.NotifierActions="notifier-actions",e.NotifierRecipients="notifier-recipients",e.ScriptVariables="script-variables",e.AutomationSkipCondition="automation-skip-condition",e.VacuumHasMap="vacuum-has-map",e.VacuumHasAi="vacuum-has-ai",e.MowerHasMap="mower-has-map",e.MowerHasTargetedMowing="mower-has-targeted-mowing",e})({}),je=(function(e){return e.ChargingDC="charging-dc",e.ChargingSolar="charging-solar",e.NotCharging="not-charging",e})({}),Re=(function(e){return e.Siren="siren",e.Floodlight="floodlight",e.Spotlight="spotlight",e.PirSensor="pir-sensor",e.Chime="chime",e.Autotrack="autotrack",e.Nightvision="nightvision",e.PrivacyMask="privacy-mask",e.Doorbell="doorbell",e.BinaryHelper="binary-helper",e.MotionSensor="motion-sensor",e.ContactSensor="contact-sensor",e.LeakSensor="leak-sensor",e.SmokeSensor="smoke-sensor",e.COSensor="co-sensor",e.GasSensor="gas-sensor",e.TamperSensor="tamper-sensor",e.VibrationSensor="vibration-sensor",e.ConnectivitySensor="connectivity-sensor",e.SoundSensor="sound-sensor",e.BinarySensor="binary-sensor",e.TemperatureSensor="temperature-sensor",e.HumiditySensor="humidity-sensor",e.AmbientLightSensor="ambient-light-sensor",e.PressureSensor="pressure-sensor",e.WindSensor="wind-sensor",e.RainSensor="rain-sensor",e.UvSensor="uv-sensor",e.SolarRadiationSensor="solar-radiation-sensor",e.SoilMoistureSensor="soil-moisture-sensor",e.PowerSensor="power-sensor",e.EnergySensor="energy-sensor",e.VoltageSensor="voltage-sensor",e.CurrentSensor="current-sensor",e.AirQualitySensor="air-quality-sensor",e.BatterySensor="battery-sensor",e.NumericSensor="numeric-sensor",e.EnumSensor="enum-sensor",e.DateTimeSensor="datetime-sensor",e.GenericSensor="generic-sensor",e.NumericControl="numeric-control",e.SelectControl="select-control",e.TextControl="text-control",e.DateTimeControl="datetime-control",e.MobilePushNotifier="mobile-push-notifier",e.MessagingNotifier="messaging-notifier",e.EmailNotifier="email-notifier",e.GenericNotifier="generic-notifier",e})({}),Ne=c.z.object({staticDir:c.z.string()}),Ee=c.z.object({version:c.z.string()}),Te={name:"viewer-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Pe(c.z.void(),Ne),getVersion:Pe(c.z.void(),Ee)}},xe=c.z.object({id:c.z.string(),label:c.z.string(),protocol:c.z.enum(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:c.z.string().optional(),resolution:c.z.object({width:c.z.number(),height:c.z.number()}).optional(),fps:c.z.number().optional(),bitrate:c.z.number().optional(),codec:c.z.string().optional(),profileHint:R.optional(),sdp:c.z.string().optional()}),Fe=c.z.object({key:c.z.string(),value:c.z.unknown()}),Le=c.z.object({source:c.z.string(),data:c.z.record(c.z.string(),c.z.unknown())}),Be={name:"device-ops",scope:"device",deviceNative:!0,mode:"singleton",methods:{getStreamSources:Pe(c.z.object({deviceId:c.z.number()}),c.z.array(xe)),getConfigEntries:Pe(c.z.object({deviceId:c.z.number()}),c.z.array(Fe)),setConfig:Pe(c.z.object({deviceId:c.z.number(),values:c.z.record(c.z.string(),c.z.unknown())}),c.z.void(),{kind:"mutation"}),runAction:Pe(c.z.object({deviceId:c.z.number(),action:c.z.string().min(1),input:c.z.unknown()}),c.z.unknown(),{kind:"mutation"}),removeDevice:Pe(c.z.object({deviceId:c.z.number()}),c.z.void(),{kind:"mutation"}),getSettingsSchema:Pe(c.z.object({deviceId:c.z.number()}),c.z.unknown().nullable()),getRawState:Pe(c.z.object({deviceId:c.z.number()}),Le.nullable(),{auth:"protected"})}},_e="device.state-changed";function $e(e){const t=new Map,i=new Map;let n=null;const r=(e,t)=>`${e}:${t}`;return{read:(e,i)=>t.get(r(e,i)),async refresh(n,o){const a=await e.deviceState.getCapSlice.query({deviceId:n,capName:o}),s=r(n,o);t.set(s,a??void 0);const c=i.get(s);if(c)for(const e of c)try{e(a??void 0)}catch{}},watch(o,a,s){const c=r(o,a);let u=i.get(c);return u||(u=new Set,i.set(c,u)),u.add(s),n||e.live?.onEvent&&(n=e.live.onEvent.subscribe({category:_e},{onData:e=>{const n=e.data;if(!n||"number"!=typeof n.deviceId||"string"!=typeof n.capName)return;const o=r(n.deviceId,n.capName);t.set(o,n.slice);const a=i.get(o);if(a)for(const e of a)try{e(n.slice)}catch{}}})),()=>{u.delete(s),0===u.size&&i.delete(c),n&&(i.size>0||(n.unsubscribe(),n=null))}},async write(t,i,n){await e.deviceState.setCapSlice.mutate({deviceId:t,capName:i,slice:n})}}}function He(e,t,i){const n=(e,t)=>`${e}:${t}`;return{read:(t,i)=>e.get(t)?.get(i),async refresh(){},watch(e,i,r){const o=n(e,i);let a=t.get(o);return a||(a=new Set,t.set(o,a)),a.add(r),()=>{a.delete(r),0===a.size&&t.delete(o)}},async write(e,t,n){if(!i)throw new Error("createMirrorSource: write requires an api reference \u2014 pass it as the third argument when constructing the source");await i.deviceState.setCapSlice.mutate({deviceId:e,capName:t,slice:n})}}}function Ue(e,t,i){const n="function"==typeof(r=e).read&&"function"==typeof r.watch?e:$e(e);var r;return{get value(){return n.read(t,i)},refresh:()=>n.refresh(t,i),subscribe(e){const r=n.watch(t,i,t=>{try{e(t)}catch{}});try{e(n.read(t,i))}catch{}return void 0===n.read(t,i)&&n.refresh(t,i).catch(()=>{}),r},async set(e){await n.write(t,i,e)},async patch(e){const r=Object.assign({},n.read(t,i),e);await n.write(t,i,r)}}}function Ge(e,t,i){const n=e,r=i?.stateSource??$e(e);function o(e,i){const n="object"==typeof e&&null!==e?e:{};return void 0!==i?Object.assign({},n,{deviceId:t.deviceId,nodeId:i}):Object.assign({},n,{deviceId:t.deviceId})}function a(e,t,i,r,o){const a=n[e]?.[t];if(!a)throw new Error(`DeviceProxy: api has no '${e}.${t}'`);const s=a;return"mutation"===i?s.mutate(r):"subscription"===i?s.subscribe(r,o):s.query(r)}function s(e,i,n,r,s,c){return a(i,n,r,o(s,t.entries.find(t=>t.capName===e)?.providerNodeId),c)}function c(e,t,i,n,r){return a(e,t,i,o(n,void 0),r)}return{deviceId:t.deviceId,binding:t,state:{airQualitySensor:Ue(r,t.deviceId,"air-quality-sensor"),alarmPanel:Ue(r,t.deviceId,"alarm-panel"),ambientLightSensor:Ue(r,t.deviceId,"ambient-light-sensor"),audioMetrics:Ue(r,t.deviceId,"audio-metrics"),automationControl:Ue(r,t.deviceId,"automation-control"),battery:Ue(r,t.deviceId,"battery"),binary:Ue(r,t.deviceId,"binary"),brightness:Ue(r,t.deviceId,"brightness"),cameraStreams:Ue(r,t.deviceId,"camera-streams"),carbonMonoxide:Ue(r,t.deviceId,"carbon-monoxide"),climateControl:Ue(r,t.deviceId,"climate-control"),color:Ue(r,t.deviceId,"color"),connectivity:Ue(r,t.deviceId,"connectivity"),consumables:Ue(r,t.deviceId,"consumables"),contact:Ue(r,t.deviceId,"contact"),control:Ue(r,t.deviceId,"control"),cover:Ue(r,t.deviceId,"cover"),dayNight:Ue(r,t.deviceId,"day-night"),deviceDiscovery:Ue(r,t.deviceId,"device-discovery"),deviceStatus:Ue(r,t.deviceId,"device-status"),doorbell:Ue(r,t.deviceId,"doorbell"),enumSensor:Ue(r,t.deviceId,"enum-sensor"),eventEmitter:Ue(r,t.deviceId,"event-emitter"),fanControl:Ue(r,t.deviceId,"fan-control"),featureProbe:Ue(r,t.deviceId,"feature-probe"),flood:Ue(r,t.deviceId,"flood"),gas:Ue(r,t.deviceId,"gas"),humidifier:Ue(r,t.deviceId,"humidifier"),humiditySensor:Ue(r,t.deviceId,"humidity-sensor"),image:Ue(r,t.deviceId,"image"),imageSettings:Ue(r,t.deviceId,"image-settings"),lawnMowerControl:Ue(r,t.deviceId,"lawn-mower-control"),lockControl:Ue(r,t.deviceId,"lock-control"),mediaPlayer:Ue(r,t.deviceId,"media-player"),motion:Ue(r,t.deviceId,"motion"),motionTrigger:Ue(r,t.deviceId,"motion-trigger"),motionZones:Ue(r,t.deviceId,"motion-zones"),nativeObjectDetection:Ue(r,t.deviceId,"native-object-detection"),notifier:Ue(r,t.deviceId,"notifier"),numericSensor:Ue(r,t.deviceId,"numeric-sensor"),petFeeder:Ue(r,t.deviceId,"pet-feeder"),powerMeter:Ue(r,t.deviceId,"power-meter"),presence:Ue(r,t.deviceId,"presence"),pressureSensor:Ue(r,t.deviceId,"pressure-sensor"),privacyMask:Ue(r,t.deviceId,"privacy-mask"),ptzAutotrack:Ue(r,t.deviceId,"ptz-autotrack"),sceneMonitor:Ue(r,t.deviceId,"scene-monitor"),scriptRunner:Ue(r,t.deviceId,"script-runner"),smoke:Ue(r,t.deviceId,"smoke"),streamParams:Ue(r,t.deviceId,"stream-params"),switch:Ue(r,t.deviceId,"switch"),tamper:Ue(r,t.deviceId,"tamper"),temperatureSensor:Ue(r,t.deviceId,"temperature-sensor"),update:Ue(r,t.deviceId,"update"),vacuumControl:Ue(r,t.deviceId,"vacuum-control"),valve:Ue(r,t.deviceId,"valve"),vibration:Ue(r,t.deviceId,"vibration"),waterHeater:Ue(r,t.deviceId,"water-heater"),weather:Ue(r,t.deviceId,"weather"),zoneAnalytics:Ue(r,t.deviceId,"zone-analytics"),zoneRules:Ue(r,t.deviceId,"zone-rules"),zones:Ue(r,t.deviceId,"zones")},accessories:{setChildHidden:e=>s("accessories","accessories","setChildHidden","mutation",e),getStatus:e=>s("accessories","accessories","getStatus","query",e)},airQualitySensor:{getStatus:e=>s("air-quality-sensor","airQualitySensor","getStatus","query",e)},alarmPanel:{arm:e=>s("alarm-panel","alarmPanel","arm","mutation",e),disarm:e=>s("alarm-panel","alarmPanel","disarm","mutation",e),trigger:e=>s("alarm-panel","alarmPanel","trigger","mutation",e),getStatus:e=>s("alarm-panel","alarmPanel","getStatus","query",e)},ambientLightSensor:{getStatus:e=>s("ambient-light-sensor","ambientLightSensor","getStatus","query",e)},audioAnalysis:{resolveDeviceSettings:e=>s("audio-analysis","audioAnalysis","resolveDeviceSettings","query",e),getDeviceSettingsContribution:e=>s("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",e)},audioMetrics:{getCurrentSnapshot:e=>s("audio-metrics","audioMetrics","getCurrentSnapshot","query",e),getHistory:e=>s("audio-metrics","audioMetrics","getHistory","query",e)},automationControl:{enable:e=>s("automation-control","automationControl","enable","mutation",e),disable:e=>s("automation-control","automationControl","disable","mutation",e),trigger:e=>s("automation-control","automationControl","trigger","mutation",e),getStatus:e=>s("automation-control","automationControl","getStatus","query",e)},battery:{wakeForStream:e=>s("battery","battery","wakeForStream","mutation",e),getStatus:e=>s("battery","battery","getStatus","query",e)},binary:{getStatus:e=>s("binary","binary","getStatus","query",e)},brightness:{setBrightness:e=>s("brightness","brightness","setBrightness","mutation",e),getStatus:e=>s("brightness","brightness","getStatus","query",e)},button:{press:e=>s("button","button","press","mutation",e)},cameraCredentials:{getCredentials:e=>s("camera-credentials","cameraCredentials","getCredentials","query",e),getStatus:e=>s("camera-credentials","cameraCredentials","getStatus","query",e)},cameraStreams:{getCameraStreams:e=>s("camera-streams","cameraStreams","getCameraStreams","query",e),getBrokerStreams:e=>s("camera-streams","cameraStreams","getBrokerStreams","query",e),getRtspEntries:e=>s("camera-streams","cameraStreams","getRtspEntries","query",e),getProfileRtspEntries:e=>s("camera-streams","cameraStreams","getProfileRtspEntries","query",e),pickStream:e=>s("camera-streams","cameraStreams","pickStream","query",e)},carbonMonoxide:{getStatus:e=>s("carbon-monoxide","carbonMonoxide","getStatus","query",e)},climateControl:{setMode:e=>s("climate-control","climateControl","setMode","mutation",e),setFanMode:e=>s("climate-control","climateControl","setFanMode","mutation",e),setPreset:e=>s("climate-control","climateControl","setPreset","mutation",e),setTarget:e=>s("climate-control","climateControl","setTarget","mutation",e),setTargetRange:e=>s("climate-control","climateControl","setTargetRange","mutation",e),setTargetHumidity:e=>s("climate-control","climateControl","setTargetHumidity","mutation",e),setSwingVertical:e=>s("climate-control","climateControl","setSwingVertical","mutation",e),setSwingHorizontal:e=>s("climate-control","climateControl","setSwingHorizontal","mutation",e),getStatus:e=>s("climate-control","climateControl","getStatus","query",e)},color:{setColor:e=>s("color","color","setColor","mutation",e),getStatus:e=>s("color","color","getStatus","query",e)},connectivity:{getStatus:e=>s("connectivity","connectivity","getStatus","query",e)},consumables:{reset:e=>s("consumables","consumables","reset","mutation",e),getStatus:e=>s("consumables","consumables","getStatus","query",e)},contact:{getStatus:e=>s("contact","contact","getStatus","query",e)},control:{setValue:e=>s("control","control","setValue","mutation",e),getStatus:e=>s("control","control","getStatus","query",e)},cover:{open:e=>s("cover","cover","open","mutation",e),close:e=>s("cover","cover","close","mutation",e),stop:e=>s("cover","cover","stop","mutation",e),setPosition:e=>s("cover","cover","setPosition","mutation",e),setTiltPosition:e=>s("cover","cover","setTiltPosition","mutation",e),getStatus:e=>s("cover","cover","getStatus","query",e)},dayNight:{getOptions:e=>s("day-night","dayNight","getOptions","query",e),setSettings:e=>s("day-night","dayNight","setSettings","mutation",e),getStatus:e=>s("day-night","dayNight","getStatus","query",e)},detectionPipeline:{getDeviceSettingsContribution:e=>s("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",e)},deviceDiscovery:{listDiscovered:e=>s("device-discovery","deviceDiscovery","listDiscovered","query",e),refreshDiscovery:e=>s("device-discovery","deviceDiscovery","refreshDiscovery","mutation",e),adoptDevice:e=>s("device-discovery","deviceDiscovery","adoptDevice","mutation",e),releaseDevice:e=>s("device-discovery","deviceDiscovery","releaseDevice","mutation",e),getStatus:e=>s("device-discovery","deviceDiscovery","getStatus","query",e)},deviceOps:{getStreamSources:e=>s("device-ops","deviceOps","getStreamSources","query",e),getConfigEntries:e=>s("device-ops","deviceOps","getConfigEntries","query",e),setConfig:e=>s("device-ops","deviceOps","setConfig","mutation",e),runAction:e=>s("device-ops","deviceOps","runAction","mutation",e),removeDevice:e=>s("device-ops","deviceOps","removeDevice","mutation",e),getSettingsSchema:e=>s("device-ops","deviceOps","getSettingsSchema","query",e),getRawState:e=>s("device-ops","deviceOps","getRawState","query",e)},deviceStatus:{getStatus:e=>s("device-status","deviceStatus","getStatus","query",e)},doorbell:{getStatus:e=>s("doorbell","doorbell","getStatus","query",e),getDeviceSettingsContribution:e=>s("doorbell","doorbell","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("doorbell","doorbell","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("doorbell","doorbell","applyDeviceSettingsPatch","mutation",e)},enumSensor:{getStatus:e=>s("enum-sensor","enumSensor","getStatus","query",e)},eventEmitter:{getStatus:e=>s("event-emitter","eventEmitter","getStatus","query",e)},events:{getEvents:e=>s("events","events","getEvents","query",e),getEventThumbnail:e=>s("events","events","getEventThumbnail","query",e),getEventClipUrl:e=>s("events","events","getEventClipUrl","query",e)},fanControl:{setPercentage:e=>s("fan-control","fanControl","setPercentage","mutation",e),setPreset:e=>s("fan-control","fanControl","setPreset","mutation",e),setDirection:e=>s("fan-control","fanControl","setDirection","mutation",e),setOscillating:e=>s("fan-control","fanControl","setOscillating","mutation",e),getStatus:e=>s("fan-control","fanControl","getStatus","query",e)},featureProbe:{getStatus:e=>s("feature-probe","featureProbe","getStatus","query",e)},flood:{getStatus:e=>s("flood","flood","getStatus","query",e)},gas:{getStatus:e=>s("gas","gas","getStatus","query",e)},humidifier:{setOn:e=>s("humidifier","humidifier","setOn","mutation",e),setTargetHumidity:e=>s("humidifier","humidifier","setTargetHumidity","mutation",e),setMode:e=>s("humidifier","humidifier","setMode","mutation",e),getStatus:e=>s("humidifier","humidifier","getStatus","query",e)},humiditySensor:{getStatus:e=>s("humidity-sensor","humiditySensor","getStatus","query",e)},image:{getStatus:e=>s("image","image","getStatus","query",e)},imageSettings:{getOptions:e=>s("image-settings","imageSettings","getOptions","query",e),setSettings:e=>s("image-settings","imageSettings","setSettings","mutation",e),getStatus:e=>s("image-settings","imageSettings","getStatus","query",e)},intercom:{startSession:e=>s("intercom","intercom","startSession","mutation",e),handleAnswer:e=>s("intercom","intercom","handleAnswer","mutation",e),stopSession:e=>s("intercom","intercom","stopSession","mutation",e),startTalkSession:e=>s("intercom","intercom","startTalkSession","mutation",e),pushTalkAudio:e=>s("intercom","intercom","pushTalkAudio","mutation",e),endTalkSession:e=>s("intercom","intercom","endTalkSession","mutation",e),getStatus:e=>s("intercom","intercom","getStatus","query",e)},lawnMowerControl:{startMowing:e=>s("lawn-mower-control","lawnMowerControl","startMowing","mutation",e),pause:e=>s("lawn-mower-control","lawnMowerControl","pause","mutation",e),dock:e=>s("lawn-mower-control","lawnMowerControl","dock","mutation",e),getStatus:e=>s("lawn-mower-control","lawnMowerControl","getStatus","query",e)},lockControl:{lock:e=>s("lock-control","lockControl","lock","mutation",e),unlock:e=>s("lock-control","lockControl","unlock","mutation",e),open:e=>s("lock-control","lockControl","open","mutation",e),getStatus:e=>s("lock-control","lockControl","getStatus","query",e)},mediaPlayer:{play:e=>s("media-player","mediaPlayer","play","mutation",e),pause:e=>s("media-player","mediaPlayer","pause","mutation",e),stop:e=>s("media-player","mediaPlayer","stop","mutation",e),next:e=>s("media-player","mediaPlayer","next","mutation",e),previous:e=>s("media-player","mediaPlayer","previous","mutation",e),seek:e=>s("media-player","mediaPlayer","seek","mutation",e),setVolume:e=>s("media-player","mediaPlayer","setVolume","mutation",e),setMute:e=>s("media-player","mediaPlayer","setMute","mutation",e),setShuffle:e=>s("media-player","mediaPlayer","setShuffle","mutation",e),setRepeat:e=>s("media-player","mediaPlayer","setRepeat","mutation",e),selectSource:e=>s("media-player","mediaPlayer","selectSource","mutation",e),playMedia:e=>s("media-player","mediaPlayer","playMedia","mutation",e),getStatus:e=>s("media-player","mediaPlayer","getStatus","query",e)},motion:{isDetected:e=>s("motion","motion","isDetected","query",e),getStatus:e=>s("motion","motion","getStatus","query",e)},motionDetection:{analyze:e=>s("motion-detection","motionDetection","analyze","mutation",e),removeCamera:e=>s("motion-detection","motionDetection","removeCamera","mutation",e),reset:e=>s("motion-detection","motionDetection","reset","mutation",e),getDeviceSettingsContribution:e=>s("motion-detection","motionDetection","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("motion-detection","motionDetection","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",e)},motionTrigger:{setMotionTrigger:e=>s("motion-trigger","motionTrigger","setMotionTrigger","mutation",e),getStatus:e=>s("motion-trigger","motionTrigger","getStatus","query",e)},motionZones:{getOptions:e=>s("motion-zones","motionZones","getOptions","query",e),setZone:e=>s("motion-zones","motionZones","setZone","mutation",e),getStatus:e=>s("motion-zones","motionZones","getStatus","query",e)},nativeObjectDetection:{setEnabled:e=>s("native-object-detection","nativeObjectDetection","setEnabled","mutation",e),getStatus:e=>s("native-object-detection","nativeObjectDetection","getStatus","query",e)},notificationRules:{listRules:e=>s("notification-rules","notificationRules","listRules","query",e),getRule:e=>s("notification-rules","notificationRules","getRule","query",e),createRule:e=>s("notification-rules","notificationRules","createRule","mutation",e),updateRule:e=>s("notification-rules","notificationRules","updateRule","mutation",e),deleteRule:e=>s("notification-rules","notificationRules","deleteRule","mutation",e),setRuleEnabled:e=>s("notification-rules","notificationRules","setRuleEnabled","mutation",e),listDeviceMutes:e=>s("notification-rules","notificationRules","listDeviceMutes","query",e),setDeviceMuted:e=>s("notification-rules","notificationRules","setDeviceMuted","mutation",e),testRule:e=>s("notification-rules","notificationRules","testRule","mutation",e),getConditionCatalog:e=>s("notification-rules","notificationRules","getConditionCatalog","query",e),getHistory:e=>s("notification-rules","notificationRules","getHistory","query",e),listSnoozes:e=>s("notification-rules","notificationRules","listSnoozes","query",e),createSnooze:e=>s("notification-rules","notificationRules","createSnooze","mutation",e),cancelSnooze:e=>s("notification-rules","notificationRules","cancelSnooze","mutation",e),getAlarmConfig:e=>s("notification-rules","notificationRules","getAlarmConfig","query",e),setAlarmConfig:e=>s("notification-rules","notificationRules","setAlarmConfig","mutation",e)},notifier:{send:e=>s("notifier","notifier","send","mutation",e),cancel:e=>s("notifier","notifier","cancel","mutation",e),getStatus:e=>s("notifier","notifier","getStatus","query",e)},numericSensor:{getStatus:e=>s("numeric-sensor","numericSensor","getStatus","query",e)},osd:{setOverlay:e=>s("osd","osd","setOverlay","mutation",e),getStatus:e=>s("osd","osd","getStatus","query",e)},petFeeder:{feed:e=>s("pet-feeder","petFeeder","feed","mutation",e),cancelFeed:e=>s("pet-feeder","petFeeder","cancelFeed","mutation",e),resetDesiccant:e=>s("pet-feeder","petFeeder","resetDesiccant","mutation",e),markFoodReplenished:e=>s("pet-feeder","petFeeder","markFoodReplenished","mutation",e),callPet:e=>s("pet-feeder","petFeeder","callPet","mutation",e),playSound:e=>s("pet-feeder","petFeeder","playSound","mutation",e),setChildLock:e=>s("pet-feeder","petFeeder","setChildLock","mutation",e),setIndicatorLight:e=>s("pet-feeder","petFeeder","setIndicatorLight","mutation",e),setFeedSound:e=>s("pet-feeder","petFeeder","setFeedSound","mutation",e),setVolume:e=>s("pet-feeder","petFeeder","setVolume","mutation",e),getStatus:e=>s("pet-feeder","petFeeder","getStatus","query",e)},pipelineAnalytics:{getActiveTracks:e=>s("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",e),getTrack:e=>s("pipeline-analytics","pipelineAnalytics","getTrack","query",e),listTracks:e=>s("pipeline-analytics","pipelineAnalytics","listTracks","query",e),listRecentTracks:e=>s("pipeline-analytics","pipelineAnalytics","listRecentTracks","query",e),clearTracks:e=>s("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",e),getMotionEvents:e=>s("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",e),getObjectEvents:e=>s("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",e),getAudioEvents:e=>s("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",e),listEventKinds:e=>s("pipeline-analytics","pipelineAnalytics","listEventKinds","query",e),listEventKindsBatch:e=>s("pipeline-analytics","pipelineAnalytics","listEventKindsBatch","query",e),getSensorEvents:e=>s("pipeline-analytics","pipelineAnalytics","getSensorEvents","query",e),getKeyEvents:e=>s("pipeline-analytics","pipelineAnalytics","getKeyEvents","query",e),getEventDensity:e=>s("pipeline-analytics","pipelineAnalytics","getEventDensity","query",e),pruneEventsBefore:e=>s("pipeline-analytics","pipelineAnalytics","pruneEventsBefore","mutation",e),pruneTracksBefore:e=>s("pipeline-analytics","pipelineAnalytics","pruneTracksBefore","mutation",e),wipeAllAnalytics:e=>s("pipeline-analytics","pipelineAnalytics","wipeAllAnalytics","mutation",e),deleteTracks:e=>s("pipeline-analytics","pipelineAnalytics","deleteTracks","mutation",e),setTrackFlags:e=>s("pipeline-analytics","pipelineAnalytics","setTrackFlags","mutation",e),getEventStoreFootprint:e=>s("pipeline-analytics","pipelineAnalytics","getEventStoreFootprint","query",e),pruneEvents:e=>s("pipeline-analytics","pipelineAnalytics","pruneEvents","mutation",e),deleteDeviceEvents:e=>s("pipeline-analytics","pipelineAnalytics","deleteDeviceEvents","mutation",e),relocateMedia:e=>s("pipeline-analytics","pipelineAnalytics","relocateMedia","mutation",e),getMediaRelocateStatus:e=>s("pipeline-analytics","pipelineAnalytics","getMediaRelocateStatus","query",e),cancelMediaRelocate:e=>s("pipeline-analytics","pipelineAnalytics","cancelMediaRelocate","mutation",e),listOpsLog:e=>s("pipeline-analytics","pipelineAnalytics","listOpsLog","query",e),getTrainingExportSummary:e=>s("pipeline-analytics","pipelineAnalytics","getTrainingExportSummary","query",e),getTrainingExportUrl:e=>s("pipeline-analytics","pipelineAnalytics","getTrainingExportUrl","query",e),listRetrainStaging:e=>s("pipeline-analytics","pipelineAnalytics","listRetrainStaging","query",e),listRetrainFrames:e=>s("pipeline-analytics","pipelineAnalytics","listRetrainFrames","query",e),selectRetrainFrames:e=>s("pipeline-analytics","pipelineAnalytics","selectRetrainFrames","mutation",e),deselectRetrainFrame:e=>s("pipeline-analytics","pipelineAnalytics","deselectRetrainFrame","mutation",e),getRetrainFrameImage:e=>s("pipeline-analytics","pipelineAnalytics","getRetrainFrameImage","query",e),proposeRetrainAnnotations:e=>s("pipeline-analytics","pipelineAnalytics","proposeRetrainAnnotations","mutation",e),listRetrainAnnotations:e=>s("pipeline-analytics","pipelineAnalytics","listRetrainAnnotations","query",e),saveRetrainAnnotations:e=>s("pipeline-analytics","pipelineAnalytics","saveRetrainAnnotations","mutation",e),completeRetrainTrack:e=>s("pipeline-analytics","pipelineAnalytics","completeRetrainTrack","mutation",e),restageRetrainTrack:e=>s("pipeline-analytics","pipelineAnalytics","restageRetrainTrack","mutation",e),getRetrainExportUrl:e=>s("pipeline-analytics","pipelineAnalytics","getRetrainExportUrl","query",e),getEventMedia:e=>s("pipeline-analytics","pipelineAnalytics","getEventMedia","query",e),getTrackMedia:e=>s("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",e),listTrackMedia:e=>s("pipeline-analytics","pipelineAnalytics","listTrackMedia","query",e),searchObjectEvents:e=>s("pipeline-analytics","pipelineAnalytics","searchObjectEvents","query",e),wipeObjectEmbeddings:e=>s("pipeline-analytics","pipelineAnalytics","wipeObjectEmbeddings","mutation",e),rebuildObjectEmbeddings:e=>s("pipeline-analytics","pipelineAnalytics","rebuildObjectEmbeddings","mutation",e),getObjectEmbeddingRebuildStatus:e=>s("pipeline-analytics","pipelineAnalytics","getObjectEmbeddingRebuildStatus","query",e),getDeviceSettingsContribution:e=>s("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",e)},powerMeter:{getStatus:e=>s("power-meter","powerMeter","getStatus","query",e)},presence:{getStatus:e=>s("presence","presence","getStatus","query",e)},pressureSensor:{getStatus:e=>s("pressure-sensor","pressureSensor","getStatus","query",e)},privacyMask:{getOptions:e=>s("privacy-mask","privacyMask","getOptions","query",e),setMask:e=>s("privacy-mask","privacyMask","setMask","mutation",e),setAudioEnabled:e=>s("privacy-mask","privacyMask","setAudioEnabled","mutation",e),getStatus:e=>s("privacy-mask","privacyMask","getStatus","query",e)},ptz:{move:e=>s("ptz","ptz","move","mutation",e),continuousMove:e=>s("ptz","ptz","continuousMove","mutation",e),stop:e=>s("ptz","ptz","stop","mutation",e),getPresets:e=>s("ptz","ptz","getPresets","query",e),goToPreset:e=>s("ptz","ptz","goToPreset","mutation",e),savePreset:e=>s("ptz","ptz","savePreset","mutation",e),deletePreset:e=>s("ptz","ptz","deletePreset","mutation",e),getOptions:e=>s("ptz","ptz","getOptions","query",e),goHome:e=>s("ptz","ptz","goHome","mutation",e),getPosition:e=>s("ptz","ptz","getPosition","query",e),setAutofocus:e=>s("ptz","ptz","setAutofocus","mutation",e),getStatus:e=>s("ptz","ptz","getStatus","query",e)},ptzAutotrack:{getStatus:e=>s("ptz-autotrack","ptzAutotrack","getStatus","query",e),setEnabled:e=>s("ptz-autotrack","ptzAutotrack","setEnabled","mutation",e),getSettings:e=>s("ptz-autotrack","ptzAutotrack","getSettings","query",e),setSettings:e=>s("ptz-autotrack","ptzAutotrack","setSettings","mutation",e)},reboot:{reboot:e=>s("reboot","reboot","reboot","mutation",e)},sceneMonitor:{listScenes:e=>s("scene-monitor","sceneMonitor","listScenes","query",e),createScene:e=>s("scene-monitor","sceneMonitor","createScene","mutation",e),updateScene:e=>s("scene-monitor","sceneMonitor","updateScene","mutation",e),deleteScene:e=>s("scene-monitor","sceneMonitor","deleteScene","mutation",e),captureReference:e=>s("scene-monitor","sceneMonitor","captureReference","mutation",e),deleteReference:e=>s("scene-monitor","sceneMonitor","deleteReference","mutation",e),recheckNow:e=>s("scene-monitor","sceneMonitor","recheckNow","mutation",e),getStatus:e=>s("scene-monitor","sceneMonitor","getStatus","query",e)},scriptRunner:{run:e=>s("script-runner","scriptRunner","run","mutation",e),stop:e=>s("script-runner","scriptRunner","stop","mutation",e),getStatus:e=>s("script-runner","scriptRunner","getStatus","query",e)},smoke:{getStatus:e=>s("smoke","smoke","getStatus","query",e)},snapshot:{getSnapshot:e=>s("snapshot","snapshot","getSnapshot","query",e),invalidateCache:e=>s("snapshot","snapshot","invalidateCache","mutation",e),getSnapshotOverview:e=>s("snapshot","snapshot","getSnapshotOverview","query",e),getSnapshotLinks:e=>s("snapshot","snapshot","getSnapshotLinks","query",e),getStatus:e=>s("snapshot","snapshot","getStatus","query",e),getDeviceSettingsContribution:e=>s("snapshot","snapshot","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>s("snapshot","snapshot","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>s("snapshot","snapshot","applyDeviceSettingsPatch","mutation",e)},streamCatalog:{getCatalog:e=>s("stream-catalog","streamCatalog","getCatalog","query",e)},streamParams:{getOptions:e=>s("stream-params","streamParams","getOptions","query",e),setProfile:e=>s("stream-params","streamParams","setProfile","mutation",e),getConfigSchema:e=>s("stream-params","streamParams","getConfigSchema","query",e),getStatus:e=>s("stream-params","streamParams","getStatus","query",e)},switch:{setState:e=>s("switch","switch","setState","mutation",e),getStatus:e=>s("switch","switch","getStatus","query",e)},tamper:{getStatus:e=>s("tamper","tamper","getStatus","query",e)},temperatureSensor:{getStatus:e=>s("temperature-sensor","temperatureSensor","getStatus","query",e)},update:{installUpdate:e=>s("update","update","installUpdate","mutation",e),getStatus:e=>s("update","update","getStatus","query",e)},vacuumControl:{start:e=>s("vacuum-control","vacuumControl","start","mutation",e),pause:e=>s("vacuum-control","vacuumControl","pause","mutation",e),stop:e=>s("vacuum-control","vacuumControl","stop","mutation",e),returnToBase:e=>s("vacuum-control","vacuumControl","returnToBase","mutation",e),locate:e=>s("vacuum-control","vacuumControl","locate","mutation",e),setFanSpeed:e=>s("vacuum-control","vacuumControl","setFanSpeed","mutation",e),getStatus:e=>s("vacuum-control","vacuumControl","getStatus","query",e)},valve:{open:e=>s("valve","valve","open","mutation",e),close:e=>s("valve","valve","close","mutation",e),stop:e=>s("valve","valve","stop","mutation",e),setPosition:e=>s("valve","valve","setPosition","mutation",e),getStatus:e=>s("valve","valve","getStatus","query",e)},vibration:{getStatus:e=>s("vibration","vibration","getStatus","query",e)},videoclips:{listClips:e=>s("videoclips","videoclips","listClips","query",e),getClipPlayback:e=>s("videoclips","videoclips","getClipPlayback","query",e)},waterHeater:{setTargetTemp:e=>s("water-heater","waterHeater","setTargetTemp","mutation",e),setOperationMode:e=>s("water-heater","waterHeater","setOperationMode","mutation",e),setAway:e=>s("water-heater","waterHeater","setAway","mutation",e),getStatus:e=>s("water-heater","waterHeater","getStatus","query",e)},weather:{getStatus:e=>s("weather","weather","getStatus","query",e)},webrtcSession:{listStreams:e=>s("webrtc-session","webrtcSession","listStreams","query",e),createSession:e=>s("webrtc-session","webrtcSession","createSession","mutation",e),handleOffer:e=>s("webrtc-session","webrtcSession","handleOffer","mutation",e),handleAnswer:e=>s("webrtc-session","webrtcSession","handleAnswer","mutation",e),addIceCandidate:e=>s("webrtc-session","webrtcSession","addIceCandidate","mutation",e),getIceCandidates:e=>s("webrtc-session","webrtcSession","getIceCandidates","query",e),closeSession:e=>s("webrtc-session","webrtcSession","closeSession","mutation",e),hasAdaptiveBitrate:e=>s("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",e),getSessionState:e=>s("webrtc-session","webrtcSession","getSessionState","query",e)},zoneAnalytics:{getCurrentSnapshot:e=>s("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",e),getZoneHistory:e=>s("zone-analytics","zoneAnalytics","getZoneHistory","query",e),getCameraHistory:e=>s("zone-analytics","zoneAnalytics","getCameraHistory","query",e),getUnzonedHistory:e=>s("zone-analytics","zoneAnalytics","getUnzonedHistory","query",e)},zoneRules:{listRules:e=>s("zone-rules","zoneRules","listRules","query",e),setRules:e=>s("zone-rules","zoneRules","setRules","mutation",e)},zones:{listZones:e=>s("zones","zones","listZones","query",e),addZone:e=>s("zones","zones","addZone","mutation",e),removeZone:e=>s("zones","zones","removeZone","mutation",e),updateZone:e=>s("zones","zones","updateZone","mutation",e)},addonSettings:{getDeviceSettings:e=>c("addonSettings","getDeviceSettings","query",e),updateDeviceSettings:e=>c("addonSettings","updateDeviceSettings","mutation",e)},cameraPipelineConfig:{getDeviceSettingsContribution:e=>c("cameraPipelineConfig","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("cameraPipelineConfig","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("cameraPipelineConfig","applyDeviceSettingsPatch","mutation",e)},deviceAdoption:{getStatus:e=>c("deviceAdoption","getStatus","query",e)},deviceExport:{getDeviceSettingsContribution:e=>c("deviceExport","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("deviceExport","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("deviceExport","applyDeviceSettingsPatch","mutation",e)},deviceManager:{loadConfig:e=>c("deviceManager","loadConfig","query",e),loadRuntimeState:e=>c("deviceManager","loadRuntimeState","query",e),loadMeta:e=>c("deviceManager","loadMeta","query",e),setName:e=>c("deviceManager","setName","mutation",e),setLocation:e=>c("deviceManager","setLocation","mutation",e),setType:e=>c("deviceManager","setType","mutation",e),setIntegrationId:e=>c("deviceManager","setIntegrationId","mutation",e),setLinkDeviceId:e=>c("deviceManager","setLinkDeviceId","mutation",e),setPrimaryChildEntityId:e=>c("deviceManager","setPrimaryChildEntityId","mutation",e),setChildLayout:e=>c("deviceManager","setChildLayout","mutation",e),setDisplay:e=>c("deviceManager","setDisplay","mutation",e),getWireableFields:e=>c("deviceManager","getWireableFields","query",e),setRole:e=>c("deviceManager","setRole","mutation",e),applyInitialMeta:e=>c("deviceManager","applyInitialMeta","mutation",e),setMetadata:e=>c("deviceManager","setMetadata","mutation",e),setDisabled:e=>c("deviceManager","setDisabled","mutation",e),getDevice:e=>c("deviceManager","getDevice","query",e),getLinkedDevices:e=>c("deviceManager","getLinkedDevices","query",e),getStreamSources:e=>c("deviceManager","getStreamSources","query",e),getConfigSchema:e=>c("deviceManager","getConfigSchema","query",e),getSettingsSchema:e=>c("deviceManager","getSettingsSchema","query",e),updateConfig:e=>c("deviceManager","updateConfig","mutation",e),enable:e=>c("deviceManager","enable","mutation",e),disable:e=>c("deviceManager","disable","mutation",e),remove:e=>c("deviceManager","remove","mutation",e),getStreamProfileMap:e=>c("deviceManager","getStreamProfileMap","query",e),setStreamProfileMap:e=>c("deviceManager","setStreamProfileMap","mutation",e),probeStreams:e=>c("deviceManager","probeStreams","mutation",e),getBindings:e=>c("deviceManager","getBindings","query",e),getAllBindings:e=>c("deviceManager","getAllBindings","query",e),setWrapperActive:e=>c("deviceManager","setWrapperActive","mutation",e),getDeviceSettingsAggregate:e=>c("deviceManager","getDeviceSettingsAggregate","query",e),getDeviceLiveInfoAggregate:e=>c("deviceManager","getDeviceLiveInfoAggregate","query",e),getDeviceAggregate:e=>c("deviceManager","getDeviceAggregate","query",e),runDeviceAction:e=>c("deviceManager","runDeviceAction","mutation",e),updateDeviceField:e=>c("deviceManager","updateDeviceField","mutation",e),updateDeviceFieldsBatch:e=>c("deviceManager","updateDeviceFieldsBatch","mutation",e),testField:e=>c("deviceManager","testField","mutation",e),getDeviceStatusAggregate:e=>c("deviceManager","getDeviceStatusAggregate","query",e),getDeviceSettingsContribution:e=>c("deviceManager","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("deviceManager","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("deviceManager","applyDeviceSettingsPatch","mutation",e)},deviceState:{getSnapshot:e=>c("deviceState","getSnapshot","query",e),getCapSlice:e=>c("deviceState","getCapSlice","query",e),setCapSlice:e=>c("deviceState","setCapSlice","mutation",e)},faceGallery:{getFaceByTrack:e=>c("faceGallery","getFaceByTrack","query",e)},networkQuality:{getDeviceStats:e=>c("networkQuality","getDeviceStats","query",e),reportClientStats:e=>c("networkQuality","reportClientStats","mutation",e)},osdManager:{getDeviceOsd:e=>c("osdManager","getDeviceOsd","query",e),getSourceCatalog:e=>c("osdManager","getSourceCatalog","query",e),setSlotBinding:e=>c("osdManager","setSlotBinding","mutation",e),clearSlotBinding:e=>c("osdManager","clearSlotBinding","mutation",e),previewSlot:e=>c("osdManager","previewSlot","mutation",e),renderDevice:e=>c("osdManager","renderDevice","mutation",e)},pipelineExecutor:{runPipeline:e=>c("pipelineExecutor","runPipeline","mutation",e),runPipelineBatch:e=>c("pipelineExecutor","runPipelineBatch","mutation",e)},pipelineOrchestrator:{assignPipeline:e=>c("pipelineOrchestrator","assignPipeline","mutation",e),unassignPipeline:e=>c("pipelineOrchestrator","unassignPipeline","mutation",e),setPipelineDevicePin:e=>c("pipelineOrchestrator","setPipelineDevicePin","mutation",e),getPipelineDevicePin:e=>c("pipelineOrchestrator","getPipelineDevicePin","query",e),getPipelineAssignment:e=>c("pipelineOrchestrator","getPipelineAssignment","query",e),getCameraMetrics:e=>c("pipelineOrchestrator","getCameraMetrics","query",e),assignAudio:e=>c("pipelineOrchestrator","assignAudio","mutation",e),unassignAudio:e=>c("pipelineOrchestrator","unassignAudio","mutation",e),getAudioAssignment:e=>c("pipelineOrchestrator","getAudioAssignment","query",e),getAudioAssignments:e=>c("pipelineOrchestrator","getAudioAssignments","query",e),getCameraSettings:e=>c("pipelineOrchestrator","getCameraSettings","query",e),setCameraStepToggle:e=>c("pipelineOrchestrator","setCameraStepToggle","mutation",e),getCameraStepOverrides:e=>c("pipelineOrchestrator","getCameraStepOverrides","query",e),setCameraStepOverride:e=>c("pipelineOrchestrator","setCameraStepOverride","mutation",e),setCameraPipelineForAgent:e=>c("pipelineOrchestrator","setCameraPipelineForAgent","mutation",e),resolvePipeline:e=>c("pipelineOrchestrator","resolvePipeline","query",e),getCameraSwitches:e=>c("pipelineOrchestrator","getCameraSwitches","query",e),setCameraSwitch:e=>c("pipelineOrchestrator","setCameraSwitch","mutation",e),getCameraStatus:e=>c("pipelineOrchestrator","getCameraStatus","query",e),getDeviceSettingsContribution:e=>c("pipelineOrchestrator","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("pipelineOrchestrator","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",e)},pipelineRunner:{detachCamera:e=>c("pipelineRunner","detachCamera","mutation",e),getCameraMetrics:e=>c("pipelineRunner","getCameraMetrics","query",e),runDetailSubtree:e=>c("pipelineRunner","runDetailSubtree","mutation",e)},plateGallery:{listPlates:e=>c("plateGallery","listPlates","query",e),getPlateByTrack:e=>c("plateGallery","getPlateByTrack","query",e)},recording:{getAvailability:e=>c("recording","getAvailability","query",e),getDaysWithRecordings:e=>c("recording","getDaysWithRecordings","query",e),getPlaybackManifest:e=>c("recording","getPlaybackManifest","query",e),getDeviceConfig:e=>c("recording","getDeviceConfig","query",e),locateSegment:e=>c("recording","locateSegment","query",e),readSegmentBytes:e=>c("recording","readSegmentBytes","query",e),readGopBytes:e=>c("recording","readGopBytes","query",e),setDeviceConfig:e=>c("recording","setDeviceConfig","mutation",e),rescanStorage:e=>c("recording","rescanStorage","mutation",e),pruneFootage:e=>c("recording","pruneFootage","mutation",e),deleteFootprint:e=>c("recording","deleteFootprint","mutation",e),renderGif:e=>c("recording","renderGif","mutation",e),renderClip:e=>c("recording","renderClip","mutation",e),getStatus:e=>c("recording","getStatus","query",e),getDeviceSettingsContribution:e=>c("recording","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("recording","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("recording","applyDeviceSettingsPatch","mutation",e)},recordingExport:{createExport:e=>c("recordingExport","createExport","mutation",e),listExports:e=>c("recordingExport","listExports","query",e)},streamBroker:{publishCameraStream:e=>c("streamBroker","publishCameraStream","mutation",e),retractCameraStream:e=>c("streamBroker","retractCameraStream","mutation",e),assignProfile:e=>c("streamBroker","assignProfile","mutation",e),unassignProfile:e=>c("streamBroker","unassignProfile","mutation",e),renderPreBufferClip:e=>c("streamBroker","renderPreBufferClip","mutation",e),produceEventMedia:e=>c("streamBroker","produceEventMedia","mutation",e),restartProfile:e=>c("streamBroker","restartProfile","mutation",e),getDeviceAudioMute:e=>c("streamBroker","getDeviceAudioMute","query",e),setDeviceAudioMute:e=>c("streamBroker","setDeviceAudioMute","mutation",e),getDeviceSettingsContribution:e=>c("streamBroker","getDeviceSettingsContribution","query",e),getDeviceLiveContribution:e=>c("streamBroker","getDeviceLiveContribution","query",e),applyDeviceSettingsPatch:e=>c("streamBroker","applyDeviceSettingsPatch","mutation",e)}}}var Ve=new Set(["accessories","air-quality-sensor","alarm-panel","ambient-light-sensor","audio-analysis","audio-metrics","automation-control","battery","binary","brightness","button","camera-credentials","camera-pipeline-config","camera-streams","carbon-monoxide","climate-control","color","connectivity","consumables","contact","control","cover","day-night","detection-pipeline","device-discovery","device-ops","device-status","doorbell","enum-sensor","event-emitter","events","fan-control","feature-probe","flood","gas","humidifier","humidity-sensor","image","image-settings","intercom","lawn-mower-control","lock-control","media-player","motion","motion-detection","motion-trigger","motion-zones","native-object-detection","notifier","numeric-sensor","osd","pet-feeder","pipeline-analytics","power-meter","presence","pressure-sensor","privacy-mask","ptz","ptz-autotrack","reboot","scene-monitor","script-runner","smoke","snapshot","stream-catalog","stream-params","switch","tamper","temperature-sensor","update","vacuum-control","valve","vibration","videoclips","water-heater","weather","webrtc-session","zone-analytics","zone-rules","zones"]);function Ze(e){return Ve.has(e)}function Ke(e){return JSON.parse(e)}function We(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:Object.assign({},e)}function Qe(e){return Array.isArray(e)?e:[]}function Je(e,t=""){return"string"==typeof e?e:t}function Ye(e,t=0){return"number"==typeof e?e:t}function Xe(e,t=!1){return"boolean"==typeof e?e:t}function et(e){try{return We(Ke(e))}catch{return null}}function tt(e){try{const t=Ke(e);return Array.isArray(t)?t:null}catch{return null}}function it(e){return new Promise(t=>setTimeout(t,Math.max(0,e)))}function nt(e,t){return t.aborted?Promise.resolve():new Promise(i=>{const n=setTimeout(()=>{t.removeEventListener("abort",r),i()},Math.max(0,e)),r=()=>{clearTimeout(n),t.removeEventListener("abort",r),i()};t.addEventListener("abort",r,{once:!0})})}},1035,{"0":1034,"1":1036,"2":2163,"3":1115,"4":2164,"paths":{"2163":"/viewer/camstack/_expo/static/js/web/node-path-f5cd235cc4e30b6508669583b1b2c718.js","2164":"/viewer/camstack/_expo/static/js/web/node-fs-48d2a76a1b4358828a29686e594be263.js"}});
2325
2325
  __d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}}),Object.defineProperty(_e,"z",{enumerable:!0,get:function(){return t}});var e=r(_d[0]);Object.keys(e).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(_e,t)||Object.defineProperty(_e,t,{enumerable:!0,get:function(){return e[t]}})});var t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(e),n=t},1036,[1037]);
2326
2326
  __d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"globalRegistry",{enumerable:!0,get:function(){return t.globalRegistry}}),Object.defineProperty(_e,"registry",{enumerable:!0,get:function(){return t.registry}}),Object.defineProperty(_e,"config",{enumerable:!0,get:function(){return t.config}}),Object.defineProperty(_e,"$output",{enumerable:!0,get:function(){return t.$output}}),Object.defineProperty(_e,"$input",{enumerable:!0,get:function(){return t.$input}}),Object.defineProperty(_e,"$brand",{enumerable:!0,get:function(){return t.$brand}}),Object.defineProperty(_e,"clone",{enumerable:!0,get:function(){return t.clone}}),Object.defineProperty(_e,"regexes",{enumerable:!0,get:function(){return t.regexes}}),Object.defineProperty(_e,"treeifyError",{enumerable:!0,get:function(){return t.treeifyError}}),Object.defineProperty(_e,"prettifyError",{enumerable:!0,get:function(){return t.prettifyError}}),Object.defineProperty(_e,"formatError",{enumerable:!0,get:function(){return t.formatError}}),Object.defineProperty(_e,"flattenError",{enumerable:!0,get:function(){return t.flattenError}}),Object.defineProperty(_e,"TimePrecision",{enumerable:!0,get:function(){return t.TimePrecision}}),Object.defineProperty(_e,"util",{enumerable:!0,get:function(){return t.util}}),Object.defineProperty(_e,"NEVER",{enumerable:!0,get:function(){return t.NEVER}}),Object.defineProperty(_e,"toJSONSchema",{enumerable:!0,get:function(){return p.toJSONSchema}}),Object.defineProperty(_e,"fromJSONSchema",{enumerable:!0,get:function(){return d.fromJSONSchema}}),Object.defineProperty(_e,"ZodISODateTime",{enumerable:!0,get:function(){return P.ZodISODateTime}}),Object.defineProperty(_e,"ZodISODate",{enumerable:!0,get:function(){return P.ZodISODate}}),Object.defineProperty(_e,"ZodISOTime",{enumerable:!0,get:function(){return P.ZodISOTime}}),Object.defineProperty(_e,"ZodISODuration",{enumerable:!0,get:function(){return P.ZodISODuration}}),Object.defineProperty(_e,"core",{enumerable:!0,get:function(){return n}}),Object.defineProperty(_e,"locales",{enumerable:!0,get:function(){return j}}),Object.defineProperty(_e,"iso",{enumerable:!0,get:function(){return s}}),Object.defineProperty(_e,"coerce",{enumerable:!0,get:function(){return E}});var t=r(_d[0]),n=e(t),o=r(_d[1]);Object.keys(o).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return o[e]}})});var u=r(_d[2]);Object.keys(u).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return u[e]}})});var c=r(_d[3]);Object.keys(c).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return c[e]}})});var f=r(_d[4]);Object.keys(f).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return f[e]}})});var b=r(_d[5]);Object.keys(b).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return b[e]}})});var l,O=r(_d[6]),y=(l=O)&&l.__esModule?l:{default:l},p=r(_d[7]),d=r(_d[8]),j=e(r(_d[9])),P=r(_d[10]),s=e(P),E=e(r(_d[11]));(0,t.config)((0,y.default)())},1037,[1038,1107,1108,1111,1110,1112,1058,1104,1113,1048,1109,1114]);
2327
2327
  __d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var c=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,c.get?c:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"toJSONSchema",{enumerable:!0,get:function(){return P.toJSONSchema}}),Object.defineProperty(_e,"JSONSchemaGenerator",{enumerable:!0,get:function(){return s.JSONSchemaGenerator}}),Object.defineProperty(_e,"util",{enumerable:!0,get:function(){return b}}),Object.defineProperty(_e,"regexes",{enumerable:!0,get:function(){return O}}),Object.defineProperty(_e,"locales",{enumerable:!0,get:function(){return l}}),Object.defineProperty(_e,"JSONSchema",{enumerable:!0,get:function(){return h}});var t=r(_d[0]);Object.keys(t).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return t[e]}})});var n=r(_d[1]);Object.keys(n).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return n[e]}})});var c=r(_d[2]);Object.keys(c).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return c[e]}})});var o=r(_d[3]);Object.keys(o).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return o[e]}})});var u=r(_d[4]);Object.keys(u).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return u[e]}})});var f=r(_d[5]);Object.keys(f).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return f[e]}})});var b=e(r(_d[6])),O=e(r(_d[7])),l=e(r(_d[8])),p=r(_d[9]);Object.keys(p).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return p[e]}})});var y=r(_d[10]);Object.keys(y).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return y[e]}})});var j=r(_d[11]);Object.keys(j).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return j[e]}})});var d=r(_d[12]);Object.keys(d).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return d[e]}})});var P=r(_d[13]),s=r(_d[14]),h=e(r(_d[15]))},1038,[1039,1040,1041,1043,1044,1047,1042,1045,1048,1101,1046,1102,1103,1104,1105,1106]);
@@ -2420,7 +2420,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
2420
2420
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.refreshSessionToken=async function(t){const n=t.trpcClient,{code:o}=await n.auth.createHandoffCode.mutate(),{token:s}=await n.auth.redeemHandoffCode.mutate({code:o});if('string'!=typeof s||0===s.length)throw new Error('Session refresh returned an empty token');return s}},1131,[]);
2421
2421
  __d(function(g,r,i,a,m,e,d){"use strict";function t(t){const n=t.split('.');if(n.length<2||!n[1])return null;try{const t=Buffer.from(n[1],'base64').toString('utf8'),u=JSON.parse(t);if('object'!=typeof u||null===u)return null;const l=Reflect.get(u,'exp');return'number'==typeof l&&Number.isFinite(l)?1e3*l:null}catch{return null}}Object.defineProperty(e,'__esModule',{value:!0}),e.decodeJwtExpMs=t,e.isJwtExpired=function(n,u=Date.now(),l=0){const o=t(n);return null!==o&&o<=u+l},e.refreshDelayMs=function(o,c=Date.now()){const s=t(o);if(null===s)return null;const f=s-c;if(f<=0)return null;const p=f*n;return Math.max(l,Math.min(u,p))};const n=.5,u=864e5,l=3e4},1132,[]);
2422
2422
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"useSnapshotRefreshStore",{enumerable:!0,get:function(){return t}});const t=(0,r(d[0]).create)(t=>({epoch:0,bumpSnapshots:()=>t(t=>({epoch:t.epoch+1}))}))},1133,[1125]);
2423
- __d(function(g,r,i,a,_m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.fireHaptic=function(t){return},r(d[0])},1134,{"0":136,"1":2164,"2":1115,"paths":{"2164":"/viewer/camstack/_expo/static/js/web/Haptics-35bc7b5bbbc3731f03b5d5fafff2ac0c.js"}});
2423
+ __d(function(g,r,i,a,_m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.fireHaptic=function(t){return},r(d[0])},1134,{"0":136,"1":2165,"2":1115,"paths":{"2165":"/viewer/camstack/_expo/static/js/web/Haptics-a27d50d15732e0b48774f90db59c02bf.js"}});
2424
2424
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.ConnectionBanner=function(){const u=(0,n.c)(8),{t:v}=(0,o.useTranslation)(),{state:f,startingUp:p}=(0,t.useConnection)(),{colors:C}=(0,c.useTheme)(),_="connecting"===f,b="connected"!==f&&!p;let j;u[0]!==_||u[1]!==v?(j=v(_?"v2.common.connecting":"v2.common.offline"),u[0]=_,u[1]=v,u[2]=j):j=u[2];const y=_?C.primary:C.danger;let T;u[3]!==_||u[4]!==b||u[5]!==j||u[6]!==y?(T=(0,l.jsx)(s.ConnectingIndicator,{visible:b,label:j,dotColor:y,pulse:_}),u[3]=_,u[4]=b,u[5]=j,u[6]=y,u[7]=T):T=u[7];return T};var n=r(d[0]);r(d[1]);var o=r(d[2]),t=r(d[3]),c=r(d[4]),s=r(d[5]),l=r(d[6])},1135,[15,17,786,1006,999,1136,10]);
2425
2425
  __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.ConnectingIndicator=function(e){const _=(0,t.c)(30),{visible:b,label:E,dotColor:T,pulse:I}=e,P=void 0===I||I,{colors:k}=(0,c.useTheme)(),A=S(b),j="shown"===A,R=j||"leaving"===A,V=(0,l.useSharedValue)(0);let G,M;_[0]!==V||_[1]!==j?(G=()=>{V.value=(0,l.withTiming)(j?1:0,{duration:j?p:w,easing:l.Easing.out(l.Easing.quad)})},M=[V,j],_[0]=V,_[1]=j,_[2]=G,_[3]=M):(G=_[2],M=_[3]);(0,n.useEffect)(G,M);const D=(0,l.useSharedValue)(1);let H,N;_[4]!==D||_[5]!==P?(H=()=>{if(P)return D.value=(0,l.withRepeat)((0,l.withSequence)((0,l.withTiming)(.35,{duration:v,easing:l.Easing.inOut(l.Easing.ease)}),(0,l.withTiming)(1,{duration:v,easing:l.Easing.inOut(l.Easing.ease)})),-1,!1),()=>(0,l.cancelAnimation)(D);D.value=(0,l.withTiming)(1,{duration:p})},N=[D,P],_[4]=D,_[5]=P,_[6]=H,_[7]=N):(H=_[6],N=_[7]);(0,n.useEffect)(H,N);const O=(0,l.useAnimatedStyle)((function({_worklet_16598396023453_init_data:e,appear:t}){const n=()=>({opacity:t.value,transform:[{translateY:-4*(1-t.value)}]});return n.__closure={appear:t},n.__workletHash=0xf189d7fb29d,n.__initData=e,n})({_worklet_16598396023453_init_data:x,appear:V})),Y=(0,l.useAnimatedStyle)((function({_worklet_15621255764776_init_data:e,breathe:t}){const n=()=>({opacity:t.value,transform:[{scale:.7+.3*t.value}]});return n.__closure={breathe:t},n.__workletHash=0xe351b669b28,n.__initData=e,n})({_worklet_15621255764776_init_data:C,breathe:D}));if(!R)return null;let z,q,L,W,B,F,J,K;_[8]!==k.borderSubtle||_[9]!==k.surface?(z={alignSelf:"center",flexDirection:"row",alignItems:"center",gap:f.SPACING.md,marginVertical:f.SPACING.sm,paddingVertical:f.SPACING.sm+2,paddingHorizontal:f.SPACING.lg,borderRadius:999,backgroundColor:k.surface,borderWidth:1,borderColor:k.borderSubtle},_[8]=k.borderSubtle,_[9]=k.surface,_[10]=z):z=_[10];_[11]!==O||_[12]!==z?(q=[z,O],_[11]=O,_[12]=z,_[13]=q):q=_[13];_[14]===Symbol.for("react.memo_cache_sentinel")?(L={width:y,height:y,alignItems:"center",justifyContent:"center"},_[14]=L):L=_[14];_[15]!==T?(W={width:y,height:y,borderRadius:4,backgroundColor:T},_[15]=T,_[16]=W):W=_[16];_[17]!==Y||_[18]!==W?(B=(0,h.jsx)(s.default,{style:L,children:(0,h.jsx)(u.default.View,{style:[W,Y]})}),_[17]=Y,_[18]=W,_[19]=B):B=_[19];_[20]!==k.foregroundMuted?(F={color:k.foregroundMuted,fontSize:f.TYPOGRAPHY.size.sm},_[20]=k.foregroundMuted,_[21]=F):F=_[21];_[22]!==E||_[23]!==F?(J=(0,h.jsx)(o.default,{style:F,children:E}),_[22]=E,_[23]=F,_[24]=J):J=_[24];_[25]!==E||_[26]!==B||_[27]!==J||_[28]!==q?(K=(0,h.jsxs)(u.default.View,{accessible:!0,accessibilityRole:"progressbar",accessibilityLabel:E,accessibilityLiveRegion:"polite",style:q,children:[B,J]}),_[25]=E,_[26]=B,_[27]=J,_[28]=q,_[29]=K):K=_[29];return K};var t=r(d[0]),n=r(d[1]),o=e(r(d[2])),s=e(r(d[3])),l=r(d[4]),u=e(l),c=r(d[5]),f=r(d[6]),_=r(d[7]),h=r(d[8]);const b=300,p=220,w=180,v=600,y=8;function S(e){const o=(0,t.c)(3),[s,l]=(0,n.useState)(e?"waiting":"hidden"),[u,c]=(0,n.useState)(e);let f,h;return e!==u&&(c(e),l((0,_.nextPhase)(s,e?"activate":"deactivate"))),o[0]!==s?(f=()=>{if("waiting"!==s&&"leaving"!==s)return;const e="waiting"===s?"delayElapsed":"exitDone",t=setTimeout(()=>l(t=>(0,_.nextPhase)(t,e)),"waiting"===s?b:w);return()=>clearTimeout(t)},h=[s],o[0]=s,o[1]=f,o[2]=h):(f=o[1],h=o[2]),(0,n.useEffect)(f,h),s}const x={code:"function ConnectingIndicatorTsx1(){const{appear}=this.__closure;return{opacity:appear.value,transform:[{translateY:(1-appear.value)*-4}]};}"},C={code:"function ConnectingIndicatorTsx2(){const{breathe}=this.__closure;return{opacity:breathe.value,transform:[{scale:0.7+0.3*breathe.value}]};}"}},1136,[15,17,112,20,1137,999,1001,1472,10]);
2426
2426
  __d(function(g,r,i,a,m,_e,_d){'use strict';Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(_e,"createAnimatedComponent",{enumerable:!0,get:function(){return n.createAnimatedComponent}}),Object.defineProperty(_e,"cancelAnimation",{enumerable:!0,get:function(){return o.cancelAnimation}}),Object.defineProperty(_e,"defineAnimation",{enumerable:!0,get:function(){return o.defineAnimation}}),Object.defineProperty(_e,"GentleSpringConfig",{enumerable:!0,get:function(){return o.GentleSpringConfig}}),Object.defineProperty(_e,"GentleSpringConfigWithDuration",{enumerable:!0,get:function(){return o.GentleSpringConfigWithDuration}}),Object.defineProperty(_e,"Reanimated3DefaultSpringConfig",{enumerable:!0,get:function(){return o.Reanimated3DefaultSpringConfig}}),Object.defineProperty(_e,"Reanimated3DefaultSpringConfigWithDuration",{enumerable:!0,get:function(){return o.Reanimated3DefaultSpringConfigWithDuration}}),Object.defineProperty(_e,"SnappySpringConfig",{enumerable:!0,get:function(){return o.SnappySpringConfig}}),Object.defineProperty(_e,"SnappySpringConfigWithDuration",{enumerable:!0,get:function(){return o.SnappySpringConfigWithDuration}}),Object.defineProperty(_e,"WigglySpringConfig",{enumerable:!0,get:function(){return o.WigglySpringConfig}}),Object.defineProperty(_e,"WigglySpringConfigWithDuration",{enumerable:!0,get:function(){return o.WigglySpringConfigWithDuration}}),Object.defineProperty(_e,"withClamp",{enumerable:!0,get:function(){return o.withClamp}}),Object.defineProperty(_e,"withDecay",{enumerable:!0,get:function(){return o.withDecay}}),Object.defineProperty(_e,"withDelay",{enumerable:!0,get:function(){return o.withDelay}}),Object.defineProperty(_e,"withRepeat",{enumerable:!0,get:function(){return o.withRepeat}}),Object.defineProperty(_e,"withSequence",{enumerable:!0,get:function(){return o.withSequence}}),Object.defineProperty(_e,"withSpring",{enumerable:!0,get:function(){return o.withSpring}}),Object.defineProperty(_e,"withTiming",{enumerable:!0,get:function(){return o.withTiming}}),Object.defineProperty(_e,"convertToRGBA",{enumerable:!0,get:function(){return c.convertToRGBA}}),Object.defineProperty(_e,"isColor",{enumerable:!0,get:function(){return c.isColor}}),Object.defineProperty(_e,"ReanimatedLogLevel",{enumerable:!0,get:function(){return f.ReanimatedLogLevel}}),Object.defineProperty(_e,"DynamicColorIOS",{enumerable:!0,get:function(){return f.DynamicColorIOS}}),Object.defineProperty(_e,"PlatformColor",{enumerable:!0,get:function(){return f.PlatformColor}}),Object.defineProperty(_e,"processColor",{enumerable:!0,get:function(){return f.processColor}}),Object.defineProperty(_e,"InterfaceOrientation",{enumerable:!0,get:function(){return b.InterfaceOrientation}}),Object.defineProperty(_e,"IOSReferenceFrame",{enumerable:!0,get:function(){return b.IOSReferenceFrame}}),Object.defineProperty(_e,"KeyboardState",{enumerable:!0,get:function(){return b.KeyboardState}}),Object.defineProperty(_e,"ReduceMotion",{enumerable:!0,get:function(){return b.ReduceMotion}}),Object.defineProperty(_e,"SensorType",{enumerable:!0,get:function(){return b.SensorType}}),Object.defineProperty(_e,"LayoutAnimationConfig",{enumerable:!0,get:function(){return l.LayoutAnimationConfig}}),Object.defineProperty(_e,"PerformanceMonitor",{enumerable:!0,get:function(){return d.PerformanceMonitor}}),Object.defineProperty(_e,"ReducedMotionConfig",{enumerable:!0,get:function(){return p.ReducedMotionConfig}}),Object.defineProperty(_e,"SharedTransitionBoundary",{enumerable:!0,get:function(){return O.SharedTransitionBoundary}}),Object.defineProperty(_e,"configureReanimatedLogger",{enumerable:!0,get:function(){return y.configureReanimatedLogger}}),Object.defineProperty(_e,"enableLayoutAnimations",{enumerable:!0,get:function(){return P.enableLayoutAnimations}}),Object.defineProperty(_e,"getViewProp",{enumerable:!0,get:function(){return P.getViewProp}}),Object.defineProperty(_e,"isConfigured",{enumerable:!0,get:function(){return P.isConfigured}}),Object.defineProperty(_e,"isReanimated3",{enumerable:!0,get:function(){return P.isReanimated3}}),Object.defineProperty(_e,"makeMutable",{enumerable:!0,get:function(){return P.makeMutable}}),Object.defineProperty(_e,"NativeEventsManager",{enumerable:!0,get:function(){return j.NativeEventsManager}}),Object.defineProperty(_e,"Easing",{enumerable:!0,get:function(){return R.Easing}}),Object.defineProperty(_e,"getDynamicFeatureFlag",{enumerable:!0,get:function(){return S.getDynamicFeatureFlag}}),Object.defineProperty(_e,"getStaticFeatureFlag",{enumerable:!0,get:function(){return S.getStaticFeatureFlag}}),Object.defineProperty(_e,"setDynamicFeatureFlag",{enumerable:!0,get:function(){return S.setDynamicFeatureFlag}}),Object.defineProperty(_e,"useAnimatedKeyboard",{enumerable:!0,get:function(){return h.useAnimatedKeyboard}}),Object.defineProperty(_e,"useAnimatedProps",{enumerable:!0,get:function(){return h.useAnimatedProps}}),Object.defineProperty(_e,"useAnimatedReaction",{enumerable:!0,get:function(){return h.useAnimatedReaction}}),Object.defineProperty(_e,"useAnimatedRef",{enumerable:!0,get:function(){return h.useAnimatedRef}}),Object.defineProperty(_e,"useAnimatedScrollHandler",{enumerable:!0,get:function(){return h.useAnimatedScrollHandler}}),Object.defineProperty(_e,"useAnimatedSensor",{enumerable:!0,get:function(){return h.useAnimatedSensor}}),Object.defineProperty(_e,"useAnimatedStyle",{enumerable:!0,get:function(){return h.useAnimatedStyle}}),Object.defineProperty(_e,"useComposedEventHandler",{enumerable:!0,get:function(){return h.useComposedEventHandler}}),Object.defineProperty(_e,"useDerivedValue",{enumerable:!0,get:function(){return h.useDerivedValue}}),Object.defineProperty(_e,"useEvent",{enumerable:!0,get:function(){return h.useEvent}}),Object.defineProperty(_e,"useFrameCallback",{enumerable:!0,get:function(){return h.useFrameCallback}}),Object.defineProperty(_e,"useHandler",{enumerable:!0,get:function(){return h.useHandler}}),Object.defineProperty(_e,"useReducedMotion",{enumerable:!0,get:function(){return h.useReducedMotion}}),Object.defineProperty(_e,"useScrollOffset",{enumerable:!0,get:function(){return h.useScrollOffset}}),Object.defineProperty(_e,"useScrollViewOffset",{enumerable:!0,get:function(){return h.useScrollOffset}}),Object.defineProperty(_e,"useSharedValue",{enumerable:!0,get:function(){return h.useSharedValue}}),Object.defineProperty(_e,"useTimestamp",{enumerable:!0,get:function(){return h.useTimestamp}}),Object.defineProperty(_e,"Extrapolate",{enumerable:!0,get:function(){return I.Extrapolate}}),Object.defineProperty(_e,"interpolateColor",{enumerable:!0,get:function(){return I.interpolateColor}}),Object.defineProperty(_e,"clamp",{enumerable:!0,get:function(){return F.clamp}}),Object.defineProperty(_e,"Extrapolation",{enumerable:!0,get:function(){return F.Extrapolation}}),Object.defineProperty(_e,"interpolate",{enumerable:!0,get:function(){return F.interpolate}}),Object.defineProperty(_e,"isSharedValue",{enumerable:!0,get:function(){return L.isSharedValue}}),Object.defineProperty(_e,"advanceAnimationByFrame",{enumerable:!0,get:function(){return w.advanceAnimationByFrame}}),Object.defineProperty(_e,"advanceAnimationByTime",{enumerable:!0,get:function(){return w.advanceAnimationByTime}}),Object.defineProperty(_e,"getAnimatedStyle",{enumerable:!0,get:function(){return w.getAnimatedStyle}}),Object.defineProperty(_e,"setUpTests",{enumerable:!0,get:function(){return w.setUpTests}}),Object.defineProperty(_e,"withReanimatedTimer",{enumerable:!0,get:function(){return w.withReanimatedTimer}}),Object.defineProperty(_e,"BaseAnimationBuilder",{enumerable:!0,get:function(){return D.BaseAnimationBuilder}}),Object.defineProperty(_e,"BounceIn",{enumerable:!0,get:function(){return D.BounceIn}}),Object.defineProperty(_e,"BounceInDown",{enumerable:!0,get:function(){return D.BounceInDown}}),Object.defineProperty(_e,"BounceInLeft",{enumerable:!0,get:function(){return D.BounceInLeft}}),Object.defineProperty(_e,"BounceInRight",{enumerable:!0,get:function(){return D.BounceInRight}}),Object.defineProperty(_e,"BounceInUp",{enumerable:!0,get:function(){return D.BounceInUp}}),Object.defineProperty(_e,"BounceOut",{enumerable:!0,get:function(){return D.BounceOut}}),Object.defineProperty(_e,"BounceOutDown",{enumerable:!0,get:function(){return D.BounceOutDown}}),Object.defineProperty(_e,"BounceOutLeft",{enumerable:!0,get:function(){return D.BounceOutLeft}}),Object.defineProperty(_e,"BounceOutRight",{enumerable:!0,get:function(){return D.BounceOutRight}}),Object.defineProperty(_e,"BounceOutUp",{enumerable:!0,get:function(){return D.BounceOutUp}}),Object.defineProperty(_e,"ComplexAnimationBuilder",{enumerable:!0,get:function(){return D.ComplexAnimationBuilder}}),Object.defineProperty(_e,"CurvedTransition",{enumerable:!0,get:function(){return D.CurvedTransition}}),Object.defineProperty(_e,"EntryExitTransition",{enumerable:!0,get:function(){return D.EntryExitTransition}}),Object.defineProperty(_e,"FadeIn",{enumerable:!0,get:function(){return D.FadeIn}}),Object.defineProperty(_e,"FadeInDown",{enumerable:!0,get:function(){return D.FadeInDown}}),Object.defineProperty(_e,"FadeInLeft",{enumerable:!0,get:function(){return D.FadeInLeft}}),Object.defineProperty(_e,"FadeInRight",{enumerable:!0,get:function(){return D.FadeInRight}}),Object.defineProperty(_e,"FadeInUp",{enumerable:!0,get:function(){return D.FadeInUp}}),Object.defineProperty(_e,"FadeOut",{enumerable:!0,get:function(){return D.FadeOut}}),Object.defineProperty(_e,"FadeOutDown",{enumerable:!0,get:function(){return D.FadeOutDown}}),Object.defineProperty(_e,"FadeOutLeft",{enumerable:!0,get:function(){return D.FadeOutLeft}}),Object.defineProperty(_e,"FadeOutRight",{enumerable:!0,get:function(){return D.FadeOutRight}}),Object.defineProperty(_e,"FadeOutUp",{enumerable:!0,get:function(){return D.FadeOutUp}}),Object.defineProperty(_e,"FadingTransition",{enumerable:!0,get:function(){return D.FadingTransition}}),Object.defineProperty(_e,"FlipInEasyX",{enumerable:!0,get:function(){return D.FlipInEasyX}}),Object.defineProperty(_e,"FlipInEasyY",{enumerable:!0,get:function(){return D.FlipInEasyY}}),Object.defineProperty(_e,"FlipInXDown",{enumerable:!0,get:function(){return D.FlipInXDown}}),Object.defineProperty(_e,"FlipInXUp",{enumerable:!0,get:function(){return D.FlipInXUp}}),Object.defineProperty(_e,"FlipInYLeft",{enumerable:!0,get:function(){return D.FlipInYLeft}}),Object.defineProperty(_e,"FlipInYRight",{enumerable:!0,get:function(){return D.FlipInYRight}}),Object.defineProperty(_e,"FlipOutEasyX",{enumerable:!0,get:function(){return D.FlipOutEasyX}}),Object.defineProperty(_e,"FlipOutEasyY",{enumerable:!0,get:function(){return D.FlipOutEasyY}}),Object.defineProperty(_e,"FlipOutXDown",{enumerable:!0,get:function(){return D.FlipOutXDown}}),Object.defineProperty(_e,"FlipOutXUp",{enumerable:!0,get:function(){return D.FlipOutXUp}}),Object.defineProperty(_e,"FlipOutYLeft",{enumerable:!0,get:function(){return D.FlipOutYLeft}}),Object.defineProperty(_e,"FlipOutYRight",{enumerable:!0,get:function(){return D.FlipOutYRight}}),Object.defineProperty(_e,"JumpingTransition",{enumerable:!0,get:function(){return D.JumpingTransition}}),Object.defineProperty(_e,"Keyframe",{enumerable:!0,get:function(){return D.Keyframe}}),Object.defineProperty(_e,"Layout",{enumerable:!0,get:function(){return D.Layout}}),Object.defineProperty(_e,"LightSpeedInLeft",{enumerable:!0,get:function(){return D.LightSpeedInLeft}}),Object.defineProperty(_e,"LightSpeedInRight",{enumerable:!0,get:function(){return D.LightSpeedInRight}}),Object.defineProperty(_e,"LightSpeedOutLeft",{enumerable:!0,get:function(){return D.LightSpeedOutLeft}}),Object.defineProperty(_e,"LightSpeedOutRight",{enumerable:!0,get:function(){return D.LightSpeedOutRight}}),Object.defineProperty(_e,"LinearTransition",{enumerable:!0,get:function(){return D.LinearTransition}}),Object.defineProperty(_e,"PinwheelIn",{enumerable:!0,get:function(){return D.PinwheelIn}}),Object.defineProperty(_e,"PinwheelOut",{enumerable:!0,get:function(){return D.PinwheelOut}}),Object.defineProperty(_e,"RollInLeft",{enumerable:!0,get:function(){return D.RollInLeft}}),Object.defineProperty(_e,"RollInRight",{enumerable:!0,get:function(){return D.RollInRight}}),Object.defineProperty(_e,"RollOutLeft",{enumerable:!0,get:function(){return D.RollOutLeft}}),Object.defineProperty(_e,"RollOutRight",{enumerable:!0,get:function(){return D.RollOutRight}}),Object.defineProperty(_e,"RotateInDownLeft",{enumerable:!0,get:function(){return D.RotateInDownLeft}}),Object.defineProperty(_e,"RotateInDownRight",{enumerable:!0,get:function(){return D.RotateInDownRight}}),Object.defineProperty(_e,"RotateInUpLeft",{enumerable:!0,get:function(){return D.RotateInUpLeft}}),Object.defineProperty(_e,"RotateInUpRight",{enumerable:!0,get:function(){return D.RotateInUpRight}}),Object.defineProperty(_e,"RotateOutDownLeft",{enumerable:!0,get:function(){return D.RotateOutDownLeft}}),Object.defineProperty(_e,"RotateOutDownRight",{enumerable:!0,get:function(){return D.RotateOutDownRight}}),Object.defineProperty(_e,"RotateOutUpLeft",{enumerable:!0,get:function(){return D.RotateOutUpLeft}}),Object.defineProperty(_e,"RotateOutUpRight",{enumerable:!0,get:function(){return D.RotateOutUpRight}}),Object.defineProperty(_e,"SequencedTransition",{enumerable:!0,get:function(){return D.SequencedTransition}}),Object.defineProperty(_e,"SharedTransition",{enumerable:!0,get:function(){return D.SharedTransition}}),Object.defineProperty(_e,"SlideInDown",{enumerable:!0,get:function(){return D.SlideInDown}}),Object.defineProperty(_e,"SlideInLeft",{enumerable:!0,get:function(){return D.SlideInLeft}}),Object.defineProperty(_e,"SlideInRight",{enumerable:!0,get:function(){return D.SlideInRight}}),Object.defineProperty(_e,"SlideInUp",{enumerable:!0,get:function(){return D.SlideInUp}}),Object.defineProperty(_e,"SlideOutDown",{enumerable:!0,get:function(){return D.SlideOutDown}}),Object.defineProperty(_e,"SlideOutLeft",{enumerable:!0,get:function(){return D.SlideOutLeft}}),Object.defineProperty(_e,"SlideOutRight",{enumerable:!0,get:function(){return D.SlideOutRight}}),Object.defineProperty(_e,"SlideOutUp",{enumerable:!0,get:function(){return D.SlideOutUp}}),Object.defineProperty(_e,"StretchInX",{enumerable:!0,get:function(){return D.StretchInX}}),Object.defineProperty(_e,"StretchInY",{enumerable:!0,get:function(){return D.StretchInY}}),Object.defineProperty(_e,"StretchOutX",{enumerable:!0,get:function(){return D.StretchOutX}}),Object.defineProperty(_e,"StretchOutY",{enumerable:!0,get:function(){return D.StretchOutY}}),Object.defineProperty(_e,"ZoomIn",{enumerable:!0,get:function(){return D.ZoomIn}}),Object.defineProperty(_e,"ZoomInDown",{enumerable:!0,get:function(){return D.ZoomInDown}}),Object.defineProperty(_e,"ZoomInEasyDown",{enumerable:!0,get:function(){return D.ZoomInEasyDown}}),Object.defineProperty(_e,"ZoomInEasyUp",{enumerable:!0,get:function(){return D.ZoomInEasyUp}}),Object.defineProperty(_e,"ZoomInLeft",{enumerable:!0,get:function(){return D.ZoomInLeft}}),Object.defineProperty(_e,"ZoomInRight",{enumerable:!0,get:function(){return D.ZoomInRight}}),Object.defineProperty(_e,"ZoomInRotate",{enumerable:!0,get:function(){return D.ZoomInRotate}}),Object.defineProperty(_e,"ZoomInUp",{enumerable:!0,get:function(){return D.ZoomInUp}}),Object.defineProperty(_e,"ZoomOut",{enumerable:!0,get:function(){return D.ZoomOut}}),Object.defineProperty(_e,"ZoomOutDown",{enumerable:!0,get:function(){return D.ZoomOutDown}}),Object.defineProperty(_e,"ZoomOutEasyDown",{enumerable:!0,get:function(){return D.ZoomOutEasyDown}}),Object.defineProperty(_e,"ZoomOutEasyUp",{enumerable:!0,get:function(){return D.ZoomOutEasyUp}}),Object.defineProperty(_e,"ZoomOutLeft",{enumerable:!0,get:function(){return D.ZoomOutLeft}}),Object.defineProperty(_e,"ZoomOutRight",{enumerable:!0,get:function(){return D.ZoomOutRight}}),Object.defineProperty(_e,"ZoomOutRotate",{enumerable:!0,get:function(){return D.ZoomOutRotate}}),Object.defineProperty(_e,"ZoomOutUp",{enumerable:!0,get:function(){return D.ZoomOutUp}}),Object.defineProperty(_e,"startMapper",{enumerable:!0,get:function(){return C.startMapper}}),Object.defineProperty(_e,"stopMapper",{enumerable:!0,get:function(){return C.stopMapper}}),Object.defineProperty(_e,"reanimatedVersion",{enumerable:!0,get:function(){return A.jsVersion}}),Object.defineProperty(_e,"dispatchCommand",{enumerable:!0,get:function(){return U.dispatchCommand}}),Object.defineProperty(_e,"getRelativeCoords",{enumerable:!0,get:function(){return U.getRelativeCoords}}),Object.defineProperty(_e,"measure",{enumerable:!0,get:function(){return U.measure}}),Object.defineProperty(_e,"scrollTo",{enumerable:!0,get:function(){return U.scrollTo}}),Object.defineProperty(_e,"setGestureState",{enumerable:!0,get:function(){return U.setGestureState}}),Object.defineProperty(_e,"setNativeProps",{enumerable:!0,get:function(){return U.setNativeProps}}),Object.defineProperty(_e,"getUseOfValueInStyleWarning",{enumerable:!0,get:function(){return T.getUseOfValueInStyleWarning}}),Object.defineProperty(_e,"createAnimatedPropAdapter",{enumerable:!0,get:function(){return B.createAnimatedPropAdapter}}),Object.defineProperty(_e,"finishScreenTransition",{enumerable:!0,get:function(){return E.finishScreenTransition}}),Object.defineProperty(_e,"ScreenTransition",{enumerable:!0,get:function(){return E.ScreenTransition}}),Object.defineProperty(_e,"startScreenTransition",{enumerable:!0,get:function(){return E.startScreenTransition}}),Object.defineProperty(_e,"createWorkletRuntime",{enumerable:!0,get:function(){return v.createWorkletRuntime}}),Object.defineProperty(_e,"executeOnUIRuntimeSync",{enumerable:!0,get:function(){return v.executeOnUIRuntimeSync}}),Object.defineProperty(_e,"isWorkletFunction",{enumerable:!0,get:function(){return v.isWorkletFunction}}),Object.defineProperty(_e,"makeShareableCloneRecursive",{enumerable:!0,get:function(){return v.makeShareableCloneRecursive}}),Object.defineProperty(_e,"runOnJS",{enumerable:!0,get:function(){return v.runOnJS}}),Object.defineProperty(_e,"runOnRuntime",{enumerable:!0,get:function(){return v.runOnRuntime}}),Object.defineProperty(_e,"runOnUI",{enumerable:!0,get:function(){return v.runOnUI}}),r(_d[0]);var e=r(_d[1]),t=r(_d[2]),n=r(_d[3]),u=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(n),o=r(_d[4]),c=r(_d[5]),f=r(_d[6]),b=r(_d[7]),l=r(_d[8]),d=r(_d[9]),p=r(_d[10]),O=r(_d[11]),y=r(_d[12]),P=r(_d[13]),j=r(_d[14]),s=r(_d[15]);Object.keys(s).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return s[e]}})});var R=r(_d[16]),S=r(_d[17]),h=r(_d[18]),I=r(_d[19]),F=r(_d[20]),L=r(_d[21]),w=r(_d[22]),D=r(_d[23]),C=r(_d[24]),A=r(_d[25]),U=r(_d[26]),T=r(_d[27]),B=r(_d[28]),E=r(_d[29]),v=r(_d[30]);(0,e.initializeReanimatedModule)(t.ReanimatedModule);var Z=u},1137,[1138,1139,1233,1265,1271,1168,1159,1237,1296,1419,1420,1421,1418,1297,1267,1423,1293,1232,1397,1429,1433,1224,1434,1436,1301,1264,1456,1463,1464,1465,1471]);
@@ -2762,7 +2762,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
2762
2762
  __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.ScreenHeader=function(e){const x=(0,t.c)(21),{title:p,left:B,right:S,onBack:j,bordered:k}=e,y=void 0!==k&&k,C=(0,u.useSafeAreaInsets)(),{colors:I,mode:P}=(0,c.useTheme)();let _;x[0]!==B||x[1]!==j?(_=j?(0,h.jsx)(b.GlassBackButton,{onPress:j}):B,x[0]=B,x[1]=j,x[2]=_):_=x[2];const A=_,G="dark"===P?"dark":"light",v=y?l.default.hairlineWidth:0;let N;x[3]!==I.border||x[4]!==v?(N={borderBottomWidth:v,borderBottomColor:I.border},x[3]=I.border,x[4]=v,x[5]=N):N=x[5];const W=C.top+f.SPACING.sm,w=I.background+"a6";let z,H,M,O;x[6]!==W||x[7]!==w?(z={flexDirection:"row",alignItems:"center",gap:f.SPACING.lg,paddingHorizontal:f.SPACING.xl,paddingTop:W,paddingBottom:f.SPACING.lg,backgroundColor:w},x[6]=W,x[7]=w,x[8]=z):z=x[8];x[9]!==I.foreground||x[10]!==p?(H=p?(0,h.jsx)(n.default,{style:{flex:1,color:I.foreground,fontSize:20,fontWeight:"700"},numberOfLines:1,children:p}):(0,h.jsx)(o.default,{style:{flex:1}}),x[9]=I.foreground,x[10]=p,x[11]=H):H=x[11];x[12]!==A||x[13]!==S||x[14]!==z||x[15]!==H?(M=(0,h.jsxs)(o.default,{style:z,children:[A,H,S]}),x[12]=A,x[13]=S,x[14]=z,x[15]=H,x[16]=M):M=x[16];x[17]!==M||x[18]!==G||x[19]!==N?(O=(0,h.jsx)(s.BlurView,{tint:G,intensity:50,style:N,children:M}),x[17]=M,x[18]=G,x[19]=N,x[20]=O):O=x[20];return O};var t=r(d[0]);r(d[1]);var o=e(r(d[2])),n=e(r(d[3])),l=e(r(d[4])),s=r(d[5]),u=r(d[6]),c=r(d[7]),f=r(d[8]),b=r(d[9]),h=r(d[10])},1473,[15,17,20,112,33,782,466,999,1001,1474,10]);
2763
2763
  __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.GlassBackButton=function(e){const f=(0,o.c)(16),{onPress:h,label:y}=e,{t:_}=(0,u.useTranslation)(),{colors:j,mode:k}=(0,c.useTheme)();let v;f[0]!==y||f[1]!==_?(v=y??_("common.back"),f[0]=y,f[1]=_,f[2]=v):v=f[2];const C=v,w="dark"===k?"dark":"light",x=j.surface+"40";let B,P,p,L;f[3]!==j.border||f[4]!==x?(B={width:36,height:36,borderRadius:18,alignItems:"center",justifyContent:"center",overflow:"hidden",borderWidth:n.default.hairlineWidth,borderColor:j.border,backgroundColor:x},f[3]=j.border,f[4]=x,f[5]=B):B=f[5];f[6]!==j.foreground?(P=(0,b.jsx)(l.ChevronLeft,{size:22,color:j.foreground}),f[6]=j.foreground,f[7]=P):P=f[7];f[8]!==w||f[9]!==B||f[10]!==P?(p=(0,b.jsx)(s.BlurView,{tint:w,intensity:40,style:B,children:P}),f[8]=w,f[9]=B,f[10]=P,f[11]=p):p=f[11];f[12]!==C||f[13]!==h||f[14]!==p?(L=(0,b.jsx)(t.default,{onPress:h,hitSlop:8,accessibilityRole:"button",accessibilityLabel:C,children:p}),f[12]=C,f[13]=h,f[14]=p,f[15]=L):L=f[15];return L};var o=r(d[0]);r(d[1]);var t=e(r(d[2])),n=e(r(d[3])),s=r(d[4]),l=r(d[5]),u=r(d[6]),c=r(d[7]),b=r(d[8])},1474,[15,17,252,33,782,813,786,999,10]);
2764
2764
  __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"CameraCard",{enumerable:!0,get:function(){return L}});var t=r(d[0]),o=e(r(d[1])),n=e(r(d[2])),s=e(r(d[3])),l=e(r(d[4])),c=e(r(d[5])),u=e(r(d[6])),f=r(d[7]),h=r(d[8]),y=r(d[9]),b=r(d[10]),x=r(d[11]),v=r(d[12]),p=r(d[13]),S=r(d[14]),j=r(d[15]),C=r(d[16]),I=r(d[17]),w=r(d[18]),P=r(d[19]),B=r(d[20]),M=r(d[21]),O=r(d[22]),T=r(d[23]),z=r(d[24]),A=r(d[25]),k=r(d[26]),E=r(d[27]),G=r(d[28]),N=r(d[29]);const L=o.default.memo(function(e){const o=(0,t.c)(93),{camera:b,onPress:L}=e,{t:R}=(0,f.useTranslation)(),{colors:D}=(0,y.useTheme)();let H;o[0]!==D?(H=W(D),o[0]=D,o[1]=H):H=o[1];const F=H;let U;o[2]!==b.features?(U=b.features.includes(x.FEATURE.battery),o[2]=b.features,o[3]=U):U=o[3];const V=U,Y=(0,M.useScreenActive)(),{settings:q}=(0,w.useSettings)(),J=q.cameraList,K=b.disabled,Q=(0,p.useSwitchedOffFor)(b.id),X=(0,v.useCameraBadgeRow)(b.id),{data:Z}=(0,I.useBattery)(b.id,V&&Y&&!K&&!X.supported),$=void 0===Z?null:Z,ee=X.supported?X.row.battery:$,te=V&&!0===ee?.sleeping,{data:oe}=(0,G.useCameraChildrenStates)(b.id,b.online&&Y&&!K);let re;o[4]!==oe?(re=void 0===oe?[]:oe,o[4]=oe,o[5]=re):re=o[5];const ne=re,se=b.online&&!te&&Y&&!K,le=(0,O.useCardSnapshotWidth)(),ae=(0,j.useSnapshot)(b.id,se,le),{uri:ie,isLoading:de,failed:ce,refreshing:ue,neverCaptured:fe}=ae,he="off"!==J.motionBadge,ge=(0,B.useMotionHighlight)(b.id,b.online&&!te&&Y&&!K&&(J.motionBorder||he)),me=de&&!te&&!K,ye=(null===ie||ce)&&!te&&!me&&!K,be=ye&&fe,xe=ye&&!fe;let ve,pe,Se,je;o[6]!==F.card||o[7]!==F.cardPressed?(ve=e=>{const{pressed:t}=e;return[F.card,t&&F.cardPressed]},o[6]=F.card,o[7]=F.cardPressed,o[8]=ve):ve=o[8],o[9]!==b.id||o[10]!==ae?(pe=(0,N.jsx)(T.SnapshotImage,{source:ae,deviceId:b.id,style:c.default.absoluteFill}),o[9]=b.id,o[10]=ae,o[11]=pe):pe=o[11],o[12]!==D||o[13]!==te||o[14]!==K||o[15]!==me||o[16]!==be||o[17]!==xe||o[18]!==F.offOverlay||o[19]!==F.overlay||o[20]!==F.overlaySubtleText||o[21]!==F.overlayText||o[22]!==R?(Se=K?(0,N.jsxs)(n.default,{style:F.offOverlay,pointerEvents:"none",children:[(0,N.jsx)(h.PowerOff,{size:22,color:D.foregroundSubtle}),(0,N.jsx)(s.default,{style:F.overlayText,children:R("v2.cameras.disabledTitle")}),(0,N.jsx)(s.default,{style:F.overlaySubtleText,children:R("v2.cameras.disabledHint")})]}):te?(0,N.jsxs)(n.default,{style:F.overlay,pointerEvents:"none",children:[(0,N.jsx)(h.Moon,{size:18,color:D.foreground}),(0,N.jsx)(s.default,{style:F.overlayText,children:R("v2.cameras.sleeping")})]}):me?(0,N.jsx)(C.SkeletonBox,{}):be?(0,N.jsxs)(n.default,{style:F.overlay,pointerEvents:"none",children:[(0,N.jsx)(h.ImageOff,{size:22,color:D.foregroundSubtle}),(0,N.jsx)(s.default,{style:F.overlaySubtleText,children:R("v2.cameras.noSnapshotYet")})]}):xe?(0,N.jsxs)(n.default,{style:F.overlay,pointerEvents:"none",children:[(0,N.jsx)(h.ImageOff,{size:22,color:D.foregroundSubtle}),(0,N.jsx)(s.default,{style:F.overlaySubtleText,children:R("v2.cameras.unavailable")})]}):null,o[12]=D,o[13]=te,o[14]=K,o[15]=me,o[16]=be,o[17]=xe,o[18]=F.offOverlay,o[19]=F.overlay,o[20]=F.overlaySubtleText,o[21]=F.overlayText,o[22]=R,o[23]=Se):Se=o[23],o[24]!==te||o[25]!==me||o[26]!==ue||o[27]!==F.refreshChip||o[28]!==F.refreshSpinner||o[29]!==R?(je=!ue||me||te?null:(0,N.jsx)(n.default,{style:F.refreshChip,pointerEvents:"none",accessibilityLabel:R("v2.cameras.refreshing"),children:(0,N.jsx)(u.default,{size:"small",color:"#fff",style:F.refreshSpinner})}),o[24]=te,o[25]=me,o[26]=ue,o[27]=F.refreshChip,o[28]=F.refreshSpinner,o[29]=R,o[30]=je):je=o[30];const Ce=se&&"off"!==J.occupancy,Ie="off"===J.occupancy?"bottom-left":J.occupancy;let we,Pe,Be,Me;o[31]!==b.id||o[32]!==Ce||o[33]!==Ie?(we=(0,N.jsx)(E.OccupancyBadge,{deviceId:b.id,enabled:Ce,corner:Ie}),o[31]=b.id,o[32]=Ce,o[33]=Ie,o[34]=we):we=o[34],o[35]!==J.motionBorder||o[36]!==ge||o[37]!==K?(Pe=ge&&!K&&J.motionBorder?(0,N.jsx)(z.MotionBorder,{}):null,o[35]=J.motionBorder,o[36]=ge,o[37]=K,o[38]=Pe):Pe=o[38],o[39]!==J.motionBadge||o[40]!==ge||o[41]!==K?(Be=ge&&!K&&"off"!==J.motionBadge?(0,N.jsx)(A.MotionBadge,{anchor:J.motionBadge}):null,o[39]=J.motionBadge,o[40]=ge,o[41]=K,o[42]=Be):Be=o[42],o[43]!==F.media||o[44]!==we||o[45]!==Pe||o[46]!==Be||o[47]!==pe||o[48]!==Se||o[49]!==je?(Me=(0,N.jsxs)(n.default,{style:F.media,children:[pe,Se,je,we,Pe,Be]}),o[43]=F.media,o[44]=we,o[45]=Pe,o[46]=Be,o[47]=pe,o[48]=Se,o[49]=je,o[50]=Me):Me=o[50];const Oe=F.footer;let Te,ze,Ae;o[51]!==b.disabled||o[52]!==b.id||o[53]!==b.online||o[54]!==D||o[55]!==te?(Te=te&&!b.disabled?(0,N.jsx)(h.Moon,{size:12,color:D.foregroundMuted}):(0,N.jsx)(k.CameraStatusDot,{deviceId:b.id,online:b.online,disabled:b.disabled,enabled:!te}),o[51]=b.disabled,o[52]=b.id,o[53]=b.online,o[54]=D,o[55]=te,o[56]=Te):Te=o[56],o[57]!==F.dot||o[58]!==Te?(ze=(0,N.jsx)(n.default,{style:F.dot,children:Te}),o[57]=F.dot,o[58]=Te,o[59]=ze):ze=o[59],o[60]!==b.name||o[61]!==F.name?(Ae=(0,N.jsx)(s.default,{style:F.name,numberOfLines:1,children:b.name}),o[60]=b.name,o[61]=F.name,o[62]=Ae):Ae=o[62];const ke=F.hints;let Ee,Ge,Ne,Le,Re,De,We;if(o[63]!==Q.length||o[64]!==R?(Ee=R("v2.cameraSwitches.badgeLabel",{count:Q.length}),o[63]=Q.length,o[64]=R,o[65]=Ee):Ee=o[65],o[66]!==Q||o[67]!==Ee?(Ge=(0,N.jsx)(S.SwitchedOffBadge,{switchedOff:Q,accessibilityLabel:Ee}),o[66]=Q,o[67]=Ee,o[68]=Ge):Ge=o[68],o[69]!==ne||o[70]!==D){let e;o[72]!==D?(e=e=>(0,N.jsx)(_,{child:e,colors:D},e.id),o[72]=D,o[73]=e):e=o[73],Ne=ne.map(e),o[69]=ne,o[70]=D,o[71]=Ne}else Ne=o[71];return o[74]!==ee||o[75]!==D||o[76]!==V?(Le=V&&ee?(0,N.jsx)(P.BatteryBadge,{battery:ee,colors:D}):null,o[74]=ee,o[75]=D,o[76]=V,o[77]=Le):Le=o[77],o[78]!==F.hints||o[79]!==Ge||o[80]!==Ne||o[81]!==Le?(Re=(0,N.jsxs)(n.default,{style:ke,children:[Ge,Ne,Le]}),o[78]=F.hints,o[79]=Ge,o[80]=Ne,o[81]=Le,o[82]=Re):Re=o[82],o[83]!==F.footer||o[84]!==ze||o[85]!==Ae||o[86]!==Re?(De=(0,N.jsxs)(n.default,{style:Oe,children:[ze,Ae,Re]}),o[83]=F.footer,o[84]=ze,o[85]=Ae,o[86]=Re,o[87]=De):De=o[87],o[88]!==L||o[89]!==Me||o[90]!==De||o[91]!==ve?(We=(0,N.jsxs)(l.default,{onPress:L,style:ve,children:[Me,De]}),o[88]=L,o[89]=Me,o[90]=De,o[91]=ve,o[92]=We):We=o[92],We}),R={light:h.Lightbulb,switch:h.Power,siren:h.Siren,other:h.Plug};function _(e){const o=(0,t.c)(14),{child:s,colors:l}=e,c=R[s.kind],u="siren"===s.kind?l.danger:l.warning;let f,y,b;return o[0]!==c||o[1]!==s.hasSwitch||o[2]!==s.on||o[3]!==l.foregroundMuted||o[4]!==u?(f=s.hasSwitch?(0,N.jsx)(c,{size:14,color:s.on?u:l.foregroundMuted}):null,o[0]=c,o[1]=s.hasSwitch,o[2]=s.on,o[3]=l.foregroundMuted,o[4]=u,o[5]=f):f=o[5],o[6]!==s.hasMotion||o[7]!==s.motionOn||o[8]!==l.foregroundMuted||o[9]!==l.primary?(y=s.hasMotion?(0,N.jsx)(h.Activity,{size:14,color:s.motionOn?l.primary:l.foregroundMuted}):null,o[6]=s.hasMotion,o[7]=s.motionOn,o[8]=l.foregroundMuted,o[9]=l.primary,o[10]=y):y=o[10],o[11]!==f||o[12]!==y?(b=(0,N.jsxs)(n.default,{style:D.row,children:[f,y]}),o[11]=f,o[12]=y,o[13]=b):b=o[13],b}const D=c.default.create({row:{flexDirection:'row',alignItems:'center',gap:b.SPACING.xs},text:{fontSize:11,fontWeight:'600'}});function W(e){return c.default.create({card:{backgroundColor:e.surface,borderColor:e.border,borderWidth:1,borderRadius:b.RADIUS.lg,overflow:'hidden'},cardPressed:{backgroundColor:e.surfaceHover},media:{width:'100%',aspectRatio:1.7777777777777777,backgroundColor:e.backgroundElevated,alignItems:'center',justifyContent:'center'},overlay:{alignItems:'center',justifyContent:'center',gap:b.SPACING.xs},offOverlay:{position:'absolute',top:0,right:0,bottom:0,left:0,alignItems:'center',justifyContent:'center',gap:2,backgroundColor:e.backgroundElevated},refreshChip:{position:'absolute',top:b.SPACING.sm,right:b.SPACING.sm,width:24,height:24,borderRadius:12,backgroundColor:'rgba(0,0,0,0.35)',alignItems:'center',justifyContent:'center'},refreshSpinner:{transform:[{scale:.65}]},overlayText:{color:e.foreground,fontSize:12,fontWeight:'600'},overlaySubtleText:{color:e.foregroundSubtle,fontSize:12},footer:{flexDirection:'row',alignItems:'center',gap:b.SPACING.sm,paddingVertical:b.SPACING.md,paddingHorizontal:b.SPACING.lg},dot:{width:8,alignItems:'center'},name:{flex:1,color:e.foreground,fontSize:15,fontWeight:'600'},hints:{flexDirection:'row',alignItems:'center',gap:b.SPACING.md}})}},1475,[15,17,20,112,252,33,240,786,813,999,1001,1476,1544,1547,1550,1551,1562,1566,1567,1568,1569,1570,1002,1571,1599,1600,1601,1606,1613,10]);
2765
- __d(function(g,r,_i,_a,m,e,_d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"FEATURE",{enumerable:!0,get:function(){return u}}),e.applyCameraPrefs=y,e.useCameras=b,e.useAllCameras=function(){const n=(0,t.c)(1);let a;n[0]===Symbol.for("react.memo_cache_sentinel")?(a={includeHidden:!0},n[0]=a):a=n[0];return b(a)};var t=r(_d[0]),n=r(_d[1]),a=r(_d[2]),i=r(_d[3]),o=r(_d[4]),c=r(_d[5]),s=r(_d[6]),d=r(_d[7]),l=r(_d[8]);const u={battery:'battery-operated',ptz:'pan-tilt-zoom',twoWayAudio:'two-way-audio',doorbell:'doorbell-button'};function f(t){const n=t.name?.trim()||`Camera #${t.id}`;return{id:t.id,name:n,type:t.type,online:t.online,disabled:t.disabled,features:t.features??[],originalName:n,hidden:!1}}function y(t,n,a){const i=t.map(t=>{const a=n.byId[t.id];return Object.assign({},t,{name:a?.localName??t.originalName,hidden:!0===a?.hidden})}),o=a?i:i.filter(t=>!t.hidden);if(0===n.order.length)return o;const c=new Map;return n.order.forEach((t,n)=>c.set(t,n)),o.map((t,n)=>({c:t,i:n})).sort((t,n)=>{const a=c.get(t.c.id),i=c.get(n.c.id);return void 0!==a&&void 0!==i?a-i:void 0!==a?-1:void 0!==i?1:t.i-n.i}).map(t=>t.c)}function C(){const c=(0,t.c)(11),{controller:u,state:y}=(0,i.useConnection)(),C=(0,a.useQueryClient)(),b=u.configuredServerUrl;let h,v,_;c[0]!==b||c[1]!==C?(h=()=>{0!==b.length&&(async()=>{await(0,o.hydrateCameraList)(C,b)&&(0,d.markBoot)("camerasFromCache")})()},v=[C,b],c[0]=b,c[1]=C,c[2]=h,c[3]=v):(h=c[2],v=c[3]),(0,n.useEffect)(h,v),c[4]===Symbol.for("react.memo_cache_sentinel")?(_=["v2","cameras"],c[4]=_):_=c[4];const w="connected"===y;let E,M;return c[5]!==u||c[6]!==b?(E=async()=>{const t=u.getSystem();if(!t)return[];const n=(await(0,l.withQueryDeadline)(t.trpcClient.deviceManager.listAll.query({isCamera:!0,projection:"slim"}),"deviceManager.listAll")).filter(p).map(f);return b.length>0&&(0,o.writeCameraListCache)(b,n),(0,d.markBoot)("camerasLive",{count:n.length}),n},c[5]=u,c[6]=b,c[7]=E):E=c[7],c[8]!==w||c[9]!==E?(M={queryKey:_,enabled:w,refetchInterval:s.RECONCILE_MS,staleTime:s.RECONCILE_MS,queryFn:E},c[8]=w,c[9]=E,c[10]=M):M=c[10],(0,a.useQuery)(M)}function p(t){return t.isCamera}function b(n){const a=(0,t.c)(9);let i;a[0]!==n?(i=void 0===n?{}:n,a[0]=n,a[1]=i):i=a[1];const o=!0===i.includeHidden,s=C(),{prefs:d}=(0,c.useCameraPrefs)();let l;a[2]!==o||a[3]!==d||a[4]!==s.data?(l=s.data?y(s.data,d,o):s.data,a[2]=o,a[3]=d,a[4]=s.data,a[5]=l):l=a[5];const u=l;let f;return a[6]!==u||a[7]!==s?(f=Object.assign({},s,{data:u}),a[6]=u,a[7]=s,a[8]=f):f=a[8],f}},1476,[15,17,1477,1006,1527,1534,1542,1128,1543]);
2765
+ __d(function(g,r,_i,_a,m,e,_d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"FEATURE",{enumerable:!0,get:function(){return u}}),e.applyCameraPrefs=y,e.useCameras=p,e.useAllCameras=function(){const n=(0,t.c)(1);let a;n[0]===Symbol.for("react.memo_cache_sentinel")?(a={includeHidden:!0},n[0]=a):a=n[0];return p(a)};var t=r(_d[0]),n=r(_d[1]),a=r(_d[2]),i=r(_d[3]),o=r(_d[4]),c=r(_d[5]),s=r(_d[6]),d=r(_d[7]),l=r(_d[8]);const u={battery:'battery-operated',ptz:'pan-tilt-zoom',twoWayAudio:'two-way-audio',doorbell:'doorbell-button'};function f(t){const n=t.name?.trim()||`Camera #${t.id}`;return{id:t.id,name:n,type:t.type,online:t.online,disabled:t.disabled,features:t.features??[],originalName:n,hidden:!1}}function y(t,n,a){const i=t.map(t=>{const a=n.byId[t.id];return Object.assign({},t,{name:a?.localName??t.originalName,hidden:!0===a?.hidden})}),o=a?i:i.filter(t=>!t.hidden);if(0===n.order.length)return o;const c=new Map;return n.order.forEach((t,n)=>c.set(t,n)),o.map((t,n)=>({c:t,i:n})).sort((t,n)=>{const a=c.get(t.c.id),i=c.get(n.c.id);return void 0!==a&&void 0!==i?a-i:void 0!==a?-1:void 0!==i?1:t.i-n.i}).map(t=>t.c)}function C(){const c=(0,t.c)(11),{controller:u,state:y}=(0,i.useConnection)(),C=(0,a.useQueryClient)(),p=u.configuredServerUrl;let b,v,_;c[0]!==p||c[1]!==C?(b=()=>{0!==p.length&&(async()=>{await(0,o.hydrateCameraList)(C,p)&&(0,d.markBoot)("camerasFromCache")})()},v=[C,p],c[0]=p,c[1]=C,c[2]=b,c[3]=v):(b=c[2],v=c[3]),(0,n.useEffect)(b,v),c[4]===Symbol.for("react.memo_cache_sentinel")?(_=["v2","cameras"],c[4]=_):_=c[4];const w="connected"===y;let E,O;return c[5]!==u||c[6]!==p?(E=async()=>{const t=u.getSystem();if(!t)return[];const n=(await(0,l.withQueryDeadline)(t.trpcClient.deviceManager.listAll.query({isCamera:!0,projection:"slim"}),"deviceManager.listAll")).filter(h).map(f);return p.length>0&&(0,o.writeCameraListCache)(p,n),(0,d.markBoot)("camerasLive",{count:n.length}),n},c[5]=u,c[6]=p,c[7]=E):E=c[7],c[8]!==w||c[9]!==E?(O={queryKey:_,enabled:w,refetchInterval:s.RECONCILE_MS,refetchOnWindowFocus:!0,staleTime:s.RECONCILE_MS,queryFn:E},c[8]=w,c[9]=E,c[10]=O):O=c[10],(0,a.useQuery)(O)}function h(t){return t.isCamera}function p(n){const a=(0,t.c)(9);let i;a[0]!==n?(i=void 0===n?{}:n,a[0]=n,a[1]=i):i=a[1];const o=!0===i.includeHidden,s=C(),{prefs:d}=(0,c.useCameraPrefs)();let l;a[2]!==o||a[3]!==d||a[4]!==s.data?(l=s.data?y(s.data,d,o):s.data,a[2]=o,a[3]=d,a[4]=s.data,a[5]=l):l=a[5];const u=l;let f;return a[6]!==u||a[7]!==s?(f=Object.assign({},s,{data:u}),a[6]=u,a[7]=s,a[8]=f):f=a[8],f}},1476,[15,17,1477,1006,1527,1534,1542,1128,1543]);
2766
2766
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"HydrationBoundary",{enumerable:!0,get:function(){return P.HydrationBoundary}}),Object.defineProperty(e,"IsRestoringProvider",{enumerable:!0,get:function(){return R.IsRestoringProvider}}),Object.defineProperty(e,"QueryClientContext",{enumerable:!0,get:function(){return O.QueryClientContext}}),Object.defineProperty(e,"QueryClientProvider",{enumerable:!0,get:function(){return O.QueryClientProvider}}),Object.defineProperty(e,"QueryErrorResetBoundary",{enumerable:!0,get:function(){return j.QueryErrorResetBoundary}}),Object.defineProperty(e,"infiniteQueryOptions",{enumerable:!0,get:function(){return l.infiniteQueryOptions}}),Object.defineProperty(e,"mutationOptions",{enumerable:!0,get:function(){return v.mutationOptions}}),Object.defineProperty(e,"queryOptions",{enumerable:!0,get:function(){return p.queryOptions}}),Object.defineProperty(e,"useInfiniteQuery",{enumerable:!0,get:function(){return C.useInfiniteQuery}}),Object.defineProperty(e,"useIsFetching",{enumerable:!0,get:function(){return Q.useIsFetching}}),Object.defineProperty(e,"useIsMutating",{enumerable:!0,get:function(){return I.useIsMutating}}),Object.defineProperty(e,"useIsRestoring",{enumerable:!0,get:function(){return R.useIsRestoring}}),Object.defineProperty(e,"useMutation",{enumerable:!0,get:function(){return h.useMutation}}),Object.defineProperty(e,"useMutationState",{enumerable:!0,get:function(){return I.useMutationState}}),Object.defineProperty(e,"usePrefetchInfiniteQuery",{enumerable:!0,get:function(){return b.usePrefetchInfiniteQuery}}),Object.defineProperty(e,"usePrefetchQuery",{enumerable:!0,get:function(){return y.usePrefetchQuery}}),Object.defineProperty(e,"useQueries",{enumerable:!0,get:function(){return u.useQueries}}),Object.defineProperty(e,"useQuery",{enumerable:!0,get:function(){return o.useQuery}}),Object.defineProperty(e,"useQueryClient",{enumerable:!0,get:function(){return O.useQueryClient}}),Object.defineProperty(e,"useQueryErrorResetBoundary",{enumerable:!0,get:function(){return j.useQueryErrorResetBoundary}}),Object.defineProperty(e,"useSuspenseInfiniteQuery",{enumerable:!0,get:function(){return f.useSuspenseInfiniteQuery}}),Object.defineProperty(e,"useSuspenseQueries",{enumerable:!0,get:function(){return c.useSuspenseQueries}}),Object.defineProperty(e,"useSuspenseQuery",{enumerable:!0,get:function(){return s.useSuspenseQuery}});var t=r(d[0]);Object.keys(t).forEach(function(n){'default'===n||Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]),o=r(d[3]),s=r(d[4]),f=r(d[5]),c=r(d[6]),y=r(d[7]),b=r(d[8]),p=r(d[9]),l=r(d[10]),O=r(d[11]),P=r(d[12]),j=r(d[13]),Q=r(d[14]),I=r(d[15]),h=r(d[16]),v=r(d[17]),C=r(d[18]),R=r(d[19])},1477,[1478,1505,1506,1512,1514,1515,1516,1517,1518,1519,1520,1507,1521,1509,1522,1523,1524,1525,1526,1508]);
2767
2767
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"CancelledError",{enumerable:!0,get:function(){return j.CancelledError}}),Object.defineProperty(e,"InfiniteQueryObserver",{enumerable:!0,get:function(){return o.InfiniteQueryObserver}}),Object.defineProperty(e,"Mutation",{enumerable:!0,get:function(){return Q.Mutation}}),Object.defineProperty(e,"MutationCache",{enumerable:!0,get:function(){return c.MutationCache}}),Object.defineProperty(e,"MutationObserver",{enumerable:!0,get:function(){return f.MutationObserver}}),Object.defineProperty(e,"QueriesObserver",{enumerable:!0,get:function(){return y.QueriesObserver}}),Object.defineProperty(e,"Query",{enumerable:!0,get:function(){return v.Query}}),Object.defineProperty(e,"QueryCache",{enumerable:!0,get:function(){return p.QueryCache}}),Object.defineProperty(e,"QueryClient",{enumerable:!0,get:function(){return O.QueryClient}}),Object.defineProperty(e,"QueryObserver",{enumerable:!0,get:function(){return P.QueryObserver}}),Object.defineProperty(e,"defaultScheduler",{enumerable:!0,get:function(){return b.defaultScheduler}}),Object.defineProperty(e,"defaultShouldDehydrateMutation",{enumerable:!0,get:function(){return u.defaultShouldDehydrateMutation}}),Object.defineProperty(e,"defaultShouldDehydrateQuery",{enumerable:!0,get:function(){return u.defaultShouldDehydrateQuery}}),Object.defineProperty(e,"dehydrate",{enumerable:!0,get:function(){return u.dehydrate}}),Object.defineProperty(e,"environmentManager",{enumerable:!0,get:function(){return n.environmentManager}}),Object.defineProperty(e,"experimental_streamedQuery",{enumerable:!0,get:function(){return M.streamedQuery}}),Object.defineProperty(e,"focusManager",{enumerable:!0,get:function(){return t.focusManager}}),Object.defineProperty(e,"hashKey",{enumerable:!0,get:function(){return s.hashKey}}),Object.defineProperty(e,"hydrate",{enumerable:!0,get:function(){return u.hydrate}}),Object.defineProperty(e,"isCancelledError",{enumerable:!0,get:function(){return j.isCancelledError}}),Object.defineProperty(e,"isServer",{enumerable:!0,get:function(){return s.isServer}}),Object.defineProperty(e,"keepPreviousData",{enumerable:!0,get:function(){return s.keepPreviousData}}),Object.defineProperty(e,"matchMutation",{enumerable:!0,get:function(){return s.matchMutation}}),Object.defineProperty(e,"matchQuery",{enumerable:!0,get:function(){return s.matchQuery}}),Object.defineProperty(e,"noop",{enumerable:!0,get:function(){return s.noop}}),Object.defineProperty(e,"notifyManager",{enumerable:!0,get:function(){return b.notifyManager}}),Object.defineProperty(e,"onlineManager",{enumerable:!0,get:function(){return l.onlineManager}}),Object.defineProperty(e,"partialMatchKey",{enumerable:!0,get:function(){return s.partialMatchKey}}),Object.defineProperty(e,"replaceEqualDeep",{enumerable:!0,get:function(){return s.replaceEqualDeep}}),Object.defineProperty(e,"shouldThrowError",{enumerable:!0,get:function(){return s.shouldThrowError}}),Object.defineProperty(e,"skipToken",{enumerable:!0,get:function(){return s.skipToken}}),Object.defineProperty(e,"timeoutManager",{enumerable:!0,get:function(){return h.timeoutManager}});var t=r(d[0]),n=r(d[1]),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),l=r(d[7]),y=r(d[8]),p=r(d[9]),O=r(d[10]),P=r(d[11]),j=r(d[12]),h=r(d[13]),s=r(d[14]),M=r(d[15]),Q=r(d[16]),v=r(d[17]),C=r(d[18]);Object.keys(C).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return C[t]}})})},1478,[1479,1481,1484,1486,1497,1499,1491,1494,1500,1501,1502,1487,1493,1483,1482,1503,1498,1492,1504]);
2768
2768
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"FocusManager",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"focusManager",{enumerable:!0,get:function(){return n}});var s=r(d[0]),t=class extends s.Subscribable{#e;#s;#t;constructor(){super(),this.#t=s=>{if("undefined"!=typeof window&&window.addEventListener){const t=()=>s();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#s||this.setEventListener(this.#t)}onUnsubscribe(){this.hasListeners()||(this.#s?.(),this.#s=void 0)}setEventListener(s){this.#t=s,this.#s?.(),this.#s=s(s=>{"boolean"==typeof s?this.setFocused(s):this.onFocus()})}setFocused(s){this.#e!==s&&(this.#e=s,this.onFocus())}onFocus(){const s=this.isFocused();this.listeners.forEach(t=>{t(s)})}isFocused(){return"boolean"==typeof this.#e?this.#e:"hidden"!==globalThis.document?.visibilityState}},n=new t},1479,[1480]);
@@ -2837,7 +2837,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
2837
2837
  __d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"CAMERA_SWITCHES_KEY",{enumerable:!0,get:function(){return u}}),e.cameraSwitchesKey=l,e.useCameraSwitches=function(u,w){const h=(0,t.c)(13),y=void 0===w||w,{controller:f,state:p}=(0,c.useConnection)();let C,S,v,E;h[0]!==u?(C=l(u),h[0]=u,h[1]=C):C=h[1];h[2]!==u||h[3]!==y||h[4]!==p?(S=y&&Number.isFinite(u)&&"connected"===p,h[2]=u,h[3]=y,h[4]=p,h[5]=S):S=h[5];h[6]!==f||h[7]!==u?(v=async()=>{const t=f.getSystem();if(!t)throw new Error("not connected");const n=await(0,a.capQuery)(t.trpcClient,"pipelineOrchestrator","getCameraSwitches",{deviceId:u}),c=(0,s.parseCameraSwitchGroup)(n);if(null===c)throw new Error("camera switches unreadable");return c},h[6]=f,h[7]=u,h[8]=v):v=h[8];h[9]!==C||h[10]!==S||h[11]!==v?(E={queryKey:C,enabled:S,staleTime:o.RECONCILE_MS,refetchInterval:o.RECONCILE_MS,queryFn:v},h[9]=C,h[10]=S,h[11]=v,h[12]=E):E=h[12];return(0,n.useQuery)(E)},e.useSetCameraSwitch=function(o){const u=(0,t.c)(15),{controller:w}=(0,c.useConnection)(),h=(0,n.useQueryClient)();let y;u[0]!==o?(y=l(o),u[0]=o,u[1]=y):y=u[1];const f=y;let p,C,S,v,E;u[2]!==w||u[3]!==o?(p=async t=>{const{switchId:n,enabled:c}=t,u=w.getSystem();if(!u)throw new Error("not connected");const l=await(0,a.capMutateOrThrow)(u.trpcClient,"pipelineOrchestrator","setCameraSwitch",{deviceId:o,switchId:n,enabled:c}),h=(0,s.parseCameraSwitchGroup)(l);if(null===h)throw new Error("camera switches unreadable");return h},u[2]=w,u[3]=o,u[4]=p):p=u[4];u[5]!==f||u[6]!==h?(C=async t=>{const{switchId:n,enabled:c}=t;await h.cancelQueries({queryKey:f});const a=h.getQueryData(f);return void 0!==a&&h.setQueryData(f,(0,s.applySwitchOptimistic)(a,n,c)),a},S=(t,n,c)=>{void 0!==c&&h.setQueryData(f,c)},v=t=>{h.setQueryData(f,t),h.invalidateQueries({queryKey:["v2","cameras"]}),h.invalidateQueries({queryKey:["v2","recording"]})},u[5]=f,u[6]=h,u[7]=C,u[8]=S,u[9]=v):(C=u[7],S=u[8],v=u[9]);u[10]!==p||u[11]!==C||u[12]!==S||u[13]!==v?(E={mutationFn:p,onMutate:C,onError:S,onSuccess:v},u[10]=p,u[11]=C,u[12]=S,u[13]=v,u[14]=E):E=u[14];return(0,n.useMutation)(E)},e.useSwitchedOffMap=function(u,w){const f=(0,t.c)(11),{controller:p,state:C}=(0,c.useConnection)();let S;f[0]!==u?(S=[...u].sort(y),f[0]=u,f[1]=S):S=f[1];const v=S,E=w&&"connected"===C;let b,I;if(f[2]!==E||f[3]!==p||f[4]!==v){let t;f[6]!==E||f[7]!==p?(t=t=>({queryKey:l(t),enabled:E,staleTime:o.RECONCILE_MS,refetchInterval:o.RECONCILE_MS,queryFn:async()=>{const n=p.getSystem();if(!n)throw new Error("not connected");const c=await(0,a.capQuery)(n.trpcClient,"pipelineOrchestrator","getCameraSwitches",{deviceId:t}),o=(0,s.parseCameraSwitchGroup)(c);if(null===o)throw new Error("camera switches unreadable");return o}}),f[6]=E,f[7]=p,f[8]=t):t=f[8],b=v.map(t),f[2]=E,f[3]=p,f[4]=v,f[5]=b}else b=f[5];f[9]!==b?(I={queries:b,combine:h},f[9]=b,f[10]=I):I=f[10];return(0,n.useQueries)(I)};var t=r(d[0]);r(d[1]);var n=r(d[2]),c=r(d[3]),a=r(d[4]),o=r(d[5]),s=r(d[6]);const u='camera-switches';function l(t){return['v2',u,t]}const w=Object.freeze({});function h(t){const n={};for(const c of t){const t=c.data;if(void 0===t)continue;const a=(0,s.switchedOffIds)(t.switches);a.length>0&&(n[t.deviceId]=a)}return 0===Object.keys(n).length?w:n}function y(t,n){return t-n}},1548,[15,17,1477,1006,1546,1542,1549]);
2838
2838
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.parseCameraSwitchGroup=function(l){if(!(0,n.isRecord)(l))return null;const o=l.deviceId;if('number'!=typeof o||!Number.isFinite(o))return null;if(!Array.isArray(l.switches))return null;const s=[];for(const n of l.switches){const l=t(n);null!==l&&s.push(l)}return{deviceId:o,switches:s}},e.switchedOffIds=function(n){return n.filter(n=>n.available&&!n.enabled).map(n=>n.id)},e.switchControlKind=function(n,t){return n.available?t?'toggle':'read-only':'unavailable'},e.canOperateSwitches=function(n){return n},e.unavailableReasonKey=function(n){return'no-provider'===n?'v2.cameraSwitches.unavailableNoProvider':'source-unreachable'===n?'v2.cameraSwitches.unavailableUnreachable':'v2.cameraSwitches.unavailableUnknown'},e.applySwitchOptimistic=function(n,t,l){return Object.assign({},n,{switches:n.switches.map(n=>n.id===t&&n.available?Object.assign({},n,{enabled:l}):n)})};var n=r(d[0]);function t(t){if(!(0,n.isRecord)(t))return null;const{id:l,label:o,costWhenOff:s,available:c,enabled:u,unavailableReason:f}=t;return'string'!=typeof l||0===l.length||'string'!=typeof o||'string'!=typeof s||'boolean'!=typeof c||'boolean'!=typeof u?null:{id:l,label:o,costWhenOff:s,available:c,unavailableReason:'string'==typeof f?f:null,enabled:u}}},1549,[1546]);
2839
2839
  __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.SwitchedOffBadge=function(e){const t=(0,n.c)(14),{switchedOff:s,compact:h,accessibilityLabel:k}=e,w=void 0!==h&&h,{colors:_}=(0,u.useTheme)();if(0===s.length)return null;let p;t[0]!==_.warning?(p=[b.badge,{backgroundColor:_.warning}],t[0]=_.warning,t[1]=p):p=t[1];const y=w?9:10;let j,v,x;t[2]!==_.background||t[3]!==y?(j=(0,f.jsx)(l.PowerOff,{size:y,color:_.background}),t[2]=_.background,t[3]=y,t[4]=j):j=t[4];t[5]!==_.background||t[6]!==w||t[7]!==s.length?(v=w?null:(0,f.jsx)(o.default,{style:[b.count,{color:_.background}],children:s.length}),t[5]=_.background,t[6]=w,t[7]=s.length,t[8]=v):v=t[8];t[9]!==k||t[10]!==p||t[11]!==j||t[12]!==v?(x=(0,f.jsxs)(c.default,{accessibilityLabel:k,style:p,children:[j,v]}),t[9]=k,t[10]=p,t[11]=j,t[12]=v,t[13]=x):x=t[13];return x};var n=r(d[0]);r(d[1]);var t=e(r(d[2])),o=e(r(d[3])),c=e(r(d[4])),l=r(d[5]),u=r(d[6]),s=r(d[7]),f=r(d[8]);const b=t.default.create({badge:{flexDirection:'row',alignItems:'center',gap:2,paddingHorizontal:4,paddingVertical:2,borderRadius:s.RADIUS.sm},count:{fontSize:10,fontWeight:'700'}})},1550,[15,17,33,112,20,813,999,1001,10]);
2840
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useSnapshot=function(t,p,S){const{controller:y}=(0,u.useConnection)(),{token:C,server:M}=(0,l.useServer)(),k=(0,o.useSnapshotRefreshStore)(n=>n.epoch),w=y.getSystem()?.serverUrl??M?.serverUrl??null,A=(0,c.useSnapshotVersion)(t),b=(0,c.useSnapshotLink)(t,S,p),I=b.row,U=null!==I?I.neverCaptured:A.known&&null===A.lastCapturedAt,E=p&&(!b.ready||b.supported&&null!==I&&!I.sleeping&&null!==I.ageMs&&I.ageMs>f),_=b.ready&&(!b.supported||null!==I&&(I.neverCaptured||I.sleeping||null===I.ageMs||I.ageMs<=f)),[q,L]=(0,n.useState)(0);(0,n.useEffect)(()=>{if(A.known)return void L(0);const n=setInterval(()=>L(n=>n+1),h);return()=>clearInterval(n)},[A.known]);const R=null!=I?.capturedAt?Math.max(I.capturedAt,A.lastCapturedAt??0):A.lastCapturedAt,T=null===R?I?.ageMs??null:Math.max(0,Date.now()-R),$=_?(0,s.resolveSnapshotUri)({serverUrl:w,deviceId:t,lastCapturedAt:R,identityKnown:null!==I||A.known,fallbackTick:q,refreshEpoch:k,width:S,link:null}):null,j=(0,n.useRef)(null);null!==$&&(j.current={deviceId:t,uri:$});const x=$??(j.current?.deviceId===t?j.current.uri:null),[D,K]=(0,n.useState)(!1),[O,z]=(0,n.useState)(!1),[B,F]=(0,n.useState)(null),P=(0,n.useRef)(!1);(0,n.useEffect)(()=>{P.current=!1,K(!1),z(!1),F(null)},[t]);return(0,n.useMemo)(()=>{const n=C&&x?{Authorization:`Bearer ${C}`}:void 0;return Object.assign({uri:x},n?{headers:n}:{},{onLoad:()=>{P.current=!0,K(!0),z(!1),F(x)},onError:()=>{P.current||z(!0),F(x)},isLoading:!D&&(E||null!==x&&!O),failed:O&&!D,refreshing:D&&(E||null!==x&&B!==x),neverCaptured:U,capturedAt:R,ageMs:T,stale:null!==I&&(I.sleeping||null!==T&&T>v),sleeping:I?.sleeping??!1})},[x,C,D,O,B,U,I,E,R,T])},e.useSnapshotDataUri=function(n,l){const{controller:s,state:o}=(0,u.useConnection)();return(0,t.useQuery)({queryKey:['v2','snapshot-data',n],enabled:l&&'connected'===o,staleTime:p,refetchInterval:p,queryFn:async()=>{const t=s.getSystem();if(!t)return null;try{const u=await t.trpcClient.snapshot.getSnapshot.query({deviceId:n});return u?.base64?`data:${u.contentType};base64,${u.base64}`:null}catch{return null}}}).data??null};var n=r(d[0]),t=r(d[1]),u=r(d[2]),l=r(d[3]),s=r(d[4]),o=r(d[5]),c=r(d[6]);const p=3e4,h=3e4,v=3e4,f=15e3},1551,[17,1477,1006,1552,1558,1133,1559]);
2840
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useSnapshot=function(t,p,y){const{controller:C}=(0,l.useConnection)(),{token:M,server:k}=(0,u.useServer)(),w=(0,o.useSnapshotRefreshStore)(n=>n.epoch),A=C.getSystem()?.serverUrl??k?.serverUrl??null,b=(0,c.useSnapshotVersion)(t),I=(0,c.useSnapshotLink)(t,y,p),U=I.row,E=null!==U?U.neverCaptured:b.known&&null===b.lastCapturedAt,_=p&&(!I.ready||I.supported&&null!==U&&!U.sleeping&&null!==U.ageMs&&U.ageMs>f),q=I.ready&&(!I.supported||null!==U&&(U.neverCaptured||U.sleeping||null===U.ageMs||U.ageMs<=f)),[L,R]=(0,n.useState)(0);(0,n.useEffect)(()=>{if(b.known)return void R(0);const n=setInterval(()=>R(n=>n+1),h);return()=>clearInterval(n)},[b.known]);const T=null!=U?.capturedAt?Math.max(U.capturedAt,b.lastCapturedAt??0):b.lastCapturedAt,$=null===T?U?.ageMs??null:Math.max(0,Date.now()-T),j=null!==$&&$<=S,x=q||j?(0,s.resolveSnapshotUri)({serverUrl:A,deviceId:t,lastCapturedAt:T,identityKnown:null!==U||b.known,fallbackTick:L,refreshEpoch:w,width:y,link:null}):null,D=(0,n.useRef)(null);null!==x&&(D.current={deviceId:t,uri:x});const K=x??(D.current?.deviceId===t?D.current.uri:null),[O,z]=(0,n.useState)(!1),[B,F]=(0,n.useState)(!1),[P,Q]=(0,n.useState)(null),V=(0,n.useRef)(!1);(0,n.useEffect)(()=>{V.current=!1,z(!1),F(!1),Q(null)},[t]);return(0,n.useMemo)(()=>{const n=M&&K?{Authorization:`Bearer ${M}`}:void 0;return Object.assign({uri:K},n?{headers:n}:{},{onLoad:()=>{V.current=!0,z(!0),F(!1),Q(K)},onError:()=>{V.current||F(!0),Q(K)},isLoading:!O&&(_||null!==K&&!B),failed:B&&!O,refreshing:O&&(_||null!==K&&P!==K),neverCaptured:E,capturedAt:T,ageMs:$,stale:null!==U&&(U.sleeping||null!==$&&$>v),sleeping:U?.sleeping??!1})},[K,M,O,B,P,E,U,_,T,$])},e.useSnapshotDataUri=function(n,u){const{controller:s,state:o}=(0,l.useConnection)();return(0,t.useQuery)({queryKey:['v2','snapshot-data',n],enabled:u&&'connected'===o,staleTime:p,refetchInterval:p,queryFn:async()=>{const t=s.getSystem();if(!t)return null;try{const l=await t.trpcClient.snapshot.getSnapshot.query({deviceId:n});return l?.base64?`data:${l.contentType};base64,${l.base64}`:null}catch{return null}}}).data??null};var n=r(d[0]),t=r(d[1]),l=r(d[2]),u=r(d[3]),s=r(d[4]),o=r(d[5]),c=r(d[6]);const p=3e4,h=3e4,v=3e4,f=15e3,S=3e5},1551,[17,1477,1006,1552,1558,1133,1559]);
2841
2841
  __d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.ServerProvider=function({children:S}){const f=(0,t.useMemo)(()=>new n.ServerStore(l.asyncKvStore),[]),[k,p]=(0,t.useState)(!0),[y,C]=(0,t.useState)(null),[U,b]=(0,t.useState)(null),[E,h]=(0,t.useState)(null),[T,O]=(0,t.useState)([]),[P,x]=(0,t.useState)([]);(0,t.useEffect)(()=>{let t=!1;return(async()=>{try{const[n,s,o]=await Promise.all([f.getActiveServer(),f.getToken(),f.getLastServerUrl()]);if(t)return;const l=s&&!(0,u.isJwtExpired)(s)?s:null;s&&!l&&f.signOut(),C(n),b(l),h(o);const c=n?await f.getEndpoints(n.id):[];if(t)return;O(c),x(n?(0,a.endpointsToCandidates)(c,n.serverUrl):[])}finally{t||((0,o.markBoot)('serverRestored'),p(!1))}})(),()=>{t=!0}},[f]);const L=(0,t.useCallback)(async(t,n)=>{await f.upsertServer(t),await f.setActive(t.id),await f.setToken(n),C(t),b(n);const s=await f.getEndpoints(t.id);O(s),x((0,a.endpointsToCandidates)(s,t.serverUrl))},[f]),_=(0,t.useCallback)(async()=>{null!==y&&'undefined'!=typeof window&&((t,n)=>{try{return new URL(t).origin===new URL(n).origin}catch{return!1}})(y.serverUrl,window.location.origin)&&await(0,s.clearHubSession)(window.location.origin),await f.signOut(),b(null)},[f,y]),H=(0,t.useCallback)(async()=>{await f.signOut(),b(null)},[f]),M=(0,t.useCallback)(async t=>{await f.setToken(t)},[f]);(0,t.useEffect)(()=>((0,c.setUnauthorizedHandler)(()=>{H()}),()=>(0,c.setUnauthorizedHandler)(null)),[H]);const R=y?.id??null,j=(0,t.useCallback)(t=>{R&&(f.setEndpoints(R,t),O(t))},[f,R]),z=(0,t.useCallback)(async t=>{h(t),await f.setLastServerUrl(t)},[f]),A=(0,t.useMemo)(()=>({loading:k,server:y,token:U,endpoints:T,initialCandidates:P,onEndpointsDiscovered:j,save:L,signOut:_,clearToken:H,persistToken:M,lastServerUrl:E,rememberServerUrl:z}),[k,y,U,T,P,j,L,_,H,M,E,z]);return(0,v.jsx)(w.Provider,{value:A,children:S})},e.useServer=function(){const n=(0,t.useContext)(w);if(!n)throw new Error("useServer must be used within ServerProvider");return n};var t=r(d[0]);r(d[1]);var n=r(d[2]),s=r(d[3]),a=r(d[4]),o=r(d[5]),l=r(d[6]),u=r(d[7]),c=r(d[8]),v=r(d[9]);const w=(0,t.createContext)(null)},1552,[17,136,1553,1554,1129,1128,1556,1132,1557,10]);
2842
2842
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"ServerStore",{enumerable:!0,get:function(){return o}});const t='v2.servers',s='v2.activeServerId',n='v2.token',v='v2.lastServerUrl',c=t=>`v2.endpoints.${t}`;class o{constructor(t){this.kv=t}async getServers(){const s=await this.kv.getItem(t);return s?JSON.parse(s):[]}async upsertServer(s){const n=[...(await this.getServers()).filter(t=>t.id!==s.id),s];await this.kv.setItem(t,JSON.stringify(n))}async setActive(t){await this.kv.setItem(s,t)}async getActiveServer(){const t=await this.kv.getItem(s);if(!t)return null;return(await this.getServers()).find(s=>s.id===t)??null}async setLastServerUrl(t){await this.kv.setItem(v,t)}async getLastServerUrl(){const t=await this.kv.getItem(v);if(t)return t;const s=await this.getActiveServer();if(s)return s.serverUrl;const n=await this.getServers(),c=n[n.length-1];return c?.serverUrl??null}async setToken(t){await this.kv.setItem(n,t)}async getToken(){return this.kv.getItem(n)}async signOut(){await this.kv.removeItem(n)}async getEndpoints(t){const s=await this.kv.getItem(c(t));if(!s)return[];try{const t=JSON.parse(s);return Array.isArray(t)?t:[]}catch{return[]}}async setEndpoints(t,s){await this.kv.setItem(c(t),JSON.stringify(s))}}},1553,[]);
2843
2843
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"EXCHANGE_SESSION_HEADER",{enumerable:!0,get:function(){return n}}),e.shouldAttemptHubSessionExchange=function(t){if(t.hasServerConfigured)return!1;if('web'!==t.platform)return!1;if(!t.pathname)return!1;const n=t.webBasePath&&''!==t.webBasePath?t.webBasePath:null;if(n)return t.pathname===n||t.pathname.startsWith(`${n}/`);return t.pathname.startsWith(u)},e.exchangeHubSession=async function(u,s){return(0,t.postHubAuthMutation)(Object.assign({baseUrl:u,procedure:'auth.exchangeSession',input:{},headers:{[n]:'1'},credentials:'include'},s?{fetchFn:s}:{}))},e.clearHubSession=async function(t,n){const u=n??fetch;try{return(await u(`${t.replace(/\/+$/,'')}/api/auth/session`,{method:'DELETE',credentials:'include'})).ok}catch{return!1}},e.buildHubLoginUrl=function(t,n){return`${t.replace(/\/+$/,'')}/login?redirect=${encodeURIComponent(n)}`};var t=r(d[0]);const n='x-camstack-exchange',u='/viewer/'},1554,[1555]);
@@ -3130,7 +3130,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
3130
3130
  __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.TrackFlagToggles=function(e){const k=(0,n.c)(28),{deviceId:T,trackId:p,markForTrain:S,debug:_,onChange:v}=e,{colors:C}=(0,c.useTheme)(),F=(0,s.useSetTrackFlags)(),[I,j]=(0,t.useState)(null),[x,y]=(0,t.useState)(null),P=I?.markForTrain??!0===S,G=I?.debug??!0===_,M=F.isPending;let w;k[0]!==M||k[1]!==T||k[2]!==F||k[3]!==v||k[4]!==p?(w=e=>{M||(y(null),F.mutate({deviceId:T,trackId:p,flags:e},{onSuccess:e=>{j(e),v?.(e)},onError:e=>y(e.message)}))},k[0]=M,k[1]=T,k[2]=F,k[3]=v,k[4]=p,k[5]=w):w=k[5];const z=w;let A,H,N,R,V,B,D;k[6]===Symbol.for("react.memo_cache_sentinel")?(A={gap:f.SPACING.sm},k[6]=A):A=k[6];k[7]!==z||k[8]!==P?(H=()=>z({markForTrain:!P}),k[7]=z,k[8]=P,k[9]=H):H=k[9];k[10]!==M||k[11]!==H||k[12]!==P?(N=(0,h.jsx)(b.ToggleRow,{label:"Mark for training",description:"Keeps this track and its media past retention",icon:u.GraduationCap,value:P,disabled:M,onValueChange:H}),k[10]=M,k[11]=H,k[12]=P,k[13]=N):N=k[13];k[14]!==z||k[15]!==G?(R=()=>z({debug:!G}),k[14]=z,k[15]=G,k[16]=R):R=k[16];k[17]!==M||k[18]!==G||k[19]!==R?(V=(0,h.jsx)(b.ToggleRow,{label:"Debug",description:"Flag this track for diagnostic attention",icon:u.Bug,value:G,disabled:M,last:!0,onValueChange:R}),k[17]=M,k[18]=G,k[19]=R,k[20]=V):V=k[20];k[21]!==C||k[22]!==x?(B=null!==x?(0,h.jsx)(l.default,{style:{color:C.danger,fontSize:12,lineHeight:16,paddingHorizontal:f.SPACING.xl},children:x}):null,k[21]=C,k[22]=x,k[23]=B):B=k[23];k[24]!==N||k[25]!==V||k[26]!==B?(D=(0,h.jsxs)(o.default,{style:A,children:[N,V,B]}),k[24]=N,k[25]=V,k[26]=B,k[27]=D):D=k[27];return D};var n=r(d[0]),t=r(d[1]),l=e(r(d[2])),o=e(r(d[3])),s=r(d[4]),u=r(d[5]),c=r(d[6]),f=r(d[7]),b=r(d[8]),h=r(d[9])},1825,[15,17,112,20,1826,813,999,1001,1617,10]);
3131
3131
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.toTrackFlagsResult=l,e.useSetTrackFlags=function(){const s=(0,t.c)(2),{controller:u}=(0,o.useConnection)();let f;s[0]!==u?(f={mutationFn:async t=>{const{deviceId:n,trackId:o,flags:s}=t,f=u.getSystem();if(!f)throw new Error("not connected");const k=l(await(0,c.capMutateOrThrow)(f.trpcClient,"pipelineAnalytics","setTrackFlags",{deviceId:n,trackId:o,flags:s}));if(null===k)throw new Error("track flags unreadable");return k}},s[0]=u,s[1]=f):f=s[1];return(0,n.useMutation)(f)};var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]);function l(t){if(!(0,c.isRecord)(t))return null;const{trackId:n,markForTrain:o,debug:l}=t;return'string'!=typeof n||0===n.length||'boolean'!=typeof o||'boolean'!=typeof l?null:{trackId:n,markForTrain:o,debug:l}}},1826,[15,1477,1006,1546]);
3132
3132
  __d(function(g,r,i,a,_m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"TrackMetadataSheet",{enumerable:!0,get:function(){return j}});var t=r(d[0]),o=r(d[1]),l=e(r(d[2])),n=e(r(d[3])),s=e(r(d[4])),c=e(r(d[5])),u=e(r(d[6])),f=e(r(d[7])),b=r(d[8]),m=r(d[9]),y=r(d[10]),p=r(d[11]),k=r(d[12]),v=r(d[13]),h=r(d[14]);function S(e){return`${new Date(e).toLocaleString()} (${e})`}function x(e,t,o,l){const n=void 0!==o&&o.length>0?o:e.zonesVisited;return[{key:'trackId',label:l('v2.tracks.meta.trackId'),value:e.trackId},{key:'bestEventId',label:l('v2.tracks.meta.eventId'),value:e.bestEventId},{key:'deviceId',label:l('v2.tracks.meta.deviceId'),value:String(e.deviceId)},{key:'camera',label:l('v2.tracks.meta.camera'),value:e.cameraName},{key:'className',label:l('v2.tracks.meta.className'),value:e.className},...void 0!==e.label?[{key:'label',label:l('v2.tracks.meta.label'),value:e.label}]:[],{key:'firstSeen',label:l('v2.tracks.meta.firstSeen'),value:S(e.firstSeen),copyValue:String(e.firstSeen)},{key:'lastSeen',label:l('v2.tracks.meta.lastSeen'),value:S(e.lastSeen),copyValue:String(e.lastSeen)},{key:'state',label:l('v2.tracks.meta.state'),value:e.state},...'number'==typeof e.importance?[{key:'importance',label:l('v2.tracks.meta.importance'),value:`${Math.round(100*e.importance)}%`,copyValue:String(e.importance)}]:[],...void 0!==e.importanceReason?[{key:'reason',label:l('v2.tracks.reason'),value:e.importanceReason}]:[],...'number'==typeof t?[{key:'confidence',label:l('v2.tracks.meta.confidence'),value:`${Math.round(100*t)}%`,copyValue:String(t)}]:[],...e.zonesVisited.length>0?[{key:'zones',label:l('v2.tracks.zones'),value:n.join(', '),copyValue:e.zonesVisited.join(', ')}]:[],...e.audioLabels.length>0?[{key:'audio',label:l('v2.tracks.audio'),value:e.audioLabels.join(', ')}]:[]]}const j=(0,o.memo)(function(e){const o=(0,t.c)(48),{track:f,confidence:v,mediaKeys:S,zoneLabels:j,onClose:I}=e,{colors:V}=(0,p.useTheme)(),{t:z}=(0,m.useTranslation)(),R=(0,b.useSafeAreaInsets)(),A=null!==f;let P,N,M,L,B,G,D,E,_;o[0]!==I?(P=(0,h.jsx)(c.default,{style:C.scrim,onPress:I,accessibilityRole:"button"}),o[0]=I,o[1]=P):P=o[1],o[2]!==V.backgroundElevated?(N=[C.sheet,{backgroundColor:V.backgroundElevated}],o[2]=V.backgroundElevated,o[3]=N):N=o[3],o[4]!==V.foreground?(M=[C.title,{color:V.foreground}],o[4]=V.foreground,o[5]=M):M=o[5],o[6]!==z?(L=z("v2.tracks.metadata"),o[6]=z,o[7]=L):L=o[7],o[8]!==M||o[9]!==L?(B=(0,h.jsx)(s.default,{style:M,children:L}),o[8]=M,o[9]=L,o[10]=B):B=o[10],o[11]!==V.surface?(G=[C.iconBtn,{backgroundColor:V.surface}],o[11]=V.surface,o[12]=G):G=o[12],o[13]!==V.foreground?(D=(0,h.jsx)(y.X,{size:18,color:V.foreground}),o[13]=V.foreground,o[14]=D):D=o[14],o[15]!==I||o[16]!==G||o[17]!==D?(E=(0,h.jsx)(c.default,{onPress:I,hitSlop:10,style:G,children:D}),o[15]=I,o[16]=G,o[17]=D,o[18]=E):E=o[18],o[19]!==B||o[20]!==E?(_=(0,h.jsxs)(n.default,{style:C.header,children:[B,E]}),o[19]=B,o[20]=E,o[21]=_):_=o[21];const W=R.bottom+k.SPACING.md;let U,$,H,K,O,q,F;return o[22]!==W?(U={paddingBottom:W},o[22]=W,o[23]=U):U=o[23],o[24]!==v||o[25]!==z||o[26]!==f||o[27]!==j?($=null!==f?x(f,v,j,z).map(T):null,o[24]=v,o[25]=z,o[26]=f,o[27]=j,o[28]=$):$=o[28],o[29]!==V.foregroundSubtle||o[30]!==S||o[31]!==z?(H=S.length>0?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s.default,{style:[C.sectionLabel,{color:V.foregroundSubtle}],children:z("v2.tracks.meta.mediaKeys")}),S.map(w)]}):null,o[29]=V.foregroundSubtle,o[30]=S,o[31]=z,o[32]=H):H=o[32],o[33]!==U||o[34]!==$||o[35]!==H?(K=(0,h.jsxs)(u.default,{contentContainerStyle:U,children:[$,H]}),o[33]=U,o[34]=$,o[35]=H,o[36]=K):K=o[36],o[37]!==_||o[38]!==K||o[39]!==N?(O=(0,h.jsxs)(n.default,{style:N,children:[_,K]}),o[37]=_,o[38]=K,o[39]=N,o[40]=O):O=o[40],o[41]!==O||o[42]!==P?(q=(0,h.jsxs)(n.default,{style:C.backdrop,children:[P,O]}),o[41]=O,o[42]=P,o[43]=q):q=o[43],o[44]!==I||o[45]!==A||o[46]!==q?(F=(0,h.jsx)(l.default,{visible:A,animationType:"slide",transparent:!0,onRequestClose:I,children:q}),o[44]=I,o[45]=A,o[46]=q,o[47]=F):F=o[47],F}),I=(0,o.memo)(function(e){const l=(0,t.c)(40),{label:u,value:f,copyValue:b}=e,{colors:k}=(0,p.useTheme)(),{t:S}=(0,m.useTranslation)(),[x,j]=(0,o.useState)(!1);let I,T,w;l[0]!==x?(I=()=>{if(!x)return;const e=setTimeout(()=>j(!1),1500);return()=>clearTimeout(e)},T=[x],l[0]=x,l[1]=I,l[2]=T):(I=l[1],T=l[2]),(0,o.useEffect)(I,T),l[3]!==b?(w=async()=>{await(0,v.copyText)(b)&&j(!0)},l[3]=b,l[4]=w):w=l[4];const V=w;let z,R,A,P,N,M,L,B,G,D,E,_;return l[5]!==k.borderSubtle?(z=[C.row,{borderBottomColor:k.borderSubtle}],l[5]=k.borderSubtle,l[6]=z):z=l[6],l[7]!==k.foregroundMuted?(R=[C.rowLabel,{color:k.foregroundMuted}],l[7]=k.foregroundMuted,l[8]=R):R=l[8],l[9]!==u||l[10]!==R?(A=(0,h.jsx)(s.default,{style:R,children:u}),l[9]=u,l[10]=R,l[11]=A):A=l[11],l[12]!==k.foreground?(P=[C.rowValue,{color:k.foreground}],l[12]=k.foreground,l[13]=P):P=l[13],l[14]!==P||l[15]!==f?(N=(0,h.jsx)(s.default,{selectable:!0,style:P,children:f}),l[14]=P,l[15]=f,l[16]=N):N=l[16],l[17]!==A||l[18]!==N?(M=(0,h.jsxs)(n.default,{style:C.rowText,children:[A,N]}),l[17]=A,l[18]=N,l[19]=M):M=l[19],l[20]!==V?(L=()=>{V()},l[20]=V,l[21]=L):L=l[21],l[22]!==x||l[23]!==S?(B=S(x?"v2.tracks.copied":"v2.tracks.copy"),l[22]=x,l[23]=S,l[24]=B):B=l[24],l[25]!==k.surface?(G=[C.copyBtn,{backgroundColor:k.surface}],l[25]=k.surface,l[26]=G):G=l[26],l[27]!==k.foregroundMuted||l[28]!==k.success||l[29]!==x?(D=x?(0,h.jsx)(y.Check,{size:14,color:k.success}):(0,h.jsx)(y.Copy,{size:14,color:k.foregroundMuted}),l[27]=k.foregroundMuted,l[28]=k.success,l[29]=x,l[30]=D):D=l[30],l[31]!==L||l[32]!==B||l[33]!==G||l[34]!==D?(E=(0,h.jsx)(c.default,{onPress:L,hitSlop:8,accessibilityRole:"button",accessibilityLabel:B,style:G,children:D}),l[31]=L,l[32]=B,l[33]=G,l[34]=D,l[35]=E):E=l[35],l[36]!==E||l[37]!==z||l[38]!==M?(_=(0,h.jsxs)(n.default,{style:z,children:[M,E]}),l[36]=E,l[37]=z,l[38]=M,l[39]=_):_=l[39],_}),C=f.default.create({backdrop:{flex:1,justifyContent:'flex-end'},scrim:{position:'absolute',top:0,left:0,right:0,bottom:0,backgroundColor:'rgba(0,0,0,0.5)'},sheet:{maxHeight:'80%',borderTopLeftRadius:k.RADIUS.xl,borderTopRightRadius:k.RADIUS.xl,paddingHorizontal:k.SPACING.md,paddingTop:k.SPACING.md},header:{flexDirection:'row',alignItems:'center',justifyContent:'space-between',paddingBottom:k.SPACING.sm},title:{fontSize:18,fontWeight:'700'},iconBtn:{width:32,height:32,borderRadius:k.RADIUS.md,alignItems:'center',justifyContent:'center'},sectionLabel:{fontSize:11,fontWeight:'700',textTransform:'uppercase',letterSpacing:.4,marginTop:k.SPACING.md,marginBottom:k.SPACING.xs},row:{flexDirection:'row',alignItems:'center',gap:k.SPACING.sm,paddingVertical:k.SPACING.sm,borderBottomWidth:f.default.hairlineWidth},rowText:{flex:1},rowLabel:{fontSize:11,fontWeight:'600',textTransform:'uppercase',letterSpacing:.3},rowValue:{fontSize:13,marginTop:1},copyBtn:{width:30,height:30,borderRadius:k.RADIUS.md,alignItems:'center',justifyContent:'center'}});function T(e){return(0,h.jsx)(I,{label:e.label,value:e.value,copyValue:e.copyValue??e.value},e.key)}function w(e){return(0,h.jsx)(I,{label:e.kind,value:e.key,copyValue:e.key},e.key)}},1827,[15,17,245,20,112,252,147,33,466,786,813,999,1001,1828,10]);
3133
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.copyText=async function(t){if(null==t)return!1;const n='string'==typeof t?t:String(t);try{{const t='undefined'!=typeof navigator?navigator.clipboard:void 0;return!!t?.writeText&&(await t.writeText(n),!0)}}catch{return!1}},r(d[0])},1828,{"0":136,"1":2165,"2":1115,"paths":{"2165":"/viewer/camstack/_expo/static/js/web/Clipboard-ea01d8cace0464fa1c39149da612be36.js"}});
3133
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.copyText=async function(t){if(null==t)return!1;const n='string'==typeof t?t:String(t);try{{const t='undefined'!=typeof navigator?navigator.clipboard:void 0;return!!t?.writeText&&(await t.writeText(n),!0)}}catch{return!1}},r(d[0])},1828,{"0":136,"1":2166,"2":1115,"paths":{"2166":"/viewer/camstack/_expo/static/js/web/Clipboard-7ce228c3105c6643f60262c6665333bb.js"}});
3134
3134
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useTrackDetailMedia=function(u,k,y){const v=(0,t.c)(26),{controller:f,state:p}=(0,l.useConnection)(),b=k??"none",M=y??"none";let _;v[0]!==u||v[1]!==b||v[2]!==M?(_=["v2","analytics","track-detail-media",u,b,M],v[0]=u,v[1]=b,v[2]=M,v[3]=_):_=v[3];const T="connected"===p&&null!==k;let h,F;v[4]!==k||v[5]!==f||v[6]!==y?(h=async()=>{const t=f.getSystem();if(!t||null===k)return{event:[],track:[]};const n=t.trpcClient,[l,o]=await Promise.all([(0,c.capQuery)(n,"pipelineAnalytics","getEventMedia",{eventId:k}),null!==y?(0,c.capQuery)(n,"pipelineAnalytics","getTrackMedia",{trackId:y}):Promise.resolve(null)]);return{event:(0,s.parseMediaFiles)(l),track:(0,s.parseMediaManifest)(o)}},v[4]=k,v[5]=f,v[6]=y,v[7]=h):h=v[7];v[8]!==_||v[9]!==T||v[10]!==h?(F={queryKey:_,enabled:T,staleTime:6e4,queryFn:h},v[8]=_,v[9]=T,v[10]=h,v[11]=F):F=v[11];const S=(0,n.useQuery)(F);let I;e:{if(!S.data){I=o;break e}let t;v[12]!==S.data.event||v[13]!==S.data.track?(t=(0,s.resolveTrackDetailImages)(S.data.event,S.data.track),v[12]=S.data.event,v[13]=S.data.track,v[14]=t):t=v[14],I=t}const L=I;let P;e:{if(!S.data){let t;v[15]===Symbol.for("react.memo_cache_sentinel")?(t=[],v[15]=t):t=v[15],P=t;break e}let t;if(v[16]!==S.data.event||v[17]!==S.data.track){const n=new Set;t=[];for(const l of[...S.data.event,...S.data.track])n.has(l.key)||(n.add(l.key),t.push({key:l.key,kind:l.kind}));v[16]=S.data.event,v[17]=S.data.track,v[18]=t}else t=v[18];P=t}const Q=P;let U;v[19]!==S.data?(U=S.data?(0,s.buildTrackGallery)(S.data.event,S.data.track):[],v[19]=S.data,v[20]=U):U=v[20];const j=U;let q;v[21]!==j||v[22]!==L||v[23]!==Q||v[24]!==S.isLoading?(q=Object.assign({},L,{loading:S.isLoading,mediaKeys:Q,gallery:j}),v[21]=j,v[22]=L,v[23]=Q,v[24]=S.isLoading,v[25]=q):q=v[25];return q};var t=r(d[0]);r(d[1]);var n=r(d[2]),l=r(d[3]),c=r(d[4]),s=r(d[5]);const o={cropUri:null,fullFrameUri:null,fullFrameBoxedUri:null,hasServerBoxed:!1}},1829,[15,17,1477,1006,1546,1680]);
3135
3135
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.mediaFileUri=function(n,u,l){if(null==n)return null;if(void 0!==n.base64&&n.base64.length>0)return`data:image/jpeg;base64,${n.base64}`;return null===u||0===u.length||0===n.key.length?null:(0,t.buildEventMediaUrl)(u,n.key,Object.assign({},void 0!==l?.thumbSize?{variant:'thumb',size:l.thumbSize}:{},{kind:n.kind}))},e.mediaImageSource=function(t,n){return null===t?{uri:''}:t.startsWith('data:')||void 0===n?{uri:t}:{uri:t,headers:n}};var t=r(d[0])},1830,[1678]);
3136
3136
  __d(function(g,r,i,a,m,e,_d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useTrackBestDetection=function(u,d,f,y,v,b){const p=(0,n.c)(17),{controller:_,state:j}=(0,l.useConnection)(),k=d??"none";let A;p[0]!==u||p[1]!==k?(A=["v2","analytics","track-best-detection",u,k],p[0]=u,p[1]=k,p[2]=A):A=p[2];const D=b&&"connected"===j&&null!==d;let L,q;p[3]!==f||p[4]!==_||p[5]!==u||p[6]!==y||p[7]!==v||p[8]!==d?(L=async()=>{const n=_.getSystem();if(!n||null===d)return null;const t=await(0,c.capQuery)(n.trpcClient,"pipelineAnalytics","getObjectEvents",{deviceId:u,since:y-s,until:v+s,limit:500,projection:"full"});if(!Array.isArray(t))return null;let l=null;for(const n of t){const t=(0,o.toDetailDetection)(n);if(null!==t&&t.trackId===d&&void 0!==t.bbox){if(null!==f&&t.id===f)return t;(null===l||(t.confidence??0)>(l.confidence??0))&&(l=t)}}return l},p[3]=f,p[4]=_,p[5]=u,p[6]=y,p[7]=v,p[8]=d,p[9]=L):L=p[9];p[10]!==A||p[11]!==D||p[12]!==L?(q={queryKey:A,enabled:D,staleTime:6e4,queryFn:L},p[10]=A,p[11]=D,p[12]=L,p[13]=q):q=p[13];const C=(0,t.useQuery)(q),I=C.data??null;let O;p[14]!==C.isLoading||p[15]!==I?(O={detection:I,loading:C.isLoading},p[14]=C.isLoading,p[15]=I,p[16]=O):O=p[16];return O};var n=r(_d[0]);r(_d[1]);var t=r(_d[2]),l=r(_d[3]),c=r(_d[4]),o=r(_d[5]);const s=2e3},1831,[15,17,1477,1006,1546,1832]);
@@ -3438,7 +3438,7 @@ __d(function(e,t,a,o,i,n,r){i.exports={devices:{editDevice:"Edit device",origina
3438
3438
  __d(function(e,i,a,o,t,n,r){t.exports={devices:{editDevice:"Modifica dispositivo",originalName:"Nome originale",customName:"Nome personalizzato",customNamePlaceholder:"Lascia vuoto per usare l'originale",icon:"Icona",typeLight:"Luce",typeSwitch:"Interruttore",typeCover:"Tapparella",typeLock:"Serratura",typeAlarm:"Allarme",typeButton:"Pulsante",typeSelect:"Selezione",typeSiren:"Sirena",typeSensor:"Sensore",typeEntry:"Ingresso",typeMediaPlayer:"Media Player",typeScript:"Script",run:"Esegui",sourceHA:"Home Assistant",sourceScrypted:"Scrypted",off:"Off",on:"On",mute:"Muto",unmute:"Audio",stop:"Stop",locked:"Chiusa",unlocked:"Aperta",open:"Aperta",closed:"Chiusa",disarmed:"Disinserito",disarm:"Disinserisci"},common:{error:"Errore",save:"Salva",cancel:"Annulla",loading:"Caricamento...",comingSoon:"In arrivo",back:"Indietro",fullscreen:"Schermo intero",exitFullscreen:"Esci da schermo intero",reset:"Reimposta",selectAll:"Seleziona tutte",deselectAll:"Deseleziona tutte",delete:"Elimina",retry:"Riprova"},grids:{newGrid:"Nuova griglia",deleteConfirm:"Eliminare questa griglia?",noGrids:"Nessuna griglia. Creane una per disporre le telecamere in vista mosaico.",createGrid:"Crea griglia",cameras:"telecamere",notFound:"Griglia non trovata.",noCameras:"Nessuna telecamera in questa griglia. Modifica per aggiungerne.",edit:"Modifica",addCamera:"Aggiungi telecamera",presets:"Preset",auto:"Auto",manual:"Manuale",gridName:"Nome griglia",view:"Visualizza",addCameraHint:"Aggiungi almeno una telecamera dal pulsante sopra.",allCamerasAdded:"Tutte le telecamere sono gi\xe0 in griglia",cameraUnavailable:"Telecamera non disponibile",camerasInGrid:"Telecamere nella griglia",addAll:"Aggiungi tutte",addCameras:"Aggiungi Telecamere",backToGrid:"Torna alla Griglia",timelineNotSupported:"Timeline non supportata"},nav:{cameras:"Telecamere",grids:"Griglie",events:"Eventi",videoclips:"Videoclip",list:"Lista",settings:"Impostazioni"},cameras:{addCamera:"Aggiungi telecamera",pipActive:"PiP attivo",reorderEnable:"Riordina",reorderDisable:"Sblocca",live:"Live",noCameras:"Nessuna telecamera configurata",noIntegrations:"Nessuna integrazione configurata. Aggiungi un sistema per iniziare.",createSystem:"Crea sistema",importFrom:"Importa telecamere da",importSuccess:"Importazione completata",importCount:"{{count}} telecamere importate",selectCamerasToImport:"Seleziona telecamere da importare",selectAll:"Seleziona tutte",deselectAll:"Deseleziona tutte",importSelected:"Importa {{count}} selezionate",noCamerasFound:"Nessuna telecamera trovata",play:"\u25b6 Riproduci",paused:"In pausa",noDataForDate:"Nessun dato per questa data",recordingNotAvailable:"Registrazione non disponibile",noEventsReel:"Nessun evento recente",settings:"Impostazioni",highlightMotion:"Evidenza movimento",highlightOnMotion:"Evidenzia al movimento",highlightAudio:"Evidenza audio",audioMode:"Modalit\xe0",audioModeOff:"Off",audioModeSensor:"Sensore",audioModeLevel:"Livello",audioPreset:"Preset audio",audioPresetCustom:"Personalizzato",audioPresetCrying:"Pianto / neonato",audioPresetAlarm:"Allarme / sirena",audioPresetDog:"Abbaio cane",audioPresetDoorbell:"Campanello / bussata",audioPresetGlass:"Rottura vetro",audioWindow:"Finestra (s)",audioThreshold:"Soglia (dB)",audioHitPercentage:"Percentuale (%)",audioHoldSeconds:"Mantenimento (s)",highlightDetection:"Evidenza rilevamento oggetti",highlightOnDetection:"Evidenzia al rilevamento",detectionClasses:"Classi",holdSeconds:"Mantenimento (s)",rtspNotSupportedWeb:"Gli stream RTSP non sono supportati sul web. Usa l'app mobile.",liveDetections:"Detections live",filterTimeline:"Filtra timeline",filterClasses:"Filtra classi...",filterBySeverity:"Filtra per severit\xe0",severityAlert:"Allarme",severityDetection:"Rilevamento",statusPosition:"Posizione indicatori di stato",today:"Oggi",yesterday:"Ieri",timeline:"Timeline",timelineEventsClusterEvents:"Eventi",selectDate:"Seleziona una data",videoclipsNotSupported:"Videoclip non supportati per questa telecamera",noVideoclipsForDate:"Nessun videoclip per questa data",endOfList:"Fine elenco",backToLive:"Torna al live",goLive:"Vai al live",loadingClip:"Caricamento clip...",clusterDetailShowBbox:"Mostra bounding box sull'immagine",clusterDetailOpenVideoclip:"Apri videoclip",clusterDetailLoadingEvents:"Caricamento eventi...",devices:"Dispositivi",noAssociatedDevices:"Nessun dispositivo collegato. Configura in Impostazioni > Telecamere.",timelineData:"Dati timeline",timelineDataHint:"Cosa mostrare sulla timeline.",timelineDataVideoclips:"Videoclip",timelineDataAdvancedNotifier:"Advanced Notifier",timelineDataEvents:"Eventi",timelineEvents:"Eventi timeline",timelineEventsHint:"Quali tipi di eventi mostrare sulla timeline, in base alla severit\xe0.",timelinePresetAll:"Tutti",timelinePresetImportant:"Importanti",timelinePresetCritical:"Critici",timelinePresetCustom:"Personalizzato",statusBlock:"Blocco stato",sensorsBlock:"Blocco sensori",position:"Posizione",indicators:"Indicatori",downloadSnapshot:"Scarica Istantanea",exportDownloadClip:"Scarica Clip",exportRecordingWebOnly:"Esporta registrazione (solo web)",exportSnapshot:"Esporta Istantanea",intercomError:"Errore interfono",multiCam:"Multi-Camera",ptzNotSupported:"PTZ non supportato",ptzSelectPreset:"Seleziona Preset PTZ",snapshotFailed:"Istantanea fallita"},events:{loading:"Caricamento eventi...",filterByLabel:"Filtra per etichetta",filterByLabelPlaceholder:"es. person, doorbell",filterByCamera:"Filtra per telecamera",date:"Data",detectionTypes:"Tipi di rilevamento",source:"Sorgente",cameras:"Telecamere",groupingRange:"Raggruppamento",groupingPresetMinutes:"{{m}} min",groupingCustom:"Personalizzato",groupingCustomMinutes:"Minuti",groupingCustomApply:"Applica",today:"Oggi",noCamerasFromConfig:"Telecamere caricate dalla config EventsApp",all:"Tutti",typesCount:"{{count}} tipi",camerasCount:"{{count}} telecamere",cols:"col",sourceAuto:"Auto",sourceNVR:"NVR",sourceFrigate:"Frigate",sourceVideoClips:"API VideoClips",sourceRawDetection:"Raw",sourceAdvancedNotifier:"Advanced Notifier",detectionPerson:"Persona",detectionVehicle:"Veicolo",detectionAnimal:"Animale",detectionAudio:"Audio",detectionFace:"Volto",detectionPlate:"Targa",detectionPackage:"Pacco",detectionDoorbell:"Campanello",detectionSensor:"Sensore",detectionMotion:"Motion",detectionRules:"Regole",noScryptedIntegration:"Aggiungi un'integrazione Scrypted in Impostazioni per vedere gli eventi.",frigateNoEvents:"Gli eventi sono disponibili solo per Scrypted. Seleziona un'istanza Scrypted in Impostazioni.",noSource:"Aggiungi un'integrazione Scrypted o Frigate in Impostazioni, poi selezionala come sorgente per Eventi e Videoclip.",loadError:"Errore nel caricamento degli eventi",noEvents:"Nessun evento per questa data. Prova a cambiare data o filtri.",clearCacheTitle:"Svuota cache",clearCacheMessage:"Svuotare tutti i dati in cache di eventi e videoclip? Verr\xe0 effettuato un nuovo caricamento al prossimo accesso.",clearCacheConfirm:"Svuota",columnsPerRow:"Colonne per riga",onlyWithClips:"Solo con clip",relatedClip:"Clip Correlata"},settings:{integrations:"Integrazioni",camstackProxy:"CamStack Proxy",scrypted:"Scrypted",frigate:"Frigate",rtsp:"RTSP",homeAssistant:"Home Assistant",name:"Nome",baseUrl:"URL base",urlLocal:"URL locale",urlPublic:"URL pubblico",username:"Username",password:"Password",token:"Token (opzionale)",frigateTokenHint:"Token (opzionale): JWT dal browser",tokenRequired:"Token",testConnection:"Test connessione",testLocal:"Test Local",testPublic:"Test Public",testMqtt:"Test MQTT",connectionOk:"Connessione riuscita",connectionError:"Connessione fallita",scryptedCredentialsPromptTitle:"Accesso Scrypted",scryptedCredentialsPromptSubtitle:"Inserisci username e password Scrypted per connettere.",scryptedCredentialsPromptSkip:"Salta per ora",usernamePlaceholder:"admin",save:"Salva",tabStream:"Stream e riproduzione",tabGeneral:"Generale",data:"Dati",clearCacheEventsClips:"Svuota cache eventi e videoclip",eventsClipsSourceHint:"Sorgente per le schede Eventi e Videoclip.",hubReelTitle:"Hub & Reel",reelIntegrationsHint:"Scegli quali integrazioni usare per il reel.",reelScryptedSourceHint:"Con Scrypted: sorgente eventi per il reel.",eventsClipsAuto:"Auto",eventsClipsNoInstance:"Aggiungi prima un'integrazione Scrypted o Frigate.",exportBackup:"Esporta backup",exportError:"Esportazione fallita",importBackup:"Importa backup",importConfirm:"Questo sostituir\xe0 tutte le telecamere, integrazioni e impostazioni con i dati del backup. Continuare?",importSuccess:"Backup ripristinato con successo",importError:"Importazione fallita",uiPrototypes:"Prototipi UI",uiPrototypesHint:"Esplora design sperimentali della timeline",versions:"Versioni",appVersion:"App",nativeVersion:"Nativa",updateNow:"Aggiorna ora",updateError:"Aggiornamento fallito",updateAvailableTitle:"Aggiornamento disponibile",updateAvailableMessage:"Una nuova versione di CamStack \xe8 stata scaricata ed \xe8 pronta per l'installazione. L'app verr\xe0 riavviata per applicare l'aggiornamento.",updateInstall:"Installa e riavvia",updateLater:"Pi\xf9 tardi",tabIntegrations:"Integrazioni",tabCameras:"Telecamere",theme:"Tema",themeSystem:"Sistema",themeLight:"Chiaro",themeDark:"Scuro",language:"Lingua",languageSystem:"Sistema",languageEn:"English",languageIt:"Italiano",timelineMode:"Modalit\xe0 timeline",timelineModeClassic:"Classica",timelineModeTheater:"Theater",timeline:"Timeline",timelineVisible:"Mostra timeline rilevamenti",timelineVisibleDescription:"Visualizza il pannello della timeline nella vista telecamera.",clusterSize:"Dimensione cluster",snapshotInterval:"Intervallo aggiornamento snapshot",clusterSizeXS:"Molto piccola",clusterSizeS:"Piccola",clusterSizeM:"Normale",clusterSizeL:"Grande",clusterSizeXL:"Molto grande",highlightAppearance:"Aspetto evidenze",highlightAppearanceHint:"Colore e spessore del bordo per evidenze movimento, audio e rilevamento sugli stream delle telecamere.",highlightMotion:"Movimento",highlightAudio:"Audio",highlightDetection:"Rilevamento",highlightColor:"Colore",highlightThickness:"Spessore",selectSection:"Seleziona sezione",addSystem:"Aggiungi sistema",selectPlatform:"Seleziona piattaforma",deleteInstance:"Elimina istanza",deleteInstanceConfirm:"Vuoi eliminare questa istanza?",delete:"Elimina",mqttEvents:"MQTT - Eventi in tempo reale",mqttBrokerUrl:"URL broker MQTT",mqttUsername:"Username MQTT",mqttPassword:"Password MQTT",mqttTopicPrefix:"Prefisso topic (default: frigate)",mqttOptional:"Opzionale",scryptedAddressAlreadyUsed:"Questo indirizzo Scrypted \xe8 gi\xe0 configurato. \xc8 consentita una sola istanza per indirizzo.",scryptedAdvancedNotifierRequired:"Il plugin Advanced Notifier \xe8 richiesto per la connessione.",scryptedCorsTitle:"Configurazione CORS richiesta (Web)",scryptedCorsBody:"In Scrypted, apri le impostazioni del plugin Cloud e aggiungi il tuo dominio ({{domain}}) alla lista CORS Allowed Origins. Senza questa configurazione, il browser bloccher\xe0 le richieste verso il server Scrypted.",scryptedUrlHint:"L'URL locale viene provato per primo (es. in LAN), poi quello pubblico. Ne serve almeno uno.",gridLayout:"Layout griglia",gridLayoutHint:"Opzioni di visualizzazione per la griglia telecamere.",gridColumns:"Colonne griglia",gridColumnsHint:"Numero di telecamere per riga. Auto = 1 su mobile, 4 su tablet.",gridShowName:"Mostra nome telecamera",gridShowState:"Mostra stato (batteria, registrazione, sleep)",reorderCameras:"Riordina telecamere",reorderCamerasHint:"Trascina per riordinare le telecamere",reorderDone:"Fatto",manageCameras:"Gestisci telecamere",manageCamerasHint:"Rimuovi telecamere dall'app.",downloadSnapshot:"Scarica snapshot",snapshotFailed:"Impossibile recuperare lo snapshot",exportSnapshot:"Snapshot",exportDownloadClip:"Scarica clip",exportStartRecording:"Avvia registrazione",exportStopRecording:"Ferma registrazione",exportRecordingWebOnly:"Registrazione disponibile su web",intercomError:"Intercom non disponibile. Verifica le credenziali della telecamera su Scrypted.",deleteCamera:"Rimuovi telecamera",deleteCameraConfirm:"Rimuovere {{name}} dall'app?",streamPlayback:"Stream e riproduzione",playOnOpen:"Avvia stream all'apertura telecamera",playOnOpenHint:"Carica automaticamente lo stream live quando apri una telecamera.",audioOnOpen:"Audio attivo all'apertura",audioOnOpenHint:"Riproduci audio quando apri una telecamera (se supportato).",streamWatchdog:"Stream watchdog",streamWatchdogHint:"Riavvia lo stream quando non arrivano dati (aiuta con connessioni bloccate).",cameraPlayer:"Player telecamera",webViewCameraDetail:"Usa player WebView",webViewCameraDetailHint:"Usa WebView per le telecamere Scrypted (primo frame pi\xf9 veloce, pi\xf9 stabile). PiP, fullscreen e intercom funzionano. Default: player nativo.",streamQuality:"Qualit\xe0 stream",streamQualitySingle:"Qualit\xe0 singola telecamera",streamQualityGrid:"Qualit\xe0 griglia",qualityAuto:"Auto",qualityHigh:"High",qualityMedium:"Mid",qualityLow:"Sub",auto:"Auto",associatedDevices:"Dispositivi associati",associatedDevicesHint:"Aggiungi attuatori (luci, interruttori, tapparelle, ecc.) per controllarli dalla vista telecamera.",linkedDevices:"Collegati",reorderHint:"Usa le frecce per riordinare",addDevice:"Aggiungi dispositivo",noEligibleDevices:"Nessun Scrypted o Home Assistant configurato. Aggiungi prima un'integrazione.",configureDevices:"Configura dispositivi",cameraSettingsHint:"Scegli una telecamera per configurarne le opzioni.",noCamerasConfigured:"Nessuna telecamera configurata.",searchDevices:"Cerca dispositivi...",source:"Sorgente",type:"Tipo",all:"Tutti",noMatchingDevices:"Nessun dispositivo corrisponde ai filtri.",frigateStream:"Stream Frigate",frigateStreamSourceHint:"Sorgente stream: WebRTC (default), RTSP o MJPEG.",frigateStreamMapping:"Mappatura stream (nomi go2rtc da config)",frigateStreamMappingHint:"Seleziona dagli stream go2rtc disponibili. Ordine: High, Mid, Sub.",frigateSelectStream:"Seleziona stream",frigateAddStream:"Aggiungi stream",frigateInfo:"Info telecamera",frigateShowConfig:"Mostra config",frigateShowGo2rtc:"Mostra go2rtc",frigateMissingConfig:"Mancano baseUrl o cameraName nella config della telecamera.",tabLogs:"Log",logsCount:"{{count}} voci",logsDownload:"Scarica",logsClear:"Svuota",logsEmpty:"Nessun log. L'output della console apparir\xe0 qui.",logsExportError:"Esportazione fallita",logsExportTitle:"Esporta log",logsClearConfirmTitle:"Svuota log",logsClearConfirmMessage:"Rimuovere tutte le voci di log?",hubAppearanceTitle:"Aspetto",hubAppearanceDesc:"Tema, lingua, timeline e evidenze",hubCamerasTitle:"Telecamere",hubCamerasDesc:"Layout griglia, qualit\xe0 stream e gestione telecamere",hubIntegrationsTitle:"Integrazioni",hubIntegrationsDesc:"Gestisci Scrypted, Frigate e altri sistemi",hubAdvancedTitle:"Avanzato",hubAdvancedDesc:"Backup dati e gestione cache",hubLogsTitle:"Log",hubLogsDesc:"Visualizza ed esporta i log dell'applicazione",hubCacheTitle:"Cache",frigateAutoSnap:"Istantanea Automatica",frigateSegmentNav:"Navigazione Segmenti",frigateShowGo:"Mostra Go2RTC",frigateTimeline:"Timeline",reelCameras:"Telecamere Reel",reelCamerasHint:"Seleziona quali telecamere appaiono nel reel eventi",reelDeselectAll:"Deseleziona Tutto",reelDetectionClasses:"Classi di Rilevamento",reelDetectionClassesHint:"Filtra gli eventi per classe di rilevamento",reelIncludeRuleArtifacts:"Includi Artefatti Regole",reelIncludeRuleArtifactsHint:"Mostra gli eventi basati su regole nel reel",reelRuleArtifacts:"Artefatti Regole",reelSelectAll:"Seleziona Tutto",reelBadgeContent:"Contenuto badge",reelBadgePosition:"Posizione badge",reelBadgeSize:"Dimensione badge",reelBadgeBoth:"Ora + Classe",reelBadgeTime:"Solo ora",reelBadgeClass:"Solo classe",reelBadgeNone:"Nascosto",reelBadgeSmall:"Piccolo",reelBadgeMedium:"Medio",reelBadgeLarge:"Grande"},reel:{filterMotion:"Motion",filterOnlyRules:"Solo rule",filterOnlySensors:"Solo sensori",goToMostRecent:"Vai al pi\xf9 recente"},v2:{common:{connecting:"Connessione\u2026",online:"Online",offline:"Offline",loadError:"Errore di caricamento",create:"Crea",back:"Indietro",on:"On",off:"Off"},cameras:{empty:"Nessuna telecamera",hubNotAnswering:"L'hub non risponde. Alcune telecamere potrebbero appartenere a un nodo attualmente offline \u2014 trascina per riprovare.",statusOnline:" \xb7 online",statusOffline:" \xb7 offline",sleeping:"In standby",unavailable:"Non disponibile",motion:"Movimento",doorbell:"Campanello",doorbellRinging:"Sta suonando",doorbellLastRing:"Suonato {{time}} fa",snapshotLoading:"Caricamento\u2026",refreshing:"Aggiornamento\u2026",parkedFor:"fermo {{min}}m",manage:"Gestisci telecamere",manageHint:"Trascina per riordinare. Rinomina al volo. Usa lo switch per mostrare o nascondere una telecamera dall\u2019elenco.",reorderHandle:"Trascina per riordinare",appearance:"Aspetto",editList:"Modifica elenco",listOptions:"Opzioni elenco telecamere",disabledTitle:"Fuori servizio",disabledHint:"Disattivata da un amministratore",noSnapshotYet:"Nessuno snapshot"},cameraDetail:{fallbackName:"Camera #{{id}}",mute:"Disattiva audio",unmute:"Attiva audio",snapshot:"Istantanea",snapshotFailed:"Impossibile acquisire l'istantanea.",ptz:"Controlli PTZ",talk:"Parla",fullscreen:"Schermo intero",talkFailed:"Impossibile avviare la comunicazione. Verifica l'accesso al microfono.",pip:"Picture in Picture",exitFullscreen:"Esci da schermo intero",devices:"Dispositivi",devicesEmpty:"Nessun dispositivo collegato.",linkedModeAuto:"Collegamento: Auto (posizione)",linkedModeManual:"Collegamento: Manuale",motionBoxes:"Riquadri movimento",close:"Chiudi",deviceOnline:"Online",deviceOffline:"Offline"},grids:{createA11y:"Crea griglia",empty:"Nessuna griglia",emptyHint:"Tocca + per creare la tua prima griglia",countNone:"Nessuna telecamera",countOne:"1 telecamera",countOther:"{{count}} telecamere",defaultName:"Nuova griglia",deleteTitle:"Elimina griglia",deleteConfirm:"Eliminare \"{{name}}\"? L'operazione non \xe8 reversibile.",export:"Esporta",exportAllA11y:"Esporta tutte le griglie",shareA11y:"Condividi griglia",editA11y:"Modifica griglia",deleteA11y:"Elimina griglia",linkCopied:"Link della griglia copiato negli appunti",layoutAuto:"Auto",layoutColumns:"{{count}} col"},gridView:{editA11y:"Modifica griglia",fallbackTitle:"Griglia",notFound:"Griglia non trovata",emptyGrid:"Questa griglia \xe8 vuota",addCameras:"Aggiungi telecamere",reorderTitle:"Riordina telecamere",reorderA11y:"Riordina telecamere",reorderDoneA11y:"Fine riordino",allHidden:"Tutte le telecamere sono nascoste. Usa la modalit\xe0 riordino per mostrarne alcune.",dragA11y:"Trascina per riordinare",hideA11y:"Nascondi dalla griglia",showA11y:"Mostra nella griglia",removeA11y:"Rimuovi dalla griglia",adhocTitle:"Griglia rapida"},gridBuilder:{title:"Modifica griglia",nameLabel:"Nome",namePlaceholder:"Nome griglia",camerasSelected:"Telecamere ({{count}} selezionate)",optionsTitle:"Opzioni",showName:"Mostra nome telecamera",export:"Esporta griglia",orderSection:"Nella griglia",orderHint:"Trascina per riordinare",emptyOrder:"Nessuna telecamera \u2014 aggiungine qui sotto.",addSection:"Aggiungi telecamere",removeA11y:"Rimuovi dalla griglia",addA11y:"Aggiungi alla griglia",highlightTitle:"Evidenziazione",highlightMotion:"Su movimento",highlightAudio:"Su audio",highlightAudioOff:"Off",highlightAudioSensor:"Presenza",highlightAudioLevel:"Livello",highlightThreshold:"Soglia",highlightHold:"Mantieni",highlightDetection:"Su rilevamento",clusterLabel:"Etichetta cluster",clusterLabelIcon:"Icona",clusterLabelText:"Testo"},gridBar:{back:"Indietro",pauseAll:"Metti tutto in pausa",playAll:"Riproduci tutto",audio:"Audio",quality:"Qualit\xe0 stream",layout:"Layout",highlightMenu:"Evidenziazione e overlay",activeOnly:"Solo attive",share:"Condividi griglia",edit:"Modifica griglia",hide:"Nascondi controlli",show:"Mostra controlli",muteAll:"Silenzia tutte",unmuteAll:"Riattiva audio"},gridMenu:{highlightMaster:"Bordi di evidenziazione"},gridShare:{title:"Condividi \"{{name}}\"",quality:"Qualit\xe0 stream",layout:"Layout",showNames:"Mostra nomi delle camere",activeOnly:"Solo camere attive",boxes:"Bounding box",highlightEnable:"Evidenziazione",audioSummary:"Audio attivo all\u2019apertura per {{count}} camera/e",ttlTitle:"Scadenza del link",ttl_1d:"1 giorno",ttl_7d:"7 giorni",ttl_30d:"30 giorni",ttl_never:"Per sempre",tokenNotice:"Il link include un token di sola visualizzazione limitato a queste camere. Chiunque abbia il link pu\xf2 guardare finch\xe9 non scade o viene revocato.",copyLink:"Copia link",creating:"Creazione link\u2026",copiedExpires:"Link copiato \u2014 scade il {{date}}",copiedNever:"Link copiato \u2014 non scade mai",error:"Impossibile creare il link di condivisione. Controlla la connessione e riprova.",optionAuto:"Auto",optionHigh:"Alta",optionMedium:"Media",optionLow:"Bassa"},gridControls:{play:"Riproduci",pause:"Pausa",mute:"Muto",unmute:"Riattiva audio",quality:"Qualit\xe0",layout:"Layout",layoutAuto:"Auto"},events:{comingSoon:"Eventi \u2014 in arrivo",searchLabel:"Cerca etichetta\u2026",searchSubmit:"Cerca",searchClear:"Cancella ricerca",empty:"Nessun evento",today:"Oggi",filteredEmpty:"Nessuna corrispondenza nell'intervallo caricato",loadOlder:"Carica meno recenti",selectPrompt:"Seleziona un evento per vederne i dettagli",filters:"Filtri",all:"Tutte",day:"Giorno",sort:"Ordina",sortTime:"Recenti",sortImportance:"Importanza",cameras:"Telecamere",classes:"Classi",search:"Cerca",searchCameras:"Cerca telecamere\u2026",searchClasses:"Cerca classi\u2026",allCamerasHint:"Nessuna = tutte",allClassesHint:"Nessuna = tutte",done:"Fatto",density:"Densit\xe0",selectHint:"Seleziona un evento",unrecognizedFace:"Volto rilevato, non riconosciuto",eventKinds:"Tipi di evento",displayOptions:"Aspetto",displayTitle:"Opzioni di visualizzazione"},settings:{themeSystem:"Sistema",themeDark:"Scuro",themeLight:"Chiaro",server:"Server",hubActive:"Hub attivo",changeServer:"Cambia server",signOut:"Esci",network:"Rete",networkNone:"Nessuna rotta ancora rilevata",endpointUnlikely:"Probabilmente non utilizzabile",reprobe:"Ri-rileva rotte",reprobing:"Rilevamento\u2026",appearance:"Aspetto",theme:"Tema",info:"Info",app:"App",version:"Versione",noServer:"Nessun server",footerNote:"CamStack Viewer si connette a un singolo hub camstack. Telecamere, griglie ed eventi sono gestiti dal server.",language:"Lingua",langSystem:"Sistema",gridDefaults:"Impostazioni griglia",showName:"Mostra nome telecamera",showNameHint:"Sovrapponi il nome della telecamera su ogni riquadro",showState:"Mostra stato",showStateHint:"Mostra lo stato online / registrazione su ogni riquadro",columns:"Colonne",cameraOrder:"Ordine telecamere",orderName:"Per nome",orderCustom:"Personalizzato",motionHold:"Persistenza evidenziazione movimento",motionHoldHint:"Mantieni accesa l'evidenziazione del movimento su una tile per questo tempo dopo che il movimento si ferma.",motionHoldOff:"Off",streamQuality:"Qualit\xe0 stream",streamDefaults:"Impostazioni stream",playOnOpen:"Riproduci all'apertura",playOnOpenHint:"Avvia lo stream live quando apri una telecamera",audioOnOpen:"Audio all'apertura",audioOnOpenHint:"Attiva l'audio quando apri una telecamera",snapshotInterval:"Aggiornamento snapshot",highlightAppearance:"Aspetto evidenziazione",highlightMotionColor:"Colore movimento",highlightAudioColor:"Colore audio",highlightDetectionColor:"Colore rilevamento",highlightThickness:"Spessore bordo",qualityAuto:"Auto",qualityHigh:"Alta",qualityMid:"Media",qualityLow:"Bassa",secondsValue:"{{count}}s",advanced:"Avanzate",clearCache:"Svuota cache",clearCacheHint:"Libera snapshot e dati in cache (mantiene server e impostazioni)",clearCacheConfirmTitle:"Svuotare la cache?",clearCacheConfirmBody:"Rimuove immagini e dati in cache. Server, accesso e impostazioni vengono mantenuti.",clearCacheDone:"Cache svuotata",exportSettings:"Esporta impostazioni",exportSettingsHint:"Copia le impostazioni in formato JSON",exportSettingsDone:"Impostazioni copiate in JSON",viewLogs:"Visualizza log",viewLogsHint:"Messaggi di log recenti dell'app",logsEmpty:"Nessun log registrato",keepLogs:"Mantieni log",keepLogsHint:"Registra un buffer dei messaggi di log dell'app",debugMode:"Modalit\xe0 debug",debugModeHint:"Log verbosi su live, playback e scrub \u2014 inviati al server",logsClear:"Pulisci",resetSettings:"Ripristina impostazioni",resetSettingsHint:"Ripristina tutti i valori predefiniti",resetConfirmTitle:"Ripristinare le impostazioni?",resetConfirmBody:"Ripristina tutte le impostazioni ai valori predefiniti.",cancel:"Annulla",confirm:"Conferma",timeline:"Timeline",reel:"Sequenza eventi",reelThumbSize:"Dimensione miniature",reelThumbSizeHint:"Dimensione delle miniature nella sequenza eventi recenti.",reelSizeSmall:"Piccola",reelSizeMedium:"Media",reelSizeLarge:"Grande",reelShowLabels:"Mostra etichette",reelShowLabelsHint:"Mostra l'etichetta classe/identit\xe0 sugli elementi della sequenza.",reelLabelStyle:"Visualizzazione classe",reelLabelStyleHint:"Mostra la classe di rilevamento come icona o come testo negli elementi della sequenza.",reelShowImportance:"Mostra importanza",reelShowImportanceHint:"Mostra il badge di importanza sugli elementi della sequenza.",events:"Eventi",eventsPage:"Pagina eventi",minImportance:"Importanza minima",minImportanceHint:"Nascondi gli eventi con punteggio inferiore, nella pagina eventi e nella timeline della telecamera.",minImportanceOff:"Off",tileShowLabels:"Mostra etichette",tileShowLabelsHint:"Mostra le etichette classe / identit\xe0 / audio sulle schede evento.",tileShowImportance:"Mostra importanza",tileShowImportanceHint:"Mostra il badge di importanza sulle schede evento (se valutato).",tileShowCameraName:"Mostra nome telecamera",tileShowCameraNameHint:"Mostra il nome della telecamera nel pi\xe8 di pagina della scheda evento.",tileLabelStyle:"Visualizzazione classe",tileLabelStyleHint:"Mostra la classe di rilevamento come icona o come testo.",tileLabelStyleIcon:"Icona",tileLabelStyleText:"Testo",comingSoon:"Prossimamente",cameras:"Telecamere",manageCameras:"Gestisci telecamere",manageCamerasHint:"Rinomina, nascondi, riordina",notifications:"Notifiche",notificationsManage:"Gestisci notifiche",pinchExpandsHeight:"Il pizzico ingrandisce la vista",pinchExpandsHeightHint:"Pizzicando per lo zoom il video cresce in altezza (ritaglia i bordi laterali sulle camere 16:9).","timeline.gapPercent":"Gap cluster (%)","timeline.sizePercent":"Dimensione cluster (%)","timeline.indicatorPositionPct":"Posizione indicatore (%)","timeline.showImportance":"Mostra importanza sugli elementi","timeline.showClass":"Mostra classe di rilevamento sugli elementi","timeline.cardWidthPct":"Larghezza card (%)",haptics:"Vibrazione eventi",hapticsEnabled:"Vibra sugli eventi",hapticsEnabledHint:"Brevi vibrazioni per gli eventi chiave sulla telecamera che stai guardando. Solo su dispositivo (iOS/Android).",hapticsMotion:"Movimento",hapticsDetection:"Rilevamento",hapticsPerson:"Persona / riconosciuta",buildNumber:"Build",runtimeVersion:"Runtime",runningBundle:"Bundle in esecuzione",checkUpdates:"Controlla aggiornamenti",checkingUpdates:"Controllo\u2026",updateUpToDate:"Sei gi\xe0 all'ultima versione.",updatesDisabled:"Gli aggiornamenti sono disattivati in questa build.",updateReadyTitle:"Aggiornamento scaricato",updateReadyBody:"Riavviare l'app ora per applicarlo?",updateCheckFailed:"Impossibile controllare gli aggiornamenti",listOverlays:"Schede videocamere",listMotionBorder:"Anello movimento",listMotionBorderHint:"Pulsa un anello attorno alla scheda mentre la videocamera vede movimento.",listMotionBadge:"Posizione badge movimento",listOccupancy:"Posizione occupazione",useNativeRenderer:"Usa il renderer integrato",useNativeRendererHint:"Disegna Recenti ed Eventi dentro l\u2019app invece di caricare l\u2019embed ospitato dall\u2019hub."},nc:{title:"Notifiche",tabs:{rules:"Regole",targets:"Targets",snooze:"Silenzia"},rulesPlaceholder:"Le regole di notifica appariranno qui.",targetsPlaceholder:"Le destinazioni di consegna appariranno qui.",rules:{add:"Nuova regola",empty:"Nessuna regola.",loadError:"Impossibile caricare le regole. Riprova.",mine:"Le mie regole",admin:"Regole admin",personalBadge:"Personale",adminBadge:"Admin",edit:"Modifica",delete:"Elimina",cancel:"Annulla",deleteConfirmTitle:"Elimina regola",deleteConfirmMessage:"Eliminare \"{{name}}\"? L'operazione non \xe8 reversibile.",receiveOn:"Ricevi su {{name}}",noOwnedTargets:"Questa regola non invia ad alcuna delle tue destinazioni.",mediaBadge:{attach:{"best-matching":"Immagine pertinente",keyFrame:"Fotogramma chiave",none:"Nessuna immagine"},frame:{full:"Tutta la scena",boxed:"Scena con riquadri"},zoneCrop:"Ritaglio zona",gif:"GIF",clip:"Video",profile:"Qualit\xe0 {{profile}}"},editor:{createTitle:"Nuova regola",editTitle:"Modifica \"{{name}}\"",basics:"Generali",nameLabel:"Nome",namePlaceholder:"es. Persone al portone",triggerLabel:"Attivazione",priorityLabel:"Priorit\xe0",targetsLabel:"Invia a",noTargets:"Non hai ancora destinazioni. Aggiungine una nella scheda Destinazioni.",pickTarget:"Seleziona almeno una destinazione.",conditionsLabel:"Condizioni",condition:{systemEvent:"Evento di sistema"},moreConditionsLabel:"Altre condizioni",showAdvanced:"Mostra avanzate",noConditions:"Nessuna condizione disponibile.",notForTrigger:"Non per questa attivazione",notForTriggerHint:"Non valutata per l'attivazione scelta \u2014 cambia attivazione per usarla.",mediaLabel:"Media",attachLabel:"Allegato",frameLabel:"L'immagine mostra",frame:{cropped:"Il soggetto",full:"Tutta la scena",boxed:"La scena, con i riquadri"},zoneCropLabel:"Ritaglia sulla zona",zoneCropHint:"Ritaglia l'immagine sulla zona della regola invece che sul soggetto o sull'intera scena.",gifLabel:"Allega una GIF",gifHint:"Una breve animazione ritagliata dal buffer live attorno al momento \u2014 la telecamera non deve essere in registrazione.",clipLabel:"Allega un video",clipHint:"Un MP4 dello stesso spezzone. Le destinazioni che non accettano video ricevono comunque l'immagine.",preRollLabel:"Secondi prima",postRollLabel:"Secondi dopo",profileLabel:"Qualit\xe0 del video",profile:{auto:"Automatica",high:"Alta",mid:"Media",low:"Bassa"},templateLabel:"Messaggio (facoltativo)",templateTitleLabel:"Titolo",templateBodyLabel:"Testo",templatePlaceholder:"Supporta i segnaposto {{var}}",save:"Salva modifiche",create:"Crea regola",addValue:"Aggiungi valore\u2026",removeTag:"Rimuovi {{value}}",clear:"Azzera",noCameras:"Nessuna telecamera disponibile \u2014 la regola vale per tutti i dispositivi.",zoneId:"ID zona\u2026",plateText:"Testo targa\u2026",maxDistance:"Distanza massima",customZones:{empty:"Nessuna zona personalizzata. Scegli una camera e disegnane una.",pickCamera:"Camera su cui disegnare",noCameras:"Nessuna camera online su cui disegnare.",draw:"Disegna zona",zoneLabel:"Zona {{index}} ({{count}} punti)",remove:"Rimuovi zona {{index}}",title:"Disegna zona \u2014 {{name}}",hint:"Tocca per aggiungere punti, trascina un punto per spostarlo. Tocca il primo punto per chiudere.",loading:"Caricamento frame\u2026",cancel:"Annulla",clear:"Cancella",close:"Chiudi",confirm:"Conferma"},addWindow:"Aggiungi finestra",scheduleAlways:"Sempre attiva \u2014 aggiungi una finestra per limitare quando scatta.",scheduleInvert:"Attiva fuori dalle finestre",delivery:{immediate:"Immediata",trackEnd:"Fine traccia",deviceEvent:"Evento dispositivo",packageEvent:"Evento pacco",systemEvent:"Evento di sistema"},systemKinds:{"camera-online":"Videocamera online","camera-offline":"Videocamera offline","stream-online":"Flusso online","stream-offline":"Flusso offline","node-online":"Nodo online","node-offline":"Nodo offline","addon-update-available":"Aggiornamento addon disponibile","server-update-available":"Aggiornamento server disponibile"},systemFilters:{cameras:"Solo queste videocamere (facoltativo)",nodes:"Solo questi ID nodo (facoltativo)",packages:"Solo questi pacchetti addon (facoltativo)",addNode:"Aggiungi ID nodo\u2026",addPackage:"Aggiungi nome pacchetto\u2026"},media:{best:"Immagine migliore",bestMatching:"Migliore corrispondente",keyFrame:"Fotogramma chiave",none:"Nessun allegato"},source:{any:"Qualsiasi",pipeline:"Pipeline",onboard:"A bordo",sensor:"Sensore"},phase:{delivered:"Consegnato","picked-up":"Ritirato",both:"Entrambi"},zoneMatch:{any:"Almeno una",all:"Tutte"},group:{scope:"Ambito",class:"Classi",zones:"Zone",quality:"Qualit\xe0",label:"Identit\xe0 e targhe",device:"Evento dispositivo",package:"Pacco",system:"Eventi di sistema",schedule:"Programmazione"},taxonomy:{person:"Persone",vehicle:"Veicoli",animal:"Animali",audio:"Audio",sensor:"Sensori",control:"Comandi",custom:"Valori personalizzati",addCustom:"Aggiungi un valore\u2026"},weekday:{mon:"Lun",tue:"Mar",wed:"Mer",thu:"Gio",fri:"Ven",sat:"Sab",sun:"Dom"},crossing:{unset:"In entrata",exit:"In uscita",any:"Entrambe"},deviceStateNone:"Non impostato \u2014 questa regola non dipende da nessun altro dispositivo.",deviceStateSet:"Solo mentre il dispositivo {{deviceId}} \xe8: {{states}}. Si modifica dall'admin \u2014 questa app non pu\xf2 elencare tutti i dispositivi."}},targets:{add:"Aggiungi destinazione",empty:"Nessuna destinazione. Aggiungine una per ricevere notifiche.",loadError:"Impossibile caricare le destinazioni. Riprova.",pickKind:"Scegli un tipo di notifica",noKinds:"Nessun tipo di notifica disponibile.",kindUnavailable:"non disponibile",test:"Invia test",testing:"Invio\u2026",testOk:"Test consegnato",testFail:"Test fallito",edit:"Modifica",delete:"Elimina",cancel:"Annulla",save:"Salva modifiche",create:"Crea destinazione",addTitle:"Aggiungi destinazione {{kind}}",editTitle:"Modifica {{name}}",deleteConfirmTitle:"Elimina destinazione",deleteConfirmMessage:"Eliminare \"{{name}}\"? L'operazione non \xe8 reversibile.",form:{details:"Dettagli",config:"Configurazione",nameLabel:"Nome",nameHint:"Un'etichetta per riconoscere questa destinazione.",secretHint:"Lascia vuoto per mantenere il valore salvato."}},snooze:{title:"Silenzia",intro:"Silenzia TE, non tutta la casa \u2014 a meno che una regola non dica il contrario. Finisce da sola.",activeNone:"Non c'\xe8 niente in silenzio.",active:"In silenzio ora",past:"Finiti da poco",openTitle:"Silenzia per",scopeLabel:"Cosa silenziare",everything:"Tutto",aRule:"Una regola",chooseRule:"Scegli una regola",globalLabel:"Silenzia per tutti",globalHelp:"Anche le altre persone smettono di ricevere le notifiche.",globalNotAllowed:"Questa regola si pu\xf2 silenziare solo per te.",summaryLabel:"Dimmi cosa ho perso",summaryHelp:"Alla fine della finestra arriva un riepilogo.",endNow:"Termina ora",endsIn:"finisce tra {{label}}",everyone:"per tutti",loadError:"Non riesco a caricare i silenzi.",createError:"Non riesco ad avviare il silenzio.",durations:{m15:"15 min",m30:"30 min",h1:"1 ora",h4:"4 ore",h8:"8 ore"},scope:{rule:"Una regola",device:"Una telecamera",all:"Tutto"},remaining:{ended:"finito",minutes:"{{minutes}} min",hours:"{{hours}}h",hoursMinutes:"{{hours}}h {{minutes}}m"}}},login:{loginFailed:"Accesso fallito",verifyFailed:"Verifica fallita",serverUrl:"Server URL",username:"Username",password:"Password",showPassword:"Mostra password",hidePassword:"Nascondi password",signIn:"Accedi",signingIn:"Accesso\u2026",twoFactor:"Autenticazione a due fattori",totpHint:"Inserisci il codice a 6 cifre dall'app di autenticazione per accedere come ",verificationCode:"Codice di verifica",verifyAndSignIn:"Verifica e accedi",verifying:"Verifica\u2026",back:"Indietro",or:"oppure",signInWithCamStack:"Accedi con CamStack",hubSignInHint:"Apre la pagina di accesso del tuo hub e collega questa app senza digitare qui la password.",handoffFailed:"Accesso con CamStack non riuscito \u2014 riprova oppure usa nome utente e password",invalidServerUrl:"Inserisci prima un URL server valido (https://\u2026)"},live:{webUnsupported:"La vista live non \xe8 ancora disponibile nella versione web.",connecting:"Connessione allo stream live\u2026",error:"Impossibile caricare lo stream live.",retry:"Riprova",noConnection:"Nessuna connessione al server",failed:"Connessione fallita",errorPageLoad:"Caricamento della pagina del player fallito."},ptz:{title:"PTZ",notAvailable:"I controlli PTZ non sono disponibili per questa telecamera.",zoom:"Zoom",home:"Posizione iniziale",presets:"Preset",noPresets:"Nessun preset salvato."},timeline:{activityTitle:"Attivit\xe0",last24h:"Ultime 24h",loading:"Caricamento attivit\xe0\u2026",noActivity:"Nessuna attivit\xe0 nelle ultime 24 ore.",legendRecording:"Registrato",legendMotion:"Movimento",legendAudio:"Audio",showTimeline:"Mostra timeline",hideTimeline:"Nascondi timeline"},theater:{back:"Indietro",today:"Oggi",yesterday:"Ieri",selectDate:"Seleziona una data",live:"LIVE",now:"ORA",auto:"Auto",quality:"Qualit\xe0 stream",filterAll:"Tutti",filter_motion:"Movimento",filter_audio:"Audio",goToLive:"Vai al live",noRecording:"Nessuna registrazione",noRecordingHint:"Nessun filmato per questo momento",detailCount:"{{frames}} frame \xb7 {{count}} rilevamenti",detailTracks:"{{tracks}} tracce \xb7 {{count}} rilevamenti",detailEmpty:"Nessuna immagine di dettaglio per questo istante",detailSeek:"Vai a questo momento",zoneHint:"Trascina un rettangolo sul video per filtrare gli eventi per zona",zoneConfirm:"Conferma",zoneCancel:"Annulla",playbackBar:"Controlli di riproduzione",footerBar:"Strumenti timeline",filterTitle:"Filtri",zoomIn:"Ingrandisci",zoomOut:"Riduci",zoneFilter:"Filtro zona",detailSubjects_one:"{{count}} soggetto",detailSubjects_other:"{{count}} soggetti",zoneModeRect:"Rettangolo",zoneModePolygon:"Poligono",zoneClearPoints:"Pulisci",zoneHintPolygon:"Tocca per aggiungere punti \u2014 3 o pi\xf9",selectTime:"Ora",goSameTime:"Vai \u2014 stessa ora del giorno"},mediaKind:{crop:"Ritaglio oggetto",thumbnail:"Best shot",faceCrop:"Volto",plateCrop:"Targa",fullFrame:"Frame",fullFrameBoxed:"Riquadrato",keyFrame:"Frame chiave",firstFrame:"Primo",lastFrame:"Ultimo",snapshot:"Istantanea"},tracks:{crop:"Ritaglio",fullFrame:"Frame completo",bestShot:"Scatto migliore",media:"Media",path:"Percorso",pathSummary:"{{count}} punti \xb7 {{seconds}}s",pathNoLocalization:"nessuna posizione precisa",share:"Condividi",copyLink:"Copia link",linkCopied:"Link copiato",shareImage:"Condividi immagine",viewFullRes:"Risoluzione piena",fullResBadge:"Piena",zones:"Zone",audio:"Audio",reason:"Perch\xe9 rilevante",empty:"Nessuna traccia",recent:"Recenti",searchPlaceholder:"Cerca eventi (es. \"persona in rosso\")",searchSubmit:"Cerca",searchClear:"Cancella ricerca",noMatches:"Nessun evento corrispondente",person:"Persona",assignPerson:"Associa a persona",changePerson:"Cambia",notAssigned:"Non associata",matchConfidence:"Affidabilit\xe0 match",suggested:"Suggerito",suggestedUnknown:"Persona suggerita",suggestedConfirm:"Conferma",suggestedDismiss:"Ignora",assignFaceTitle:"Associa volto",newPersonPlaceholder:"Nome nuova persona\u2026",createAndAssign:"Crea e associa",assignFailed:"Associazione del volto non riuscita",removePerson:"Rimuovi persona",removePersonConfirmTitle:"Rimuovere la persona?",removePersonConfirmBody:"Questo scollega la persona da questo volto. Il volto torna tra quelli non associati e potr\xe0 essere riassociato in seguito.",disassociateFailed:"Rimozione della persona non riuscita",removePersonAll:"Rimuovi da tutti gli eventi",removePersonAllConfirmTitle:"Rimuovere da tutti gli eventi?",removePersonAllConfirmBody:"Questo scollega la persona da OGNI evento. Tutti i volti attualmente riconosciuti come questa persona tornano tra quelli non associati e potranno essere riassociati in seguito. La persona viene mantenuta.",disassociateAllFailed:"Rimozione della persona da tutti gli eventi non riuscita",existingPersons:"Persone",noPersons:"Ancora nessuna persona",metadata:"Metadati",copy:"Copia",copied:"Copiato","meta.trackId":"ID traccia","meta.eventId":"ID evento migliore","meta.deviceId":"ID dispositivo","meta.camera":"Telecamera","meta.className":"Classe","meta.label":"Etichetta","meta.firstSeen":"Prima apparizione","meta.lastSeen":"Ultima apparizione","meta.state":"Stato","meta.importance":"Importanza","meta.confidence":"Confidenza","meta.mediaKeys":"Chiavi media"},accessories:{on:"Acceso",off:"Spento",dimUp:"Pi\xf9 luminoso",dimDown:"Meno luminoso",lock:"Blocca",unlock:"Sblocca",open:"Apri",close:"Chiudi",stop:"Ferma",arm:"Attiva",disarm:"Disattiva",onMotion:"Su movimento",openPercent:"Apertura {{percent}}",warmer:"Pi\xf9 caldo",cooler:"Pi\xf9 freddo",speedUp:"Pi\xf9 veloce",speedDown:"Pi\xf9 lento",oscillate:"Oscillazione",press:"Premi",play:"Riproduci",pause:"Pausa",previous:"Precedente",next:"Successivo",start:"Avvia",dock:"Rientra",locate:"Localizza",feed:"Eroga",feeding:"Erogazione\u2026",install:"Installa",installing:"Installazione\u2026",upToDate:"Aggiornato",increase:"Aumenta",decrease:"Diminuisci",select:"Seleziona",noEvent:"Nessun evento",buttonIndex:"Tasto {{index}}",mode:"Modalit\xe0",fanMode:"Modalit\xe0 ventola",preset:"Preset",direction:"Direzione",forward:"Avanti",reverse:"Indietro",away:"Assente",humidityUp:"Aumenta umidit\xe0",humidityDown:"Riduci umidit\xe0",swingVertical:"Oscillazione verticale",swingHorizontal:"Oscillazione orizzontale",climateModes:{off:"Spento",heat:"Riscaldamento",cool:"Raffreddamento",auto:"Auto",heat_cool:"Caldo/Freddo",fan_only:"Ventola",dry:"Deumidificazione"}},cameraMenu:{title:"Opzioni vista",boundingBoxes:"Bounding box",streamStats:"Statistiche stream",audioLevel:"Livello audio",densityTitle:"Densit\xe0 timeline",density_compact:"Compatta",density_medium:"Media",density_wide:"Ampia",densityCustom:"Personalizzata",showImportance:"Mostra importanza",showClass:"Mostra classe rilevata",timelineSection:"Timeline",managementTitle:"Gestione"},cameraSwitches:{title:"Funzioni telecamera",loading:"Lettura delle funzioni\u2026",readFailed:"Impossibile leggere le funzioni della telecamera. Nulla \xe8 cambiato \u2014 non vengono mostrate anzich\xe9 mostrarle con uno stato ipotizzato.",writeFailed:"Modifica rifiutata e annullata. {{reason}}",offBadge:"OFF",badgeLabel_one:"{{count}} funzione disattivata",badgeLabel_other:"{{count}} funzioni disattivate",unavailableNoProvider:"Non disponibile \u2014 nessun componente di questa installazione la fornisce.",unavailableUnreachable:"Sconosciuto \u2014 il servizio che la gestisce non ha risposto.",unavailableUnknown:"Non disponibile su questa telecamera."},stats:{title:"Statistiche stream",resolution:"Risoluzione",fps:"FPS",bitrate:"Bitrate",packetLoss:"Pacchetti persi",jitter:"Jitter",codec:"Codec",frames:"Frame (persi/totali)",waiting:"Misurazione\u2026",playbackHint:"Le statistiche WebRTC complete richiedono il player nativo."},exportActions:{title:"Cattura",recordingExport:"Esporta registrazione"},exports:{title:"Esportazioni",empty:"Nessuna esportazione.",settingsHint:"Scarica clip registrate",range:"Intervallo",rangeStart:"Inizio",rangeEnd:"Fine",profile:"Profilo",noFootage:"Nessuna registrazione in questo intervallo.",speed:"Velocit\xe0",timelapse:"Timelapse",cadence:"Un fotogramma ogni",audio:"Audio",includeAudio:"Includi audio",audioUnavailable:"L'audio \xe8 disponibile solo a velocit\xe0 0,5\u20132\xd7.",retention:"Conserva per",life24h:"24 ore",life7d:"7 giorni",life30d:"30 giorni",deleteAfterDownload:"Elimina dopo il download",deleteAfterDownloadHint:"Rimuovi il file una volta scaricato.",creating:"Creazione\u2026",createAction:"Esporta",createFailed:"Impossibile creare l'esportazione.",withAudio:"con audio",variantRegular:"1\xd7",variantAccelerated:"Accelerato {{speed}}\xd7",variantSlow:"Rallentato {{speed}}\xd7",variantTimelapse:"Timelapse",expired:"Scaduto",expiresInDays:"Scade tra {{count}}g",expiresInHours:"Scade tra {{count}}h",expiresInMinutes:"Scade tra {{count}}m",downloadAction:"Scarica",downloadUnavailable:"Download non disponibile.",downloadFailed:"Download non riuscito.",cancelAction:"Annulla",cancelConfirmTitle:"Annullare l'esportazione?",cancelConfirmBody:"Interrompe il rendering ed elimina il file parziale.",deleteAction:"Elimina",deleteConfirmTitle:"Eliminare l'esportazione?",deleteConfirmBody:"Rimuove il file. La voce nella cronologia viene mantenuta.",dismiss:"Chiudi",state:{queued:"In coda",rendering:"Rendering",ready:"Pronto",failed:"Non riuscito",expired:"Scaduto",deleted:"Eliminato"}},streamBar:{play:"Riproduci",pause:"Pausa",mute:"Silenzia",unmute:"Riattiva audio",talkStart:"Inizia a parlare",talkStop:"Smetti di parlare",quality:"Qualit\xe0 stream",menu:"Opzioni vista",snapshot:"Istantanea",pip:"Picture in picture",fullscreen:"Schermo intero",exitFullscreen:"Esci da schermo intero"},playback:{prevFrame:"Frame precedente",nextFrame:"Frame successivo",speed:"Velocit\xe0 riproduzione",audioMuted:"Audio off a \u2260 1\xd7",audioOn:"Audio attivo"},cameraSwitcher:{title:"Cambia videocamera",empty:"Nessuna videocamera disponibile",openGrid:"Apri griglia ({{n}})",selectA11y:"Seleziona {{name}}"},storage:{title:"Archiviazione",usageTitle:"Utilizzo",nodeTotal:"Totale nodo",defaultLocation:"Posizione predefinita",locationFree:"{{free}} liberi",retentionTitle:"Conservazione",pruneAction:"Applica conservazione ora",pruneConfirmTitle:"Applicare la conservazione?",pruneConfirmBody:"Elimina le registrazioni su {{name}} che superano la policy di conservazione.",pruneResult:"Recuperati {{bytes}} ({{buckets}} segmenti).",deleteTitle:"Elimina registrazioni",deleteAction:"Elimina",deleteConfirmTitle:"Eliminare le registrazioni?",deleteConfirmBody:"Elimina definitivamente {{range}} di registrazioni su {{name}}. Operazione irreversibile.",deleteResult:"Recuperati {{bytes}} ({{buckets}} segmenti).",cancel:"Annulla",window24h:"Ultime 24h",window7d:"Ultimi 7 giorni",window30d:"Ultimi 30 giorni",windowAll:"Tutto"},eventsMgmt:{title:"Eventi",footprintTitle:"Ingombro",rowsBytes:"{{rows}} eventi \xb7 {{bytes}}",clusterTotal:"Totale cluster",pruneTitle:"Elimina pi\xf9 vecchi di",pruneHint:"Si applica a tutte le telecamere.",pruneAction:"Elimina",pruneConfirmTitle:"Eliminare gli eventi vecchi?",pruneConfirmBody:"Elimina gli eventi pi\xf9 vecchi di {{range}} su TUTTE le telecamere. Operazione irreversibile.",pruneResult:"Eliminati {{count}} eventi.",deleteTitle:"Elimina eventi telecamera",deleteAction:"Elimina tutti gli eventi di questa telecamera",deleteConfirmTitle:"Eliminare tutti gli eventi?",deleteConfirmBody:"Elimina definitivamente ogni evento di {{name}}. Operazione irreversibile.",deleteResult:"Eliminati {{count}} eventi.",cancel:"Annulla",older24h:"24 ore",older7d:"7 giorni",older30d:"30 giorni"},overlay:{title:"Overlay",objectSection:"Riquadri oggetti rilevati",motionSection:"Movimento",borderSection:"Bordo evidenziazione",liveSection:"Indicatori live",readoutsSection:"Valori",motionBoxes:"Aree di movimento",discardedBoxes:"Rilevamenti scartati (diagnostica)",discardedHint:"Mostra ci\xf2 che il modello ha visto ma la pipeline ha scartato \u2014 soglia di confidenza, guardia full-frame, regole di zona. La pillola confronta ci\xf2 che il modello ha visto con ci\xf2 che viene disegnato.",diagCounts:"modello {{saw}} \xb7 tenuti {{kept}}",diagHidden:"{{hidden}} nascosti",diagShed:"frame saltato \xb7 {{reason}}",reasonThreshold:"sotto soglia",reasonFullFrame:"guardia full-frame",reasonNms:"soppresso da NMS",reasonClassFilter:"filtro classe",reasonZoneGate:"regola di zona",motionBadge:"Badge movimento",highlightBorder:"Bordo evidenziazione",occupancy:"Occupazione",addReadout:"Aggiungi un valore",removeReadout:"Rimuovi valore",readoutsHint:"Fissa un valore live sull'immagine: il livello audio, o un sensore collegato a questa telecamera.",noFields:"Questo dispositivo non pubblica valori live.",thisCamera:"Questa telecamera",audioDbfs:"Livello audio",liveOnlyHint:"Si disegnano solo sull'immagine live \u2014 non in riproduzione n\xe9 in pausa.",positions:{off:"Off","top-left":"In alto a sinistra","top-center":"In alto al centro","top-right":"In alto a destra","left-center":"Al centro a sinistra","right-center":"Al centro a destra","bottom-left":"In basso a sinistra","bottom-center":"In basso al centro","bottom-right":"In basso a destra"}},clips:{title:"Clip",loading:"Caricamento clip\u2026",empty:"Nessuna clip per questa telecamera nell'intervallo caricato.",summary_one:"{{count}} clip",summary_other:"{{count}} clip",collapsedHint:"{{duration}} saltati",hiddenHint_one:"{{count}} nascosta dal filtro sorgenti",hiddenHint_other:"{{count}} nascoste dal filtro sorgenti",segmentLabel:"Clip delle {{time}}, durata {{duration}}",gapLabel:"Salto di {{duration}}",notPlayable:"non ancora riproducibile",kind_motion:"Movimento",kind_object:"Oggetto",kind_audio:"Audio",kind_native:"Telecamera",sourceAnalytics:"Registrazione",sourceOnboard:"Telecamera ({{vendor}})",sourceHksv:"HomeKit",sourceUnknown:"{{vendor}}",unitDay:"g",unitHour:"o",unitMinute:"m",unitSecond:"s"},eventsEmbed:{section:"Embed dell'hub (anteprima)",title:"Embed eventi",count:"{{count}} mostrati",openPreview:"Anteprima embed",openPreviewHint:"Apre la superficie eventi ospitata dall'hub accanto a questa pagina. Non sostituisce nulla.",view_reel:"Striscia",view_gallery:"Galleria",error:"Impossibile caricare gli eventi",retry:"Riprova",empty:"Nessun evento",end:"\xb7 fine \xb7"},eventsShare:{title:"Link embed eventi",openBuilder:"Crea link embed",openBuilderHint:"Costruisci un URL autonomo per una dashboard o un iframe.",view:"Vista",viewReel:"Striscia",viewGallery:"Galleria",columns:"Colonne",rows:"Righe",auto:"Auto",thumb:"Dimensione miniature",thumbSmall:"Piccola",thumbMedium:"Media",thumbLarge:"Grande",theme:"Tema",themeAuto:"Auto",themeDark:"Scuro",themeLight:"Chiaro",fields:"Testo della card",field_label:"Titolo",field_sublabel:"Classe",field_camera:"Telecamera",field_time:"Ora",field_badges:"Badge",cameras:"Telecamere",camerasAll:"Tutte le telecamere visibili al link",camerasCount:"{{count}} selezionate",preview:"Anteprima del link",shareMediaNotice:"Un link di condivisione non riesce a caricare le miniature. I token di condivisione non hanno alcun accesso all'endpoint dei media: la pagina elenca gli eventi, senza le immagini.",copyLink:"Crea link",chip:"Link embed",semanticScopeNotice:"La ricerca semantica gira su tutte le telecamere e viene poi ristretta a questo link: un link con poche telecamere pu\xf2 quindi restituire pochi risultati su un cluster grande."}},prototype:{today:"Oggi",yesterday:"Ieri",now:"ORA",endOfDay:"FINE GIORNATA",loading:"Caricamento...",timeline:"Timeline",events:"Eventi",playClip:"Riproduci clip",goToNow:"ORA",noEvents:"Nessun evento"},eventKind:{motion:"Movimento",audio:"Audio",person:"Persona",vehicle:"Veicolo",animal:"Animale",package:"Pacco",sensor:"Sensore",control:"Controllo",car:"Auto",truck:"Camion",bus:"Autobus",motorcycle:"Motocicletta",bicycle:"Bicicletta",airplane:"Aereo",boat:"Barca",train:"Treno",bird:"Uccello",cat:"Gatto",dog:"Cane",horse:"Cavallo",sheep:"Pecora",cow:"Mucca",elephant:"Elefante",bear:"Orso",zebra:"Zebra",giraffe:"Giraffa",contact:"Contatto","motion-sensor":"Sensore movimento",smoke:"Fumo",flood:"Allagamento",gas:"Gas","carbon-monoxide":"Monossido di carbonio",vibration:"Vibrazione",tamper:"Manomissione",presence:"Presenza","enum-sensor":"Stato sensore","device-event":"Evento dispositivo",lock:"Serratura",switch:"Interruttore",siren:"Sirena",button:"Pulsante",doorbell:"Campanello","package-delivered":"Pacco consegnato","package-picked-up":"Pacco ritirato","audio-speech":"Voce","audio-music":"Musica","audio-dog":"Cane","audio-doorbell":"Campanello","audio-siren":"Sirena","audio-alarm":"Allarme"}}},2133,[]);
3439
3439
  __d(function(g,r,i,a,m,_e,_d){"use strict";var e,t=r(_d[0]),n=(e=t)&&e.__esModule?e:{default:e},u=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),c=r(_d[2]);(0,c.setEmbedCacheBust)((0,c.deriveEmbedCacheBust)({updateId:(function(){try{return u.updateId}catch{return null}})(),appVersion:(function(){try{return n.default.expoConfig?.version??null}catch{return null}})()}))},2134,[288,1897,1853]);
3440
3440
  __d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),s=r(d[1]);t.useCameraPrefsStore.getState().hydrate(),s.useGridStore.getState().hydrate()},2135,[1535,1536]);
3441
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.RootProviders=function(_){const y=(0,t.c)(6),{children:P}=_;let S,b,p,M,w;y[0]===Symbol.for("react.memo_cache_sentinel")?(S={flex:1},y[0]=S):S=y[0];y[1]===Symbol.for("react.memo_cache_sentinel")?(b=(0,v.jsx)(l.ThemedStatusBar,{}),y[1]=b):b=y[1];y[2]===Symbol.for("react.memo_cache_sentinel")?(p=(0,v.jsx)(j.OtaUpdateGate,{}),M=(0,v.jsx)(u.EmbedWarmup,{}),y[2]=p,y[3]=M):(p=y[2],M=y[3]);y[4]!==P?(w=(0,v.jsx)(n.GestureHandlerRootView,{style:S,children:(0,v.jsx)(c.SafeAreaProvider,{initialMetrics:c.initialWindowMetrics,children:(0,v.jsx)(o.QueryClientProvider,{client:f,children:(0,v.jsxs)(s.ThemeProvider,{children:[b,(0,v.jsx)(h.ServerProvider,{children:(0,v.jsxs)(x.LoggerBridge,{children:[p,M,P]})})]})})})}),y[4]=P,y[5]=w):w=y[5];return w};var t=r(d[0]);r(d[1]);var n=r(d[2]),c=r(d[3]),o=r(d[4]),s=r(d[5]),l=r(d[6]),h=r(d[7]),u=r(d[8]),j=r(d[9]),x=r(d[10]),_=r(d[11]),v=r(d[12]);const f=(0,_.createQueryClient)()},2136,[15,17,1682,466,1477,999,2137,1552,2138,2144,2145,1557,10]);
3441
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.RootProviders=function(_){const v=(0,t.c)(6),{children:S}=_;let b,P,p,M,Q;v[0]===Symbol.for("react.memo_cache_sentinel")?(b={flex:1},v[0]=b):b=v[0];v[1]===Symbol.for("react.memo_cache_sentinel")?(P=(0,f.jsx)(l.ThemedStatusBar,{}),v[1]=P):P=v[1];v[2]===Symbol.for("react.memo_cache_sentinel")?(p=(0,f.jsx)(j.OtaUpdateGate,{}),M=(0,f.jsx)(h.EmbedWarmup,{}),v[2]=p,v[3]=M):(p=v[2],M=v[3]);v[4]!==S?(Q=(0,f.jsx)(n.GestureHandlerRootView,{style:b,children:(0,f.jsx)(c.SafeAreaProvider,{initialMetrics:c.initialWindowMetrics,children:(0,f.jsx)(o.QueryClientProvider,{client:y,children:(0,f.jsxs)(s.ThemeProvider,{children:[P,(0,f.jsx)(u.ServerProvider,{children:(0,f.jsxs)(x.LoggerBridge,{children:[p,M,S]})})]})})})}),v[4]=S,v[5]=Q):Q=v[5];return Q};var t=r(d[0]);r(d[1]);var n=r(d[2]),c=r(d[3]),o=r(d[4]),s=r(d[5]),l=r(d[6]),u=r(d[7]),h=r(d[8]),j=r(d[9]),x=r(d[10]),_=r(d[11]),v=r(d[12]),f=r(d[13]);const y=(0,_.createQueryClient)();(0,v.bindQueryFocusToAppState)()},2136,[15,17,1682,466,1477,999,2137,1552,2138,2144,2145,1557,2146,10]);
3442
3442
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.ThemedStatusBar=function(){const c=(0,t.c)(2),{mode:o}=(0,u.useTheme)(),l="dark"===o?"light":"dark";let _;c[0]!==l?(_=(0,n.jsx)(s.StatusBar,{style:l}),c[0]=l,c[1]=_):_=c[1];return _};var t=r(d[0]);r(d[1]);var s=r(d[2]),u=r(d[3]),n=r(d[4])},2137,[15,17,1918,999,10]);
3443
3443
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.EmbedWarmup=function(){const t=(0,e.c)(5),{server:l}=(0,p.useServer)(),[_,f]=(0,o.useState)(!1),y=l?.serverUrl??null,{source:h}=(0,v.useNativeEmbedSource)(y,"player");return null;let E,S,w,j;t[0]===Symbol.for("react.memo_cache_sentinel")?(E={position:"absolute",left:-10,top:-10,width:1,height:1,opacity:0},t[0]=E):E=t[0];t[1]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{s.log.info("live:warmup","embed player pre-warmed"),(0,c.markBoot)("embedLoaded",{via:"local-warmup"}),f(!0)},w=()=>f(!0),t[1]=S,t[2]=w):(S=t[1],w=t[2]);t[3]!==h?(j=(0,b.jsx)(n.default,{pointerEvents:"none",style:E,children:(0,b.jsx)(u.WebView,{source:h,javaScriptEnabled:!0,onLoadEnd:S,onError:w})}),t[3]=h,t[4]=j):j=t[4];return j};var e=r(d[0]),o=r(d[1]);r(d[2]);var t,l=r(d[3]),n=(t=l)&&t.__esModule?t:{default:t},u=r(d[4]),s=r(d[5]),c=r(d[6]),p=r(d[7]),v=r(d[8]),b=r(d[9])},2138,[15,17,136,20,2139,1124,1128,1552,2143,10]);
3444
3444
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}}),Object.defineProperty(_e,"WebView",{enumerable:!0,get:function(){return u.default}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e},n=u.default},2139,[2140]);
@@ -3448,22 +3448,23 @@ __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.d
3448
3448
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useNativeEmbedSource=function(u,t){return{source:null}}},2143,[]);
3449
3449
  __d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.OtaUpdateGate=function(){return(0,e.useEffect)(()=>{if(!t.isEnabled)return;const e=Date.now();let c=!1;return(async()=>{try{const u=await t.checkForUpdateAsync();if(c||!u.isAvailable)return;const o=await t.fetchUpdateAsync();if(c||!o.isNew)return;if(Date.now()-e>n)return;await t.reloadAsync()}catch{}})(),()=>{c=!0}},[]),null};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var c=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,c.get?c:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1]));const n=15e3},2144,[17,1897]);
3450
3450
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.LoggerBridge=function(f){const p=(0,n.c)(9),{children:v}=f,{server:b,token:h}=(0,t.useServer)(),S=(0,s.useSettingsStore)(l);let L,_;p[0]!==S?(L=()=>{(0,u.setLogVerbose)(S),u.log.info("app","debug mode "+(S?"ON (verbose)":"off"))},_=[S],p[0]=S,p[1]=L,p[2]=_):(L=p[1],_=p[2]);(0,o.useEffect)(L,_);const U=b?.serverUrl??null;let j,k,E;p[3]!==U||p[4]!==h?(j=()=>{U&&h?((0,u.configureLogShipping)({serverUrl:U,token:h}),u.log.info("app","log shipping configured",{serverUrl:U})):(0,u.configureLogShipping)(null)},k=[U,h],p[3]=U,p[4]=h,p[5]=j,p[6]=k):(j=p[5],k=p[6]);(0,o.useEffect)(j,k),p[7]!==v?(E=(0,c.jsx)(c.Fragment,{children:v}),p[7]=v,p[8]=E):E=p[8];return E};var n=r(d[0]),o=r(d[1]),t=r(d[2]),s=r(d[3]),u=r(d[4]),c=r(d[5]);function l(n){return n.settings.advanced.debugMode}},2145,[15,17,1552,1537,1124,10]);
3451
- __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return _}});var n=r(d[0]),t=e(r(d[1])),o=e(r(d[2])),c=r(d[3]),u=r(d[4]),l=r(d[5]),s=r(d[6]),f=r(d[7]),b=r(d[8]);function _(){const e=(0,n.c)(10),{loading:_,server:y,token:j}=(0,u.useServer)(),{colors:S}=(0,l.useTheme)();if(_){let n,c,u;return e[0]!==S.background?(n={flex:1,backgroundColor:S.background,alignItems:"center",justifyContent:"center"},e[0]=S.background,e[1]=n):n=e[1],e[2]!==S.primary?(c=(0,b.jsx)(t.default,{color:S.primary}),e[2]=S.primary,e[3]=c):c=e[3],e[4]!==n||e[5]!==c?(u=(0,b.jsx)(o.default,{style:n,children:c}),e[4]=n,e[5]=c,e[6]=u):u=e[6],u}if(!y||!j){if((0,f.canReuseHubSession)(!1)){let n;return e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,b.jsx)(f.HubSessionBootstrap,{fallback:(0,b.jsx)(s.LoginScreen,{})}),e[7]=n):n=e[7],n}let n;return e[8]===Symbol.for("react.memo_cache_sentinel")?(n=(0,b.jsx)(s.LoginScreen,{}),e[8]=n):n=e[8],n}let x;return e[9]===Symbol.for("react.memo_cache_sentinel")?(x=(0,b.jsx)(c.Redirect,{href:"/cameras"}),e[9]=x):x=e[9],x}},2146,[15,240,20,743,1552,999,2147,2154,10]);
3452
- __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.LoginScreen=function(){const{t:e}=(0,h.useTranslation)(),{save:o,lastServerUrl:n,rememberServerUrl:s}=(0,y.useServer)(),{colors:c}=(0,x.useTheme)(),[f,j]=(0,t.useState)('credentials'),[w,T]=(0,t.useState)('https://'),[z,G]=(0,t.useState)(!1);z||null===n||(G(!0),'https://'!==w&&0!==w.trim().length||T(n));const[U,N]=(0,t.useState)(''),[R,F]=(0,t.useState)(''),[_,W]=(0,t.useState)(!1),[D,L]=(0,t.useState)(''),[H,B]=(0,t.useState)(''),[E,O]=(0,t.useState)(''),[V,M]=(0,t.useState)(!1),q=w.trim(),J=q.length>0&&U.trim().length>0&&R.length>0,K=async e=>{await o({id:q,label:q,serverUrl:q},e)},Q=async()=>{if(J&&!V){await s(q),O(''),M(!0);try{const e=await(0,S.login)(q,U.trim(),R);if('totp-required'===e.status)return L(e.token),void j('totp');await K(e.token)}catch(o){O(I(o,e('v2.login.loginFailed')))}finally{M(!1)}}},X=async()=>{if(6===H.length&&!V){O(''),M(!0);try{const{token:e}=await(0,S.verifyTotp)(q,D,H);await K(e)}catch(o){O(I(o,e('v2.login.verifyFailed'))),B('')}finally{M(!1)}}};return(0,v.jsx)(l.default,{style:{flex:1,backgroundColor:c.background},behavior:void 0,children:(0,v.jsx)(u.default,{contentContainerStyle:{flexGrow:1,justifyContent:'center',alignItems:'center',padding:p.SPACING['2xl']},keyboardShouldPersistTaps:"handled",children:(0,v.jsxs)(b.default,{style:{width:'100%',maxWidth:420,gap:p.SPACING['2xl']},children:[(0,v.jsx)(b.default,{style:{alignItems:'center'},children:(0,v.jsx)(C.BrandLogo,{width:220})}),(0,v.jsxs)(b.default,{style:{backgroundColor:c.surface,borderColor:c.border,borderWidth:1,borderRadius:p.RADIUS.lg,padding:p.SPACING['2xl'],gap:p.SPACING.xl},children:[E.length>0&&(0,v.jsx)(P,{colors:c,message:E}),'credentials'===f?(0,v.jsx)(A,{colors:c,serverUrl:w,username:U,password:R,showPassword:_,submitting:V,canSubmit:J,onChangeServerUrl:T,onChangeUsername:N,onChangePassword:F,onToggleShowPassword:()=>W(e=>!e),onSubmit:()=>{Q()},onHubSignIn:void 0}):(0,v.jsx)(k,{colors:c,username:U.trim(),totpCode:H,submitting:V,onChangeTotp:e=>B(e.replace(/\D/g,'').slice(0,6)),onSubmit:()=>{X()},onBack:()=>{j('credentials'),L(''),B(''),O('')}})]})]})})})};var o=r(d[0]),t=r(d[1]),n=e(r(d[2])),l=e(r(d[3]));r(d[4]);var s=e(r(d[5])),u=e(r(d[6])),c=e(r(d[7])),f=e(r(d[8])),b=e(r(d[9])),h=r(d[10]);r(d[11]),r(d[12]);var S=r(d[13]);r(d[14]),r(d[15]);var y=r(d[16]),x=r(d[17]),p=r(d[18]),C=r(d[19]),j=r(d[20]),v=r(d[21]);function I(e,o){return e instanceof Error&&e.message?e.message:o}function P(e){const t=(0,o.c)(11),{colors:n,message:l}=e,s=n.danger+"1a",u=n.danger+"40";let f,h,S,y;return t[0]!==s||t[1]!==u?(f={backgroundColor:s,borderColor:u,borderWidth:1,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,paddingHorizontal:p.SPACING.xl},t[0]=s,t[1]=u,t[2]=f):f=t[2],t[3]!==n.danger?(h={color:n.danger,fontSize:13},t[3]=n.danger,t[4]=h):h=t[4],t[5]!==l||t[6]!==h?(S=(0,v.jsx)(c.default,{style:h,children:l}),t[5]=l,t[6]=h,t[7]=S):S=t[7],t[8]!==f||t[9]!==S?(y=(0,v.jsx)(b.default,{style:f,children:S}),t[8]=f,t[9]=S,t[10]=y):y=t[10],y}function w(e){return{color:e.foregroundSubtle,fontSize:12,fontWeight:'600',marginBottom:p.SPACING.sm}}function T(e){return{backgroundColor:e.background,borderColor:e.border,borderWidth:1,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,paddingHorizontal:p.SPACING.xl,color:e.foreground,fontSize:15}}function A(e){const t=(0,o.c)(100),{colors:n,serverUrl:l,username:u,password:S,showPassword:y,submitting:x,canSubmit:C,onChangeServerUrl:I,onChangeUsername:P,onChangePassword:A,onToggleShowPassword:k,onSubmit:G,onHubSignIn:U}=e,{t:N}=(0,h.useTranslation)();let R,F,_;t[0]!==n?(R=w(n),t[0]=n,t[1]=R):R=t[1],t[2]!==N?(F=N("v2.login.serverUrl"),t[2]=N,t[3]=F):F=t[3],t[4]!==R||t[5]!==F?(_=(0,v.jsx)(c.default,{style:R,children:F}),t[4]=R,t[5]=F,t[6]=_):_=t[6];const W=n.foregroundSubtle;let D,L,H,B,E,O,V;t[7]!==n?(D=T(n),t[7]=n,t[8]=D):D=t[8],t[9]!==n.foregroundSubtle||t[10]!==I||t[11]!==l||t[12]!==D?(L=(0,v.jsx)(f.default,{value:l,onChangeText:I,placeholder:"https://hub.local:4443",placeholderTextColor:W,autoCapitalize:"none",autoCorrect:!1,keyboardType:"url",style:D}),t[9]=n.foregroundSubtle,t[10]=I,t[11]=l,t[12]=D,t[13]=L):L=t[13],t[14]!==_||t[15]!==L?(H=(0,v.jsxs)(b.default,{children:[_,L]}),t[14]=_,t[15]=L,t[16]=H):H=t[16],t[17]!==n?(B=w(n),t[17]=n,t[18]=B):B=t[18],t[19]!==N?(E=N("v2.login.username"),t[19]=N,t[20]=E):E=t[20],t[21]!==B||t[22]!==E?(O=(0,v.jsx)(c.default,{style:B,children:E}),t[21]=B,t[22]=E,t[23]=O):O=t[23],t[24]!==N?(V=N("v2.login.username"),t[24]=N,t[25]=V):V=t[25];const M=n.foregroundSubtle;let q,J,K,Q,X,Y,Z,$;t[26]!==n?(q=T(n),t[26]=n,t[27]=q):q=t[27],t[28]!==n.foregroundSubtle||t[29]!==P||t[30]!==V||t[31]!==q||t[32]!==u?(J=(0,v.jsx)(f.default,{value:u,onChangeText:P,placeholder:V,placeholderTextColor:M,autoCapitalize:"none",autoCorrect:!1,autoFocus:!0,style:q}),t[28]=n.foregroundSubtle,t[29]=P,t[30]=V,t[31]=q,t[32]=u,t[33]=J):J=t[33],t[34]!==O||t[35]!==J?(K=(0,v.jsxs)(b.default,{children:[O,J]}),t[34]=O,t[35]=J,t[36]=K):K=t[36],t[37]!==n?(Q=w(n),t[37]=n,t[38]=Q):Q=t[38],t[39]!==N?(X=N("v2.login.password"),t[39]=N,t[40]=X):X=t[40],t[41]!==Q||t[42]!==X?(Y=(0,v.jsx)(c.default,{style:Q,children:X}),t[41]=Q,t[42]=X,t[43]=Y):Y=t[43],t[44]===Symbol.for("react.memo_cache_sentinel")?(Z={position:"relative",justifyContent:"center"},t[44]=Z):Z=t[44],t[45]!==N?($=N("v2.login.password"),t[45]=N,t[46]=$):$=t[46];const ee=n.foregroundSubtle,oe=!y;let re,te,ne,le,se,ae,ie,de,ue;t[47]!==n?(re=T(n),t[47]=n,t[48]=re):re=t[48],t[49]!==re?(te=Object.assign({},re,{paddingRight:48}),t[49]=re,t[50]=te):te=t[50],t[51]!==n.foregroundSubtle||t[52]!==A||t[53]!==S||t[54]!==$||t[55]!==oe||t[56]!==te?(ne=(0,v.jsx)(f.default,{value:S,onChangeText:A,placeholder:$,placeholderTextColor:ee,autoCapitalize:"none",autoCorrect:!1,secureTextEntry:oe,style:te}),t[51]=n.foregroundSubtle,t[52]=A,t[53]=S,t[54]=$,t[55]=oe,t[56]=te,t[57]=ne):ne=t[57],t[58]!==y||t[59]!==N?(le=N(y?"v2.login.hidePassword":"v2.login.showPassword"),t[58]=y,t[59]=N,t[60]=le):le=t[60],t[61]===Symbol.for("react.memo_cache_sentinel")?(se={position:"absolute",right:p.SPACING.xl},t[61]=se):se=t[61],t[62]!==n.foregroundSubtle||t[63]!==y?(ae=y?(0,v.jsx)(j.EyeOff,{color:n.foregroundSubtle,size:20}):(0,v.jsx)(j.Eye,{color:n.foregroundSubtle,size:20}),t[62]=n.foregroundSubtle,t[63]=y,t[64]=ae):ae=t[64],t[65]!==k||t[66]!==le||t[67]!==ae?(ie=(0,v.jsx)(s.default,{accessibilityRole:"button",accessibilityLabel:le,onPress:k,hitSlop:8,style:se,children:ae}),t[65]=k,t[66]=le,t[67]=ae,t[68]=ie):ie=t[68],t[69]!==ne||t[70]!==ie?(de=(0,v.jsxs)(b.default,{style:Z,children:[ne,ie]}),t[69]=ne,t[70]=ie,t[71]=de):de=t[71],t[72]!==Y||t[73]!==de?(ue=(0,v.jsxs)(b.default,{children:[Y,de]}),t[72]=Y,t[73]=de,t[74]=ue):ue=t[74];const ce=!C||x;let ge,fe,be,he,Se;return t[75]!==N?(ge=N("v2.login.signIn"),t[75]=N,t[76]=ge):ge=t[76],t[77]!==N?(fe=N("v2.login.signingIn"),t[77]=N,t[78]=fe):fe=t[78],t[79]!==n||t[80]!==G||t[81]!==x||t[82]!==ce||t[83]!==ge||t[84]!==fe?(be=(0,v.jsx)(z,{colors:n,disabled:ce,submitting:x,label:ge,loadingLabel:fe,onPress:G}),t[79]=n,t[80]=G,t[81]=x,t[82]=ce,t[83]=ge,t[84]=fe,t[85]=be):be=t[85],t[86]!==n.border||t[87]!==n.foreground||t[88]!==n.foregroundSubtle||t[89]!==U||t[90]!==l||t[91]!==x||t[92]!==N?(he=void 0!==U&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(b.default,{style:{flexDirection:"row",alignItems:"center",gap:p.SPACING.lg},children:[(0,v.jsx)(b.default,{style:{flex:1,height:1,backgroundColor:n.border}}),(0,v.jsx)(c.default,{style:{color:n.foregroundSubtle,fontSize:11,letterSpacing:1},children:N("v2.login.or").toUpperCase()}),(0,v.jsx)(b.default,{style:{flex:1,height:1,backgroundColor:n.border}})]}),(0,v.jsx)(s.default,{accessibilityRole:"button",disabled:0===l.trim().length||x,onPress:U,style:{borderColor:n.border,borderWidth:1,opacity:0===l.trim().length||x?.5:1,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,alignItems:"center"},children:(0,v.jsx)(c.default,{style:{color:n.foreground,fontSize:15,fontWeight:"600"},children:N("v2.login.signInWithCamStack")})}),(0,v.jsx)(c.default,{style:{color:n.foregroundSubtle,fontSize:12},children:N("v2.login.hubSignInHint")})]}),t[86]=n.border,t[87]=n.foreground,t[88]=n.foregroundSubtle,t[89]=U,t[90]=l,t[91]=x,t[92]=N,t[93]=he):he=t[93],t[94]!==K||t[95]!==ue||t[96]!==be||t[97]!==he||t[98]!==H?(Se=(0,v.jsxs)(v.Fragment,{children:[H,K,ue,be,he]}),t[94]=K,t[95]=ue,t[96]=be,t[97]=he,t[98]=H,t[99]=Se):Se=t[99],Se}function k(e){const t=(0,o.c)(70),{colors:n,username:l,totpCode:u,submitting:S,onChangeTotp:y,onSubmit:x,onBack:C}=e,{t:j}=(0,h.useTranslation)();let I,P,A,k,G,U,N,R,F,_,W,D,L;t[0]===Symbol.for("react.memo_cache_sentinel")?(I={gap:p.SPACING.sm},t[0]=I):I=t[0],t[1]!==n.foreground?(P={color:n.foreground,fontSize:15,fontWeight:"600"},t[1]=n.foreground,t[2]=P):P=t[2],t[3]!==j?(A=j("v2.login.twoFactor"),t[3]=j,t[4]=A):A=t[4],t[5]!==P||t[6]!==A?(k=(0,v.jsx)(c.default,{style:P,children:A}),t[5]=P,t[6]=A,t[7]=k):k=t[7],t[8]!==n.foregroundSubtle?(G={color:n.foregroundSubtle,fontSize:13},t[8]=n.foregroundSubtle,t[9]=G):G=t[9],t[10]!==j?(U=j("v2.login.totpHint"),t[10]=j,t[11]=U):U=t[11],t[12]!==n.foreground?(N={color:n.foreground},t[12]=n.foreground,t[13]=N):N=t[13],t[14]!==N||t[15]!==l?(R=(0,v.jsx)(c.default,{style:N,children:l}),t[14]=N,t[15]=l,t[16]=R):R=t[16],t[17]!==G||t[18]!==U||t[19]!==R?(F=(0,v.jsxs)(c.default,{style:G,children:[U,R,"."]}),t[17]=G,t[18]=U,t[19]=R,t[20]=F):F=t[20],t[21]!==k||t[22]!==F?(_=(0,v.jsxs)(b.default,{style:I,children:[k,F]}),t[21]=k,t[22]=F,t[23]=_):_=t[23],t[24]!==n?(W=w(n),t[24]=n,t[25]=W):W=t[25],t[26]!==j?(D=j("v2.login.verificationCode"),t[26]=j,t[27]=D):D=t[27],t[28]!==W||t[29]!==D?(L=(0,v.jsx)(c.default,{style:W,children:D}),t[28]=W,t[29]=D,t[30]=L):L=t[30];const H=n.foregroundSubtle;let B,E,O,V;t[31]!==n?(B=T(n),t[31]=n,t[32]=B):B=t[32],t[33]!==B?(E=Object.assign({},B,{textAlign:"center",fontSize:24,letterSpacing:8}),t[33]=B,t[34]=E):E=t[34],t[35]!==n.foregroundSubtle||t[36]!==y||t[37]!==E||t[38]!==u?(O=(0,v.jsx)(f.default,{value:u,onChangeText:y,placeholder:"123456",placeholderTextColor:H,keyboardType:"numeric",maxLength:6,textContentType:"oneTimeCode",autoFocus:!0,style:E}),t[35]=n.foregroundSubtle,t[36]=y,t[37]=E,t[38]=u,t[39]=O):O=t[39],t[40]!==L||t[41]!==O?(V=(0,v.jsxs)(b.default,{children:[L,O]}),t[40]=L,t[41]=O,t[42]=V):V=t[42];const M=6!==u.length||S;let q,J,K,Q,X,Y,Z,$,ee;return t[43]!==j?(q=j("v2.login.verifyAndSignIn"),t[43]=j,t[44]=q):q=t[44],t[45]!==j?(J=j("v2.login.verifying"),t[45]=j,t[46]=J):J=t[46],t[47]!==n||t[48]!==x||t[49]!==S||t[50]!==M||t[51]!==q||t[52]!==J?(K=(0,v.jsx)(z,{colors:n,disabled:M,submitting:S,label:q,loadingLabel:J,onPress:x}),t[47]=n,t[48]=x,t[49]=S,t[50]=M,t[51]=q,t[52]=J,t[53]=K):K=t[53],t[54]===Symbol.for("react.memo_cache_sentinel")?(Q={alignItems:"center"},t[54]=Q):Q=t[54],t[55]!==n.foregroundSubtle?(X={color:n.foregroundSubtle,fontSize:13},t[55]=n.foregroundSubtle,t[56]=X):X=t[56],t[57]!==j?(Y=j("v2.login.back"),t[57]=j,t[58]=Y):Y=t[58],t[59]!==X||t[60]!==Y?(Z=(0,v.jsx)(c.default,{style:X,children:Y}),t[59]=X,t[60]=Y,t[61]=Z):Z=t[61],t[62]!==C||t[63]!==Z?($=(0,v.jsx)(s.default,{accessibilityRole:"button",onPress:C,style:Q,children:Z}),t[62]=C,t[63]=Z,t[64]=$):$=t[64],t[65]!==_||t[66]!==V||t[67]!==K||t[68]!==$?(ee=(0,v.jsxs)(v.Fragment,{children:[_,V,K,$]}),t[65]=_,t[66]=V,t[67]=K,t[68]=$,t[69]=ee):ee=t[69],ee}function z(e){const t=(0,o.c)(17),{colors:l,disabled:u,submitting:f,label:b,loadingLabel:h,onPress:S}=e,y=u?.5:1;let x,C,j;t[0]!==l.primary||t[1]!==y?(x={backgroundColor:l.primary,opacity:y,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,alignItems:"center",flexDirection:"row",justifyContent:"center",gap:p.SPACING.md},t[0]=l.primary,t[1]=y,t[2]=x):x=t[2],t[3]!==l.primaryForeground||t[4]!==f?(C=f&&(0,v.jsx)(n.default,{size:"small",color:l.primaryForeground}),t[3]=l.primaryForeground,t[4]=f,t[5]=C):C=t[5],t[6]!==l.primaryForeground?(j={color:l.primaryForeground,fontSize:16,fontWeight:"600"},t[6]=l.primaryForeground,t[7]=j):j=t[7];const I=f?h:b;let P,w;return t[8]!==j||t[9]!==I?(P=(0,v.jsx)(c.default,{style:j,children:I}),t[8]=j,t[9]=I,t[10]=P):P=t[10],t[11]!==u||t[12]!==S||t[13]!==x||t[14]!==C||t[15]!==P?(w=(0,v.jsxs)(s.default,{accessibilityRole:"button",disabled:u,onPress:S,style:x,children:[C,P]}),t[11]=u,t[12]=S,t[13]=x,t[14]=C,t[15]=P,t[16]=w):w=t[16],w}},2147,[15,17,240,244,136,252,147,112,262,20,786,2148,618,2151,2152,1124,1552,999,1001,2153,813,10]);
3453
- __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"WebBrowserResultType",{enumerable:!0,get:function(){return u.WebBrowserResultType}}),Object.defineProperty(_e,"WebBrowserPresentationStyle",{enumerable:!0,get:function(){return u.WebBrowserPresentationStyle}}),_e.getCustomTabsSupportingBrowsersAsync=async function(){if(!t.default.getCustomTabsSupportingBrowsersAsync)throw new o.UnavailabilityError('WebBrowser','getCustomTabsSupportingBrowsersAsync');return l},_e.warmUpAsync=async function(e){if(!t.default.warmUpAsync)throw new o.UnavailabilityError('WebBrowser','warmUpAsync');return{}},_e.mayInitWithUrlAsync=async function(e,n){if(!t.default.mayInitWithUrlAsync)throw new o.UnavailabilityError('WebBrowser','mayInitWithUrlAsync');return{}},_e.coolDownAsync=async function(e){if(!t.default.coolDownAsync)throw new o.UnavailabilityError('WebBrowser','coolDownAsync');return{}},_e.openBrowserAsync=c,_e.dismissBrowser=function(){return t.default.dismissBrowser?.()},_e.openAuthSessionAsync=async function(e,n,s={}){if(!t.default.openAuthSessionAsync)throw new o.UnavailabilityError('WebBrowser','openAuthSessionAsync');return['ios','macos','web'].includes("web")?t.default.openAuthSessionAsync(e,n,y(s)):t.default.openAuthSessionAsync(e,n)},_e.dismissAuthSession=function(){if(!t.default.dismissAuthSession)throw new o.UnavailabilityError('WebBrowser','dismissAuthSession');t.default.dismissAuthSession()},_e.maybeCompleteAuthSession=function(e={}){if(t.default.maybeCompleteAuthSession)return t.default.maybeCompleteAuthSession(e);return{type:'failed',message:'Not supported on this platform'}};var o=r(d[0]),n=e(r(d[1]));e(r(d[2]));r(d[3]);var s=e(r(d[4])),t=e(r(d[5])),u=r(d[6]);const l={defaultBrowserPackage:void 0,preferredBrowserPackage:void 0,browserPackages:[],servicePackages:[]};async function c(e,n={}){if(!t.default.openBrowserAsync)throw new o.UnavailabilityError('WebBrowser','openBrowserAsync');return await t.default.openBrowserAsync(e,y(n))}function y(e){return Object.assign({},e,{controlsColor:(0,s.default)(e.controlsColor),toolbarColor:(0,s.default)(e.toolbarColor),secondaryToolbarColor:(0,s.default)(e.secondaryToolbarColor)})}n.default.currentState},2148,[289,226,233,136,40,2149,2150]);
3454
- __d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}}),_e.normalizeUrl=u,_e.featureObjectToString=I;var e,t=r(d[0]),n=r(d[1]),o=(e=n)&&e.__esModule?e:{default:e},s=r(d[2]);let i=null;const c=new Map,l=e=>`ExpoWebBrowser_OriginUrl_${e}`,w=e=>`ExpoWebBrowser_RedirectUrl_${e}`;function u(e){return(e.origin.replace(e.protocol,'').replace(/^\/+/,'').replace(/\/+$/,'')+decodeURI(e.pathname.replace(/\/{2,}/g,'/'))).toLowerCase()}function p(){if(i&&(i.close(),c.has(i))){const{listener:e,appStateSubscription:t,interval:n}=c.get(i);clearInterval(n),window.removeEventListener('message',e),t.remove(),c.delete(i);const o=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');o&&(window.localStorage.removeItem('ExpoWebBrowserRedirectHandle'),window.localStorage.removeItem(l(o)),window.localStorage.removeItem(w(o))),i=null}}var f={async openBrowserAsync(e,t={}){if('undefined'==typeof window)return{type:s.WebBrowserResultType.CANCEL};const{windowName:n="_blank",windowFeatures:o}=t,i=B(o);return window.open(e,n,i),{type:s.WebBrowserResultType.OPENED}},dismissAuthSession(){'undefined'!=typeof window&&p()},maybeCompleteAuthSession({skipRedirectCheck:e}){if('undefined'==typeof window)return{type:'failed',message:'Cannot use expo-web-browser in a non-browser environment'};const n=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');if(!n)return{type:'failed',message:'No auth session is currently in progress'};const o=window.location.href;if(!0!==e){const e=window.localStorage.getItem(w(n)),t=u(window.location);if(e!==t)return{type:'failed',message:`Current URL "${t}" and original redirect URL "${e}" do not match.`}}window.localStorage.setItem(l(n),o);const s=window.opener??window.parent;if(!s)throw new t.CodedError('ERR_WEB_BROWSER_REDIRECT',"The window cannot complete the redirect request because the invoking window doesn't have a reference to it's parent. This can happen if the parent window was reloaded.");return s.postMessage({url:o,expoSender:n},s.location.toString()),{type:'success',message:"Attempting to complete auth"}},async openAuthSessionAsync(e,n,f){if('undefined'==typeof window)return{type:s.WebBrowserResultType.CANCEL};if(n=n??b(e),null==i||i?.closed){const n=B(f?.windowFeatures);if(i=window.open(e,f?.windowName,n),!i)throw new t.CodedError('ERR_WEB_BROWSER_BLOCKED','Popup window was blocked by the browser or failed to open. This can happen in mobile browsers when the window.open() method was invoked too long after a user input was fired.');try{i.focus()}catch{}}const h=await y(e);window.localStorage.setItem('ExpoWebBrowserRedirectHandle',h);const R=(()=>{if(!n)return n;try{return u(new URL(n))}catch{return n}})();return window.localStorage.setItem(w(h),R),new Promise(async e=>{const t=t=>{if(!t.isTrusted)return;if(t.origin!==window.location.origin)return;const{data:n}=t,o=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');n.expoSender===o&&(p(),e({type:'success',url:n.url}))};window.addEventListener('message',t,!1);const n=o.default.addEventListener('change',t=>{if('active'!==t)return;const n=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');if(n){const t=window.localStorage.getItem(l(n));t&&(p(),e({type:'success',url:t}))}}),w=setInterval(()=>{i?.closed&&(e&&e({type:s.WebBrowserResultType.DISMISS}),clearInterval(w),p())},1e3);c.set(i,{listener:t,interval:w,appStateSubscription:n})})}};function h(){return'undefined'!=typeof window&&!!window?.crypto}async function y(e){const t=new URL(e);return t.searchParams.has('state')&&'string'==typeof t.searchParams.get('state')?t.searchParams.get('state'):await E()}function b(e){const t=new URL(e);return t.searchParams.has('redirect_uri')&&'string'==typeof t.searchParams.get('redirect_uri')?t.searchParams.get('redirect_uri'):location.origin+location.pathname}const R='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';async function E(){if(!h()||!window.crypto.subtle)throw new t.CodedError('ERR_WEB_BROWSER_CRYPTO',"The current environment doesn't support crypto. Ensure you are running from a secure origin (localhost/https).");const e=new TextEncoder,n=S(10),o=e.encode(n),s=await crypto.subtle.digest('SHA-256',o);return btoa(String.fromCharCode(...new Uint8Array(s)))}function S(e){let t=new Uint8Array(e);t.byteLength!==t.length&&(t=new Uint8Array(t.buffer));const n=new Uint8Array(t.length);if(h())window.crypto.getRandomValues(n);else for(let t=0;t<e;t+=1)n[t]=Math.random()*R.length|0;return v(n)}function v(e){let t='';for(const n of e){const e=n%R.length,o=R[e];null!=o&&(t+=o)}return t}function _(e){let t={};if('string'==typeof e){const n=e.split(',');for(const e of n){const[n,o]=e.trim().split('=');n&&o&&(t[n]=o)}}else e&&(t=e);return t}function B(e){const t=_(e),n=t.width??500,o=t.height??650,s=t.top??Math.max(0,.5*(window.screen.height-o)),i=t.left??Math.max(0,.5*(window.screen.width-n));return I(Object.assign({},t,{toolbar:t.toolbar??'no',menubar:t.menubar??'no',location:t.location??'yes',resizable:t.resizable??'yes',status:t.status??'no',scrollbars:t.scrollbars??'yes',top:s,left:i,width:n,height:o}))}function I(e){return Object.keys(e).reduce((t,n)=>{let o=e[n];return'boolean'==typeof o&&(o=o?'yes':'no'),n&&o?(t&&(t+=','),`${t}${n}=${o}`):t},'')}},2149,[289,226,2150]);
3455
- __d(function(g,r,i,a,m,e,d){"use strict";var t,n;Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"WebBrowserResultType",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"WebBrowserPresentationStyle",{enumerable:!0,get:function(){return n}}),(function(t){t.CANCEL="cancel",t.DISMISS="dismiss",t.OPENED="opened",t.LOCKED="locked"})(t||(t={})),(function(t){t.FULL_SCREEN="fullScreen",t.PAGE_SHEET="pageSheet",t.FORM_SHEET="formSheet",t.CURRENT_CONTEXT="currentContext",t.OVER_FULL_SCREEN="overFullScreen",t.OVER_CURRENT_CONTEXT="overCurrentContext",t.POPOVER="popover",t.AUTOMATIC="automatic"})(n||(n={}))},2150,[]);
3456
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"sdkAuthClient",{enumerable:!0,get:function(){return n}}),e.login=async function(t,o,s,u=n){const{token:c,requiresTotp:f}=await u(t).login(o,s);return{status:f?'totp-required':'success',token:c}},e.verifyTotp=async function(t,o,s,u=n){return u(t).loginVerifyTotp(o,s)};var t=r(d[0]);const n=n=>(0,t.createSystem)({serverUrl:n})},2151,[1008]);
3457
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"HANDOFF_CALLBACK_PATH",{enumerable:!0,get:function(){return n}}),e.canonicalizeCallbackUrl=o,e.buildHandoffLoginUrl=function(t,n){const c=o(n);return`${t.replace(/\/+$/,'')}/login?redirect=${encodeURIComponent(c)}`},e.isValidServerUrl=function(t){const n=t.trim();if(0===n.length||/^https?:\/\/$/i.test(n))return!1;try{const t=new URL(n);return('https:'===t.protocol||'http:'===t.protocol)&&t.hostname.length>0}catch{return!1}},e.extractHandoffCode=function(t){const n=t.indexOf('?');if(-1===n)return null;const o=t.slice(n+1).split('#')[0]??'',c=new URLSearchParams(o).get('code');return c&&c.length>0?c:null},e.redeemHandoffCode=async function(n,o,c){return(0,t.postHubAuthMutation)(Object.assign({baseUrl:n,procedure:'auth.redeemHandoffCode',input:{code:o}},c?{fetchFn:c}:{}))};var t=r(d[0]);const n='auth-callback';function o(t){return t.replace(/^([a-z][a-z0-9.+-]*):\/{2,3}/i,'$1://').replace(/\/$/,'')}},2152,[1555]);
3458
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.BrandLogo=function(x){const y=(0,t.c)(4),{width:h}=x,p=void 0===h?200:h,{mode:w}=(0,l.useTheme)(),v="light"===w?f:c,u=p/o;let z;y[0]!==v||y[1]!==u||y[2]!==p?(z=(0,s.jsx)(n.SvgXml,{xml:v,width:p,height:u}),y[0]=v,y[1]=u,y[2]=p,y[3]=z):z=y[3];return z};var t=r(d[0]);r(d[1]);var n=r(d[2]),l=r(d[3]),s=r(d[4]);const f="<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 56\" fill=\"none\">\n <g transform=\"translate(4, 2) scale(0.8)\">\n <rect x=\"8\" y=\"28\" width=\"48\" height=\"28\" rx=\"6\" fill=\"#d6d3d1\"/>\n <rect x=\"12\" y=\"16\" width=\"40\" height=\"28\" rx=\"6\" fill=\"#a8a29e\"/>\n <rect x=\"16\" y=\"4\" width=\"32\" height=\"28\" rx=\"6\" fill=\"#e67e22\"/>\n <circle cx=\"32\" cy=\"18\" r=\"8\" fill=\"#fafaf9\" opacity=\"0.3\"/>\n <circle cx=\"32\" cy=\"18\" r=\"5\" fill=\"#fafaf9\" opacity=\"0.2\"/>\n <circle cx=\"32\" cy=\"18\" r=\"2.5\" fill=\"#1c1917\" opacity=\"0.7\"/>\n </g>\n <text x=\"62\" y=\"30\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"24\" font-weight=\"700\" letter-spacing=\"-0.5\" fill=\"#1c1917\">\n Cam<tspan fill=\"#e67e22\">Stack</tspan>\n </text>\n <text x=\"63\" y=\"44\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"10\" font-weight=\"600\" letter-spacing=\"3\" fill=\"#78716c\">\n VIEWER\n </text>\n</svg>",c="<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 56\" fill=\"none\">\n <g transform=\"translate(4, 2) scale(0.8)\">\n <rect x=\"8\" y=\"28\" width=\"48\" height=\"28\" rx=\"6\" fill=\"#292524\"/>\n <rect x=\"12\" y=\"16\" width=\"40\" height=\"28\" rx=\"6\" fill=\"#44403c\"/>\n <rect x=\"16\" y=\"4\" width=\"32\" height=\"28\" rx=\"6\" fill=\"#f59e42\"/>\n <circle cx=\"32\" cy=\"18\" r=\"8\" fill=\"#0c0a09\" opacity=\"0.3\"/>\n <circle cx=\"32\" cy=\"18\" r=\"5\" fill=\"#0c0a09\" opacity=\"0.2\"/>\n <circle cx=\"32\" cy=\"18\" r=\"2.5\" fill=\"#fafaf9\" opacity=\"0.8\"/>\n </g>\n <text x=\"62\" y=\"30\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"24\" font-weight=\"700\" letter-spacing=\"-0.5\" fill=\"#fafaf9\">\n Cam<tspan fill=\"#f59e42\">Stack</tspan>\n </text>\n <text x=\"63\" y=\"44\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"10\" font-weight=\"600\" letter-spacing=\"3\" fill=\"#78716c\">\n VIEWER\n </text>\n</svg>",o=4.285714285714286},2153,[15,17,819,999,10]);
3459
- __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.canReuseHubSession=function(e){return(0,f.shouldAttemptHubSessionExchange)({platform:"web",pathname:'undefined'!=typeof window&&void 0!==window.location?window.location.pathname:null,webBasePath:"/viewer",hasServerConfigured:e})},_e.HubSessionBootstrap=function(e){const b=(0,n.c)(10),{fallback:p}=e,{save:y}=(0,u.useServer)(),{colors:S}=(0,c.useTheme)(),[k,x]=(0,o.useState)(!1);let H,_,j,I,B;b[0]!==y?(H=()=>{let e=!1;return(async()=>{const n=window.location.origin,o=await(0,f.exchangeHubSession)(n);if(!e){if("ok"===o.status)return v(!1),l.log.info("hub-session","Provisioned from hub session",{username:o.username}),void await y({id:n,label:n,serverUrl:n},o.token);if("unauthorized"===o.status&&!h())return v(!0),l.log.info("hub-session","No hub session \u2014 redirecting to hub login"),void window.location.assign((0,f.buildHubLoginUrl)(n,window.location.pathname));l.log.warn("hub-session","Hub session exchange failed \u2014 manual login",{status:o.status}),x(!0)}})(),()=>{e=!0}},_=[y],b[0]=y,b[1]=H,b[2]=_):(H=b[1],_=b[2]);if((0,o.useEffect)(H,_),k)return p;b[3]!==S.background?(j={flex:1,backgroundColor:S.background,alignItems:"center",justifyContent:"center"},b[3]=S.background,b[4]=j):j=b[4];b[5]!==S.primary?(I=(0,w.jsx)(t.default,{color:S.primary}),b[5]=S.primary,b[6]=I):I=b[6];b[7]!==j||b[8]!==I?(B=(0,w.jsx)(s.default,{style:j,children:I}),b[7]=j,b[8]=I,b[9]=B):B=b[9];return B};var n=r(d[0]),o=r(d[1]),t=e(r(d[2]));r(d[3]);var s=e(r(d[4])),u=r(d[5]),c=r(d[6]),l=r(d[7]),f=r(d[8]),w=r(d[9]);const b='v2.hubLoginBounced';function h(){try{return'1'===window.sessionStorage.getItem(b)}catch{return!0}}function v(e){try{e?window.sessionStorage.setItem(b,'1'):window.sessionStorage.removeItem(b)}catch{}}},2154,[15,17,240,136,20,1552,999,1124,1554,10]);
3460
- __d(function(g,r,i,a,_m,e,d){"use strict";var t=this&&this.__createBinding||(Object.create?function(t,n,o,c){void 0===c&&(c=o);var u=Object.getOwnPropertyDescriptor(n,o);u&&!("get"in u?!n.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return n[o]}}),Object.defineProperty(t,c,u)}:function(t,n,o,c){void 0===c&&(c=o),t[c]=n[o]}),n=this&&this.__exportStar||function(n,o){for(var c in n)"default"===c||Object.prototype.hasOwnProperty.call(o,c)||t(o,n,c)};Object.defineProperty(e,"__esModule",{value:!0}),n(r(d[0]),e)},2155,[2156]);
3461
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Head=void 0;const n=r(d[0]),c=r(d[1]),l=r(d[2]);function t({children:l}){return(0,n.jsx)(c.Helmet,{children:l})}e.Head=({children:c})=>(0,l.useIsFocused)()?(0,n.jsx)(t,{children:c}):null,e.Head.Provider=c.HelmetProvider},2156,[10,2157,757]);
3462
- __d(function(g,r,_i,a,m,e,d){"use strict";var t=r(d[0]).default;const s=["children"],n=["children"];var i,o=Object.create,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,u=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,y=(t,s,n,i)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let o of p(s))h.call(t,o)||o===n||l(t,o,{get:()=>s[o],enumerable:!(i=c(s,o))||i.enumerable});return t},f=(t,s,n)=>(n=null!=t?o(u(t)):{},y(!s&&t&&t.__esModule?n:l(n,"default",{value:t,enumerable:!0}),t)),b={};((t,s)=>{for(var n in s)l(t,n,{get:s[n],enumerable:!0})})(b,{Helmet:()=>Oe,HelmetData:()=>le,HelmetProvider:()=>pe}),m.exports=(i=b,y(l({},"__esModule",{value:!0}),i));var T=f(r(d[1])),O=f(r(d[2])),A=f(r(d[3])),j=f(r(d[1])),C=f(r(d[1])),w=(t=>(t.BASE="base",t.BODY="body",t.HEAD="head",t.HTML="html",t.LINK="link",t.META="meta",t.NOSCRIPT="noscript",t.SCRIPT="script",t.STYLE="style",t.TITLE="title",t.FRAGMENT="Symbol(react.fragment)",t))(w||{}),x={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},$={charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},k=Object.values(w),S={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},M=Object.entries(S).reduce((t,[s,n])=>(t[n]=s,t),{}),E="data-rh",P="defaultTitle",H="defer",D="encodeSpecialCharacters",L="onChangeClientState",I="titleTemplate",U="prioritizeSeoTags",N=(t,s)=>{for(let n=t.length-1;n>=0;n-=1){const i=t[n];if(Object.prototype.hasOwnProperty.call(i,s))return i[s]}return null},q=t=>{let s=N(t,"title");const n=N(t,I);if(Array.isArray(s)&&(s=s.join("")),n&&s)return n.replace(/%s/g,()=>s);const i=N(t,P);return s||i||void 0},_=t=>N(t,L)||(()=>{}),R=(t,s)=>s.filter(s=>void 0!==s[t]).map(s=>s[t]).reduce((t,s)=>Object.assign({},t,s),{}),z=(t,s)=>s.filter(t=>void 0!==t.base).map(t=>t.base).reverse().reduce((s,n)=>{if(!s.length){const i=Object.keys(n);for(let o=0;o<i.length;o+=1){const l=i[o].toLowerCase();if(-1!==t.indexOf(l)&&n[l])return s.concat(n)}}return s},[]),B=(t,s,n)=>{const i={};return n.filter(s=>{return!!Array.isArray(s[t])||(void 0!==s[t]&&(n=`Helmet: ${t} should be of type "Array". Instead found type "${typeof s[t]}"`,console&&"function"==typeof console.warn&&console.warn(n)),!1);var n}).map(s=>s[t]).reverse().reduce((t,n)=>{const o={};n.filter(t=>{let n;const l=Object.keys(t);for(let i=0;i<l.length;i+=1){const o=l[i],c=o.toLowerCase();-1===s.indexOf(c)||"rel"===n&&"canonical"===t[n].toLowerCase()||"rel"===c&&"stylesheet"===t[c].toLowerCase()||(n=c),-1===s.indexOf(o)||"innerHTML"!==o&&"cssText"!==o&&"itemprop"!==o||(n=o)}if(!n||!t[n])return!1;const c=t[n].toLowerCase();return i[n]||(i[n]={}),o[n]||(o[n]={}),!i[n][c]&&(o[n][c]=!0,!0)}).reverse().forEach(s=>t.push(s));const l=Object.keys(o);for(let t=0;t<l.length;t+=1){const s=l[t],n=Object.assign({},i[s],o[s]);i[s]=n}return t},[]).reverse()},F=(t,s)=>{if(Array.isArray(t)&&t.length)for(let n=0;n<t.length;n+=1){if(t[n][s])return!0}return!1},Y=t=>Array.isArray(t)?t.join(""):t,K=(t,s)=>{const n=Object.keys(t);for(let i=0;i<n.length;i+=1)if(s[n[i]]&&s[n[i]].includes(t[n[i]]))return!0;return!1},G=(t,s)=>Array.isArray(t)?t.reduce((t,n)=>(K(n,s)?t.priority.push(n):t.default.push(n),t),{priority:[],default:[]}):{default:t,priority:[]},W=(t,s)=>Object.assign({},t,{[s]:void 0}),J=["noscript","script","style"],Q=(t,s=!0)=>!1===s?String(t):String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),V=t=>Object.keys(t).reduce((s,n)=>{const i=void 0!==t[n]?`${n}="${Q(t[n])}"`:`${n}`;return s?`${s} ${i}`:i},""),X=(t,s,n,i)=>{const o=V(n),l=Y(s);return o?`<${t} ${E}="true" ${o}>${Q(l,i)}</${t}>`:`<${t} ${E}="true">${Q(l,i)}</${t}>`},Z=(t,s,n=!0)=>s.reduce((s,i)=>{const o=i,l=Object.keys(o).filter(t=>!("innerHTML"===t||"cssText"===t)).reduce((t,s)=>{const i=void 0===o[s]?s:`${s}="${Q(o[s],n)}"`;return t?`${t} ${i}`:i},""),c=o.innerHTML||o.cssText||"",p=-1===J.indexOf(t);return`${s}<${t} ${E}="true" ${l}${p?"/>":`>${c}</${t}>`}`},""),ee=(t,s={})=>Object.keys(t).reduce((s,n)=>(s[S[n]||n]=t[n],s),s),te=(t,s,n)=>{const i=ee(n,{key:s,[E]:!0});return[C.default.createElement("title",i,s)]},re=(t,s)=>s.map((s,n)=>{const i={key:n,[E]:!0};return Object.keys(s).forEach(t=>{const n=S[t]||t;if("innerHTML"===n||"cssText"===n){const t=s.innerHTML||s.cssText;i.dangerouslySetInnerHTML={__html:t}}else i[n]=s[t]}),C.default.createElement(t,i)}),se=(t,s,n=!0)=>{switch(t){case"title":return{toComponent:()=>te(0,s.title,s.titleAttributes),toString:()=>X(t,s.title,s.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>ee(s),toString:()=>V(s)};default:return{toComponent:()=>re(t,s),toString:()=>Z(t,s,n)}}},ne=({metaTags:t,linkTags:s,scriptTags:n,encode:i})=>{const o=G(t,$),l=G(s,x),c=G(n,v);return{priorityMethods:{toComponent:()=>[...re("meta",o.priority),...re("link",l.priority),...re("script",c.priority)],toString:()=>`${se("meta",o.priority,i)} ${se("link",l.priority,i)} ${se("script",c.priority,i)}`},metaTags:o.default,linkTags:l.default,scriptTags:c.default}},ie=t=>{const{baseTag:s,bodyAttributes:n,encode:i=!0,htmlAttributes:o,noscriptTags:l,styleTags:c,title:p="",titleAttributes:u,prioritizeSeoTags:h}=t;let{linkTags:y,metaTags:f,scriptTags:b}=t,T={toComponent:()=>{},toString:()=>""};return h&&({priorityMethods:T,linkTags:y,metaTags:f,scriptTags:b}=ne(t)),{priority:T,base:se("base",s,i),bodyAttributes:se("bodyAttributes",n,i),htmlAttributes:se("htmlAttributes",o,i),link:se("link",y,i),meta:se("meta",f,i),noscript:se("noscript",l,i),script:se("script",b,i),style:se("style",c,i),title:se("title",{title:p,titleAttributes:u},i)}},oe=[],ae=!("undefined"==typeof window||!window.document||!window.document.createElement),le=class{instances=[];canUseDOM=ae;value={setHelmet:t=>{this.context.helmet=t},helmetInstances:{get:()=>this.canUseDOM?oe:this.instances,add:t=>{(this.canUseDOM?oe:this.instances).push(t)},remove:t=>{const s=(this.canUseDOM?oe:this.instances).indexOf(t);(this.canUseDOM?oe:this.instances).splice(s,1)}}};constructor(t,s){this.context=t,this.canUseDOM=s||!1,s||(t.helmet=ie({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},ce=j.default.createContext({}),pe=class t extends j.Component{static canUseDOM=ae;constructor(s){super(s),this.helmetData=new le(this.props.context||{},t.canUseDOM)}render(){return j.default.createElement(ce.Provider,{value:this.helmetData.value},this.props.children)}},ue=r(d[1]),de=f(r(d[4])),he=(t,s)=>{const n=document.head||document.querySelector("head"),i=n.querySelectorAll(`${t}[${E}]`),o=[].slice.call(i),l=[];let c;return s&&s.length&&s.forEach(s=>{const n=document.createElement(t);for(const t in s)if(Object.prototype.hasOwnProperty.call(s,t))if("innerHTML"===t)n.innerHTML=s.innerHTML;else if("cssText"===t)n.styleSheet?n.styleSheet.cssText=s.cssText:n.appendChild(document.createTextNode(s.cssText));else{const i=t,o=void 0===s[i]?"":s[i];n.setAttribute(t,o)}n.setAttribute(E,"true"),o.some((t,s)=>(c=s,n.isEqualNode(t)))?o.splice(c,1):l.push(n)}),o.forEach(t=>t.parentNode?.removeChild(t)),l.forEach(t=>n.appendChild(t)),{oldTags:o,newTags:l}},me=(t,s)=>{const n=document.getElementsByTagName(t)[0];if(!n)return;const i=n.getAttribute(E),o=i?i.split(","):[],l=[...o],c=Object.keys(s);for(const t of c){const i=s[t]||"";n.getAttribute(t)!==i&&n.setAttribute(t,i),-1===o.indexOf(t)&&o.push(t);const c=l.indexOf(t);-1!==c&&l.splice(c,1)}for(let t=l.length-1;t>=0;t-=1)n.removeAttribute(l[t]);o.length===l.length?n.removeAttribute(E):n.getAttribute(E)!==c.join(",")&&n.setAttribute(E,c.join(","))},ge=(t,s)=>{void 0!==t&&document.title!==t&&(document.title=Y(t)),me("title",s)},ye=(t,s)=>{const{baseTag:n,bodyAttributes:i,htmlAttributes:o,linkTags:l,metaTags:c,noscriptTags:p,onChangeClientState:u,scriptTags:h,styleTags:y,title:f,titleAttributes:b}=t;me("body",i),me("html",o),ge(f,b);const T={baseTag:he("base",n),linkTags:he("link",l),metaTags:he("meta",c),noscriptTags:he("noscript",p),scriptTags:he("script",h),styleTags:he("style",y)},O={},A={};Object.keys(T).forEach(t=>{const{newTags:s,oldTags:n}=T[t];s.length&&(O[t]=s),n.length&&(A[t]=T[t].oldTags)}),s&&s(),u(t,O,A)},fe=null,be=t=>{fe&&cancelAnimationFrame(fe),t.defer?fe=requestAnimationFrame(()=>{ye(t,()=>{fe=null})}):(ye(t),fe=null)},Te=class extends ue.Component{rendered=!1;shouldComponentUpdate(t){return!(0,de.default)(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:s}=this.props.context;let n=null;const i=(o=t.get().map(t=>{const s=Object.assign({},t.props);return delete s.context,s}),{baseTag:z(["href"],o),bodyAttributes:R("bodyAttributes",o),defer:N(o,H),encode:N(o,D),htmlAttributes:R("htmlAttributes",o),linkTags:B("link",["rel","href"],o),metaTags:B("meta",["name","charset","http-equiv","property","itemprop"],o),noscriptTags:B("noscript",["innerHTML"],o),onChangeClientState:_(o),scriptTags:B("script",["src","innerHTML"],o),styleTags:B("style",["cssText"],o),title:q(o),titleAttributes:R("titleAttributes",o),prioritizeSeoTags:F(o,U)});var o;pe.canUseDOM?be(i):ie&&(n=ie(i)),s(n)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Oe=class extends T.Component{static defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1};shouldComponentUpdate(t){return!(0,O.default)(W(this.props,"helmetData"),W(t,"helmetData"))}mapNestedChildrenToProps(t,s){if(!s)return null;switch(t.type){case"script":case"noscript":return{innerHTML:s};case"style":return{cssText:s};default:throw new Error(`<${t.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(t,s,n,i){return Object.assign({},s,{[t.type]:[...s[t.type]||[],Object.assign({},n,this.mapNestedChildrenToProps(t,i))]})}mapObjectTypeChildren(t,s,n,i){switch(t.type){case"title":return Object.assign({},s,{[t.type]:i,titleAttributes:Object.assign({},n)});case"body":return Object.assign({},s,{bodyAttributes:Object.assign({},n)});case"html":return Object.assign({},s,{htmlAttributes:Object.assign({},n)});default:return Object.assign({},s,{[t.type]:Object.assign({},n)})}}mapArrayTypeChildrenToProps(t,s){let n=Object.assign({},s);return Object.keys(t).forEach(s=>{n=Object.assign({},n,{[s]:t[s]})}),n}warnOnInvalidChildren(t,s){return(0,A.default)(k.some(s=>t.type===s),"function"==typeof t.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${k.join(", ")} are allowed. Helmet does not support rendering <${t.type}> elements. Refer to our API for more information.`),(0,A.default)(!s||"string"==typeof s||Array.isArray(s)&&!s.some(t=>"string"!=typeof t),`Helmet expects a string as a child of <${t.type}>. Did you forget to wrap your children in braces? ( <${t.type}>{\`\`}</${t.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(n,i){let o={};return T.default.Children.forEach(n,n=>{if(!n||!n.props)return;const l=n.props,{children:c}=l,p=t(l,s),u=Object.keys(p).reduce((t,s)=>(t[M[s]||s]=p[s],t),{});let{type:h}=n;switch("symbol"==typeof h?h=h.toString():this.warnOnInvalidChildren(n,c),h){case"Symbol(react.fragment)":i=this.mapChildrenToProps(c,i);break;case"link":case"meta":case"noscript":case"script":case"style":o=this.flattenArrayTypeChildren(n,o,u,c);break;default:i=this.mapObjectTypeChildren(n,i,u,c)}}),this.mapArrayTypeChildrenToProps(o,i)}render(){const s=this.props,{children:i}=s,o=t(s,n);let l=Object.assign({},o),{helmetData:c}=o;if(i&&(l=this.mapChildrenToProps(i,l)),c&&!(c instanceof le)){c=new le(c.context,!0),delete l.helmetData}return c?T.default.createElement(Te,Object.assign({},l,{context:c.value})):T.default.createElement(ce.Consumer,null,t=>T.default.createElement(Te,Object.assign({},l,{context:t})))}}},2157,[120,17,2158,323,2159]);
3463
- __d(function(g,r,_i,_a,m,e,d){var t='undefined'!=typeof Element,n='function'==typeof Map,f='function'==typeof Set,o='function'==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(u,a){if(u===a)return!0;if(u&&a&&'object'==typeof u&&'object'==typeof a){if(u.constructor!==a.constructor)return!1;var c,s,l,p;if(Array.isArray(u)){if((c=u.length)!=a.length)return!1;for(s=c;0!==s--;)if(!i(u[s],a[s]))return!1;return!0}if(n&&u instanceof Map&&a instanceof Map){if(u.size!==a.size)return!1;for(p=u.entries();!(s=p.next()).done;)if(!a.has(s.value[0]))return!1;for(p=u.entries();!(s=p.next()).done;)if(!i(s.value[1],a.get(s.value[0])))return!1;return!0}if(f&&u instanceof Set&&a instanceof Set){if(u.size!==a.size)return!1;for(p=u.entries();!(s=p.next()).done;)if(!a.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(u)&&ArrayBuffer.isView(a)){if((c=u.length)!=a.length)return!1;for(s=c;0!==s--;)if(u[s]!==a[s])return!1;return!0}if(u.constructor===RegExp)return u.source===a.source&&u.flags===a.flags;if(u.valueOf!==Object.prototype.valueOf&&'function'==typeof u.valueOf&&'function'==typeof a.valueOf)return u.valueOf()===a.valueOf();if(u.toString!==Object.prototype.toString&&'function'==typeof u.toString&&'function'==typeof a.toString)return u.toString()===a.toString();if((c=(l=Object.keys(u)).length)!==Object.keys(a).length)return!1;for(s=c;0!==s--;)if(!Object.prototype.hasOwnProperty.call(a,l[s]))return!1;if(t&&u instanceof Element)return!1;for(s=c;0!==s--;)if(('_owner'!==l[s]&&'__v'!==l[s]&&'__o'!==l[s]||!u.$$typeof)&&!i(u[l[s]],a[l[s]]))return!1;return!0}return u!=u&&a!=a}m.exports=function(t,n){try{return i(t,n)}catch(t){if((t.message||'').match(/stack|recursion/i))return console.warn('react-fast-compare cannot handle circular refs'),!1;throw t}}},2158,[]);
3464
- __d(function(g,r,i,a,m,e,d){m.exports=function(t,n,o,f){var c=o?o.call(f,t,n):void 0;if(void 0!==c)return!!c;if(t===n)return!0;if("object"!=typeof t||!t||"object"!=typeof n||!n)return!1;var u=Object.keys(t),v=Object.keys(n);if(u.length!==v.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(n),b=0;b<u.length;b++){var p=u[b];if(!l(p))return!1;var y=t[p],j=n[p];if(!1===(c=o?o.call(f,y,j,p):void 0)||void 0===c&&y!==j)return!1}return!0}},2159,[]);
3465
- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},2160,[]);
3466
- __d(function(g,r,_i,a,_m,_e,d){"use strict";var e,t=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,i)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)},function(o){if(o&&o.__esModule)return o;var i={};if(null!=o)for(var c=e(o),u=0;u<c.length;u++)"default"!==c[u]&&t(i,o,c[u]);return n(i,o),i});Object.defineProperty(_e,"__esModule",{value:!0}),_e.renderRootComponent=function(e){try{setTimeout(()=>{f._internal_preventAutoHideAsync?.()}),u.startTransition(()=>{(0,c.registerRootComponent)(e)})}catch(e){f.hideAsync();const t=b(e);(0,c.registerRootComponent)(()=>(0,i.jsx)(s.View,{})),console.error(t),console.error("A runtime error has occurred while rendering the root component."),setTimeout(()=>{throw t})}};const i=r(d[0]),c=r(d[1]),u=o(r(d[2])),s=r(d[3]),f=o(r(d[4]));function l(e){if('[object Object]'!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function p(e){return e&&'object'==typeof e&&'string'==typeof e.name&&'string'==typeof e.message}function b(e){return p(e)?e:l(e)?new Error(JSON.stringify(e)):new Error(String(e))}},2161,[10,564,17,121,563]);
3451
+ __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.bindQueryFocusToAppState=function(){const e=e=>{u.focusManager.setFocused('active'===e||'inactive'===e)};e(n.default.currentState);const t=n.default.addEventListener('change',e);return()=>{t.remove()}};var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},u=r(d[1])},2146,[226,1477]);
3452
+ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return _}});var n=r(d[0]),t=e(r(d[1])),o=e(r(d[2])),c=r(d[3]),u=r(d[4]),l=r(d[5]),s=r(d[6]),f=r(d[7]),b=r(d[8]);function _(){const e=(0,n.c)(10),{loading:_,server:y,token:j}=(0,u.useServer)(),{colors:S}=(0,l.useTheme)();if(_){let n,c,u;return e[0]!==S.background?(n={flex:1,backgroundColor:S.background,alignItems:"center",justifyContent:"center"},e[0]=S.background,e[1]=n):n=e[1],e[2]!==S.primary?(c=(0,b.jsx)(t.default,{color:S.primary}),e[2]=S.primary,e[3]=c):c=e[3],e[4]!==n||e[5]!==c?(u=(0,b.jsx)(o.default,{style:n,children:c}),e[4]=n,e[5]=c,e[6]=u):u=e[6],u}if(!y||!j){if((0,f.canReuseHubSession)(!1)){let n;return e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,b.jsx)(f.HubSessionBootstrap,{fallback:(0,b.jsx)(s.LoginScreen,{})}),e[7]=n):n=e[7],n}let n;return e[8]===Symbol.for("react.memo_cache_sentinel")?(n=(0,b.jsx)(s.LoginScreen,{}),e[8]=n):n=e[8],n}let x;return e[9]===Symbol.for("react.memo_cache_sentinel")?(x=(0,b.jsx)(c.Redirect,{href:"/cameras"}),e[9]=x):x=e[9],x}},2147,[15,240,20,743,1552,999,2148,2155,10]);
3453
+ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.LoginScreen=function(){const{t:e}=(0,h.useTranslation)(),{save:o,lastServerUrl:n,rememberServerUrl:s}=(0,y.useServer)(),{colors:c}=(0,x.useTheme)(),[f,j]=(0,t.useState)('credentials'),[w,T]=(0,t.useState)('https://'),[z,G]=(0,t.useState)(!1);z||null===n||(G(!0),'https://'!==w&&0!==w.trim().length||T(n));const[U,N]=(0,t.useState)(''),[R,F]=(0,t.useState)(''),[_,W]=(0,t.useState)(!1),[D,L]=(0,t.useState)(''),[H,B]=(0,t.useState)(''),[E,O]=(0,t.useState)(''),[V,M]=(0,t.useState)(!1),q=w.trim(),J=q.length>0&&U.trim().length>0&&R.length>0,K=async e=>{await o({id:q,label:q,serverUrl:q},e)},Q=async()=>{if(J&&!V){await s(q),O(''),M(!0);try{const e=await(0,S.login)(q,U.trim(),R);if('totp-required'===e.status)return L(e.token),void j('totp');await K(e.token)}catch(o){O(I(o,e('v2.login.loginFailed')))}finally{M(!1)}}},X=async()=>{if(6===H.length&&!V){O(''),M(!0);try{const{token:e}=await(0,S.verifyTotp)(q,D,H);await K(e)}catch(o){O(I(o,e('v2.login.verifyFailed'))),B('')}finally{M(!1)}}};return(0,v.jsx)(l.default,{style:{flex:1,backgroundColor:c.background},behavior:void 0,children:(0,v.jsx)(u.default,{contentContainerStyle:{flexGrow:1,justifyContent:'center',alignItems:'center',padding:p.SPACING['2xl']},keyboardShouldPersistTaps:"handled",children:(0,v.jsxs)(b.default,{style:{width:'100%',maxWidth:420,gap:p.SPACING['2xl']},children:[(0,v.jsx)(b.default,{style:{alignItems:'center'},children:(0,v.jsx)(C.BrandLogo,{width:220})}),(0,v.jsxs)(b.default,{style:{backgroundColor:c.surface,borderColor:c.border,borderWidth:1,borderRadius:p.RADIUS.lg,padding:p.SPACING['2xl'],gap:p.SPACING.xl},children:[E.length>0&&(0,v.jsx)(P,{colors:c,message:E}),'credentials'===f?(0,v.jsx)(A,{colors:c,serverUrl:w,username:U,password:R,showPassword:_,submitting:V,canSubmit:J,onChangeServerUrl:T,onChangeUsername:N,onChangePassword:F,onToggleShowPassword:()=>W(e=>!e),onSubmit:()=>{Q()},onHubSignIn:void 0}):(0,v.jsx)(k,{colors:c,username:U.trim(),totpCode:H,submitting:V,onChangeTotp:e=>B(e.replace(/\D/g,'').slice(0,6)),onSubmit:()=>{X()},onBack:()=>{j('credentials'),L(''),B(''),O('')}})]})]})})})};var o=r(d[0]),t=r(d[1]),n=e(r(d[2])),l=e(r(d[3]));r(d[4]);var s=e(r(d[5])),u=e(r(d[6])),c=e(r(d[7])),f=e(r(d[8])),b=e(r(d[9])),h=r(d[10]);r(d[11]),r(d[12]);var S=r(d[13]);r(d[14]),r(d[15]);var y=r(d[16]),x=r(d[17]),p=r(d[18]),C=r(d[19]),j=r(d[20]),v=r(d[21]);function I(e,o){return e instanceof Error&&e.message?e.message:o}function P(e){const t=(0,o.c)(11),{colors:n,message:l}=e,s=n.danger+"1a",u=n.danger+"40";let f,h,S,y;return t[0]!==s||t[1]!==u?(f={backgroundColor:s,borderColor:u,borderWidth:1,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,paddingHorizontal:p.SPACING.xl},t[0]=s,t[1]=u,t[2]=f):f=t[2],t[3]!==n.danger?(h={color:n.danger,fontSize:13},t[3]=n.danger,t[4]=h):h=t[4],t[5]!==l||t[6]!==h?(S=(0,v.jsx)(c.default,{style:h,children:l}),t[5]=l,t[6]=h,t[7]=S):S=t[7],t[8]!==f||t[9]!==S?(y=(0,v.jsx)(b.default,{style:f,children:S}),t[8]=f,t[9]=S,t[10]=y):y=t[10],y}function w(e){return{color:e.foregroundSubtle,fontSize:12,fontWeight:'600',marginBottom:p.SPACING.sm}}function T(e){return{backgroundColor:e.background,borderColor:e.border,borderWidth:1,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,paddingHorizontal:p.SPACING.xl,color:e.foreground,fontSize:15}}function A(e){const t=(0,o.c)(100),{colors:n,serverUrl:l,username:u,password:S,showPassword:y,submitting:x,canSubmit:C,onChangeServerUrl:I,onChangeUsername:P,onChangePassword:A,onToggleShowPassword:k,onSubmit:G,onHubSignIn:U}=e,{t:N}=(0,h.useTranslation)();let R,F,_;t[0]!==n?(R=w(n),t[0]=n,t[1]=R):R=t[1],t[2]!==N?(F=N("v2.login.serverUrl"),t[2]=N,t[3]=F):F=t[3],t[4]!==R||t[5]!==F?(_=(0,v.jsx)(c.default,{style:R,children:F}),t[4]=R,t[5]=F,t[6]=_):_=t[6];const W=n.foregroundSubtle;let D,L,H,B,E,O,V;t[7]!==n?(D=T(n),t[7]=n,t[8]=D):D=t[8],t[9]!==n.foregroundSubtle||t[10]!==I||t[11]!==l||t[12]!==D?(L=(0,v.jsx)(f.default,{value:l,onChangeText:I,placeholder:"https://hub.local:4443",placeholderTextColor:W,autoCapitalize:"none",autoCorrect:!1,keyboardType:"url",style:D}),t[9]=n.foregroundSubtle,t[10]=I,t[11]=l,t[12]=D,t[13]=L):L=t[13],t[14]!==_||t[15]!==L?(H=(0,v.jsxs)(b.default,{children:[_,L]}),t[14]=_,t[15]=L,t[16]=H):H=t[16],t[17]!==n?(B=w(n),t[17]=n,t[18]=B):B=t[18],t[19]!==N?(E=N("v2.login.username"),t[19]=N,t[20]=E):E=t[20],t[21]!==B||t[22]!==E?(O=(0,v.jsx)(c.default,{style:B,children:E}),t[21]=B,t[22]=E,t[23]=O):O=t[23],t[24]!==N?(V=N("v2.login.username"),t[24]=N,t[25]=V):V=t[25];const M=n.foregroundSubtle;let q,J,K,Q,X,Y,Z,$;t[26]!==n?(q=T(n),t[26]=n,t[27]=q):q=t[27],t[28]!==n.foregroundSubtle||t[29]!==P||t[30]!==V||t[31]!==q||t[32]!==u?(J=(0,v.jsx)(f.default,{value:u,onChangeText:P,placeholder:V,placeholderTextColor:M,autoCapitalize:"none",autoCorrect:!1,autoFocus:!0,style:q}),t[28]=n.foregroundSubtle,t[29]=P,t[30]=V,t[31]=q,t[32]=u,t[33]=J):J=t[33],t[34]!==O||t[35]!==J?(K=(0,v.jsxs)(b.default,{children:[O,J]}),t[34]=O,t[35]=J,t[36]=K):K=t[36],t[37]!==n?(Q=w(n),t[37]=n,t[38]=Q):Q=t[38],t[39]!==N?(X=N("v2.login.password"),t[39]=N,t[40]=X):X=t[40],t[41]!==Q||t[42]!==X?(Y=(0,v.jsx)(c.default,{style:Q,children:X}),t[41]=Q,t[42]=X,t[43]=Y):Y=t[43],t[44]===Symbol.for("react.memo_cache_sentinel")?(Z={position:"relative",justifyContent:"center"},t[44]=Z):Z=t[44],t[45]!==N?($=N("v2.login.password"),t[45]=N,t[46]=$):$=t[46];const ee=n.foregroundSubtle,oe=!y;let re,te,ne,le,se,ae,ie,de,ue;t[47]!==n?(re=T(n),t[47]=n,t[48]=re):re=t[48],t[49]!==re?(te=Object.assign({},re,{paddingRight:48}),t[49]=re,t[50]=te):te=t[50],t[51]!==n.foregroundSubtle||t[52]!==A||t[53]!==S||t[54]!==$||t[55]!==oe||t[56]!==te?(ne=(0,v.jsx)(f.default,{value:S,onChangeText:A,placeholder:$,placeholderTextColor:ee,autoCapitalize:"none",autoCorrect:!1,secureTextEntry:oe,style:te}),t[51]=n.foregroundSubtle,t[52]=A,t[53]=S,t[54]=$,t[55]=oe,t[56]=te,t[57]=ne):ne=t[57],t[58]!==y||t[59]!==N?(le=N(y?"v2.login.hidePassword":"v2.login.showPassword"),t[58]=y,t[59]=N,t[60]=le):le=t[60],t[61]===Symbol.for("react.memo_cache_sentinel")?(se={position:"absolute",right:p.SPACING.xl},t[61]=se):se=t[61],t[62]!==n.foregroundSubtle||t[63]!==y?(ae=y?(0,v.jsx)(j.EyeOff,{color:n.foregroundSubtle,size:20}):(0,v.jsx)(j.Eye,{color:n.foregroundSubtle,size:20}),t[62]=n.foregroundSubtle,t[63]=y,t[64]=ae):ae=t[64],t[65]!==k||t[66]!==le||t[67]!==ae?(ie=(0,v.jsx)(s.default,{accessibilityRole:"button",accessibilityLabel:le,onPress:k,hitSlop:8,style:se,children:ae}),t[65]=k,t[66]=le,t[67]=ae,t[68]=ie):ie=t[68],t[69]!==ne||t[70]!==ie?(de=(0,v.jsxs)(b.default,{style:Z,children:[ne,ie]}),t[69]=ne,t[70]=ie,t[71]=de):de=t[71],t[72]!==Y||t[73]!==de?(ue=(0,v.jsxs)(b.default,{children:[Y,de]}),t[72]=Y,t[73]=de,t[74]=ue):ue=t[74];const ce=!C||x;let ge,fe,be,he,Se;return t[75]!==N?(ge=N("v2.login.signIn"),t[75]=N,t[76]=ge):ge=t[76],t[77]!==N?(fe=N("v2.login.signingIn"),t[77]=N,t[78]=fe):fe=t[78],t[79]!==n||t[80]!==G||t[81]!==x||t[82]!==ce||t[83]!==ge||t[84]!==fe?(be=(0,v.jsx)(z,{colors:n,disabled:ce,submitting:x,label:ge,loadingLabel:fe,onPress:G}),t[79]=n,t[80]=G,t[81]=x,t[82]=ce,t[83]=ge,t[84]=fe,t[85]=be):be=t[85],t[86]!==n.border||t[87]!==n.foreground||t[88]!==n.foregroundSubtle||t[89]!==U||t[90]!==l||t[91]!==x||t[92]!==N?(he=void 0!==U&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(b.default,{style:{flexDirection:"row",alignItems:"center",gap:p.SPACING.lg},children:[(0,v.jsx)(b.default,{style:{flex:1,height:1,backgroundColor:n.border}}),(0,v.jsx)(c.default,{style:{color:n.foregroundSubtle,fontSize:11,letterSpacing:1},children:N("v2.login.or").toUpperCase()}),(0,v.jsx)(b.default,{style:{flex:1,height:1,backgroundColor:n.border}})]}),(0,v.jsx)(s.default,{accessibilityRole:"button",disabled:0===l.trim().length||x,onPress:U,style:{borderColor:n.border,borderWidth:1,opacity:0===l.trim().length||x?.5:1,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,alignItems:"center"},children:(0,v.jsx)(c.default,{style:{color:n.foreground,fontSize:15,fontWeight:"600"},children:N("v2.login.signInWithCamStack")})}),(0,v.jsx)(c.default,{style:{color:n.foregroundSubtle,fontSize:12},children:N("v2.login.hubSignInHint")})]}),t[86]=n.border,t[87]=n.foreground,t[88]=n.foregroundSubtle,t[89]=U,t[90]=l,t[91]=x,t[92]=N,t[93]=he):he=t[93],t[94]!==K||t[95]!==ue||t[96]!==be||t[97]!==he||t[98]!==H?(Se=(0,v.jsxs)(v.Fragment,{children:[H,K,ue,be,he]}),t[94]=K,t[95]=ue,t[96]=be,t[97]=he,t[98]=H,t[99]=Se):Se=t[99],Se}function k(e){const t=(0,o.c)(70),{colors:n,username:l,totpCode:u,submitting:S,onChangeTotp:y,onSubmit:x,onBack:C}=e,{t:j}=(0,h.useTranslation)();let I,P,A,k,G,U,N,R,F,_,W,D,L;t[0]===Symbol.for("react.memo_cache_sentinel")?(I={gap:p.SPACING.sm},t[0]=I):I=t[0],t[1]!==n.foreground?(P={color:n.foreground,fontSize:15,fontWeight:"600"},t[1]=n.foreground,t[2]=P):P=t[2],t[3]!==j?(A=j("v2.login.twoFactor"),t[3]=j,t[4]=A):A=t[4],t[5]!==P||t[6]!==A?(k=(0,v.jsx)(c.default,{style:P,children:A}),t[5]=P,t[6]=A,t[7]=k):k=t[7],t[8]!==n.foregroundSubtle?(G={color:n.foregroundSubtle,fontSize:13},t[8]=n.foregroundSubtle,t[9]=G):G=t[9],t[10]!==j?(U=j("v2.login.totpHint"),t[10]=j,t[11]=U):U=t[11],t[12]!==n.foreground?(N={color:n.foreground},t[12]=n.foreground,t[13]=N):N=t[13],t[14]!==N||t[15]!==l?(R=(0,v.jsx)(c.default,{style:N,children:l}),t[14]=N,t[15]=l,t[16]=R):R=t[16],t[17]!==G||t[18]!==U||t[19]!==R?(F=(0,v.jsxs)(c.default,{style:G,children:[U,R,"."]}),t[17]=G,t[18]=U,t[19]=R,t[20]=F):F=t[20],t[21]!==k||t[22]!==F?(_=(0,v.jsxs)(b.default,{style:I,children:[k,F]}),t[21]=k,t[22]=F,t[23]=_):_=t[23],t[24]!==n?(W=w(n),t[24]=n,t[25]=W):W=t[25],t[26]!==j?(D=j("v2.login.verificationCode"),t[26]=j,t[27]=D):D=t[27],t[28]!==W||t[29]!==D?(L=(0,v.jsx)(c.default,{style:W,children:D}),t[28]=W,t[29]=D,t[30]=L):L=t[30];const H=n.foregroundSubtle;let B,E,O,V;t[31]!==n?(B=T(n),t[31]=n,t[32]=B):B=t[32],t[33]!==B?(E=Object.assign({},B,{textAlign:"center",fontSize:24,letterSpacing:8}),t[33]=B,t[34]=E):E=t[34],t[35]!==n.foregroundSubtle||t[36]!==y||t[37]!==E||t[38]!==u?(O=(0,v.jsx)(f.default,{value:u,onChangeText:y,placeholder:"123456",placeholderTextColor:H,keyboardType:"numeric",maxLength:6,textContentType:"oneTimeCode",autoFocus:!0,style:E}),t[35]=n.foregroundSubtle,t[36]=y,t[37]=E,t[38]=u,t[39]=O):O=t[39],t[40]!==L||t[41]!==O?(V=(0,v.jsxs)(b.default,{children:[L,O]}),t[40]=L,t[41]=O,t[42]=V):V=t[42];const M=6!==u.length||S;let q,J,K,Q,X,Y,Z,$,ee;return t[43]!==j?(q=j("v2.login.verifyAndSignIn"),t[43]=j,t[44]=q):q=t[44],t[45]!==j?(J=j("v2.login.verifying"),t[45]=j,t[46]=J):J=t[46],t[47]!==n||t[48]!==x||t[49]!==S||t[50]!==M||t[51]!==q||t[52]!==J?(K=(0,v.jsx)(z,{colors:n,disabled:M,submitting:S,label:q,loadingLabel:J,onPress:x}),t[47]=n,t[48]=x,t[49]=S,t[50]=M,t[51]=q,t[52]=J,t[53]=K):K=t[53],t[54]===Symbol.for("react.memo_cache_sentinel")?(Q={alignItems:"center"},t[54]=Q):Q=t[54],t[55]!==n.foregroundSubtle?(X={color:n.foregroundSubtle,fontSize:13},t[55]=n.foregroundSubtle,t[56]=X):X=t[56],t[57]!==j?(Y=j("v2.login.back"),t[57]=j,t[58]=Y):Y=t[58],t[59]!==X||t[60]!==Y?(Z=(0,v.jsx)(c.default,{style:X,children:Y}),t[59]=X,t[60]=Y,t[61]=Z):Z=t[61],t[62]!==C||t[63]!==Z?($=(0,v.jsx)(s.default,{accessibilityRole:"button",onPress:C,style:Q,children:Z}),t[62]=C,t[63]=Z,t[64]=$):$=t[64],t[65]!==_||t[66]!==V||t[67]!==K||t[68]!==$?(ee=(0,v.jsxs)(v.Fragment,{children:[_,V,K,$]}),t[65]=_,t[66]=V,t[67]=K,t[68]=$,t[69]=ee):ee=t[69],ee}function z(e){const t=(0,o.c)(17),{colors:l,disabled:u,submitting:f,label:b,loadingLabel:h,onPress:S}=e,y=u?.5:1;let x,C,j;t[0]!==l.primary||t[1]!==y?(x={backgroundColor:l.primary,opacity:y,borderRadius:p.RADIUS.md,paddingVertical:p.SPACING.lg,alignItems:"center",flexDirection:"row",justifyContent:"center",gap:p.SPACING.md},t[0]=l.primary,t[1]=y,t[2]=x):x=t[2],t[3]!==l.primaryForeground||t[4]!==f?(C=f&&(0,v.jsx)(n.default,{size:"small",color:l.primaryForeground}),t[3]=l.primaryForeground,t[4]=f,t[5]=C):C=t[5],t[6]!==l.primaryForeground?(j={color:l.primaryForeground,fontSize:16,fontWeight:"600"},t[6]=l.primaryForeground,t[7]=j):j=t[7];const I=f?h:b;let P,w;return t[8]!==j||t[9]!==I?(P=(0,v.jsx)(c.default,{style:j,children:I}),t[8]=j,t[9]=I,t[10]=P):P=t[10],t[11]!==u||t[12]!==S||t[13]!==x||t[14]!==C||t[15]!==P?(w=(0,v.jsxs)(s.default,{accessibilityRole:"button",disabled:u,onPress:S,style:x,children:[C,P]}),t[11]=u,t[12]=S,t[13]=x,t[14]=C,t[15]=P,t[16]=w):w=t[16],w}},2148,[15,17,240,244,136,252,147,112,262,20,786,2149,618,2152,2153,1124,1552,999,1001,2154,813,10]);
3454
+ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"WebBrowserResultType",{enumerable:!0,get:function(){return u.WebBrowserResultType}}),Object.defineProperty(_e,"WebBrowserPresentationStyle",{enumerable:!0,get:function(){return u.WebBrowserPresentationStyle}}),_e.getCustomTabsSupportingBrowsersAsync=async function(){if(!t.default.getCustomTabsSupportingBrowsersAsync)throw new o.UnavailabilityError('WebBrowser','getCustomTabsSupportingBrowsersAsync');return l},_e.warmUpAsync=async function(e){if(!t.default.warmUpAsync)throw new o.UnavailabilityError('WebBrowser','warmUpAsync');return{}},_e.mayInitWithUrlAsync=async function(e,n){if(!t.default.mayInitWithUrlAsync)throw new o.UnavailabilityError('WebBrowser','mayInitWithUrlAsync');return{}},_e.coolDownAsync=async function(e){if(!t.default.coolDownAsync)throw new o.UnavailabilityError('WebBrowser','coolDownAsync');return{}},_e.openBrowserAsync=c,_e.dismissBrowser=function(){return t.default.dismissBrowser?.()},_e.openAuthSessionAsync=async function(e,n,s={}){if(!t.default.openAuthSessionAsync)throw new o.UnavailabilityError('WebBrowser','openAuthSessionAsync');return['ios','macos','web'].includes("web")?t.default.openAuthSessionAsync(e,n,y(s)):t.default.openAuthSessionAsync(e,n)},_e.dismissAuthSession=function(){if(!t.default.dismissAuthSession)throw new o.UnavailabilityError('WebBrowser','dismissAuthSession');t.default.dismissAuthSession()},_e.maybeCompleteAuthSession=function(e={}){if(t.default.maybeCompleteAuthSession)return t.default.maybeCompleteAuthSession(e);return{type:'failed',message:'Not supported on this platform'}};var o=r(d[0]),n=e(r(d[1]));e(r(d[2]));r(d[3]);var s=e(r(d[4])),t=e(r(d[5])),u=r(d[6]);const l={defaultBrowserPackage:void 0,preferredBrowserPackage:void 0,browserPackages:[],servicePackages:[]};async function c(e,n={}){if(!t.default.openBrowserAsync)throw new o.UnavailabilityError('WebBrowser','openBrowserAsync');return await t.default.openBrowserAsync(e,y(n))}function y(e){return Object.assign({},e,{controlsColor:(0,s.default)(e.controlsColor),toolbarColor:(0,s.default)(e.toolbarColor),secondaryToolbarColor:(0,s.default)(e.secondaryToolbarColor)})}n.default.currentState},2149,[289,226,233,136,40,2150,2151]);
3455
+ __d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}}),_e.normalizeUrl=u,_e.featureObjectToString=I;var e,t=r(d[0]),n=r(d[1]),o=(e=n)&&e.__esModule?e:{default:e},s=r(d[2]);let i=null;const c=new Map,l=e=>`ExpoWebBrowser_OriginUrl_${e}`,w=e=>`ExpoWebBrowser_RedirectUrl_${e}`;function u(e){return(e.origin.replace(e.protocol,'').replace(/^\/+/,'').replace(/\/+$/,'')+decodeURI(e.pathname.replace(/\/{2,}/g,'/'))).toLowerCase()}function p(){if(i&&(i.close(),c.has(i))){const{listener:e,appStateSubscription:t,interval:n}=c.get(i);clearInterval(n),window.removeEventListener('message',e),t.remove(),c.delete(i);const o=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');o&&(window.localStorage.removeItem('ExpoWebBrowserRedirectHandle'),window.localStorage.removeItem(l(o)),window.localStorage.removeItem(w(o))),i=null}}var f={async openBrowserAsync(e,t={}){if('undefined'==typeof window)return{type:s.WebBrowserResultType.CANCEL};const{windowName:n="_blank",windowFeatures:o}=t,i=B(o);return window.open(e,n,i),{type:s.WebBrowserResultType.OPENED}},dismissAuthSession(){'undefined'!=typeof window&&p()},maybeCompleteAuthSession({skipRedirectCheck:e}){if('undefined'==typeof window)return{type:'failed',message:'Cannot use expo-web-browser in a non-browser environment'};const n=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');if(!n)return{type:'failed',message:'No auth session is currently in progress'};const o=window.location.href;if(!0!==e){const e=window.localStorage.getItem(w(n)),t=u(window.location);if(e!==t)return{type:'failed',message:`Current URL "${t}" and original redirect URL "${e}" do not match.`}}window.localStorage.setItem(l(n),o);const s=window.opener??window.parent;if(!s)throw new t.CodedError('ERR_WEB_BROWSER_REDIRECT',"The window cannot complete the redirect request because the invoking window doesn't have a reference to it's parent. This can happen if the parent window was reloaded.");return s.postMessage({url:o,expoSender:n},s.location.toString()),{type:'success',message:"Attempting to complete auth"}},async openAuthSessionAsync(e,n,f){if('undefined'==typeof window)return{type:s.WebBrowserResultType.CANCEL};if(n=n??b(e),null==i||i?.closed){const n=B(f?.windowFeatures);if(i=window.open(e,f?.windowName,n),!i)throw new t.CodedError('ERR_WEB_BROWSER_BLOCKED','Popup window was blocked by the browser or failed to open. This can happen in mobile browsers when the window.open() method was invoked too long after a user input was fired.');try{i.focus()}catch{}}const h=await y(e);window.localStorage.setItem('ExpoWebBrowserRedirectHandle',h);const R=(()=>{if(!n)return n;try{return u(new URL(n))}catch{return n}})();return window.localStorage.setItem(w(h),R),new Promise(async e=>{const t=t=>{if(!t.isTrusted)return;if(t.origin!==window.location.origin)return;const{data:n}=t,o=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');n.expoSender===o&&(p(),e({type:'success',url:n.url}))};window.addEventListener('message',t,!1);const n=o.default.addEventListener('change',t=>{if('active'!==t)return;const n=window.localStorage.getItem('ExpoWebBrowserRedirectHandle');if(n){const t=window.localStorage.getItem(l(n));t&&(p(),e({type:'success',url:t}))}}),w=setInterval(()=>{i?.closed&&(e&&e({type:s.WebBrowserResultType.DISMISS}),clearInterval(w),p())},1e3);c.set(i,{listener:t,interval:w,appStateSubscription:n})})}};function h(){return'undefined'!=typeof window&&!!window?.crypto}async function y(e){const t=new URL(e);return t.searchParams.has('state')&&'string'==typeof t.searchParams.get('state')?t.searchParams.get('state'):await E()}function b(e){const t=new URL(e);return t.searchParams.has('redirect_uri')&&'string'==typeof t.searchParams.get('redirect_uri')?t.searchParams.get('redirect_uri'):location.origin+location.pathname}const R='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';async function E(){if(!h()||!window.crypto.subtle)throw new t.CodedError('ERR_WEB_BROWSER_CRYPTO',"The current environment doesn't support crypto. Ensure you are running from a secure origin (localhost/https).");const e=new TextEncoder,n=S(10),o=e.encode(n),s=await crypto.subtle.digest('SHA-256',o);return btoa(String.fromCharCode(...new Uint8Array(s)))}function S(e){let t=new Uint8Array(e);t.byteLength!==t.length&&(t=new Uint8Array(t.buffer));const n=new Uint8Array(t.length);if(h())window.crypto.getRandomValues(n);else for(let t=0;t<e;t+=1)n[t]=Math.random()*R.length|0;return v(n)}function v(e){let t='';for(const n of e){const e=n%R.length,o=R[e];null!=o&&(t+=o)}return t}function _(e){let t={};if('string'==typeof e){const n=e.split(',');for(const e of n){const[n,o]=e.trim().split('=');n&&o&&(t[n]=o)}}else e&&(t=e);return t}function B(e){const t=_(e),n=t.width??500,o=t.height??650,s=t.top??Math.max(0,.5*(window.screen.height-o)),i=t.left??Math.max(0,.5*(window.screen.width-n));return I(Object.assign({},t,{toolbar:t.toolbar??'no',menubar:t.menubar??'no',location:t.location??'yes',resizable:t.resizable??'yes',status:t.status??'no',scrollbars:t.scrollbars??'yes',top:s,left:i,width:n,height:o}))}function I(e){return Object.keys(e).reduce((t,n)=>{let o=e[n];return'boolean'==typeof o&&(o=o?'yes':'no'),n&&o?(t&&(t+=','),`${t}${n}=${o}`):t},'')}},2150,[289,226,2151]);
3456
+ __d(function(g,r,i,a,m,e,d){"use strict";var t,n;Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"WebBrowserResultType",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"WebBrowserPresentationStyle",{enumerable:!0,get:function(){return n}}),(function(t){t.CANCEL="cancel",t.DISMISS="dismiss",t.OPENED="opened",t.LOCKED="locked"})(t||(t={})),(function(t){t.FULL_SCREEN="fullScreen",t.PAGE_SHEET="pageSheet",t.FORM_SHEET="formSheet",t.CURRENT_CONTEXT="currentContext",t.OVER_FULL_SCREEN="overFullScreen",t.OVER_CURRENT_CONTEXT="overCurrentContext",t.POPOVER="popover",t.AUTOMATIC="automatic"})(n||(n={}))},2151,[]);
3457
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"sdkAuthClient",{enumerable:!0,get:function(){return n}}),e.login=async function(t,o,s,u=n){const{token:c,requiresTotp:f}=await u(t).login(o,s);return{status:f?'totp-required':'success',token:c}},e.verifyTotp=async function(t,o,s,u=n){return u(t).loginVerifyTotp(o,s)};var t=r(d[0]);const n=n=>(0,t.createSystem)({serverUrl:n})},2152,[1008]);
3458
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"HANDOFF_CALLBACK_PATH",{enumerable:!0,get:function(){return n}}),e.canonicalizeCallbackUrl=o,e.buildHandoffLoginUrl=function(t,n){const c=o(n);return`${t.replace(/\/+$/,'')}/login?redirect=${encodeURIComponent(c)}`},e.isValidServerUrl=function(t){const n=t.trim();if(0===n.length||/^https?:\/\/$/i.test(n))return!1;try{const t=new URL(n);return('https:'===t.protocol||'http:'===t.protocol)&&t.hostname.length>0}catch{return!1}},e.extractHandoffCode=function(t){const n=t.indexOf('?');if(-1===n)return null;const o=t.slice(n+1).split('#')[0]??'',c=new URLSearchParams(o).get('code');return c&&c.length>0?c:null},e.redeemHandoffCode=async function(n,o,c){return(0,t.postHubAuthMutation)(Object.assign({baseUrl:n,procedure:'auth.redeemHandoffCode',input:{code:o}},c?{fetchFn:c}:{}))};var t=r(d[0]);const n='auth-callback';function o(t){return t.replace(/^([a-z][a-z0-9.+-]*):\/{2,3}/i,'$1://').replace(/\/$/,'')}},2153,[1555]);
3459
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.BrandLogo=function(x){const y=(0,t.c)(4),{width:h}=x,p=void 0===h?200:h,{mode:w}=(0,l.useTheme)(),v="light"===w?f:c,u=p/o;let z;y[0]!==v||y[1]!==u||y[2]!==p?(z=(0,s.jsx)(n.SvgXml,{xml:v,width:p,height:u}),y[0]=v,y[1]=u,y[2]=p,y[3]=z):z=y[3];return z};var t=r(d[0]);r(d[1]);var n=r(d[2]),l=r(d[3]),s=r(d[4]);const f="<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 56\" fill=\"none\">\n <g transform=\"translate(4, 2) scale(0.8)\">\n <rect x=\"8\" y=\"28\" width=\"48\" height=\"28\" rx=\"6\" fill=\"#d6d3d1\"/>\n <rect x=\"12\" y=\"16\" width=\"40\" height=\"28\" rx=\"6\" fill=\"#a8a29e\"/>\n <rect x=\"16\" y=\"4\" width=\"32\" height=\"28\" rx=\"6\" fill=\"#e67e22\"/>\n <circle cx=\"32\" cy=\"18\" r=\"8\" fill=\"#fafaf9\" opacity=\"0.3\"/>\n <circle cx=\"32\" cy=\"18\" r=\"5\" fill=\"#fafaf9\" opacity=\"0.2\"/>\n <circle cx=\"32\" cy=\"18\" r=\"2.5\" fill=\"#1c1917\" opacity=\"0.7\"/>\n </g>\n <text x=\"62\" y=\"30\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"24\" font-weight=\"700\" letter-spacing=\"-0.5\" fill=\"#1c1917\">\n Cam<tspan fill=\"#e67e22\">Stack</tspan>\n </text>\n <text x=\"63\" y=\"44\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"10\" font-weight=\"600\" letter-spacing=\"3\" fill=\"#78716c\">\n VIEWER\n </text>\n</svg>",c="<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 56\" fill=\"none\">\n <g transform=\"translate(4, 2) scale(0.8)\">\n <rect x=\"8\" y=\"28\" width=\"48\" height=\"28\" rx=\"6\" fill=\"#292524\"/>\n <rect x=\"12\" y=\"16\" width=\"40\" height=\"28\" rx=\"6\" fill=\"#44403c\"/>\n <rect x=\"16\" y=\"4\" width=\"32\" height=\"28\" rx=\"6\" fill=\"#f59e42\"/>\n <circle cx=\"32\" cy=\"18\" r=\"8\" fill=\"#0c0a09\" opacity=\"0.3\"/>\n <circle cx=\"32\" cy=\"18\" r=\"5\" fill=\"#0c0a09\" opacity=\"0.2\"/>\n <circle cx=\"32\" cy=\"18\" r=\"2.5\" fill=\"#fafaf9\" opacity=\"0.8\"/>\n </g>\n <text x=\"62\" y=\"30\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"24\" font-weight=\"700\" letter-spacing=\"-0.5\" fill=\"#fafaf9\">\n Cam<tspan fill=\"#f59e42\">Stack</tspan>\n </text>\n <text x=\"63\" y=\"44\" font-family=\"system-ui, -apple-system, sans-serif\" font-size=\"10\" font-weight=\"600\" letter-spacing=\"3\" fill=\"#78716c\">\n VIEWER\n </text>\n</svg>",o=4.285714285714286},2154,[15,17,819,999,10]);
3460
+ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.canReuseHubSession=function(e){return(0,f.shouldAttemptHubSessionExchange)({platform:"web",pathname:'undefined'!=typeof window&&void 0!==window.location?window.location.pathname:null,webBasePath:"/viewer",hasServerConfigured:e})},_e.HubSessionBootstrap=function(e){const b=(0,n.c)(10),{fallback:p}=e,{save:y}=(0,u.useServer)(),{colors:S}=(0,c.useTheme)(),[k,x]=(0,o.useState)(!1);let H,_,j,I,B;b[0]!==y?(H=()=>{let e=!1;return(async()=>{const n=window.location.origin,o=await(0,f.exchangeHubSession)(n);if(!e){if("ok"===o.status)return v(!1),l.log.info("hub-session","Provisioned from hub session",{username:o.username}),void await y({id:n,label:n,serverUrl:n},o.token);if("unauthorized"===o.status&&!h())return v(!0),l.log.info("hub-session","No hub session \u2014 redirecting to hub login"),void window.location.assign((0,f.buildHubLoginUrl)(n,window.location.pathname));l.log.warn("hub-session","Hub session exchange failed \u2014 manual login",{status:o.status}),x(!0)}})(),()=>{e=!0}},_=[y],b[0]=y,b[1]=H,b[2]=_):(H=b[1],_=b[2]);if((0,o.useEffect)(H,_),k)return p;b[3]!==S.background?(j={flex:1,backgroundColor:S.background,alignItems:"center",justifyContent:"center"},b[3]=S.background,b[4]=j):j=b[4];b[5]!==S.primary?(I=(0,w.jsx)(t.default,{color:S.primary}),b[5]=S.primary,b[6]=I):I=b[6];b[7]!==j||b[8]!==I?(B=(0,w.jsx)(s.default,{style:j,children:I}),b[7]=j,b[8]=I,b[9]=B):B=b[9];return B};var n=r(d[0]),o=r(d[1]),t=e(r(d[2]));r(d[3]);var s=e(r(d[4])),u=r(d[5]),c=r(d[6]),l=r(d[7]),f=r(d[8]),w=r(d[9]);const b='v2.hubLoginBounced';function h(){try{return'1'===window.sessionStorage.getItem(b)}catch{return!0}}function v(e){try{e?window.sessionStorage.setItem(b,'1'):window.sessionStorage.removeItem(b)}catch{}}},2155,[15,17,240,136,20,1552,999,1124,1554,10]);
3461
+ __d(function(g,r,i,a,_m,e,d){"use strict";var t=this&&this.__createBinding||(Object.create?function(t,n,o,c){void 0===c&&(c=o);var u=Object.getOwnPropertyDescriptor(n,o);u&&!("get"in u?!n.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return n[o]}}),Object.defineProperty(t,c,u)}:function(t,n,o,c){void 0===c&&(c=o),t[c]=n[o]}),n=this&&this.__exportStar||function(n,o){for(var c in n)"default"===c||Object.prototype.hasOwnProperty.call(o,c)||t(o,n,c)};Object.defineProperty(e,"__esModule",{value:!0}),n(r(d[0]),e)},2156,[2157]);
3462
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Head=void 0;const n=r(d[0]),c=r(d[1]),l=r(d[2]);function t({children:l}){return(0,n.jsx)(c.Helmet,{children:l})}e.Head=({children:c})=>(0,l.useIsFocused)()?(0,n.jsx)(t,{children:c}):null,e.Head.Provider=c.HelmetProvider},2157,[10,2158,757]);
3463
+ __d(function(g,r,_i,a,m,e,d){"use strict";var t=r(d[0]).default;const s=["children"],n=["children"];var i,o=Object.create,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,u=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,y=(t,s,n,i)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let o of p(s))h.call(t,o)||o===n||l(t,o,{get:()=>s[o],enumerable:!(i=c(s,o))||i.enumerable});return t},f=(t,s,n)=>(n=null!=t?o(u(t)):{},y(!s&&t&&t.__esModule?n:l(n,"default",{value:t,enumerable:!0}),t)),b={};((t,s)=>{for(var n in s)l(t,n,{get:s[n],enumerable:!0})})(b,{Helmet:()=>Oe,HelmetData:()=>le,HelmetProvider:()=>pe}),m.exports=(i=b,y(l({},"__esModule",{value:!0}),i));var T=f(r(d[1])),O=f(r(d[2])),A=f(r(d[3])),j=f(r(d[1])),C=f(r(d[1])),w=(t=>(t.BASE="base",t.BODY="body",t.HEAD="head",t.HTML="html",t.LINK="link",t.META="meta",t.NOSCRIPT="noscript",t.SCRIPT="script",t.STYLE="style",t.TITLE="title",t.FRAGMENT="Symbol(react.fragment)",t))(w||{}),x={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},$={charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},k=Object.values(w),S={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},M=Object.entries(S).reduce((t,[s,n])=>(t[n]=s,t),{}),E="data-rh",P="defaultTitle",H="defer",D="encodeSpecialCharacters",L="onChangeClientState",I="titleTemplate",U="prioritizeSeoTags",N=(t,s)=>{for(let n=t.length-1;n>=0;n-=1){const i=t[n];if(Object.prototype.hasOwnProperty.call(i,s))return i[s]}return null},q=t=>{let s=N(t,"title");const n=N(t,I);if(Array.isArray(s)&&(s=s.join("")),n&&s)return n.replace(/%s/g,()=>s);const i=N(t,P);return s||i||void 0},_=t=>N(t,L)||(()=>{}),R=(t,s)=>s.filter(s=>void 0!==s[t]).map(s=>s[t]).reduce((t,s)=>Object.assign({},t,s),{}),z=(t,s)=>s.filter(t=>void 0!==t.base).map(t=>t.base).reverse().reduce((s,n)=>{if(!s.length){const i=Object.keys(n);for(let o=0;o<i.length;o+=1){const l=i[o].toLowerCase();if(-1!==t.indexOf(l)&&n[l])return s.concat(n)}}return s},[]),B=(t,s,n)=>{const i={};return n.filter(s=>{return!!Array.isArray(s[t])||(void 0!==s[t]&&(n=`Helmet: ${t} should be of type "Array". Instead found type "${typeof s[t]}"`,console&&"function"==typeof console.warn&&console.warn(n)),!1);var n}).map(s=>s[t]).reverse().reduce((t,n)=>{const o={};n.filter(t=>{let n;const l=Object.keys(t);for(let i=0;i<l.length;i+=1){const o=l[i],c=o.toLowerCase();-1===s.indexOf(c)||"rel"===n&&"canonical"===t[n].toLowerCase()||"rel"===c&&"stylesheet"===t[c].toLowerCase()||(n=c),-1===s.indexOf(o)||"innerHTML"!==o&&"cssText"!==o&&"itemprop"!==o||(n=o)}if(!n||!t[n])return!1;const c=t[n].toLowerCase();return i[n]||(i[n]={}),o[n]||(o[n]={}),!i[n][c]&&(o[n][c]=!0,!0)}).reverse().forEach(s=>t.push(s));const l=Object.keys(o);for(let t=0;t<l.length;t+=1){const s=l[t],n=Object.assign({},i[s],o[s]);i[s]=n}return t},[]).reverse()},F=(t,s)=>{if(Array.isArray(t)&&t.length)for(let n=0;n<t.length;n+=1){if(t[n][s])return!0}return!1},Y=t=>Array.isArray(t)?t.join(""):t,K=(t,s)=>{const n=Object.keys(t);for(let i=0;i<n.length;i+=1)if(s[n[i]]&&s[n[i]].includes(t[n[i]]))return!0;return!1},G=(t,s)=>Array.isArray(t)?t.reduce((t,n)=>(K(n,s)?t.priority.push(n):t.default.push(n),t),{priority:[],default:[]}):{default:t,priority:[]},W=(t,s)=>Object.assign({},t,{[s]:void 0}),J=["noscript","script","style"],Q=(t,s=!0)=>!1===s?String(t):String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),V=t=>Object.keys(t).reduce((s,n)=>{const i=void 0!==t[n]?`${n}="${Q(t[n])}"`:`${n}`;return s?`${s} ${i}`:i},""),X=(t,s,n,i)=>{const o=V(n),l=Y(s);return o?`<${t} ${E}="true" ${o}>${Q(l,i)}</${t}>`:`<${t} ${E}="true">${Q(l,i)}</${t}>`},Z=(t,s,n=!0)=>s.reduce((s,i)=>{const o=i,l=Object.keys(o).filter(t=>!("innerHTML"===t||"cssText"===t)).reduce((t,s)=>{const i=void 0===o[s]?s:`${s}="${Q(o[s],n)}"`;return t?`${t} ${i}`:i},""),c=o.innerHTML||o.cssText||"",p=-1===J.indexOf(t);return`${s}<${t} ${E}="true" ${l}${p?"/>":`>${c}</${t}>`}`},""),ee=(t,s={})=>Object.keys(t).reduce((s,n)=>(s[S[n]||n]=t[n],s),s),te=(t,s,n)=>{const i=ee(n,{key:s,[E]:!0});return[C.default.createElement("title",i,s)]},re=(t,s)=>s.map((s,n)=>{const i={key:n,[E]:!0};return Object.keys(s).forEach(t=>{const n=S[t]||t;if("innerHTML"===n||"cssText"===n){const t=s.innerHTML||s.cssText;i.dangerouslySetInnerHTML={__html:t}}else i[n]=s[t]}),C.default.createElement(t,i)}),se=(t,s,n=!0)=>{switch(t){case"title":return{toComponent:()=>te(0,s.title,s.titleAttributes),toString:()=>X(t,s.title,s.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>ee(s),toString:()=>V(s)};default:return{toComponent:()=>re(t,s),toString:()=>Z(t,s,n)}}},ne=({metaTags:t,linkTags:s,scriptTags:n,encode:i})=>{const o=G(t,$),l=G(s,x),c=G(n,v);return{priorityMethods:{toComponent:()=>[...re("meta",o.priority),...re("link",l.priority),...re("script",c.priority)],toString:()=>`${se("meta",o.priority,i)} ${se("link",l.priority,i)} ${se("script",c.priority,i)}`},metaTags:o.default,linkTags:l.default,scriptTags:c.default}},ie=t=>{const{baseTag:s,bodyAttributes:n,encode:i=!0,htmlAttributes:o,noscriptTags:l,styleTags:c,title:p="",titleAttributes:u,prioritizeSeoTags:h}=t;let{linkTags:y,metaTags:f,scriptTags:b}=t,T={toComponent:()=>{},toString:()=>""};return h&&({priorityMethods:T,linkTags:y,metaTags:f,scriptTags:b}=ne(t)),{priority:T,base:se("base",s,i),bodyAttributes:se("bodyAttributes",n,i),htmlAttributes:se("htmlAttributes",o,i),link:se("link",y,i),meta:se("meta",f,i),noscript:se("noscript",l,i),script:se("script",b,i),style:se("style",c,i),title:se("title",{title:p,titleAttributes:u},i)}},oe=[],ae=!("undefined"==typeof window||!window.document||!window.document.createElement),le=class{instances=[];canUseDOM=ae;value={setHelmet:t=>{this.context.helmet=t},helmetInstances:{get:()=>this.canUseDOM?oe:this.instances,add:t=>{(this.canUseDOM?oe:this.instances).push(t)},remove:t=>{const s=(this.canUseDOM?oe:this.instances).indexOf(t);(this.canUseDOM?oe:this.instances).splice(s,1)}}};constructor(t,s){this.context=t,this.canUseDOM=s||!1,s||(t.helmet=ie({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},ce=j.default.createContext({}),pe=class t extends j.Component{static canUseDOM=ae;constructor(s){super(s),this.helmetData=new le(this.props.context||{},t.canUseDOM)}render(){return j.default.createElement(ce.Provider,{value:this.helmetData.value},this.props.children)}},ue=r(d[1]),de=f(r(d[4])),he=(t,s)=>{const n=document.head||document.querySelector("head"),i=n.querySelectorAll(`${t}[${E}]`),o=[].slice.call(i),l=[];let c;return s&&s.length&&s.forEach(s=>{const n=document.createElement(t);for(const t in s)if(Object.prototype.hasOwnProperty.call(s,t))if("innerHTML"===t)n.innerHTML=s.innerHTML;else if("cssText"===t)n.styleSheet?n.styleSheet.cssText=s.cssText:n.appendChild(document.createTextNode(s.cssText));else{const i=t,o=void 0===s[i]?"":s[i];n.setAttribute(t,o)}n.setAttribute(E,"true"),o.some((t,s)=>(c=s,n.isEqualNode(t)))?o.splice(c,1):l.push(n)}),o.forEach(t=>t.parentNode?.removeChild(t)),l.forEach(t=>n.appendChild(t)),{oldTags:o,newTags:l}},me=(t,s)=>{const n=document.getElementsByTagName(t)[0];if(!n)return;const i=n.getAttribute(E),o=i?i.split(","):[],l=[...o],c=Object.keys(s);for(const t of c){const i=s[t]||"";n.getAttribute(t)!==i&&n.setAttribute(t,i),-1===o.indexOf(t)&&o.push(t);const c=l.indexOf(t);-1!==c&&l.splice(c,1)}for(let t=l.length-1;t>=0;t-=1)n.removeAttribute(l[t]);o.length===l.length?n.removeAttribute(E):n.getAttribute(E)!==c.join(",")&&n.setAttribute(E,c.join(","))},ge=(t,s)=>{void 0!==t&&document.title!==t&&(document.title=Y(t)),me("title",s)},ye=(t,s)=>{const{baseTag:n,bodyAttributes:i,htmlAttributes:o,linkTags:l,metaTags:c,noscriptTags:p,onChangeClientState:u,scriptTags:h,styleTags:y,title:f,titleAttributes:b}=t;me("body",i),me("html",o),ge(f,b);const T={baseTag:he("base",n),linkTags:he("link",l),metaTags:he("meta",c),noscriptTags:he("noscript",p),scriptTags:he("script",h),styleTags:he("style",y)},O={},A={};Object.keys(T).forEach(t=>{const{newTags:s,oldTags:n}=T[t];s.length&&(O[t]=s),n.length&&(A[t]=T[t].oldTags)}),s&&s(),u(t,O,A)},fe=null,be=t=>{fe&&cancelAnimationFrame(fe),t.defer?fe=requestAnimationFrame(()=>{ye(t,()=>{fe=null})}):(ye(t),fe=null)},Te=class extends ue.Component{rendered=!1;shouldComponentUpdate(t){return!(0,de.default)(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:s}=this.props.context;let n=null;const i=(o=t.get().map(t=>{const s=Object.assign({},t.props);return delete s.context,s}),{baseTag:z(["href"],o),bodyAttributes:R("bodyAttributes",o),defer:N(o,H),encode:N(o,D),htmlAttributes:R("htmlAttributes",o),linkTags:B("link",["rel","href"],o),metaTags:B("meta",["name","charset","http-equiv","property","itemprop"],o),noscriptTags:B("noscript",["innerHTML"],o),onChangeClientState:_(o),scriptTags:B("script",["src","innerHTML"],o),styleTags:B("style",["cssText"],o),title:q(o),titleAttributes:R("titleAttributes",o),prioritizeSeoTags:F(o,U)});var o;pe.canUseDOM?be(i):ie&&(n=ie(i)),s(n)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Oe=class extends T.Component{static defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1};shouldComponentUpdate(t){return!(0,O.default)(W(this.props,"helmetData"),W(t,"helmetData"))}mapNestedChildrenToProps(t,s){if(!s)return null;switch(t.type){case"script":case"noscript":return{innerHTML:s};case"style":return{cssText:s};default:throw new Error(`<${t.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(t,s,n,i){return Object.assign({},s,{[t.type]:[...s[t.type]||[],Object.assign({},n,this.mapNestedChildrenToProps(t,i))]})}mapObjectTypeChildren(t,s,n,i){switch(t.type){case"title":return Object.assign({},s,{[t.type]:i,titleAttributes:Object.assign({},n)});case"body":return Object.assign({},s,{bodyAttributes:Object.assign({},n)});case"html":return Object.assign({},s,{htmlAttributes:Object.assign({},n)});default:return Object.assign({},s,{[t.type]:Object.assign({},n)})}}mapArrayTypeChildrenToProps(t,s){let n=Object.assign({},s);return Object.keys(t).forEach(s=>{n=Object.assign({},n,{[s]:t[s]})}),n}warnOnInvalidChildren(t,s){return(0,A.default)(k.some(s=>t.type===s),"function"==typeof t.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${k.join(", ")} are allowed. Helmet does not support rendering <${t.type}> elements. Refer to our API for more information.`),(0,A.default)(!s||"string"==typeof s||Array.isArray(s)&&!s.some(t=>"string"!=typeof t),`Helmet expects a string as a child of <${t.type}>. Did you forget to wrap your children in braces? ( <${t.type}>{\`\`}</${t.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(n,i){let o={};return T.default.Children.forEach(n,n=>{if(!n||!n.props)return;const l=n.props,{children:c}=l,p=t(l,s),u=Object.keys(p).reduce((t,s)=>(t[M[s]||s]=p[s],t),{});let{type:h}=n;switch("symbol"==typeof h?h=h.toString():this.warnOnInvalidChildren(n,c),h){case"Symbol(react.fragment)":i=this.mapChildrenToProps(c,i);break;case"link":case"meta":case"noscript":case"script":case"style":o=this.flattenArrayTypeChildren(n,o,u,c);break;default:i=this.mapObjectTypeChildren(n,i,u,c)}}),this.mapArrayTypeChildrenToProps(o,i)}render(){const s=this.props,{children:i}=s,o=t(s,n);let l=Object.assign({},o),{helmetData:c}=o;if(i&&(l=this.mapChildrenToProps(i,l)),c&&!(c instanceof le)){c=new le(c.context,!0),delete l.helmetData}return c?T.default.createElement(Te,Object.assign({},l,{context:c.value})):T.default.createElement(ce.Consumer,null,t=>T.default.createElement(Te,Object.assign({},l,{context:t})))}}},2158,[120,17,2159,323,2160]);
3464
+ __d(function(g,r,_i,_a,m,e,d){var t='undefined'!=typeof Element,n='function'==typeof Map,f='function'==typeof Set,o='function'==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(u,a){if(u===a)return!0;if(u&&a&&'object'==typeof u&&'object'==typeof a){if(u.constructor!==a.constructor)return!1;var c,s,l,p;if(Array.isArray(u)){if((c=u.length)!=a.length)return!1;for(s=c;0!==s--;)if(!i(u[s],a[s]))return!1;return!0}if(n&&u instanceof Map&&a instanceof Map){if(u.size!==a.size)return!1;for(p=u.entries();!(s=p.next()).done;)if(!a.has(s.value[0]))return!1;for(p=u.entries();!(s=p.next()).done;)if(!i(s.value[1],a.get(s.value[0])))return!1;return!0}if(f&&u instanceof Set&&a instanceof Set){if(u.size!==a.size)return!1;for(p=u.entries();!(s=p.next()).done;)if(!a.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(u)&&ArrayBuffer.isView(a)){if((c=u.length)!=a.length)return!1;for(s=c;0!==s--;)if(u[s]!==a[s])return!1;return!0}if(u.constructor===RegExp)return u.source===a.source&&u.flags===a.flags;if(u.valueOf!==Object.prototype.valueOf&&'function'==typeof u.valueOf&&'function'==typeof a.valueOf)return u.valueOf()===a.valueOf();if(u.toString!==Object.prototype.toString&&'function'==typeof u.toString&&'function'==typeof a.toString)return u.toString()===a.toString();if((c=(l=Object.keys(u)).length)!==Object.keys(a).length)return!1;for(s=c;0!==s--;)if(!Object.prototype.hasOwnProperty.call(a,l[s]))return!1;if(t&&u instanceof Element)return!1;for(s=c;0!==s--;)if(('_owner'!==l[s]&&'__v'!==l[s]&&'__o'!==l[s]||!u.$$typeof)&&!i(u[l[s]],a[l[s]]))return!1;return!0}return u!=u&&a!=a}m.exports=function(t,n){try{return i(t,n)}catch(t){if((t.message||'').match(/stack|recursion/i))return console.warn('react-fast-compare cannot handle circular refs'),!1;throw t}}},2159,[]);
3465
+ __d(function(g,r,i,a,m,e,d){m.exports=function(t,n,o,f){var c=o?o.call(f,t,n):void 0;if(void 0!==c)return!!c;if(t===n)return!0;if("object"!=typeof t||!t||"object"!=typeof n||!n)return!1;var u=Object.keys(t),v=Object.keys(n);if(u.length!==v.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(n),b=0;b<u.length;b++){var p=u[b];if(!l(p))return!1;var y=t[p],j=n[p];if(!1===(c=o?o.call(f,y,j,p):void 0)||void 0===c&&y!==j)return!1}return!0}},2160,[]);
3466
+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},2161,[]);
3467
+ __d(function(g,r,_i,a,_m,_e,d){"use strict";var e,t=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,i)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)},function(o){if(o&&o.__esModule)return o;var i={};if(null!=o)for(var c=e(o),u=0;u<c.length;u++)"default"!==c[u]&&t(i,o,c[u]);return n(i,o),i});Object.defineProperty(_e,"__esModule",{value:!0}),_e.renderRootComponent=function(e){try{setTimeout(()=>{f._internal_preventAutoHideAsync?.()}),u.startTransition(()=>{(0,c.registerRootComponent)(e)})}catch(e){f.hideAsync();const t=b(e);(0,c.registerRootComponent)(()=>(0,i.jsx)(s.View,{})),console.error(t),console.error("A runtime error has occurred while rendering the root component."),setTimeout(()=>{throw t})}};const i=r(d[0]),c=r(d[1]),u=o(r(d[2])),s=r(d[3]),f=o(r(d[4]));function l(e){if('[object Object]'!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function p(e){return e&&'object'==typeof e&&'string'==typeof e.name&&'string'==typeof e.message}function b(e){return p(e)?e:l(e)?new Error(JSON.stringify(e)):new Error(String(e))}},2162,[10,564,17,121,563]);
3467
3468
  __r(566);
3468
3469
  __r(6);
3469
3470
  __r(0);