@camstack/addon-pipeline-orchestrator 1.2.71 → 1.2.75
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.
- package/assets/viewer/.viewer-current-files.json +5 -5
- package/assets/viewer/.viewer-version +1 -1
- package/assets/viewer/_expo/static/js/web/Clipboard-68139000fcc61af593c44b211b675f83.js +8 -0
- package/assets/viewer/_expo/static/js/web/Haptics-01ab31b2a1d3325f70b28a24474fe704.js +3 -0
- package/assets/viewer/_expo/static/js/web/{index-d1a9c6f521e974cc90f1a7eaaf908354.js → index-39e5c6b7c7445c1b4a2baa92dd2c98e1.js} +43 -42
- package/assets/viewer/_expo/static/js/web/node-fs-9335d97bb088777ae4eb23bb48049a68.js +1 -0
- package/assets/viewer/_expo/static/js/web/node-path-da70216c9d8adb1fa18a6f4efbee784e.js +1 -0
- package/assets/viewer/index.html +1 -1
- package/dist/_stub.js +2 -2
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-Cb2gW27C.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-CS2P_brd.mjs} +2 -2
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Cb_kiYRV.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CbIQ4mVS.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-7WxrFeM1.mjs} +1 -1
- package/dist/{hostInit-DuuZmzlm.mjs → hostInit-NlhiPlZ_.mjs} +2 -2
- package/dist/index.js +256 -1
- package/dist/index.mjs +256 -1
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Di2TvwP9.mjs +0 -26
|
@@ -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,
|
|
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,2238]);
|
|
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,
|
|
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,2232,2237]);
|
|
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)/notifications.tsx":{enumerable:!0,get:()=>r(d[4])},"./(app)/(tabs)/settings.tsx":{enumerable:!0,get:()=>r(d[5])},"./(app)/_layout.tsx":{enumerable:!0,get:()=>r(d[6])},"./(app)/artifacts.tsx":{enumerable:!0,get:()=>r(d[7])},"./(app)/camera/[id].tsx":{enumerable:!0,get:()=>r(d[8])},"./(app)/events-embed.tsx":{enumerable:!0,get:()=>r(d[9])},"./(app)/exports.tsx":{enumerable:!0,get:()=>r(d[10])},"./(app)/grid/[id]/edit.tsx":{enumerable:!0,get:()=>r(d[11])},"./(app)/grid/[id]/index.tsx":{enumerable:!0,get:()=>r(d[12])},"./(app)/grid/adhoc.tsx":{enumerable:!0,get:()=>r(d[13])},"./(app)/settings/cameras.tsx":{enumerable:!0,get:()=>r(d[14])},"./(app)/settings/notifications.tsx":{enumerable:!0,get:()=>r(d[15])},"./_layout.tsx":{enumerable:!0,get:()=>r(d[16])},"./index.tsx":{enumerable:!0,get:()=>r(d[17])}});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,1025,1870,1930,1945,1979,1997,2004,2005,2150,2152,2153,2154,2178,2179,
|
|
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)/notifications.tsx":{enumerable:!0,get:()=>r(d[4])},"./(app)/(tabs)/settings.tsx":{enumerable:!0,get:()=>r(d[5])},"./(app)/_layout.tsx":{enumerable:!0,get:()=>r(d[6])},"./(app)/artifacts.tsx":{enumerable:!0,get:()=>r(d[7])},"./(app)/camera/[id].tsx":{enumerable:!0,get:()=>r(d[8])},"./(app)/events-embed.tsx":{enumerable:!0,get:()=>r(d[9])},"./(app)/exports.tsx":{enumerable:!0,get:()=>r(d[10])},"./(app)/grid/[id]/edit.tsx":{enumerable:!0,get:()=>r(d[11])},"./(app)/grid/[id]/index.tsx":{enumerable:!0,get:()=>r(d[12])},"./(app)/grid/adhoc.tsx":{enumerable:!0,get:()=>r(d[13])},"./(app)/settings/cameras.tsx":{enumerable:!0,get:()=>r(d[14])},"./(app)/settings/notifications.tsx":{enumerable:!0,get:()=>r(d[15])},"./_layout.tsx":{enumerable:!0,get:()=>r(d[16])},"./index.tsx":{enumerable:!0,get:()=>r(d[17])}});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,1025,1870,1930,1945,1979,1997,2004,2005,2150,2152,2153,2154,2178,2179,2205,2206,2223]);
|
|
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.
|
|
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.337\",\"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]);
|
|
@@ -2301,7 +2301,7 @@ __d(function(g,r,i,a,m,e,d){'use strict';m.exports=t=>{if('[object Object]'!==Ob
|
|
|
2301
2301
|
__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useAsyncStorage=function(e){return{getItem:(...t)=>u.default.getItem(e,...t),setItem:(...t)=>u.default.setItem(e,...t),mergeItem:(...t)=>u.default.mergeItem(e,...t),removeItem:(...t)=>u.default.removeItem(e,...t)}};var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e}},1013,[1009]);
|
|
2302
2302
|
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"HAPTIC_EVENT_KINDS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"HAPTICS_DEFAULTS",{enumerable:!0,get:function(){return t}}),e.hapticKindForEvent=o,e.isHapticEventEnabled=c,Object.defineProperty(e,"HAPTIC_MIN_INTERVAL_MS",{enumerable:!0,get:function(){return u}}),e.canFireHaptic=s,e.isForegroundActive=function(n){return'active'===n},e.detectionEventKind=function(n,t){return t||n.some(n=>'person'===n.toLowerCase())?'person':'detection'},e.resolveHaptic=function(n,t,f,p,l=u){return c(n,t)&&s(f,p,l)?o(t):null};const n=['motion','detection','person'],t={enabled:!1,motion:!0,detection:!0,person:!0,uiFeedback:!0};function o(n){switch(n){case'motion':return'selection';case'detection':return'impact-light';case'person':return'notification'}}function c(n,t){if(!n.enabled)return!1;switch(t){case'motion':return n.motion;case'detection':return n.detection;case'person':return n.person}}const u=2e3;function s(n,t,o=u){return n<=0||t-n>=o}},1014,[]);
|
|
2303
2303
|
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"OVERLAY_ANCHORS",{enumerable:!0,get:function(){return t}}),e.isOverlayAnchor=o,e.isOverlayPosition=n,e.normalisePosition=f,e.normaliseAnchor=function(t){const o=f(t);return null!==o&&'off'!==o?o:null},Object.defineProperty(e,"OVERLAY_POSITION_GRID",{enumerable:!0,get:function(){return c}}),Object.defineProperty(e,"ANCHOR_PLACEMENT",{enumerable:!0,get:function(){return s}});const t=['top-left','top-center','top-right','left-center','right-center','bottom-left','bottom-center','bottom-right'];function o(o){return'string'==typeof o&&t.includes(o)}function n(t){return'off'===t||o(t)}const l={topLeft:'top-left',topRight:'top-right',bottomLeft:'bottom-left',bottomRight:'bottom-right'};function f(t){return n(t)?t:'string'==typeof t?l[t]??null:null}const c=[['top-left','top-center','top-right'],['left-center','off','right-center'],['bottom-left','bottom-center','bottom-right']],s={'top-left':{top:8,left:8,alignItems:'flex-start'},'top-center':{top:8,left:0,right:0,alignItems:'center'},'top-right':{top:8,right:8,alignItems:'flex-end'},'left-center':{left:8,top:0,bottom:0,justifyContent:'center',alignItems:'flex-start'},'right-center':{right:8,top:0,bottom:0,justifyContent:'center',alignItems:'flex-end'},'bottom-left':{bottom:8,left:8,alignItems:'flex-start'},'bottom-center':{bottom:8,left:0,right:0,alignItems:'center'},'bottom-right':{bottom:8,right:8,alignItems:'flex-end'}}},1015,[]);
|
|
2304
|
-
__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])},1016,{"0":136,"1":
|
|
2304
|
+
__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])},1016,{"0":136,"1":2239,"2":1017,"paths":{"2239":"/viewer/camstack/_expo/static/js/web/Haptics-01ab31b2a1d3325f70b28a24474fe704.js"}});
|
|
2305
2305
|
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])},1017,[1018]);
|
|
2306
2306
|
__d(function(g,r,i,a,m,e,d){function n(n,t){const o=globalThis[`${__METRO_GLOBAL_PREFIX__??''}__loadBundleAsync`];if(null!=o){const s=String(n);if(null!=t){const n=t[s];if(null!=n)return o(n)}}}function t(t,o,s){const u=()=>r.importAll(t,s);try{return u()}catch(s){const c=n(t,o);if(null!=c)return c.then(u);throw s}const c=n(t,o);return null!=c?c.then(u):u()}function o(n,o,s){const u=t(n,o,s);return u instanceof Promise?{_result:u,then:(n,t)=>u.then(n,t)}:{_result:u,then:(n,t)=>Promise.resolve(u).then(n,t)}}o.unstable_importMaybeSync=function(n,o){return t(n,o)},o.prefetch=function(t,o,s){n(t,o)?.then(()=>{},()=>{})},o.unstable_resolve=function(n,t){if(!t)throw new Error('Bundle splitting is required for Web Worker imports');const o=t[n];if(!o)throw new Error('Worker import is missing from split bundle paths: '+o);return o},o.unstable_createWorker=function(n,t){if('undefined'==typeof crossOriginIsolated||!crossOriginIsolated)return new Worker(n,t);try{const s=(o=n,`\n const ASYNC_WORKER_BASE = ${JSON.stringify(o)};\n const IMPORT_SCRIPTS = importScripts;\n const FETCH = fetch;\n const fromBaseURL = (input) => new URL(input, ASYNC_WORKER_BASE).href;\n self.fetch = function(input, init) {\n return FETCH(typeof input === 'string' ? fromBaseURL(input) : input, init);\n };\n self.importScripts = function(...urls) {\n return IMPORT_SCRIPTS.apply(self, urls.map(fromBaseURL));\n };\n importScripts(ASYNC_WORKER_BASE);\n `);return n=URL.createObjectURL(new Blob([s],{type:'text/javascript'})),new Worker(n,t)}finally{URL.revokeObjectURL(n)}var o},m.exports=o},1018,[]);
|
|
2307
2307
|
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"UI_HAPTIC_INTENTS",{enumerable:!0,get:function(){return t}}),e.hapticKindForIntent=n,e.isUiHapticEnabled=c,e.resolveUiHaptic=function(t,u){return c(t)?n(u):null};const t=['tap','action','detent','success','error'];function n(t){switch(t){case'tap':return'impact-light';case'action':return'impact-medium';case'detent':return'selection';case'success':return'notification-success';case'error':return'notification-error'}}function c(t){return t.uiFeedback}},1019,[]);
|
|
@@ -2363,7 +2363,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
|
|
|
2363
2363
|
__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])},1053,[1039,1041]);
|
|
2364
2364
|
__d(function(e,t,n,a,r,i,o){"use strict";const s=["icon"];function c(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(i,'__esModule',{value:!0}),Object.defineProperty(i,"ACCESSORY_LABEL",{enumerable:!0,get:function(){return ik}}),Object.defineProperty(i,"ACCESS_ROLES",{enumerable:!0,get:function(){return jw}}),Object.defineProperty(i,"ALEXA_EGRESS_PROFILE",{enumerable:!0,get:function(){return w}}),Object.defineProperty(i,"ALL_CAPABILITY_DEFINITIONS",{enumerable:!0,get:function(){return mP}}),Object.defineProperty(i,"APPLE_SA_TO_MACRO",{enumerable:!0,get:function(){return Sd}}),Object.defineProperty(i,"AUDIO_ANALYSIS_CAP_NAME",{enumerable:!0,get:function(){return be}}),Object.defineProperty(i,"AUDIO_BACKEND_CHOICES",{enumerable:!0,get:function(){return pr}}),Object.defineProperty(i,"AUDIO_MACRO_LABELS",{enumerable:!0,get:function(){return vd}}),Object.defineProperty(i,"AUDIO_PRESETS",{enumerable:!0,get:function(){return p.r}}),Object.defineProperty(i,"AccessoriesStatusSchema",{enumerable:!0,get:function(){return zz}}),Object.defineProperty(i,"AccessoryKind",{enumerable:!0,get:function(){return rk}}),Object.defineProperty(i,"AddBrokerInputSchema",{enumerable:!0,get:function(){return Lc}}),Object.defineProperty(i,"AddonAutoUpdateSchema",{enumerable:!0,get:function(){return Bz}}),Object.defineProperty(i,"AddonListItemSchema",{enumerable:!0,get:function(){return Ez}}),Object.defineProperty(i,"AddonPageDeclarationSchema",{enumerable:!0,get:function(){return Ea}}),Object.defineProperty(i,"AddonPageInfoSchema",{enumerable:!0,get:function(){return Aa}}),Object.defineProperty(i,"AdoptionAdoptInputSchema",{enumerable:!0,get:function(){return No}}),Object.defineProperty(i,"AdoptionAdoptResultSchema",{enumerable:!0,get:function(){return Eo}}),Object.defineProperty(i,"AdoptionCandidateResultSchema",{enumerable:!0,get:function(){return re}}),Object.defineProperty(i,"AdoptionFilterSchema",{enumerable:!0,get:function(){return ko}}),Object.defineProperty(i,"AdoptionGetCandidateInputSchema",{enumerable:!0,get:function(){return Oo}}),Object.defineProperty(i,"AdoptionJobSchema",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(i,"AdoptionJobStateSchema",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(i,"AdoptionListCandidatesInputSchema",{enumerable:!0,get:function(){return Mo}}),Object.defineProperty(i,"AdoptionListCandidatesOutputSchema",{enumerable:!0,get:function(){return wo}}),Object.defineProperty(i,"AdoptionOutcomeSchema",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(i,"AdoptionReleaseInputSchema",{enumerable:!0,get:function(){return xo}}),Object.defineProperty(i,"AdoptionStatusSchema",{enumerable:!0,get:function(){return Co}}),Object.defineProperty(i,"AgentLoadSummarySchema",{enumerable:!0,get:function(){return yb}}),Object.defineProperty(i,"AirQualitySensorStatusSchema",{enumerable:!0,get:function(){return Yz}}),Object.defineProperty(i,"AlarmArmModeSchema",{enumerable:!0,get:function(){return Ud}}),Object.defineProperty(i,"AlarmPanelStatusSchema",{enumerable:!0,get:function(){return Vd}}),Object.defineProperty(i,"AlarmStateSchema",{enumerable:!0,get:function(){return qd}}),Object.defineProperty(i,"AlertSchema",{enumerable:!0,get:function(){return er}}),Object.defineProperty(i,"AlertSeveritySchema",{enumerable:!0,get:function(){return Ja}}),Object.defineProperty(i,"AlertSourceSchema",{enumerable:!0,get:function(){return Qa}}),Object.defineProperty(i,"AlertStatusSchema",{enumerable:!0,get:function(){return Xa}}),Object.defineProperty(i,"AmbientLightSensorStatusSchema",{enumerable:!0,get:function(){return Xz}}),Object.defineProperty(i,"ApiKeyRecordSchema",{enumerable:!0,get:function(){return pu}}),Object.defineProperty(i,"ApiKeySummarySchema",{enumerable:!0,get:function(){return fj}}),Object.defineProperty(i,"ArchiveEntrySchema",{enumerable:!0,get:function(){return Cr}}),Object.defineProperty(i,"ArchiveManifestSchema",{enumerable:!0,get:function(){return Ar}}),Object.defineProperty(i,"AttachmentMediaTypeSchema",{enumerable:!0,get:function(){return Jc}}),Object.defineProperty(i,"AttachmentSchema",{enumerable:!0,get:function(){return Xc}}),Object.defineProperty(i,"AudioAnalysisResultSchema",{enumerable:!0,get:function(){return lr}}),Object.defineProperty(i,"AudioAnalysisSettingsSchema",{enumerable:!0,get:function(){return ur}}),Object.defineProperty(i,"AudioChunkInputSchema",{enumerable:!0,get:function(){return sr}}),Object.defineProperty(i,"AudioClassSummarySchema",{enumerable:!0,get:function(){return ef}}),Object.defineProperty(i,"AudioClassificationLabelSchema",{enumerable:!0,get:function(){return dr}}),Object.defineProperty(i,"AudioClassificationResultSchema",{enumerable:!0,get:function(){return mr}}),Object.defineProperty(i,"AudioCodecInfoSchema",{enumerable:!0,get:function(){return fr}}),Object.defineProperty(i,"AudioDecodeSessionConfigSchema",{enumerable:!0,get:function(){return yr}}),Object.defineProperty(i,"AudioEncodeSchema",{enumerable:!0,get:function(){return I}}),Object.defineProperty(i,"AudioEncodeSessionConfigSchema",{enumerable:!0,get:function(){return vr}}),Object.defineProperty(i,"AudioEncodedChunkSchema",{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(i,"AudioEventSchema",{enumerable:!0,get:function(){return Zu}}),Object.defineProperty(i,"AudioLevelSchema",{enumerable:!0,get:function(){return cr}}),Object.defineProperty(i,"AudioMetricsHistoryPointSchema",{enumerable:!0,get:function(){return nf}}),Object.defineProperty(i,"AudioMetricsHistorySchema",{enumerable:!0,get:function(){return af}}),Object.defineProperty(i,"AudioMetricsSnapshotSchema",{enumerable:!0,get:function(){return tf}}),Object.defineProperty(i,"AudioPcmChunkSchema",{enumerable:!0,get:function(){return hr}}),Object.defineProperty(i,"AuthResultSchema",{enumerable:!0,get:function(){return kr}}),Object.defineProperty(i,"AutoUpdateSettingsSchema",{enumerable:!0,get:function(){return Fz}}),Object.defineProperty(i,"AutomationActionSchema",{enumerable:!0,get:function(){return fa}}),Object.defineProperty(i,"AutomationConditionOperatorSchema",{enumerable:!0,get:function(){return ma}}),Object.defineProperty(i,"AutomationConditionSchema",{enumerable:!0,get:function(){return ga}}),Object.defineProperty(i,"AutomationControlStatusSchema",{enumerable:!0,get:function(){return of}}),Object.defineProperty(i,"AutomationRecipeSchema",{enumerable:!0,get:function(){return ya}}),Object.defineProperty(i,"AutomationTriggerSchema",{enumerable:!0,get:function(){return za}}),Object.defineProperty(i,"AvailableIntegrationTypeSchema",{enumerable:!0,get:function(){return Hy}}),Object.defineProperty(i,"BACKEND_TO_FORMAT",{enumerable:!0,get:function(){return zO}}),Object.defineProperty(i,"BASE_LIVE_EGRESS_PROFILE",{enumerable:!0,get:function(){return P}}),Object.defineProperty(i,"BATTERY_DEVICE_PROFILE",{enumerable:!0,get:function(){return Ck}}),Object.defineProperty(i,"BATTERY_UNREACHABLE_AFTER_MS",{enumerable:!0,get:function(){return Ek}}),Object.defineProperty(i,"BOOT_RECOVERY_BACKOFF_MS",{enumerable:!0,get:function(){return m.d}}),Object.defineProperty(i,"BacklightModeSchema",{enumerable:!0,get:function(){return Ry}}),Object.defineProperty(i,"BackupDestinationInfoSchema",{enumerable:!0,get:function(){return Mr}}),Object.defineProperty(i,"BackupEntrySchema",{enumerable:!0,get:function(){return Or}}),Object.defineProperty(i,"BaseAddon",{enumerable:!0,get:function(){return m._t}}),Object.defineProperty(i,"BaseDevice",{enumerable:!0,get:function(){return uk}}),Object.defineProperty(i,"BaseDeviceProvider",{enumerable:!0,get:function(){return pk}}),Object.defineProperty(i,"BatteryStatusSchema",{enumerable:!0,get:function(){return cf}}),Object.defineProperty(i,"BinaryStatusSchema",{enumerable:!0,get:function(){return lf}}),Object.defineProperty(i,"BoundingBoxSchema",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(i,"BrightnessStatusSchema",{enumerable:!0,get:function(){return mf}}),Object.defineProperty(i,"BrokerAddInputSchema",{enumerable:!0,get:function(){return _r}}),Object.defineProperty(i,"BrokerAudioClientSchema",{enumerable:!0,get:function(){return li}}),Object.defineProperty(i,"BrokerClientsSchema",{enumerable:!0,get:function(){return bi}}),Object.defineProperty(i,"BrokerConnectionDetailsSchema",{enumerable:!0,get:function(){return Bc}}),Object.defineProperty(i,"BrokerConsumerAttributionSchema",{enumerable:!0,get:function(){return mi}}),Object.defineProperty(i,"BrokerConsumerKindSchema",{enumerable:!0,get:function(){return ui}}),Object.defineProperty(i,"BrokerDecodedClientSchema",{enumerable:!0,get:function(){return di}}),Object.defineProperty(i,"BrokerEncodedClientSchema",{enumerable:!0,get:function(){return pi}}),Object.defineProperty(i,"BrokerGetStateInputSchema",{enumerable:!0,get:function(){return Qr}}),Object.defineProperty(i,"BrokerInfoSchema",{enumerable:!0,get:function(){return Fc}}),Object.defineProperty(i,"BrokerProviderInfoSchema",{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(i,"BrokerPublishInputSchema",{enumerable:!0,get:function(){return Zr}}),Object.defineProperty(i,"BrokerRegistryStatusSchema",{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(i,"BrokerRtspClientSchema",{enumerable:!0,get:function(){return ci}}),Object.defineProperty(i,"BrokerStatsSchema",{enumerable:!0,get:function(){return m.W}}),Object.defineProperty(i,"BrokerStatusEnum",{enumerable:!0,get:function(){return Tr}}),Object.defineProperty(i,"BrokerStatusSchema",{enumerable:!0,get:function(){return m.G}}),Object.defineProperty(i,"BrokerSubscribeInputSchema",{enumerable:!0,get:function(){return Yr}}),Object.defineProperty(i,"BrokerSubscribeResultSchema",{enumerable:!0,get:function(){return Jr}}),Object.defineProperty(i,"BrokerTestConnectionResultSchema",{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(i,"BrokerUnsubscribeInputSchema",{enumerable:!0,get:function(){return Xr}}),Object.defineProperty(i,"CAMERA_SWITCH_CATALOG",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(i,"CAMERA_SWITCH_ORDER",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(i,"CAM_PROFILE_ORDER",{enumerable:!0,get:function(){return m.K}}),Object.defineProperty(i,"CAPABILITY_NAMES",{enumerable:!0,get:function(){return lP}}),Object.defineProperty(i,"CAPABILITY_ROUTER_KEYS",{enumerable:!0,get:function(){return uP}}),Object.defineProperty(i,"CAP_NAMES_WITH_STATUS",{enumerable:!0,get:function(){return dP}}),Object.defineProperty(i,"CAP_NODE_PIN_CONTEXT_KEY",{enumerable:!0,get:function(){return m.F}}),Object.defineProperty(i,"CAP_PROVIDER_KIND_MAP",{enumerable:!0,get:function(){return vP}}),Object.defineProperty(i,"COCO_80_LABELS",{enumerable:!0,get:function(){return bd}}),Object.defineProperty(i,"COCO_TO_MACRO",{enumerable:!0,get:function(){return yd}}),Object.defineProperty(i,"CONNECTION_TEST_TIMEOUT_MS",{enumerable:!0,get:function(){return Of}}),Object.defineProperty(i,"CORE_BLOCKS_ADDON_ID",{enumerable:!0,get:function(){return _i}}),Object.defineProperty(i,"CORE_BLOCK_ADDON_PREFIX",{enumerable:!0,get:function(){return Li}}),Object.defineProperty(i,"CamProfileSchema",{enumerable:!0,get:function(){return m.q}}),Object.defineProperty(i,"CamStreamDescriptorSchema",{enumerable:!0,get:function(){return RI}}),Object.defineProperty(i,"CamStreamKindSchema",{enumerable:!0,get:function(){return m.J}}),Object.defineProperty(i,"CamStreamResolutionSchema",{enumerable:!0,get:function(){return m.Y}}),Object.defineProperty(i,"CameraAssignmentStatusSchema",{enumerable:!0,get:function(){return kb}}),Object.defineProperty(i,"CameraAudioStatusSchema",{enumerable:!0,get:function(){return Tb}}),Object.defineProperty(i,"CameraBrokerProfileSchema",{enumerable:!0,get:function(){return Pb}}),Object.defineProperty(i,"CameraBrokerStatusSchema",{enumerable:!0,get:function(){return Mb}}),Object.defineProperty(i,"CameraCredentialsSchema",{enumerable:!0,get:function(){return gf}}),Object.defineProperty(i,"CameraCredentialsStatusSchema",{enumerable:!0,get:function(){return zf}}),Object.defineProperty(i,"CameraDecoderShmSchema",{enumerable:!0,get:function(){return wb}}),Object.defineProperty(i,"CameraDecoderStatusSchema",{enumerable:!0,get:function(){return Ob}}),Object.defineProperty(i,"CameraDetectionPhaseSchema",{enumerable:!0,get:function(){return Eb}}),Object.defineProperty(i,"CameraDetectionProvisioningSchema",{enumerable:!0,get:function(){return Nb}}),Object.defineProperty(i,"CameraDetectionProvisioningStateSchema",{enumerable:!0,get:function(){return Ab}}),Object.defineProperty(i,"CameraDetectionStatusSchema",{enumerable:!0,get:function(){return xb}}),Object.defineProperty(i,"CameraMetricsSchema",{enumerable:!0,get:function(){return bp}}),Object.defineProperty(i,"CameraMetricsWithDeviceIdSchema",{enumerable:!0,get:function(){return gp}}),Object.defineProperty(i,"CameraMotionStatusSchema",{enumerable:!0,get:function(){return Cb}}),Object.defineProperty(i,"CameraRecordingModeSchema",{enumerable:!0,get:function(){return Db}}),Object.defineProperty(i,"CameraRecordingStatusSchema",{enumerable:!0,get:function(){return Rb}}),Object.defineProperty(i,"CameraSourceStatusSchema",{enumerable:!0,get:function(){return jb}}),Object.defineProperty(i,"CameraSourceStreamSchema",{enumerable:!0,get:function(){return Ib}}),Object.defineProperty(i,"CameraStatusDegradationReasonSchema",{enumerable:!0,get:function(){return Bb}}),Object.defineProperty(i,"CameraStatusDegradationSchema",{enumerable:!0,get:function(){return Lb}}),Object.defineProperty(i,"CameraStatusSchema",{enumerable:!0,get:function(){return _b}}),Object.defineProperty(i,"CameraStatusStageSchema",{enumerable:!0,get:function(){return Fb}}),Object.defineProperty(i,"CameraStreamSchema",{enumerable:!0,get:function(){return m.X}}),Object.defineProperty(i,"CameraSwitchAuthoritySchema",{enumerable:!0,get:function(){return de}}),Object.defineProperty(i,"CameraSwitchGroupSchema",{enumerable:!0,get:function(){return me}}),Object.defineProperty(i,"CameraSwitchIdSchema",{enumerable:!0,get:function(){return se}}),Object.defineProperty(i,"CameraSwitchSchema",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(i,"CameraSwitchUnavailableReasonSchema",{enumerable:!0,get:function(){return le}}),Object.defineProperty(i,"CandidateQueryFilterSchema",{enumerable:!0,get:function(){return Po}}),Object.defineProperty(i,"CapScopeSchema",{enumerable:!0,get:function(){return cu}}),Object.defineProperty(i,"CapabilityBindingsSchema",{enumerable:!0,get:function(){return hb}}),Object.defineProperty(i,"CarbonMonoxideStatusSchema",{enumerable:!0,get:function(){return yf}}),Object.defineProperty(i,"ChargingStatus",{enumerable:!0,get:function(){return m.x}}),Object.defineProperty(i,"ClientNetworkStatsSchema",{enumerable:!0,get:function(){return Vv}}),Object.defineProperty(i,"ClimateControlStatusSchema",{enumerable:!0,get:function(){return Sf}}),Object.defineProperty(i,"ClipPlaybackSchema",{enumerable:!0,get:function(){return lz}}),Object.defineProperty(i,"ClipSchema",{enumerable:!0,get:function(){return dz}}),Object.defineProperty(i,"ClusterAddonNodeDeploymentSchema",{enumerable:!0,get:function(){return Qv}}),Object.defineProperty(i,"ClusterAddonStatusEntrySchema",{enumerable:!0,get:function(){return eh}}),Object.defineProperty(i,"CollectionColumnSchema",{enumerable:!0,get:function(){return ao}}),Object.defineProperty(i,"CollectionIndexSchema",{enumerable:!0,get:function(){return ro}}),Object.defineProperty(i,"ColorStatusSchema",{enumerable:!0,get:function(){return Mf}}),Object.defineProperty(i,"ConfigEntrySchema",{enumerable:!0,get:function(){return rs}}),Object.defineProperty(i,"ConfigSectionWithValuesSchema",{enumerable:!0,get:function(){return La}}),Object.defineProperty(i,"ConfigTabDeclarationSchema",{enumerable:!0,get:function(){return Ba}}),Object.defineProperty(i,"ConnectionTestDescriptorSchema",{enumerable:!0,get:function(){return Nf}}),Object.defineProperty(i,"ConnectionTestInputSchema",{enumerable:!0,get:function(){return Af}}),Object.defineProperty(i,"ConnectionTestOutcomeSchema",{enumerable:!0,get:function(){return Cf}}),Object.defineProperty(i,"ConnectivityStatusSchema",{enumerable:!0,get:function(){return xf}}),Object.defineProperty(i,"ConsumableItemSchema",{enumerable:!0,get:function(){return Df}}),Object.defineProperty(i,"ConsumablesStatusSchema",{enumerable:!0,get:function(){return Rf}}),Object.defineProperty(i,"ContactStatusSchema",{enumerable:!0,get:function(){return Bf}}),Object.defineProperty(i,"ControlKindSchema",{enumerable:!0,get:function(){return _f}}),Object.defineProperty(i,"ControlStatusSchema",{enumerable:!0,get:function(){return qf}}),Object.defineProperty(i,"ConvertArtifactSchema",{enumerable:!0,get:function(){return tn}}),Object.defineProperty(i,"ConvertResultSchema",{enumerable:!0,get:function(){return nn}}),Object.defineProperty(i,"ConvertTargetSchema",{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(i,"CoreBlockCompileResultSchema",{enumerable:!0,get:function(){return Wi}}),Object.defineProperty(i,"CoreBlockInputSchema",{enumerable:!0,get:function(){return $i}}),Object.defineProperty(i,"CoreBlockPlacementSchema",{enumerable:!0,get:function(){return Vi}}),Object.defineProperty(i,"CoreBlockSchema",{enumerable:!0,get:function(){return Ki}}),Object.defineProperty(i,"CoreBlockStatusSchema",{enumerable:!0,get:function(){return Hi}}),Object.defineProperty(i,"CoverStateSchema",{enumerable:!0,get:function(){return Hf}}),Object.defineProperty(i,"CoverStatusSchema",{enumerable:!0,get:function(){return $f}}),Object.defineProperty(i,"CreateApiKeyInputSchema",{enumerable:!0,get:function(){return yj}}),Object.defineProperty(i,"CreateApiKeyResultSchema",{enumerable:!0,get:function(){return vj}}),Object.defineProperty(i,"CreateIntegrationInputSchema",{enumerable:!0,get:function(){return Wy}}),Object.defineProperty(i,"CreateScopedTokenInputSchema",{enumerable:!0,get:function(){return Sj}}),Object.defineProperty(i,"CreateScopedTokenResultSchema",{enumerable:!0,get:function(){return Ij}}),Object.defineProperty(i,"CreateUserInputSchema",{enumerable:!0,get:function(){return gj}}),Object.defineProperty(i,"CustomActionInputSchema",{enumerable:!0,get:function(){return Gz}}),Object.defineProperty(i,"CustomModelDescriptorSchema",{enumerable:!0,get:function(){return Xi}}),Object.defineProperty(i,"DATAPLANE_SECRET_HEADER",{enumerable:!0,get:function(){return m.ht}}),Object.defineProperty(i,"DECLARED_DEVICE_SWEEP_LIMIT",{enumerable:!0,get:function(){return zk}}),Object.defineProperty(i,"DECLARED_INTEGRATION_FIXED_KEY",{enumerable:!0,get:function(){return bk}}),Object.defineProperty(i,"DEFAULT_ADDON_PLACEMENT",{enumerable:!0,get:function(){return G}}),Object.defineProperty(i,"DEFAULT_AUDIO_ANALYZER_CONFIG",{enumerable:!0,get:function(){return br}}),Object.defineProperty(i,"DEFAULT_DECODER_HWACCEL_CONFIG",{enumerable:!0,get:function(){return lo}}),Object.defineProperty(i,"DEFAULT_DETAIL_CROP_CONVENTION",{enumerable:!0,get:function(){return GM}}),Object.defineProperty(i,"DEFAULT_EVENTS_BAND_BUFFER_SEC",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(i,"DEFAULT_EVENT_COLOR",{enumerable:!0,get:function(){return Md}}),Object.defineProperty(i,"DEFAULT_FEATURES",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(i,"DEFAULT_NATIVE_LEASE_SETTINGS",{enumerable:!0,get:function(){return uw}}),Object.defineProperty(i,"DEFAULT_RETENTION",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(i,"DEFAULT_RUNTIME_STATE_DURABILITY",{enumerable:!0,get:function(){return m.E}}),Object.defineProperty(i,"DEFAULT_SCRUB_THUMBNAIL_PRESET",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(i,"DEFAULT_TIMELAPSE_PREVIEW_TEXT",{enumerable:!0,get:function(){return LM}}),Object.defineProperty(i,"DETAIL_CROP_PADDING_FIELD",{enumerable:!0,get:function(){return XM}}),Object.defineProperty(i,"DETAIL_CROP_PADDING_KEY",{enumerable:!0,get:function(){return $M}}),Object.defineProperty(i,"DETAIL_CROP_SECTION_ID",{enumerable:!0,get:function(){return HM}}),Object.defineProperty(i,"DETAIL_CROP_SQUARE_KEY",{enumerable:!0,get:function(){return KM}}),Object.defineProperty(i,"DETECTION_MACRO_CLASSES",{enumerable:!0,get:function(){return zd}}),Object.defineProperty(i,"DETECTION_PIPELINE_CAP_NAME",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(i,"DEVICE_BACKEND_TO_FORMAT",{enumerable:!0,get:function(){return fO}}),Object.defineProperty(i,"DEVICE_CAP_NAMES",{enumerable:!0,get:function(){return gP}}),Object.defineProperty(i,"DEVICE_PROFILES",{enumerable:!0,get:function(){return Ak}}),Object.defineProperty(i,"DEVICE_SCOPED_CAPS",{enumerable:!0,get:function(){return m.f}}),Object.defineProperty(i,"DEVICE_SETTINGS_CONTRIBUTION_METHODS",{enumerable:!0,get:function(){return m.D}}),Object.defineProperty(i,"DEVICE_STATE_READERS",{enumerable:!0,get:function(){return Xj}}),Object.defineProperty(i,"DEVICE_STATUS_METHOD",{enumerable:!0,get:function(){return m.O}}),Object.defineProperty(i,"DEVICE_TYPE_CONTROL_KIND",{enumerable:!0,get:function(){return yk}}),Object.defineProperty(i,"DEVICE_TYPE_INFO",{enumerable:!0,get:function(){return qw}}),Object.defineProperty(i,"DataStoreEngineInfoSchema",{enumerable:!0,get:function(){return oo}}),Object.defineProperty(i,"DayNightModeSchema",{enumerable:!0,get:function(){return Wf}}),Object.defineProperty(i,"DayNightOptionsSchema",{enumerable:!0,get:function(){return Yf}}),Object.defineProperty(i,"DayNightSettingsPatchSchema",{enumerable:!0,get:function(){return Jf}}),Object.defineProperty(i,"DayNightStatusSchema",{enumerable:!0,get:function(){return Zf}}),Object.defineProperty(i,"DeclaredDevices",{enumerable:!0,get:function(){return fk}}),Object.defineProperty(i,"DecodedAudioChunkSchema",{enumerable:!0,get:function(){return m.Z}}),Object.defineProperty(i,"DecodedFrameSchema",{enumerable:!0,get:function(){return m.Q}}),Object.defineProperty(i,"DecoderSessionConfigSchema",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(i,"DecoderStatsSchema",{enumerable:!0,get:function(){return Ot}}),Object.defineProperty(i,"DeleteIntegrationResultSchema",{enumerable:!0,get:function(){return Zy}}),Object.defineProperty(i,"DetailCropConventionSchema",{enumerable:!0,get:function(){return WM}}),Object.defineProperty(i,"DetectionSourceSchema",{enumerable:!0,get:function(){return $u}}),Object.defineProperty(i,"DeviceCodeSeveritySchema",{enumerable:!0,get:function(){return nv}}),Object.defineProperty(i,"DeviceConfig",{enumerable:!0,get:function(){return sk}}),Object.defineProperty(i,"DeviceDiscoveryStatusSchema",{enumerable:!0,get:function(){return Io}}),Object.defineProperty(i,"DeviceExportExposeInputSchema",{enumerable:!0,get:function(){return Vo}}),Object.defineProperty(i,"DeviceExportStatusSchema",{enumerable:!0,get:function(){return _o}}),Object.defineProperty(i,"DeviceExportUnexposeInputSchema",{enumerable:!0,get:function(){return Ho}}),Object.defineProperty(i,"DeviceFeature",{enumerable:!0,get:function(){return m.S}}),Object.defineProperty(i,"DeviceInfoSchema",{enumerable:!0,get:function(){return as}}),Object.defineProperty(i,"DeviceNetworkStatsSchema",{enumerable:!0,get:function(){return Hv}}),Object.defineProperty(i,"DeviceRole",{enumerable:!0,get:function(){return m.C}}),Object.defineProperty(i,"DeviceRuntimeState",{enumerable:!0,get:function(){return ck}}),Object.defineProperty(i,"DeviceSelectorSchema",{enumerable:!0,get:function(){return du}}),Object.defineProperty(i,"DeviceStatusSchema",{enumerable:!0,get:function(){return Qf}}),Object.defineProperty(i,"DeviceType",{enumerable:!0,get:function(){return m.w}}),Object.defineProperty(i,"DiscoveredChildDeviceSchema",{enumerable:!0,get:function(){return So}}),Object.defineProperty(i,"DiscoveredChildStatusSchema",{enumerable:!0,get:function(){return ho}}),Object.defineProperty(i,"DiscoveredDeviceSchema",{enumerable:!0,get:function(){return Wo}}),Object.defineProperty(i,"DiscoveredTargetSchema",{enumerable:!0,get:function(){return dd}}),Object.defineProperty(i,"DisposerChain",{enumerable:!0,get:function(){return m.gt}}),Object.defineProperty(i,"DoorbellPressEventSchema",{enumerable:!0,get:function(){return ny}}),Object.defineProperty(i,"DoorbellStatusSchema",{enumerable:!0,get:function(){return ty}}),Object.defineProperty(i,"EVENTFUL_CAP_NAMES",{enumerable:!0,get:function(){return Zb}}),Object.defineProperty(i,"EVENT_KIND_BY_CAP",{enumerable:!0,get:function(){return Gb}}),Object.defineProperty(i,"EVENT_PAD_MS",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(i,"EVENT_TAXONOMY",{enumerable:!0,get:function(){return Ed}}),Object.defineProperty(i,"EXPORT_DENSE_MAX_RANGES",{enumerable:!0,get:function(){return XS}}),Object.defineProperty(i,"EXPRESSION_BUILTINS",{enumerable:!0,get:function(){return fn}}),Object.defineProperty(i,"EXPRESSION_BUILTIN_NAMES",{enumerable:!0,get:function(){return yn}}),Object.defineProperty(i,"EXPRESSION_COMPILE_CACHE_CAPACITY",{enumerable:!0,get:function(){return kn}}),Object.defineProperty(i,"EXPRESSION_IDENTIFIER_RE",{enumerable:!0,get:function(){return Pn}}),Object.defineProperty(i,"EXPRESSION_INJECTED_NOW",{enumerable:!0,get:function(){return ta}}),Object.defineProperty(i,"EgressEncodeSchema",{enumerable:!0,get:function(){return hi}}),Object.defineProperty(i,"EgressRateControlSchema",{enumerable:!0,get:function(){return Si}}),Object.defineProperty(i,"EgressTranscodeRequestSchema",{enumerable:!0,get:function(){return Ii}}),Object.defineProperty(i,"EgressTranscodeSchema",{enumerable:!0,get:function(){return ji}}),Object.defineProperty(i,"ElementConfigStore",{enumerable:!0,get:function(){return iO}}),Object.defineProperty(i,"EmbeddingInfoSchema",{enumerable:!0,get:function(){return fs}}),Object.defineProperty(i,"EmbeddingResultSchema",{enumerable:!0,get:function(){return zs}}),Object.defineProperty(i,"EncodeProfileSchema",{enumerable:!0,get:function(){return j}}),Object.defineProperty(i,"EncodedPacketSchema",{enumerable:!0,get:function(){return m.$}}),Object.defineProperty(i,"EnrichedWidgetMetadataSchema",{enumerable:!0,get:function(){return Za}}),Object.defineProperty(i,"EnumSensorDateTimeFormatSchema",{enumerable:!0,get:function(){return ry}}),Object.defineProperty(i,"EnumSensorStatusSchema",{enumerable:!0,get:function(){return iy}}),Object.defineProperty(i,"EventCategory",{enumerable:!0,get:function(){return u.t}}),Object.defineProperty(i,"EventEmitterStatusSchema",{enumerable:!0,get:function(){return cy}}),Object.defineProperty(i,"EventFireSchema",{enumerable:!0,get:function(){return sy}}),Object.defineProperty(i,"EventItemSchema",{enumerable:!0,get:function(){return ly}}),Object.defineProperty(i,"EventKindCategorySchema",{enumerable:!0,get:function(){return Su}}),Object.defineProperty(i,"EventKindDescriptorSchema",{enumerable:!0,get:function(){return ju}}),Object.defineProperty(i,"EventKindIconSchema",{enumerable:!0,get:function(){return hu}}),Object.defineProperty(i,"EventKindSchema",{enumerable:!0,get:function(){return yu}}),Object.defineProperty(i,"EventKindsForDeviceSchema",{enumerable:!0,get:function(){return ku}}),Object.defineProperty(i,"EventMediaArtifactSchema",{enumerable:!0,get:function(){return ri}}),Object.defineProperty(i,"EventMediaCoverageSchema",{enumerable:!0,get:function(){return ii}}),Object.defineProperty(i,"EventMediaKindSchema",{enumerable:!0,get:function(){return ai}}),Object.defineProperty(i,"EventMediaProductionSchema",{enumerable:!0,get:function(){return oi}}),Object.defineProperty(i,"EventSourceType",{enumerable:!0,get:function(){return b.EventSourceType}}),Object.defineProperty(i,"ExportBytesSchema",{enumerable:!0,get:function(){return oI}}),Object.defineProperty(i,"ExportDenseRangeSchema",{enumerable:!0,get:function(){return JS}}),Object.defineProperty(i,"ExportDenseSchema",{enumerable:!0,get:function(){return QS}}),Object.defineProperty(i,"ExportDownloadSchema",{enumerable:!0,get:function(){return rI}}),Object.defineProperty(i,"ExportOptionsSchema",{enumerable:!0,get:function(){return tI}}),Object.defineProperty(i,"ExportRecordSchema",{enumerable:!0,get:function(){return aI}}),Object.defineProperty(i,"ExportSetupFieldSchema",{enumerable:!0,get:function(){return Bo}}),Object.defineProperty(i,"ExportSetupSchema",{enumerable:!0,get:function(){return Lo}}),Object.defineProperty(i,"ExportSpeedSchema",{enumerable:!0,get:function(){return YS}}),Object.defineProperty(i,"ExportStateSchema",{enumerable:!0,get:function(){return nI}}),Object.defineProperty(i,"ExportTimelapseSchema",{enumerable:!0,get:function(){return eI}}),Object.defineProperty(i,"ExposedDeviceSchema",{enumerable:!0,get:function(){return Uo}}),Object.defineProperty(i,"ExposureModeSchema",{enumerable:!0,get:function(){return Dy}}),Object.defineProperty(i,"ExpressionBindingSourceSchema",{enumerable:!0,get:function(){return ca}}),Object.defineProperty(i,"ExpressionEvalError",{enumerable:!0,get:function(){return ln}}),Object.defineProperty(i,"ExpressionFieldBindingSchema",{enumerable:!0,get:function(){return ia}}),Object.defineProperty(i,"ExpressionGlobalBindingSchema",{enumerable:!0,get:function(){return sa}}),Object.defineProperty(i,"ExpressionLiteralBindingSchema",{enumerable:!0,get:function(){return oa}}),Object.defineProperty(i,"ExpressionParseError",{enumerable:!0,get:function(){return dn}}),Object.defineProperty(i,"ExpressionSourceSchema",{enumerable:!0,get:function(){return da}}),Object.defineProperty(i,"FanControlStatusSchema",{enumerable:!0,get:function(){return vy}}),Object.defineProperty(i,"FanDirectionSchema",{enumerable:!0,get:function(){return yy}}),Object.defineProperty(i,"FeatureManifestSchema",{enumerable:!0,get:function(){return XI}}),Object.defineProperty(i,"FeatureProbeStatusSchema",{enumerable:!0,get:function(){return Sy}}),Object.defineProperty(i,"FloodStatusSchema",{enumerable:!0,get:function(){return jy}}),Object.defineProperty(i,"Fmp4BoxSplitter",{enumerable:!0,get:function(){return p.n}}),Object.defineProperty(i,"FrameHandleFormatSchema",{enumerable:!0,get:function(){return m.et}}),Object.defineProperty(i,"FrameHandleSchema",{enumerable:!0,get:function(){return m.tt}}),Object.defineProperty(i,"FrameInputSchema",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(i,"GasStatusSchema",{enumerable:!0,get:function(){return Py}}),Object.defineProperty(i,"GetStreamWithCodecInputSchema",{enumerable:!0,get:function(){return yi}}),Object.defineProperty(i,"GlobalMetricsSchema",{enumerable:!0,get:function(){return vb}}),Object.defineProperty(i,"HAP_AUDIO_BASE",{enumerable:!0,get:function(){return x}}),Object.defineProperty(i,"HAP_AUDIO_BITRATE_KBPS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(i,"HAP_AUDIO_VBV_KBITS",{enumerable:!0,get:function(){return T}}),Object.defineProperty(i,"HAP_KEYFRAME_INTERVAL_SEC",{enumerable:!0,get:function(){return D}}),Object.defineProperty(i,"HF_BASE_URL",{enumerable:!0,get:function(){return nk}}),Object.defineProperty(i,"HF_REPO",{enumerable:!0,get:function(){return tk}}),Object.defineProperty(i,"HWACCEL_OPTIONS",{enumerable:!0,get:function(){return co}}),Object.defineProperty(i,"HealthStatusSchema",{enumerable:!0,get:function(){return QI}}),Object.defineProperty(i,"HfModelResolutionSchema",{enumerable:!0,get:function(){return Gs}}),Object.defineProperty(i,"HistoryPointSchema",{enumerable:!0,get:function(){return Kj}}),Object.defineProperty(i,"HistoryResolutionEnum",{enumerable:!0,get:function(){return Hj}}),Object.defineProperty(i,"HumidifierStatusSchema",{enumerable:!0,get:function(){return wy}}),Object.defineProperty(i,"HumiditySensorStatusSchema",{enumerable:!0,get:function(){return Cy}}),Object.defineProperty(i,"HvacModeSchema",{enumerable:!0,get:function(){return hf}}),Object.defineProperty(i,"ImageContractSchema",{enumerable:!0,get:function(){return eg}}),Object.defineProperty(i,"ImageContractStateSchema",{enumerable:!0,get:function(){return Qb}}),Object.defineProperty(i,"ImageRotateSchema",{enumerable:!0,get:function(){return xy}}),Object.defineProperty(i,"ImageSettingsOptionsSchema",{enumerable:!0,get:function(){return Ly}}),Object.defineProperty(i,"ImageSettingsPatchSchema",{enumerable:!0,get:function(){return _y}}),Object.defineProperty(i,"ImageSettingsStatusSchema",{enumerable:!0,get:function(){return By}}),Object.defineProperty(i,"ImageStatusSchema",{enumerable:!0,get:function(){return Ny}}),Object.defineProperty(i,"IngestOwnerSchema",{enumerable:!0,get:function(){return Sb}}),Object.defineProperty(i,"InstalledPackageSchema",{enumerable:!0,get:function(){return xz}}),Object.defineProperty(i,"IntegrationLiteSchema",{enumerable:!0,get:function(){return Vy}}),Object.defineProperty(i,"IntegrationWithStateSchema",{enumerable:!0,get:function(){return Uy}}),Object.defineProperty(i,"IntercomAbilitySchema",{enumerable:!0,get:function(){return Jy}}),Object.defineProperty(i,"IntercomStatusSchema",{enumerable:!0,get:function(){return Xy}}),Object.defineProperty(i,"KNOWN_CAP_NAMES",{enumerable:!0,get:function(){return bP}}),Object.defineProperty(i,"KeyEventSchema",{enumerable:!0,get:function(){return vm}}),Object.defineProperty(i,"LOG_LEVEL_RANK",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(i,"LabelAttributionSchema",{enumerable:!0,get:function(){return Bu}}),Object.defineProperty(i,"LabelDefinitionSchema",{enumerable:!0,get:function(){return Rt}}),Object.defineProperty(i,"LabelTierSchema",{enumerable:!0,get:function(){return Fu}}),Object.defineProperty(i,"LawnMowerActivitySchema",{enumerable:!0,get:function(){return tv}}),Object.defineProperty(i,"LawnMowerControlStatusSchema",{enumerable:!0,get:function(){return av}}),Object.defineProperty(i,"LinkedDeviceSchema",{enumerable:!0,get:function(){return os}}),Object.defineProperty(i,"LinkedDevicesModeSchema",{enumerable:!0,get:function(){return is}}),Object.defineProperty(i,"LlmDefaultSchema",{enumerable:!0,get:function(){return $s}}),Object.defineProperty(i,"LlmDefaultSelectorSchema",{enumerable:!0,get:function(){return Hs}}),Object.defineProperty(i,"LlmDownloadProgressSchema",{enumerable:!0,get:function(){return Ts}}),Object.defineProperty(i,"LlmErrorCodeSchema",{enumerable:!0,get:function(){return js}}),Object.defineProperty(i,"LlmGenerateBaseInputSchema",{enumerable:!0,get:function(){return As}}),Object.defineProperty(i,"LlmGenerateErrSchema",{enumerable:!0,get:function(){return Ps}}),Object.defineProperty(i,"LlmGenerateOkSchema",{enumerable:!0,get:function(){return ks}}),Object.defineProperty(i,"LlmGenerateResultSchema",{enumerable:!0,get:function(){return Ms}}),Object.defineProperty(i,"LlmImageSchema",{enumerable:!0,get:function(){return ws}}),Object.defineProperty(i,"LlmNodeModelSchema",{enumerable:!0,get:function(){return Rs}}),Object.defineProperty(i,"LlmProfileKindDescriptorSchema",{enumerable:!0,get:function(){return Vs}}),Object.defineProperty(i,"LlmProfileKindSchema",{enumerable:!0,get:function(){return _s}}),Object.defineProperty(i,"LlmProfileSchema",{enumerable:!0,get:function(){return qs}}),Object.defineProperty(i,"LlmRetryPolicySchema",{enumerable:!0,get:function(){return Os}}),Object.defineProperty(i,"LlmRuntimeCompleteInputSchema",{enumerable:!0,get:function(){return Bs}}),Object.defineProperty(i,"LlmRuntimeDiskUsageSchema",{enumerable:!0,get:function(){return Fs}}),Object.defineProperty(i,"LlmRuntimeNodeSchema",{enumerable:!0,get:function(){return Zs}}),Object.defineProperty(i,"LlmRuntimeStatusSchema",{enumerable:!0,get:function(){return Ds}}),Object.defineProperty(i,"LlmTimeoutDefaults",{enumerable:!0,get:function(){return Cs}}),Object.defineProperty(i,"LlmUsageRollupSchema",{enumerable:!0,get:function(){return Ks}}),Object.defineProperty(i,"LlmUsageSchema",{enumerable:!0,get:function(){return Is}}),Object.defineProperty(i,"LocateSegmentResultSchema",{enumerable:!0,get:function(){return KS}}),Object.defineProperty(i,"LocationStatSchema",{enumerable:!0,get:function(){return Nr}}),Object.defineProperty(i,"LockControlStatusSchema",{enumerable:!0,get:function(){return gv}}),Object.defineProperty(i,"LockStateSchema",{enumerable:!0,get:function(){return bv}}),Object.defineProperty(i,"LogEntrySchema",{enumerable:!0,get:function(){return ec}}),Object.defineProperty(i,"LogLevelSchema",{enumerable:!0,get:function(){return Qs}}),Object.defineProperty(i,"LogStreamEntrySchema",{enumerable:!0,get:function(){return Kz}}),Object.defineProperty(i,"LoginMethodContributionSchema",{enumerable:!0,get:function(){return oc}}),Object.defineProperty(i,"LoginStageEnum",{enumerable:!0,get:function(){return nc}}),Object.defineProperty(i,"MACRO_LABELS",{enumerable:!0,get:function(){return gd}}),Object.defineProperty(i,"MAX_CONDITION_DEPTH",{enumerable:!0,get:function(){return la}}),Object.defineProperty(i,"MAX_CONDITION_LEAVES",{enumerable:!0,get:function(){return ua}}),Object.defineProperty(i,"MAX_EXPRESSION_AST_NODES",{enumerable:!0,get:function(){return hn}}),Object.defineProperty(i,"MAX_EXPRESSION_BINDINGS",{enumerable:!0,get:function(){return In}}),Object.defineProperty(i,"MAX_EXPRESSION_CALL_ARGS",{enumerable:!0,get:function(){return jn}}),Object.defineProperty(i,"MAX_EXPRESSION_EVAL_STEPS",{enumerable:!0,get:function(){return Sn}}),Object.defineProperty(i,"MAX_EXPRESSION_SOURCE_LENGTH",{enumerable:!0,get:function(){return vn}}),Object.defineProperty(i,"METHOD_ACCESS_MAP",{enumerable:!0,get:function(){return pP}}),Object.defineProperty(i,"METHOD_DEVICE_SELECTORS",{enumerable:!0,get:function(){return fP}}),Object.defineProperty(i,"MODEL_FORMATS",{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(i,"MOTION_TRIGGER_FEATURE",{enumerable:!0,get:function(){return Sk}}),Object.defineProperty(i,"ManagedModelCatalogEntrySchema",{enumerable:!0,get:function(){return Ws}}),Object.defineProperty(i,"ManagedModelExtraFileSchema",{enumerable:!0,get:function(){return Ns}}),Object.defineProperty(i,"ManagedModelRefSchema",{enumerable:!0,get:function(){return Es}}),Object.defineProperty(i,"ManagedRuntimeConfigSchema",{enumerable:!0,get:function(){return xs}}),Object.defineProperty(i,"MaskGridDimsSchema",{enumerable:!0,get:function(){return Qd}}),Object.defineProperty(i,"MaskGridShapeSchema",{enumerable:!0,get:function(){return Gd}}),Object.defineProperty(i,"MaskLineShapeSchema",{enumerable:!0,get:function(){return Zd}}),Object.defineProperty(i,"MaskPointSchema",{enumerable:!0,get:function(){return $d}}),Object.defineProperty(i,"MaskPolygonShapeSchema",{enumerable:!0,get:function(){return Wd}}),Object.defineProperty(i,"MaskPolygonVerticesSchema",{enumerable:!0,get:function(){return Xd}}),Object.defineProperty(i,"MaskRectShapeSchema",{enumerable:!0,get:function(){return Kd}}),Object.defineProperty(i,"MaskShapeKindSchema",{enumerable:!0,get:function(){return Jd}}),Object.defineProperty(i,"MaskShapeSchema",{enumerable:!0,get:function(){return Yd}}),Object.defineProperty(i,"MediaFileInfoSchema",{enumerable:!0,get:function(){return Xu}}),Object.defineProperty(i,"MediaFileSchema",{enumerable:!0,get:function(){return Ju}}),Object.defineProperty(i,"MediaPlayerRepeatSchema",{enumerable:!0,get:function(){return yv}}),Object.defineProperty(i,"MediaPlayerStateSchema",{enumerable:!0,get:function(){return fv}}),Object.defineProperty(i,"MediaPlayerStatusSchema",{enumerable:!0,get:function(){return hv}}),Object.defineProperty(i,"MeshPeerSchema",{enumerable:!0,get:function(){return jv}}),Object.defineProperty(i,"MeshStatusSchema",{enumerable:!0,get:function(){return kv}}),Object.defineProperty(i,"MethodAccessSchema",{enumerable:!0,get:function(){return iu}}),Object.defineProperty(i,"ModelCatalogEntrySchema",{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(i,"ModelConvertInputSchema",{enumerable:!0,get:function(){return wc}}),Object.defineProperty(i,"ModelConvertMetadataSchema",{enumerable:!0,get:function(){return en}}),Object.defineProperty(i,"ModelDistributeInputSchema",{enumerable:!0,get:function(){return Cc}}),Object.defineProperty(i,"ModelDistributeResultSchema",{enumerable:!0,get:function(){return Ac}}),Object.defineProperty(i,"ModelExtraFileSchema",{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(i,"ModelFormatEntrySchema",{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(i,"ModelFormatsSchema",{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(i,"ModelSubstitutionSchema",{enumerable:!0,get:function(){return Zm}}),Object.defineProperty(i,"ModelVariantGroupSchema",{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(i,"MotionAnalysisResultSchema",{enumerable:!0,get:function(){return xc}}),Object.defineProperty(i,"MotionEventSchema",{enumerable:!0,get:function(){return Hu}}),Object.defineProperty(i,"MotionOnMotionChangedDataSchema",{enumerable:!0,get:function(){return wv}}),Object.defineProperty(i,"MotionRegionSchema",{enumerable:!0,get:function(){return Ec}}),Object.defineProperty(i,"MotionSourceEnum",{enumerable:!0,get:function(){return eb}}),Object.defineProperty(i,"MotionSourcesSchema",{enumerable:!0,get:function(){return tb}}),Object.defineProperty(i,"MotionStatusSchema",{enumerable:!0,get:function(){return Mv}}),Object.defineProperty(i,"MotionTriggerRuntimeStateSchema",{enumerable:!0,get:function(){return Av}}),Object.defineProperty(i,"MotionTriggerStatusSchema",{enumerable:!0,get:function(){return Cv}}),Object.defineProperty(i,"MotionZoneOptionsSchema",{enumerable:!0,get:function(){return Tv}}),Object.defineProperty(i,"MotionZonePatchSchema",{enumerable:!0,get:function(){return Dv}}),Object.defineProperty(i,"MotionZoneRegionSchema",{enumerable:!0,get:function(){return Ev}}),Object.defineProperty(i,"MotionZoneStatusSchema",{enumerable:!0,get:function(){return xv}}),Object.defineProperty(i,"MqttBrokerStatusSchema",{enumerable:!0,get:function(){return $c}}),Object.defineProperty(i,"MutationFilterSchema",{enumerable:!0,get:function(){return to}}),Object.defineProperty(i,"NATIVE_LEASE_ACTIVITY_FIELD",{enumerable:!0,get:function(){return bw}}),Object.defineProperty(i,"NATIVE_LEASE_ACTIVITY_KEY",{enumerable:!0,get:function(){return ow}}),Object.defineProperty(i,"NATIVE_LEASE_ADMISSION_FIELD",{enumerable:!0,get:function(){return zw}}),Object.defineProperty(i,"NATIVE_LEASE_ADMISSION_KEY",{enumerable:!0,get:function(){return sw}}),Object.defineProperty(i,"NATIVE_LEASE_BUDGET_FIELD",{enumerable:!0,get:function(){return pw}}),Object.defineProperty(i,"NATIVE_LEASE_BUDGET_KEY",{enumerable:!0,get:function(){return iw}}),Object.defineProperty(i,"NATIVE_LEASE_HOLD_FIELD",{enumerable:!0,get:function(){return mw}}),Object.defineProperty(i,"NATIVE_LEASE_HOLD_KEY",{enumerable:!0,get:function(){return rw}}),Object.defineProperty(i,"NATIVE_LEASE_SECTION_ID",{enumerable:!0,get:function(){return aw}}),Object.defineProperty(i,"NATIVE_LEASE_TILE_BUDGET_FIELD",{enumerable:!0,get:function(){return gw}}),Object.defineProperty(i,"NATIVE_LEASE_TILE_BUDGET_KEY",{enumerable:!0,get:function(){return cw}}),Object.defineProperty(i,"NC_ALARM_SYSTEM_EVENT_KINDS",{enumerable:!0,get:function(){return rl}}),Object.defineProperty(i,"NC_AUDIO_DBFS_FLOOR",{enumerable:!0,get:function(){return pl}}),Object.defineProperty(i,"NC_AUDIO_DB_MAX",{enumerable:!0,get:function(){return EP}}),Object.defineProperty(i,"NC_AUDIO_DB_MIN",{enumerable:!0,get:function(){return NP}}),Object.defineProperty(i,"NC_AUDIO_DB_OFFERED",{enumerable:!0,get:function(){return TP}}),Object.defineProperty(i,"NC_AUDIO_DB_STEP",{enumerable:!0,get:function(){return xP}}),Object.defineProperty(i,"NC_AUDIO_DEFAULTS",{enumerable:!0,get:function(){return LP}}),Object.defineProperty(i,"NC_AUDIO_HIT_PERCENT_MAX",{enumerable:!0,get:function(){return RP}}),Object.defineProperty(i,"NC_AUDIO_HIT_PERCENT_MIN",{enumerable:!0,get:function(){return DP}}),Object.defineProperty(i,"NC_AUDIO_SAMPLING_MAX_SEC",{enumerable:!0,get:function(){return BP}}),Object.defineProperty(i,"NC_AUDIO_SAMPLING_MIN_SEC",{enumerable:!0,get:function(){return FP}}),Object.defineProperty(i,"NC_AUTHORABLE_SYSTEM_EVENT_KINDS",{enumerable:!0,get:function(){return al}}),Object.defineProperty(i,"NC_BASE_CONDITION_KEYS",{enumerable:!0,get:function(){return iM}}),Object.defineProperty(i,"NC_CONDITION_CATALOG",{enumerable:!0,get:function(){return _l}}),Object.defineProperty(i,"NC_CONFIRM_DEFAULT_MAX_IMAGE_PX",{enumerable:!0,get:function(){return El}}),Object.defineProperty(i,"NC_CONFIRM_DEFAULT_TIMEOUT_MS",{enumerable:!0,get:function(){return Nl}}),Object.defineProperty(i,"NC_CONFIRM_MAX_TIMEOUT_MS",{enumerable:!0,get:function(){return Al}}),Object.defineProperty(i,"NC_CONFIRM_MIN_TIMEOUT_MS",{enumerable:!0,get:function(){return Cl}}),Object.defineProperty(i,"NC_DEFAULT_SNOOZE_MINUTES",{enumerable:!0,get:function(){return cl}}),Object.defineProperty(i,"NC_HISTORY_LIMIT_DEFAULT",{enumerable:!0,get:function(){return $l}}),Object.defineProperty(i,"NC_HISTORY_LIMIT_MAX",{enumerable:!0,get:function(){return Kl}}),Object.defineProperty(i,"NC_MAX_PER_TRACK_IMMEDIATE",{enumerable:!0,get:function(){return ol}}),Object.defineProperty(i,"NC_SNOOZE_MAX_MINUTES",{enumerable:!0,get:function(){return sl}}),Object.defineProperty(i,"NC_TAXONOMY",{enumerable:!0,get:function(){return _d}}),Object.defineProperty(i,"NativeCropBboxSchema",{enumerable:!0,get:function(){return hp}}),Object.defineProperty(i,"NativeCropRefSchema",{enumerable:!0,get:function(){return xm}}),Object.defineProperty(i,"NativeCropResultSchema",{enumerable:!0,get:function(){return Sp}}),Object.defineProperty(i,"NativeDetectionSchema",{enumerable:!0,get:function(){return Bv}}),Object.defineProperty(i,"NativeLeaseAdmissionSchema",{enumerable:!0,get:function(){return dw}}),Object.defineProperty(i,"NativeLeaseSettingsSchema",{enumerable:!0,get:function(){return lw}}),Object.defineProperty(i,"NativeObjectClassEnum",{enumerable:!0,get:function(){return Fv}}),Object.defineProperty(i,"NativeObjectDetectionRuntimeStateSchema",{enumerable:!0,get:function(){return _v}}),Object.defineProperty(i,"NativeObjectDetectionStatusSchema",{enumerable:!0,get:function(){return Lv}}),Object.defineProperty(i,"NcAlarmConfigSchema",{enumerable:!0,get:function(){return au}}),Object.defineProperty(i,"NcAlarmModeCoverageSchema",{enumerable:!0,get:function(){return nu}}),Object.defineProperty(i,"NcAlarmSettingsPatchSchema",{enumerable:!0,get:function(){return Ql}}),Object.defineProperty(i,"NcAlarmSettingsSchema",{enumerable:!0,get:function(){return Xl}}),Object.defineProperty(i,"NcAlarmSkipReasonSchema",{enumerable:!0,get:function(){return eu}}),Object.defineProperty(i,"NcAlarmSkippedDeviceSchema",{enumerable:!0,get:function(){return tu}}),Object.defineProperty(i,"NcAudioConditionSchema",{enumerable:!0,get:function(){return bl}}),Object.defineProperty(i,"NcConditionDescriptorSchema",{enumerable:!0,get:function(){return Ll}}),Object.defineProperty(i,"NcConditionsSchema",{enumerable:!0,get:function(){return jl}}),Object.defineProperty(i,"NcConfirmExpectSchema",{enumerable:!0,get:function(){return xl}}),Object.defineProperty(i,"NcConfirmSchema",{enumerable:!0,get:function(){return Tl}}),Object.defineProperty(i,"NcCrossingSchema",{enumerable:!0,get:function(){return gl}}),Object.defineProperty(i,"NcDeliverySchema",{enumerable:!0,get:function(){return el}}),Object.defineProperty(i,"NcDeviceStateConditionSchema",{enumerable:!0,get:function(){return Sl}}),Object.defineProperty(i,"NcHistoryEntrySchema",{enumerable:!0,get:function(){return Hl}}),Object.defineProperty(i,"NcHistoryFilterSchema",{enumerable:!0,get:function(){return Wl}}),Object.defineProperty(i,"NcHistoryRecordKindSchema",{enumerable:!0,get:function(){return Ul}}),Object.defineProperty(i,"NcHistoryStatusSchema",{enumerable:!0,get:function(){return ql}}),Object.defineProperty(i,"NcHistorySubjectSchema",{enumerable:!0,get:function(){return Vl}}),Object.defineProperty(i,"NcMediaFrameSchema",{enumerable:!0,get:function(){return Pl}}),Object.defineProperty(i,"NcMediaPolicySchema",{enumerable:!0,get:function(){return Ml}}),Object.defineProperty(i,"NcOccupancyConditionSchema",{enumerable:!0,get:function(){return ml}}),Object.defineProperty(i,"NcPlateMatcherSchema",{enumerable:!0,get:function(){return ul}}),Object.defineProperty(i,"NcRuleActionSchema",{enumerable:!0,get:function(){return fl}}),Object.defineProperty(i,"NcRuleActionSequenceSchema",{enumerable:!0,get:function(){return yl}}),Object.defineProperty(i,"NcRuleActionsSchema",{enumerable:!0,get:function(){return hl}}),Object.defineProperty(i,"NcRuleInputSchema",{enumerable:!0,get:function(){return Dl}}),Object.defineProperty(i,"NcRuleNotificationButtonSchema",{enumerable:!0,get:function(){return vl}}),Object.defineProperty(i,"NcRulePatchSchema",{enumerable:!0,get:function(){return Rl}}),Object.defineProperty(i,"NcRuleSchema",{enumerable:!0,get:function(){return Fl}}),Object.defineProperty(i,"NcRuleTargetSchema",{enumerable:!0,get:function(){return kl}}),Object.defineProperty(i,"NcSceneConditionSchema",{enumerable:!0,get:function(){return Il}}),Object.defineProperty(i,"NcScheduleSchema",{enumerable:!0,get:function(){return ll}}),Object.defineProperty(i,"NcScheduleWindowSchema",{enumerable:!0,get:function(){return dl}}),Object.defineProperty(i,"NcSnoozeInputSchema",{enumerable:!0,get:function(){return Zl}}),Object.defineProperty(i,"NcSnoozeSchema",{enumerable:!0,get:function(){return Yl}}),Object.defineProperty(i,"NcSnoozeScopeSchema",{enumerable:!0,get:function(){return Gl}}),Object.defineProperty(i,"NcSnoozeSuppressedSchema",{enumerable:!0,get:function(){return Jl}}),Object.defineProperty(i,"NcSystemEventConditionSchema",{enumerable:!0,get:function(){return il}}),Object.defineProperty(i,"NcSystemEventKindSchema",{enumerable:!0,get:function(){return tl}}),Object.defineProperty(i,"NcTaxonomyEntrySchema",{enumerable:!0,get:function(){return Rd}}),Object.defineProperty(i,"NcTaxonomySchema",{enumerable:!0,get:function(){return Fd}}),Object.defineProperty(i,"NcTestResultSchema",{enumerable:!0,get:function(){return Bl}}),Object.defineProperty(i,"NcThrottleGranularitySchema",{enumerable:!0,get:function(){return wl}}),Object.defineProperty(i,"NcThrottleSchema",{enumerable:!0,get:function(){return Ol}}),Object.defineProperty(i,"NcZoneConditionSchema",{enumerable:!0,get:function(){return zl}}),Object.defineProperty(i,"NetworkAccessStatusSchema",{enumerable:!0,get:function(){return Gc}}),Object.defineProperty(i,"NetworkAddressSchema",{enumerable:!0,get:function(){return ej}}),Object.defineProperty(i,"NetworkEndpointSchema",{enumerable:!0,get:function(){return Wc}}),Object.defineProperty(i,"NotificationActionIconSchema",{enumerable:!0,get:function(){return ed}}),Object.defineProperty(i,"NotificationActionSchema",{enumerable:!0,get:function(){return td}}),Object.defineProperty(i,"NotificationFormatSchema",{enumerable:!0,get:function(){return Qc}}),Object.defineProperty(i,"NotificationSchema",{enumerable:!0,get:function(){return nd}}),Object.defineProperty(i,"NotifierStatusSchema",{enumerable:!0,get:function(){return uh}}),Object.defineProperty(i,"NumericSensorStatusSchema",{enumerable:!0,get:function(){return gh}}),Object.defineProperty(i,"OPS_LOG_DEFAULT_LIMIT",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(i,"OPS_LOG_RING_DEFAULT_MAX",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(i,"OauthIntegrationDescriptorSchema",{enumerable:!0,get:function(){return gu}}),Object.defineProperty(i,"ObjectEventSchema",{enumerable:!0,get:function(){return Gu}}),Object.defineProperty(i,"OpsLogDomainSchema",{enumerable:!0,get:function(){return De}}),Object.defineProperty(i,"OpsLogEntrySchema",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(i,"OpsLogOpSchema",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(i,"OpsLogQueryInputSchema",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(i,"OpsLogReasonSchema",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(i,"OrchestratorMetricsSchema",{enumerable:!0,get:function(){return pp}}),Object.defineProperty(i,"OsdOverlayKindEnum",{enumerable:!0,get:function(){return fh}}),Object.defineProperty(i,"OsdOverlayPatchSchema",{enumerable:!0,get:function(){return Sh}}),Object.defineProperty(i,"OsdOverlaySchema",{enumerable:!0,get:function(){return vh}}),Object.defineProperty(i,"OsdPositionEnum",{enumerable:!0,get:function(){return yh}}),Object.defineProperty(i,"OsdRenderOutcomeEnum",{enumerable:!0,get:function(){return Mh}}),Object.defineProperty(i,"OsdRenderResultSchema",{enumerable:!0,get:function(){return wh}}),Object.defineProperty(i,"OsdSlotBindingSchema",{enumerable:!0,get:function(){return kh}}),Object.defineProperty(i,"OsdSlotViewSchema",{enumerable:!0,get:function(){return Ph}}),Object.defineProperty(i,"OsdSourceOptionSchema",{enumerable:!0,get:function(){return Ch}}),Object.defineProperty(i,"OsdSourceSchema",{enumerable:!0,get:function(){return jh}}),Object.defineProperty(i,"OsdSourceValueTypeEnum",{enumerable:!0,get:function(){return Oh}}),Object.defineProperty(i,"OsdStatusSchema",{enumerable:!0,get:function(){return hh}}),Object.defineProperty(i,"PET_FEEDER_MANUAL_FEED_MAX",{enumerable:!0,get:function(){return Eh}}),Object.defineProperty(i,"PET_FEEDER_MANUAL_FEED_MIN",{enumerable:!0,get:function(){return Nh}}),Object.defineProperty(i,"PIPELINE_FLOW_CAPABILITY_NAMES",{enumerable:!0,get:function(){return Yj}}),Object.defineProperty(i,"PIPELINE_OWNER_CAPABILITY_NAMES",{enumerable:!0,get:function(){return Jj}}),Object.defineProperty(i,"PRIVACY_MASK_CAP_NAME",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(i,"PROVIDER_KIND_CAP_NAMES",{enumerable:!0,get:function(){return hP}}),Object.defineProperty(i,"PYTHON_SCRIPT",{enumerable:!0,get:function(){return hO}}),Object.defineProperty(i,"PackageUpdateSchema",{enumerable:!0,get:function(){return Tz}}),Object.defineProperty(i,"PackageVersionInfoSchema",{enumerable:!0,get:function(){return Dz}}),Object.defineProperty(i,"PasskeyLoginMethodSchema",{enumerable:!0,get:function(){return ic}}),Object.defineProperty(i,"PasskeySummarySchema",{enumerable:!0,get:function(){return Vg}}),Object.defineProperty(i,"PcmSampleFormatSchema",{enumerable:!0,get:function(){return zr}}),Object.defineProperty(i,"PerScopeBreakdownSchema",{enumerable:!0,get:function(){return _j}}),Object.defineProperty(i,"PetFeederStatusSchema",{enumerable:!0,get:function(){return Dh}}),Object.defineProperty(i,"PickStreamPreferencesSchema",{enumerable:!0,get:function(){return wi}}),Object.defineProperty(i,"PickStreamRequirementsSchema",{enumerable:!0,get:function(){return Mi}}),Object.defineProperty(i,"PickedCamStreamSchema",{enumerable:!0,get:function(){return Oi}}),Object.defineProperty(i,"PipelineAssignmentSchema",{enumerable:!0,get:function(){return fb}}),Object.defineProperty(i,"PipelineDefaultStepSchema",{enumerable:!0,get:function(){return Lm}}),Object.defineProperty(i,"PipelineEngineChoiceSchema",{enumerable:!0,get:function(){return Rm}}),Object.defineProperty(i,"PipelineRunResultBridge",{enumerable:!0,get:function(){return up}}),Object.defineProperty(i,"PipelineStepInputSchema",{enumerable:!0,get:function(){return Gm}}),Object.defineProperty(i,"PipelineValidationIssueSchema",{enumerable:!0,get:function(){return Ym}}),Object.defineProperty(i,"PipelineValidationResultSchema",{enumerable:!0,get:function(){return Jm}}),Object.defineProperty(i,"PlaceholderReasonSchema",{enumerable:!0,get:function(){return gi}}),Object.defineProperty(i,"PolygonPointSchema",{enumerable:!0,get:function(){return fp}}),Object.defineProperty(i,"PowerMeterStatusSchema",{enumerable:!0,get:function(){return oS}}),Object.defineProperty(i,"PresenceStatusSchema",{enumerable:!0,get:function(){return dS}}),Object.defineProperty(i,"PressureSensorStatusSchema",{enumerable:!0,get:function(){return uS}}),Object.defineProperty(i,"PrivacyMaskOptionsSchema",{enumerable:!0,get:function(){return zS}}),Object.defineProperty(i,"PrivacyMaskPatchSchema",{enumerable:!0,get:function(){return fS}}),Object.defineProperty(i,"PrivacyMaskRegionSchema",{enumerable:!0,get:function(){return bS}}),Object.defineProperty(i,"PrivacyMaskShapeSchema",{enumerable:!0,get:function(){return pS}}),Object.defineProperty(i,"PrivacyMaskStatusSchema",{enumerable:!0,get:function(){return gS}}),Object.defineProperty(i,"ProfileRtspEntrySchema",{enumerable:!0,get:function(){return m.nt}}),Object.defineProperty(i,"ProfileSlotSchema",{enumerable:!0,get:function(){return m.rt}}),Object.defineProperty(i,"ProfileSlotStatusSchema",{enumerable:!0,get:function(){return m.it}}),Object.defineProperty(i,"ProviderStatusSchema",{enumerable:!0,get:function(){return Ko}}),Object.defineProperty(i,"PtzAutotrackRuntimeStateSchema",{enumerable:!0,get:function(){return AS}}),Object.defineProperty(i,"PtzAutotrackSettingsSchema",{enumerable:!0,get:function(){return wS}}),Object.defineProperty(i,"PtzAutotrackStatusSchema",{enumerable:!0,get:function(){return CS}}),Object.defineProperty(i,"PtzAutotrackTargetOptionSchema",{enumerable:!0,get:function(){return OS}}),Object.defineProperty(i,"PtzMoveCommandSchema",{enumerable:!0,get:function(){return IS}}),Object.defineProperty(i,"PtzOptionsSchema",{enumerable:!0,get:function(){return kS}}),Object.defineProperty(i,"PtzPositionSchema",{enumerable:!0,get:function(){return SS}}),Object.defineProperty(i,"PtzPresetSchema",{enumerable:!0,get:function(){return hS}}),Object.defineProperty(i,"PtzStatusSchema",{enumerable:!0,get:function(){return jS}}),Object.defineProperty(i,"QueryFilterSchema",{enumerable:!0,get:function(){return eo}}),Object.defineProperty(i,"RATE_CONTROL_RELAXED",{enumerable:!0,get:function(){return C}}),Object.defineProperty(i,"RATE_CONTROL_TIGHT",{enumerable:!0,get:function(){return O}}),Object.defineProperty(i,"REACHABILITY_FAILURES_TO_OFFLINE",{enumerable:!0,get:function(){return Lk}}),Object.defineProperty(i,"REACHABILITY_POLL_INTERVAL_MS",{enumerable:!0,get:function(){return Bk}}),Object.defineProperty(i,"REACHABILITY_PROBE_TIMEOUT_MS",{enumerable:!0,get:function(){return _k}}),Object.defineProperty(i,"RECOGNITION_TYPES",{enumerable:!0,get:function(){return jt}}),Object.defineProperty(i,"RECORDING_EXPORT_MAX_READ_BYTES",{enumerable:!0,get:function(){return iI}}),Object.defineProperty(i,"RESERVED_BINDING_NAMES",{enumerable:!0,get:function(){return Mn}}),Object.defineProperty(i,"RESTORED_CAP_NAMES",{enumerable:!0,get:function(){return MP}}),Object.defineProperty(i,"RUNTIME_DEFAULTS",{enumerable:!0,get:function(){return ak}}),Object.defineProperty(i,"RUNTIME_STATE_POLICY",{enumerable:!0,get:function(){return IP}}),Object.defineProperty(i,"RUNTIME_TO_FORMAT",{enumerable:!0,get:function(){return vO}}),Object.defineProperty(i,"RawStateResultSchema",{enumerable:!0,get:function(){return m.v}}),Object.defineProperty(i,"ReadGopBytesResultSchema",{enumerable:!0,get:function(){return GS}}),Object.defineProperty(i,"ReadSegmentBytesResultSchema",{enumerable:!0,get:function(){return WS}}),Object.defineProperty(i,"ReadinessRegistry",{enumerable:!0,get:function(){return m.z}}),Object.defineProperty(i,"ReadinessTimeoutError",{enumerable:!0,get:function(){return m.B}}),Object.defineProperty(i,"RecentTracksPageSchema",{enumerable:!0,get:function(){return fm}}),Object.defineProperty(i,"RecentTracksQueryInput",{enumerable:!0,get:function(){return zm}}),Object.defineProperty(i,"RecordingAvailabilitySchema",{enumerable:!0,get:function(){return DS}}),Object.defineProperty(i,"RecordingBandModeSchema",{enumerable:!0,get:function(){return We}}),Object.defineProperty(i,"RecordingBandSchema",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(i,"RecordingBandTriggersSchema",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(i,"RecordingConfigSchema",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(i,"RecordingDaysSchema",{enumerable:!0,get:function(){return RS}}),Object.defineProperty(i,"RecordingDeviceUsageSchema",{enumerable:!0,get:function(){return BS}}),Object.defineProperty(i,"RecordingLocationUsageSchema",{enumerable:!0,get:function(){return LS}}),Object.defineProperty(i,"RecordingManifestSchema",{enumerable:!0,get:function(){return FS}}),Object.defineProperty(i,"RecordingRangeSchema",{enumerable:!0,get:function(){return TS}}),Object.defineProperty(i,"RecordingRebalanceInputSchema",{enumerable:!0,get:function(){return $S}}),Object.defineProperty(i,"RecordingRebalanceMoveSchema",{enumerable:!0,get:function(){return qS}}),Object.defineProperty(i,"RecordingRebalancePlanSchema",{enumerable:!0,get:function(){return HS}}),Object.defineProperty(i,"RecordingRebalanceSkipReasonSchema",{enumerable:!0,get:function(){return US}}),Object.defineProperty(i,"RecordingRebalanceSkipSchema",{enumerable:!0,get:function(){return VS}}),Object.defineProperty(i,"RecordingRetentionSchema",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(i,"RecordingStatusSchema",{enumerable:!0,get:function(){return xS}}),Object.defineProperty(i,"RecordingStorageModeSchema",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(i,"RecordingStorageUsageSchema",{enumerable:!0,get:function(){return _S}}),Object.defineProperty(i,"RecordingTriggersSchema",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(i,"RecordingWeekdaySchema",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(i,"RedirectLoginMethodSchema",{enumerable:!0,get:function(){return ac}}),Object.defineProperty(i,"RelocateFootageClassSchema",{enumerable:!0,get:function(){return ct}}),Object.defineProperty(i,"RelocateFootageInputSchema",{enumerable:!0,get:function(){return dt}}),Object.defineProperty(i,"RelocateJobSchema",{enumerable:!0,get:function(){return st}}),Object.defineProperty(i,"RelocateJobStateSchema",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(i,"RelocateMediaInputSchema",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(i,"RenderedAsSchema",{enumerable:!0,get:function(){return ld}}),Object.defineProperty(i,"ReportMotionInputSchema",{enumerable:!0,get:function(){return nb}}),Object.defineProperty(i,"RetrainAnnotationDraftSchema",{enumerable:!0,get:function(){return rm}}),Object.defineProperty(i,"RetrainAnnotationKindSchema",{enumerable:!0,get:function(){return em}}),Object.defineProperty(i,"RetrainAnnotationSchema",{enumerable:!0,get:function(){return am}}),Object.defineProperty(i,"RetrainAnnotationSourceSchema",{enumerable:!0,get:function(){return tm}}),Object.defineProperty(i,"RetrainAssistResultSchema",{enumerable:!0,get:function(){return mm}}),Object.defineProperty(i,"RetrainAssistSubjectSchema",{enumerable:!0,get:function(){return um}}),Object.defineProperty(i,"RetrainCopyRefusalSchema",{enumerable:!0,get:function(){return cm}}),Object.defineProperty(i,"RetrainFrameCandidateSchema",{enumerable:!0,get:function(){return om}}),Object.defineProperty(i,"RetrainFrameListSchema",{enumerable:!0,get:function(){return lm}}),Object.defineProperty(i,"RetrainFrameSchema",{enumerable:!0,get:function(){return sm}}),Object.defineProperty(i,"RetrainFrameSelectionSchema",{enumerable:!0,get:function(){return dm}}),Object.defineProperty(i,"RetrainMacroClassSchema",{enumerable:!0,get:function(){return Qu}}),Object.defineProperty(i,"RetrainStatusSchema",{enumerable:!0,get:function(){return Eu}}),Object.defineProperty(i,"RetrainTrackSchema",{enumerable:!0,get:function(){return im}}),Object.defineProperty(i,"RetrainTransitionResultSchema",{enumerable:!0,get:function(){return pm}}),Object.defineProperty(i,"RingBuffer",{enumerable:!0,get:function(){return pO}}),Object.defineProperty(i,"RtpSourceSchema",{enumerable:!0,get:function(){return vi}}),Object.defineProperty(i,"RtspRestreamEntrySchema",{enumerable:!0,get:function(){return si}}),Object.defineProperty(i,"RunnerCameraConfigSchema",{enumerable:!0,get:function(){return ib}}),Object.defineProperty(i,"RunnerCameraDeviceUIFields",{enumerable:!0,get:function(){return ob}}),Object.defineProperty(i,"RunnerFrameSourceSchema",{enumerable:!0,get:function(){return ab}}),Object.defineProperty(i,"RunnerInferenceDeviceSchema",{enumerable:!0,get:function(){return rb}}),Object.defineProperty(i,"RunnerLocalLoadSchema",{enumerable:!0,get:function(){return sb}}),Object.defineProperty(i,"RunnerLocalMetricsSchema",{enumerable:!0,get:function(){return cb}}),Object.defineProperty(i,"SCENE_CONDITIONS",{enumerable:!0,get:function(){return dI}}),Object.defineProperty(i,"SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX",{enumerable:!0,get:function(){return jI}}),Object.defineProperty(i,"SCENE_CONFIRM_DEFAULT_TIMEOUT_MS",{enumerable:!0,get:function(){return II}}),Object.defineProperty(i,"SCENE_DEFAULT_ANCHOR_THRESHOLD",{enumerable:!0,get:function(){return hI}}),Object.defineProperty(i,"SCENE_DEFAULT_CHECK_INTERVAL_SEC",{enumerable:!0,get:function(){return vI}}),Object.defineProperty(i,"SCENE_DEFAULT_OBSERVATION_SPACING_SEC",{enumerable:!0,get:function(){return yI}}),Object.defineProperty(i,"SCENE_DEFAULT_QUIET_SECONDS",{enumerable:!0,get:function(){return fI}}),Object.defineProperty(i,"SCENE_DEFAULT_UNCOVERED_POLICY",{enumerable:!0,get:function(){return SI}}),Object.defineProperty(i,"SCENE_DIVERGED",{enumerable:!0,get:function(){return uI}}),Object.defineProperty(i,"SCENE_RESET_RECAPTURES",{enumerable:!0,get:function(){return kI}}),Object.defineProperty(i,"SCOPE_PRESETS",{enumerable:!0,get:function(){return wP}}),Object.defineProperty(i,"SCRUB_THUMBNAIL_PRESETS",{enumerable:!0,get:function(){return et}}),Object.defineProperty(i,"SCRUB_THUMBNAIL_PRESET_LABELS",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(i,"SCRUB_THUMBNAIL_PRESET_ORDER",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(i,"SENSOR_FEATURES",{enumerable:!0,get:function(){return jk}}),Object.defineProperty(i,"SENSOR_MAP",{enumerable:!0,get:function(){return Pk}}),Object.defineProperty(i,"SOURCE_INFO_METADATA_KEY",{enumerable:!0,get:function(){return yo}}),Object.defineProperty(i,"STREAM_PROFILE_META",{enumerable:!0,get:function(){return KI}}),Object.defineProperty(i,"STREAM_QUALITY_LABELS",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(i,"SUB_DETECTION_TYPES",{enumerable:!0,get:function(){return It}}),Object.defineProperty(i,"SYSTEM_CAP_NAMES",{enumerable:!0,get:function(){return zP}}),Object.defineProperty(i,"SYSTEM_SCOPE_DEVICE_METHODS",{enumerable:!0,get:function(){return yP}}),Object.defineProperty(i,"SceneCheckSchema",{enumerable:!0,get:function(){return zI}}),Object.defineProperty(i,"SceneConditionSchema",{enumerable:!0,get:function(){return cI}}),Object.defineProperty(i,"SceneConfirmSchema",{enumerable:!0,get:function(){return PI}}),Object.defineProperty(i,"SceneMonitorSchema",{enumerable:!0,get:function(){return MI}}),Object.defineProperty(i,"SceneMonitorStateSchema",{enumerable:!0,get:function(){return gI}}),Object.defineProperty(i,"SceneMonitorStatusSchema",{enumerable:!0,get:function(){return wI}}),Object.defineProperty(i,"SceneReferenceSchema",{enumerable:!0,get:function(){return bI}}),Object.defineProperty(i,"SceneUnavailableSchema",{enumerable:!0,get:function(){return pI}}),Object.defineProperty(i,"SceneUncoveredPolicySchema",{enumerable:!0,get:function(){return lI}}),Object.defineProperty(i,"SceneVerdictSchema",{enumerable:!0,get:function(){return mI}}),Object.defineProperty(i,"ScopedTokenSchema",{enumerable:!0,get:function(){return bu}}),Object.defineProperty(i,"ScopedTokenSummarySchema",{enumerable:!0,get:function(){return hj}}),Object.defineProperty(i,"ScoredObjectEventSchema",{enumerable:!0,get:function(){return Im}}),Object.defineProperty(i,"ScriptRunnerStatusSchema",{enumerable:!0,get:function(){return EI}}),Object.defineProperty(i,"ScrubThumbnailPresetSchema",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(i,"SearchResultSchema",{enumerable:!0,get:function(){return Rz}}),Object.defineProperty(i,"SendEmailInputSchema",{enumerable:!0,get:function(){return sg}}),Object.defineProperty(i,"SendEmailResultSchema",{enumerable:!0,get:function(){return cg}}),Object.defineProperty(i,"SendResultSchema",{enumerable:!0,get:function(){return ud}}),Object.defineProperty(i,"SensorEventSchema",{enumerable:!0,get:function(){return Pu}}),Object.defineProperty(i,"ServerBootModeSchema",{enumerable:!0,get:function(){return Jb}}),Object.defineProperty(i,"ServerPackageStatusSchema",{enumerable:!0,get:function(){return ng}}),Object.defineProperty(i,"ServerRollbackInfoSchema",{enumerable:!0,get:function(){return tg}}),Object.defineProperty(i,"ServerUpdateActionResultSchema",{enumerable:!0,get:function(){return rg}}),Object.defineProperty(i,"ServerUpdateCheckResultSchema",{enumerable:!0,get:function(){return ag}}),Object.defineProperty(i,"ServerUpdateStateSchema",{enumerable:!0,get:function(){return Xb}}),Object.defineProperty(i,"SetSiteLocationInputSchema",{enumerable:!0,get:function(){return rj}}),Object.defineProperty(i,"SettingsPatchSchema",{enumerable:!0,get:function(){return qa}}),Object.defineProperty(i,"SettingsRecordSchema",{enumerable:!0,get:function(){return no}}),Object.defineProperty(i,"SettingsSchemaWithValuesSchema",{enumerable:!0,get:function(){return _a}}),Object.defineProperty(i,"SettingsUpdateResultSchema",{enumerable:!0,get:function(){return Ua}}),Object.defineProperty(i,"ShmRingStatsSchema",{enumerable:!0,get:function(){return uo}}),Object.defineProperty(i,"SiteLocationSchema",{enumerable:!0,get:function(){return nj}}),Object.defineProperty(i,"SiteLocationSourceSchema",{enumerable:!0,get:function(){return tj}}),Object.defineProperty(i,"SiteLocationStatusSchema",{enumerable:!0,get:function(){return aj}}),Object.defineProperty(i,"SmokeStatusSchema",{enumerable:!0,get:function(){return TI}}),Object.defineProperty(i,"SmtpStatusSchema",{enumerable:!0,get:function(){return dg}}),Object.defineProperty(i,"SnapshotImageSchema",{enumerable:!0,get:function(){return ug}}),Object.defineProperty(i,"SourceInfoSchema",{enumerable:!0,get:function(){return bo}}),Object.defineProperty(i,"SpatialDetectionSchema",{enumerable:!0,get:function(){return or}}),Object.defineProperty(i,"SsoBridgeClaimsSchema",{enumerable:!0,get:function(){return bg}}),Object.defineProperty(i,"StartEmbeddedInputSchema",{enumerable:!0,get:function(){return Vc}}),Object.defineProperty(i,"StationaryObjectSchema",{enumerable:!0,get:function(){return Uj}}),Object.defineProperty(i,"StorageAbortUploadInputSchema",{enumerable:!0,get:function(){return Og}}),Object.defineProperty(i,"StorageBeginDownloadInputSchema",{enumerable:!0,get:function(){return Cg}}),Object.defineProperty(i,"StorageBeginDownloadResultSchema",{enumerable:!0,get:function(){return Ag}}),Object.defineProperty(i,"StorageBeginUploadInputSchema",{enumerable:!0,get:function(){return kg}}),Object.defineProperty(i,"StorageBeginUploadResultSchema",{enumerable:!0,get:function(){return Pg}}),Object.defineProperty(i,"StorageEndDownloadInputSchema",{enumerable:!0,get:function(){return Eg}}),Object.defineProperty(i,"StorageFinalizeUploadInputSchema",{enumerable:!0,get:function(){return wg}}),Object.defineProperty(i,"StorageLocationDeclarationSchema",{enumerable:!0,get:function(){return wt}}),Object.defineProperty(i,"StorageLocationRefSchema",{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(i,"StorageLocationSchema",{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(i,"StorageLocationTypeSchema",{enumerable:!0,get:function(){return kt}}),Object.defineProperty(i,"StorageMigrationClassSchema",{enumerable:!0,get:function(){return bt}}),Object.defineProperty(i,"StorageMigrationDestinationsSchema",{enumerable:!0,get:function(){return gt}}),Object.defineProperty(i,"StorageMigrationFootageMoveInputSchema",{enumerable:!0,get:function(){return ut}}),Object.defineProperty(i,"StorageMigrationInputSchema",{enumerable:!0,get:function(){return zt}}),Object.defineProperty(i,"StorageMigrationJobSchema",{enumerable:!0,get:function(){return ht}}),Object.defineProperty(i,"StorageMigrationLeaseInputSchema",{enumerable:!0,get:function(){return lt}}),Object.defineProperty(i,"StorageMigrationMediaMoveInputSchema",{enumerable:!0,get:function(){return pt}}),Object.defineProperty(i,"StorageMigrationMoveSchema",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(i,"StorageMigrationParticipantSchema",{enumerable:!0,get:function(){return yt}}),Object.defineProperty(i,"StorageMigrationPhaseSchema",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(i,"StorageMigrationPlanSchema",{enumerable:!0,get:function(){return St}}),Object.defineProperty(i,"StorageProviderInfoSchema",{enumerable:!0,get:function(){return Ig}}),Object.defineProperty(i,"StorageReadChunkInputSchema",{enumerable:!0,get:function(){return Ng}}),Object.defineProperty(i,"StorageTestLocationResultSchema",{enumerable:!0,get:function(){return jg}}),Object.defineProperty(i,"StorageWriteChunkInputSchema",{enumerable:!0,get:function(){return Mg}}),Object.defineProperty(i,"StreamCodecSchema",{enumerable:!0,get:function(){return Pi}}),Object.defineProperty(i,"StreamFormatSchema",{enumerable:!0,get:function(){return ni}}),Object.defineProperty(i,"StreamNetworkStatsSchema",{enumerable:!0,get:function(){return Uv}}),Object.defineProperty(i,"StreamParamsOptionsSchema",{enumerable:!0,get:function(){return VI}}),Object.defineProperty(i,"StreamParamsStatusSchema",{enumerable:!0,get:function(){return qI}}),Object.defineProperty(i,"StreamProfileConfigSchema",{enumerable:!0,get:function(){return _I}}),Object.defineProperty(i,"StreamProfileOptionsSchema",{enumerable:!0,get:function(){return UI}}),Object.defineProperty(i,"StreamProfilePatchSchema",{enumerable:!0,get:function(){return HI}}),Object.defineProperty(i,"StreamProfileSchema",{enumerable:!0,get:function(){return LI}}),Object.defineProperty(i,"StreamSourceEntrySchema",{enumerable:!0,get:function(){return m.at}}),Object.defineProperty(i,"StreamSourceSchema",{enumerable:!0,get:function(){return m.ot}}),Object.defineProperty(i,"SubscribeAudioChunksInputSchema",{enumerable:!0,get:function(){return m.st}}),Object.defineProperty(i,"SubscribeAudioChunksResultSchema",{enumerable:!0,get:function(){return m.ct}}),Object.defineProperty(i,"SubscribeFramesInputSchema",{enumerable:!0,get:function(){return m.lt}});Object.defineProperty(i,"SubscribeFramesResultSchema",{enumerable:!0,get:function(){return m.ut}}),Object.defineProperty(i,"SwitchStatusSchema",{enumerable:!0,get:function(){return YI}}),Object.defineProperty(i,"SystemMetricsSchema",{enumerable:!0,get:function(){return Pc}}),Object.defineProperty(i,"SystemMirror",{enumerable:!0,get:function(){return Zk}}),Object.defineProperty(i,"TAXONOMY_COLORS",{enumerable:!0,get:function(){return Pd}}),Object.defineProperty(i,"TIMELAPSE_DENSE_FLOOR_SEC",{enumerable:!0,get:function(){return EM}}),Object.defineProperty(i,"TIMEZONES",{enumerable:!0,get:function(){return Et}}),Object.defineProperty(i,"TRANSCODE_DOWN_MAX_BITRATE_KBPS",{enumerable:!0,get:function(){return N}}),Object.defineProperty(i,"TRANSCODE_DOWN_MAX_HEIGHT",{enumerable:!0,get:function(){return A}}),Object.defineProperty(i,"TamperStatusSchema",{enumerable:!0,get:function(){return oj}}),Object.defineProperty(i,"TankStatusSchema",{enumerable:!0,get:function(){return Oj}}),Object.defineProperty(i,"TargetKindCapsSchema",{enumerable:!0,get:function(){return id}}),Object.defineProperty(i,"TargetKindLevelSchema",{enumerable:!0,get:function(){return ad}}),Object.defineProperty(i,"TargetKindSchema",{enumerable:!0,get:function(){return sd}}),Object.defineProperty(i,"TargetSchema",{enumerable:!0,get:function(){return cd}}),Object.defineProperty(i,"TemperatureSensorStatusSchema",{enumerable:!0,get:function(){return cj}}),Object.defineProperty(i,"TerminalInstanceInfoSchema",{enumerable:!0,get:function(){return Rg}}),Object.defineProperty(i,"TerminalLegacyCameraSchema",{enumerable:!0,get:function(){return Fg}}),Object.defineProperty(i,"TerminalOutputBatchSchema",{enumerable:!0,get:function(){return Lg}}),Object.defineProperty(i,"TerminalOutputEventSchema",{enumerable:!0,get:function(){return Bg}}),Object.defineProperty(i,"TerminalProfileInfoSchema",{enumerable:!0,get:function(){return Dg}}),Object.defineProperty(i,"TerminalSessionInfoSchema",{enumerable:!0,get:function(){return Tg}}),Object.defineProperty(i,"TestConnectionResultSchema",{enumerable:!0,get:function(){return Ky}}),Object.defineProperty(i,"TestConnectionStatusEnum",{enumerable:!0,get:function(){return $y}}),Object.defineProperty(i,"TestResultSchema",{enumerable:!0,get:function(){return md}}),Object.defineProperty(i,"TimelapseRuleInputSchema",{enumerable:!0,get:function(){return BM}}),Object.defineProperty(i,"TimelapseRulePatchSchema",{enumerable:!0,get:function(){return _M}}),Object.defineProperty(i,"TimelapseRuleSchema",{enumerable:!0,get:function(){return qM}}),Object.defineProperty(i,"TimelapseTemplateSchema",{enumerable:!0,get:function(){return PM}}),Object.defineProperty(i,"ToastSchema",{enumerable:!0,get:function(){return lj}}),Object.defineProperty(i,"TokenScopeSchema",{enumerable:!0,get:function(){return uu}}),Object.defineProperty(i,"TopologyNodeSchema",{enumerable:!0,get:function(){return Jv}}),Object.defineProperty(i,"TopologyProcessSchema",{enumerable:!0,get:function(){return Wv}}),Object.defineProperty(i,"TopologyServiceSchema",{enumerable:!0,get:function(){return Kv}}),Object.defineProperty(i,"TrackCascadeCountsSchema",{enumerable:!0,get:function(){return km}}),Object.defineProperty(i,"TrackEnvelopeSchema",{enumerable:!0,get:function(){return Ou}}),Object.defineProperty(i,"TrackFlagsPatchSchema",{enumerable:!0,get:function(){return Du}}),Object.defineProperty(i,"TrackFlagsSchema",{enumerable:!0,get:function(){return Ru}}),Object.defineProperty(i,"TrackProjectionSchema",{enumerable:!0,get:function(){return Cu}}),Object.defineProperty(i,"TrackSchema",{enumerable:!0,get:function(){return Uu}}),Object.defineProperty(i,"TrackSourceSchema",{enumerable:!0,get:function(){return Nu}}),Object.defineProperty(i,"TrackStateSchema",{enumerable:!0,get:function(){return fu}}),Object.defineProperty(i,"TrackZoneFilterSchema",{enumerable:!0,get:function(){return vu}}),Object.defineProperty(i,"TrackedDetectionSchema",{enumerable:!0,get:function(){return hm}}),Object.defineProperty(i,"TrainingExportDeviceTotalsSchema",{enumerable:!0,get:function(){return _u}}),Object.defineProperty(i,"TrainingExportSummarySchema",{enumerable:!0,get:function(){return qu}}),Object.defineProperty(i,"TurnServerSchema",{enumerable:!0,get:function(){return qg}}),Object.defineProperty(i,"UNIT_TABLE",{enumerable:!0,get:function(){return Uw}}),Object.defineProperty(i,"UnifiedBrokerInfoSchema",{enumerable:!0,get:function(){return Dr}}),Object.defineProperty(i,"UnitConversionError",{enumerable:!0,get:function(){return Vw}}),Object.defineProperty(i,"UpdateIntegrationInputSchema",{enumerable:!0,get:function(){return Gy}}),Object.defineProperty(i,"UpdateStatusSchema",{enumerable:!0,get:function(){return mj}}),Object.defineProperty(i,"UpdateUserInputSchema",{enumerable:!0,get:function(){return zj}}),Object.defineProperty(i,"UserRecordSchema",{enumerable:!0,get:function(){return mu}}),Object.defineProperty(i,"UserSummarySchema",{enumerable:!0,get:function(){return bj}}),Object.defineProperty(i,"VacuumControlStatusSchema",{enumerable:!0,get:function(){return Cj}}),Object.defineProperty(i,"VacuumStateSchema",{enumerable:!0,get:function(){return wj}}),Object.defineProperty(i,"ValveStateSchema",{enumerable:!0,get:function(){return Nj}}),Object.defineProperty(i,"ValveStatusSchema",{enumerable:!0,get:function(){return Ej}}),Object.defineProperty(i,"VectorDeclareIndexInputSchema",{enumerable:!0,get:function(){return Yg}}),Object.defineProperty(i,"VectorDeleteByFilterInputSchema",{enumerable:!0,get:function(){return nz}}),Object.defineProperty(i,"VectorDeleteInputSchema",{enumerable:!0,get:function(){return tz}}),Object.defineProperty(i,"VectorDeleteResultSchema",{enumerable:!0,get:function(){return az}}),Object.defineProperty(i,"VectorFilterSchema",{enumerable:!0,get:function(){return Wg}}),Object.defineProperty(i,"VectorGetInputSchema",{enumerable:!0,get:function(){return rz}}),Object.defineProperty(i,"VectorGetResultSchema",{enumerable:!0,get:function(){return iz}}),Object.defineProperty(i,"VectorItemSchema",{enumerable:!0,get:function(){return Gg}}),Object.defineProperty(i,"VectorMatchSchema",{enumerable:!0,get:function(){return Zg}}),Object.defineProperty(i,"VectorMetadataSchema",{enumerable:!0,get:function(){return Kg}}),Object.defineProperty(i,"VectorMetricSchema",{enumerable:!0,get:function(){return $g}}),Object.defineProperty(i,"VectorQueryInputSchema",{enumerable:!0,get:function(){return Qg}}),Object.defineProperty(i,"VectorQueryResultSchema",{enumerable:!0,get:function(){return ez}}),Object.defineProperty(i,"VectorStatsInputSchema",{enumerable:!0,get:function(){return oz}}),Object.defineProperty(i,"VectorStatsResultSchema",{enumerable:!0,get:function(){return sz}}),Object.defineProperty(i,"VectorUpsertInputSchema",{enumerable:!0,get:function(){return Jg}}),Object.defineProperty(i,"VectorUpsertResultSchema",{enumerable:!0,get:function(){return Xg}}),Object.defineProperty(i,"VibrationStatusSchema",{enumerable:!0,get:function(){return Tj}}),Object.defineProperty(i,"VideoEncodeSchema",{enumerable:!0,get:function(){return S}}),Object.defineProperty(i,"WEBRTC_EGRESS_PROFILE",{enumerable:!0,get:function(){return M}}),Object.defineProperty(i,"WELL_KNOWN_TABS",{enumerable:!0,get:function(){return m.Ct}}),Object.defineProperty(i,"WELL_KNOWN_TAB_MAP",{enumerable:!0,get:function(){return m.wt}}),Object.defineProperty(i,"WaterHeaterStatusSchema",{enumerable:!0,get:function(){return Rj}}),Object.defineProperty(i,"WeatherStatusSchema",{enumerable:!0,get:function(){return Bj}}),Object.defineProperty(i,"WebrtcStreamChoiceSchema",{enumerable:!0,get:function(){return bz}}),Object.defineProperty(i,"WebrtcStreamTargetSchema",{enumerable:!0,get:function(){return pz}}),Object.defineProperty(i,"WhiteBalanceModeSchema",{enumerable:!0,get:function(){return Ty}}),Object.defineProperty(i,"WidgetHostEnum",{enumerable:!0,get:function(){return Ha}}),Object.defineProperty(i,"WidgetLoginMethodSchema",{enumerable:!0,get:function(){return rc}}),Object.defineProperty(i,"WidgetMetadataSchema",{enumerable:!0,get:function(){return Wa}}),Object.defineProperty(i,"WidgetRemoteSchema",{enumerable:!0,get:function(){return Ka}}),Object.defineProperty(i,"WidgetSizeEnum",{enumerable:!0,get:function(){return $a}}),Object.defineProperty(i,"YAMNET_TO_MACRO",{enumerable:!0,get:function(){return hd}}),Object.defineProperty(i,"ZoneCrossingDirectionSchema",{enumerable:!0,get:function(){return Ku}}),Object.defineProperty(i,"ZoneCrossingSchema",{enumerable:!0,get:function(){return Wu}}),Object.defineProperty(i,"ZoneKindEnum",{enumerable:!0,get:function(){return zp}}),Object.defineProperty(i,"ZoneRuleModeEnum",{enumerable:!0,get:function(){return CI}}),Object.defineProperty(i,"ZoneRuleSchema",{enumerable:!0,get:function(){return AI}}),Object.defineProperty(i,"ZoneRuleStageEnum",{enumerable:!0,get:function(){return Gj}}),Object.defineProperty(i,"ZoneRulesArraySchema",{enumerable:!0,get:function(){return NI}}),Object.defineProperty(i,"ZoneSchema",{enumerable:!0,get:function(){return yp}}),Object.defineProperty(i,"ZoneScopeBreakdownSchema",{enumerable:!0,get:function(){return qj}}),Object.defineProperty(i,"accessoriesCapability",{enumerable:!0,get:function(){return fz}}),Object.defineProperty(i,"accessoryStableId",{enumerable:!0,get:function(){return ok}}),Object.defineProperty(i,"addonPagesCapability",{enumerable:!0,get:function(){return Na}}),Object.defineProperty(i,"addonPagesSourceCapability",{enumerable:!0,get:function(){return xa}}),Object.defineProperty(i,"addonRoutesCapability",{enumerable:!0,get:function(){return Fa}}),Object.defineProperty(i,"addonSettingsCapability",{enumerable:!0,get:function(){return Va}}),Object.defineProperty(i,"addonWidgetsCapability",{enumerable:!0,get:function(){return Ya}}),Object.defineProperty(i,"addonWidgetsSourceCapability",{enumerable:!0,get:function(){return Ga}}),Object.defineProperty(i,"addonsCapability",{enumerable:!0,get:function(){return Zz}}),Object.defineProperty(i,"adminUiCapability",{enumerable:!0,get:function(){return m.T}}),Object.defineProperty(i,"airQualitySensorCapability",{enumerable:!0,get:function(){return Jz}}),Object.defineProperty(i,"alarmPanelCapability",{enumerable:!0,get:function(){return Hd}}),Object.defineProperty(i,"alertsCapability",{enumerable:!0,get:function(){return tr}}),Object.defineProperty(i,"ambientLightSensorCapability",{enumerable:!0,get:function(){return Qz}}),Object.defineProperty(i,"asBoolean",{enumerable:!0,get:function(){return m.r}}),Object.defineProperty(i,"asJsonArray",{enumerable:!0,get:function(){return m.i}}),Object.defineProperty(i,"asJsonObject",{enumerable:!0,get:function(){return m.a}}),Object.defineProperty(i,"asNumber",{enumerable:!0,get:function(){return m.o}}),Object.defineProperty(i,"asString",{enumerable:!0,get:function(){return m.s}}),Object.defineProperty(i,"assertTimelapseCadences",{enumerable:!0,get:function(){return UM}}),Object.defineProperty(i,"audioAnalysisCapability",{enumerable:!0,get:function(){return nr}}),Object.defineProperty(i,"audioAnalyzerCapability",{enumerable:!0,get:function(){return gr}}),Object.defineProperty(i,"audioCodecCapability",{enumerable:!0,get:function(){return jr}}),Object.defineProperty(i,"audioIsFailClosed",{enumerable:!0,get:function(){return UP}}),Object.defineProperty(i,"audioLabelChoices",{enumerable:!0,get:function(){return GP}}),Object.defineProperty(i,"audioMetricsCapability",{enumerable:!0,get:function(){return rf}}),Object.defineProperty(i,"audioModeOf",{enumerable:!0,get:function(){return qP}}),Object.defineProperty(i,"audioOrDefaults",{enumerable:!0,get:function(){return _P}}),Object.defineProperty(i,"audioPlanFromEncodeProfile",{enumerable:!0,get:function(){return p.i}}),Object.defineProperty(i,"authProviderCapability",{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(i,"autoAssignProfiles",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(i,"automationControlCapability",{enumerable:!0,get:function(){return sf}}),Object.defineProperty(i,"backupCapability",{enumerable:!0,get:function(){return xr}}),Object.defineProperty(i,"bareAddonId",{enumerable:!0,get:function(){return nO}}),Object.defineProperty(i,"batteryCapability",{enumerable:!0,get:function(){return df}}),Object.defineProperty(i,"bestLocationMatch",{enumerable:!0,get:function(){return eO}}),Object.defineProperty(i,"binaryCapability",{enumerable:!0,get:function(){return uf}}),Object.defineProperty(i,"bindAddonActions",{enumerable:!0,get:function(){return TO}}),Object.defineProperty(i,"brightnessCapability",{enumerable:!0,get:function(){return pf}}),Object.defineProperty(i,"brokerCapability",{enumerable:!0,get:function(){return ei}}),Object.defineProperty(i,"buildAddonRouteProvider",{enumerable:!0,get:function(){return f}}),Object.defineProperty(i,"buildAudioArgs",{enumerable:!0,get:function(){return p.a}}),Object.defineProperty(i,"buildEventKindDescriptor",{enumerable:!0,get:function(){return Yb}}),Object.defineProperty(i,"buildFfmpegArgs",{enumerable:!0,get:function(){return p.o}}),Object.defineProperty(i,"buildInputArgs",{enumerable:!0,get:function(){return p.s}}),Object.defineProperty(i,"buildModelVariantGroups",{enumerable:!0,get:function(){return Ht}}),Object.defineProperty(i,"buildNcTaxonomy",{enumerable:!0,get:function(){return Ld}}),Object.defineProperty(i,"buildRoleScopes",{enumerable:!0,get:function(){return Pw}}),Object.defineProperty(i,"buildStreamParamsConfigSchema",{enumerable:!0,get:function(){return GI}}),Object.defineProperty(i,"buildVideoArgs",{enumerable:!0,get:function(){return p.c}}),Object.defineProperty(i,"buttonCapability",{enumerable:!0,get:function(){return bf}}),Object.defineProperty(i,"cameraCredentialsCapability",{enumerable:!0,get:function(){return ff}}),Object.defineProperty(i,"cameraPipelineConfigCapability",{enumerable:!0,get:function(){return ti}}),Object.defineProperty(i,"cameraStreamsCapability",{enumerable:!0,get:function(){return Ci}}),Object.defineProperty(i,"canConvertUnit",{enumerable:!0,get:function(){return Yw}}),Object.defineProperty(i,"canonicalEgressPlan",{enumerable:!0,get:function(){return q}}),Object.defineProperty(i,"carbonMonoxideCapability",{enumerable:!0,get:function(){return vf}}),Object.defineProperty(i,"cellsToRects",{enumerable:!0,get:function(){return mO}}),Object.defineProperty(i,"classifyBearerPrincipal",{enumerable:!0,get:function(){return sn}}),Object.defineProperty(i,"classifyStream",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(i,"classifyStreams",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(i,"climateControlCapability",{enumerable:!0,get:function(){return If}}),Object.defineProperty(i,"collectHydratedFieldEntries",{enumerable:!0,get:function(){return m.Tt}}),Object.defineProperty(i,"collectHydratedFieldValues",{enumerable:!0,get:function(){return m.Et}}),Object.defineProperty(i,"colorCapability",{enumerable:!0,get:function(){return wf}}),Object.defineProperty(i,"colorForKind",{enumerable:!0,get:function(){return Td}}),Object.defineProperty(i,"compileExpression",{enumerable:!0,get:function(){return Un}}),Object.defineProperty(i,"compileExpressionSafe",{enumerable:!0,get:function(){return Vn}}),Object.defineProperty(i,"composeSwitchedOff",{enumerable:!0,get:function(){return he}}),Object.defineProperty(i,"conditionDepth",{enumerable:!0,get:function(){return va}}),Object.defineProperty(i,"connectionTestCapability",{enumerable:!0,get:function(){return Ef}}),Object.defineProperty(i,"connectivityCapability",{enumerable:!0,get:function(){return Tf}}),Object.defineProperty(i,"consumablesCapability",{enumerable:!0,get:function(){return Ff}}),Object.defineProperty(i,"contactCapability",{enumerable:!0,get:function(){return Lf}}),Object.defineProperty(i,"controlCapability",{enumerable:!0,get:function(){return Vf}}),Object.defineProperty(i,"convertUnit",{enumerable:!0,get:function(){return Gw}}),Object.defineProperty(i,"coreBlockAddonId",{enumerable:!0,get:function(){return qi}}),Object.defineProperty(i,"coreBlockIdFromAddonId",{enumerable:!0,get:function(){return Ui}}),Object.defineProperty(i,"coreBlocksCapability",{enumerable:!0,get:function(){return Gi}}),Object.defineProperty(i,"cosineSimilarity",{enumerable:!0,get:function(){return rO}}),Object.defineProperty(i,"countConditionLeaves",{enumerable:!0,get:function(){return ha}}),Object.defineProperty(i,"coverCapability",{enumerable:!0,get:function(){return Kf}}),Object.defineProperty(i,"createDeviceProxy",{enumerable:!0,get:function(){return m.m}}),Object.defineProperty(i,"createDurableState",{enumerable:!0,get:function(){return m.yt}}),Object.defineProperty(i,"createEvent",{enumerable:!0,get:function(){return m.bt}}),Object.defineProperty(i,"createExpressionScope",{enumerable:!0,get:function(){return $n}}),Object.defineProperty(i,"createHwAccelCache",{enumerable:!0,get:function(){return R}}),Object.defineProperty(i,"createLazyTrpcSource",{enumerable:!0,get:function(){return m.h}}),Object.defineProperty(i,"createMirrorSource",{enumerable:!0,get:function(){return m.g}}),Object.defineProperty(i,"createRuntimeStateBridge",{enumerable:!0,get:function(){return Hk}}),Object.defineProperty(i,"createSliceHandle",{enumerable:!0,get:function(){return m._}}),Object.defineProperty(i,"createSystemProxy",{enumerable:!0,get:function(){return OP}}),Object.defineProperty(i,"customAction",{enumerable:!0,get:function(){return Yi}}),Object.defineProperty(i,"customModelRegistryCapability",{enumerable:!0,get:function(){return Qi}}),Object.defineProperty(i,"dataStoreProviderCapability",{enumerable:!0,get:function(){return so}}),Object.defineProperty(i,"dayNightCapability",{enumerable:!0,get:function(){return Xf}}),Object.defineProperty(i,"declarationOwnerNodeId",{enumerable:!0,get:function(){return gk}}),Object.defineProperty(i,"decodeVectorBase64",{enumerable:!0,get:function(){return CO}}),Object.defineProperty(i,"decoderCapability",{enumerable:!0,get:function(){return mo}}),Object.defineProperty(i,"defaultDeviceFor",{enumerable:!0,get:function(){return UO}}),Object.defineProperty(i,"defineCustomActions",{enumerable:!0,get:function(){return Zi}}),Object.defineProperty(i,"deriveBatteryPresence",{enumerable:!0,get:function(){return xk}}),Object.defineProperty(i,"deriveCameraSwitches",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(i,"deriveDetailCropRect",{enumerable:!0,get:function(){return QM}}),Object.defineProperty(i,"deriveRecordingMode",{enumerable:!0,get:function(){return it}}),Object.defineProperty(i,"describeModelVariant",{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(i,"detectAccessRole",{enumerable:!0,get:function(){return ww}}),Object.defineProperty(i,"detectionPipelineCapability",{enumerable:!0,get:function(){return po}}),Object.defineProperty(i,"deviceAdoptionCapability",{enumerable:!0,get:function(){return Ro}}),Object.defineProperty(i,"deviceBackendToFormat",{enumerable:!0,get:function(){return yO}}),Object.defineProperty(i,"deviceCustomAction",{enumerable:!0,get:function(){return Ji}}),Object.defineProperty(i,"deviceDiscoveryCapability",{enumerable:!0,get:function(){return jo}}),Object.defineProperty(i,"deviceExportCapability",{enumerable:!0,get:function(){return $o}}),Object.defineProperty(i,"deviceManagerCapability",{enumerable:!0,get:function(){return bs}}),Object.defineProperty(i,"deviceMatchesProfile",{enumerable:!0,get:function(){return Ok}}),Object.defineProperty(i,"deviceOpsCapability",{enumerable:!0,get:function(){return m.y}}),Object.defineProperty(i,"deviceProviderCapability",{enumerable:!0,get:function(){return Xo}}),Object.defineProperty(i,"deviceSelectorMatches",{enumerable:!0,get:function(){return Cw}}),Object.defineProperty(i,"deviceStateCapability",{enumerable:!0,get:function(){return gs}}),Object.defineProperty(i,"deviceStatusCapability",{enumerable:!0,get:function(){return ey}}),Object.defineProperty(i,"doorbellCapability",{enumerable:!0,get:function(){return ay}}),Object.defineProperty(i,"egressTranscodeSharingKey",{enumerable:!0,get:function(){return U}}),Object.defineProperty(i,"egressTransportFromRequest",{enumerable:!0,get:function(){return L}}),Object.defineProperty(i,"embeddingEncoderCapability",{enumerable:!0,get:function(){return ys}}),Object.defineProperty(i,"emitDownForOwnedCaps",{enumerable:!0,get:function(){return m.V}}),Object.defineProperty(i,"emitReadiness",{enumerable:!0,get:function(){return m.xt}}),Object.defineProperty(i,"encodeProfileFromStreamShape",{enumerable:!0,get:function(){return k}}),Object.defineProperty(i,"encodeVectorBase64",{enumerable:!0,get:function(){return OO}}),Object.defineProperty(i,"enumSensorCapability",{enumerable:!0,get:function(){return oy}}),Object.defineProperty(i,"enumerateInferenceDevices",{enumerable:!0,get:function(){return WO}}),Object.defineProperty(i,"enumerateItemArrayFields",{enumerable:!0,get:function(){return Gk}}),Object.defineProperty(i,"enumerateSchemaFields",{enumerable:!0,get:function(){return Wk}}),Object.defineProperty(i,"errMsg",{enumerable:!0,get:function(){return g.t}}),Object.defineProperty(i,"evaluateAst",{enumerable:!0,get:function(){return ea}}),Object.defineProperty(i,"evaluateExpressionSource",{enumerable:!0,get:function(){return ra}}),Object.defineProperty(i,"evaluateZoneRules",{enumerable:!0,get:function(){return NO}}),Object.defineProperty(i,"event",{enumerable:!0,get:function(){return m.k}}),Object.defineProperty(i,"eventEmitterCapability",{enumerable:!0,get:function(){return dy}}),Object.defineProperty(i,"eventsCapability",{enumerable:!0,get:function(){return uy}}),Object.defineProperty(i,"expandCapMethods",{enumerable:!0,get:function(){return m.A}}),Object.defineProperty(i,"extractNestedAddonId",{enumerable:!0,get:function(){return Di}}),Object.defineProperty(i,"extractSourceInfoFromMetadata",{enumerable:!0,get:function(){return vo}}),Object.defineProperty(i,"faceGalleryCapability",{enumerable:!0,get:function(){return fy}}),Object.defineProperty(i,"fanControlCapability",{enumerable:!0,get:function(){return hy}}),Object.defineProperty(i,"featureProbeCapability",{enumerable:!0,get:function(){return Iy}}),Object.defineProperty(i,"filesystemBrowseCapability",{enumerable:!0,get:function(){return Ss}}),Object.defineProperty(i,"findTimezone",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(i,"floodCapability",{enumerable:!0,get:function(){return ky}}),Object.defineProperty(i,"formatForBackend",{enumerable:!0,get:function(){return kO}}),Object.defineProperty(i,"formatForRuntime",{enumerable:!0,get:function(){return PO}}),Object.defineProperty(i,"gasCapability",{enumerable:!0,get:function(){return My}}),Object.defineProperty(i,"generateAutomationBlock",{enumerable:!0,get:function(){return Oa}}),Object.defineProperty(i,"getAudioMacroClassIds",{enumerable:!0,get:function(){return kd}}),Object.defineProperty(i,"getByPath",{enumerable:!0,get:function(){return Rk}}),Object.defineProperty(i,"getCapsByProviderKind",{enumerable:!0,get:function(){return SP}}),Object.defineProperty(i,"getTaxonomyEntry",{enumerable:!0,get:function(){return xd}}),Object.defineProperty(i,"hasMotionTrigger",{enumerable:!0,get:function(){return Ik}}),Object.defineProperty(i,"hfModelUrl",{enumerable:!0,get:function(){return sO}}),Object.defineProperty(i,"htmlToText",{enumerable:!0,get:function(){return lM}}),Object.defineProperty(i,"humidifierCapability",{enumerable:!0,get:function(){return Oy}}),Object.defineProperty(i,"humiditySensorCapability",{enumerable:!0,get:function(){return Ay}}),Object.defineProperty(i,"hydrateSchema",{enumerable:!0,get:function(){return m.Dt}}),Object.defineProperty(i,"imageCapability",{enumerable:!0,get:function(){return Ey}}),Object.defineProperty(i,"imageSettingsCapability",{enumerable:!0,get:function(){return qy}}),Object.defineProperty(i,"integrationsCapability",{enumerable:!0,get:function(){return Yy}}),Object.defineProperty(i,"intercomCapability",{enumerable:!0,get:function(){return ev}}),Object.defineProperty(i,"invocationFromEncodeProfile",{enumerable:!0,get:function(){return p.l}}),Object.defineProperty(i,"isAgentOnlyPlacement",{enumerable:!0,get:function(){return J}}),Object.defineProperty(i,"isArrayOutputSchema",{enumerable:!0,get:function(){return Ei}}),Object.defineProperty(i,"isAudioLabelSelected",{enumerable:!0,get:function(){return ZP}}),Object.defineProperty(i,"isBaseConditionKey",{enumerable:!0,get:function(){return sM}}),Object.defineProperty(i,"isBatteryPresenceFault",{enumerable:!0,get:function(){return Tk}}),Object.defineProperty(i,"isCollectionArrayMethod",{enumerable:!0,get:function(){return xi}}),Object.defineProperty(i,"isDeployableToAgent",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(i,"isDetectionMacroClass",{enumerable:!0,get:function(){return fd}}),Object.defineProperty(i,"isDeviceConfigCap",{enumerable:!0,get:function(){return m.j}}),Object.defineProperty(i,"isDeviceScopedCap",{enumerable:!0,get:function(){return m.p}}),Object.defineProperty(i,"isEvent",{enumerable:!0,get:function(){return m.St}}),Object.defineProperty(i,"isIsolatedBuiltin",{enumerable:!0,get:function(){return te}}),Object.defineProperty(i,"isNode",{enumerable:!0,get:function(){return Mk}}),Object.defineProperty(i,"isObjectInput",{enumerable:!0,get:function(){return Ni}}),Object.defineProperty(i,"isRestoredCap",{enumerable:!0,get:function(){return PP}}),Object.defineProperty(i,"isSameAddonId",{enumerable:!0,get:function(){return aO}}),Object.defineProperty(i,"isScheduleActive",{enumerable:!0,get:function(){return kM}}),Object.defineProperty(i,"isSoftwareDecode",{enumerable:!0,get:function(){return p.u}}),Object.defineProperty(i,"isVoidInput",{enumerable:!0,get:function(){return Ai}}),Object.defineProperty(i,"jobKindSchema",{enumerable:!0,get:function(){return yz}}),Object.defineProperty(i,"kebabToCamel",{enumerable:!0,get:function(){return Bi}}),Object.defineProperty(i,"knownValues",{enumerable:!0,get:function(){return rM}}),Object.defineProperty(i,"lawnMowerControlCapability",{enumerable:!0,get:function(){return rv}}),Object.defineProperty(i,"lifecycleJobSchema",{enumerable:!0,get:function(){return Pz}}),Object.defineProperty(i,"lifecycleJobScopeSchema",{enumerable:!0,get:function(){return kz}}),Object.defineProperty(i,"lifecycleJobStateSchema",{enumerable:!0,get:function(){return jz}}),Object.defineProperty(i,"lifecycleTaskSchema",{enumerable:!0,get:function(){return Iz}}),Object.defineProperty(i,"llmCapability",{enumerable:!0,get:function(){return Xs}}),Object.defineProperty(i,"llmRuntimeCapability",{enumerable:!0,get:function(){return Ls}}),Object.defineProperty(i,"localNetworkCapability",{enumerable:!0,get:function(){return pv}}),Object.defineProperty(i,"locationSimilarity",{enumerable:!0,get:function(){return Qw}}),Object.defineProperty(i,"lockControlCapability",{enumerable:!0,get:function(){return zv}}),Object.defineProperty(i,"logBannerArgs",{enumerable:!0,get:function(){return p.d}}),Object.defineProperty(i,"logDestinationCapability",{enumerable:!0,get:function(){return tc}}),Object.defineProperty(i,"logLevelAtMost",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(i,"loginMethodCapability",{enumerable:!0,get:function(){return sc}}),Object.defineProperty(i,"looseSchema",{enumerable:!0,get:function(){return Ti}}),Object.defineProperty(i,"makeProfileBrokerId",{enumerable:!0,get:function(){return m.dt}}),Object.defineProperty(i,"makeSourceBrokerId",{enumerable:!0,get:function(){return m.ft}}),Object.defineProperty(i,"mapAudioLabelToMacro",{enumerable:!0,get:function(){return jd}}),Object.defineProperty(i,"markdownToHtmlLite",{enumerable:!0,get:function(){return bM}}),Object.defineProperty(i,"markdownToText",{enumerable:!0,get:function(){return cM}}),Object.defineProperty(i,"maskUrlCredentials",{enumerable:!0,get:function(){return lO}}),Object.defineProperty(i,"mediaPlayerCapability",{enumerable:!0,get:function(){return Sv}}),Object.defineProperty(i,"mergeSourceInfo",{enumerable:!0,get:function(){return zo}}),Object.defineProperty(i,"meshNetworkCapability",{enumerable:!0,get:function(){return Pv}}),Object.defineProperty(i,"method",{enumerable:!0,get:function(){return m.M}}),Object.defineProperty(i,"methodAccessForHttpMethod",{enumerable:!0,get:function(){return an}}),Object.defineProperty(i,"metricsProviderCapability",{enumerable:!0,get:function(){return Mc}}),Object.defineProperty(i,"modelConvertCapability",{enumerable:!0,get:function(){return Oc}}),Object.defineProperty(i,"modelDistributorCapability",{enumerable:!0,get:function(){return Nc}}),Object.defineProperty(i,"modelFormatForRuntime",{enumerable:!0,get:function(){return VO}}),Object.defineProperty(i,"motionCapability",{enumerable:!0,get:function(){return Ov}}),Object.defineProperty(i,"motionDetectionCapability",{enumerable:!0,get:function(){return Tc}}),Object.defineProperty(i,"motionTriggerCapability",{enumerable:!0,get:function(){return Nv}}),Object.defineProperty(i,"motionZonesCapability",{enumerable:!0,get:function(){return Rv}}),Object.defineProperty(i,"mqttBrokerCapability",{enumerable:!0,get:function(){return Kc}}),Object.defineProperty(i,"nativeObjectDetectionCapability",{enumerable:!0,get:function(){return qv}}),Object.defineProperty(i,"networkAccessCapability",{enumerable:!0,get:function(){return Yc}}),Object.defineProperty(i,"networkQualityCapability",{enumerable:!0,get:function(){return $v}}),Object.defineProperty(i,"nodePin",{enumerable:!0,get:function(){return m.I}}),Object.defineProperty(i,"nodesCapability",{enumerable:!0,get:function(){return sh}}),Object.defineProperty(i,"normalizeAddonInitResult",{enumerable:!0,get:function(){return m.vt}}),Object.defineProperty(i,"normalizeAudioLabel",{enumerable:!0,get:function(){return AP}}),Object.defineProperty(i,"normalizeTokenScopes",{enumerable:!0,get:function(){return Dw}}),Object.defineProperty(i,"normalizeUnit",{enumerable:!0,get:function(){return fo}}),Object.defineProperty(i,"notificationOutputCapability",{enumerable:!0,get:function(){return pd}}),Object.defineProperty(i,"notificationRulesCapability",{enumerable:!0,get:function(){return ru}}),Object.defineProperty(i,"notifierCapability",{enumerable:!0,get:function(){return bh}}),Object.defineProperty(i,"numericSensorCapability",{enumerable:!0,get:function(){return zh}}),Object.defineProperty(i,"oauthIntegrationCapability",{enumerable:!0,get:function(){return zu}}),Object.defineProperty(i,"objectInputDeclaresAddonId",{enumerable:!0,get:function(){return Ri}}),Object.defineProperty(i,"osdCapability",{enumerable:!0,get:function(){return Ih}}),Object.defineProperty(i,"osdManagerCapability",{enumerable:!0,get:function(){return Ah}}),Object.defineProperty(i,"parseCameraStreamConfig",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(i,"parseExpression",{enumerable:!0,get:function(){return Ln}}),Object.defineProperty(i,"parseJsonArray",{enumerable:!0,get:function(){return m.c}}),Object.defineProperty(i,"parseJsonObject",{enumerable:!0,get:function(){return m.l}}),Object.defineProperty(i,"parseJsonUnknown",{enumerable:!0,get:function(){return m.u}}),Object.defineProperty(i,"parseProfileBrokerId",{enumerable:!0,get:function(){return m.pt}}),Object.defineProperty(i,"parseStreamParamsFormPatch",{enumerable:!0,get:function(){return ZI}}),Object.defineProperty(i,"patchAudio",{enumerable:!0,get:function(){return $P}}),Object.defineProperty(i,"petFeederCapability",{enumerable:!0,get:function(){return Rh}}),Object.defineProperty(i,"pickAccessoryControl",{enumerable:!0,get:function(){return kk}}),Object.defineProperty(i,"pickDetailCropConvention",{enumerable:!0,get:function(){return JM}}),Object.defineProperty(i,"pickNativeLeaseOverride",{enumerable:!0,get:function(){return Iw}}),Object.defineProperty(i,"pickPreferredRtspEntry",{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(i,"pickVideoEncoder",{enumerable:!0,get:function(){return p.f}}),Object.defineProperty(i,"pickerForCondition",{enumerable:!0,get:function(){return aM}}),Object.defineProperty(i,"pipelineAnalyticsCapability",{enumerable:!0,get:function(){return Em}}),Object.defineProperty(i,"pipelineExecutorCapability",{enumerable:!0,get:function(){return mp}}),Object.defineProperty(i,"pipelineOrchestratorCapability",{enumerable:!0,get:function(){return Vb}}),Object.defineProperty(i,"pipelineRunnerCapability",{enumerable:!0,get:function(){return db}}),Object.defineProperty(i,"plateGalleryCapability",{enumerable:!0,get:function(){return Uh}}),Object.defineProperty(i,"platformProbeCapability",{enumerable:!0,get:function(){return iS}}),Object.defineProperty(i,"powerMeterCapability",{enumerable:!0,get:function(){return sS}}),Object.defineProperty(i,"prepareNotification",{enumerable:!0,get:function(){return SM}}),Object.defineProperty(i,"presenceCapability",{enumerable:!0,get:function(){return lS}}),Object.defineProperty(i,"pressureSensorCapability",{enumerable:!0,get:function(){return mS}}),Object.defineProperty(i,"principalMayReachAddon",{enumerable:!0,get:function(){return cn}}),Object.defineProperty(i,"privacyMaskCapability",{enumerable:!0,get:function(){return yS}}),Object.defineProperty(i,"procedureAuthKey",{enumerable:!0,get:function(){return Fi}}),Object.defineProperty(i,"ptzAutotrackCapability",{enumerable:!0,get:function(){return NS}}),Object.defineProperty(i,"ptzCapability",{enumerable:!0,get:function(){return PS}}),Object.defineProperty(i,"pythonScriptForBackend",{enumerable:!0,get:function(){return MO}}),Object.defineProperty(i,"readDetailCropConvention",{enumerable:!0,get:function(){return ZM}}),Object.defineProperty(i,"readDeviceStateFrom",{enumerable:!0,get:function(){return Qj}}),Object.defineProperty(i,"readNativeLeaseOverride",{enumerable:!0,get:function(){return vw}}),Object.defineProperty(i,"readNodePin",{enumerable:!0,get:function(){return m.L}}),Object.defineProperty(i,"readTimelapseGeneratedAt",{enumerable:!0,get:function(){return VM}}),Object.defineProperty(i,"readinessKey",{enumerable:!0,get:function(){return m.H}}),Object.defineProperty(i,"rebootCapability",{enumerable:!0,get:function(){return ES}}),Object.defineProperty(i,"recordingCapability",{enumerable:!0,get:function(){return ZS}}),Object.defineProperty(i,"recordingExportCapability",{enumerable:!0,get:function(){return sI}}),Object.defineProperty(i,"rectsToCells",{enumerable:!0,get:function(){return uO}}),Object.defineProperty(i,"requiresPython",{enumerable:!0,get:function(){return wO}}),Object.defineProperty(i,"resolveAddonExecution",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(i,"resolveAddonGroup",{enumerable:!0,get:function(){return X}}),Object.defineProperty(i,"resolveAddonPlacement",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(i,"resolveAddonRuntime",{enumerable:!0,get:function(){return jO}}),Object.defineProperty(i,"resolveCapMount",{enumerable:!0,get:function(){return m.N}}),Object.defineProperty(i,"resolveDetectionRuntime",{enumerable:!0,get:function(){return SO}}),Object.defineProperty(i,"resolveDeviceControlKind",{enumerable:!0,get:function(){return hk}}),Object.defineProperty(i,"resolveDeviceProfile",{enumerable:!0,get:function(){return Nk}}),Object.defineProperty(i,"resolveEgressDecodeHwAccel",{enumerable:!0,get:function(){return B}}),Object.defineProperty(i,"resolveFormat",{enumerable:!0,get:function(){return zM}}),Object.defineProperty(i,"resolveHydratedFieldValue",{enumerable:!0,get:function(){return m.Ot}}),Object.defineProperty(i,"resolveModelFormat",{enumerable:!0,get:function(){return IO}}),Object.defineProperty(i,"resolveMutate",{enumerable:!0,get:function(){return wk}}),Object.defineProperty(i,"resolveRunnerId",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(i,"resolveScrubThumbnailGeometry",{enumerable:!0,get:function(){return at}}),Object.defineProperty(i,"resolveVariantModelId",{enumerable:!0,get:function(){return $t}}),Object.defineProperty(i,"resolveViewableDeviceIds",{enumerable:!0,get:function(){return Tw}}),Object.defineProperty(i,"roleSpec",{enumerable:!0,get:function(){return kw}}),Object.defineProperty(i,"runInferenceStep",{enumerable:!0,get:function(){return bO}}),Object.defineProperty(i,"runtimeDevices",{enumerable:!0,get:function(){return qO}}),Object.defineProperty(i,"runtimeStatePolicyFor",{enumerable:!0,get:function(){return jP}}),Object.defineProperty(i,"sceneMonitorCapability",{enumerable:!0,get:function(){return OI}}),Object.defineProperty(i,"scopeInherits",{enumerable:!0,get:function(){return Ew}}),Object.defineProperty(i,"scopeKey",{enumerable:!0,get:function(){return m.U}}),Object.defineProperty(i,"scopesAllowAddon",{enumerable:!0,get:function(){return on}}),Object.defineProperty(i,"scopesAllowDeviceCap",{enumerable:!0,get:function(){return rn}}),Object.defineProperty(i,"scoreRuntimes",{enumerable:!0,get:function(){return HO}}),Object.defineProperty(i,"scriptRunnerCapability",{enumerable:!0,get:function(){return xI}}),Object.defineProperty(i,"selectAssignedProfileSlots",{enumerable:!0,get:function(){return m.mt}}),Object.defineProperty(i,"serverManagementCapability",{enumerable:!0,get:function(){return ig}}),Object.defineProperty(i,"setByPath",{enumerable:!0,get:function(){return Fk}}),Object.defineProperty(i,"settingsStoreCapability",{enumerable:!0,get:function(){return io}}),Object.defineProperty(i,"sleep",{enumerable:!0,get:function(){return m.t}}),Object.defineProperty(i,"sleepCancellable",{enumerable:!0,get:function(){return m.n}}),Object.defineProperty(i,"smokeCapability",{enumerable:!0,get:function(){return DI}}),Object.defineProperty(i,"smtpProviderCapability",{enumerable:!0,get:function(){return lg}}),Object.defineProperty(i,"snapshotCapability",{enumerable:!0,get:function(){return pg}}),Object.defineProperty(i,"ssoBridgeCapability",{enumerable:!0,get:function(){return gg}}),Object.defineProperty(i,"startReachabilityPoll",{enumerable:!0,get:function(){return Uk}}),Object.defineProperty(i,"stateVocabularyFor",{enumerable:!0,get:function(){return ek}}),Object.defineProperty(i,"storageCapability",{enumerable:!0,get:function(){return fg}}),Object.defineProperty(i,"storageEvictableCapability",{enumerable:!0,get:function(){return hg}}),Object.defineProperty(i,"storageMigrationCapability",{enumerable:!0,get:function(){return Sg}}),Object.defineProperty(i,"storageProviderCapability",{enumerable:!0,get:function(){return xg}}),Object.defineProperty(i,"streamBrokerCapability",{enumerable:!0,get:function(){return ki}}),Object.defineProperty(i,"streamCatalogCapability",{enumerable:!0,get:function(){return BI}}),Object.defineProperty(i,"streamParamsCapability",{enumerable:!0,get:function(){return $I}}),Object.defineProperty(i,"streamPixels",{enumerable:!0,get:function(){return je}}),Object.defineProperty(i,"streamQualityLabel",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(i,"subKindsOf",{enumerable:!0,get:function(){return Dd}}),Object.defineProperty(i,"summarisePrivacyAudio",{enumerable:!0,get:function(){return vS}}),Object.defineProperty(i,"summarizeEffectiveScope",{enumerable:!0,get:function(){return _w}}),Object.defineProperty(i,"supportedRuntimes",{enumerable:!0,get:function(){return _O}}),Object.defineProperty(i,"switchCapability",{enumerable:!0,get:function(){return JI}}),Object.defineProperty(i,"switchedOffIds",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(i,"synthesizeSourceInfo",{enumerable:!0,get:function(){return go}}),Object.defineProperty(i,"systemCapability",{enumerable:!0,get:function(){return ij}}),Object.defineProperty(i,"tamperCapability",{enumerable:!0,get:function(){return sj}}),Object.defineProperty(i,"taskLogEntrySchema",{enumerable:!0,get:function(){return Sz}}),Object.defineProperty(i,"taskPhaseSchema",{enumerable:!0,get:function(){return vz}}),Object.defineProperty(i,"taskTargetSchema",{enumerable:!0,get:function(){return hz}}),Object.defineProperty(i,"temperatureSensorCapability",{enumerable:!0,get:function(){return dj}}),Object.defineProperty(i,"terminalSessionCapability",{enumerable:!0,get:function(){return _g}}),Object.defineProperty(i,"textToHtml",{enumerable:!0,get:function(){return pM}}),Object.defineProperty(i,"toDeviceSummary",{enumerable:!0,get:function(){return mk}}),Object.defineProperty(i,"toExpressionValue",{enumerable:!0,get:function(){return na}}),Object.defineProperty(i,"toNodeId",{enumerable:!0,get:function(){return m.R}}),Object.defineProperty(i,"toStreamSourceEntry",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(i,"toastCapability",{enumerable:!0,get:function(){return uj}}),Object.defineProperty(i,"toggleAudioLabel",{enumerable:!0,get:function(){return YP}}),Object.defineProperty(i,"tokenize",{enumerable:!0,get:function(){return En}}),Object.defineProperty(i,"transcodeBody",{enumerable:!0,get:function(){return fM}}),Object.defineProperty(i,"tryConvertUnit",{enumerable:!0,get:function(){return Zw}}),Object.defineProperty(i,"turnProviderCapability",{enumerable:!0,get:function(){return Ug}}),Object.defineProperty(i,"unitDimension",{enumerable:!0,get:function(){return $w}}),Object.defineProperty(i,"unitsForDimension",{enumerable:!0,get:function(){return Jw}}),Object.defineProperty(i,"updateCapability",{enumerable:!0,get:function(){return pj}}),Object.defineProperty(i,"userManagementCapability",{enumerable:!0,get:function(){return Mj}}),Object.defineProperty(i,"userPasskeysCapability",{enumerable:!0,get:function(){return Hg}}),Object.defineProperty(i,"vacuumControlCapability",{enumerable:!0,get:function(){return Aj}}),Object.defineProperty(i,"validateExpressionSource",{enumerable:!0,get:function(){return aa}}),Object.defineProperty(i,"validateRecipeBounds",{enumerable:!0,get:function(){return Ia}}),Object.defineProperty(i,"valveCapability",{enumerable:!0,get:function(){return xj}}),Object.defineProperty(i,"vectorDimFromBase64",{enumerable:!0,get:function(){return AO}}),Object.defineProperty(i,"vectorStoreCapability",{enumerable:!0,get:function(){return cz}}),Object.defineProperty(i,"vibrationCapability",{enumerable:!0,get:function(){return Dj}}),Object.defineProperty(i,"videoclipsCapability",{enumerable:!0,get:function(){return uz}}),Object.defineProperty(i,"viewerUiCapability",{enumerable:!0,get:function(){return m.b}}),Object.defineProperty(i,"waterHeaterCapability",{enumerable:!0,get:function(){return Fj}}),Object.defineProperty(i,"weatherCapability",{enumerable:!0,get:function(){return Lj}}),Object.defineProperty(i,"webrtcClientHintsSchema",{enumerable:!0,get:function(){return mz}}),Object.defineProperty(i,"webrtcSessionCapability",{enumerable:!0,get:function(){return gz}}),Object.defineProperty(i,"wiringAddonHealthSchema",{enumerable:!0,get:function(){return $}}),Object.defineProperty(i,"wiringHealthSnapshotSchema",{enumerable:!0,get:function(){return W}}),Object.defineProperty(i,"wiringNodeHealthSchema",{enumerable:!0,get:function(){return K}}),Object.defineProperty(i,"wiringProbeKindSchema",{enumerable:!0,get:function(){return V}}),Object.defineProperty(i,"wiringProbeResultSchema",{enumerable:!0,get:function(){return H}}),Object.defineProperty(i,"zodEntriesToConfigUI",{enumerable:!0,get:function(){return eP}}),Object.defineProperty(i,"zoneAnalyticsCapability",{enumerable:!0,get:function(){return Wj}}),Object.defineProperty(i,"zoneRulesCapability",{enumerable:!0,get:function(){return Zj}}),Object.defineProperty(i,"zonesCapability",{enumerable:!0,get:function(){return vp}});var d=c(t(o[0])),l=c(t(o[1])),u=t(o[2]),m=t(o[3]),p=t(o[4]),b=t(o[5]),g=t(o[6]),z=t(o[7]);function f(e,t){return{id:e,getRoutes:()=>t,invoke:async e=>{const n=y(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),i=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(i,r),a}}}function y(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],i=a[e];if(t.startsWith(":"))r[t.slice(1)]=i;else if(t!==i)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()}),I=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()})]),j=z.z.object({video:S,audio:I,inputArgs:z.z.array(z.z.string()).optional(),outputArgs:z.z.array(z.z.string()).optional()});function k(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 P={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"},M=Object.assign({},P,{video:Object.assign({},P.video,{bitrateKbps:3e3,gopFrames:30,preset:"ultrafast"}),audio:"passthrough"}),w=Object.assign({},P,{audio:{codec:"opus"}}),O={kind:"cbr",vbvSeconds:1},C={kind:"cap",vbvSeconds:2},A=360,N=400,E=24,x={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 F(e){return!e||"none"===e||"copy"===e}async function B(e){const t=e.override;if(null!=t&&""!==t)return F(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=F(a)?null:a;return e.cache?.write(r),r}function L(e){return{transport:!0===e.publishLocally?"push":"dial"}}var _="\0unset";function q(e,t=L(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=L(e)){return`egress:${(0,p.t)(q(e,t))}`}var V=z.z.enum(["singleton","device","widget"]),H=z.z.object({capName:z.z.string(),kind:V,deviceId:z.z.number().optional(),reachable:z.z.boolean(),latencyMs:z.z.number(),error:z.z.string().optional()}),$=z.z.object({addonId:z.z.string(),caps:z.z.array(H).readonly(),widgets:z.z.array(H).readonly()}),K=z.z.object({nodeId:z.z.string(),addons:z.z.array($).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 Y(e){const t=Z(e).placement;return"any-node"===t||"agent-only"===t}function J(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}function te(e){return!0===e.execution?.isolate}var ne=z.z.enum(["running","done","failed","cancelled"]),ae=z.z.enum(["adopted","already-adopted","failed","cancelled"]),re=z.z.object({childNativeId:z.z.string(),outcome:ae,parentDeviceId:z.z.number().int().nonnegative().nullable(),accessoryCount:z.z.number().int().nonnegative(),error:z.z.string().nullable()}),ie=z.z.object({jobId:z.z.string(),addonId:z.z.string(),integrationId:z.z.string(),state:ne,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(re).readonly(),startedAt:z.z.number(),finishedAt:z.z.number().nullable(),error:z.z.string().nullable()}),oe={cleanupIntervalMs:36e5,detectionEventsDays:30,audioLevelsDays:7,snapshotsDays:14},se=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"],de=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")})]),le=z.z.enum(["no-provider","source-unreachable","not-configured"]),ue=z.z.object({id:se,label:z.z.string(),costWhenOff:z.z.string(),available:z.z.boolean(),unavailableReason:le.optional(),enabled:z.z.boolean(),authority:de}),me=z.z.object({deviceId:z.z.number().int(),switches:z.z.array(ue).readonly(),fetchedAt:z.z.number()}),pe="detection-pipeline",be="audio-analysis",ge="privacy-mask",ze={"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:pe},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:ge},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:ge},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:be},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 fe(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=ze[t],a=fe(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 ve(e){return e.filter(e=>ze[e.id].countsAsSwitchedOff&&e.available&&!e.enabled).map(e=>e.id)}function he(e){const t=[],n=[];for(const a of ce){const r=ze[a];if(!r.countsAsSwitchedOff)continue;const i=fe(r,e);"source-unreachable"===i.unavailableReason?n.push(a):i.available&&!i.enabled&&t.push(a)}return{switchedOff:t,unreadable:n}}var Se={high:"High",mid:"Mid",low:"Low"};function Ie(e){return Se[e]??e.charAt(0).toUpperCase()+e.slice(1)}function je(e){return(e.width??0)*(e.height??0)}function ke(e){if(0===e.length)return[];const t=e.map((e,t)=>({s:e,i:t,px:je(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 i;i=0===e?"high":e===t.length-1?"low":"mid",n[r]=Object.assign({},a,{quality:i})}return n}function Pe(e){const t=e.height??0,n=e.width??0;return t>=1080||n>=1920?"high":t>=480||n>=640?"mid":"low"}function Me(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 we(e){return"string"==typeof e}function Oe(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Ce(e){return we(e)&&e.trim()?{url:e}:Oe(e)&&we(e.url)&&e.url.trim()?{url:e.url,label:we(e.label)?e.label:void 0}:null}function Ae(e){const t=we(e.snapshot_url)?e.snapshot_url:void 0;if(Array.isArray(e.streams)){const n=[];for(const t of e.streams){const e=Ce(t);e&&n.push(e)}return{streams:n,snapshot_url:t}}const n=[],a=we(e.main_stream_url)?e.main_stream_url:void 0;a&&n.push({url:a,label:we(e.main_stream_name)?e.main_stream_name:void 0});const r=we(e.sub_stream_url)?e.sub_stream_url:void 0;r&&n.push({url:r,label:we(e.sub_stream_name)?e.sub_stream_name:void 0});const i=we(e.third_stream_url)?e.third_stream_url:void 0;return i&&n.push({url:i,label:we(e.third_stream_name)?e.third_stream_name:void 0}),{streams:n,snapshot_url:t}}function Ne(e){if(0===e.length)return{};const t=ke(e),n={},a=t.find(e=>"high"===e.quality),r=t.find(e=>"mid"===e.quality),i=t.find(e=>"low"===e.quality);a&&(n.high=a.id),r&&(n.mid=r.id),i&&(n.low=i.id);const o=a??r??i??t[0];return o&&(n.high||(n.high=o.id),n.mid||(n.mid=o.id),n.low||(n.low=o.id)),n}var Ee={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 Te(e,t){return xe[e]<=xe[t]}var De=z.z.enum(["recording","events"]),Re=z.z.enum(["prune","manual-delete","rescan","retention-run","relocate","orphan-audit"]),Fe=z.z.enum(["retention","quota","manual","operator","maintenance"]),Be=z.z.object({id:z.z.string(),at:z.z.number(),domain:De,op:Re,reason:Fe,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()}),Le=z.z.object({deviceId:z.z.number().optional(),limit:z.z.number().int().min(1).max(1e3).optional()}),_e=500,qe=200,Ue={preMs:5e3,postMs:1e4},Ve=z.z.number().int().min(0).max(6),He=/^([01]\d|2[0-3]):[0-5]\d$/,$e=z.z.enum(["off","events","continuous"]),Ke=z.z.object({motion:z.z.boolean().optional(),audioThresholdDbfs:z.z.number().optional()}),We=z.z.enum(["continuous","events"]),Ge=Ke,Ze=z.z.object({days:z.z.array(Ve),start:z.z.string().regex(He),end:z.z.string().regex(He),mode:We,triggers:Ge.optional(),preBufferSec:z.z.number().min(0).optional(),postBufferSec:z.z.number().min(0).optional()}),Ye={preBufferSec:10,postBufferSec:30},Je=z.z.object({maxAgeDays:z.z.number().min(0).optional(),maxSizeGb:z.z.number().min(0).optional()}),Xe=z.z.enum(["minimal","low","standard","high","max"]),Qe="standard",et={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}},tt={minimal:"Minimal (240p)",low:"Low (320p)",standard:"Standard (480p)",high:"High (640p)",max:"Max (960p)"},nt=["minimal","low","standard","high","max"];function at(e){return et[e??"standard"]}var rt=z.z.object({enabled:z.z.boolean(),mode:$e.optional(),profiles:z.z.array(m.q).optional(),segmentSeconds:z.z.number().int().positive().optional(),bands:z.z.array(Ze).default([]),retention:Je.optional(),scrubThumbnails:Xe.optional()}).strict();function it(e){return e.enabled&&0!==e.bands.length?e.bands.some(e=>"continuous"===e.mode)?"continuous":"events":"off"}var ot=z.z.enum(["queued","running","done","failed","cancelled"]),st=z.z.object({jobId:z.z.string(),state:ot,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()}),ct=z.z.enum(["recordings","recordingsLow"]),dt=z.z.object({fromLocationId:z.z.string(),toLocationId:z.z.string(),entities:z.z.array(z.z.enum(["segments"])).optional(),footageClass:ct.optional(),deviceId:z.z.number().int().optional(),profiles:z.z.array(z.z.string()).optional(),throttleMbps:z.z.number().min(1).max(1e3).optional()}),lt=z.z.object({leaseId:z.z.string().min(1)}),ut=dt.extend({leaseId:z.z.string().min(1)}),mt=z.z.object({toLocationId:z.z.string(),throttleMbps:z.z.number().min(1).max(1e3).optional()}),pt=mt.extend({leaseId:z.z.string().min(1)}),bt=z.z.enum(["recordings","recordingsLow","eventMedia"]),gt=z.z.object({recordings:z.z.string().min(1).optional(),recordingsLow:z.z.string().min(1).optional(),eventMedia:z.z.string().min(1).optional()}).refine(e=>Object.keys(e).length>0,{message:"select at least one storage class"}),zt=z.z.object({destinations:gt,throttleMbps:z.z.number().min(1).max(1e3).optional()}),ft=z.z.enum(["planning","pausing","moving","verifying","repointing","refreshing","resuming","done","failed","cancelled"]),yt=z.z.enum(["pipeline","recorder","analytics"]),vt=z.z.object({storageClass:bt,fromLocationId:z.z.string(),toLocationId:z.z.string(),moverJobId:z.z.string().nullable(),state:ot.nullable(),error:z.z.string().nullable()}),ht=z.z.object({jobId:z.z.string(),phase:ft,destinations:gt,throttleMbps:z.z.number(),moves:z.z.array(vt),pauseLeaseId:z.z.string().nullable(),pausedParticipants:z.z.array(yt),repointed:z.z.boolean(),cancelRequested:z.z.boolean(),startedAt:z.z.number(),updatedAt:z.z.number(),finishedAt:z.z.number().nullable(),error:z.z.string().nullable()}),St=z.z.object({destinations:gt,moves:z.z.array(z.z.object({storageClass:bt,fromLocationId:z.z.string(),toLocationId:z.z.string()}))}),It=["face","plate"],jt=["face","plate","clip","custom"],kt=z.z.string().regex(/^[a-z][a-zA-Z0-9-]*$/),Pt=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),enabled:z.z.boolean().optional(),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([kt,z.z.string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/)]),wt=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()}),Ot=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()}),Ct=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()}),At={offsetHours:1,startMonth:3,startWeekIndex:5,startWeekday:"Sunday",startHour:2,endMonth:10,endWeekIndex:5,endWeekday:"Sunday",endHour:3},Nt={offsetHours:1,startMonth:3,startWeekIndex:2,startWeekday:"Sunday",startHour:2,endMonth:11,endWeekIndex:1,endWeekday:"Sunday",endHour:2},Et=[{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:At},{id:"Europe/Rome",label:"Europe/Rome (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:At},{id:"Europe/Paris",label:"Europe/Paris (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:At},{id:"Europe/Berlin",label:"Europe/Berlin (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:At},{id:"Europe/Madrid",label:"Europe/Madrid (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:At},{id:"Europe/Amsterdam",label:"Europe/Amsterdam (UTC+1 / CEST)",region:"Europe",stdOffsetMinutes:60,dst:At},{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:Nt},{id:"America/Chicago",label:"America/Chicago (UTC\u22126 / CDT)",region:"Americas",stdOffsetMinutes:-360,dst:Nt},{id:"America/Denver",label:"America/Denver (UTC\u22127 / MDT)",region:"Americas",stdOffsetMinutes:-420,dst:Nt},{id:"America/Los_Angeles",label:"America/Los Angeles (UTC\u22128 / PDT)",region:"Americas",stdOffsetMinutes:-480,dst:Nt},{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 xt(e){return Et.find(t=>t.id===e)}function Tt(e,t,n,a={}){if(0===e.length)return null;const r=`${n}/`,i=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 i(n)}const o=e.filter(e=>e.enabled&&e.url.length>0);if(0===o.length)return null;const s=a.targetResolution;if(s){const e=o.filter(e=>void 0!==e.resolution);if(e.length>0){const t=Dt(e,s);if(t)return i(t)}}return i(o[0])}function Dt(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 Rt=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()}),Ft=["onnx","coreml","openvino","tflite","pt"];function Bt(e){return e.toUpperCase()}function Lt(e,t){const n=Bt(e),a=t.replace(new RegExp(`^${n}\\s+`,"i"),"").trim();return a.length>0?a:t}function _t(e,t){const n=[];return"fast"===t&&n.push("Fast"),n.push("int8"===e?"Int8":"Standard"),n.join(" \xb7 ")}function qt(e){const t=Ft.map(t=>e.formats[t]?.sizeMB).filter(e=>"number"==typeof e);return t.length>0?Math.min(...t):0}var Ut=["n","s","m","l","x"],Vt=["fp32","int8"];function Ht(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,i=r.get(a)??[];i.push(n),r.set(a,i),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:_t(t,n),formats:(a=e,Ft.filter(e=>void 0!==a.formats[e])),sizeMB:qt(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:Vt.indexOf(e.precision)-Vt.indexOf(t.precision)),i=a.find(e=>"fp32"===e.precision&&"standard"===e.optimization&&void 0===e.resolution)??a[0];if(void 0===i)continue;const o=r.find(e=>e.id===i.modelId);t.push({tier:n,label:o?Lt(e,o.name):n.toUpperCase(),baseModelId:i.modelId,options:a})}t.sort((e,t)=>{const n=Ut.indexOf(e.tier),a=Ut.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:Bt(e),tiers:t})}return n.sort((e,t)=>e.family.localeCompare(t.family)),n}function $t(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 Kt(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 Wt=["onnx","coreml","openvino","tflite","pt","gguf"],Gt=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()}),Zt=z.z.object({url:z.z.string(),filename:z.z.string(),sizeMB:z.z.number()}),Yt=z.z.object({onnx:Gt.optional(),coreml:Gt.optional(),openvino:Gt.optional(),tflite:Gt.optional(),pt:Gt.optional(),gguf:Gt.optional()}),Jt=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()}),Xt=z.z.object({id:z.z.string(),name:z.z.string(),description:z.z.string(),formats:Yt,inputSize:z.z.object({width:z.z.number(),height:z.z.number()}),inputChannels:z.z.number().int().positive().optional(),labels:z.z.array(Rt).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(Zt).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:Jt.optional()}),Qt=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")})]),en=z.z.object({id:z.z.string().regex(/^[a-zA-Z0-9._-]+$/),name:z.z.string(),labels:z.z.array(Rt).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()}),tn=z.z.object({format:z.z.enum(Wt),precision:z.z.enum(["fp16","int8"]).optional(),sizeMB:z.z.number(),validated:z.z.boolean(),files:z.z.array(z.z.string()).readonly()}),nn=z.z.object({entry:Xt,artifacts:z.z.array(tn).readonly()});function an(e){switch(e.toUpperCase()){case"GET":case"HEAD":case"OPTIONS":return"view";case"POST":case"PUT":case"PATCH":return"create";default:return"delete"}}function rn(e,t){return e.some(e=>"category"===e.type&&"device"===e.target&&e.access.includes(t))}function on(e,t,n){return e.some(e=>"addon"===e.type&&e.target===t&&e.access.includes(n))}function sn(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 cn(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=an(e.method);return on(e.scopes,e.addonId,n)?{allowed:!0}:{allowed:!1,reason:`integration token holds no addon:${e.addonId}[${n}] grant`}}var dn=class extends Error{constructor(e,t){super(e),this.name="ExpressionParseError",this.position=t}},ln=class extends Error{constructor(e){super(e),this.name="ExpressionEvalError"}};function un(e,t,n){if("number"!=typeof e||!Number.isFinite(e))throw new ln(`${t}: argument ${n+1} must be a finite number`);return e}function mn(e,t,n){if("string"!=typeof e)throw new ln(`${t}: argument ${n+1} must be a string`);return e}function pn(e,t){if(!Number.isFinite(e))throw new ln(`${t}: produced a non-finite result`);return e}function bn(e,t){return e.map((e,n)=>un(e,t,n))}var gn=Number.POSITIVE_INFINITY,zn={min:{minArgs:1,maxArgs:gn,apply:e=>pn(Math.min(...bn(e,"min")),"min")},max:{minArgs:1,maxArgs:gn,apply:e=>pn(Math.max(...bn(e,"max")),"max")},abs:{minArgs:1,maxArgs:1,apply:e=>pn(Math.abs(un(e[0],"abs",0)),"abs")},floor:{minArgs:1,maxArgs:1,apply:e=>pn(Math.floor(un(e[0],"floor",0)),"floor")},ceil:{minArgs:1,maxArgs:1,apply:e=>pn(Math.ceil(un(e[0],"ceil",0)),"ceil")},sqrt:{minArgs:1,maxArgs:1,apply:e=>pn(Math.sqrt(un(e[0],"sqrt",0)),"sqrt")},round:{minArgs:1,maxArgs:2,apply:e=>{const t=un(e[0],"round",0),n=e.length>1?Math.trunc(un(e[1],"round",1)):0;if(n<0||n>100)throw new ln("round: digits must be between 0 and 100");const a=10**n;return pn(Math.round(t*a)/a,"round")}},pow:{minArgs:2,maxArgs:2,apply:e=>pn(un(e[0],"pow",0)**un(e[1],"pow",1),"pow")},clamp:{minArgs:3,maxArgs:3,apply:e=>{const t=un(e[0],"clamp",0),n=un(e[1],"clamp",1),a=un(e[2],"clamp",2);if(n>a)throw new ln("clamp: lower bound is greater than upper bound");return pn(Math.min(a,Math.max(n,t)),"clamp")}},avg:{minArgs:1,maxArgs:gn,apply:e=>{const t=bn(e,"avg");return pn(t.reduce((e,t)=>e+t,0)/t.length,"avg")}},sum:{minArgs:1,maxArgs:gn,apply:e=>pn(bn(e,"sum").reduce((e,t)=>e+t,0),"sum")},coalesce:{minArgs:1,maxArgs:gn,apply:e=>{for(const t of e)if(null!==t)return t;return null}},age:{minArgs:2,maxArgs:2,apply:e=>pn(un(e[0],"age",0)-un(e[1],"age",1),"age")},convert:{minArgs:3,maxArgs:3,apply:(e,t)=>{const n=un(e[0],"convert",0),a=mn(e[1],"convert",1).trim(),r=mn(e[2],"convert",2).trim();if(t.convert){const e=t.convert(n,a,r);if(null===e)throw new ln(`convert: cannot convert '${a}' to '${r}'`);return pn(e,"convert")}if(a===r)return n;throw new ln("convert: unit conversion table not installed")}}},fn=Object.freeze(Object.assign(Object.create(null),zn)),yn=new Set(Object.keys(zn)),vn=2048,hn=256,Sn=4096,In=32,jn=16,kn=256,Pn=/^[A-Za-z_][A-Za-z0-9_]*$/,Mn=new Set(["now","true","false","null"]),wn=new Set(["true","false","null"]);function On(e){return e>="0"&&e<="9"}function Cn(e){return e>="A"&&e<="Z"||e>="a"&&e<="z"||"_"===e}function An(e){return Cn(e)||On(e)}function Nn(e){return" "===e||"\t"===e||"\n"===e||"\r"===e||"\f"===e||"\v"===e}function En(e){if(e.length>2048)throw new dn(`expression too long (${e.length} > ${vn} chars)`,0);const t=[];let n=0;const a=e.length;for(;n<a;){const r=e[n];if(Nn(r)){n+=1;continue}if(On(r)){const r=n;for(;n<a&&On(e[n]);)n+=1;if(n<a&&"."===e[n]){if(n+1>=a||!On(e[n+1]))throw new dn("malformed number: decimal point needs a digit",n);for(n+=1;n<a&&On(e[n]);)n+=1}const i=e.slice(r,n),o=Number(i);if(!Number.isFinite(o))throw new dn(`malformed number: '${i}'`,r);t.push({type:"number",value:o,pos:r});continue}if("'"===r||"\""===r){const i=r,o=n;n+=1;let s="",c=!1;for(;n<a;){const t=e[n];if("\\"===t){const t=n+1<a?e[n+1]:"";if("\\"===t||"'"===t||"\""===t){s+=t,n+=2;continue}throw new dn(`invalid string escape: '\\${t}'`,n)}if(t===i){c=!0,n+=1;break}s+=t,n+=1}if(!c)throw new dn("unterminated string literal",o);t.push({type:"string",value:s,pos:o});continue}if(Cn(r)){const r=n;for(;n<a&&An(e[n]);)n+=1;const i=e.slice(r,n);wn.has(i)?t.push({type:"keyword",keyword:xn(i),pos:r}):t.push({type:"identifier",name:i,pos:r});continue}const i=n+1<a?e.slice(n,n+2):"";if("<="!==i&&">="!==i&&"=="!==i&&"!="!==i&&"&&"!==i&&"||"!==i){if(!Tn(r))throw new dn(`unexpected character '${r}'`,n);t.push({type:"punct",punct:r,pos:n}),n+=1}else t.push({type:"punct",punct:i,pos:n}),n+=2}return t.push({type:"eof",pos:a}),t}function xn(e){return"true"===e?"true":"false"===e?"false":"null"}function Tn(e){return"("===e||")"===e||","===e||"?"===e||":"===e||"+"===e||"-"===e||"*"===e||"/"===e||"%"===e||"!"===e||"<"===e||">"===e}var Dn={"||":1,"&&":2,"==":3,"!=":3,"<":4,"<=":4,">":4,">=":4,"+":5,"-":5,"*":6,"/":6,"%":6};function Rn(e){return"&&"===e||"||"===e}function Fn(e){return"+"===e||"-"===e||"*"===e||"/"===e||"%"===e||"=="===e||"!="===e||"<"===e||"<="===e||">"===e||">="===e}var Bn=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 dn("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 dn(`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 dn("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=Dn[n.punct];if(void 0===a||a<e)break;const r=n.punct;this.pos+=1;const i=this.parseBinary(a+1);if(this.countNode(),Rn(r))t={kind:"logical",op:r,left:t,right:i};else{if(!Fn(r))throw new dn(`unexpected operator '${r}'`,n.pos);t={kind:"binary",op:r,left:t,right:i}}}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 dn(`unexpected token '${e.punct}'`,e.pos);case"eof":throw new dn("unexpected end of expression",e.pos)}}parseCall(e,t){if(!yn.has(e))throw new dn(`unknown function '${e}'`,t);this.expectPunct("(");const n=[];if(!this.matchPunct(")"))for(;;){if(n.push(this.parseTernary()),n.length>16)throw new dn(`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 Ln(e){return new Bn(En(e)).parse()}var _n=new Map;function qn(e){const t=_n.get(e);if(void 0!==t)return _n.delete(e),_n.set(e,t),t;let n;try{n={ok:!0,parsed:Ln(e)}}catch(e){n={ok:!1,error:e instanceof dn?e.message:String(e)}}if(_n.set(e,n),_n.size>256){const e=_n.keys().next().value;void 0!==e&&_n.delete(e)}return n}function Un(e){const t=qn(e);if(t.ok)return t.parsed;throw new dn(t.error)}function Vn(e){return qn(e)}var Hn=Object.freeze({});function $n(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 Kn(e){return"number"==typeof e&&Number.isFinite(e)}function Wn(e){return Boolean(e)}function Gn(e,t){if(!Number.isFinite(e))throw new ln(`${t} produced a non-finite result`);return e}function Zn(e){if(e.steps+=1,e.steps>e.maxSteps)throw new ln("expression evaluation step budget exceeded")}function Yn(e,t){switch(Zn(t),e.kind){case"literal":return e.value;case"identifier":if(!(e.name in t.scope))throw new ln(`unknown identifier: ${e.name}`);return t.scope[e.name];case"unary":return Jn(e.op,Yn(e.operand,t));case"binary":return Xn(e.op,Yn(e.left,t),Yn(e.right,t));case"logical":{const n=Yn(e.left,t);return"&&"===e.op?Wn(n)?Yn(e.right,t):n:Wn(n)?n:Yn(e.right,t)}case"conditional":return Wn(Yn(e.test,t))?Yn(e.consequent,t):Yn(e.alternate,t);case"call":return Qn(e.callee,e.args.map(e=>Yn(e,t)),t.hooks)}}function Jn(e,t){if("!"===e)return!Wn(t);if(!Kn(t))throw new ln("unary \"-\" requires a finite number");return Gn(-t,"unary \"-\"")}function Xn(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(Kn(t)&&Kn(n))return Gn(t+n,"\"+\"");throw new ln("\"+\" requires two numbers or two strings");case"-":case"*":case"/":case"%":if(!Kn(t)||!Kn(n))throw new ln(`"${e}" requires two finite numbers`);return Gn("-"===e?t-n:"*"===e?t*n:"/"===e?t/n:t%n,`"${e}"`);case"<":case"<=":case">":case">=":if(Kn(t)&&Kn(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 ln(`"${e}" requires two numbers or two strings`)}}function Qn(e,t,n){if(!Object.prototype.hasOwnProperty.call(fn,e))throw new ln(`unknown function: ${e}`);const a=fn[e];if(t.length<a.minArgs||t.length>a.maxArgs)throw new ln(`${e}: wrong number of arguments (${t.length})`);return a.apply(t,n)}function ea(e,t,n){return Yn(e,{scope:t,hooks:n?.hooks??Hn,maxSteps:n?.maxSteps??4096,steps:0})}var ta="now";function na(e){return null===e?null:"string"==typeof e||"boolean"==typeof e||"number"==typeof e&&Number.isFinite(e)?e:void 0}function aa(e){const t=Object.keys(e.bindings);if(t.length>32)return`too many bindings (${t.length} > 32)`;for(const e of t){if(!Pn.test(e))return`invalid binding name '${e}'`;if(Mn.has(e))return`binding name '${e}' is reserved`;if(yn.has(e))return`binding name '${e}' shadows a builtin function`}const n=Vn(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 ra(e,t,n,a){const r=Vn(e);if(!r.ok)return{ok:!1,error:r.error};const i=$n(Object.assign({},t,{now:n}));try{return{ok:!0,value:ea(r.parsed.ast,i,a)}}catch(e){return{ok:!1,error:e instanceof ln?e.message:String(e)}}}var ia=z.z.object({kind:z.z.literal("field").optional(),sourceKey:z.z.string(),cap:z.z.string(),fieldPath:z.z.string()}),oa=z.z.object({kind:z.z.literal("literal"),value:z.z.union([z.z.string(),z.z.number(),z.z.boolean(),z.z.null()])}),sa=z.z.object({kind:z.z.literal("global"),sourceStableId:z.z.string(),cap:z.z.string(),fieldPath:z.z.string()}),ca=z.z.union([ia,oa,sa]),da=z.z.object({expr:z.z.string().min(1).max(vn),bindings:z.z.record(z.z.string().regex(Pn),ca)}).superRefine((e,t)=>{const n=aa(e);null!==n&&t.addIssue({code:"custom",message:n,path:["expr"]})}),la=3,ua=32,ma=z.z.enum(["eq","ne","gt","gte","lt","lte","contains","in"]),pa=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:ma,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()]))])}),ba=z.z.object({kind:z.z.literal("expression"),expr:z.z.string().min(1).max(vn),bindings:z.z.record(z.z.string().regex(Pn),ca)}).superRefine((e,t)=>{const n=aa(e);null!==n&&t.addIssue({code:"custom",message:n,path:["expr"]})}),ga=z.z.lazy(()=>z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("all"),children:z.z.array(ga)}),z.z.object({kind:z.z.literal("any"),children:z.z.array(ga)}),z.z.object({kind:z.z.literal("not"),child:ga}),pa,ba])),za=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")})]),fa=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)})]),ya=z.z.object({triggers:z.z.array(za),conditions:ga.optional(),actions:z.z.array(fa)});function va(e){if("condition"===e.kind||"expression"===e.kind)return 1;if("not"===e.kind)return 1+va(e.child);const t=e.children;if(0===t.length)return 1;let n=0;for(const e of t){const t=va(e);t>n&&(n=t)}return 1+n}function ha(e){if("condition"===e.kind||"expression"===e.kind)return 1;if("not"===e.kind)return ha(e.child);let t=0;for(const n of e.children)t+=ha(n);return t}function Sa(e){return"condition"!==e.kind&&"expression"!==e.kind&&("not"===e.kind?Sa(e.child):0===e.children.length||e.children.some(Sa))}function Ia(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(Sa(t))return"a condition group is empty \u2014 group existing rows instead of leaving a container to fill";const e=va(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=ha(t);if(n>32)return`conditions use ${n} leaves \u2014 the limit is 32`}return null}var ja=15e3;function ka(e){return JSON.stringify(e)}function Pa(e,t){switch(e.kind){case"all":return`allOf([\n${e.children.map(e=>`${t} () => ${Pa(e,`${t} `)}`).join(",\n")}\n${t}])`;case"any":return`anyOf([\n${e.children.map(e=>`${t} () => ${Pa(e,`${t} `)}`).join(",\n")}\n${t}])`;case"not":return`notOf(() => ${Pa(e.child,t)})`;case"condition":return`leaf(${ka(e.deviceId)}, ${ka(e.cap)}, ${ka(e.fieldPath)}, ${ka(e.operator)}, ${ka(e.value)})`;case"expression":return`exprLeaf(${ka(e.expr)}, ${ka(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(${ka(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: ${ka(e.category)}${void 0===e.deviceId?"":`, deviceId: ${ka(e.deviceId)}`} },\n (event) => {\n void run({\n kind: 'device-event',\n at: Date.now(),\n deviceId: event.deviceId,\n category: ${ka(e.category)},\n })\n },\n ),\n )`;case"device-state":{const n=void 0===e.becomes?"undefined":ka(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(${ka(e.deviceId)}, ${ka(e.cap)}, ${ka(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 = ${ka(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: ${ka(e.deviceId)},\n cap: ${ka(e.cap)},\n field: ${ka(e.fieldPath)},\n to: value,\n })\n }\n const wake = (): void => {\n if (debounce !== undefined) clearTimeout(debounce)\n debounce = setTimeout(() => { void check() }, ${ka(e.debounceMs??0)})\n }\n disposers.push(\n ctx.eventBus.subscribe({ category: 'device.state-changed', deviceId: ${ka(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 wa(e,t){switch(e.kind){case"wait":return` case ${t}: await sleep(${ka(1e3*e.seconds)}); break`;case"cap":return` case ${t}: {\n const deviceId = ${"number"==typeof e.deviceId?ka(e.deviceId):`resolveTarget(vars, ${ka(e.deviceId.$var)})`}\n await actuate(deviceId, ${ka(e.cap)}, ${ka(e.method)}, ${ka(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 Oa(e){const t=Ia(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 ${Pa(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 = ${ja}\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)=>wa(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 Ca=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()}),Aa=z.z.object({addonId:z.z.string(),page:Ca,bundleUrl:z.z.string()}),Na={name:"addon-pages",scope:"system",mode:"singleton",methods:{listPages:(0,m.M)(z.z.void(),z.z.array(Aa).readonly())}},Ea=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()}),xa={name:"addon-pages-source",scope:"system",mode:"collection",internal:!0,methods:{listPages:(0,m.M)(z.z.void(),z.z.array(Ea).readonly())}},Ta=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()}),Da=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()}),Ra=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()}),Fa={name:"addon-routes",scope:"system",mode:"collection",internal:!0,methods:{getRoutes:(0,m.M)(z.z.void(),z.z.array(Ta)),invoke:(0,m.M)(Da,Ra,{kind:"mutation"})},mount:{kind:"skip"}},Ba=z.z.object({id:z.z.string(),label:z.z.string(),icon:z.z.string(),order:z.z.number().optional()}),La=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())}),_a=z.z.object({tabs:z.z.array(Ba).optional(),sections:z.z.array(La)}),qa=z.z.record(z.z.string(),z.z.unknown()),Ua=z.z.object({success:z.z.literal(!0)}),Va={name:"addon-settings",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{getGlobalSettings:(0,m.M)(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()}),_a.nullable()),updateGlobalSettings:(0,m.M)(z.z.object({addonId:z.z.string(),nodeId:z.z.string().optional(),patch:qa}),Ua,{kind:"mutation",auth:"admin"}),getDeviceSettings:(0,m.M)(z.z.object({addonId:z.z.string(),deviceId:z.z.number(),nodeId:z.z.string().optional()}),_a.nullable()),updateDeviceSettings:(0,m.M)(z.z.object({addonId:z.z.string(),deviceId:z.z.number(),nodeId:z.z.string().optional(),patch:qa}),Ua,{kind:"mutation",auth:"admin"})}},Ha=z.z.enum(["device-tab","dashboard","integration-detail"]),$a=z.z.enum(["xs","sm","md","lg","xl"]),Ka=z.z.object({remoteName:z.z.string(),exposedModule:z.z.string(),componentKey:z.z.string().optional()}),Wa=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:Ka,stableId:z.z.string(),description:z.z.string().optional(),icon:z.z.string().optional(),bundle:z.z.string(),hosts:z.z.array(Ha).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:$a.default("md"),allowedSizes:z.z.array($a).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)}),Ga={name:"addon-widgets-source",scope:"system",mode:"collection",internal:!0,methods:{listWidgets:(0,m.M)(z.z.void(),z.z.array(Wa).readonly())}},Za=Wa.extend({addonId:z.z.string(),bundleUrl:z.z.string()}),Ya={name:"addon-widgets",scope:"system",mode:"singleton",methods:{listWidgets:(0,m.M)(z.z.void(),z.z.array(Za).readonly())}},Ja=z.z.enum(["info","success","warning","error"]),Xa=z.z.enum(["active","in-progress","completed","failed","dismissed"]),Qa=z.z.object({type:z.z.string(),id:z.z.string()}),er=z.z.object({id:z.z.string(),category:z.z.string(),severity:Ja,title:z.z.string(),message:z.z.string(),status:Xa,progress:z.z.number().optional(),read:z.z.boolean(),createdAt:z.z.number(),updatedAt:z.z.number(),source:Qa.optional(),metadata:z.z.record(z.z.string(),z.z.unknown()).optional()}),tr={name:"alerts",scope:"system",mode:"singleton",methods:{emit:(0,m.M)(er,z.z.void(),{kind:"mutation"}),update:(0,m.M)(z.z.object({alertId:z.z.string(),patch:er.partial()}),z.z.void(),{kind:"mutation"}),list:(0,m.M)(z.z.object({unreadOnly:z.z.boolean().optional(),limit:z.z.number().optional()}).optional(),z.z.array(er).readonly()),getUnreadCount:(0,m.M)(z.z.void(),z.z.number()),markRead:(0,m.M)(z.z.object({alertId:z.z.string()}),z.z.void(),{kind:"mutation"}),markAllRead:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation"}),dismiss:(0,m.M)(z.z.object({alertId:z.z.string()}),z.z.void(),{kind:"mutation"})}},nr={name:"audio-analysis",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],exposesDeviceSettings:!0,methods:{resolveDeviceSettings:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.custom())},events:{onAudioLevel:(0,m.k)(z.z.object({deviceId:z.z.number(),rms:z.z.number(),dbfs:z.z.number()}))}},ar=z.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),rr=z.z.object({data:z.z.custom(),format:ar,width:z.z.number(),height:z.z.number(),timestamp:z.z.number()}),ir=z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),or=z.z.object({class:z.z.string(),originalClass:z.z.string(),score:z.z.number(),bbox:ir}),sr=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()}),cr=z.z.object({rms:z.z.number(),dbfs:z.z.number()}),dr=z.z.object({className:z.z.string(),originalClass:z.z.string().optional(),score:z.z.number()}),lr=z.z.object({level:cr,classification:z.z.object({labels:z.z.array(dr).readonly(),inferenceMs:z.z.number()}).optional(),timestamp:z.z.number()}),ur=z.z.object({minConfidence:z.z.number().min(0).max(1).default(.3),allowedClasses:z.z.array(z.z.string()).default([])}),mr=z.z.object({labels:z.z.array(dr).readonly(),rawLabels:z.z.array(dr).readonly().optional(),inferenceMs:z.z.number()}),pr=[{value:"auto",label:"Auto (platform default)"},{value:"apple-soundanalysis",label:"Apple SoundAnalysis (macOS 12+)"},{value:"yamnet-onnx",label:"YAMNet ONNX (cross-platform)"}],br={audioBackend:"auto",probedBestAudioBackend:"",selectedAudioModel:""},gr={name:"audio-analyzer",scope:"system",mode:"singleton",methods:{analyseChunk:(0,m.M)(z.z.object({chunk:sr,settings:ur}),lr.nullable(),{kind:"mutation"}),classify:(0,m.M)(sr,mr,{timeoutMs:3e4}),isReady:(0,m.M)(z.z.void(),z.z.boolean()),dispose:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation"}),reprobeAudioEngine:(0,m.M)(z.z.void(),z.z.object({backend:z.z.string()}),{kind:"mutation",auth:"admin"})}},zr=z.z.enum(["f32le","s16le"]),fr=z.z.object({codec:z.z.string(),canDecode:z.z.boolean(),canEncode:z.z.boolean(),label:z.z.string().optional()}),yr=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:zr.optional(),idleMs:z.z.number().int().positive().optional(),tag:z.z.string().optional()}),vr=z.z.object({codec:z.z.string(),sourceSampleRate:z.z.number().int().positive(),sourceChannels:z.z.number().int().positive(),sourceFormat:zr.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()}),hr=z.z.object({data:z.z.instanceof(Uint8Array),sampleRate:z.z.number().int().positive(),channels:z.z.number().int().positive(),format:zr,pts:z.z.number()}),Sr=z.z.object({data:z.z.instanceof(Uint8Array),codec:z.z.string(),pts:z.z.number(),frameComplete:z.z.boolean()}),Ir=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:zr,tag:z.z.string().optional(),createdAtMs:z.z.number(),lastActivityMs:z.z.number(),framesIn:z.z.number(),framesOut:z.z.number()}),jr={name:"audio-codec",scope:"system",mode:"singleton",preferredProvider:"decoder-nodeav",methods:{listSupportedCodecs:(0,m.M)(z.z.void(),z.z.array(fr).readonly()),canHandle:(0,m.M)(z.z.object({codec:z.z.string(),kind:z.z.enum(["decode","encode"])}),z.z.boolean()),createDecodeSession:(0,m.M)(yr,z.z.object({sessionId:z.z.string(),nodeId:z.z.string()}),{kind:"mutation"}),createEncodeSession:(0,m.M)(vr,z.z.object({sessionId:z.z.string(),nodeId:z.z.string()}),{kind:"mutation"}),closeSession:(0,m.M)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional()}),z.z.void(),{kind:"mutation"}),pushEncodedFrame:(0,m.M)(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.M)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional(),maxCount:z.z.number().int().positive().default(8)}),z.z.array(hr)),pushPcm:(0,m.M)(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.M)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional(),maxCount:z.z.number().int().positive().default(8)}),z.z.array(Sr)),flushEncode:(0,m.M)(z.z.object({sessionId:z.z.string(),nodeId:z.z.string().optional()}),z.z.array(Sr),{kind:"mutation"}),listActiveSessions:(0,m.M)(z.z.void(),z.z.array(Ir).readonly())}},kr=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)}),Pr={name:"auth-provider",scope:"system",mode:"collection",internal:!0,methods:{validateCredentials:(0,m.M)(z.z.object({username:z.z.string(),password:z.z.string()}),kr.nullable(),{kind:"mutation"}),getLoginUrl:(0,m.M)(z.z.object({state:z.z.string()}),z.z.string()),handleCallback:(0,m.M)(z.z.record(z.z.string(),z.z.string()),kr,{kind:"mutation"}),validateToken:(0,m.M)(z.z.object({token:z.z.string()}),kr.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()}),wr=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()}),Or=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()}),Cr=z.z.object({path:z.z.string(),kind:z.z.enum(["file","dir","symlink"]),sizeBytes:z.z.number(),mtime:z.z.number()}),Ar=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(Cr),totalBytes:z.z.number(),totalFiles:z.z.number()}),Nr=z.z.object({name:z.z.string(),sizeBytes:z.z.number(),fileCount:z.z.number(),present:z.z.boolean()}),Er=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()}),xr={name:"backup",scope:"system",mode:"singleton",methods:{listDestinations:(0,m.M)(z.z.void(),z.z.array(Mr).readonly(),{auth:"admin"}),trigger:(0,m.M)(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(Or).readonly(),{kind:"mutation",auth:"admin"}),list:(0,m.M)(z.z.void(),z.z.array(Or).readonly(),{auth:"admin"}),listLocations:(0,m.M)(z.z.void(),z.z.array(Nr).readonly(),{auth:"admin"}),getEntries:(0,m.M)(z.z.object({destinationId:z.z.string(),backupId:z.z.string()}),Ar.nullable(),{auth:"admin"}),restore:(0,m.M)(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.M)(z.z.object({destinationId:z.z.string(),backupId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listArchives:(0,m.M)(z.z.object({destinationId:z.z.string()}),z.z.array(wr).readonly(),{auth:"admin"}),upsertDestinationPolicy:(0,m.M)(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.M)(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.M)(z.z.void(),z.z.array(Er).readonly(),{auth:"admin"}),upsertSchedule:(0,m.M)(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()}),Er,{kind:"mutation",auth:"admin"}),deleteSchedule:(0,m.M)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"})}},Tr=z.z.enum(["connected","disconnected","connecting","auth-failed","unreachable","error"]),Dr=z.z.object({id:z.z.string(),addonId:z.z.string(),name:z.z.string(),kind:z.z.string(),status:Tr,info:z.z.record(z.z.string(),z.z.unknown()),lastCheckedAt:z.z.number().nullable(),error:z.z.string().nullable()}),Rr=z.z.object({brokerCount:z.z.number().int().nonnegative(),connectedCount:z.z.number().int().nonnegative()}),Fr=z.z.object({addonId:z.z.string(),kinds:z.z.array(z.z.object({kind:z.z.string(),label:z.z.string()}))}),Br=z.z.object({kind:z.z.string().optional()}),Lr=z.z.object({id:z.z.string()}),_r=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())}),qr=z.z.object({id:z.z.string()}),Ur=z.z.object({id:z.z.string()}),Vr=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()})]),Hr=z.z.record(z.z.string(),z.z.unknown()),$r=z.z.object({kind:z.z.string()}),Kr=z.z.object({kind:z.z.string(),settings:Hr}),Wr=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()})]),Gr=z.z.unknown().nullable(),Zr=z.z.object({brokerId:z.z.string(),target:z.z.record(z.z.string(),z.z.unknown()),payload:z.z.unknown().optional()}),Yr=z.z.object({brokerId:z.z.string(),filter:z.z.record(z.z.string(),z.z.unknown())}),Jr=z.z.object({subscriptionId:z.z.string()}),Xr=z.z.object({brokerId:z.z.string(),subscriptionId:z.z.string()}),Qr=z.z.object({brokerId:z.z.string(),key:z.z.string()}),ei={name:"broker",scope:"system",mode:"collection",providerKind:"broker",status:{schema:Rr,kind:"poll"},methods:{list:(0,m.M)(Br,z.z.array(Dr)),get:(0,m.M)(Lr,Dr.nullable()),listProviders:(0,m.M)(z.z.void(),z.z.array(Fr),{auth:"admin"}),add:(0,m.M)(_r,qr,{kind:"mutation",auth:"admin"}),remove:(0,m.M)(Ur,z.z.void(),{kind:"mutation",auth:"admin"}),testConnection:(0,m.M)(Lr,Vr,{kind:"mutation",auth:"admin"}),getSettings:(0,m.M)(Lr,Hr.nullable(),{auth:"admin"}),setSettings:(0,m.M)(z.z.object({id:z.z.string(),settings:Hr}),z.z.void(),{kind:"mutation",auth:"admin"}),getBrokerConfig:(0,m.M)(Lr,Hr.nullable(),{auth:"admin"}),getSettingsSchema:(0,m.M)($r,Gr,{auth:"admin"}),testSettings:(0,m.M)(Kr,Wr,{kind:"mutation",auth:"admin"}),publish:(0,m.M)(Zr,z.z.unknown(),{kind:"mutation",auth:"admin"}),subscribe:(0,m.M)(Yr,Jr,{kind:"mutation",auth:"admin"}),unsubscribe:(0,m.M)(Xr,z.z.void(),{kind:"mutation",auth:"admin"}),getState:(0,m.M)(Qr,z.z.unknown().nullable()),getStatus:(0,m.M)(z.z.void(),Rr)}},ti={name:"camera-pipeline-config",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],exposesDeviceSettings:!0,methods:{}},ni=z.z.enum(["webrtc","hls","mjpeg","rtsp"]),ai=z.z.enum(["mp4","gif"]),ri=z.z.object({kind:ai,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()}),ii=z.z.object({fromTs:z.z.number(),toTs:z.z.number(),packets:z.z.number().int()}),oi=z.z.object({media:z.z.array(ri).readonly(),coverage:ii,profile:m.q,video:z.z.enum(["copy","encode"])}),si=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()}),ci=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()}),di=z.z.object({tag:z.z.string(),subscribedAt:z.z.number(),maxFps:z.z.number(),framesDelivered:z.z.number(),framesDropped:z.z.number()}),li=z.z.object({tag:z.z.string(),subscribedAt:z.z.number(),chunksDelivered:z.z.number()}),ui=z.z.enum(["alexa","homekit","webrtc-browser","webrtc-mobile","webrtc-whep","rtsp-listen","derived-broker","recording","pipeline","snapshot","warmup","unknown"]),mi=z.z.object({kind:ui,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(),pi=z.z.object({id:z.z.string(),channel:z.z.enum(["annexb","rtp"]),attribution:mi,subscribedAt:z.z.number(),packetsDelivered:z.z.number()}),bi=z.z.object({rtsp:z.z.array(ci).readonly(),decoded:z.z.array(di).readonly(),audio:z.z.array(li).readonly(),encoded:z.z.array(pi).readonly(),pipeClients:z.z.number(),encodedSubscribers:z.z.number()}),gi=z.z.enum(["reconnecting","sleeping","offline","disabled","waking"]),zi=z.z.enum(["h264","h265","copy"]),fi=z.z.enum(["aac","opus","pcmu","copy","none"]),yi=z.z.object({deviceId:z.z.number().int().nonnegative(),video:zi,audio:fi.optional(),profile:m.q.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()}),vi=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()}),hi=j.omit({inputArgs:!0,outputArgs:!0}),Si=z.z.enum(["tight","relaxed"]),Ii=z.z.object({deviceId:z.z.number().int().nonnegative(),source:z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("profile"),profile:m.q}),z.z.object({kind:z.z.literal("cam-stream"),camStreamId:z.z.string().min(1)})]),encode:hi,rateControl:Si.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()}),ji=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()}),ki={name:"stream-broker",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{publishCameraStream:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string().min(1),kind:m.J,url:z.z.string().optional(),codec:z.z.string().optional(),resolution:m.Y.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:j.optional()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),retractCameraStream:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.q,camStreamId:z.z.string().min(1)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignProfile:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.q}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),renderPreBufferClip:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:m.q.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.q,durationMs:z.z.number()}),{kind:"mutation",auth:"admin"}),produceEventMedia:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:m.q.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(ai).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)}),oi,{kind:"mutation",auth:"admin"}),fetchEventMedia:(0,m.M)(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.M)(z.z.void(),z.z.array(m.X).readonly()),listAllProfileSlots:(0,m.M)(z.z.void(),z.z.array(m.rt).readonly()),getBrokerStats:(0,m.M)(z.z.object({brokerId:z.z.string()}),m.W),probeStream:(0,m.M)(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.M)(z.z.object({brokerId:z.z.string()}),bi),killClient:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.q}),z.z.object({success:z.z.boolean()}),{kind:"mutation",auth:"admin"}),getStreamUrl:(0,m.M)(z.z.object({streamId:z.z.string(),format:ni}),z.z.object({url:z.z.string()})),getStreamWithCodec:(0,m.M)(yi,vi,{kind:"mutation",auth:"admin"}),releaseStreamWithCodec:(0,m.M)(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.M)(Ii,ji,{kind:"mutation",auth:"admin"}),releaseEgressTranscode:(0,m.M)(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.M)(m.st,m.ct,{kind:"mutation"}),pullAudioChunks:(0,m.M)(z.z.object({subscriptionId:z.z.string(),maxCount:z.z.number().int().positive().default(8)}),z.z.array(m.Z).readonly()),unsubscribeAudioChunks:(0,m.M)(z.z.object({subscriptionId:z.z.string()}),z.z.object({released:z.z.boolean()}),{kind:"mutation"}),subscribeFrames:(0,m.M)(m.lt,m.ut,{kind:"mutation"}),pullFrameHandles:(0,m.M)(z.z.object({subscriptionId:z.z.string(),maxCount:z.z.number().int().positive().default(4)}),z.z.array(m.tt).readonly()),unsubscribeFrames:(0,m.M)(z.z.object({subscriptionId:z.z.string()}),z.z.object({released:z.z.boolean()}),{kind:"mutation"}),setPreBufferDuration:(0,m.M)(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.M)(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.M)(z.z.void(),z.z.number()),getAllRtspEntries:(0,m.M)(z.z.object({hostname:z.z.string().optional()}),z.z.array(si).readonly()),getRtspEntry:(0,m.M)(z.z.object({brokerId:z.z.string(),hostname:z.z.string().optional()}),si.nullable()),regenerateRtspToken:(0,m.M)(z.z.object({brokerId:z.z.string()}),z.z.string().nullable(),{kind:"mutation",auth:"admin"}),setRtspEnabled:(0,m.M)(z.z.object({brokerId:z.z.string(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),isRtspEnabled:(0,m.M)(z.z.object({brokerId:z.z.string()}),z.z.boolean()),getDeviceAudioMute:(0,m.M)(z.z.object({deviceId:z.z.number().int()}),z.z.object({muted:z.z.boolean(),appliedBrokers:z.z.number().int().nonnegative()})),setDeviceAudioMute:(0,m.M)(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.k)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string(),profile:m.q})),onCamStreamIdle:(0,m.k)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string()})),onRequestStreamSourceRefresh:(0,m.k)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreamId:z.z.string(),brokerId:z.z.string()}))}},Pi=z.z.enum(["h264","h265","hevc","av1","mjpeg","vp8","vp9"]),Mi=z.z.object({acceptCodecs:z.z.array(Pi).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(Pi).readonly().optional()}).readonly(),wi=z.z.object({preferredProviders:z.z.array(z.z.string()).readonly().optional(),resolutionPreference:z.z.enum(["highest","lowest"]).optional()}).readonly(),Oi=z.z.object({camStreamId:z.z.string(),codec:z.z.string().optional(),resolution:m.Y.optional(),reason:z.z.string()}),Ci={name:"camera-streams",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],methods:{getCameraStreams:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(m.X).readonly()),getBrokerStreams:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(m.rt).readonly()),getRtspEntries:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),hostname:z.z.string().optional()}),z.z.array(si).readonly()),getProfileRtspEntries:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),hostname:z.z.string().optional()}),z.z.array(m.nt).readonly()),pickStream:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),requirements:Mi,preferences:wi.optional()}),Oi.nullable())},events:{onCamStreamsChanged:(0,m.k)(z.z.object({deviceId:z.z.number().int().nonnegative(),camStreams:z.z.array(m.X).readonly()})),onProfileSlotsChanged:(0,m.k)(z.z.object({deviceId:z.z.number().int().nonnegative(),profileSlots:z.z.array(m.rt).readonly()}))},runtimeState:z.z.object({online:z.z.boolean(),slotStatuses:z.z.object({high:m.it.optional(),mid:m.it.optional(),low:m.it.optional()}),slotErrors:z.z.object({high:z.z.string().optional(),mid:z.z.string().optional(),low:z.z.string().optional()}),lastChangedAt:z.z.number()}),durability:"session"};function Ai(e){const t=e._def;return"ZodVoid"===e.constructor?.name||"void"===t?.type||"ZodVoid"===t?.typeName}function Ni(e){const t=e._def;return"ZodObject"===e.constructor?.name||"object"===t?.type||"ZodObject"===t?.typeName}function Ei(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 xi(e,t){if(void 0===e||"collection"!==e.mode)return!1;const n=(0,m.A)(e)[t];return void 0!==n&&"subscription"!==n.kind&&Ei(n.output)}function Ti(e){const t=e.loose;return"function"==typeof t?t.call(e):e}function Di(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 Ri(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 Fi(e){return"public"===e?"public":"admin"===e||"superAdmin"===e?"admin":"protected"}function Bi(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}var Li="core-block-",_i="core-blocks";function qi(e){return`${Li}${e}`}function Ui(e){if(!e.startsWith("core-block-"))return null;const t=e.slice(11);return t.length>0?t:null}var Vi=z.z.union([z.z.literal("hub"),z.z.string().min(1)]),Hi=z.z.enum(["stopped","starting","running","failed"]),$i=z.z.object({name:z.z.string().min(1).max(120),code:z.z.string().max(2e5),enabled:z.z.boolean(),placement:Vi,integrationId:z.z.string().optional()}),Ki=$i.extend({id:z.z.string(),createdAt:z.z.number(),updatedAt:z.z.number(),createdBy:z.z.string(),status:Hi,lastError:z.z.string().optional(),lastChangedAt:z.z.number()}),Wi=z.z.object({ok:z.z.boolean(),error:z.z.string().optional(),line:z.z.number().optional(),column:z.z.number().optional()}),Gi={name:"core-blocks",scope:"system",mode:"singleton",methods:{list:(0,m.M)(z.z.object({}),z.z.object({blocks:z.z.array(Ki)}),{auth:"admin"}),get:(0,m.M)(z.z.object({blockId:z.z.string()}),z.z.object({block:Ki.nullable()}),{auth:"admin"}),create:(0,m.M)(z.z.object({block:$i}),z.z.object({block:Ki}),{kind:"mutation",auth:"admin",caller:"required"}),update:(0,m.M)(z.z.object({blockId:z.z.string(),block:$i.partial()}),z.z.object({block:Ki}),{kind:"mutation",auth:"admin",caller:"required"}),delete:(0,m.M)(z.z.object({blockId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setEnabled:(0,m.M)(z.z.object({blockId:z.z.string(),enabled:z.z.boolean()}),z.z.object({block:Ki}),{kind:"mutation",auth:"admin"}),restart:(0,m.M)(z.z.object({blockId:z.z.string()}),z.z.object({block:Ki}),{kind:"mutation",auth:"admin"}),compile:(0,m.M)(z.z.object({code:z.z.string()}),Wi,{kind:"mutation",auth:"admin"}),getTypeDefs:(0,m.M)(z.z.object({}),z.z.object({libs:z.z.array(z.z.object({filePath:z.z.string(),content:z.z.string()}))}),{auth:"admin"})}};function Zi(e){return e}function Yi(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 Ji(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 Xi=z.z.object({stepId:z.z.string(),entry:Xt}),Qi={name:"custom-model-registry",scope:"system",mode:"collection",internal:!0,methods:{listModels:(0,m.M)(z.z.void(),z.z.array(Xi).readonly())}},eo=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(),whereNot:z.z.record(z.z.string(),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()}),to=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(),whereNot:z.z.record(z.z.string(),z.z.unknown()).optional()}),no=z.z.object({id:z.z.string(),data:z.z.record(z.z.string(),z.z.unknown())}),ao=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()}),ro=z.z.object({name:z.z.string(),columns:z.z.array(z.z.string()).readonly(),unique:z.z.boolean().optional()}),io={name:"settings-store",scope:"system",mode:"singleton",methods:{get:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.unknown()),set:(0,m.M)(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.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:eo.optional()}),z.z.array(no).readonly()),insert:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),record:no}),z.z.void(),{kind:"mutation"}),update:(0,m.M)(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.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.void(),{kind:"mutation"}),deleteWhere:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:to}),z.z.object({deleted:z.z.number().int()}),{kind:"mutation"}),updateWhere:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:to,data:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({updated:z.z.number().int()}),{kind:"mutation"}),count:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:eo.optional()}),z.z.number()),histogram:(0,m.M)(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:eo.optional()}),z.z.array(z.z.object({bucket:z.z.number().int(),count:z.z.number().int()})).readonly()),isEmpty:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string()}),z.z.boolean()),declareCollection:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),columns:z.z.array(ao).readonly(),indexes:z.z.array(ro).readonly().optional()}),z.z.void(),{kind:"mutation"})}},oo=z.z.object({engineId:z.z.string(),kind:z.z.enum(["relational","vector"]),displayName:z.z.string()}),so={name:"data-store-provider",scope:"system",mode:"collection",internal:!0,methods:{getEngineInfo:(0,m.M)(z.z.void(),oo),get:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.unknown()),set:(0,m.M)(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.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:eo.optional()}),z.z.array(no).readonly()),insert:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),record:no}),z.z.void(),{kind:"mutation"}),update:(0,m.M)(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.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),key:z.z.string()}),z.z.void(),{kind:"mutation"}),deleteWhere:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:to}),z.z.object({deleted:z.z.number().int()}),{kind:"mutation"}),updateWhere:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:to,data:z.z.record(z.z.string(),z.z.unknown())}),z.z.object({updated:z.z.number().int()}),{kind:"mutation"}),count:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),filter:eo.optional()}),z.z.number()),histogram:(0,m.M)(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:eo.optional()}),z.z.array(z.z.object({bucket:z.z.number().int(),count:z.z.number().int()})).readonly()),isEmpty:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string()}),z.z.boolean()),declareCollection:(0,m.M)(z.z.object({namespace:z.z.string().optional(),collection:z.z.string(),columns:z.z.array(ao).readonly(),indexes:z.z.array(ro).readonly().optional()}),z.z.void(),{kind:"mutation"})}},co=[{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)"}],lo={hwaccel:"auto",probedBestHwaccel:""},uo=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()}),mo={name:"decoder",scope:"system",mode:"singleton",preferredProvider:"decoder-nodeav",methods:{supportsCodec:(0,m.M)(z.z.object({codec:z.z.string()}),z.z.boolean()),getInfo:(0,m.M)(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.M)(Ct,z.z.object({sessionId:z.z.string(),nodeId:z.z.string()})),destroySession:(0,m.M)(z.z.object({sessionId:z.z.string()}),z.z.void()),pushPacket:(0,m.M)(z.z.object({sessionId:z.z.string(),packet:m.$}),z.z.void()),openStream:(0,m.M)(z.z.object({sessionId:z.z.string(),url:z.z.string()}),z.z.void()),pullFrames:(0,m.M)(z.z.object({sessionId:z.z.string(),maxCount:z.z.number().default(1),waitMs:z.z.number().optional()}),z.z.array(m.Q)),pullHandles:(0,m.M)(z.z.object({sessionId:z.z.string(),maxCount:z.z.number().default(1),waitMs:z.z.number().optional()}),z.z.array(m.tt)),getFrame:(0,m.M)(z.z.object({handle:m.tt}),m.Q.nullable()),getShmStats:(0,m.M)(z.z.object({sessionId:z.z.string()}),uo.nullable()),updateConfig:(0,m.M)(z.z.object({sessionId:z.z.string(),config:Ct.partial()}),z.z.void()),getStats:(0,m.M)(z.z.object({sessionId:z.z.string()}),Ot),listActiveSessions:(0,m.M)(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.M)(z.z.void(),z.z.object({backend:z.z.string()}),{kind:"mutation",auth:"admin"})}},po={name:"detection-pipeline",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],exposesDeviceSettings:!0,methods:{}},bo=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 go(e){return{id:e.stableId,system:e.addonId}}function zo(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 fo(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 yo="sourceInfo";function vo(e){if(!e)return null;const t=e[yo];if(!t)return null;const n=bo.safeParse(t);return n.success?n.data:null}var ho=z.z.enum(["online","sleeping","offline","unknown"]),So=z.z.lazy(()=>z.z.object({childNativeId:z.z.string(),name:z.z.string(),type:z.z.enum(m.w),status:ho,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:bo.optional(),children:z.z.array(So).readonly().optional()})),Io=z.z.object({discovered:z.z.array(So),lastDiscoveryAt:z.z.number().int().nonnegative().nullable(),lastError:z.z.string().nullable()}),jo={name:"device-discovery",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Hub],status:{schema:Io,kind:"poll"},runtimeState:Io.extend({lastFetchedAt:z.z.number().int().nonnegative()}),durability:"session",methods:{listDiscovered:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(So).readonly()),refreshDiscovery:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(So).readonly(),{kind:"mutation",auth:"admin"}),adoptDevice:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),childDeviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})}},ko=z.z.object({id:z.z.string(),label:z.z.string(),isDefault:z.z.boolean().optional()}),Po=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()}),Mo=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:Po.optional()}),wo=z.z.object({candidates:z.z.array(So).readonly(),totalCount:z.z.number().int().nonnegative(),page:z.z.number().int().positive(),pageSize:z.z.number().int().positive()}),Oo=z.z.object({integrationId:z.z.string(),childNativeId:z.z.string()}),Co=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()}),Ao=z.z.object({name:z.z.string().min(1).optional(),hiddenChildIds:z.z.array(z.z.string()).optional()}),No=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(),Ao).optional()}),Eo=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()}),xo=z.z.object({integrationId:z.z.string(),camDeviceId:z.z.number().int().nonnegative()}),To=z.z.object({camDeviceId:z.z.number().int().nonnegative(),resetToSource:z.z.boolean().optional()}),Do=z.z.object({changed:z.z.boolean(),rebuiltChildren:z.z.number().int().nonnegative(),removedChildren:z.z.number().int().nonnegative().optional()}),Ro={name:"device-adoption",scope:"system",mode:"singleton",status:{schema:Co,kind:"poll"},methods:{listCandidateFilters:(0,m.M)(z.z.object({integrationId:z.z.string()}),z.z.object({filters:z.z.array(ko)}),{auth:"admin"}),listCandidates:(0,m.M)(Mo,wo,{auth:"admin"}),getCandidate:(0,m.M)(Oo,So.nullable(),{auth:"admin"}),refresh:(0,m.M)(z.z.object({integrationId:z.z.string()}),Co,{kind:"mutation",auth:"admin"}),adopt:(0,m.M)(No,Eo,{kind:"mutation",auth:"admin"}),release:(0,m.M)(xo,z.z.void(),{kind:"mutation",auth:"admin"}),resync:(0,m.M)(To,Do,{kind:"mutation",auth:"admin"})}},Fo=z.z.enum(["unlinked","linked","error"]),Bo=z.z.object({label:z.z.string(),value:z.z.string(),secret:z.z.boolean().optional()}),Lo=z.z.object({qr:z.z.string().optional(),fields:z.z.array(Bo).readonly().optional(),note:z.z.string().optional()}),_o=z.z.object({linkState:Fo,exposedDeviceCount:z.z.number(),error:z.z.string().optional(),setup:Lo.optional()}),qo=z.z.string(),Uo=z.z.object({deviceId:z.z.string(),exposedAs:z.z.string().optional(),capabilities:z.z.array(z.z.string()).optional()}),Vo=z.z.object({deviceId:z.z.string(),capabilities:z.z.array(z.z.string()).optional()}),Ho=z.z.object({deviceId:z.z.string()}),$o={name:"device-export",scope:"system",mode:"collection",providerKind:"device-export",status:{schema:_o,kind:"poll"},exposesDeviceSettings:!0,methods:{getStatus:(0,m.M)(z.z.void(),_o),listSupportedDeviceKinds:(0,m.M)(z.z.void(),z.z.array(qo)),listExposedDevices:(0,m.M)(z.z.void(),z.z.array(Uo)),exposeDevice:(0,m.M)(Vo,z.z.void(),{kind:"mutation"}),unexposeDevice:(0,m.M)(Ho,z.z.void(),{kind:"mutation"})}},Ko=z.z.object({connected:z.z.boolean(),deviceCount:z.z.number(),error:z.z.string().optional()}),Wo=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()}),Go=z.z.object({stableId:z.z.string(),type:z.z.enum(m.w),suggestedName:z.z.string(),prefilledConfig:z.z.record(z.z.string(),z.z.unknown()),sourceInfo:bo.optional()}),Zo=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:bo.optional()}),Yo=z.z.object({status:z.z.enum(["ok","error"]),labels:z.z.array(z.z.string()).optional(),error:z.z.string().optional()}),Jo=z.z.unknown(),Xo={name:"device-provider",scope:"system",mode:"collection",methods:{start:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation"}),stop:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation"}),getStatus:(0,m.M)(z.z.void(),Ko),getDevices:(0,m.M)(z.z.void(),z.z.array(z.z.object({id:z.z.string(),name:z.z.string(),type:z.z.string()}))),supportsDiscovery:(0,m.M)(z.z.object({}),z.z.boolean()),discoverDevices:(0,m.M)(z.z.object({params:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.array(Go),{kind:"mutation",auth:"admin"}),getDiscoveryParamsSchema:(0,m.M)(z.z.object({}),Jo),getManualCreationType:(0,m.M)(z.z.object({}),z.z.object({deviceType:z.z.enum(m.w).nullable()})),adoptDiscoveredDevice:(0,m.M)(z.z.object({candidate:Go}),Zo,{kind:"mutation",auth:"admin"}),supportsManualCreation:(0,m.M)(z.z.object({}),z.z.boolean()),getChildCreationSchema:(0,m.M)(z.z.object({type:z.z.enum(m.w)}),Jo),createDevice:(0,m.M)(z.z.object({type:z.z.enum(m.w),config:z.z.record(z.z.string(),z.z.unknown())}),Zo,{kind:"mutation",auth:"admin"}),testCreationField:(0,m.M)(z.z.object({type:z.z.enum(m.w),key:z.z.string(),value:z.z.unknown(),formValues:z.z.record(z.z.string(),z.z.unknown()).optional()}),Yo,{kind:"mutation",auth:"admin"})}},Qo=z.z.object({childKey:z.z.string(),section:z.z.string(),order:z.z.number().optional(),collapsed:z.z.boolean().optional()}),es=z.z.object({unit:z.z.string().min(1).optional(),precision:z.z.number().int().min(0).max(10).optional()}),ts=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(),es).optional()}),ns=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()}),as=z.z.object({id:z.z.number(),stableId:z.z.string(),addonId:z.z.string(),type:z.z.enum(m.w),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:bo.optional(),integrationId:z.z.string().optional(),linkDeviceId:z.z.number().nullable().optional(),primaryChildEntityId:z.z.string().nullable().optional(),childLayout:z.z.array(Qo).readonly().optional(),display:ts.optional()}),rs=z.z.object({key:z.z.string(),value:z.z.unknown(),description:z.z.string().optional()}),is=z.z.enum(["auto","manual"]),os=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()}),ss=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()}),cs=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:bo.optional(),integrationId:z.z.string().optional(),linkDeviceId:z.z.number().nullable().optional(),primaryChildEntityId:z.z.string().nullable().optional(),childLayout:z.z.array(Qo).readonly().optional(),role:z.z.string().nullable().optional(),display:ts.optional()}),ds=z.z.unknown().nullable(),ls=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()}),us=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())}),ms=z.z.object({deviceId:z.z.number()}),ps=z.z.object({deviceId:z.z.number(),data:z.z.record(z.z.string(),z.z.unknown())}),bs={name:"device-manager",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{allocateDeviceId:(0,m.M)(z.z.object({addonId:z.z.string(),stableId:z.z.string()}),z.z.object({id:z.z.number()}),{kind:"mutation"}),registerDevice:(0,m.M)(us,z.z.void(),{kind:"mutation"}),removeDevice:(0,m.M)(ms,z.z.void(),{kind:"mutation"}),persistConfig:(0,m.M)(ps,z.z.void(),{kind:"mutation"}),loadConfig:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.unknown())),loadRuntimeState:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.unknown())),loadMeta:(0,m.M)(z.z.object({deviceId:z.z.number()}),cs.nullable()),setName:(0,m.M)(z.z.object({deviceId:z.z.number(),name:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),setLocation:(0,m.M)(z.z.object({deviceId:z.z.number(),location:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),setType:(0,m.M)(z.z.object({deviceId:z.z.number(),type:z.z.enum(m.w)}),z.z.void(),{kind:"mutation",auth:"admin"}),setIntegrationId:(0,m.M)(z.z.object({deviceId:z.z.number(),integrationId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),setLinkDeviceId:(0,m.M)(z.z.object({deviceId:z.z.number(),linkDeviceId:z.z.number().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),setPrimaryChildEntityId:(0,m.M)(z.z.object({deviceId:z.z.number(),primaryChildEntityId:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),setChildLayout:(0,m.M)(z.z.object({deviceId:z.z.number(),childLayout:z.z.array(Qo).readonly()}),z.z.void(),{kind:"mutation",auth:"admin"}),setDisplay:(0,m.M)(z.z.object({deviceId:z.z.number(),display:ts.nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),getRoleDisplayDefaults:(0,m.M)(z.z.object({}),z.z.object({defaults:z.z.record(z.z.string(),ns)}),{kind:"query"}),setRoleDisplayDefaults:(0,m.M)(z.z.object({defaults:z.z.record(z.z.string(),ns)}),z.z.void(),{kind:"mutation",auth:"admin"}),getWireableFields:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number(),role:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),applyInitialMeta:(0,m.M)(z.z.object({deviceId:z.z.number(),name:z.z.string().optional(),location:z.z.string().nullable().optional(),type:z.z.enum(m.w).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.M)(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.M)(z.z.void(),z.z.array(z.z.string())),addLocation:(0,m.M)(z.z.object({name:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),removeLocation:(0,m.M)(z.z.object({name:z.z.string(),cascade:z.z.boolean().optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),setDisabled:(0,m.M)(z.z.object({deviceId:z.z.number(),disabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),listPersistedByAddon:(0,m.M)(z.z.object({addonId:z.z.string()}),z.z.array(ss)),listAll:(0,m.M)(z.z.object({addonId:z.z.string().optional(),projection:z.z.enum(["full","slim"]).optional(),isCamera:z.z.boolean().optional()}),z.z.array(as)),getDevice:(0,m.M)(z.z.object({deviceId:z.z.number()}),as.nullable()),getChildren:(0,m.M)(z.z.object({parentDeviceId:z.z.number()}),z.z.array(as)),getLinkedDevices:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.object({mode:is,devices:z.z.array(os)})),getStreamSources:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.array(m.at)),getConfigSchema:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.array(rs)),getSettingsSchema:(0,m.M)(z.z.object({deviceId:z.z.number()}),ds),updateConfig:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),disable:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),remove:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),removeByIntegration:(0,m.M)(z.z.object({integrationId:z.z.string()}),z.z.object({removed:z.z.number()}),{kind:"mutation",auth:"admin"}),getStreamProfileMap:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.record(z.z.string(),z.z.string().nullable())),setStreamProfileMap:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),z.z.array(ls),{kind:"mutation",auth:"admin"}),getBindings:(0,m.M)(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.M)(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.M)(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.M)(z.z.object({capName:z.z.string()}),z.z.array(z.z.string())),listBindableCapsForDeviceType:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),_a.nullable()),getDeviceLiveInfoAggregate:(0,m.M)(z.z.object({deviceId:z.z.number()}),_a.nullable()),getDeviceAggregate:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.object({settings:_a.nullable(),live:_a.nullable()})),runDeviceAction:(0,m.M)(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.M)(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.M)(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.M)(z.z.object({addonId:z.z.string()}),z.z.array(Go),{kind:"mutation",auth:"admin"}),adoptDevice:(0,m.M)(z.z.object({addonId:z.z.string(),candidate:Go,integrationId:z.z.string().optional()}),Zo,{kind:"mutation",auth:"admin"}),getCreationSchema:(0,m.M)(z.z.object({addonId:z.z.string(),type:z.z.enum(m.w)}),z.z.unknown().nullable()),createDevice:(0,m.M)(z.z.object({addonId:z.z.string(),type:z.z.enum(m.w),config:z.z.record(z.z.string(),z.z.unknown()),integrationId:z.z.string().optional()}),Zo,{kind:"mutation",auth:"admin"}),testCreationField:(0,m.M)(z.z.object({addonId:z.z.string(),type:z.z.enum(m.w),key:z.z.string(),value:z.z.unknown(),formValues:z.z.record(z.z.string(),z.z.unknown()).optional()}),Yo,{kind:"mutation",auth:"admin"}),adoptionListCandidateFilters:(0,m.M)(z.z.object({addonId:z.z.string(),integrationId:z.z.string()}),z.z.object({filters:z.z.array(ko)}),{auth:"admin"}),adoptionListCandidates:(0,m.M)(Mo.extend({addonId:z.z.string()}),wo,{auth:"admin"}),adoptionRefresh:(0,m.M)(z.z.object({addonId:z.z.string(),integrationId:z.z.string()}),Co,{kind:"mutation",auth:"admin"}),adoptionAdopt:(0,m.M)(No.extend({addonId:z.z.string()}),Eo,{kind:"mutation",auth:"admin"}),adoptionRelease:(0,m.M)(xo.extend({addonId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),adoptionStartJob:(0,m.M)(No.extend({addonId:z.z.string()}),z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),adoptionListJobs:(0,m.M)(z.z.object({addonId:z.z.string(),integrationId:z.z.string().optional()}),z.z.array(ie).readonly(),{auth:"admin"}),adoptionCancelJob:(0,m.M)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),adoptionResync:(0,m.M)(To,Do,{kind:"mutation",auth:"admin"}),discoveryProviders:(0,m.M)(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.M)(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(Go).readonly(),error:z.z.string().nullable()})).readonly()}),{kind:"mutation",auth:"admin"}),discoverProvider:(0,m.M)(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(Go).readonly()}),{kind:"mutation",auth:"admin"}),providerCreationType:(0,m.M)(z.z.object({addonId:z.z.string()}),z.z.object({deviceType:z.z.enum(m.w).nullable()}),{auth:"admin"}),providerDiscoveryParamsSchema:(0,m.M)(z.z.object({addonId:z.z.string()}),z.z.unknown(),{auth:"admin"}),testField:(0,m.M)(z.z.object({deviceId:z.z.number(),key:z.z.string(),value:z.z.unknown()}),Yo,{kind:"mutation",auth:"admin"}),getDeviceStatusAggregate:(0,m.M)(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.M)(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())))}},gs={name:"device-state",scope:"system",mode:"singleton",methods:{getSnapshot:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number(),capName:z.z.string()}),z.z.record(z.z.string(),z.z.unknown()).nullable()),getAllSnapshots:(0,m.M)(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.M)(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.k)(z.z.object({deviceId:z.z.number(),capName:z.z.string(),slice:z.z.record(z.z.string(),z.z.unknown())}))}},zs=z.z.object({embedding:z.z.array(z.z.number()),inferenceMs:z.z.number()}),fs=z.z.object({modelId:z.z.string(),embeddingDim:z.z.number(),ready:z.z.boolean()}),ys={name:"embedding-encoder",scope:"system",mode:"collection",internal:!0,methods:{encode:(0,m.M)(z.z.object({crop:z.z.instanceof(Uint8Array),width:z.z.number(),height:z.z.number()}),zs),encodeText:(0,m.M)(z.z.object({text:z.z.string()}),zs),getInfo:(0,m.M)(z.z.void(),fs)}},vs=z.z.object({name:z.z.string(),path:z.z.string()}),hs=z.z.object({path:z.z.string(),entries:z.z.array(vs).readonly(),freeBytes:z.z.number(),totalBytes:z.z.number()}),Ss={name:"filesystem-browse",scope:"system",mode:"singleton",internal:!0,methods:{listAllowedRoots:(0,m.M)(z.z.void(),z.z.array(z.z.string()).readonly(),{auth:"admin"}),browse:(0,m.M)(z.z.object({path:z.z.string()}),hs,{auth:"admin"}),createDir:(0,m.M)(z.z.object({path:z.z.string()}),z.z.object({path:z.z.string()}),{kind:"mutation",auth:"admin"})}},Is=z.z.object({inputTokens:z.z.number(),outputTokens:z.z.number()}),js=z.z.enum(["timeout","rate-limited","auth","refusal","bad-request","unavailable","no-profile","budget-exceeded","adapter-error"]),ks=z.z.object({ok:z.z.literal(!0),text:z.z.string(),model:z.z.string(),usage:Is,truncated:z.z.boolean(),latencyMs:z.z.number()}),Ps=z.z.object({ok:z.z.literal(!1),code:js,message:z.z.string(),retryAfterMs:z.z.number().optional()}),Ms=z.z.discriminatedUnion("ok",[ks,Ps]),ws=z.z.object({bytes:z.z.instanceof(Uint8Array),mimeType:z.z.string()}),Os=z.z.object({enabled:z.z.boolean().default(!1),maxAttempts:z.z.number().int().min(1).max(5).default(1)}),Cs={totalMs:6e4,connectMs:1e4,firstTokenMs:12e4,idleMs:6e4},As=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(),topP:z.z.number().min(0).max(1).optional(),topK:z.z.number().int().positive().optional(),timeoutMs:z.z.number().int().positive().optional(),retry:Os.optional(),requestId:z.z.string().optional()}),Ns=z.z.object({url:z.z.string(),filename:z.z.string(),sizeBytes:z.z.number(),sha256:z.z.string().optional()}),Es=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(),label:z.z.string().optional(),sizeBytes:z.z.number().optional(),extraFiles:z.z.array(Ns).optional()}),z.z.object({kind:z.z.literal("path"),path:z.z.string()})]),xs=z.z.object({nodeId:z.z.string(),engine:z.z.enum(["llama-cpp"]),model:Es,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),batchSize:z.z.number().int().positive().optional(),ubatchSize:z.z.number().int().positive().optional(),flashAttention:z.z.boolean().default(!1),mlock:z.z.boolean().default(!1),noMmap:z.z.boolean().default(!1),cacheTypeK:z.z.enum(["f32","f16","q8_0","q5_1","q5_0","q4_1","q4_0"]).optional(),cacheTypeV:z.z.enum(["f32","f16","q8_0","q5_1","q5_0","q4_1","q4_0"]).optional(),extraArgs:z.z.array(z.z.string()).default([]),autoStart:z.z.boolean().default(!1),idleStopMinutes:z.z.number().int().default(30)}),Ts=z.z.object({phase:z.z.enum(["downloading","verifying"]),file:z.z.string(),fileIndex:z.z.number().int(),fileCount:z.z.number().int(),downloadedBytes:z.z.number(),totalBytes:z.z.number().optional()}),Ds=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(),download:Ts.optional(),lastError:z.z.string().optional(),crashesInWindow:z.z.number(),memoryBytes:z.z.number().optional(),vramBytes:z.z.number().optional()}),Rs=z.z.object({file:z.z.string(),sizeBytes:z.z.number(),catalogId:z.z.string().optional(),installedAt:z.z.number().optional(),path:z.z.string().optional()}),Fs=z.z.object({nodeId:z.z.string(),modelsBytes:z.z.number(),freeBytes:z.z.number().optional()}),Bs=As.extend({images:z.z.array(ws).optional(),runtime:xs,timeoutMs:z.z.number().int().positive().optional()}),Ls={name:"llm-runtime",scope:"system",mode:"singleton",internal:!0,methods:{complete:(0,m.M)(Bs,Ms,{kind:"mutation"}),ensureStarted:(0,m.M)(z.z.object({runtime:xs}),Ds,{kind:"mutation",auth:"admin"}),stop:(0,m.M)(z.z.object({}),z.z.void(),{kind:"mutation",auth:"admin"}),status:(0,m.M)(z.z.object({}),Ds),installModel:(0,m.M)(z.z.object({model:Es}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteModel:(0,m.M)(z.z.object({file:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listLocalModels:(0,m.M)(z.z.object({}),z.z.array(Rs)),getDiskUsage:(0,m.M)(z.z.object({}),Fs)}},_s=z.z.enum(["openai-compatible","openai","anthropic","google","managed-local"]),qs=z.z.object({id:z.z.string(),name:z.z.string(),kind:_s,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(),topP:z.z.number().min(0).max(1).optional(),topK:z.z.number().int().positive().optional(),maxTokens:z.z.number().int().positive().optional(),contextLength:z.z.number().int().positive().optional(),systemPrompt:z.z.string().optional(),timeoutMs:z.z.number().int().positive().default(6e4),connectTimeoutMs:z.z.number().int().positive().default(1e4),firstTokenTimeoutMs:z.z.number().int().positive().default(12e4),idleTimeoutMs:z.z.number().int().positive().default(6e4),retry:Os.default({enabled:!1,maxAttempts:1}),toolsEnabled:z.z.boolean().default(!1),extraHeaders:z.z.record(z.z.string(),z.z.string()).optional(),runtime:xs.optional()}),Us=z.z.unknown(),Vs=z.z.object({kind:_s,label:z.z.string(),icon:z.z.string(),addonId:z.z.string(),configSchema:Us}),Hs=z.z.union([z.z.object({consumer:z.z.string()}),z.z.object({purpose:z.z.enum(["text","vision"])})]),$s=z.z.object({selector:Hs,profileId:z.z.string()}),Ks=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()}),Ws=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()}),Gs=z.z.discriminatedUnion("ok",[z.z.object({ok:z.z.literal(!0),model:Es,label:z.z.string(),repo:z.z.string(),quantization:z.z.string(),purpose:z.z.enum(["text","vision"]),totalBytes:z.z.number(),extraFilenames:z.z.array(z.z.string())}),z.z.object({ok:z.z.literal(!1),code:z.z.string(),message:z.z.string(),candidates:z.z.array(z.z.string()).optional(),requiredBytes:z.z.number().optional()})]),Zs=z.z.object({nodeId:z.z.string(),reachable:z.z.boolean(),status:Ds.optional(),disk:Fs.optional(),error:z.z.string().optional()}),Ys=As.extend({images:z.z.array(ws).min(1)}),Js=z.z.object({addonId:z.z.string(),profileId:z.z.string()}),Xs={name:"llm",scope:"system",mode:"collection",internal:!1,providerKind:"ai",nodeIdMode:"data",methods:{generate:(0,m.M)(As,Ms,{kind:"mutation"}),generateVision:(0,m.M)(Ys,Ms,{kind:"mutation"}),cancel:(0,m.M)(z.z.object({addonId:z.z.string().optional(),requestId:z.z.string()}),z.z.void(),{kind:"mutation"}),listProfileKinds:(0,m.M)(z.z.object({}),z.z.array(Vs)),listProfiles:(0,m.M)(z.z.object({}),z.z.array(qs)),upsertProfile:(0,m.M)(z.z.object({profile:qs}),qs,{kind:"mutation",auth:"admin"}),deleteProfile:(0,m.M)(Js,z.z.void(),{kind:"mutation",auth:"admin"}),testProfile:(0,m.M)(Js,Ms,{kind:"mutation",auth:"admin"}),listModels:(0,m.M)(Js,z.z.array(z.z.string())),getDefaults:(0,m.M)(z.z.object({}),z.z.array($s)),setDefault:(0,m.M)(z.z.object({selector:Hs,profileId:z.z.string().nullable()}),z.z.void(),{kind:"mutation",auth:"admin"}),getUsage:(0,m.M)(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(Ks)),listModelCatalog:(0,m.M)(z.z.object({}),z.z.array(Ws)),listRuntimeNodes:(0,m.M)(z.z.object({}),z.z.array(Zs)),listNodeModels:(0,m.M)(z.z.object({nodeId:z.z.string()}),z.z.array(Rs)),resolveModelRef:(0,m.M)(z.z.object({ref:z.z.string(),maxBytes:z.z.number().positive().optional()}),Gs,{kind:"mutation",auth:"admin"}),installModel:(0,m.M)(z.z.object({nodeId:z.z.string(),model:Es}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteModel:(0,m.M)(z.z.object({nodeId:z.z.string(),file:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),getRuntimeStatus:(0,m.M)(Js,Ds),startRuntime:(0,m.M)(Js,Ds,{kind:"mutation",auth:"admin"}),stopRuntime:(0,m.M)(Js,z.z.void(),{kind:"mutation",auth:"admin"})}},Qs=z.z.enum(["debug","info","warn","error"]),ec=z.z.object({timestamp:z.z.date(),level:Qs,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()}),tc={name:"log-destination",scope:"system",mode:"collection",internal:!0,methods:{write:(0,m.M)(ec,z.z.void(),{kind:"mutation"}),query:(0,m.M)(z.z.object({scope:z.z.array(z.z.string()).optional(),level:Qs.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(ec).readonly())},mount:{kind:"skip"}},nc=z.z.enum(["primary","second-factor"]),ac=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:nc}),rc=z.z.object({kind:z.z.literal("widget"),id:z.z.string(),addonId:z.z.string(),bundle:z.z.string(),remote:Ka,stage:nc}),ic=z.z.object({kind:z.z.literal("passkey"),id:z.z.string(),label:z.z.string(),stage:nc,rpId:z.z.string(),origin:z.z.string().nullable()}),oc=z.z.discriminatedUnion("kind",[ac,rc,ic]),sc={name:"login-method",scope:"system",mode:"collection",internal:!0,methods:{getLoginMethods:(0,m.M)(z.z.void(),z.z.array(oc).readonly())},mount:{kind:"skip"}},cc=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()}),dc=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()}),lc=z.z.object({readBytes:z.z.number(),writeBytes:z.z.number(),readOps:z.z.number(),writeOps:z.z.number(),timestampMs:z.z.number()}),uc=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()}),mc=z.z.object({utilization:z.z.number(),model:z.z.string(),memoryUsedBytes:z.z.number(),memoryTotalBytes:z.z.number(),temperature:z.z.number().nullable()}),pc=z.z.object({openFds:z.z.number(),threadCount:z.z.number(),activeHandles:z.z.number(),activeRequests:z.z.number()}),bc=z.z.object({avg10:z.z.number(),avg60:z.z.number(),avg300:z.z.number()}),gc=z.z.object({some:bc,full:bc.nullable()}),zc=z.z.object({cpu:cc,memory:dc,gpu:mc.nullable(),network:uc,disk:lc,pressure:z.z.object({cpu:gc.nullable(),memory:gc.nullable(),io:gc.nullable()}),process:pc,cpuTemperature:z.z.number().nullable(),timestampMs:z.z.number()}),fc=z.z.object({path:z.z.string(),totalBytes:z.z.number(),usedBytes:z.z.number(),availableBytes:z.z.number(),percent:z.z.number()}),yc=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()}),vc=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()}),hc=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()}),Sc=z.z.object({pid:z.z.number(),force:z.z.boolean().optional()}),Ic=z.z.object({success:z.z.boolean(),reason:z.z.string().optional(),signal:z.z.enum(["SIGTERM","SIGKILL"]).optional()}),jc=z.z.object({addonId:z.z.string()}),kc=z.z.object({success:z.z.boolean(),path:z.z.string().optional(),pid:z.z.number().optional(),reason:z.z.string().optional()}),Pc=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()}),Mc={name:"metrics-provider",scope:"system",mode:"singleton",methods:{collectSnapshot:(0,m.M)(z.z.void(),zc),getCached:(0,m.M)(z.z.void(),zc.nullable()),getCurrent:(0,m.M)(z.z.void(),Pc),getDiskSpace:(0,m.M)(z.z.object({dirPath:z.z.string()}),fc),getGpuInfo:(0,m.M)(z.z.void(),mc.nullable()),getCpuTemperature:(0,m.M)(z.z.void(),z.z.number().nullable()),getProcessStats:(0,m.M)(z.z.object({pids:z.z.array(z.z.number())}),z.z.array(yc)),listAddonInstances:(0,m.M)(z.z.void(),z.z.array(vc).readonly()),getAddonStats:(0,m.M)(z.z.object({addonId:z.z.string()}),yc.nullable()),listNodeProcesses:(0,m.M)(z.z.void(),z.z.array(hc).readonly()),killProcess:(0,m.M)(Sc,Ic,{kind:"mutation",auth:"admin"}),dumpHeapSnapshot:(0,m.M)(jc,kc,{kind:"mutation",auth:"admin"})}},wc=z.z.object({sourceUrl:z.z.string(),metadata:en,targets:z.z.array(Qt).min(1).readonly(),calibrationRef:z.z.string().optional(),sessionId:z.z.string().optional()}),Oc={name:"model-convert",scope:"system",mode:"singleton",internal:!0,methods:{convert:(0,m.M)(wc,nn,{kind:"mutation",auth:"admin",timeoutMs:6e5})}},Cc=z.z.object({nodeId:z.z.string(),modelId:z.z.string(),format:z.z.enum(Wt),entry:Xt}),Ac=z.z.object({ok:z.z.boolean(),sha256:z.z.string(),bytes:z.z.number(),path:z.z.string()}),Nc={name:"model-distributor",scope:"system",mode:"singleton",internal:!0,methods:{distributeModel:(0,m.M)(Cc,Ac,{kind:"mutation",auth:"admin"})}},Ec=z.z.object({bbox:ir,pixelCount:z.z.number(),intensity:z.z.number()}),xc=z.z.object({detected:z.z.boolean(),regionCount:z.z.number(),regions:z.z.array(Ec).readonly(),rawRegions:z.z.array(Ec).readonly(),frameWidth:z.z.number(),frameHeight:z.z.number(),analysisMs:z.z.number()}),Tc={name:"motion-detection",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],exposesDeviceSettings:!0,methods:{analyze:(0,m.M)(z.z.object({deviceId:z.z.number(),frame:rr.optional(),frameHandle:m.tt.optional()}),xc,{kind:"mutation"}),removeCamera:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),reset:(0,m.M)(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()})}}},Dc=z.z.enum(["external","embedded"]),Rc=z.z.enum(["connected","disconnected","auth-failed","unreachable","tls-error"]),Fc=z.z.object({id:z.z.string(),name:z.z.string(),url:z.z.string(),kind:Dc,status:Rc,latencyMs:z.z.number().nullable(),error:z.z.string().optional(),connectedClients:z.z.number().int().nonnegative().optional(),lastCheckedAt:z.z.number().optional()}),Bc=z.z.object({url:z.z.string(),username:z.z.string().optional(),password:z.z.string().optional(),clientIdPrefix:z.z.string().optional()}),Lc=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()}),_c=z.z.object({id:z.z.string()}),qc=z.z.object({id:z.z.string()}),Uc=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()})]),Vc=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()}),Hc=z.z.object({id:z.z.string(),url:z.z.string()}),$c=z.z.object({brokerCount:z.z.number(),embeddedRunning:z.z.boolean()}),Kc={name:"mqtt-broker",scope:"system",mode:"collection",providerKind:"broker",status:{schema:$c,kind:"poll"},methods:{listBrokers:(0,m.M)(z.z.void(),z.z.array(Fc)),getBrokerConfig:(0,m.M)(qc,Bc),addBroker:(0,m.M)(Lc,_c,{kind:"mutation"}),removeBroker:(0,m.M)(qc,z.z.void(),{kind:"mutation"}),testConnection:(0,m.M)(qc,Uc,{kind:"mutation"}),startEmbeddedBroker:(0,m.M)(Vc,Hc,{kind:"mutation"}),stopEmbeddedBroker:(0,m.M)(qc,z.z.void(),{kind:"mutation"}),getStatus:(0,m.M)(z.z.void(),$c)}},Wc=z.z.object({url:z.z.string(),hostname:z.z.string(),port:z.z.number(),protocol:z.z.enum(["http","https"])}),Gc=z.z.object({connected:z.z.boolean(),endpoint:Wc.nullable(),error:z.z.string().optional()}),Zc=Wc.extend({id:z.z.string(),label:z.z.string(),mode:z.z.string().optional(),sourcePort:z.z.number().optional()}),Yc={name:"network-access",scope:"system",mode:"collection",providerKind:"ingress",methods:{start:(0,m.M)(z.z.void(),Wc,{kind:"mutation"}),stop:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation"}),getEndpoint:(0,m.M)(z.z.void(),Wc.nullable()),getStatus:(0,m.M)(z.z.void(),Gc),listEndpoints:(0,m.M)(z.z.void(),z.z.array(Zc).readonly())}},Jc=z.z.enum(["image","video","gif","audio","icon"]),Xc=z.z.object({mediaType:Jc,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`"}),Qc=z.z.enum(["text","markdown","html"]),ed=z.z.enum(["acknowledge","dismiss","silence","snooze","view","play","open","close","lock","unlock","arm","arm-home","arm-away","arm-night","disarm","light","alert","camera"]),td=z.z.object({id:z.z.string(),label:z.z.string(),url:z.z.string().optional(),icon:ed.optional(),destructive:z.z.boolean().optional(),mode:z.z.enum(["navigate","background"]).optional()}),nd=z.z.object({body:z.z.string(),title:z.z.string().optional(),format:Qc.default("text"),priority:z.z.number().int().min(1).max(5).default(3),level:z.z.string().optional(),attachments:z.z.array(Xc).optional(),clickUrl:z.z.string().optional(),actions:z.z.array(td).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()}),ad=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()}),rd=z.z.object({mediaTypes:z.z.array(Jc),mode:z.z.enum(["url","bytes","both"]),max:z.z.number().int().nonnegative(),maxBytes:z.z.number().int().positive().optional()}),id=z.z.object({attachments:rd,actions:z.z.number().int().nonnegative(),actionIcons:z.z.boolean().optional(),levels:z.z.array(ad),format:z.z.array(Qc),clickUrl:z.z.boolean(),sound:z.z.boolean(),ttl:z.z.boolean(),bodyMaxLen:z.z.number().int().positive()}),od=z.z.unknown(),sd=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:od,supportsDiscovery:z.z.boolean(),caps:id}),cd=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())}),dd=z.z.object({kind:z.z.string(),suggestedName:z.z.string(),config:z.z.record(z.z.string(),z.z.unknown())}),ld=z.z.object({level:z.z.string(),format:Qc,attachmentsSent:z.z.number().int().nonnegative(),actionsSent:z.z.number().int().nonnegative(),truncated:z.z.boolean(),dropped:z.z.array(z.z.string())}),ud=z.z.object({success:z.z.boolean(),error:z.z.string().optional(),renderedAs:ld.optional()}),md=ud,pd={name:"notification-output",scope:"system",mode:"collection",methods:{listTargetKinds:(0,m.M)(z.z.object({}),z.z.array(sd)),listTargets:(0,m.M)(z.z.object({}),z.z.array(cd)),discoverTargets:(0,m.M)(z.z.object({kind:z.z.string(),config:z.z.record(z.z.string(),z.z.unknown()).optional()}),z.z.array(dd)),send:(0,m.M)(z.z.object({targetId:z.z.string(),notification:nd}),ud,{kind:"mutation"}),testTarget:(0,m.M)(z.z.object({targetId:z.z.string(),sample:nd.optional()}),md,{kind:"mutation"}),upsertTarget:(0,m.M)(z.z.object({target:cd}),cd,{kind:"mutation"}),deleteTarget:(0,m.M)(z.z.object({targetId:z.z.string()}),z.z.void(),{kind:"mutation"}),setTargetEnabled:(0,m.M)(z.z.object({targetId:z.z.string(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation"})}},bd=[{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"}],gd=[{id:"person",name:"Person"},{id:"vehicle",name:"Vehicle"},{id:"animal",name:"Animal"},{id:"package",name:"Package"}],zd=new Set(gd.map(e=>e.id));function fd(e){return zd.has(e.trim().toLowerCase())}var yd={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},vd=[{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"}],hd={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},Sd={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},Id=new Map;for(const[e,t]of Object.entries(hd.mapping))Id.set(e.toLowerCase(),t);for(const[e,t]of Object.entries(Sd.mapping))Id.set(e.toLowerCase(),t);function jd(e){return Id.get(e.toLowerCase())??null}function kd(){return vd.map(e=>e.id)}var Pd={motion:"#f59e0b",audio:"#06b6d4",person:"#22c55e",vehicle:"#3b82f6",animal:"#f97316",package:"#a855f7",sensor:"#8b5cf6",control:"#10b981",genericDetection:"#64748b"},Md="#22ff55",wd={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 Od(e){return e.split(/[-_ ]/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}var Cd=new Map;function Ad(e,t,n,a,r){Cd.set(e,{kind:e,parentKind:null,level:"macro",category:t,color:n,iconId:a,labelKey:`eventKind.${e}`,label:r})}function Nd(e,t,n,a,r,i){Cd.set(e,{kind:e,parentKind:t,level:"sub",category:n,color:a,iconId:r,labelKey:`eventKind.${e}`,label:i})}Ad("motion","motion",Pd.motion,"motion","Motion"),Ad("audio","audio",Pd.audio,"audio","Audio"),Ad("person","detection",Pd.person,"person","Person"),Ad("vehicle","detection",Pd.vehicle,"vehicle","Vehicle"),Ad("animal","detection",Pd.animal,"animal","Animal"),Ad("package","package",Pd.package,"package","Package"),Ad("sensor","sensor",Pd.sensor,"sensor","Sensor"),Ad("control","control",Pd.control,"control","Control");for(const[e,t]of Object.entries(yd.mapping))"vehicle"!==t&&"animal"!==t||Cd.has(e)||Nd(e,t,"detection",wd[e]??Pd.genericDetection,e,Od(e));Nd("package-delivered","package","package",Pd.package,"package","Package delivered"),Nd("package-picked-up","package","package",Pd.package,"package","Package picked up"),Nd("contact","sensor","sensor","#f59e0b","door","Contact"),Nd("motion-sensor","sensor","sensor",Pd.sensor,"pir","Motion sensor"),Nd("smoke","sensor","sensor","#ef4444","smoke","Smoke"),Nd("flood","sensor","sensor","#3b82f6","water","Water leak"),Nd("gas","sensor","sensor","#ef4444","gas","Gas"),Nd("carbon-monoxide","sensor","sensor","#dc2626","smoke","Carbon monoxide"),Nd("vibration","sensor","sensor","#eab308","vibration","Vibration"),Nd("tamper","sensor","sensor","#f97316","tamper","Tamper"),Nd("presence","sensor","sensor","#22c55e","presence","Presence"),Nd("enum-sensor","sensor","sensor",Pd.sensor,"generic","Sensor state"),Nd("device-event","sensor","sensor","#10b981","button","Device event"),Nd("lock","control","control","#0ea5e9","lock","Lock"),Nd("switch","control","control",Pd.control,"switch","Switch"),Nd("siren","control","control","#dc2626","siren","Siren"),Nd("button","control","control","#10b981","button","Button"),Nd("doorbell","control","control","#a855f7","doorbell","Doorbell");for(const e of vd){const t=`audio-${e.id}`;Cd.has(t)||Nd(t,"audio","audio",Pd.audio,t,e.name)}var Ed=Object.freeze(Object.fromEntries(Cd));function xd(e){return Ed[e]}function Td(e){return Ed[e]?.color??"#22ff55"}function Dd(e){const t=[];for(const n of Object.values(Ed))n.parentKind===e&&t.push(n);return t}var Rd=z.z.object({kind:z.z.string(),label:z.z.string(),parentKind:z.z.string().nullable()}),Fd=z.z.object({videoClasses:z.z.array(Rd),audioKinds:z.z.array(Rd),labels:z.z.array(Rd)});function Bd(e,t,n){return{kind:e,label:t,parentKind:n}}function Ld(){const e=Object.values(Ed);return{videoClasses:e.filter(e=>"detection"===e.category).map(e=>Bd(e.kind,e.label,e.parentKind)),audioKinds:e.filter(e=>"audio"===e.category&&"sub"===e.level).map(e=>Bd(e.kind,e.label,e.parentKind)),labels:e.filter(e=>"sensor"===e.category||"control"===e.category).map(e=>Bd(e.kind,e.label,e.parentKind))}}var _d=Object.freeze(Ld()),qd=z.z.enum(["disarmed","armed_home","armed_away","armed_night","armed_vacation","armed_custom_bypass","arming","disarming","pending","triggered"]),Ud=z.z.enum(["home","away","night","vacation","custom_bypass"]),Vd=z.z.object({state:qd,availableModes:z.z.array(Ud),requiresCode:z.z.boolean(),lastChangedAt:z.z.number()}),Hd={name:"alarm-panel",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.AlarmPanel],methods:{arm:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:Ud,code:z.z.string().min(1).optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),disarm:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Vd,kind:"push"},runtimeState:Vd,durability:"restored",volatileStateFields:["lastChangedAt"]},$d=z.z.object({x:z.z.number(),y:z.z.number()}),Kd=z.z.object({kind:z.z.literal("rect"),x:z.z.number(),y:z.z.number(),width:z.z.number(),height:z.z.number()}),Wd=z.z.object({kind:z.z.literal("polygon"),points:z.z.array($d)}),Gd=z.z.object({kind:z.z.literal("grid"),gridWidth:z.z.number(),gridHeight:z.z.number(),cells:z.z.array(z.z.boolean())}),Zd=z.z.object({kind:z.z.literal("line"),points:z.z.array($d)}),Yd=z.z.discriminatedUnion("kind",[Kd,Wd,Gd,Zd]),Jd=z.z.enum(["rect","polygon","grid","line"]),Xd=z.z.object({min:z.z.number(),max:z.z.number()}),Qd=z.z.object({width:z.z.number(),height:z.z.number()}),el=z.z.enum(["immediate","track-end","device-event","package-event","system-event"]),tl=z.z.enum(["device-online","device-offline","device-disabled","device-enabled","stream-online","stream-offline","node-online","node-offline","node-inference-unavailable","detection-blind","addon-update-available","server-update-available","alarm-triggered","alarm-armed","alarm-disarmed","alarm-arming","alarm-arm-refused","camera-online","camera-offline","camera-disabled","camera-enabled"]),nl=new Set(["camera-online","camera-offline","camera-disabled","camera-enabled"]),al=tl.options.filter(e=>!nl.has(e)),rl=["alarm-arm-refused","alarm-arming","alarm-armed","alarm-triggered","alarm-disarmed"],il=z.z.object({kinds:z.z.array(tl).min(1),deviceIds:z.z.array(z.z.number().int()).min(1).optional(),deviceTypes:z.z.array(z.z.string().min(1)).min(1).optional(),nodeIds:z.z.array(z.z.string().min(1)).min(1).optional(),packageNames:z.z.array(z.z.string().min(1)).min(1).optional()}),ol=1,sl=1440,cl=[10,30,60],dl=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)}),ll=z.z.object({windows:z.z.array(dl).min(1),timezone:z.z.string().optional(),invert:z.z.boolean().optional()}),ul=z.z.object({values:z.z.array(z.z.string().min(1)),maxDistance:z.z.number().int().min(0).max(3).default(1)}),ml=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)}),pl=-96,bl=z.z.object({labels:z.z.array(z.z.string().min(1)).min(1).optional(),dbThreshold:z.z.number().min(-96).max(0).optional(),hitPercent:z.z.number().int().min(1).max(100).default(60),samplingSeconds:z.z.number().int().min(1).max(300).default(10)}),gl=z.z.enum(["enter","exit","any"]),zl=z.z.object({ids:z.z.array(z.z.string().min(1)).min(1),match:z.z.enum(["any","all"]).default("any")}),fl=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()})]),yl=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(fl).min(1)}),vl=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:ed.optional(),destructive:z.z.boolean().optional()}),hl=z.z.object({onTrigger:z.z.array(yl).optional(),buttons:z.z.array(vl).max(8).optional()}),Sl=z.z.object({deviceId:z.z.number().int(),states:z.z.array(z.z.string().min(1)).min(1)}),Il=z.z.object({sceneId:z.z.string().min(1),deviceId:z.z.number().int().optional(),requiredState:z.z.enum(["matched","diverged"]),latched:z.z.boolean().optional()}),jl=z.z.object({deviceState:Sl.optional(),scene:Il.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:zl.optional(),zonesExclude:z.z.array(z.z.string().min(1)).optional(),crossing:gl.optional(),labelEquals:z.z.array(z.z.string().min(1)).optional(),identities:z.z.array(z.z.string().min(1)).optional(),plates:ul.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(),systemEvent:il.optional(),customZones:z.z.array(Wd).optional(),occupancy:ml.optional(),audio:bl.optional()}),kl=z.z.object({targetId:z.z.string().min(1),params:z.z.record(z.z.string(),z.z.unknown()).optional()}),Pl=z.z.enum(["cropped","full","boxed"]),Ml=z.z.object({attach:z.z.enum(["best","best-matching","keyFrame","none"]).default("best"),frame:Pl.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.q.optional()}),wl=z.z.enum(["shared","per-class"]),Ol=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:wl.optional()}),Cl=1e3,Al=2e4,Nl=8e3,El=448,xl=z.z.object({op:z.z.enum([">=",">","<=","<","=="]),count:z.z.number().int().min(0).max(1e3)}),Tl=z.z.object({enabled:z.z.boolean().default(!1),profileId:z.z.string().optional(),prompt:z.z.string().max(1e3).optional(),expect:xl.optional(),timeoutMs:z.z.number().int().min(Cl).max(Al).default(Nl),onTimeout:z.z.enum(["fire","suppress"]).default("fire"),maxImagePx:z.z.number().int().min(64).max(2048).default(448)}),Dl=z.z.object({name:z.z.string().min(1).max(200),enabled:z.z.boolean().default(!0),delivery:el,conditions:jl.default({}),schedule:ll.optional(),targets:z.z.array(kl),targetUsers:z.z.array(z.z.string()).optional(),media:Ml.default({attach:"best"}),throttle:Ol.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(),snoozeOptions:z.z.array(z.z.number().int().min(1).max(sl)).max(4).optional(),actions:hl.optional(),confirm:Tl.optional(),waitForEnhancement:z.z.boolean().optional(),groupIdleSec:z.z.number().int().min(0).max(600).optional()}),Rl=Dl.partial().extend({disabledTargetIds:z.z.array(z.z.string()).optional(),enabled:z.z.boolean().optional(),conditions:jl.optional(),media:Ml.optional(),throttle:Ol.optional(),priority:z.z.number().int().min(1).max(5).optional()}),Fl=Dl.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([])}),Bl=z.z.object({recordId:z.z.string(),recordKind:z.z.enum(["object-event","track","device-event","package-event","system-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()}),Ll=z.z.object({id:z.z.string(),group:z.z.enum(["scope","class","zones","quality","label","schedule","device","package","occupancy","audio","system"]),label:z.z.string(),valueType:z.z.enum(["deviceIdList","stringList","number01","number","sourceSelect","zoneSelection","zoneIdList","schedule","plateMatcher","packagePhase","crossingSelect","polygonDraw","occupancy","audio","deviceState","scene","systemEvent"]),operator:z.z.enum(["in","notIn","anyOf","allOf","gte","fuzzyIn","withinSchedule"]),appliesTo:z.z.array(el),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()}),_l=[{id:"systemEvent",group:"system",label:"System event",valueType:"systemEvent",options:[{value:"device-online",label:"Device online"},{value:"device-offline",label:"Device offline"},{value:"device-disabled",label:"Device switched off"},{value:"device-enabled",label:"Device switched on"},{value:"stream-online",label:"Stream online"},{value:"stream-offline",label:"Stream offline"},{value:"node-online",label:"Node online"},{value:"node-offline",label:"Node offline"},{value:"node-inference-unavailable",label:"Node has no usable inference device"},{value:"detection-blind",label:"Camera detecting nothing"},{value:"addon-update-available",label:"Addon update available"},{value:"server-update-available",label:"Server update available"},{value:"alarm-arming",label:"Alarm arming (exit delay)"},{value:"alarm-armed",label:"Alarm armed"},{value:"alarm-triggered",label:"Alarm triggered"},{value:"alarm-disarmed",label:"Alarm disarmed"}],operator:"in",appliesTo:["system-event"],phase:"P1",description:"Infrastructure and update events. Device liveness covers EVERY device type \u2014 narrow it by device type (cameras only, say) and/or by device, node events by node id, and addon updates by package name."},{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:"Known faces",valueType:"stringList",operator:"in",appliesTo:["immediate","track-end"],phase:"P1",description:"Only recognised people. Selecting NOBODY means every identity in the face gallery; selecting some narrows to those. Matched on the gallery id, so renaming a person does not break the rule. On immediate delivery the name is not known yet when the notification is enqueued \u2014 see the rule\u2019s \"wait for recognition\" switch."},{id:"plates",group:"label",label:"Known plates",valueType:"plateMatcher",operator:"fuzzyIn",appliesTo:["immediate","track-end"],phase:"P1",description:"Only vehicles whose plate was read. Selecting NO plate means any readable plate; listed plates are matched Levenshtein-tolerantly, because OCR noise makes an exact match useless."},{id:"identitiesExclude",group:"label",label:"Excluded faces",valueType:"stringList",operator:"notIn",appliesTo:["immediate","track-end"],phase:"P1",description:"Veto by identity (mirror of Known faces, same gallery ids). A subject nobody recognised passes \u2014 there is nothing to exclude."},{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:"scene",group:"scope",label:"Scene state",valueType:"scene",operator:"in",appliesTo:["immediate","track-end","device-event","package-event"],phase:"P3",description:"Only fire while a scene is matched (the baseline is what we see) or diverged (it demonstrably is not) \u2014 \u201ctell me about a person at the door, but only while the bin is still out\u201d. A scene that cannot judge, or one this hub has not read yet, 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:"audio",group:"audio",label:"Sound",valueType:"audio",operator:"anyOf",appliesTo:["immediate"],phase:"P2",description:"Fires when at least hitPercent% of the samples in a samplingSeconds window are hits \u2014 a hit clears the dBFS floor AND carries one of the chosen sounds. Both filters are optional and independent, but naming NEITHER never matches: every sample would be a hit, so the engine refuses rather than notifying on silence. dBFS is negative-going (0 = full scale, -96 = silence)."},{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","system-event"],phase:"P1",description:"Weekly activation windows (invertible); absent = always active."}],ql=z.z.enum(["pending","sent","dead"]),Ul=z.z.enum(["object-event","track-end","device-event","package-event","system-event"]),Vl=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(),systemEvent:z.z.object({kind:tl,subject:z.z.string(),title:z.z.string(),body:z.z.string(),data:z.z.record(z.z.string(),z.z.unknown())}).optional()}),Hl=z.z.object({id:z.z.string(),ruleId:z.z.string(),ruleName:z.z.string(),delivery:el,targetId:z.z.string(),deviceId:z.z.number(),recordKind:Ul,recordId:z.z.string(),trackId:z.z.string().optional(),status:ql,attempts:z.z.number().int(),createdAt:z.z.number(),updatedAt:z.z.number(),error:z.z.string().optional(),subject:Vl}),$l=100,Kl=500,Wl=z.z.object({ruleId:z.z.string().optional(),deviceId:z.z.number().optional(),status:ql.optional(),since:z.z.number().optional(),until:z.z.number().optional(),limit:z.z.number().int().min(1).max(500).default(100)}),Gl=z.z.enum(["rule","device","all"]),Zl=z.z.object({scope:Gl,ruleId:z.z.string().optional(),deviceId:z.z.number().int().optional(),classes:z.z.array(z.z.string().min(1)).min(1).optional(),durationMinutes:z.z.number().int().min(1).max(sl),global:z.z.boolean().optional(),summary:z.z.boolean().optional()}),Yl=z.z.object({id:z.z.string(),userId:z.z.string(),scope:Gl,ruleId:z.z.string().optional(),deviceId:z.z.number().int().optional(),classes:z.z.array(z.z.string().min(1)).min(1).optional(),startedAt:z.z.number(),expiresAt:z.z.number(),global:z.z.boolean(),summary:z.z.boolean(),digestSentAt:z.z.number().optional()}),Jl=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()}),Xl=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)}),Ql=Xl.partial(),eu=z.z.enum(["muted","detection-off","offline"]),tu=z.z.object({deviceId:z.z.number().int(),reason:eu}),nu=z.z.object({mode:Ud,ruleCount:z.z.number().int().min(0),allDevices:z.z.boolean(),deviceIds:z.z.array(z.z.number().int()),skippedDevices:z.z.array(tu).default([])}),au=z.z.object({deviceId:z.z.number().int().nullable(),settings:Xl,coverage:z.z.array(nu)}),ru={name:"notification-rules",scope:"system",mode:"singleton",methods:{listRules:(0,m.M)(z.z.object({}),z.z.object({rules:z.z.array(Fl)}),{auth:"admin"}),getRule:(0,m.M)(z.z.object({ruleId:z.z.string()}),z.z.object({rule:Fl.nullable()}),{auth:"admin"}),createRule:(0,m.M)(z.z.object({rule:Dl}),z.z.object({rule:Fl}),{kind:"mutation",auth:"admin",caller:"required"}),updateRule:(0,m.M)(z.z.object({ruleId:z.z.string(),patch:Rl}),z.z.object({rule:Fl}),{kind:"mutation",auth:"admin",caller:"required"}),deleteRule:(0,m.M)(z.z.object({ruleId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setRuleEnabled:(0,m.M)(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.M)(z.z.object({}),z.z.object({mutedDeviceIds:z.z.array(z.z.number().int()).readonly()}),{auth:"admin"}),setDeviceMuted:(0,m.M)(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.M)(z.z.object({rule:Dl,lookbackMinutes:z.z.number().int().min(1).max(1440).default(60)}),z.z.object({results:z.z.array(Bl)}),{kind:"mutation",auth:"admin"}),getConditionCatalog:(0,m.M)(z.z.object({}),z.z.object({catalog:z.z.array(Ll),taxonomy:Fd.optional()})),getHistory:(0,m.M)(z.z.object({filter:Wl.default({limit:100})}),z.z.object({entries:z.z.array(Hl)}),{auth:"admin"}),listSnoozes:(0,m.M)(z.z.object({}),z.z.object({snoozes:z.z.array(Yl)}),{caller:"required"}),createSnooze:(0,m.M)(z.z.object({snooze:Zl}),z.z.object({snooze:Yl}),{kind:"mutation",caller:"required"}),cancelSnooze:(0,m.M)(z.z.object({snoozeId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",caller:"required"}),getAlarmConfig:(0,m.M)(z.z.object({}),au,{auth:"admin"}),setAlarmConfig:(0,m.M)(z.z.object({patch:Ql}),au,{kind:"mutation",auth:"admin"})}},iu=z.z.enum(["view","create","delete"]),ou=z.z.union([z.z.literal("*"),z.z.array(z.z.string())]),su=z.z.record(z.z.string(),z.z.union([z.z.literal("*"),z.z.array(z.z.string())])),cu=z.z.enum(["device","system"]),du=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("all")}),z.z.object({kind:z.z.literal("ids"),ids:z.z.array(z.z.number().int()).min(1)}),z.z.object({kind:z.z.literal("types"),types:z.z.array(z.z.enum(m.w)).min(1)}),z.z.object({kind:z.z.literal("locations"),locations:z.z.array(z.z.string().min(1)).min(1)})]),lu=z.z.object({type:z.z.literal("device"),selector:du,access:z.z.array(iu).min(1),includeLinked:z.z.boolean().optional()});var uu=z.z.preprocess(function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return e;if("device"!==Reflect.get(e,"type"))return e;if(void 0!==Reflect.get(e,"selector"))return e;const t=Reflect.get(e,"targets");return Array.isArray(t)?{type:"device",selector:{kind:"ids",ids:t.map(e=>"string"==typeof e?Number(e):e).filter(e=>"number"==typeof e&&Number.isInteger(e))},access:Reflect.get(e,"access")}:e},z.z.discriminatedUnion("type",[z.z.object({type:z.z.literal("category"),target:cu,access:z.z.array(iu).min(1)}),z.z.object({type:z.z.literal("capability"),target:z.z.string(),access:z.z.array(iu).min(1)}),z.z.object({type:z.z.literal("addon"),target:z.z.string(),access:z.z.array(iu).min(1)}),lu])),mu=z.z.object({id:z.z.string(),username:z.z.string(),passwordHash:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:ou,allowedDevices:su,scopes:z.z.array(uu).default([]),createdAt:z.z.number(),updatedAt:z.z.number()}),pu=z.z.object({id:z.z.string(),label:z.z.string(),isAdmin:z.z.boolean().default(!1),allowedProviders:ou,allowedDevices:su,tokenHash:z.z.string(),tokenPrefix:z.z.string(),createdAt:z.z.number(),lastUsedAt:z.z.number().optional()}),bu=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(uu),expiresAt:z.z.number().nullish(),lastUsedAt:z.z.number().nullish(),createdAt:z.z.number()}),gu=z.z.object({integrationId:z.z.string(),displayName:z.z.string(),requestedScopes:z.z.array(uu),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()}),zu={name:"oauth-integration",scope:"system",mode:"collection",internal:!0,methods:{getDescriptor:(0,m.M)(z.z.void(),gu)}},fu=z.z.enum(["new","entered","left","moving","idle"]),yu=z.z.enum(["motion","object","audio"]),vu=z.z.discriminatedUnion("kind",[Kd,Wd]),hu=z.z.enum(["motion","audio","person","vehicle","animal","door","pir","smoke","water","button","package","generic"]),Su=z.z.enum(["motion","audio","detection","sensor","control","custom","package"]),Iu=z.z.enum(["macro","sub"]),ju=z.z.object({kind:z.z.string(),labelKey:z.z.string(),label:z.z.string(),color:z.z.string(),iconId:z.z.string(),icon:hu,category:Su,parentKind:z.z.string().nullable(),level:Iu,source:z.z.object({capName:z.z.string(),deviceId:z.z.number()})}),ku=z.z.object({deviceId:z.z.number(),kinds:z.z.array(ju).readonly()}),Pu=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()}),Mu=z.z.object({x:z.z.number(),y:z.z.number(),timestamp:z.z.number(),bbox:ir}),wu=z.z.object({timestamp:z.z.number(),position:Mu,mediaKey:z.z.string()}),Ou=z.z.object({minX:z.z.number(),minY:z.z.number(),maxX:z.z.number(),maxY:z.z.number()}),Cu=z.z.enum(["full","slim"]),Au=z.z.object({label:z.z.string(),peakScore:z.z.number(),count:z.z.number(),firstAt:z.z.number(),lastAt:z.z.number()}),Nu=z.z.enum(["pipeline","sensor","audio"]),Eu=z.z.enum(["none","staging","trained"]),xu={markForTrain:z.z.boolean().optional(),debug:z.z.boolean().optional()},Tu={retrainStatus:Eu.optional()},Du=z.z.object(xu),Ru=z.z.object({trackId:z.z.string(),markForTrain:z.z.boolean(),debug:z.z.boolean(),retrainStatus:Eu}),Fu=z.z.union([z.z.literal(1),z.z.literal(2)]),Bu=z.z.object({stepId:z.z.string(),modelId:z.z.string().optional(),decidedAt:z.z.number(),identityId:z.z.string().optional()}),Lu={label:z.z.string().optional(),labelScore:z.z.number().optional(),labelMeta:Bu.optional(),subLabel:z.z.string().optional(),subLabelScore:z.z.number().optional(),subLabelMeta:Bu.optional()},_u=z.z.object({deviceId:z.z.number(),tracks:z.z.number().int(),files:z.z.number().int(),bytes:z.z.number().int()}),qu=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(_u).readonly()}),Uu=z.z.object(Object.assign({trackId:z.z.string(),deviceId:z.z.number(),className:z.z.string()},Lu,{producingDeviceName:z.z.string().optional(),source:Nu.optional(),firstSeen:z.z.number(),lastSeen:z.z.number(),positions:z.z.array(Mu).readonly(),snapshots:z.z.array(wu).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:fu,active:z.z.boolean(),importance:z.z.number().optional(),bestEventId:z.z.string().optional(),importanceReason:z.z.string().optional(),audioLabels:z.z.array(Au).readonly().optional(),envelope:Ou.optional(),hasFace:z.z.boolean().optional(),hasRider:z.z.boolean().optional()},xu,Tu)),Vu={id:z.z.string(),deviceId:z.z.number(),timestamp:z.z.number()},Hu=z.z.object(Object.assign({},Vu,{kind:z.z.literal("motion"),regionCount:z.z.number(),regions:z.z.array(z.z.object({bbox:ir,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()})),$u=z.z.enum(["pipeline","onboard"]),Ku=z.z.enum(["enter","exit"]),Wu=z.z.object({direction:Ku,zoneId:z.z.string(),zoneName:z.z.string().optional()}),Gu=z.z.object(Object.assign({},Vu,{kind:z.z.literal("object"),source:$u.optional(),frameId:z.z.string().optional(),trackId:z.z.string().optional(),className:z.z.string()},Lu,{confidence:z.z.number().optional(),bbox:ir.optional(),zones:z.z.array(z.z.string()).readonly().optional(),state:fu.optional(),zoneCrossing:Wu.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()})),Zu=z.z.object(Object.assign({},Vu,{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()})),Yu=z.z.enum(["crop","thumbnail","snapshot","firstFrame","lastFrame","fullFrame","fullFrameBoxed","faceCrop","plateCrop","keyFrame","keyFrameSmall","thumbnailSmall"]),Ju=z.z.object({key:z.z.string(),kind:Yu,base64:z.z.string(),sizeBytes:z.z.number(),timestamp:z.z.number()}),Xu=Ju.omit({base64:!0}),Qu=z.z.enum(["person","vehicle","animal","package","face","plate"]),em=z.z.enum(["subject","model_error"]),tm=z.z.enum(["operator","assist"]),nm=z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),am=z.z.object({id:z.z.string(),trackId:z.z.string(),deviceId:z.z.number(),mediaKey:z.z.string(),bbox:nm,macroClass:Qu,label:z.z.string().optional(),subLabel:z.z.string().optional(),kind:em,source:tm,assistModelId:z.z.string().optional(),assistScore:z.z.number().optional(),exportedInBatch:z.z.string().optional(),createdAt:z.z.number()}),rm=am.omit({id:!0,trackId:!0,deviceId:!0,mediaKey:!0,createdAt:!0,exportedInBatch:!0}),im=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()}),om=z.z.object({mediaKey:z.z.string(),kind:Yu,timestamp:z.z.number(),sizeBytes:z.z.number().int(),copied:z.z.boolean()}),sm=z.z.object({frameId:z.z.string(),deviceId:z.z.number(),trackId:z.z.string(),sourceMediaKey:z.z.string(),sourceKind:Yu,sizeBytes:z.z.number().int(),width:z.z.number().int(),height:z.z.number().int(),copiedAt:z.z.number()}),cm=z.z.enum(["source-missing","unreadable-image","write-failed"]),dm=z.z.object({copied:z.z.array(sm).readonly(),refused:z.z.array(z.z.object({sourceMediaKey:z.z.string(),reason:cm})).readonly()}),lm=z.z.object({candidates:z.z.array(om).readonly(),copies:z.z.array(sm).readonly(),autoPickMediaKey:z.z.string().optional()}),um=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("package"),zone:nm.optional()}),z.z.object({kind:z.z.literal("objects"),modelId:z.z.string(),minScore:z.z.number().optional()})]),mm=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(rm).readonly(),belowThreshold:z.z.number().int()}),z.z.object({kind:z.z.literal("refused"),reason:z.z.string(),detail:z.z.string().optional()})]),pm=z.z.object({trackId:z.z.string(),retrainStatus:Eu,changed:z.z.boolean(),reason:z.z.enum(["unknown-track","no-frames-copied","not-staging","not-trained","unchanged"]).optional()}),bm=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()}),gm=bm.extend({classFilter:z.z.string().optional()}),zm=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:Cu.optional(),includeStationary:z.z.boolean().optional()}),fm=z.z.object({tracks:z.z.array(Uu).readonly(),nextCursor:z.z.string().nullable()}),ym=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()}),vm=z.z.object(Object.assign({id:z.z.string(),trackId:z.z.string(),timestamp:z.z.number(),className:z.z.string()},Lu,{importance:z.z.number(),bestEventId:z.z.string(),windowMs:z.z.number().optional()},xu,Tu)),hm=z.z.object({trackId:z.z.string(),className:z.z.string(),confidence:z.z.number(),bbox:ir,zones:z.z.array(z.z.string()).readonly(),state:fu}),Sm=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()}),Im=Gu.extend({score:z.z.number()}),jm=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)}),km=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()}),Pm=z.z.object({deviceId:z.z.number(),rows:z.z.number().int(),bytes:z.z.number().int()}),Mm=z.z.object({totalRows:z.z.number().int(),totalBytes:z.z.number().int(),devices:z.z.array(Pm).readonly()}),wm=z.z.object({motion:z.z.number().int(),object:z.z.number().int(),audio:z.z.number().int()}),Om=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()}),Cm=z.z.object({deleted:z.z.number()}),Am=z.z.object({started:z.z.boolean(),alreadyRunning:z.z.boolean()}),Nm=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()}),Em={name:"pipeline-analytics",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],exposesDeviceSettings:!0,methods:{getActiveTracks:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.array(Uu).readonly()),getTrack:(0,m.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string()}),Uu.nullable()),listTracks:(0,m.M)(z.z.object({deviceId:z.z.number(),since:z.z.number().optional(),until:z.z.number().optional(),limit:z.z.number().optional(),zone:vu.optional(),projection:Cu.optional(),includeStationary:z.z.boolean().optional()}),z.z.array(Uu).readonly()),listRecentTracks:(0,m.M)(zm,fm),clearTracks:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),getMotionEvents:(0,m.M)(bm,z.z.array(Hu).readonly()),getObjectEvents:(0,m.M)(gm,z.z.array(Gu).readonly()),getAudioEvents:(0,m.M)(bm,z.z.array(Zu).readonly()),listEventKinds:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.array(ju).readonly()),listEventKindsBatch:(0,m.M)(z.z.object({deviceIds:z.z.array(z.z.number()).min(1).max(200)}),z.z.array(ku).readonly()),getSensorEvents:(0,m.M)(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(Pu).readonly()),getKeyEvents:(0,m.M)(ym,z.z.array(vm).readonly()),getEventDensity:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number(),cutoffMs:z.z.number()}),km,{kind:"mutation",auth:"admin"}),wipeAllAnalytics:(0,m.M)(z.z.object({deviceId:z.z.number()}),km,{kind:"mutation",auth:"admin"}),deleteTracks:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),flags:Du}),Ru,{kind:"mutation"}),getEventStoreFootprint:(0,m.M)(z.z.object({}),Mm,{kind:"query",auth:"admin"}),pruneEvents:(0,m.M)(z.z.object({olderThanMs:z.z.number(),reason:Fe.optional()}),wm,{kind:"mutation",auth:"admin"}),deleteDeviceEvents:(0,m.M)(z.z.object({deviceId:z.z.number()}),wm,{kind:"mutation",auth:"admin"}),pauseForStorageMigration:(0,m.M)(lt,z.z.object({paused:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),resumeForStorageMigration:(0,m.M)(lt,z.z.object({resumed:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),refreshStorageLocationsForMigration:(0,m.M)(lt,z.z.object({refreshed:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),startStorageMigrationMove:(0,m.M)(pt,z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),getStorageMigrationMoveStatus:(0,m.M)(z.z.object({jobId:z.z.string()}),st.nullable(),{auth:"admin"}),cancelStorageMigrationMove:(0,m.M)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),listOpsLog:(0,m.M)(Le,z.z.array(Be).readonly(),{kind:"query",auth:"admin"}),getTrainingExportSummary:(0,m.M)(z.z.object({deviceIds:z.z.array(z.z.number()).optional()}),qu,{kind:"query",auth:"admin"}),getTrainingExportUrl:(0,m.M)(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.M)(z.z.object({deviceIds:z.z.array(z.z.number()).optional(),limit:z.z.number().int().min(1).max(500).optional()}),z.z.array(im).readonly(),{kind:"query",auth:"admin"}),listRetrainFrames:(0,m.M)(z.z.object({trackId:z.z.string()}),lm,{kind:"query",auth:"admin"}),selectRetrainFrames:(0,m.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),mediaKeys:z.z.array(z.z.string()).min(1)}),dm,{kind:"mutation",auth:"admin"}),deselectRetrainFrame:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),frameId:z.z.string(),subject:um,nodeId:z.z.string().optional()}),mm,{kind:"mutation",auth:"admin"}),listRetrainAnnotations:(0,m.M)(z.z.object({trackId:z.z.string()}),z.z.array(am).readonly(),{kind:"query",auth:"admin"}),saveRetrainAnnotations:(0,m.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string(),frameId:z.z.string(),annotations:z.z.array(rm)}),z.z.array(am).readonly(),{kind:"mutation",auth:"admin"}),completeRetrainTrack:(0,m.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string()}),pm,{kind:"mutation",auth:"admin"}),restageRetrainTrack:(0,m.M)(z.z.object({deviceId:z.z.number(),trackId:z.z.string()}),pm,{kind:"mutation",auth:"admin"}),getRetrainExportUrl:(0,m.M)(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.M)(z.z.object({eventId:z.z.string(),kind:Yu.optional(),deviceId:z.z.number()}),z.z.array(Ju).readonly()),getTrackMedia:(0,m.M)(z.z.object({trackId:z.z.string(),kinds:z.z.array(Yu).optional(),deviceId:z.z.number()}),z.z.array(Ju).readonly()),listTrackMedia:(0,m.M)(z.z.object({trackId:z.z.string(),deviceId:z.z.number()}),z.z.array(Xu).readonly()),searchObjectEvents:(0,m.M)(jm,z.z.array(Im).readonly()),wipeObjectEmbeddings:(0,m.M)(z.z.object({}),Cm,{kind:"mutation",auth:"admin"}),rebuildObjectEmbeddings:(0,m.M)(Om,Am,{kind:"mutation",auth:"admin"}),getObjectEmbeddingRebuildStatus:(0,m.M)(z.z.object({}),Nm)},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(Sm).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:yu,eventId:z.z.string(),timestamp:z.z.number()})}}},xm=z.z.object({handle:m.tt,cropFrameSpace:z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()})}),Tm=z.z.enum(["onnx","coreml","openvino","tflite","pt","gguf"]),Dm=z.z.enum(["detector","cropper","classifier","refiner","audio-classifier"]),Rm=z.z.object({runtime:z.z.enum(["node","python"]),backend:z.z.string(),format:Tm,device:z.z.string().optional()}),Fm=z.z.object({id:z.z.string(),label:z.z.string(),description:z.z.string().optional()}),Bm=z.z.object({engine:Rm,devices:z.z.array(Fm).readonly(),defaultDevice:z.z.string()}),Lm=z.z.lazy(()=>z.z.object({addonId:z.z.string(),addonName:z.z.string(),slot:Dm,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(Lm).readonly(),group:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional()})),_m=z.z.lazy(()=>z.z.object({addonId:z.z.string(),enabled:z.z.boolean(),modelId:z.z.string(),children:z.z.array(_m).readonly(),settings:z.z.record(z.z.string(),z.z.unknown()).optional()})),qm=z.z.object({id:z.z.string(),name:z.z.string(),createdAt:z.z.string(),updatedAt:z.z.string(),engine:Rm,steps:z.z.array(_m).readonly()}),Um=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:Jt.optional(),legacy:z.z.boolean().optional()}),Vm=z.z.custom(),Hm=z.z.object({id:z.z.string(),name:z.z.string(),slot:Dm,inputClasses:z.z.array(z.z.string()).readonly(),outputClasses:z.z.array(z.z.string()).readonly(),childSlots:z.z.array(Dm).readonly(),models:z.z.array(Um).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(Vm).readonly().optional()}),$m=z.z.object({id:Dm,label:z.z.string(),priority:z.z.number(),parentSlot:Dm.nullable(),addons:z.z.array(Hm).readonly()}),Km=z.z.object({availableEngines:z.z.array(Bm).readonly(),selectedEngine:Rm,slots:z.z.array($m).readonly()}),Wm=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()}),Gm=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(Gm).optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional(),jumpDeviceKey:z.z.string().optional()})),Zm=z.z.object({addonId:z.z.string(),chosen:z.z.string(),running:z.z.string(),format:z.z.string()}),Ym=z.z.object({addonId:z.z.string(),kind:z.z.enum(["unknown-addon","no-format-build"]),detail:z.z.string()}),Jm=z.z.object({ok:z.z.boolean(),issues:z.z.array(Ym).readonly(),substitutions:z.z.array(Zm).readonly(),format:z.z.string()}),Xm=z.z.object({filename:z.z.string(),stepIds:z.z.array(z.z.string()).readonly().optional()}),Qm=z.z.object({base64:z.z.string(),filename:z.z.string()}),ep=z.z.object({filename:z.z.string(),sizeKb:z.z.number()}),tp=z.z.object({base64:z.z.string()}),np=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()}),ap=z.z.object({activeBackend:z.z.string(),availableBackends:z.z.array(np).readonly(),sampleRate:z.z.number(),chunkDurationMs:z.z.number()}),rp=z.z.object({filePath:z.z.string(),sizeMB:z.z.number(),durationMs:z.z.number()}),ip=z.z.object({success:z.z.boolean(),error:z.z.string().optional(),frame:z.z.custom().optional()}),op=z.z.custom(),sp=z.z.custom(),cp=z.z.custom(),dp=z.z.custom(),lp=z.z.custom(),up=z.z.custom(),mp={name:"pipeline-executor",scope:"system",mode:"singleton",methods:{getAvailableEngines:(0,m.M)(z.z.void(),z.z.array(Rm)),getSelectedEngine:(0,m.M)(z.z.void(),Rm),getDefaultSteps:(0,m.M)(Rm,z.z.array(Lm)),getEngineProvisioning:(0,m.M)(z.z.object({nodeId:z.z.string()}),Wm),getVideoPipelineSteps:(0,m.M)(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.M)(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.M)(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.M)(z.z.void(),Km),getGlobalSteps:(0,m.M)(z.z.void(),z.z.array(Lm).readonly().nullable()),getGlobalPipelineConfig:(0,m.M)(z.z.void(),op),getOrchestratorConfigSchema:(0,m.M)(z.z.void(),sp),validatePipeline:(0,m.M)(z.z.object({steps:z.z.array(Gm)}),Jm),listTemplates:(0,m.M)(z.z.void(),z.z.array(qm).readonly()),saveTemplate:(0,m.M)(z.z.object({name:z.z.string(),steps:z.z.array(_m).readonly(),engine:Rm}),qm,{kind:"mutation"}),updateTemplate:(0,m.M)(z.z.object({id:z.z.string(),name:z.z.string().optional(),steps:z.z.array(_m).readonly().optional()}),qm,{kind:"mutation"}),deleteTemplate:(0,m.M)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation"}),getCapabilities:(0,m.M)(z.z.void(),dp),getAddonModels:(0,m.M)(z.z.object({addonId:z.z.string()}),lp),downloadModel:(0,m.M)(z.z.object({addonId:z.z.string(),modelId:z.z.string(),format:Tm}),rp,{kind:"mutation"}),deleteModel:(0,m.M)(z.z.object({addonId:z.z.string(),modelId:z.z.string(),format:Tm}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),runPipeline:(0,m.M)(z.z.object({engine:Rm.optional(),steps:z.z.array(Gm).min(1),frame:rr.optional(),frameHandle:m.tt.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:xm.optional()}),up,{kind:"mutation"}),runPipelineBatch:(0,m.M)(z.z.object({engine:Rm.optional(),steps:z.z.array(Gm).min(1),frames:z.z.array(rr).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(up).readonly()}),{kind:"mutation"}),cacheFrameInPool:(0,m.M)(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.M)(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.M)(z.z.object({frameId:z.z.number().int()}),z.z.void(),{kind:"mutation"}),getEffectiveTuning:(0,m.M)(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.M)(z.z.void(),z.z.array(z.z.object({engineKey:z.z.string(),engine:Rm,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.M)(z.z.object({engine:Rm}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),killEngine:(0,m.M)(z.z.object({engine:Rm,force:z.z.boolean().optional()}),z.z.object({success:z.z.boolean(),reason:z.z.string().optional()}),{kind:"mutation",auth:"admin"}),listReferenceImages:(0,m.M)(z.z.void(),z.z.array(Xm).readonly()),getReferenceImage:(0,m.M)(z.z.object({filename:z.z.string()}),Qm.nullable()),getReferenceAudioFiles:(0,m.M)(z.z.void(),z.z.array(ep).readonly()),getReferenceAudio:(0,m.M)(z.z.object({filename:z.z.string()}),tp.nullable()),getAudioCapabilities:(0,m.M)(z.z.void(),ap),runAudioTest:(0,m.M)(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()}),ip,{kind:"mutation"}),getDetectionConfigSchema:(0,m.M)(z.z.void(),cp)}},pp=z.z.object({activeCameras:z.z.number(),throttledCameras:z.z.number(),avgInferenceTimeMs:z.z.number(),queueDepth:z.z.number()}),bp=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"])}),gp=bp.extend({deviceId:z.z.number()}),zp=z.z.enum(["polygon","tripwire"]),fp=z.z.object({x:z.z.number(),y:z.z.number()}),yp=z.z.object({id:z.z.string(),name:z.z.string(),kind:zp.default("polygon"),polygon:z.z.array(fp).readonly(),color:z.z.string().default("#3b82f6")}),vp={name:"zones",scope:"device",mode:"singleton",deviceTypes:[m.w.Camera],methods:{listZones:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.array(yp).readonly()),addZone:(0,m.M)(z.z.object({deviceId:z.z.number(),zone:yp}),z.z.void(),{kind:"mutation",auth:"admin"}),removeZone:(0,m.M)(z.z.object({deviceId:z.z.number(),zoneId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),updateZone:(0,m.M)(z.z.object({deviceId:z.z.number(),zone:yp}),z.z.void(),{kind:"mutation",auth:"admin"})},runtimeState:z.z.object({zones:z.z.array(yp).readonly()}),durability:"restored"},hp=z.z.object({x:z.z.number(),y:z.z.number(),w:z.z.number(),h:z.z.number()}),Sp=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()}),Ip=z.z.object({bbox:hp,className:z.z.string()}),jp=z.z.object({stepId:z.z.string(),className:z.z.string(),score:z.z.number(),bbox:hp.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()}),kp=z.z.enum(["unknown-step","model-not-servable","unreadable-frame","execution-failed"]),Pp=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("ran"),nodeId:z.z.string(),modelId:z.z.string(),details:z.z.array(jp)}),z.z.object({kind:z.z.literal("refused"),nodeId:z.z.string(),reason:kp,detail:z.z.string()})]),Mp=0,wp=6e4,Op=3e4,Cp=500,Ap=0,Np=6e5,Ep=12e4,xp=5e3,Tp=5e3,Dp=6e5,Rp=9e4,Fp=5e3,Bp=1,Lp=30,_p=4,qp=1,Up=1,Vp=30,Hp=10,$p=1,Kp=0,Wp=300,Gp=300,Zp=5,Yp=1,Jp=10,Xp=4,Qp=1,eb=z.z.enum(["onboard","analyzer"]),tb=z.z.array(eb),nb=z.z.object({deviceId:z.z.number(),detected:z.z.boolean(),source:eb.default("analyzer"),regions:z.z.array(Ec).readonly().optional()}),ab=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)"),rb=z.z.object({deviceKey:z.z.string(),weight:z.z.number().positive().default(1),maxSessions:z.z.number().int().positive().nullable().default(null)}),ib=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(Mp).default(Op),maxSessionHoldMs:z.z.number().min(Ap).max(Np).optional(),audioMotionWindowMs:z.z.number().min(Tp).max(Dp).optional(),motionFps:z.z.number().min(Bp).max(Lp).default(_p),detectionFps:z.z.number().min(Up).max(Vp).default(Hp),motionStreamId:z.z.string(),detectionStreamId:z.z.string(),motionSources:tb.default(["analyzer"]),pipelineEnabled:z.z.boolean().default(!0),steps:z.z.array(Gm).readonly().optional(),audio:z.z.object({modelId:z.z.string().optional(),enabled:z.z.boolean()}).nullable().optional(),zones:z.z.array(yp).readonly().default([]),onboardMotionDrivesAnalyzer:z.z.boolean().default(!0),occupancyRecheckEnabled:z.z.boolean().default(!0),occupancyRecheckSec:z.z.number().min(Kp).max(Wp).default(Gp),occupancyRecheckFrames:z.z.number().min(Yp).max(Jp).default(Xp),frameSource:ab.default({kind:"local-broker"}),deviceKey:z.z.string().optional(),inferenceDevices:z.z.array(rb).readonly().optional()}),ob=[{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:Bp,max:Lp,step:qp,default:_p,showValue:!0,unit:"fps",nullable:!0,nullLabel:"Default",showWhen:{field:"motionSources",includes:"analyzer"}},{key:"detectionFps",type:"slider",label:"Detection FPS",min:Up,max:Vp,step:$p,default:Hp,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:Mp,max:wp,step:Cp,default:Op,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:Ap,max:Np,step:xp,default:Ep,showValue:!0,unit:"s",displayScale:1e3,nullable:!0,nullLabel:"Default"},{key:"audioMotionWindowMs",type:"slider",label:"Audio window after motion",description:"How long audio keeps being analysed after the last motion event. Each new motion event extends the window without restarting the audio stream.",min:Tp,max:Dp,step:Fp,default:Rp,showValue:!0,unit:"s",displayScale:1e3,nullable:!0,nullLabel:"Default",showWhen:{field:"audioMode",equals:"on-motion"}},{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, so objects that are simply parked are still counted (motion gating alone loses them after a restart). On by default at a wide interval; turn it off on cameras where the extra decoder re-dial is expensive.",default:!0},{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:Kp,max:Wp,step:Zp,default:Gp,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:Yp,max:Jp,step:Qp,default:Xp,showValue:!0,showWhen:{field:"occupancyRecheckEnabled",equals:!0}}],sb=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()})}),cb=z.z.object({nodeId:z.z.string(),activeCameras:z.z.number(),throttledCameras:z.z.number(),avgInferenceTimeMs:z.z.number(),queueDepth:z.z.number()}),db={name:"pipeline-runner",scope:"system",mode:"singleton",methods:{attachCamera:(0,m.M)(ib,z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),detachCamera:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),reportMotion:(0,m.M)(nb,z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),getLocalLoad:(0,m.M)(z.z.void(),sb),getLocalMetrics:(0,m.M)(z.z.void(),cb),getCameraMetrics:(0,m.M)(z.z.object({deviceId:z.z.number()}),bp.nullable()),getAllCameraMetrics:(0,m.M)(z.z.void(),z.z.array(gp).readonly()),getLocalCameras:(0,m.M)(z.z.void(),z.z.array(z.z.number()).readonly()),getNativeCrop:(0,m.M)(z.z.object({handle:m.tt,bbox:hp,maxWidth:z.z.number().int().positive().optional(),encodeJpeg:z.z.boolean().optional()}),Sp.nullable()),runDetailSubtree:(0,m.M)(z.z.object({deviceId:z.z.number(),frameHandle:m.tt.optional(),frameJpeg:z.z.string().optional(),cropJpeg:z.z.string().optional(),parent:Ip,steps:z.z.array(z.z.string()).optional()}),z.z.object({details:z.z.array(jp)}).nullable(),{kind:"mutation"}),runStatelessStep:(0,m.M)(z.z.object({stepId:z.z.string(),modelId:z.z.string(),frameJpeg:z.z.string(),bbox:hp,className:z.z.string(),sourceDeviceId:z.z.number()}),Pp,{kind:"mutation"})}},lb=z.z.object({engine:Rm.optional(),steps:z.z.array(Gm).readonly(),audio:z.z.object({engine:Rm.optional(),modelId:z.z.string().optional(),enabled:z.z.boolean(),settings:z.z.record(z.z.string(),z.z.unknown()).readonly().optional()}).nullable().optional()}),ub=z.z.object({id:z.z.string(),name:z.z.string(),description:z.z.string().optional(),config:lb,createdAt:z.z.string(),updatedAt:z.z.string()}),mb=z.z.object({modelId:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).optional(),jumpDeviceKey:z.z.string().optional()}),pb=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(),mb).optional()})).optional()}),bb=z.z.object({steps:z.z.array(Gm).readonly(),audio:z.z.object({modelId:z.z.string(),enabled:z.z.boolean()}).nullable()}),gb=z.z.object({modelId:z.z.string().optional(),settings:z.z.record(z.z.string(),z.z.unknown()).readonly().optional()}),zb=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(),gb))).optional(),pipelineByAgent:z.z.record(z.z.string(),bb).optional()}),fb=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()}),yb=z.z.object({nodeId:z.z.string(),online:z.z.boolean(),load:sb,score:z.z.number(),decodeHwaccel:z.z.string().nullable()}),vb=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()}),hb=z.z.record(z.z.string(),z.z.string()),Sb=z.z.object({ownerNodeId:z.z.string(),reachableHost:z.z.string().optional(),configIssue:z.z.string().optional()}),Ib=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()}),jb=z.z.object({streams:z.z.array(Ib).readonly()}),kb=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()})}),Pb=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()}),Mb=z.z.object({profiles:z.z.array(Pb).readonly(),webrtcSessions:z.z.number(),rtspRestream:z.z.boolean()}),wb=z.z.object({framesWritten:z.z.number(),getFrameHits:z.z.number(),getFrameMisses:z.z.number(),budgetMb:z.z.number()}),Ob=z.z.object({nodeId:z.z.string(),formats:z.z.array(z.z.string()).readonly(),sessionCount:z.z.number(),shm:wb}),Cb=z.z.object({enabled:z.z.boolean(),fps:z.z.number()}),Ab=z.z.enum(["idle","installing","verifying","ready","failed"]),Nb=z.z.object({state:Ab,error:z.z.string().optional()}),Eb=z.z.enum(["idle","watching","active"]),xb=z.z.object({nodeId:z.z.string(),engine:z.z.object({backend:z.z.string(),device:z.z.string()}),phase:Eb,configuredFps:z.z.number(),actualFps:z.z.number(),queueDepth:z.z.number(),avgInferenceMs:z.z.number(),provisioning:Nb}),Tb=z.z.object({nodeId:z.z.string(),enabled:z.z.boolean()}),Db=z.z.enum(["off","continuous","events"]),Rb=z.z.object({mode:Db,active:z.z.boolean(),storageBytes:z.z.number()}),Fb=z.z.enum(["source","broker","detection","recording","switches"]),Bb=z.z.enum(["timeout","error","partial"]),Lb=z.z.object({stage:Fb,reason:Bb,elapsedMs:z.z.number()}),_b=z.z.object({deviceId:z.z.number(),assignment:kb,source:jb,broker:Mb.nullable(),decoder:Ob.nullable(),motion:Cb.nullable(),detection:xb.nullable(),audio:Tb.nullable(),recording:Rb.nullable(),switchedOff:z.z.array(se).readonly(),degraded:z.z.array(Lb).readonly(),fetchedAt:z.z.number()}),qb=z.z.object({key:z.z.string(),backend:z.z.string(),device:z.z.string(),format:z.z.enum(Wt),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(),mb).optional()}),Ub=z.z.object({nodeId:z.z.string(),reachable:z.z.boolean(),devices:z.z.array(qb).readonly()}),Vb={name:"pipeline-orchestrator",scope:"system",mode:"singleton",nodeIdMode:"data",exposesDeviceSettings:!0,methods:{pauseForStorageMigration:(0,m.M)(lt,z.z.object({paused:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),resumeForStorageMigration:(0,m.M)(lt,z.z.object({resumed:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),assignPipeline:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setPipelineDevicePin:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),z.z.object({deviceKey:z.z.string().nullable()})),rebalance:(0,m.M)(z.z.void(),z.z.object({migrated:z.z.number()}),{kind:"mutation",auth:"admin"}),getPipelineAssignments:(0,m.M)(z.z.void(),z.z.array(fb).readonly()),getPipelineAssignment:(0,m.M)(z.z.object({deviceId:z.z.number()}),fb.nullable()),getAgentLoad:(0,m.M)(z.z.void(),z.z.array(yb).readonly()),getGlobalMetrics:(0,m.M)(z.z.void(),vb),getCameraMetrics:(0,m.M)(z.z.object({deviceId:z.z.number()}),bp.nullable()),getCapabilityBindings:(0,m.M)(z.z.object({nodeId:z.z.string()}),hb),setCapabilityBinding:(0,m.M)(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.M)(z.z.void(),Sb),assignAudio:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getAudioAssignment:(0,m.M)(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.M)(z.z.void(),z.z.array(z.z.object({nodeId:z.z.string(),deviceCount:z.z.number()}))),getAudioAssignments:(0,m.M)(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.M)(z.z.object({agentNodeId:z.z.string()}),pb.nullable()),listAgentSettings:(0,m.M)(z.z.void(),z.z.array(z.z.object({nodeId:z.z.string(),settings:pb})).readonly()),removeAgentSettings:(0,m.M)(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.M)(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.M)(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.M)(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.M)(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.M)(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(),mb).optional()}))}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getNodeInferenceDevices:(0,m.M)(z.z.object({nodeId:z.z.string()}),Ub),resetNodePipelineDefaults:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number()}),zb.nullable()),setCameraStepToggle:(0,m.M)(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.M)(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(),gb))).nullable()),setCameraStepOverride:(0,m.M)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string(),deviceKey:z.z.string(),addonId:z.z.string(),patch:gb.nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setCameraPipelineForAgent:(0,m.M)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string(),pipeline:bb.nullable()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),resolvePipeline:(0,m.M)(z.z.object({deviceId:z.z.number(),agentNodeId:z.z.string().optional()}),lb),getCameraSwitches:(0,m.M)(z.z.object({deviceId:z.z.number()}),me),setCameraSwitch:(0,m.M)(z.z.object({deviceId:z.z.number(),switchId:se,enabled:z.z.boolean()}),me,{kind:"mutation",auth:"admin"}),getCameraStatus:(0,m.M)(z.z.object({deviceId:z.z.number()}),_b),getCameraStatuses:(0,m.M)(z.z.object({deviceIds:z.z.array(z.z.number()).optional()}),z.z.array(_b).readonly()),listTemplates:(0,m.M)(z.z.void(),z.z.array(ub).readonly()),saveTemplate:(0,m.M)(z.z.object({name:z.z.string(),description:z.z.string().optional(),config:lb}),ub,{kind:"mutation",auth:"admin"}),updateTemplate:(0,m.M)(z.z.object({id:z.z.string(),name:z.z.string().optional(),description:z.z.string().optional(),config:lb.optional()}),ub,{kind:"mutation",auth:"admin"}),deleteTemplate:(0,m.M)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"})}},Hb={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 $b(e){return Hb[e]??"generic"}var Kb={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 Wb(e,t){const n=Ed[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:$b(n.iconId)})}var Gb=Object.freeze(Object.fromEntries(Object.entries(Kb).map(([e,t])=>[e,Wb(e,t)]))),Zb=Object.keys(Kb);function Yb(e,t){const n=Ed[e];return void 0===n?null:{kind:n.kind,labelKey:n.labelKey,label:n.label,color:n.color,iconId:n.iconId,icon:$b(n.iconId),category:n.category,parentKind:n.parentKind,level:n.level,source:{capName:t.capName,deviceId:t.deviceId}}}var Jb=z.z.enum(["workspace","baked","data-root"]),Xb=z.z.enum(["idle","checking","staging","pending-restart","awaiting-confirmation"]),Qb=z.z.enum(["in-sync","behind-patch","behind-series","ahead","unknown"]),eg=z.z.object({state:Qb,seedVersion:z.z.string().nullable(),contractVersion:z.z.string().nullable(),contractSource:z.z.enum(["registry","running"]).nullable(),message:z.z.string()}),tg=z.z.object({fromVersion:z.z.string(),toVersion:z.z.string().nullable(),atMs:z.z.number(),reason:z.z.string()}),ng=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:Jb,updateState:Xb,pendingVersion:z.z.string().nullable(),rolledBack:tg.nullable(),stateFileCorrupt:z.z.boolean(),lastCheckedAtMs:z.z.number().nullable(),imageContract:eg.optional()}),ag=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()}),rg=z.z.object({accepted:z.z.boolean(),targetVersion:z.z.string().nullable(),restarting:z.z.boolean(),message:z.z.string()}),ig={name:"server-management",scope:"system",mode:"singleton",methods:{getServerPackageStatus:(0,m.M)(z.z.void(),ng,{auth:"admin"}),checkServerUpdate:(0,m.M)(z.z.void(),ag,{kind:"mutation",auth:"admin"}),applyServerUpdate:(0,m.M)(z.z.object({version:z.z.string().optional()}),rg,{kind:"mutation",auth:"admin",timeoutMs:96e4}),rollbackServerUpdate:(0,m.M)(z.z.void(),rg,{kind:"mutation",auth:"admin"}),restartServer:(0,m.M)(z.z.void(),rg,{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},og=z.z.email(),sg=z.z.object({to:z.z.union([og,z.z.array(og).min(1)]),cc:z.z.array(og).optional(),bcc:z.z.array(og).optional(),from:z.z.string().optional(),replyTo:z.z.string().optional(),subject:z.z.string(),text:z.z.string(),html:z.z.string().optional()}),cg=z.z.object({messageId:z.z.string(),accepted:z.z.array(og).default([]),rejected:z.z.array(og).default([])}),dg=z.z.object({ready:z.z.boolean(),host:z.z.string(),error:z.z.string().optional(),lastVerifiedAt:z.z.number().optional()}),lg={name:"smtp-provider",scope:"system",mode:"collection",internal:!0,providerKind:"email",methods:{sendEmail:(0,m.M)(sg,cg,{kind:"mutation",auth:"admin",access:"create"}),verify:(0,m.M)(z.z.void(),dg,{kind:"mutation",auth:"admin",access:"view"}),getStatus:(0,m.M)(z.z.void(),dg,{auth:"admin"})}},ug=z.z.object({base64:z.z.string(),contentType:z.z.string()}),mg=z.z.object({lastCapturedAt:z.z.number().nullable(),cacheAgeMs:z.z.number().nullable(),lastBytes:z.z.number().nullable(),lastStreamId:z.z.string().nullable()}),pg={name:"snapshot",scope:"device",deviceNative:!0,mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],exposesDeviceSettings:!0,methods:{getSnapshot:(0,m.M)(z.z.object({deviceId:z.z.number(),streamId:z.z.string().optional(),force:z.z.boolean().optional()}),ug.nullable()),invalidateCache:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),getSnapshotOverview:(0,m.P)(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()}))),getDebugState:(0,m.P)(z.z.object({deviceId:z.z.number()}),z.z.object({battery:z.z.object({sleeping:z.z.boolean(),lastUpdated:z.z.number(),lastContactAt:z.z.number().optional()}).nullable(),state:z.z.object({isBattery:z.z.boolean(),reason:z.z.enum(["disabled","sleeping","unreachable","waking"]).nullable()}),frame:z.z.object({capturedAt:z.z.number().nullable(),ageMs:z.z.number().nullable()}),waking:z.z.boolean()})),getSnapshotLinks:(0,m.P)(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(),stateReason:z.z.enum(["disabled","sleeping","unreachable","waking"]).nullable()})))},status:{schema:mg,kind:"poll"}},bg=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(uu).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()}),gg={name:"sso-bridge",scope:"system",mode:"singleton",internal:!0,methods:{signBridgeToken:(0,m.M)(z.z.object({claims:bg,ttlSec:z.z.union([z.z.number().int().positive(),z.z.literal("never")]).optional()}),z.z.object({token:z.z.string()})),verifyBridgeToken:(0,m.M)(z.z.object({token:z.z.string()}),bg.nullable())}},zg=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)})]),fg={name:"storage",scope:"system",mode:"singleton",methods:{resolve:(0,m.M)(z.z.object({location:Mt,relativePath:z.z.string()}),z.z.string()),write:(0,m.M)(z.z.object({location:Mt,relativePath:z.z.string(),data:z.z.instanceof(Uint8Array)}),z.z.void(),{kind:"mutation"}),read:(0,m.M)(z.z.object({location:Mt,relativePath:z.z.string()}),z.z.instanceof(Uint8Array)),exists:(0,m.M)(z.z.object({location:Mt,relativePath:z.z.string()}),z.z.boolean()),list:(0,m.M)(z.z.object({location:Mt,prefix:z.z.string().optional()}),z.z.array(z.z.string()).readonly()),delete:(0,m.M)(z.z.object({location:Mt,relativePath:z.z.string()}),z.z.void(),{kind:"mutation"}),getAvailableSpace:(0,m.M)(z.z.object({location:Mt}),z.z.number().nullable()),beginUpload:(0,m.M)(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.M)(z.z.object({uploadId:z.z.string(),offset:z.z.number(),data:z.z.instanceof(Uint8Array)}),z.z.void(),{kind:"mutation"}),finalizeUpload:(0,m.M)(z.z.object({uploadId:z.z.string()}),z.z.void(),{kind:"mutation"}),abortUpload:(0,m.M)(z.z.object({uploadId:z.z.string()}),z.z.void(),{kind:"mutation"}),beginDownload:(0,m.M)(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.M)(z.z.object({downloadId:z.z.string(),offset:z.z.number(),length:z.z.number()}),z.z.instanceof(Uint8Array)),endDownload:(0,m.M)(z.z.object({downloadId:z.z.string()}),z.z.void(),{kind:"mutation"}),listLocations:(0,m.M)(z.z.object({type:kt.optional()}),z.z.array(Pt).readonly()),getDefaultLocation:(0,m.M)(z.z.object({type:kt}),Pt.nullable()),listLocationDeclarations:(0,m.M)(z.z.void(),z.z.array(wt).readonly()),upsertLocation:(0,m.M)(Pt.omit({createdAt:!0,updatedAt:!0}),Pt,{kind:"mutation",auth:"admin"}),deleteLocation:(0,m.M)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),testLocation:(0,m.M)(z.z.object({id:z.z.string()}),z.z.object({ok:z.z.boolean(),error:z.z.string().optional()}),{auth:"admin"}),listProviders:(0,m.M)(z.z.void(),z.z.array(zg).readonly()),testConfig:(0,m.M)(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"})}},yg=z.z.object({bytes:z.z.number().int().nonnegative()}),vg=z.z.object({reclaimedBytes:z.z.number().int().nonnegative(),exhausted:z.z.boolean()}),hg={name:"storage-evictable",scope:"system",mode:"collection",internal:!0,methods:{getEvictableUsage:(0,m.M)(z.z.object({locationId:z.z.string()}),yg),evict:(0,m.M)(z.z.object({locationId:z.z.string(),targetBytes:z.z.number().int().positive()}),vg,{kind:"mutation"})}},Sg={name:"storage-migration",scope:"system",mode:"singleton",methods:{plan:(0,m.M)(zt,St,{auth:"admin"}),start:(0,m.M)(zt,z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),status:(0,m.M)(z.z.object({jobId:z.z.string().optional()}),ht.nullable(),{auth:"admin"}),cancel:(0,m.M)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"})}},Ig=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)})]),jg=z.z.object({ok:z.z.boolean(),error:z.z.string().optional()}),kg=z.z.object({location:Pt,relativePath:z.z.string(),sizeBytes:z.z.number().optional()}),Pg=z.z.object({uploadId:z.z.string()}),Mg=z.z.object({uploadId:z.z.string(),offset:z.z.number(),data:z.z.instanceof(Uint8Array)}),wg=z.z.object({uploadId:z.z.string()}),Og=z.z.object({uploadId:z.z.string()}),Cg=z.z.object({location:Pt,relativePath:z.z.string()}),Ag=z.z.object({downloadId:z.z.string(),sizeBytes:z.z.number()}),Ng=z.z.object({downloadId:z.z.string(),offset:z.z.number(),length:z.z.number()}),Eg=z.z.object({downloadId:z.z.string()}),xg={name:"storage-provider",scope:"system",mode:"collection",internal:!0,methods:{getProviderInfo:(0,m.M)(z.z.void(),Ig),testLocation:(0,m.M)(z.z.object({config:z.z.record(z.z.string(),z.z.unknown())}),jg,{auth:"admin"}),resolve:(0,m.M)(z.z.object({location:Pt,relativePath:z.z.string()}),z.z.string()),write:(0,m.M)(z.z.object({location:Pt,relativePath:z.z.string(),data:z.z.instanceof(Uint8Array)}),z.z.void(),{kind:"mutation"}),read:(0,m.M)(z.z.object({location:Pt,relativePath:z.z.string()}),z.z.instanceof(Uint8Array)),exists:(0,m.M)(z.z.object({location:Pt,relativePath:z.z.string()}),z.z.boolean()),list:(0,m.M)(z.z.object({location:Pt,prefix:z.z.string().optional()}),z.z.array(z.z.string()).readonly()),delete:(0,m.M)(z.z.object({location:Pt,relativePath:z.z.string()}),z.z.void(),{kind:"mutation"}),getAvailableSpace:(0,m.M)(z.z.object({location:Pt}),z.z.number().nullable()),beginUpload:(0,m.M)(kg,Pg,{kind:"mutation"}),writeChunk:(0,m.M)(Mg,z.z.void(),{kind:"mutation"}),finalizeUpload:(0,m.M)(wg,z.z.void(),{kind:"mutation"}),abortUpload:(0,m.M)(Og,z.z.void(),{kind:"mutation"}),beginDownload:(0,m.M)(Cg,Ag,{kind:"mutation"}),readChunk:(0,m.M)(Ng,z.z.instanceof(Uint8Array)),endDownload:(0,m.M)(Eg,z.z.void(),{kind:"mutation"})}},Tg=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()}),Dg=z.z.object({profileId:z.z.string(),label:z.z.string(),description:z.z.string().optional()}),Rg=z.z.object({instanceId:z.z.string(),cameraStableId:z.z.string(),nodeId:z.z.string(),profileId:z.z.string(),profileLabel:z.z.string(),name:z.z.string(),enabled:z.z.boolean()}),Fg=z.z.object({stableId:z.z.string(),nodeId:z.z.string(),profileId:z.z.string(),profileLabel:z.z.string(),name:z.z.string(),adoptable:z.z.boolean()}),Bg=z.z.discriminatedUnion("kind",[z.z.object({seq:z.z.number().int().positive(),kind:z.z.literal("data"),data:z.z.string()}),z.z.object({seq:z.z.number().int().positive(),kind:z.z.literal("exit"),exitCode:z.z.number().int(),signal:z.z.number().int().optional()})]),Lg=z.z.object({cursor:z.z.number().int().nonnegative(),reset:z.z.boolean(),snapshot:z.z.string().optional(),events:z.z.array(Bg).readonly()}),_g={name:"terminal-session",scope:"system",mode:"singleton",methods:{listProfiles:(0,m.M)(z.z.void(),z.z.array(Dg).readonly(),{auth:"admin"}),listInstances:(0,m.M)(z.z.void(),z.z.array(Rg).readonly(),{auth:"admin"}),createInstance:(0,m.M)(z.z.object({targetNodeId:z.z.string().min(1),profileId:z.z.string().min(1),name:z.z.string().trim().min(1).max(160).optional()}),Rg,{kind:"mutation",auth:"admin"}),deleteInstance:(0,m.M)(z.z.object({instanceId:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),setInstanceEnabled:(0,m.M)(z.z.object({instanceId:z.z.string().min(1),enabled:z.z.boolean()}),Rg,{kind:"mutation",auth:"admin"}),listLegacyCameras:(0,m.M)(z.z.void(),z.z.array(Fg).readonly(),{auth:"admin"}),adoptLegacyMonitor:(0,m.M)(z.z.object({stableId:z.z.string().min(1),name:z.z.string().trim().min(1).max(160).optional()}),Rg,{kind:"mutation",auth:"admin"}),listSessions:(0,m.M)(z.z.void(),z.z.array(Tg).readonly(),{auth:"admin"}),openSession:(0,m.M)(z.z.object({profileId:z.z.string(),cols:z.z.number().int().positive(),rows:z.z.number().int().positive()}),Tg,{kind:"mutation",auth:"admin"}),resize:(0,m.M)(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"}),pullOutput:(0,m.M)(z.z.object({sessionId:z.z.string(),afterSeq:z.z.number().int().nonnegative(),waitMs:z.z.number().int().min(0).max(2e3).default(0),waitForOutput:z.z.boolean().optional()}),Lg,{kind:"mutation",auth:"admin",timeoutMs:15e3}),writeInput:(0,m.M)(z.z.object({sessionId:z.z.string(),data:z.z.string().max(65536)}),z.z.void(),{kind:"mutation",auth:"admin"}),close:(0,m.M)(z.z.object({sessionId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"})}},qg=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()}),Ug={name:"turn-provider",scope:"system",mode:"collection",methods:{getTurnServers:(0,m.M)(z.z.void(),z.z.array(qg).readonly())}},Vg=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([])}),Hg={name:"user-passkeys",scope:"system",mode:"collection",internal:!0,methods:{beginRegistration:(0,m.M)(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.M)(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.M)(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.M)(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.M)(z.z.object({}),z.z.object({optionsJSON:z.z.record(z.z.string(),z.z.unknown())}),{kind:"mutation",access:"view"}),finishDiscoverableAuthentication:(0,m.M)(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.M)(z.z.object({userId:z.z.string()}),z.z.array(Vg),{auth:"admin"}),removePasskey:(0,m.M)(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.M)(z.z.object({userId:z.z.string()}),z.z.object({enabled:z.z.boolean()}),{auth:"admin"}),setSecondFactorPreference:(0,m.M)(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"})}},$g=z.z.enum(["cosine","dot","euclidean"]),Kg=z.z.record(z.z.string(),z.z.union([z.z.string(),z.z.number(),z.z.boolean()])),Wg=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()}),Gg=z.z.object({id:z.z.string(),vector:z.z.string(),metadata:Kg}),Zg=z.z.object({id:z.z.string(),score:z.z.number(),metadata:Kg}),Yg=z.z.object({index:z.z.string(),dim:z.z.number().int().positive(),metric:$g.default("cosine")}),Jg=z.z.object({index:z.z.string(),items:z.z.array(Gg)}),Xg=z.z.object({upserted:z.z.number(),rejected:z.z.number()}),Qg=z.z.object({index:z.z.string(),vector:z.z.string(),topK:z.z.number().int().positive(),minScore:z.z.number().optional(),filter:Wg.optional()}),ez=z.z.object({matches:z.z.array(Zg),scanned:z.z.number(),truncated:z.z.boolean()}),tz=z.z.object({index:z.z.string(),ids:z.z.array(z.z.string())}),nz=z.z.object({index:z.z.string(),filter:Wg}),az=z.z.object({deleted:z.z.number()}),rz=z.z.object({index:z.z.string(),ids:z.z.array(z.z.string())}),iz=z.z.object({items:z.z.array(z.z.object({id:z.z.string(),metadata:Kg}))}),oz=z.z.object({index:z.z.string()}),sz=z.z.object({backend:z.z.string(),count:z.z.number(),dim:z.z.number(),metric:$g,bytes:z.z.number().optional(),exact:z.z.boolean()}),cz={name:"vector-store",scope:"system",mode:"singleton",internal:!0,methods:{declareIndex:(0,m.M)(Yg,z.z.void(),{kind:"mutation"}),upsert:(0,m.M)(Jg,Xg,{kind:"mutation"}),query:(0,m.M)(Qg,ez),getByIds:(0,m.M)(rz,iz),deleteByIds:(0,m.M)(tz,az,{kind:"mutation"}),deleteByFilter:(0,m.M)(nz,az,{kind:"mutation"}),stats:(0,m.M)(oz,sz)}},dz=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()}),lz=z.z.object({playbackUrl:z.z.string(),playbackEndpoints:z.z.array(z.z.string()).optional(),token:z.z.string().optional()}),uz={name:"videoclips",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],methods:{listClips:(0,m.M)(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(dz).readonly(),{kind:"query",auth:"admin"}),getClipPlayback:(0,m.M)(z.z.object({deviceId:z.z.number(),clipId:z.z.string()}),lz,{kind:"query",auth:"admin"})}},mz=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(),pz=z.z.discriminatedUnion("kind",[z.z.object({kind:z.z.literal("adaptive")}),z.z.object({kind:z.z.literal("profile"),profile:m.q}),z.z.object({kind:z.z.literal("cam-stream"),camStreamId:z.z.string().min(1)})]),bz=z.z.object({id:z.z.string(),label:z.z.string(),target:pz,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()}),gz={name:"webrtc-session",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,preferredProvider:"stream-broker",deviceTypes:[m.w.Camera],methods:{listStreams:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(bz)),createSession:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),target:pz,hints:mz.optional(),relayOnly:z.z.boolean().optional(),consumerAttribution:mi.optional()}),z.z.object({sessionId:z.z.string(),sdpOffer:z.z.string()}),{kind:"mutation"}),handleOffer:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),target:pz.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:mi.optional(),hints:mz.optional()}),z.z.object({sessionId:z.z.string(),sdpAnswer:z.z.string()}),{kind:"mutation"}),handleAnswer:(0,m.M)(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.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string()}),z.z.void(),{kind:"mutation"}),hasAdaptiveBitrate:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),profile:m.q}),z.z.boolean()),getSessionState:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),sessionId:z.z.string()}),z.z.object({pendingRenegotiation:z.z.object({target:pz,epoch:z.z.number()}).nullable()}))},mount:{kind:"server-provided"}},zz=z.z.object({childDeviceIds:z.z.array(z.z.number()).readonly(),hiddenChildIds:z.z.array(z.z.number()).readonly()}),fz={name:"accessories",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera,m.w.Hub,m.w.Switch,m.w.Light,m.w.Sensor,m.w.Thermostat,m.w.Cover,m.w.Lock,m.w.Fan,m.w.MediaPlayer,m.w.AlarmPanel,m.w.Generic],methods:{setChildHidden:(0,m.M)(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:zz,kind:"command-driven"}},yz=z.z.enum(["install","update","uninstall","restart"]),vz=z.z.enum(["queued","fetching","staged","validating","applying","restarting","applied","done","failed","skipped"]),hz=z.z.enum(["framework","addon"]),Sz=z.z.object({tsMs:z.z.number(),nodeId:z.z.string(),packageName:z.z.string(),phase:vz,message:z.z.string()}),Iz=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:hz,phase:vz,stagedPath:z.z.string().nullable(),attempts:z.z.number(),steps:z.z.array(Sz),error:z.z.string().nullable(),startedAtMs:z.z.number().nullable(),finishedAtMs:z.z.number().nullable()}),jz=z.z.enum(["running","completed","failed","partially-failed","cancelled"]),kz=z.z.enum(["single","bulk","cluster"]),Pz=z.z.object({jobId:z.z.string(),kind:yz,createdAtMs:z.z.number(),createdBy:z.z.string(),scope:kz,tasks:z.z.array(Iz),state:jz,schemaVersion:z.z.literal(1)}),Mz=z.z.enum(["debug","info","warn","error"]),wz=z.z.enum(["off","latest","beta"]),Oz=z.z.enum(["off","latest","beta","inherit"]),Cz=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()}),Az=z.z.object({pid:z.z.number().optional(),mode:z.z.string(),state:z.z.string()}),Nz=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()}),Ez=z.z.object({manifest:Cz,declaration:z.z.unknown().optional(),source:z.z.string(),installSource:z.z.string().optional(),process:Az.optional(),hasBackup:z.z.boolean().optional(),health:Nz.nullable().optional()}),xz=z.z.object({name:z.z.string(),version:z.z.string(),dir:z.z.string(),installSource:z.z.string().optional()}),Tz=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()}),Dz=z.z.object({version:z.z.string(),publishedAt:z.z.string(),deprecated:z.z.string().optional(),distTags:z.z.array(z.z.string()).readonly()}),Rz=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()}),Fz=z.z.object({channel:wz,intervalSeconds:z.z.number()}),Bz=Oz,Lz=z.z.unknown(),_z=z.z.unknown(),qz=z.z.unknown(),Uz=z.z.enum(["queued","updating","done","done-pending-restart","failed"]),Vz=z.z.object({name:z.z.string(),isSystem:z.z.boolean(),fromVersion:z.z.string(),toVersion:z.z.string(),status:Uz,error:z.z.string().optional(),startedAtMs:z.z.number().optional(),completedAtMs:z.z.number().optional()}),Hz=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:Hz,cancelled:z.z.boolean(),items:z.z.array(Vz).readonly()});var $z=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()}),Kz=z.z.object({timestamp:z.z.string(),level:z.z.string(),message:z.z.string(),scope:z.z.string().optional()}),Wz=z.z.unknown(),Gz=z.z.object({addonId:z.z.string().min(1),action:z.z.string().min(1),input:z.z.unknown()}),Zz={name:"addons",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{list:(0,m.M)(z.z.void(),z.z.array(Ez).readonly()),getLogs:(0,m.M)(z.z.object({addonId:z.z.string(),limit:z.z.number().min(1).max(500).default(100),level:Mz.optional()}),z.z.array(Wz)),listPackages:(0,m.M)(z.z.void(),z.z.array(xz).readonly()),installPackage:(0,m.M)(z.z.object({packageName:z.z.string(),version:z.z.string().optional()}),_z,{kind:"mutation",auth:"admin"}),installFromWorkspace:(0,m.M)(z.z.object({packageName:z.z.string()}),_z,{kind:"mutation",auth:"admin"}),isWorkspaceAvailable:(0,m.M)(z.z.void(),z.z.boolean()),listWorkspacePackages:(0,m.M)(z.z.void(),z.z.array(z.z.unknown()).readonly()),uninstallPackage:(0,m.M)(z.z.object({packageName:z.z.string()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),reloadPackages:(0,m.M)(z.z.void(),qz,{kind:"mutation",auth:"admin"}),searchAvailable:(0,m.M)(z.z.object({query:z.z.string().optional()}),z.z.array(Rz)),listUpdates:(0,m.M)(z.z.object({nodeId:z.z.string().optional()}),z.z.array(Tz).readonly(),{auth:"admin"}),updatePackage:(0,m.M)(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.M)(z.z.object({name:z.z.string().min(1)}),z.z.object({rolledBackTo:z.z.string().nullable()}),{kind:"mutation",auth:"admin"}),forceRefresh:(0,m.M)(z.z.object({nodeId:z.z.string().optional()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),restartServer:(0,m.M)(z.z.object({confirm:z.z.literal(!0)}),z.z.unknown(),{kind:"mutation",auth:"admin"}),getLastRestart:(0,m.M)(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.M)(z.z.void(),z.z.array($z).readonly(),{auth:"admin"}),listCapabilityProviders:(0,m.M)(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.M)(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.M)(z.z.object({name:z.z.string()}),z.z.array(Dz).readonly()),restartAddon:(0,m.M)(z.z.object({addonId:z.z.string()}),Lz,{kind:"mutation",auth:"admin"}),retryLoad:(0,m.M)(z.z.object({packageName:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getAutoUpdateSettings:(0,m.M)(z.z.void(),Fz,{auth:"admin"}),setAutoUpdateSettings:(0,m.M)(z.z.object({channel:wz,intervalSeconds:z.z.number().min(300).max(86400).optional()}),z.z.unknown(),{kind:"mutation",auth:"admin"}),getAddonAutoUpdate:(0,m.M)(z.z.object({addonId:z.z.string()}),Bz,{auth:"admin"}),setAddonAutoUpdate:(0,m.M)(z.z.object({addonId:z.z.string(),channel:Oz}),z.z.unknown(),{kind:"mutation",auth:"admin"}),applyAutoUpdateToAll:(0,m.M)(z.z.object({channel:wz}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),custom:(0,m.M)(Gz,z.z.unknown(),{kind:"mutation"}),startJob:(0,m.M)(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.M)(z.z.object({jobId:z.z.string()}),Pz.nullable(),{auth:"admin"}),listJobs:(0,m.M)(z.z.object({activeOnly:z.z.boolean().optional()}),z.z.array(Pz),{auth:"admin"}),cancelJob:(0,m.M)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),onAddonLogs:(0,m.M)(z.z.object({addonId:z.z.string(),level:Mz.optional()}),Kz,{kind:"subscription"})},mount:{kind:"server-provided"}},Yz=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()}),Jz={name:"air-quality-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:Yz,kind:"push"},runtimeState:Yz,durability:"restored",volatileStateFields:["lastFetchedAt"]},Xz=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()}),Qz={name:"ambient-light-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:Xz,kind:"push"},runtimeState:Xz,durability:"restored",volatileStateFields:["lastFetchedAt"]},ef=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)}),tf=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(ef).readonly()}),nf=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()}),af=z.z.object({points:z.z.array(nf).readonly(),effectiveSampleEveryMs:z.z.number().int().positive(),windowMsActual:z.z.number().int().nonnegative()}),rf={name:"audio-metrics",scope:"device",mode:"singleton",deviceTypes:[m.w.Camera],methods:{getCurrentSnapshot:(0,m.M)(z.z.object({deviceId:z.z.number()}),tf.nullable()),getHistory:(0,m.M)(z.z.object({deviceId:z.z.number(),windowSec:z.z.number().int().positive().optional(),sampleEveryMs:z.z.number().int().positive().optional()}),af)},runtimeState:tf,durability:"session"},of=z.z.object({enabled:z.z.boolean(),isRunning:z.z.boolean(),lastTriggeredAt:z.z.number(),lastError:z.z.string().nullable(),lastChangedAt:z.z.number()}),sf={name:"automation-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Automation],methods:{enable:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),disable:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),trigger:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),skipCondition:z.z.boolean().optional()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:of,kind:"push"},runtimeState:of,durability:"session"},cf=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(),lastContactAt:z.z.number().optional(),binary:z.z.boolean().optional()}),df={name:"battery",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera,m.w.Sensor,m.w.Button,m.w.Switch],methods:{wakeForStream:(0,m.M)(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:cf})}},status:{schema:cf,kind:"push",empty:{percentage:0,charging:"none",sleeping:!1,lastUpdated:0}},runtimeState:cf,durability:"restored",volatileStateFields:["lastUpdated"]},lf=z.z.object({on:z.z.boolean(),lastChangedAt:z.z.number()}),uf={name:"binary",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:lf,kind:"push"},runtimeState:lf,durability:"restored",volatileStateFields:["lastChangedAt"]},mf=z.z.object({percentage:z.z.number().min(0).max(100),lastChangedAt:z.z.number()}),pf={name:"brightness",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Light],methods:{setBrightness:(0,m.M)(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:mf,kind:"command-driven"},runtimeState:mf,durability:"session"},bf={name:"button",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Button],methods:{press:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})}},gf=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()}),zf=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()}),ff={name:"camera-credentials",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],methods:{getCredentials:(0,m.M)(z.z.object({deviceId:z.z.number()}),gf.nullable(),{kind:"query",auth:"admin"})},status:{schema:zf,kind:"command-driven"}},yf=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),vf={name:"carbon-monoxide",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:yf,kind:"push"},runtimeState:yf,durability:"restored",volatileStateFields:["lastChangedAt"]},hf=z.z.enum(["off","heat","cool","auto","heat_cool","fan_only","dry"]),Sf=z.z.object({mode:hf,availableModes:z.z.array(hf),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()}),If={name:"climate-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Thermostat,m.w.Climate],methods:{setMode:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:hf}),z.z.void(),{kind:"mutation",auth:"admin"}),setFanMode:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),target:z.z.number()}),z.z.void(),{kind:"mutation",auth:"admin"}),setTargetRange:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setSwingHorizontal:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Sf,kind:"push"},runtimeState:Sf,durability:"session"},jf=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)}),kf=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)}),Pf=z.z.discriminatedUnion("mode",[z.z.object({mode:z.z.literal("rgb"),rgb:jf}),z.z.object({mode:z.z.literal("hsv"),hsv:kf}),z.z.object({mode:z.z.literal("mired"),mireds:z.z.number().int().min(50).max(1e3)})]),Mf=z.z.object({mode:z.z.enum(["rgb","hsv","mired"]),rgb:jf.optional(),hsv:kf.optional(),mireds:z.z.number().int().optional(),lastChangedAt:z.z.number()}),wf={name:"color",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Light],methods:{setColor:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),color:Pf}),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:jf.optional(),hsv:kf.optional(),mireds:z.z.number().int().optional(),lastChangedAt:z.z.number()})}},status:{schema:Mf,kind:"command-driven"},runtimeState:Mf,durability:"session"},Of=2e4,Cf=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()]),Af=z.z.object({settings:z.z.record(z.z.string(),z.z.unknown())}),Nf=z.z.object({label:z.z.string()}),Ef={name:"connection-test",scope:"system",mode:"collection",methods:{testSettings:(0,m.M)(Af,Cf,{kind:"mutation",auth:"admin"}),describeTest:(0,m.M)(z.z.void(),Nf,{auth:"admin"})}},xf=z.z.object({connected:z.z.boolean(),lastChangedAt:z.z.number()}),Tf={name:"connectivity",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:xf,kind:"push"},runtimeState:xf,durability:"restored",volatileStateFields:["lastChangedAt"]},Df=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()}),Rf=z.z.object({items:z.z.array(Df),lastChangedAt:z.z.number()}),Ff={name:"consumables",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:Object.values(m.w),deviceConfig:{ui:{kind:"widget",widgetId:"host/consumables-panel",tab:"consumables",topTab:!0,label:"Consumables",order:5}},methods:{reset:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),key:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Rf,kind:"push",empty:{items:[],lastChangedAt:0},itemArray:{path:"items",keyField:"key",labelField:"label",itemSchema:Df,emptyItem:{key:"",label:"",level:null,status:null,lastResetAt:null,resettable:!1}}},runtimeState:Rf.extend({lastFetchedAt:z.z.number()}),durability:"session"},Bf=z.z.object({entryOpen:z.z.boolean(),lastChangedAt:z.z.number()}),Lf={name:"contact",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:Bf,kind:"push"},runtimeState:Bf,durability:"restored",volatileStateFields:["lastChangedAt"]},_f=z.z.enum(["numeric","select","text","datetime"]),qf=z.z.object({kind:_f,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()}),Uf=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)})]),Vf={name:"control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Control],methods:{setValue:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),control:Uf}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:qf,kind:"push"},runtimeState:qf,durability:"session"},Hf=z.z.enum(["open","opening","closing","closed","stopped"]),$f=z.z.object({state:Hf,position:z.z.number().min(0).max(100).nullable(),tiltPosition:z.z.number().min(0).max(100).nullable(),lastChangedAt:z.z.number()}),Kf={name:"cover",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Cover],methods:{open:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),close:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setPosition:(0,m.M)(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.M)(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:$f,kind:"push"},runtimeState:$f,durability:"restored",volatileStateFields:["lastChangedAt"]},Wf=z.z.enum(["auto","day","night","schedule"]),Gf=z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()}),Zf=z.z.object({mode:Wf,sensitivity:z.z.number().optional(),switchDelaySec:z.z.number().optional(),lastFetchedAt:z.z.number()}),Yf=z.z.object({modes:z.z.array(Wf),supportsSensitivity:z.z.boolean(),sensitivity:Gf.optional(),supportsSwitchDelay:z.z.boolean(),switchDelaySec:Gf.optional()}),Jf=z.z.object({mode:Wf.optional(),sensitivity:z.z.number().optional(),switchDelaySec:z.z.number().optional()}),Xf={name:"day-night",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"derived-form",builderId:"day-night",tab:"image"}},methods:{getOptions:(0,m.M)(z.z.object({deviceId:z.z.number()}),Yf),setSettings:(0,m.M)(z.z.object({deviceId:z.z.number(),settings:Jf}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Zf,kind:"poll"},runtimeState:Zf,durability:"restored",volatileStateFields:["lastFetchedAt"]},Qf=z.z.object({online:z.z.boolean(),lastChangedAt:z.z.number()}),ey={name:"device-status",scope:"device",deviceNative:!0,mode:"singleton",methods:{},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:Qf})}},status:{schema:Qf,kind:"push"},runtimeState:Qf,durability:"restored",volatileStateFields:["lastChangedAt"]},ty=z.z.object({lastPressedAt:z.z.number().nullable(),pressCountSinceStart:z.z.number()}),ny=z.z.object({deviceId:z.z.number(),timestamp:z.z.number()}),ay={name:"doorbell",scope:"device",deviceNative:!0,mode:"singleton",kind:"wrapper",defaultActive:!1,deviceTypes:[m.w.Button,m.w.Camera],exposesDeviceSettings:!0,methods:{},events:{onPressed:{data:ny}},status:{schema:ty,kind:"push"},runtimeState:ty,durability:"restored"},ry=z.z.enum(["date","time","datetime"]),iy=z.z.object({value:z.z.string(),format:ry.optional(),lastFetchedAt:z.z.number()}),oy={name:"enum-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:iy,kind:"push"},runtimeState:iy,durability:"restored",volatileStateFields:["lastFetchedAt"]},sy=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()}),cy=z.z.object({eventTypes:z.z.array(z.z.string()),lastEvent:sy.nullable(),eventCountSinceStart:z.z.number()}),dy={name:"event-emitter",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.EventEmitter],methods:{},events:{onEvent:{data:sy}},status:{schema:cy,kind:"push"},runtimeState:cy,durability:"session"},ly=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()}),uy={name:"events",scope:"device",mode:"singleton",deviceTypes:[m.w.Camera],methods:{getEvents:(0,m.M)(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(ly)),getEventThumbnail:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number(),eventId:z.z.string()}),z.z.string().nullable())}},my=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()}),py=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()}),by=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:ir.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()}),gy=z.z.enum(["unassigned","recognized","identified","all"]),zy=z.z.object({key:z.z.string(),kind:z.z.string(),base64:z.z.string(),sizeBytes:z.z.number(),timestamp:z.z.number()}),fy={name:"face-gallery",scope:"system",mode:"singleton",methods:{listIdentities:(0,m.M)(z.z.void(),z.z.array(my).readonly()),createIdentity:(0,m.M)(z.z.object({name:z.z.string().min(1)}),my,{kind:"mutation",auth:"admin"}),renameIdentity:(0,m.M)(z.z.object({id:z.z.string(),name:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteIdentity:(0,m.M)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listIdentitySamples:(0,m.M)(z.z.object({identityId:z.z.string()}),z.z.array(py).readonly()),removeSample:(0,m.M)(z.z.object({identityId:z.z.string(),sampleId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listRecentFaces:(0,m.M)(z.z.object({deviceId:z.z.number().int().optional(),limit:z.z.number().int().positive().optional(),filter:gy.optional(),includeCrops:z.z.boolean().optional()}).optional(),z.z.array(by).readonly()),getFaceByTrack:(0,m.M)(z.z.object({deviceId:z.z.number().int(),trackId:z.z.string()}),by.nullable()),getFaceMedia:(0,m.M)(z.z.object({faceId:z.z.string()}),z.z.array(zy).readonly()),assignFace:(0,m.M)(z.z.object({faceId:z.z.string(),identityId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),unassignFace:(0,m.M)(z.z.object({faceId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteFace:(0,m.M)(z.z.object({faceId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),assignFaces:(0,m.M)(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.M)(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.M)(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())}},yy=z.z.enum(["forward","reverse"]),vy=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:yy.nullable(),oscillating:z.z.boolean().nullable(),lastChangedAt:z.z.number()}),hy={name:"fan-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Fan],methods:{setPercentage:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),direction:yy}),z.z.void(),{kind:"mutation",auth:"admin"}),setOscillating:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),oscillating:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:vy,kind:"push"},runtimeState:vy,durability:"session"},Sy=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()}),Iy={name:"feature-probe",scope:"device",deviceNative:!0,mode:"singleton",methods:{},events:{onProbeChanged:{data:z.z.object({deviceId:z.z.number(),status:Sy})}},status:{schema:Sy,kind:"push"},runtimeState:Sy,durability:"session"},jy=z.z.object({flooded:z.z.boolean(),lastChangedAt:z.z.number()}),ky={name:"flood",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:jy,kind:"push"},runtimeState:jy,durability:"restored",volatileStateFields:["lastChangedAt"]},Py=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),My={name:"gas",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:Py,kind:"push"},runtimeState:Py,durability:"restored",volatileStateFields:["lastChangedAt"]},wy=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()}),Oy={name:"humidifier",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Humidifier],methods:{setOn:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setTargetHumidity:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),mode:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:wy,kind:"push"},runtimeState:wy,durability:"session"},Cy=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()}),Ay={name:"humidity-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor,m.w.Thermostat],methods:{},status:{schema:Cy,kind:"push"},runtimeState:Cy,durability:"restored",volatileStateFields:["lastFetchedAt"]},Ny=z.z.object({url:z.z.string().nullable(),lastUpdated:z.z.number().nullable()}),Ey={name:"image",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Image],methods:{},status:{schema:Ny,kind:"push"},runtimeState:Ny,durability:"session"},xy=z.z.enum(["0","90","180","270"]),Ty=z.z.enum(["auto","manual"]),Dy=z.z.enum(["auto","manual"]),Ry=z.z.enum(["off","blc","wdr","hlc"]),Fy=z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()}),By=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:xy.optional(),whiteBalance:Ty.optional(),warmth:z.z.number().optional(),exposureMode:Dy.optional(),backlightMode:Ry.optional(),lastFetchedAt:z.z.number()}),Ly=z.z.object({supportsBrightness:z.z.boolean(),brightness:Fy.optional(),supportsContrast:z.z.boolean(),contrast:Fy.optional(),supportsSaturation:z.z.boolean(),saturation:Fy.optional(),supportsSharpness:z.z.boolean(),sharpness:Fy.optional(),supportsMirror:z.z.boolean(),supportsFlip:z.z.boolean(),rotateOptions:z.z.array(xy),whiteBalanceModes:z.z.array(Ty),supportsWarmth:z.z.boolean(),warmth:Fy.optional(),exposureModes:z.z.array(Dy),backlightModes:z.z.array(Ry)}),_y=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:xy.optional(),whiteBalance:Ty.optional(),warmth:z.z.number().optional(),exposureMode:Dy.optional(),backlightMode:Ry.optional()}),qy={name:"image-settings",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"derived-form",builderId:"image-settings",tab:"image"}},methods:{getOptions:(0,m.M)(z.z.object({deviceId:z.z.number()}),Ly),setSettings:(0,m.M)(z.z.object({deviceId:z.z.number(),settings:_y}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:By,kind:"poll"},runtimeState:By,durability:"restored",volatileStateFields:["lastFetchedAt"]},Uy=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()}),Vy=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()}),Hy=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()}),$y=z.z.enum(["validated","rejected","inconclusive","unsupported"]),Ky=z.z.object({success:z.z.boolean(),error:z.z.string().optional(),status:$y.optional(),testedBy:z.z.string().nullable().optional(),latencyMs:z.z.number().nonnegative().optional(),detail:z.z.string().optional()}),Wy=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()}),Gy=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()}),Zy=z.z.object({success:z.z.boolean(),deletedId:z.z.string()}),Yy={name:"integrations",scope:"system",mode:"singleton",methods:{list:(0,m.M)(z.z.void(),z.z.array(Uy)),get:(0,m.M)(z.z.object({id:z.z.string()}),Uy),getByAddonId:(0,m.M)(z.z.object({addonId:z.z.string()}),Vy.nullable()),create:(0,m.M)(Wy,Vy,{kind:"mutation",auth:"admin"}),update:(0,m.M)(Gy,Vy,{kind:"mutation",auth:"admin"}),delete:(0,m.M)(z.z.object({id:z.z.string()}),Zy,{kind:"mutation",auth:"admin"}),getSettings:(0,m.M)(z.z.object({id:z.z.string()}),z.z.record(z.z.string(),z.z.unknown()),{auth:"admin"}),setSettings:(0,m.M)(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.M)(z.z.void(),z.z.array(Hy),{auth:"admin"}),testConnection:(0,m.M)(z.z.object({addonId:z.z.string(),settings:z.z.record(z.z.string(),z.z.unknown())}),Ky,{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},Jy=z.z.object({codecs:z.z.array(z.z.string()),sampleRate:z.z.number(),duplex:z.z.enum(["half","full"]),maxBacklogMs:z.z.number()}),Xy=z.z.object({talking:z.z.boolean(),lastSessionAt:z.z.number().nullable(),ability:Jy.nullable()}),Qy=z.z.enum(["opus","s16le","g711ulaw","g711alaw"]),ev={name:"intercom",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],methods:{startSession:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number(),sessionId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),startTalkSession:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.object({sessionId:z.z.string()}),{kind:"mutation",auth:"admin"}),pushTalkAudio:(0,m.M)(z.z.object({deviceId:z.z.number(),audioBase64:z.z.string(),codec:Qy.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.M)(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:Xy})}},status:{schema:Xy,kind:"command-driven"},runtimeState:Xy,durability:"session"},tv=z.z.enum(["idle","mowing","paused","docked","error"]),nv=z.z.enum(["info","warning","error"]),av=z.z.object({activity:tv,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:nv,lastChangedAt:z.z.number()}),rv={name:"lawn-mower-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.LawnMower],methods:{startMowing:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),pause:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),dock:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:av,kind:"push"},runtimeState:av,durability:"session"},iv=z.z.enum(["lan","wifi","docker","vpn","loopback","other"]),ov=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:iv,preferred:z.z.boolean(),plausible:z.z.boolean(),plausibleReason:z.z.string()}),sv=z.z.object({interfaces:z.z.array(ov).readonly(),probedAt:z.z.number()}),cv=ov.nullable(),dv=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()}),lv=z.z.object({endpoints:z.z.array(dv).readonly()}),uv=z.z.object({baseUrl:z.z.string().nullable(),resolved:z.z.string().nullable()}),mv=z.z.object({addresses:z.z.array(z.z.string()).readonly()}),pv={name:"local-network",scope:"system",mode:"singleton",methods:{list:(0,m.M)(z.z.void(),sv),getPreferred:(0,m.M)(z.z.void(),cv),getConnectionEndpoints:(0,m.M)(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()}),lv),getNotificationEndpoint:(0,m.M)(z.z.void(),uv),setNotificationEndpoint:(0,m.M)(z.z.object({baseUrl:z.z.string().nullable()}),uv,{kind:"mutation"}),getAllowedAddresses:(0,m.M)(z.z.void(),mv),setAllowedAddresses:(0,m.M)(mv,z.z.object({success:z.z.literal(!0)}),{kind:"mutation"}),resetAllowlistToBestMatch:(0,m.M)(z.z.void(),mv,{kind:"mutation"})},mount:{kind:"hub-only"}},bv=z.z.enum(["locked","unlocked","locking","unlocking","jammed"]),gv=z.z.object({state:bv,lastChangedAt:z.z.number()}),zv={name:"lock-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Lock],methods:{lock:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:gv,kind:"push"},runtimeState:gv,durability:"restored",volatileStateFields:["lastChangedAt"]},fv=z.z.enum(["off","on","idle","playing","paused","buffering","standby"]),yv=z.z.enum(["off","all","one"]),vv=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()}),hv=z.z.object({state:fv,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:vv.nullable(),positionMs:z.z.number().int().nonnegative().nullable(),durationMs:z.z.number().int().nonnegative().nullable(),shuffle:z.z.boolean().nullable(),repeat:yv.nullable(),lastChangedAt:z.z.number()}),Sv={name:"media-player",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.MediaPlayer],methods:{play:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),pause:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),next:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),previous:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),seek:(0,m.M)(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.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),muted:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setShuffle:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),shuffle:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setRepeat:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),repeat:yv}),z.z.void(),{kind:"mutation",auth:"admin"}),selectSource:(0,m.M)(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.M)(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:hv,kind:"push"},runtimeState:hv,durability:"session"},Iv=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"])}),jv=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()}),kv=z.z.object({joined:z.z.boolean(),meshIp:z.z.string(),magicDnsHostname:z.z.string(),peerCount:z.z.number(),endpoints:z.z.array(Iv).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()}),Pv={name:"mesh-network",scope:"system",mode:"collection",providerKind:"mesh",methods:{getStatus:(0,m.M)(z.z.void(),kv),join:(0,m.M)(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.M)(z.z.object({hostname:z.z.string().optional()}),z.z.object({loginUrl:z.z.string()}),{kind:"mutation"}),leave:(0,m.M)(z.z.void(),z.z.object({left:z.z.literal(!0)}),{kind:"mutation"}),logout:(0,m.M)(z.z.void(),z.z.object({loggedOut:z.z.literal(!0)}),{kind:"mutation"}),listPeers:(0,m.M)(z.z.void(),z.z.object({peers:z.z.array(jv).readonly()})),testConnection:(0,m.M)(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"})}},Mv=z.z.object({detected:z.z.boolean(),lastDetectedAt:z.z.number().nullable(),autoClearAfterMs:z.z.number().nullable()}),wv=z.z.object({deviceId:z.z.number(),detected:z.z.boolean(),timestamp:z.z.number(),source:eb,regions:z.z.array(Ec).readonly().optional()}),Ov={name:"motion",scope:"device",mode:"singleton",deviceNative:!0,deviceTypes:[m.w.Camera,m.w.Sensor],methods:{isDetected:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.boolean())},events:{onMotionChanged:{data:wv}},status:{schema:Mv,kind:"push"},runtimeState:Mv,durability:"session"},Cv=z.z.object({enabled:z.z.boolean(),lastChangedAt:z.z.number()}),Av=Cv.extend({lastFetchedAt:z.z.number()}),Nv={name:"motion-trigger",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Light,m.w.Siren,m.w.Switch],methods:{setMotionTrigger:(0,m.M)(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:Cv,kind:"command-driven"},runtimeState:Av,durability:"session"},Ev=z.z.object({id:z.z.number(),enabled:z.z.boolean(),shape:Gd}),xv=z.z.object({enabled:z.z.boolean(),sensitivity:z.z.number(),regions:z.z.array(Ev),lastFetchedAt:z.z.number()}),Tv=z.z.object({maxRegions:z.z.number(),supportedShapes:z.z.array(Jd),grid:Qd,sensitivity:z.z.object({min:z.z.number(),max:z.z.number(),step:z.z.number()})}),Dv=z.z.object({enabled:z.z.boolean().optional(),sensitivity:z.z.number().optional(),regions:z.z.array(Ev).optional()}),Rv={name:"motion-zones",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/motion-zones-grid",tab:"motion",label:"Motion Zones"}},methods:{getOptions:(0,m.M)(z.z.object({deviceId:z.z.number()}),Tv),setZone:(0,m.M)(z.z.object({deviceId:z.z.number(),patch:Dv}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:xv,kind:"poll"},runtimeState:xv,durability:"restored",volatileStateFields:["lastFetchedAt"]},Fv=z.z.enum(["person","vehicle","animal","face","package","other"]),Bv=z.z.object({class:Fv,timestamp:z.z.number(),confidence:z.z.number().min(0).max(1).optional()}),Lv=z.z.object({lastByClass:z.z.partialRecord(Fv,Bv.nullable()),supportedClasses:z.z.array(Fv).readonly(),enabled:z.z.boolean()}),_v=Lv.extend({lastFetchedAt:z.z.number()}),qv={name:"native-object-detection",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],methods:{setEnabled:(0,m.M)(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:Bv})}},status:{schema:Lv,kind:"push"},runtimeState:_v,durability:"restored",volatileStateFields:["lastFetchedAt"]},Uv=z.z.object({nominalBitrateKbps:z.z.number(),observedBitrateKbps:z.z.number(),peakBitrateKbps:z.z.number(),packetLossPercent:z.z.number(),lastUpdated:z.z.number()}),Vv=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()}),Hv=z.z.object({deviceId:z.z.number(),streams:z.z.record(z.z.string(),Uv),client:Vv.optional()}),$v={name:"network-quality",scope:"system",mode:"singleton",methods:{getDeviceStats:(0,m.M)(z.z.object({deviceId:z.z.number()}),Hv.nullable()),getAllStats:(0,m.M)(z.z.void(),z.z.array(Hv).readonly()),reportClientStats:(0,m.M)(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"}},Kv=z.z.object({addonId:z.z.string(),capabilities:z.z.array(z.z.string()).readonly(),status:z.z.string()}),Wv=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(Kv).readonly(),groupId:z.z.string().optional()}),Gv=z.z.object({id:z.z.string(),status:z.z.string(),cpuPercent:z.z.number(),memoryRss:z.z.number()}),Zv=z.z.object({category:z.z.string(),total:z.z.number(),healthy:z.z.number(),addons:z.z.array(Gv).readonly()}),Yv=z.z.object({name:z.z.string(),version:z.z.string()}),Jv=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(Wv).readonly(),categories:z.z.array(Zv).readonly(),rootPackage:Yv.nullable()}),Xv=z.z.object({callerAddonId:z.z.string(),providerAddonId:z.z.string(),capName:z.z.string(),callsPerMin:z.z.number(),lastCallAtMs:z.z.number()}),Qv=z.z.object({nodeId:z.z.string(),name:z.z.string(),version:z.z.string(),status:z.z.string(),synced:z.z.boolean()}),eh=z.z.object({hubVersion:z.z.string(),nodes:z.z.array(Qv)}),th=z.z.object({nodeId:z.z.string(),addonId:z.z.string()}),nh=z.z.object({id:z.z.string(),status:z.z.string(),version:z.z.string().optional(),packageName:z.z.string().optional()}),ah=z.z.object({success:z.z.boolean()}),rh=z.z.object({success:z.z.boolean(),reason:z.z.string().optional()}),ih=z.z.object({restarted:z.z.array(z.z.string()).readonly(),failed:z.z.array(z.z.string()).readonly()}),oh=z.z.object({nodeId:z.z.string(),name:z.z.string()}),sh={name:"nodes",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{topology:(0,m.M)(z.z.void(),z.z.array(Jv).readonly(),{auth:"admin"}),deployAddon:(0,m.M)(th,ah,{kind:"mutation",auth:"admin"}),undeployAddon:(0,m.M)(th,ah,{kind:"mutation",auth:"admin"}),restartAddon:(0,m.M)(th,ah,{kind:"mutation",auth:"admin"}),restartProcess:(0,m.M)(z.z.object({nodeId:z.z.string(),processName:z.z.string()}),rh,{kind:"mutation",auth:"admin"}),restartNode:(0,m.M)(z.z.object({nodeId:z.z.string()}),ih,{kind:"mutation",auth:"admin"}),shutdownNode:(0,m.M)(z.z.object({nodeId:z.z.string()}),ah,{kind:"mutation",auth:"admin"}),renameNode:(0,m.M)(z.z.object({nodeId:z.z.string(),name:z.z.string().min(1).max(64)}),oh,{kind:"mutation",auth:"admin"}),clusterAddonStatus:(0,m.M)(z.z.void(),z.z.record(z.z.string(),eh),{auth:"admin"}),getCapUsageGraph:(0,m.M)(z.z.object({windowSeconds:z.z.number().int().positive().max(300).default(60)}),z.z.array(Xv).readonly(),{auth:"admin"}),getNodeAddons:(0,m.M)(z.z.object({nodeId:z.z.string()}),z.z.array(nh).readonly(),{auth:"admin"}),setProcessLogLevel:(0,m.M)(z.z.object({nodeId:z.z.string(),level:z.z.string()}),ah,{kind:"mutation",auth:"admin"}),executeQuery:(0,m.M)(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"}},ch=z.z.enum(["min","low","normal","high"]),dh=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()}),lh=z.z.object({image:z.z.boolean(),priority:z.z.boolean(),data:z.z.boolean(),actions:z.z.boolean(),recipients:z.z.boolean()}),uh=z.z.object({lastSentAt:z.z.number(),lastError:z.z.string().nullable(),queueDepth:z.z.number().int().nonnegative(),supports:lh}),mh=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:ch.optional(),channel:z.z.string().optional(),recipients:z.z.array(z.z.string()).optional(),actions:z.z.array(dh).optional(),data:z.z.record(z.z.string(),z.z.unknown()).optional()}),ph=z.z.object({notificationId:z.z.string(),acceptedAt:z.z.number()}),bh={name:"notifier",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Notifier],methods:{send:(0,m.M)(mh,ph,{kind:"mutation",auth:"admin"}),cancel:(0,m.M)(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:uh,kind:"command-driven"},runtimeState:uh,durability:"session"},gh=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()}),zh={name:"numeric-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:gh,kind:"push"},runtimeState:gh,durability:"restored",volatileStateFields:["lastFetchedAt"]},fh=z.z.enum(["text","timestamp","watermark"]),yh=z.z.enum(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right","custom"]),vh=z.z.object({id:z.z.string(),kind:fh,enabled:z.z.boolean(),text:z.z.string().optional(),position:yh.optional(),availablePositions:z.z.array(yh).readonly(),readOnly:z.z.boolean().optional()}),hh=z.z.object({overlays:z.z.array(vh).readonly()}),Sh=z.z.object({enabled:z.z.boolean().optional(),text:z.z.string().optional(),position:yh.optional()}).partial(),Ih={name:"osd",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],methods:{setOverlay:(0,m.M)(z.z.object({deviceId:z.z.number(),overlayId:z.z.string(),patch:Sh}),z.z.void(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:hh})}},status:{schema:hh,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}}}]}},jh=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)}),z.z.object({kind:z.z.literal("latest-recognition"),recognition:z.z.enum(["person","plate"])})]),kh=z.z.object({enabled:z.z.boolean().default(!0),source:jh,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:ll.optional(),conditions:jl.optional(),fallbackText:z.z.string().max(64).default("")}),Ph=z.z.object({slotId:z.z.string(),kind:fh,readOnly:z.z.boolean(),cameraEnabled:z.z.boolean(),cameraText:z.z.string().optional(),binding:kh.nullable()}),Mh=z.z.enum(["written","unchanged","gated","unreadable","disabled","unbound","failed"]),wh=z.z.object({slotId:z.z.string(),outcome:Mh,text:z.z.string(),reason:z.z.string().optional()}),Oh=z.z.enum(["number","boolean","string","enum"]),Ch=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:Oh,enumValues:z.z.array(z.z.string()).readonly().optional()}),Ah={name:"osd-manager",scope:"system",mode:"singleton",methods:{getDeviceOsd:(0,m.M)(z.z.object({deviceId:z.z.number().int()}),z.z.object({supported:z.z.boolean(),slots:z.z.array(Ph)}),{auth:"admin"}),getSourceCatalog:(0,m.M)(z.z.object({deviceId:z.z.number().int()}),z.z.object({sources:z.z.array(Ch)}),{auth:"admin"}),getConditionSupport:(0,m.M)(z.z.object({}),z.z.object({supported:z.z.array(z.z.string()),catalog:z.z.array(Ll)}),{auth:"admin"}),setSlotBinding:(0,m.M)(z.z.object({deviceId:z.z.number().int(),slotId:z.z.string().min(1),binding:kh}),z.z.object({slot:Ph,render:wh}),{kind:"mutation",auth:"admin"}),clearSlotBinding:(0,m.M)(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"}),copyDeviceConfiguration:(0,m.M)(z.z.object({sourceDeviceId:z.z.number().int(),targetDeviceId:z.z.number().int()}),z.z.object({copied:z.z.number().int().nonnegative(),skipped:z.z.number().int().nonnegative()}),{kind:"mutation",auth:"admin"}),previewSlot:(0,m.M)(z.z.object({deviceId:z.z.number().int(),slotId:z.z.string().min(1),binding:kh.optional()}),wh,{kind:"mutation",auth:"admin"}),renderDevice:(0,m.M)(z.z.object({deviceId:z.z.number().int()}),z.z.object({results:z.z.array(wh)}),{kind:"mutation",auth:"admin"})}},Nh=4,Eh=200,xh=z.z.enum(["normal","offline","on_batteries"]),Th=z.z.number().int().min(4).max(200),Dh=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:xh.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()}),Rh={name:"pet-feeder",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.PetFeeder],methods:{feed:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),grams:Th.optional(),hopper1:Th.optional(),hopper2:Th.optional()}),z.z.void(),{kind:"mutation",auth:"admin"}),cancelFeed:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),resetDesiccant:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),markFoodReplenished:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),callPet:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),playSound:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setIndicatorLight:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setFeedSound:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"}),setVolume:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),level:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Dh,kind:"poll"},runtimeState:Dh,durability:"session"},Fh=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()}),Bh=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()}),Lh=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:ir.optional(),keyFrameMediaKey:z.z.string().optional(),base64:z.z.string().optional()}),_h=z.z.object({key:z.z.string(),kind:z.z.string(),base64:z.z.string(),sizeBytes:z.z.number(),timestamp:z.z.number()}),qh=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()}),Uh={name:"plate-gallery",scope:"system",mode:"singleton",methods:{listPlates:(0,m.M)(z.z.object({deviceId:z.z.number().int().optional(),limit:z.z.number().int().positive().optional()}).optional(),z.z.array(Lh).readonly()),getPlateByTrack:(0,m.M)(z.z.object({deviceId:z.z.number().int(),trackId:z.z.string()}),Lh.nullable()),getPlateMedia:(0,m.M)(z.z.object({plateId:z.z.string()}),z.z.array(_h).readonly()),searchPlates:(0,m.M)(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(Lh).readonly()),suggestPlateClusters:(0,m.M)(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(qh).readonly()),correctPlateText:(0,m.M)(z.z.object({plateId:z.z.string(),text:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),deletePlate:(0,m.M)(z.z.object({plateId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listVehicles:(0,m.M)(z.z.void(),z.z.array(Fh).readonly()),createVehicle:(0,m.M)(z.z.object({name:z.z.string().min(1)}),Fh,{kind:"mutation",auth:"admin"}),renameVehicle:(0,m.M)(z.z.object({id:z.z.string(),name:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteVehicle:(0,m.M)(z.z.object({id:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),listVehicleSamples:(0,m.M)(z.z.object({vehicleId:z.z.string()}),z.z.array(Bh).readonly()),removeVehicleSample:(0,m.M)(z.z.object({vehicleId:z.z.string(),sampleId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),assignPlate:(0,m.M)(z.z.object({plateId:z.z.string(),vehicleId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),unassignPlate:(0,m.M)(z.z.object({plateId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),assignPlates:(0,m.M)(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.M)(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"})}},Vh=z.z.enum(Wt),Hh=z.z.enum(["videotoolbox","cuda","nvdec","vaapi","qsv","d3d11va","dxva2","amf","vdpau","drm","coreml","tensorrt","openvino","directml","webgpu","none"]).nullable().optional(),$h=z.z.object({preferred:z.z.array(z.z.string()).readonly(),rationale:z.z.string()}),Kh=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"]),Wh=z.z.object({encoder:Kh,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(Wh).readonly(),defaultH264:Kh,defaultH265:Kh,probedAt:z.z.number()}),z.z.object({methods:z.z.array(z.z.string()).readonly(),probedAt:z.z.number()});var Gh=z.z.enum(["darwin","linux","win32"]),Zh=z.z.enum(["arm64","x64"]),Yh=z.z.object({type:z.z.enum(["nvidia","amd","intel","apple"]),name:z.z.string(),memoryMB:z.z.number().optional()}),Jh=z.z.object({type:z.z.enum(["apple-ane","intel-npu"])}),Xh=z.z.object({type:z.z.literal("coral-edgetpu"),bus:z.z.string().optional()}),Qh=z.z.object({platform:Gh,arch:Zh,cpuModel:z.z.string(),cpuCores:z.z.number(),totalRAM_MB:z.z.number(),availableRAM_MB:z.z.number(),gpu:Yh.nullable(),npu:Jh.nullable(),coral:Xh.nullable().optional()}),eS=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()}),tS=z.z.object({key:z.z.string(),backend:z.z.string(),device:z.z.string(),format:Vh,runtime:z.z.literal("python"),score:z.z.number(),available:z.z.boolean()}),nS=z.z.object({hardware:Qh,scores:z.z.array(eS).readonly(),bestScore:eS,pythonPath:z.z.string().nullable(),devices:z.z.array(tS).readonly()}),aS=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()}),rS=z.z.object({modelId:z.z.string(),runtime:z.z.enum(["node","python"]),backend:z.z.string(),format:Vh,reason:z.z.string()}),iS={name:"platform-probe",scope:"system",mode:"singleton",methods:{getCapabilities:(0,m.M)(z.z.void(),nS),getHardware:(0,m.M)(z.z.void(),Qh),resolveInferenceConfig:(0,m.M)(z.z.object({requirements:z.z.array(aS).readonly()}),rS),resolveHwAccel:(0,m.M)(z.z.object({prefer:Hh}),$h)}},oS=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()}),sS={name:"power-meter",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:oS,kind:"push"},runtimeState:oS,durability:"restored",volatileStateFields:["lastFetchedAt"]},cS=z.z.object({latitude:z.z.number().min(-90).max(90),longitude:z.z.number().min(-180).max(180),accuracyMeters:z.z.number().nonnegative()}),dS=z.z.object({state:z.z.string(),location:z.z.string().nullable(),gps:cS.nullable(),batteryPercent:z.z.number().min(0).max(100).nullable(),lastChangedAt:z.z.number()}),lS={name:"presence",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Presence],methods:{},status:{schema:dS,kind:"push"},runtimeState:dS,durability:"restored",volatileStateFields:["lastChangedAt"]},uS=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()}),mS={name:"pressure-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:uS,kind:"push"},runtimeState:uS,durability:"restored",volatileStateFields:["lastFetchedAt"]},pS=z.z.discriminatedUnion("kind",[Kd,Wd]),bS=z.z.object({id:z.z.number(),enabled:z.z.boolean(),shape:pS}),gS=z.z.object({enabled:z.z.boolean(),regions:z.z.array(bS),audioEnabled:z.z.boolean().nullable(),lastFetchedAt:z.z.number()}),zS=z.z.object({maxRegions:z.z.number(),supportedShapes:z.z.array(Jd),polygonVertices:Xd.optional(),supportsAudioMute:z.z.boolean()}),fS=z.z.object({enabled:z.z.boolean().optional(),regions:z.z.array(bS).optional()}),yS={name:"privacy-mask",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/privacy-mask-grid",tab:"image",label:"Privacy Mask"}},methods:{getOptions:(0,m.M)(z.z.object({deviceId:z.z.number()}),zS),setMask:(0,m.M)(z.z.object({deviceId:z.z.number(),patch:fS}),z.z.void(),{kind:"mutation",auth:"admin"}),setAudioEnabled:(0,m.M)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:gS,kind:"poll"},runtimeState:gS,durability:"restored",volatileStateFields:["lastFetchedAt"]};function vS(e){return 0===e.length?null:e.some(e=>e.audioEnabled)}var hS=z.z.object({id:z.z.string(),name:z.z.string()}),SS=z.z.object({pan:z.z.number(),tilt:z.z.number(),zoom:z.z.number()}),IS=z.z.object({pan:z.z.number().optional(),tilt:z.z.number().optional(),zoom:z.z.number().optional(),speed:z.z.number().optional()}),jS=SS.extend({autofocus:z.z.boolean()}),kS=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()}),PS={name:"ptz",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/ptz-panel",tab:"ptz",topTab:!0,label:"PTZ",order:0}},methods:{move:(0,m.M)(IS.extend({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),continuousMove:(0,m.M)(IS.extend({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),stop:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),getPresets:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.array(hS)),goToPreset:(0,m.M)(z.z.object({deviceId:z.z.number(),presetId:z.z.string()}),z.z.void(),{kind:"mutation"}),savePreset:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number(),presetId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),getOptions:(0,m.M)(z.z.object({deviceId:z.z.number()}),kS),goHome:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.void(),{kind:"mutation"}),getPosition:(0,m.M)(z.z.object({deviceId:z.z.number()}),SS),setAutofocus:(0,m.M)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation"})},status:{schema:jS,kind:"command-driven"}},MS=z.z.string().describe("Vendor target string (people/vehicle/pet); empty = camera default"),wS=z.z.object({targetType:MS,stopDelaySeconds:z.z.number().int().min(0).max(300),disappearDelaySeconds:z.z.number().int().min(0).max(300)}),OS=z.z.object({value:z.z.string(),label:z.z.string()}),CS=z.z.object({enabled:z.z.boolean(),lastChangedAt:z.z.number(),currentSettings:wS.nullable(),supportedTargetTypes:z.z.array(OS)}),AS=CS.extend({lastFetchedAt:z.z.number()}),NS={name:"ptz-autotrack",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"widget",widgetId:"host/ptz-autotrack",tab:"ptz",topTab:!0,label:"Auto-Tracking",order:5}},methods:{getStatus:(0,m.M)(z.z.object({deviceId:z.z.number()}),CS),setEnabled:(0,m.M)(z.z.object({deviceId:z.z.number(),enabled:z.z.boolean()}),z.z.void(),{kind:"mutation"}),getSettings:(0,m.M)(z.z.object({deviceId:z.z.number()}),wS.nullable()),setSettings:(0,m.M)(z.z.object({deviceId:z.z.number(),settings:wS.partial()}),z.z.void(),{kind:"mutation"})},events:{onStatusChanged:{data:z.z.object({deviceId:z.z.number(),status:CS})}},status:{schema:CS,kind:"command-driven"},runtimeState:AS,durability:"session"},ES={name:"reboot",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera,m.w.Sensor,m.w.Switch],methods:{reboot:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin"})}},xS=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()}),TS=z.z.object({profile:z.z.string(),startMs:z.z.number(),endMs:z.z.number()}),DS=z.z.object({deviceId:z.z.number(),ranges:z.z.array(TS)}),RS=z.z.object({deviceId:z.z.number(),days:z.z.array(z.z.number())}),FS=z.z.object({deviceId:z.z.number(),localMasterPath:z.z.string().nullable(),playbackUrl:z.z.string().nullable(),playbackEndpoints:z.z.array(z.z.string())}),BS=z.z.object({deviceId:z.z.number(),usedBytes:z.z.number(),oldestMs:z.z.number().nullable().optional()}),LS=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()}),_S=z.z.object({nodeId:z.z.string(),totalUsedBytes:z.z.number(),devices:z.z.array(BS),locations:z.z.array(LS)}),qS=z.z.object({deviceId:z.z.number(),profile:z.z.string(),fromLocationId:z.z.string(),toLocationId:z.z.string(),bytes:z.z.number(),files:z.z.number().int()}),US=z.z.enum(["unassigned","target-not-writable","below-threshold","no-headroom"]),VS=z.z.object({deviceId:z.z.number(),profile:z.z.string(),fromLocationId:z.z.string(),toLocationId:z.z.string().nullable(),bytes:z.z.number(),reason:US}),HS=z.z.object({moves:z.z.array(qS),skipped:z.z.array(VS),bytesToMove:z.z.number(),jobIds:z.z.array(z.z.string())}),$S=z.z.object({throttleMbps:z.z.number().min(1).max(1e3).optional(),minMoveGb:z.z.number().min(0).optional()}),KS=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()})]),WS=z.z.object({data:z.z.instanceof(Uint8Array)}),GS=z.z.object({data:z.z.instanceof(Uint8Array),gopStartMs:z.z.number(),gopDurMs:z.z.number()}),ZS={name:"recording",scope:"system",mode:"singleton",exposesDeviceSettings:!0,status:{schema:xS,kind:"command-driven"},methods:{getAvailability:(0,m.M)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number(),toMs:z.z.number()}),DS,{kind:"query",auth:"protected"}),getDaysWithRecordings:(0,m.M)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number(),toMs:z.z.number(),tzOffsetMinutes:z.z.number()}),RS,{kind:"query",auth:"protected"}),getPlaybackManifest:(0,m.M)(z.z.object({deviceId:z.z.number(),fromMs:z.z.number(),toMs:z.z.number()}),FS,{kind:"query",auth:"protected"}),getStorageUsage:(0,m.M)(z.z.object({}),_S,{kind:"query",auth:"admin"}),getDeviceConfig:(0,m.M)(z.z.object({deviceId:z.z.number()}),rt,{kind:"query",auth:"admin"}),locateSegment:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),epochMs:z.z.number()}),KS,{kind:"query",auth:"admin"}),readSegmentBytes:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),startMs:z.z.number()}),WS,{kind:"query",auth:"admin"}),readGopBytes:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),startMs:z.z.number(),epochMs:z.z.number()}),GS,{kind:"query",auth:"admin"}),setDeviceConfig:(0,m.M)(z.z.object({deviceId:z.z.number(),config:rt}),rt,{kind:"mutation",auth:"admin"}),rescanStorage:(0,m.M)(z.z.object({deviceId:z.z.number()}),xS,{kind:"mutation",auth:"admin"}),pruneFootage:(0,m.M)(z.z.object({deviceId:z.z.number(),reason:Fe.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.M)(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.M)(Le,z.z.array(Be).readonly(),{kind:"query",auth:"admin"}),renderGif:(0,m.M)(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.M)(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"}),pauseForStorageMigration:(0,m.M)(lt,z.z.object({paused:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),resumeForStorageMigration:(0,m.M)(lt,z.z.object({resumed:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),refreshStorageLocationsForMigration:(0,m.M)(lt,z.z.object({refreshed:z.z.literal(!0)}),{kind:"mutation",auth:"admin"}),startStorageMigrationMove:(0,m.M)(ut,z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),getStorageMigrationMoveStatus:(0,m.M)(z.z.object({jobId:z.z.string()}),st.nullable(),{auth:"admin"}),cancelStorageMigrationMove:(0,m.M)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),relocateFootage:(0,m.M)(dt,z.z.object({jobId:z.z.string()}),{kind:"mutation",auth:"admin"}),listRelocateJobs:(0,m.M)(z.z.object({}),z.z.array(st).readonly(),{kind:"query",auth:"admin"}),cancelRelocateJob:(0,m.M)(z.z.object({jobId:z.z.string()}),z.z.object({cancelled:z.z.boolean()}),{kind:"mutation",auth:"admin"}),planStorageRebalance:(0,m.M)($S,HS,{kind:"query",auth:"admin"}),startStorageRebalance:(0,m.M)($S,HS,{kind:"mutation",auth:"admin"})}},YS=z.z.number().min(.25).max(32),JS=z.z.object({fromSec:z.z.number().nonnegative(),toSec:z.z.number().nonnegative()}).refine(e=>e.toSec>e.fromSec,{message:"dense range must have toSec > fromSec"}),XS=200,QS=z.z.object({everyMs:z.z.number().int().positive(),ranges:z.z.array(JS).min(1).max(200)}),eI=z.z.object({everyMs:z.z.number().int().positive(),outputFps:z.z.number().int().min(1).max(60).optional(),dense:QS.optional()}).superRefine((e,t)=>{void 0!==e.dense&&e.dense.everyMs>=e.everyMs&&t.addIssue({code:z.z.ZodIssueCode.custom,message:"dense.everyMs must be strictly smaller than the base everyMs",path:["dense","everyMs"]})}),tI=z.z.object({speed:YS.optional(),timelapse:eI.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"]})}),nI=z.z.enum(["queued","rendering","ready","failed","expired","deleted"]),aI=z.z.object({id:z.z.string(),deviceId:z.z.number(),profile:z.z.string(),fromMs:z.z.number(),toMs:z.z.number(),options:tI,state:nI,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()}),rI=z.z.object({url:z.z.string(),endpoints:z.z.array(z.z.string())}),iI=52428800,oI=z.z.object({base64:z.z.string(),contentType:z.z.string(),name:z.z.string(),bytes:z.z.number().int().nonnegative()}),sI={name:"recording-export",scope:"system",mode:"singleton",methods:{createExport:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:z.z.string(),fromMs:z.z.number(),toMs:z.z.number(),options:tI}),aI,{kind:"mutation",auth:"protected"}),listExports:(0,m.M)(z.z.object({deviceId:z.z.number().optional()}),z.z.array(aI),{kind:"query",auth:"protected"}),getExport:(0,m.M)(z.z.object({exportId:z.z.string()}),aI,{kind:"query",auth:"protected"}),cancelExport:(0,m.M)(z.z.object({exportId:z.z.string()}),aI,{kind:"mutation",auth:"protected"}),deleteExport:(0,m.M)(z.z.object({exportId:z.z.string()}),aI,{kind:"mutation",auth:"protected"}),getDownloadUrl:(0,m.M)(z.z.object({exportId:z.z.string()}),rI,{kind:"query",auth:"protected"}),readExportBytes:(0,m.M)(z.z.object({exportId:z.z.string()}),oI,{kind:"query",auth:"protected"})}},cI=z.z.string(),dI=["day","ir","night","dawn","dusk"],lI=z.z.enum(["skip","judge-anyway"]),uI="__diverged__",mI=z.z.enum(["matched","diverged","unknown"]),pI=z.z.enum(["no-reference-for-condition","view-shifted","no-vision-profile","encoder-model-changed","no-snapshot"]),bI=z.z.object({embedding:z.z.array(z.z.number()),modelId:z.z.string(),condition:cI,capturedAt:z.z.number(),thumbnailMediaId:z.z.string().optional(),anchorEmbedding:z.z.array(z.z.number()).optional()}),gI=z.z.object({id:z.z.string(),label:z.z.string(),references:z.z.array(bI),textPrompts:z.z.array(z.z.string()).optional(),referenceCount:z.z.number(),currentlyMatched:z.z.boolean()}),zI=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()})]),fI=60,yI=120,vI=60,hI=.85,SI="skip",II=8e3,jI=448,kI=!0,PI=z.z.object({enabled:z.z.boolean().default(!1),prompt:z.z.string().min(1).max(1e3),profileId:z.z.string().optional(),timeoutMs:z.z.number().int().min(1e3).max(2e4).default(II),maxImagePx:z.z.number().int().min(64).max(2048).default(448),onTimeout:z.z.enum(["flip","hold"]).default("hold")}),MI=z.z.object({id:z.z.string(),label:z.z.string(),roi:Kd,enabled:z.z.boolean(),triggerMode:z.z.enum(["periodic","on-motion","both"]),checkIntervalSec:z.z.number().optional(),check:zI,states:z.z.array(gI),currentStateId:z.z.string().nullable(),lastCheckedAt:z.z.number().nullable(),lastConfidence:z.z.number().nullable(),currentCondition:cI.nullable(),availability:z.z.enum(["ok","unavailable"]),unavailableReason:z.z.string().nullable(),baselineStateId:z.z.string().nullable(),emit:z.z.enum(["latched","live"]).default("latched"),verdict:mI,latched:z.z.boolean(),armedAt:z.z.number(),divergedAt:z.z.number().nullable(),restoredAt:z.z.number().nullable(),quietSeconds:z.z.number().int().min(0).max(3600).default(60),minObservationSpacingSec:z.z.number().int().min(0).max(3600).default(120),confirm:PI.optional(),anchorThreshold:z.z.number().min(0).max(1).default(hI),autoRestore:z.z.boolean().default(!1),onUncoveredCondition:lI.default(SI),suspendedCondition:cI.nullable().default(null),unavailable:pI.nullable(),coveredConditions:z.z.array(cI)}),wI=z.z.object({monitors:z.z.array(MI),lastFetchedAt:z.z.number()}),OI={name:"scene-monitor",scope:"device",mode:"singleton",kind:"wrapper",defaultActive:!0,deviceTypes:[m.w.Camera],methods:{listScenes:(0,m.M)(z.z.object({deviceId:z.z.number()}),wI),createScene:(0,m.M)(z.z.object({deviceId:z.z.number(),label:z.z.string(),roi:Kd,check:zI,triggerMode:z.z.enum(["periodic","on-motion","both"]).optional(),checkIntervalSec:z.z.number().optional()}),MI,{kind:"mutation",auth:"admin"}),updateScene:(0,m.M)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string(),patch:z.z.object({label:z.z.string().optional(),roi:Kd.optional(),enabled:z.z.boolean().optional(),triggerMode:z.z.enum(["periodic","on-motion","both"]).optional(),checkIntervalSec:z.z.number().optional(),check:zI.optional(),emit:z.z.enum(["latched","live"]).optional(),quietSeconds:z.z.number().int().min(0).max(3600).optional(),minObservationSpacingSec:z.z.number().int().min(0).max(3600).optional(),anchorThreshold:z.z.number().min(0).max(1).optional(),autoRestore:z.z.boolean().optional(),onUncoveredCondition:lI.optional(),confirm:PI.nullable().optional()})}),z.z.void(),{kind:"mutation",auth:"admin"}),deleteScene:(0,m.M)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),captureReference:(0,m.M)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string(),stateId:z.z.string().optional(),label:z.z.string().optional(),condition:cI.optional()}),z.z.object({stateId:z.z.string(),referenceCount:z.z.number()}),{kind:"mutation",auth:"admin"}),deleteReference:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string()}),z.z.void(),{kind:"mutation",auth:"admin"}),resetScene:(0,m.M)(z.z.object({deviceId:z.z.number(),monitorId:z.z.string(),recapture:z.z.boolean().optional()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:wI,kind:"push"},runtimeState:wI,durability:"session"},CI=z.z.enum(["include","exclude"]),AI=z.z.object({id:z.z.string(),name:z.z.string().optional(),zoneIds:z.z.array(z.z.string()).min(1).readonly(),mode:CI,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)}),NI=z.z.array(AI).readonly(),EI=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()}),xI={name:"script-runner",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Script],methods:{run:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:EI,kind:"push"},runtimeState:EI,durability:"session"},TI=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),DI={name:"smoke",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:TI,kind:"push"},runtimeState:TI,durability:"restored",volatileStateFields:["lastChangedAt"]},RI=z.z.object({camStreamId:z.z.string().min(1),kind:m.J,url:z.z.string().optional(),codec:z.z.string().optional(),resolution:m.Y.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()}),FI=z.z.object({descriptors:z.z.array(RI),lastFetchedAt:z.z.number()}),BI={name:"stream-catalog",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],methods:{getCatalog:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.array(RI).readonly())},runtimeState:FI,durability:"restored",volatileStateFields:["lastFetchedAt"]},LI=z.z.enum(["main","sub","ext"]),_I=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()}),qI=z.z.object({main:_I.optional(),sub:_I.optional(),ext:_I.optional(),lastFetchedAt:z.z.number()}),UI=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()}),VI=z.z.object({main:UI.optional(),sub:UI.optional(),ext:UI.optional()}),HI=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()}),$I={name:"stream-params",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Camera],deviceConfig:{ui:{kind:"derived-form",builderId:"stream-params",tab:"streaming"}},methods:{getOptions:(0,m.M)(z.z.object({deviceId:z.z.number()}),VI),setProfile:(0,m.M)(z.z.object({deviceId:z.z.number(),profile:LI,patch:HI}),z.z.void(),{kind:"mutation",auth:"admin"}),getConfigSchema:(0,m.M)(z.z.object({deviceId:z.z.number()}),z.z.unknown().nullable())},status:{schema:qI,kind:"poll"},runtimeState:qI,durability:"restored",volatileStateFields:["lastFetchedAt"]},KI=[{profile:"main",prefix:"streamMain",label:"Main stream"},{profile:"sub",prefix:"streamSub",label:"Sub stream"},{profile:"ext",prefix:"streamExt",label:"Third stream"}];function WI(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)}`})),i=n?`${String(n.width)}x${String(n.height)}`:void 0;i&&!r.some(e=>e.value===i)&&r.unshift({value:i,label:`${i.replace("x","\xd7")} (current)`}),a.push({type:"select",key:`${e.prefix}_resolution`,label:"Resolution",options:r,default:i??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`})),i=n?.framerate;void 0===i||t.framerates.includes(i)||r.unshift({value:String(i),label:`${String(i)} fps (current)`}),a.push({type:"select",key:`${e.prefix}_framerate`,label:"Frame rate",options:r,default:void 0!==i?String(i):r[0]?.value??""})}if(t.bitrates.length>0){const r=t.bitrates.map(e=>({value:String(e),label:`${String(e)} kbps`})),i=n?.bitrate;void 0===i||t.bitrates.includes(i)||r.unshift({value:String(i),label:`${String(i)} kbps (current)`}),a.push({type:"select",key:`${e.prefix}_bitrate`,label:"Bitrate",options:r,default:void 0!==i?String(i):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 i=n?.gop;void 0===i||t.some(e=>e.value===String(i))||t.unshift({value:String(i),label:`${String(i)} s (current)`}),a.push({type:"select",key:`${e.prefix}_gop`,label:"I-frame interval (GOP)",options:t,default:void 0!==i?String(i):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 GI(e,t){const n=[];for(const a of KI){const r=e[a.profile];if(!r)continue;const i=WI(a,r,t?.[a.profile]);i&&n.push(i)}return 0===n.length?null:{sections:n}}function ZI(e,t){const n={};let a=!1;const r=`${t}_resolution`;if(r in e&&"string"==typeof e[r]){const[t,i]=e[r].split("x").map(Number);Number.isFinite(t)&&Number.isFinite(i)&&(n.width=t,n.height=i,a=!0)}const i=`${t}_codec`;!(i in e)||"h264"!==e[i]&&"h265"!==e[i]||(n.codec=e[i],a=!0);const o=`${t}_framerate`;if(o in e){const t=Number(e[o]);Number.isFinite(t)&&(n.framerate=t,a=!0)}const s=`${t}_bitrate`;if(s in e){const t=Number(e[s]);Number.isFinite(t)&&(n.bitrate=t,a=!0)}const c=`${t}_bitrateMode`;!(c in e)||"vbr"!==e[c]&&"cbr"!==e[c]||(n.bitrateMode=e[c],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 YI=z.z.object({on:z.z.boolean(),lastChangedAt:z.z.number()}),JI={name:"switch",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Switch,m.w.Siren,m.w.Light],methods:{setState:(0,m.M)(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:YI,kind:"command-driven"},runtimeState:YI,durability:"restored",volatileStateFields:["lastChangedAt"],settings:{bindings:[{kind:"scalar",statusPath:"on",method:"setState",valueArg:"on",field:{label:"On",kind:"boolean"}}]}},XI=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()}),QI=z.z.object({status:z.z.literal("ok"),uptime:z.z.number()}),ej=z.z.object({name:z.z.string(),address:z.z.string(),family:z.z.string(),internal:z.z.boolean()}),tj=z.z.enum(["operator-set","derived-from-ip"]),nj=z.z.object({latitude:z.z.number().min(-90).max(90),longitude:z.z.number().min(-180).max(180),source:tj,updatedAt:z.z.number(),label:z.z.string().optional()}),aj=z.z.object({location:nj.nullable(),derivationAttemptedAt:z.z.number().nullable(),derivationError:z.z.string().nullable()}),rj=z.z.object({latitude:z.z.number().min(-90).max(90),longitude:z.z.number().min(-180).max(180)}).nullable(),ij={name:"system",scope:"system",mode:"singleton",methods:{info:(0,m.M)(z.z.void(),XI),health:(0,m.M)(z.z.void(),QI),featureFlags:(0,m.M)(z.z.void(),XI),networkAddresses:(0,m.M)(z.z.void(),z.z.array(ej).readonly()),getRetentionConfig:(0,m.M)(z.z.void(),z.z.unknown().nullable(),{auth:"admin"}),setRetentionConfig:(0,m.M)(z.z.record(z.z.string(),z.z.unknown()),z.z.null(),{kind:"mutation",auth:"admin"}),forceRetentionCleanup:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation",auth:"admin"}),getSiteLocation:(0,m.M)(z.z.void(),aj),setSiteLocation:(0,m.M)(rj,aj,{kind:"mutation",auth:"admin"}),detectSiteLocation:(0,m.M)(z.z.void(),aj,{kind:"mutation",auth:"admin"})},mount:{kind:"server-provided"}},oj=z.z.object({tampered:z.z.boolean(),lastChangedAt:z.z.number()}),sj={name:"tamper",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:oj,kind:"push"},runtimeState:oj,durability:"restored",volatileStateFields:["lastChangedAt"]},cj=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()}),dj={name:"temperature-sensor",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor,m.w.Thermostat],methods:{},status:{schema:cj,kind:"push"},runtimeState:cj,durability:"restored",volatileStateFields:["lastFetchedAt"]},lj=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()}),uj={name:"toast",scope:"system",mode:"singleton",methods:{onToast:(0,m.M)(z.z.void(),lj,{kind:"subscription"})},mount:{kind:"server-provided"}},mj=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()}),pj={name:"update",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Update],methods:{installUpdate:(0,m.M)(z.z.void(),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:mj,kind:"poll"},runtimeState:mj,durability:"session"},bj=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(uu).default([]),totpEnabled:z.z.boolean().default(!1),createdAt:z.z.number(),updatedAt:z.z.number()}),gj=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(uu).optional()}),zj=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(uu).optional()}),fj=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()}),yj=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()}),vj=z.z.object({token:z.z.string(),record:fj}),hj=z.z.object({id:z.z.string(),userId:z.z.string(),name:z.z.string(),tokenPrefix:z.z.string(),scopes:z.z.array(uu),expiresAt:z.z.number().nullish(),lastUsedAt:z.z.number().nullish(),createdAt:z.z.number()}),Sj=z.z.object({userId:z.z.string(),name:z.z.string(),scopes:z.z.array(uu),expiresAt:z.z.number().optional()}),Ij=z.z.object({token:z.z.string(),record:hj}),jj=z.z.object({id:z.z.string(),userId:z.z.string(),username:z.z.string(),integrationId:z.z.string(),scopes:z.z.array(uu),createdAt:z.z.number(),lastUsedAt:z.z.number(),revokedAt:z.z.number().nullable()}),kj=z.z.object({secret:z.z.string(),otpauthUrl:z.z.string()}),Pj=z.z.object({enabled:z.z.boolean(),confirmedAt:z.z.number().nullable()}),Mj={name:"user-management",scope:"system",mode:"singleton",methods:{listUsers:(0,m.M)(z.z.void(),z.z.array(bj),{auth:"admin"}),createUser:(0,m.M)(gj,bj,{kind:"mutation",auth:"admin",access:"create"}),updateUser:(0,m.M)(zj,z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"}),deleteUser:(0,m.M)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),resetPassword:(0,m.M)(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.M)(z.z.object({userId:z.z.string(),scopes:z.z.array(uu)}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"create"}),validateCredentials:(0,m.M)(z.z.object({username:z.z.string(),password:z.z.string()}),bj.extend({passwordHash:z.z.string()}).nullable(),{kind:"mutation",access:"view"}),listApiKeys:(0,m.M)(z.z.void(),z.z.array(fj),{auth:"admin"}),createApiKey:(0,m.M)(yj,vj,{kind:"mutation",auth:"admin",access:"create"}),revokeApiKey:(0,m.M)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),validateApiKey:(0,m.M)(z.z.object({token:z.z.string()}),fj.nullable(),{kind:"mutation",access:"view"}),createScopedToken:(0,m.M)(Sj,Ij,{kind:"mutation",auth:"admin",access:"create"}),revokeScopedToken:(0,m.M)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),validateScopedToken:(0,m.M)(z.z.object({token:z.z.string()}),hj.nullable(),{access:"view"}),listScopedTokens:(0,m.M)(z.z.object({userId:z.z.string()}),z.z.array(hj),{auth:"admin"}),setupTotp:(0,m.M)(z.z.object({userId:z.z.string()}),kj,{kind:"mutation",auth:"admin",access:"create"}),confirmTotp:(0,m.M)(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.M)(z.z.object({userId:z.z.string()}),z.z.object({success:z.z.literal(!0)}),{kind:"mutation",auth:"admin",access:"delete"}),getTotpStatus:(0,m.M)(z.z.object({userId:z.z.string()}),Pj,{auth:"admin"}),verifyTotp:(0,m.M)(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.M)(z.z.object({integrationId:z.z.string(),userId:z.z.string(),username:z.z.string(),scopes:z.z.array(uu),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.M)(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.M)(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.M)(z.z.object({token:z.z.string()}),z.z.object({userId:z.z.string(),username:z.z.string(),scopes:z.z.array(uu)}).nullable(),{access:"view"}),listOauthSessions:(0,m.M)(z.z.void(),z.z.array(jj),{auth:"admin"}),revokeOauthSession:(0,m.M)(z.z.object({id:z.z.string()}),z.z.object({success:z.z.boolean()}),{kind:"mutation",auth:"admin",access:"delete"})}},wj=z.z.enum(["idle","cleaning","paused","returning","docked","drying","error"]),Oj=z.z.object({level:z.z.number().min(0).max(100).nullable(),status:z.z.enum(["ok","low","full"]).nullable()}),Cj=z.z.object({state:wj,batteryLevel:z.z.number().min(0).max(100).nullable(),fanSpeed:z.z.string().nullable(),availableFanSpeeds:z.z.array(z.z.string()),cleanWater:Oj.nullable(),dirtyWater:Oj.nullable(),detergent:Oj.nullable(),dustBin:Oj.nullable(),progressPercent:z.z.number().min(0).max(100).nullable(),errorCode:z.z.number().nullable(),errorLabel:z.z.string().nullable(),lastChangedAt:z.z.number()}),Aj={name:"vacuum-control",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Vacuum],methods:{start:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),pause:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),returnToBase:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),locate:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setFanSpeed:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),speed:z.z.string().min(1)}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Cj,kind:"push"},runtimeState:Cj,durability:"session"},Nj=z.z.enum(["open","opening","closing","closed","stopped"]),Ej=z.z.object({state:Nj,position:z.z.number().min(0).max(100).nullable(),lastChangedAt:z.z.number()}),xj={name:"valve",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Valve],methods:{open:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),close:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),stop:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative()}),z.z.void(),{kind:"mutation",auth:"admin"}),setPosition:(0,m.M)(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:Ej,kind:"push"},runtimeState:Ej,durability:"session"},Tj=z.z.object({detected:z.z.boolean(),lastChangedAt:z.z.number()}),Dj={name:"vibration",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Sensor],methods:{},status:{schema:Tj,kind:"push"},runtimeState:Tj,durability:"restored",volatileStateFields:["lastChangedAt"]},Rj=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()}),Fj={name:"water-heater",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.WaterHeater],methods:{setTargetTemp:(0,m.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),temp:z.z.number().finite()}),z.z.void(),{kind:"mutation",auth:"admin"}),setOperationMode:(0,m.M)(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.M)(z.z.object({deviceId:z.z.number().int().nonnegative(),on:z.z.boolean()}),z.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:Rj,kind:"push"},runtimeState:Rj,durability:"session"},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()}),Lj={name:"weather",scope:"device",deviceNative:!0,mode:"singleton",deviceTypes:[m.w.Weather],methods:{},status:{schema:Bj,kind:"push"},runtimeState:Bj,durability:"session"},_j=z.z.object({totalObjects:z.z.number().int().nonnegative(),byClass:z.z.record(z.z.string(),z.z.number().int().nonnegative())}),qj=_j.extend({zoneId:z.z.string(),zoneName:z.z.string(),trackIds:z.z.array(z.z.string()).readonly()}),Uj=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(qj).readonly(),frame:_j,unzoned:_j,stationaryObjects:z.z.array(Uj).readonly().optional()}),Hj=z.z.enum(["minute","5min","hour"]),$j=z.z.object({from:z.z.number().int(),to:z.z.number().int(),resolution:Hj}),Kj=z.z.object({ts:z.z.number().int(),count:z.z.number().int().nonnegative()}),Wj={name:"zone-analytics",scope:"device",mode:"singleton",deviceTypes:[m.w.Camera],methods:{getCurrentSnapshot:(0,m.M)(z.z.object({deviceId:z.z.number()}),Vj.nullable()),getZoneHistory:(0,m.M)(z.z.object({deviceId:z.z.number(),zoneId:z.z.string(),className:z.z.string().optional()}).extend($j.shape),z.z.array(Kj).readonly()),getCameraHistory:(0,m.M)(z.z.object({deviceId:z.z.number(),className:z.z.string().optional()}).extend($j.shape),z.z.array(Kj).readonly()),getUnzonedHistory:(0,m.M)(z.z.object({deviceId:z.z.number(),className:z.z.string().optional()}).extend($j.shape),z.z.array(Kj).readonly())},runtimeState:Vj,durability:"session"},Gj=z.z.enum(["motion","detection","package"]),Zj={name:"zone-rules",scope:"device",mode:"singleton",deviceTypes:[m.w.Camera],methods:{listRules:(0,m.M)(z.z.object({deviceId:z.z.number(),stage:Gj}),z.z.array(AI).readonly()),setRules:(0,m.M)(z.z.object({deviceId:z.z.number(),stage:Gj,rules:z.z.array(AI).readonly()}),z.z.void(),{kind:"mutation",auth:"admin"})},runtimeState:z.z.object({motion:z.z.array(AI).readonly(),detection:z.z.array(AI).readonly(),package:z.z.array(AI).readonly()}),durability:"restored"},Yj=["decoder","motion-detection","pipeline-executor","audio-analyzer","pipeline-analytics","notification-output"],Jj=[...Yj,"pipeline-orchestrator","pipeline-runner"],Xj=[{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 Qj(e){for(const t of Xj){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 ek(e,t=[]){for(const n of Xj){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 tk="camstack/camstack-models",nk=`https://huggingface.co/${tk}/resolve/main`,ak={"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"},rk={Siren:m.C.Siren,Floodlight:m.C.Floodlight,Spotlight:m.C.Spotlight,PirSensor:m.C.PirSensor,Chime:m.C.Chime,Autotrack:m.C.Autotrack,Nightvision:m.C.Nightvision,PrivacyMask:m.C.PrivacyMask},ik={[rk.Siren]:"Siren",[rk.Floodlight]:"Floodlight",[rk.Spotlight]:"Spotlight",[rk.PirSensor]:"PIR",[rk.Chime]:"Chime",[rk.Autotrack]:"Autotracking",[rk.Nightvision]:"Night Vision",[rk.PrivacyMask]:"Privacy Mask"};function ok(e,t,n){const a=`${e}:${t}`;return"number"==typeof n?`${a}:${n}`:a}var sk=class e{constructor(e,t,n){this.schema=e,this.data=t,this.persistFn=n}static fromSchema(t,n,a={},r){const i=t.safeParse(a);if(i.success)return new e(t,i.data,n);const o=new Set;for(const e of i.error.issues){const t=e.path[0];"string"==typeof t&&o.add(t)}const s=Object.assign({},a);for(const e of o)delete s[e];const c=t.safeParse(s);return r?.({droppedKeys:[...o],issues:i.error.issues}),c.success?(n(c.data).catch(()=>{}),new e(t,c.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}))}},ck=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)??{},i=n?Object.assign({},r,t):Object.assign({},t),o=a.parse(i);if(dk(r,o))return;this.slices.set(e,o),this.fireListeners([e]);const s=this.writer(e,Object.assign({},o)).catch(()=>{});this.pendingWrites.add(s),s.finally(()=>{this.pendingWrites.delete(s)})}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 dk(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 lk={airQualitySensor:Jz,alarmPanel:Hd,ambientLightSensor:Qz,audioMetrics:rf,automationControl:sf,battery:df,binary:uf,brightness:pf,cameraStreams:Ci,carbonMonoxide:vf,climateControl:If,color:wf,connectivity:Tf,consumables:Ff,contact:Lf,control:Vf,cover:Kf,dayNight:Xf,deviceDiscovery:jo,deviceStatus:ey,doorbell:ay,enumSensor:oy,eventEmitter:dy,fanControl:hy,featureProbe:Iy,flood:ky,gas:My,humidifier:Oy,humiditySensor:Ay,image:Ey,imageSettings:qy,intercom:ev,lawnMowerControl:rv,lockControl:zv,mediaPlayer:Sv,motion:Ov,motionTrigger:Nv,motionZones:Rv,nativeObjectDetection:qv,notifier:bh,numericSensor:zh,petFeeder:Rh,powerMeter:sS,presence:lS,pressureSensor:mS,privacyMask:yS,ptzAutotrack:NS,sceneMonitor:OI,scriptRunner:xI,smoke:DI,streamCatalog:BI,streamParams:$I,switch:JI,tamper:sj,temperatureSensor:dj,update:pj,vacuumControl:Aj,valve:xj,vibration:Dj,waterHeater:Fj,weather:Lj,zoneAnalytics:Wj,zoneRules:Zj,zones:vp},uk=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=lk[a];if(!r)return;const i=this.sliceProxy(r);return e[a]=i,i}};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=sk.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 i=e.initialRuntimeState??{};this.runtimeState=ck.fromInitial(i,async(t,n)=>{r||(r=e.fetchDevice(e.id)),await(await r).deviceState.setCapSlice({capName:t,slice:n})}),e.bindRuntimeState?.(this.runtimeState),e.registerNativeCap?.(ey,{});const o={online:!0,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",o),e.registerNativeCap?.(Iy,{}),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=vo(this.ctx.deviceMeta.metadata)??go({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=zo(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:{[yo]:t}})}catch{}this.ctx.eventBus.emit((0,m.bt)("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 mk(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 pk=class extends m._t{async onInitialize(){return this.ctx.logger.info(`${this.providerName} Provider initialized`),[{capability:Xo,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.w).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"]}}restoreConcurrency=4;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,n=e.filter(e=>null===e.parentDeviceId),a=async e=>{const n=this.deviceClasses[e.type];if(n)try{await this.ctx.kernel.devices.create(e.stableId,n,{}),t.add(e.id)}catch(t){this.ctx.logger.warn("Failed to restore device",{tags:{stableId:e.stableId},meta:{type:e.type,error:t instanceof Error?t.message:String(t)}})}else this.ctx.logger.warn("No device class registered for restored type \u2014 skipping",{tags:{stableId:e.stableId},meta:{type:e.type}})};let r=0;await Promise.all(Array.from({length:Math.min(Math.max(1,this.restoreConcurrency),n.length)},async()=>{for(;;){const e=n[r++];if(void 0===e)return;await a(e)}}));const i=e.filter(e=>null!==e.parentDeviceId);for(const e of i){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 mk(e,this.addonId)}},bk="fixed";function gk(e){const t=e??"hub";return t.includes("/")?t.split("/")[0]??"hub":t}var zk=32,fk=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=gk(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=await this.readLiveByStableId(),r=[];for(const i of e.devices){const e=await this.applyDeclaration(i,t,n,a);null!==e&&r.push(e)}return{integrationId:t,devices:r,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:{[bk]:!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:{[bk]:!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 readLiveByStableId(){try{const e=await this.ports.devices.getAll();return new Map(e.map(e=>[e.stableId,e]))}catch(e){return this.ports.logger.warn("could not read live devices \u2014 falling back to adopt-by-row",{meta:{error:e instanceof Error?e.message:String(e)}}),new Map}}async applyDeclaration(e,t,n,a){try{const r=a.get(e.stableId);if(void 0!==r)return{stableId:e.stableId,deviceId:r.id,device:r,created:!1};let i=n.get(e.stableId);if(void 0===i&&(i=(await this.readIndex()).get(e.stableId),void 0!==i&&this.ports.logger.warn("device index disagreed with itself \u2014 adopting instead of re-creating",{tags:{deviceId:i.id},meta:{stableId:e.stableId,addonId:this.ports.addonId}})),void 0!==i){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 o=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:o.id},meta:{stableId:e.stableId,integrationId:t}}),{stableId:e.stableId,deviceId:o.id,device:o,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 i=[];for(const e of r)try{await this.ports.devices.remove(e.id),i.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 i}},yk={[m.w.Cover]:"cover",[m.w.Valve]:"valve",[m.w.Humidifier]:"humidifier",[m.w.WaterHeater]:"water-heater",[m.w.Camera]:"dummy",[m.w.Hub]:"dummy",[m.w.Switch]:"switch",[m.w.Siren]:"switch",[m.w.Light]:"light",[m.w.Fan]:"fan",[m.w.Sensor]:"sensor",[m.w.Thermostat]:"thermostat",[m.w.Climate]:"climate",[m.w.Button]:"button",[m.w.EventEmitter]:"dummy",[m.w.Update]:"update",[m.w.Generic]:"dummy",[m.w.Notifier]:"dummy",[m.w.Script]:"script",[m.w.Automation]:"automation",[m.w.Lock]:"lock",[m.w.MediaPlayer]:"media-player",[m.w.AlarmPanel]:"alarm",[m.w.Control]:"control",[m.w.Presence]:"sensor",[m.w.Weather]:"weather",[m.w.Vacuum]:"vacuum",[m.w.LawnMower]:"lawn-mower",[m.w.Container]:"dummy",[m.w.Image]:"image",[m.w.PetFeeder]:"pet-feeder"},vk=new Set(Object.values(m.w));function hk(e){return vk.has(e)?yk[e]:null}var Sk="motion-trigger";function Ik(e){return e.includes(Sk)}var jk=["temperature-sensor","humidity-sensor","ambient-light-sensor","numeric-sensor","enum-sensor"];function kk(e){const t=new Set(e.features);switch(e.type){case m.w.Cover:return{kind:"cover"};case m.w.Valve:return{kind:"valve"};case m.w.Lock:return{kind:"lock"};case m.w.AlarmPanel:return{kind:"alarm"};case m.w.Light:return t.has("brightness")?{kind:"brightness"}:{kind:"switch"};case m.w.Switch:case m.w.Siren:return{kind:"switch"};case m.w.Sensor:case m.w.Presence:{const e=jk.find(e=>t.has(e));return e?{kind:"sensor",sensorFeature:e}:{kind:"none"}}default:return{kind:"none"}}}var Pk={"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 Mk(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function wk(e,t){if(!Mk(e))return null;const n=e[t];if(!Mk(n))return null;const a=n.mutate;return"function"==typeof a?a:null}function Ok(e,t){return!(!e||0===e.length)&&e.includes(t.when.hasFeature)}var Ck={id:"battery",label:"Battery-operated camera",when:{hasFeature:m.S.BatteryOperated},defaults:{audioMode:"disabled",detectionMode:"on-motion"},settings:{}},Ak=[Ck];function Nk(e){for(const t of Ak)if(Ok(e,t))return t;return null}var Ek=216e5;function xk(e){const t=e.status;if(!t)return"sleeping";if(!0!==t.sleeping)return"awake";const n=t.lastContactAt;if("number"!=typeof n||n<=0)return"sleeping";const a=e.unreachableAfterMs??216e5;return e.nowMs-n>a?"unreachable":"sleeping"}function Tk(e){return"unreachable"===e}function Dk(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function Rk(e,t){const n=t.split(".");let a=e;for(const e of n){if(!Dk(a))return;a=a[e]}return a}function Fk(e,t,n){const a=t.indexOf(".");if(-1===a)return Object.assign({},e,{[t]:n});const r=t.slice(0,a),i=t.slice(a+1),o=e[r],s=Dk(o)?o:{};return Object.assign({},e,{[r]:Fk(s,i,n)})}var Bk=3e4,Lk=3,_k=1e4;async function qk(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 Uk(e){const t=e.intervalMs??3e4,n=e.failuresToOffline??3,a=e.probeTimeoutMs??1e4,r=e.runImmediately??!0;let i,o=!1,s=!1,c=0;const d=async()=>{if(!o&&!s&&(!e.isEnabled||e.isEnabled())){s=!0;try{const t=await qk(Promise.resolve().then(e.probe),a,"reachability probe");if(o)return;t?(c=0,e.setOnline(!0)):l("probe resolved unreachable")}catch(e){if(o)return;l(e instanceof Error?e.message:"probe threw")}finally{s=!1}}},l=t=>{c+=1,e.logger?.debug("reachability probe failed",{reason:t,consecutiveFailures:c,failuresToOffline:n}),c>=n&&e.setOnline(!1)};return i=setInterval(()=>{d()},t),"object"==typeof i&&null!==i&&"unref"in i&&i.unref(),r&&d(),{stop:()=>{o||(o=!0,void 0!==i&&clearInterval(i),i=void 0)}}}var Vk="lastFetchedAt";function Hk(e){const{runtimeState:t,cap:n,ownDeviceId:a,refresh:r,staleMs:i,empty:o,logger:s}=e,c=e.refreshMissCooldownMs??6e4;let u=0;const m=()=>{const e=t.getCapState(n.name)?.[Vk];return"number"==typeof e?e:0},p=e=>{u=Date.now()+c,s?.warn(`${n.name}: refresh did not land \u2014 serving the last slice and not re-reading the camera for ${String(c)}ms`,{tags:{deviceId:a},meta:{cooldownMs:c,error:void 0===e?null:e instanceof Error?e.message:String(e)}})},b=async()=>{const e=t.getCapState(n.name),o=m();if(e&&Date.now()-o<=i)u=0;else if(!(Date.now()<u)){try{await r()}catch(e){throw p(e),e}m()>o?0!==u&&(u=0,s?.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 o();return(0,d.default)(e,[Vk].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 $k(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 Kk(e){const t=$k(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 Wk(e,t=""){const n=$k(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,i=$k(n);if(i instanceof z.z.ZodObject){a.push(...Wk(i,r));continue}const o=Kk(n);o&&a.push(Object.assign({path:r,kind:o.kind},o.enumValues?{enumValues:o.enumValues}:{}))}return a}function Gk(e){return Wk(e.itemSchema).filter(t=>t.path!==e.keyField).map(e=>Object.assign({},e,{item:!0}))}var Zk=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.g)(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 i=setTimeout(()=>r(new Error(`SystemMirror.init: '${n}' timed out after ${e}ms`)),e);t.then(e=>{clearTimeout(i),a(e)},e=>{clearTimeout(i),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.m)(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&&!Yk(n,e.id))continue;if(void 0!==e.stableId){if(!r)continue;if(!Yk(r.stableId,e.stableId))continue}if(void 0!==e.addonId){if(!r)continue;if(!Yk(r.addonId,e.addonId))continue}if(void 0!==e.type){if(!r)continue;if(!Yk(r.type,e.type))continue}if(void 0!==e.caps){const t=Jk(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=Jk(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(!Xk(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(!Jk(e.feature).every(e=>r.features.includes(e)))continue}if(void 0!==e.isCamera){if(!r)continue;if(r.isCamera!==e.isCamera)continue}const i=this.getDeviceById(n);if(i){if(e.where&&r){if(!e.where(r,i))continue}else if(e.where&&!r)continue;t.push(i)}}return t}whereState(e,t){const n=[];for(const[a,r]of this.stateMirror){const i=r.get(e);if(!i)continue;if(!t(i,a))continue;const o=this.getDeviceById(a);o&&n.push(o)}return n}mapState(e,t){const n=[];for(const[a,r]of this.stateMirror){const i=r.get(e);i&&n.push(t(i,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 i=r.get(e);i&&(t(i,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,i)=>{const o=(()=>{const a=this.stateMirror.get(e)?.get(t);return a&&n(a)?a:null})();if(o)return void r(o);let s=null;const c=this.listenDevice(e,(e,a,i)=>{a===t&&i&&n(i)&&(s&&clearTimeout(s),c(),r(i))});Number.isFinite(a)&&(s=setTimeout(()=>{c(),i(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 i=null;const o=this.onDeviceAdded(t=>{if(t!==e)return;const a=this.getDeviceById(t);a&&(i&&clearTimeout(i),o(),n(a))});Number.isFinite(t)&&(i=setTimeout(()=>{o(),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),i=Math.max(1,a.parallelism??r.length),o=[];for(let a=0;a<r.length;a+=i){const s=r.slice(a,a+i),c=await Promise.allSettled(s.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<c.length;e++){const t=s[e],n=c[e];"fulfilled"===n.status?o.push({deviceId:t.deviceId,ok:!0,result:n.value}):o.push({deviceId:t.deviceId,ok:!1,error:n.reason})}}return o}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}`,i=this.handleListeners.get(r);if(i)for(const e of i)try{e(n)}catch{}for(const a of this.globalStateListeners)try{a(e,t,n)}catch{}const o=this.capListeners.get(t);if(o)for(const t of o)try{t(e,n)}catch{}const s=this.deviceListeners.get(e);if(s)for(const a of s)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.getBindings.query({deviceId:e});if(t.entries.length>0)return void this.bindings.set(e,t);if(null===await this.api.deviceManager.getDevice.query({deviceId:e}))return void this.applyDeviceRemoval(e);this.bindings.set(e,t)}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 Yk(e,t){return Array.isArray(t)?t.includes(e):e===t}function Jk(e){return Array.isArray(e)?e:[e]}function Xk(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 Qk(e){return e.def}function eP(e,t="Configuration",n="main"){return{sections:[{id:n,title:t,fields:e.map(e=>tP(e.key,e.schema,e.description))}]}}function tP(e,t,n){const a=oP(t),r=sP(t),i={key:e,label:n??cP(e),description:n,default:r};return a instanceof z.z.ZodString?nP(e,i):a instanceof z.z.ZodNumber?aP(a,i):a instanceof z.z.ZodBoolean?Object.assign({},i,{type:"boolean"}):a instanceof z.z.ZodEnum?iP(a,i):a instanceof z.z.ZodArray||a instanceof z.z.ZodObject?Object.assign({},i,{type:"textarea",rows:6,isJson:!0}):Object.assign({},i,{type:"text"})}function nP(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 aP(e,t){const n=e,a=n.minValue,r=n.maxValue,i=null!=a&&isFinite(a)?a:void 0,o=null!=r&&isFinite(r)?r:void 0,s=rP(e);return Object.assign({},t,{type:"number"},void 0!==i?{min:i}:{},void 0!==o?{max:o}:{},void 0!==s?{step:s}:{})}function rP(e){const t=Qk(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 iP(e,t){const n=e.options.map(e=>String(e));return Object.assign({},t,{type:"select",options:n.map(e=>({label:cP(e),value:e}))})}function oP(e){return e instanceof z.z.ZodDefault||e instanceof z.z.ZodOptional||e instanceof z.z.ZodNullable?oP(Qk(e).innerType):e}function sP(e){if(e instanceof z.z.ZodDefault)return Qk(e).defaultValue}function cP(e){return e.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/^\w/,e=>e.toUpperCase()).trim()}var dP=["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"],lP={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:"recording-export",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",storageMigration:"storage-migration",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"},uP=[{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:"recording-export"},{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:"storageMigration",name:"storage-migration"},{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"}],mP=[fz,Na,xa,Fa,Va,Ya,Ga,Zz,m.T,Jz,Hd,tr,Qz,nr,gr,jr,rf,Pr,sf,xr,df,uf,pf,ei,bf,ff,ti,Ci,vf,If,wf,Ef,Tf,Ff,Lf,Vf,Gi,Kf,Qi,so,Xf,mo,po,Ro,jo,$o,bs,m.y,Xo,gs,ey,ay,ys,oy,dy,uy,fy,hy,Iy,Ss,ky,My,Oy,Ay,Ey,qy,Yy,ev,rv,Xs,Ls,pv,zv,tc,sc,Sv,Pv,Mc,Oc,Nc,Ov,Tc,Nv,Rv,Kc,qv,Yc,$v,sh,pd,ru,bh,zh,zu,Ih,Ah,Rh,Em,mp,Vb,db,Uh,iS,sS,lS,mS,yS,PS,NS,ES,ZS,sI,OI,xI,ig,io,DI,lg,pg,gg,fg,hg,Sg,xg,ki,BI,$I,JI,ij,sj,dj,_g,uj,Ug,pj,Mj,Hg,Aj,xj,cz,Dj,uz,m.b,Fj,Lj,gz,Wj,Zj,vp],pP=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.cancel":{capName:"llm",capScope:"system",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.resolveModelRef":{capName:"llm",capScope:"system",addonId:null,access:"create"},"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.copyDeviceConfiguration":{capName:"osd-manager",capScope:"system",addonId:null,access:"create"},"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.cancelStorageMigrationMove":{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.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.getStorageMigrationMoveStatus":{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.pauseForStorageMigration":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"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.refreshStorageLocationsForMigration":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.restageRetrainTrack":{capName:"pipeline-analytics",capScope:"device",addonId:null,access:"create"},"pipelineAnalytics.resumeForStorageMigration":{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.startStorageMigrationMove":{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.pauseForStorageMigration":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"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.resumeForStorageMigration":{capName:"pipeline-orchestrator",capScope:"system",addonId:null,access:"create"},"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.cancelRelocateJob":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.cancelStorageMigrationMove":{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.getStorageMigrationMoveStatus":{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.listRelocateJobs":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.locateSegment":{capName:"recording",capScope:"system",addonId:null,access:"view"},"recording.pauseForStorageMigration":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.planStorageRebalance":{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.refreshStorageLocationsForMigration":{capName:"recording",capScope:"system",addonId:null,access:"create"},"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.resumeForStorageMigration":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.setDeviceConfig":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.startStorageMigrationMove":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recording.startStorageRebalance":{capName:"recording",capScope:"system",addonId:null,access:"create"},"recordingExport.cancelExport":{capName:"recording-export",capScope:"system",addonId:null,access:"create"},"recordingExport.createExport":{capName:"recording-export",capScope:"system",addonId:null,access:"create"},"recordingExport.deleteExport":{capName:"recording-export",capScope:"system",addonId:null,access:"delete"},"recordingExport.getDownloadUrl":{capName:"recording-export",capScope:"system",addonId:null,access:"view"},"recordingExport.getExport":{capName:"recording-export",capScope:"system",addonId:null,access:"view"},"recordingExport.listExports":{capName:"recording-export",capScope:"system",addonId:null,access:"view"},"recordingExport.readExportBytes":{capName:"recording-export",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.resetScene":{capName:"scene-monitor",capScope:"device",addonId:null,access:"delete"},"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.getDebugState":{capName:"snapshot",capScope:"device",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"},"storageMigration.cancel":{capName:"storage-migration",capScope:"system",addonId:null,access:"create"},"storageMigration.plan":{capName:"storage-migration",capScope:"system",addonId:null,access:"view"},"storageMigration.start":{capName:"storage-migration",capScope:"system",addonId:null,access:"create"},"storageMigration.status":{capName:"storage-migration",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.detectSiteLocation":{capName:"system",capScope:"system",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.getSiteLocation":{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"},"system.setSiteLocation":{capName:"system",capScope:"system",addonId:null,access:"create"},"terminalSession.adoptLegacyMonitor":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.close":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.createInstance":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.deleteInstance":{capName:"terminal-session",capScope:"system",addonId:null,access:"delete"},"terminalSession.listInstances":{capName:"terminal-session",capScope:"system",addonId:null,access:"view"},"terminalSession.listLegacyCameras":{capName:"terminal-session",capScope:"system",addonId:null,access:"view"},"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.pullOutput":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.resize":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.setInstanceEnabled":{capName:"terminal-session",capScope:"system",addonId:null,access:"create"},"terminalSession.writeInput":{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"}}),bP=["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","recording-export","scene-monitor","script-runner","server-management","settings-store","smtp-provider","snapshot","sso-bridge","storage","storage-evictable","storage-migration","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"],gP=["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"],zP=["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","recording-export","server-management","settings-store","smtp-provider","sso-bridge","storage","storage-evictable","storage-migration","storage-provider","stream-broker","system","terminal-session","toast","turn-provider","user-management","user-passkeys","vector-store","viewer-ui"],fP=Object.freeze({"accessories.setChildHidden":[{name:"childDeviceId",form:"single",optional:!1},{name:"deviceId",form:"single",optional:!1}],"addonSettings.getDeviceSettings":[{name:"deviceId",form:"single",optional:!1}],"addonSettings.updateDeviceSettings":[{name:"deviceId",form:"single",optional:!1}],"alarmPanel.arm":[{name:"deviceId",form:"single",optional:!1}],"alarmPanel.disarm":[{name:"deviceId",form:"single",optional:!1}],"alarmPanel.trigger":[{name:"deviceId",form:"single",optional:!1}],"audioAnalysis.resolveDeviceSettings":[{name:"deviceId",form:"single",optional:!1}],"audioAnalyzer.classify":[{name:"deviceId",form:"single",optional:!0}],"audioMetrics.getCurrentSnapshot":[{name:"deviceId",form:"single",optional:!1}],"audioMetrics.getHistory":[{name:"deviceId",form:"single",optional:!1}],"automationControl.disable":[{name:"deviceId",form:"single",optional:!1}],"automationControl.enable":[{name:"deviceId",form:"single",optional:!1}],"automationControl.trigger":[{name:"deviceId",form:"single",optional:!1}],"battery.wakeForStream":[{name:"deviceId",form:"single",optional:!1}],"brightness.setBrightness":[{name:"deviceId",form:"single",optional:!1}],"button.press":[{name:"deviceId",form:"single",optional:!1}],"cameraCredentials.getCredentials":[{name:"deviceId",form:"single",optional:!1}],"cameraStreams.getBrokerStreams":[{name:"deviceId",form:"single",optional:!1}],"cameraStreams.getCameraStreams":[{name:"deviceId",form:"single",optional:!1}],"cameraStreams.getProfileRtspEntries":[{name:"deviceId",form:"single",optional:!1}],"cameraStreams.getRtspEntries":[{name:"deviceId",form:"single",optional:!1}],"cameraStreams.pickStream":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setFanMode":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setMode":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setPreset":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setSwingHorizontal":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setSwingVertical":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setTarget":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setTargetHumidity":[{name:"deviceId",form:"single",optional:!1}],"climateControl.setTargetRange":[{name:"deviceId",form:"single",optional:!1}],"color.setColor":[{name:"deviceId",form:"single",optional:!1}],"consumables.reset":[{name:"deviceId",form:"single",optional:!1}],"control.setValue":[{name:"deviceId",form:"single",optional:!1}],"cover.close":[{name:"deviceId",form:"single",optional:!1}],"cover.open":[{name:"deviceId",form:"single",optional:!1}],"cover.setPosition":[{name:"deviceId",form:"single",optional:!1}],"cover.setTiltPosition":[{name:"deviceId",form:"single",optional:!1}],"cover.stop":[{name:"deviceId",form:"single",optional:!1}],"dayNight.getOptions":[{name:"deviceId",form:"single",optional:!1}],"dayNight.setSettings":[{name:"deviceId",form:"single",optional:!1}],"decoder.createSession":[{name:"deviceId",form:"single",optional:!0}],"deviceAdoption.release":[{name:"camDeviceId",form:"single",optional:!1}],"deviceAdoption.resync":[{name:"camDeviceId",form:"single",optional:!1}],"deviceDiscovery.adoptDevice":[{name:"deviceId",form:"single",optional:!1}],"deviceDiscovery.listDiscovered":[{name:"deviceId",form:"single",optional:!1}],"deviceDiscovery.refreshDiscovery":[{name:"deviceId",form:"single",optional:!1}],"deviceDiscovery.releaseDevice":[{name:"childDeviceId",form:"single",optional:!1},{name:"deviceId",form:"single",optional:!1}],"deviceManager.adoptionRelease":[{name:"camDeviceId",form:"single",optional:!1}],"deviceManager.adoptionResync":[{name:"camDeviceId",form:"single",optional:!1}],"deviceManager.applyInitialMeta":[{name:"deviceId",form:"single",optional:!1},{name:"linkDeviceId",form:"single",optional:!0}],"deviceManager.disable":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.enable":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getBindings":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getChildren":[{name:"parentDeviceId",form:"single",optional:!1}],"deviceManager.getConfigSchema":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getDevice":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getDeviceAggregate":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getDeviceLiveInfoAggregate":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getDeviceSettingsAggregate":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getDeviceStatusAggregate":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getDeviceStatusAggregateBatch":[{name:"deviceIds",form:"array",optional:!1}],"deviceManager.getLinkedDevices":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getSettingsSchema":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getStreamProfileMap":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getStreamSources":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.getWireableFields":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.loadConfig":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.loadMeta":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.loadRuntimeState":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.persistConfig":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.probeStreams":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.registerDevice":[{name:"parentDeviceId",form:"single",optional:!0}],"deviceManager.remove":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.removeDevice":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.runDeviceAction":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setChildLayout":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setDisabled":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setDisplay":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setIntegrationId":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setLinkDeviceId":[{name:"deviceId",form:"single",optional:!1},{name:"linkDeviceId",form:"single",optional:!0}],"deviceManager.setLocation":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setMetadata":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setName":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setPrimaryChildEntityId":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setRole":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setStreamProfileMap":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setType":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.setWrapperActive":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.testField":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.updateConfig":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.updateDeviceField":[{name:"deviceId",form:"single",optional:!1}],"deviceManager.updateDeviceFieldsBatch":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.getConfigEntries":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.getRawState":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.getSettingsSchema":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.getStreamSources":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.removeDevice":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.runAction":[{name:"deviceId",form:"single",optional:!1}],"deviceOps.setConfig":[{name:"deviceId",form:"single",optional:!1}],"deviceState.getCapSlice":[{name:"deviceId",form:"single",optional:!1}],"deviceState.getSnapshot":[{name:"deviceId",form:"single",optional:!1}],"deviceState.setCapSlice":[{name:"deviceId",form:"single",optional:!1}],"events.getEventClipUrl":[{name:"deviceId",form:"single",optional:!1}],"events.getEvents":[{name:"deviceId",form:"single",optional:!1}],"events.getEventThumbnail":[{name:"deviceId",form:"single",optional:!1}],"faceGallery.getFaceByTrack":[{name:"deviceId",form:"single",optional:!1}],"faceGallery.listRecentFaces":[{name:"deviceId",form:"single",optional:!0}],"fanControl.setDirection":[{name:"deviceId",form:"single",optional:!1}],"fanControl.setOscillating":[{name:"deviceId",form:"single",optional:!1}],"fanControl.setPercentage":[{name:"deviceId",form:"single",optional:!1}],"fanControl.setPreset":[{name:"deviceId",form:"single",optional:!1}],"humidifier.setMode":[{name:"deviceId",form:"single",optional:!1}],"humidifier.setOn":[{name:"deviceId",form:"single",optional:!1}],"humidifier.setTargetHumidity":[{name:"deviceId",form:"single",optional:!1}],"imageSettings.getOptions":[{name:"deviceId",form:"single",optional:!1}],"imageSettings.setSettings":[{name:"deviceId",form:"single",optional:!1}],"intercom.endTalkSession":[{name:"deviceId",form:"single",optional:!1}],"intercom.handleAnswer":[{name:"deviceId",form:"single",optional:!1}],"intercom.pushTalkAudio":[{name:"deviceId",form:"single",optional:!1}],"intercom.startSession":[{name:"deviceId",form:"single",optional:!1}],"intercom.startTalkSession":[{name:"deviceId",form:"single",optional:!1}],"intercom.stopSession":[{name:"deviceId",form:"single",optional:!1}],"lawnMowerControl.dock":[{name:"deviceId",form:"single",optional:!1}],"lawnMowerControl.pause":[{name:"deviceId",form:"single",optional:!1}],"lawnMowerControl.startMowing":[{name:"deviceId",form:"single",optional:!1}],"lockControl.lock":[{name:"deviceId",form:"single",optional:!1}],"lockControl.open":[{name:"deviceId",form:"single",optional:!1}],"lockControl.unlock":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.next":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.pause":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.play":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.playMedia":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.previous":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.seek":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.selectSource":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.setMute":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.setRepeat":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.setShuffle":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.setVolume":[{name:"deviceId",form:"single",optional:!1}],"mediaPlayer.stop":[{name:"deviceId",form:"single",optional:!1}],"motion.isDetected":[{name:"deviceId",form:"single",optional:!1}],"motionDetection.analyze":[{name:"deviceId",form:"single",optional:!1}],"motionDetection.removeCamera":[{name:"deviceId",form:"single",optional:!1}],"motionTrigger.setMotionTrigger":[{name:"deviceId",form:"single",optional:!1}],"motionZones.getOptions":[{name:"deviceId",form:"single",optional:!1}],"motionZones.setZone":[{name:"deviceId",form:"single",optional:!1}],"nativeObjectDetection.setEnabled":[{name:"deviceId",form:"single",optional:!1}],"networkQuality.getDeviceStats":[{name:"deviceId",form:"single",optional:!1}],"networkQuality.reportClientStats":[{name:"deviceId",form:"single",optional:!1}],"notificationRules.setDeviceMuted":[{name:"deviceId",form:"single",optional:!1}],"notifier.cancel":[{name:"deviceId",form:"single",optional:!1}],"notifier.send":[{name:"deviceId",form:"single",optional:!1}],"osd.setOverlay":[{name:"deviceId",form:"single",optional:!1}],"osdManager.clearSlotBinding":[{name:"deviceId",form:"single",optional:!1}],"osdManager.copyDeviceConfiguration":[{name:"sourceDeviceId",form:"single",optional:!1},{name:"targetDeviceId",form:"single",optional:!1}],"osdManager.getDeviceOsd":[{name:"deviceId",form:"single",optional:!1}],"osdManager.getSourceCatalog":[{name:"deviceId",form:"single",optional:!1}],"osdManager.previewSlot":[{name:"deviceId",form:"single",optional:!1}],"osdManager.renderDevice":[{name:"deviceId",form:"single",optional:!1}],"osdManager.setSlotBinding":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.callPet":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.cancelFeed":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.feed":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.markFoodReplenished":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.playSound":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.resetDesiccant":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.setChildLock":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.setFeedSound":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.setIndicatorLight":[{name:"deviceId",form:"single",optional:!1}],"petFeeder.setVolume":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.clearTracks":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.completeRetrainTrack":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.deleteDeviceEvents":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.deleteTracks":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.deselectRetrainFrame":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getActiveTracks":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getAudioEvents":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getEventDensity":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getEventMedia":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getKeyEvents":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getMotionEvents":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getObjectEvents":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getRetrainExportUrl":[{name:"deviceIds",form:"array",optional:!0}],"pipelineAnalytics.getSensorEvents":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getTrack":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getTrackMedia":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.getTrainingExportSummary":[{name:"deviceIds",form:"array",optional:!0}],"pipelineAnalytics.getTrainingExportUrl":[{name:"deviceIds",form:"array",optional:!0}],"pipelineAnalytics.listEventKinds":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.listEventKindsBatch":[{name:"deviceIds",form:"array",optional:!1}],"pipelineAnalytics.listOpsLog":[{name:"deviceId",form:"single",optional:!0}],"pipelineAnalytics.listRecentTracks":[{name:"deviceIds",form:"array",optional:!1}],"pipelineAnalytics.listRetrainStaging":[{name:"deviceIds",form:"array",optional:!0}],"pipelineAnalytics.listTrackMedia":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.listTracks":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.proposeRetrainAnnotations":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.pruneEventsBefore":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.pruneTracksBefore":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.rebuildObjectEmbeddings":[{name:"deviceId",form:"single",optional:!0}],"pipelineAnalytics.restageRetrainTrack":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.saveRetrainAnnotations":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.searchObjectEvents":[{name:"deviceId",form:"single",optional:!0}],"pipelineAnalytics.selectRetrainFrames":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.setTrackFlags":[{name:"deviceId",form:"single",optional:!1}],"pipelineAnalytics.wipeAllAnalytics":[{name:"deviceId",form:"single",optional:!1}],"pipelineExecutor.runPipeline":[{name:"deviceId",form:"single",optional:!0}],"pipelineExecutor.runPipelineBatch":[{name:"deviceId",form:"single",optional:!0}],"pipelineOrchestrator.assignAudio":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.assignPipeline":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getAudioAssignment":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getCameraMetrics":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getCameraSettings":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getCameraStatus":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getCameraStatuses":[{name:"deviceIds",form:"array",optional:!0}],"pipelineOrchestrator.getCameraStepOverrides":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getCameraSwitches":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getPipelineAssignment":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.getPipelineDevicePin":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.resolvePipeline":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.setCameraPipelineForAgent":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.setCameraStepOverride":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.setCameraStepToggle":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.setCameraSwitch":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.setPipelineDevicePin":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.unassignAudio":[{name:"deviceId",form:"single",optional:!1}],"pipelineOrchestrator.unassignPipeline":[{name:"deviceId",form:"single",optional:!1}],"pipelineRunner.attachCamera":[{name:"deviceId",form:"single",optional:!1}],"pipelineRunner.detachCamera":[{name:"deviceId",form:"single",optional:!1}],"pipelineRunner.getCameraMetrics":[{name:"deviceId",form:"single",optional:!1}],"pipelineRunner.reportMotion":[{name:"deviceId",form:"single",optional:!1}],"pipelineRunner.runDetailSubtree":[{name:"deviceId",form:"single",optional:!1}],"pipelineRunner.runStatelessStep":[{name:"sourceDeviceId",form:"single",optional:!1}],"plateGallery.getPlateByTrack":[{name:"deviceId",form:"single",optional:!1}],"plateGallery.listPlates":[{name:"deviceId",form:"single",optional:!0}],"privacyMask.getOptions":[{name:"deviceId",form:"single",optional:!1}],"privacyMask.setAudioEnabled":[{name:"deviceId",form:"single",optional:!1}],"privacyMask.setMask":[{name:"deviceId",form:"single",optional:!1}],"ptz.continuousMove":[{name:"deviceId",form:"single",optional:!1}],"ptz.deletePreset":[{name:"deviceId",form:"single",optional:!1}],"ptz.getOptions":[{name:"deviceId",form:"single",optional:!1}],"ptz.getPosition":[{name:"deviceId",form:"single",optional:!1}],"ptz.getPresets":[{name:"deviceId",form:"single",optional:!1}],"ptz.goHome":[{name:"deviceId",form:"single",optional:!1}],"ptz.goToPreset":[{name:"deviceId",form:"single",optional:!1}],"ptz.move":[{name:"deviceId",form:"single",optional:!1}],"ptz.savePreset":[{name:"deviceId",form:"single",optional:!1}],"ptz.setAutofocus":[{name:"deviceId",form:"single",optional:!1}],"ptz.stop":[{name:"deviceId",form:"single",optional:!1}],"ptzAutotrack.getSettings":[{name:"deviceId",form:"single",optional:!1}],"ptzAutotrack.getStatus":[{name:"deviceId",form:"single",optional:!1}],"ptzAutotrack.setEnabled":[{name:"deviceId",form:"single",optional:!1}],"ptzAutotrack.setSettings":[{name:"deviceId",form:"single",optional:!1}],"reboot.reboot":[{name:"deviceId",form:"single",optional:!1}],"recording.deleteFootprint":[{name:"deviceId",form:"single",optional:!1}],"recording.getAvailability":[{name:"deviceId",form:"single",optional:!1}],"recording.getDaysWithRecordings":[{name:"deviceId",form:"single",optional:!1}],"recording.getDeviceConfig":[{name:"deviceId",form:"single",optional:!1}],"recording.getPlaybackManifest":[{name:"deviceId",form:"single",optional:!1}],"recording.listOpsLog":[{name:"deviceId",form:"single",optional:!0}],"recording.locateSegment":[{name:"deviceId",form:"single",optional:!1}],"recording.pruneFootage":[{name:"deviceId",form:"single",optional:!1}],"recording.readGopBytes":[{name:"deviceId",form:"single",optional:!1}],"recording.readSegmentBytes":[{name:"deviceId",form:"single",optional:!1}],"recording.relocateFootage":[{name:"deviceId",form:"single",optional:!0}],"recording.renderClip":[{name:"deviceId",form:"single",optional:!1}],"recording.renderGif":[{name:"deviceId",form:"single",optional:!1}],"recording.rescanStorage":[{name:"deviceId",form:"single",optional:!1}],"recording.setDeviceConfig":[{name:"deviceId",form:"single",optional:!1}],"recording.startStorageMigrationMove":[{name:"deviceId",form:"single",optional:!0}],"recordingExport.createExport":[{name:"deviceId",form:"single",optional:!1}],"recordingExport.listExports":[{name:"deviceId",form:"single",optional:!0}],"sceneMonitor.captureReference":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.createScene":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.deleteReference":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.deleteScene":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.listScenes":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.recheckNow":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.resetScene":[{name:"deviceId",form:"single",optional:!1}],"sceneMonitor.updateScene":[{name:"deviceId",form:"single",optional:!1}],"scriptRunner.run":[{name:"deviceId",form:"single",optional:!1}],"scriptRunner.stop":[{name:"deviceId",form:"single",optional:!1}],"snapshot.getDebugState":[{name:"deviceId",form:"single",optional:!1}],"snapshot.getSnapshot":[{name:"deviceId",form:"single",optional:!1}],"snapshot.getSnapshotLinks":[{name:"targets",form:"object-array",optional:!1,itemField:"deviceId"}],"snapshot.getSnapshotOverview":[{name:"deviceIds",form:"array",optional:!1}],"snapshot.invalidateCache":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.acquireEgressTranscode":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.assignProfile":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.getDeviceAudioMute":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.getStreamWithCodec":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.produceEventMedia":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.publishCameraStream":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.renderPreBufferClip":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.restartProfile":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.retractCameraStream":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.setDeviceAudioMute":[{name:"deviceId",form:"single",optional:!1}],"streamBroker.unassignProfile":[{name:"deviceId",form:"single",optional:!1}],"streamCatalog.getCatalog":[{name:"deviceId",form:"single",optional:!1}],"streamParams.getConfigSchema":[{name:"deviceId",form:"single",optional:!1}],"streamParams.getOptions":[{name:"deviceId",form:"single",optional:!1}],"streamParams.setProfile":[{name:"deviceId",form:"single",optional:!1}],"switch.setState":[{name:"deviceId",form:"single",optional:!1}],"vacuumControl.locate":[{name:"deviceId",form:"single",optional:!1}],"vacuumControl.pause":[{name:"deviceId",form:"single",optional:!1}],"vacuumControl.returnToBase":[{name:"deviceId",form:"single",optional:!1}],"vacuumControl.setFanSpeed":[{name:"deviceId",form:"single",optional:!1}],"vacuumControl.start":[{name:"deviceId",form:"single",optional:!1}],"vacuumControl.stop":[{name:"deviceId",form:"single",optional:!1}],"valve.close":[{name:"deviceId",form:"single",optional:!1}],"valve.open":[{name:"deviceId",form:"single",optional:!1}],"valve.setPosition":[{name:"deviceId",form:"single",optional:!1}],"valve.stop":[{name:"deviceId",form:"single",optional:!1}],"videoclips.getClipPlayback":[{name:"deviceId",form:"single",optional:!1}],"videoclips.listClips":[{name:"deviceId",form:"single",optional:!1}],"waterHeater.setAway":[{name:"deviceId",form:"single",optional:!1}],"waterHeater.setOperationMode":[{name:"deviceId",form:"single",optional:!1}],"waterHeater.setTargetTemp":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.addIceCandidate":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.closeSession":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.createSession":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.getIceCandidates":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.getSessionState":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.handleAnswer":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.handleOffer":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.hasAdaptiveBitrate":[{name:"deviceId",form:"single",optional:!1}],"webrtcSession.listStreams":[{name:"deviceId",form:"single",optional:!1}],"zoneAnalytics.getCameraHistory":[{name:"deviceId",form:"single",optional:!1}],"zoneAnalytics.getCurrentSnapshot":[{name:"deviceId",form:"single",optional:!1}],"zoneAnalytics.getUnzonedHistory":[{name:"deviceId",form:"single",optional:!1}],"zoneAnalytics.getZoneHistory":[{name:"deviceId",form:"single",optional:!1}],"zoneRules.listRules":[{name:"deviceId",form:"single",optional:!1}],"zoneRules.setRules":[{name:"deviceId",form:"single",optional:!1}],"zones.addZone":[{name:"deviceId",form:"single",optional:!1}],"zones.listZones":[{name:"deviceId",form:"single",optional:!1}],"zones.removeZone":[{name:"deviceId",form:"single",optional:!1}],"zones.updateZone":[{name:"deviceId",form:"single",optional:!1}]}),yP=["addonSettings.getDeviceSettings","addonSettings.updateDeviceSettings","audioAnalyzer.classify","decoder.createSession","deviceAdoption.release","deviceAdoption.resync","deviceManager.adoptionRelease","deviceManager.adoptionResync","deviceManager.applyInitialMeta","deviceManager.disable","deviceManager.enable","deviceManager.getBindings","deviceManager.getChildren","deviceManager.getConfigSchema","deviceManager.getDevice","deviceManager.getDeviceAggregate","deviceManager.getDeviceLiveInfoAggregate","deviceManager.getDeviceSettingsAggregate","deviceManager.getDeviceStatusAggregate","deviceManager.getDeviceStatusAggregateBatch","deviceManager.getLinkedDevices","deviceManager.getSettingsSchema","deviceManager.getStreamProfileMap","deviceManager.getStreamSources","deviceManager.getWireableFields","deviceManager.loadConfig","deviceManager.loadMeta","deviceManager.loadRuntimeState","deviceManager.persistConfig","deviceManager.probeStreams","deviceManager.registerDevice","deviceManager.remove","deviceManager.removeDevice","deviceManager.runDeviceAction","deviceManager.setChildLayout","deviceManager.setDisabled","deviceManager.setDisplay","deviceManager.setIntegrationId","deviceManager.setLinkDeviceId","deviceManager.setLocation","deviceManager.setMetadata","deviceManager.setName","deviceManager.setPrimaryChildEntityId","deviceManager.setRole","deviceManager.setStreamProfileMap","deviceManager.setType","deviceManager.setWrapperActive","deviceManager.testField","deviceManager.updateConfig","deviceManager.updateDeviceField","deviceManager.updateDeviceFieldsBatch","deviceState.getCapSlice","deviceState.getSnapshot","deviceState.setCapSlice","faceGallery.getFaceByTrack","faceGallery.listRecentFaces","networkQuality.getDeviceStats","networkQuality.reportClientStats","notificationRules.setDeviceMuted","osdManager.clearSlotBinding","osdManager.copyDeviceConfiguration","osdManager.getDeviceOsd","osdManager.getSourceCatalog","osdManager.previewSlot","osdManager.renderDevice","osdManager.setSlotBinding","pipelineExecutor.runPipeline","pipelineExecutor.runPipelineBatch","pipelineOrchestrator.assignAudio","pipelineOrchestrator.assignPipeline","pipelineOrchestrator.getAudioAssignment","pipelineOrchestrator.getCameraMetrics","pipelineOrchestrator.getCameraSettings","pipelineOrchestrator.getCameraStatus","pipelineOrchestrator.getCameraStatuses","pipelineOrchestrator.getCameraStepOverrides","pipelineOrchestrator.getCameraSwitches","pipelineOrchestrator.getPipelineAssignment","pipelineOrchestrator.getPipelineDevicePin","pipelineOrchestrator.resolvePipeline","pipelineOrchestrator.setCameraPipelineForAgent","pipelineOrchestrator.setCameraStepOverride","pipelineOrchestrator.setCameraStepToggle","pipelineOrchestrator.setCameraSwitch","pipelineOrchestrator.setPipelineDevicePin","pipelineOrchestrator.unassignAudio","pipelineOrchestrator.unassignPipeline","pipelineRunner.attachCamera","pipelineRunner.detachCamera","pipelineRunner.getCameraMetrics","pipelineRunner.reportMotion","pipelineRunner.runDetailSubtree","pipelineRunner.runStatelessStep","plateGallery.getPlateByTrack","plateGallery.listPlates","recording.deleteFootprint","recording.getAvailability","recording.getDaysWithRecordings","recording.getDeviceConfig","recording.getPlaybackManifest","recording.listOpsLog","recording.locateSegment","recording.pruneFootage","recording.readGopBytes","recording.readSegmentBytes","recording.relocateFootage","recording.renderClip","recording.renderGif","recording.rescanStorage","recording.setDeviceConfig","recording.startStorageMigrationMove","recordingExport.createExport","recordingExport.listExports","streamBroker.acquireEgressTranscode","streamBroker.assignProfile","streamBroker.getDeviceAudioMute","streamBroker.getStreamWithCodec","streamBroker.produceEventMedia","streamBroker.publishCameraStream","streamBroker.renderPreBufferClip","streamBroker.restartProfile","streamBroker.retractCameraStream","streamBroker.setDeviceAudioMute","streamBroker.unassignProfile"],vP=Object.freeze({broker:"broker","device-export":"device-export",llm:"ai","mesh-network":"mesh","mqtt-broker":"broker","network-access":"ingress","smtp-provider":"email"}),hP=["broker","device-export","llm","mesh-network","mqtt-broker","network-access","smtp-provider"];function SP(e){const t=[];for(const[n,a]of Object.entries(vP))a===e&&t.push(n);return t}var IP={"air-quality-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},"alarm-panel":{durability:"restored",volatileFields:["lastChangedAt"]},"ambient-light-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},"audio-metrics":{durability:"session",volatileFields:[]},"automation-control":{durability:"session",volatileFields:[]},battery:{durability:"restored",volatileFields:["lastUpdated"]},binary:{durability:"restored",volatileFields:["lastChangedAt"]},brightness:{durability:"session",volatileFields:[]},"camera-streams":{durability:"session",volatileFields:[]},"carbon-monoxide":{durability:"restored",volatileFields:["lastChangedAt"]},"climate-control":{durability:"session",volatileFields:[]},color:{durability:"session",volatileFields:[]},connectivity:{durability:"restored",volatileFields:["lastChangedAt"]},consumables:{durability:"session",volatileFields:[]},contact:{durability:"restored",volatileFields:["lastChangedAt"]},control:{durability:"session",volatileFields:[]},cover:{durability:"restored",volatileFields:["lastChangedAt"]},"day-night":{durability:"restored",volatileFields:["lastFetchedAt"]},"device-discovery":{durability:"session",volatileFields:[]},"device-status":{durability:"restored",volatileFields:["lastChangedAt"]},doorbell:{durability:"restored",volatileFields:[]},"enum-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},"event-emitter":{durability:"session",volatileFields:[]},"fan-control":{durability:"session",volatileFields:[]},"feature-probe":{durability:"session",volatileFields:[]},flood:{durability:"restored",volatileFields:["lastChangedAt"]},gas:{durability:"restored",volatileFields:["lastChangedAt"]},humidifier:{durability:"session",volatileFields:[]},"humidity-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},image:{durability:"session",volatileFields:[]},"image-settings":{durability:"restored",volatileFields:["lastFetchedAt"]},intercom:{durability:"session",volatileFields:[]},"lawn-mower-control":{durability:"session",volatileFields:[]},"lock-control":{durability:"restored",volatileFields:["lastChangedAt"]},"media-player":{durability:"session",volatileFields:[]},motion:{durability:"session",volatileFields:[]},"motion-trigger":{durability:"session",volatileFields:[]},"motion-zones":{durability:"restored",volatileFields:["lastFetchedAt"]},"native-object-detection":{durability:"restored",volatileFields:["lastFetchedAt"]},notifier:{durability:"session",volatileFields:[]},"numeric-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},"pet-feeder":{durability:"session",volatileFields:[]},"power-meter":{durability:"restored",volatileFields:["lastFetchedAt"]},presence:{durability:"restored",volatileFields:["lastChangedAt"]},"pressure-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},"privacy-mask":{durability:"restored",volatileFields:["lastFetchedAt"]},"ptz-autotrack":{durability:"session",volatileFields:[]},"scene-monitor":{durability:"session",volatileFields:[]},"script-runner":{durability:"session",volatileFields:[]},smoke:{durability:"restored",volatileFields:["lastChangedAt"]},"stream-catalog":{durability:"restored",volatileFields:["lastFetchedAt"]},"stream-params":{durability:"restored",volatileFields:["lastFetchedAt"]},switch:{durability:"restored",volatileFields:["lastChangedAt"]},tamper:{durability:"restored",volatileFields:["lastChangedAt"]},"temperature-sensor":{durability:"restored",volatileFields:["lastFetchedAt"]},update:{durability:"session",volatileFields:[]},"vacuum-control":{durability:"session",volatileFields:[]},valve:{durability:"session",volatileFields:[]},vibration:{durability:"restored",volatileFields:["lastChangedAt"]},"water-heater":{durability:"session",volatileFields:[]},weather:{durability:"session",volatileFields:[]},"zone-analytics":{durability:"session",volatileFields:[]},"zone-rules":{durability:"restored",volatileFields:[]},zones:{durability:"restored",volatileFields:[]}};function jP(e){return IP[e]??kP}var kP={durability:"session",volatileFields:[]};function PP(e){return"restored"===jP(e).durability}var MP=["air-quality-sensor","alarm-panel","ambient-light-sensor","battery","binary","carbon-monoxide","connectivity","contact","cover","day-night","device-status","doorbell","enum-sensor","flood","gas","humidity-sensor","image-settings","lock-control","motion-zones","native-object-detection","numeric-sensor","power-meter","presence","pressure-sensor","privacy-mask","smoke","stream-catalog","stream-params","switch","tamper","temperature-sensor","vibration","zone-rules","zones"],wP=[{id:"camera-viewer",label:"Camera viewer",description:"Read-only over every device \u2014 live streams, recordings, motion events, battery state. Pair with a `device` grant (an `ids` / `types` / `locations` selector) 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:"full-management",label:"Full management",description:"Complete device + system control short of admin: view/create/delete on every device and every system capability. Use for a trusted operator who manages the whole deployment but should not hold the admin bypass.",rows:[{type:"category",target:"device",access:["view","create","delete"]},{type:"category",target:"system",access:["view","create","delete"]}]},{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 OP(e){const t=e;function n(e,n,a,r,i){const o=t[e]?.[n];if(!o)throw new Error(`SystemProxy: api has no '${e}.${n}'`);const s=o;return"mutation"===a?s.mutate(r):"subscription"===a?s.subscribe(r,i):s.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),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),cancel:e=>n("llm","cancel","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),resolveModelRef:e=>n("llm","resolveModelRef","mutation",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),copyDeviceConfiguration:e=>n("osdManager","copyDeviceConfiguration","mutation",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:{pauseForStorageMigration:e=>n("pipelineOrchestrator","pauseForStorageMigration","mutation",e),resumeForStorageMigration:e=>n("pipelineOrchestrator","resumeForStorageMigration","mutation",e),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),pauseForStorageMigration:e=>n("recording","pauseForStorageMigration","mutation",e),resumeForStorageMigration:e=>n("recording","resumeForStorageMigration","mutation",e),refreshStorageLocationsForMigration:e=>n("recording","refreshStorageLocationsForMigration","mutation",e),startStorageMigrationMove:e=>n("recording","startStorageMigrationMove","mutation",e),getStorageMigrationMoveStatus:e=>n("recording","getStorageMigrationMoveStatus","query",e),cancelStorageMigrationMove:e=>n("recording","cancelStorageMigrationMove","mutation",e),relocateFootage:e=>n("recording","relocateFootage","mutation",e),listRelocateJobs:e=>n("recording","listRelocateJobs","query",e),cancelRelocateJob:e=>n("recording","cancelRelocateJob","mutation",e),planStorageRebalance:e=>n("recording","planStorageRebalance","query",e),startStorageRebalance:e=>n("recording","startStorageRebalance","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),readExportBytes:e=>n("recordingExport","readExportBytes","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)},storageMigration:{plan:e=>n("storageMigration","plan","query",e),start:e=>n("storageMigration","start","mutation",e),status:e=>n("storageMigration","status","query",e),cancel:e=>n("storageMigration","cancel","mutation",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),getSiteLocation:e=>n("system","getSiteLocation","query",e),setSiteLocation:e=>n("system","setSiteLocation","mutation",e),detectSiteLocation:e=>n("system","detectSiteLocation","mutation",e)},terminalSession:{listProfiles:e=>n("terminalSession","listProfiles","query",e),listInstances:e=>n("terminalSession","listInstances","query",e),createInstance:e=>n("terminalSession","createInstance","mutation",e),deleteInstance:e=>n("terminalSession","deleteInstance","mutation",e),setInstanceEnabled:e=>n("terminalSession","setInstanceEnabled","mutation",e),listLegacyCameras:e=>n("terminalSession","listLegacyCameras","query",e),adoptLegacyMonitor:e=>n("terminalSession","adoptLegacyMonitor","mutation",e),listSessions:e=>n("terminalSession","listSessions","query",e),openSession:e=>n("terminalSession","openSession","mutation",e),resize:e=>n("terminalSession","resize","mutation",e),pullOutput:e=>n("terminalSession","pullOutput","mutation",e),writeInput:e=>n("terminalSession","writeInput","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 CP="audio-";function AP(e){return e.startsWith(CP)?e.slice(6):e}var NP=-96,EP=0,xP=3,TP=-55,DP=1,RP=100,FP=1,BP=300,LP={hitPercent:60,samplingSeconds:10};function _P(e){return e??LP}function qP(e){return void 0===e?null:void 0!==e.labels&&e.labels.length>0?"label":void 0!==e.dbThreshold?"level":null}function UP(e){return void 0!==e&&(void 0===e.dbThreshold&&(void 0===e.labels||0===e.labels.length))}function VP(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function HP(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function $P(e,t){const n=_P(e),a=HP(t,"labels")?t.labels:n.labels,r=HP(t,"dbThreshold")?t.dbThreshold:n.dbThreshold,i=void 0!==a&&a.length>0,o=t.mode??(HP(t,"labels")&&i?"label":HP(t,"dbThreshold")&&void 0!==r?"level":i?"label":void 0!==r?"level":null),s="label"===o&&i?a:void 0,c="level"!==o?void 0:r??("level"===t.mode?-55:void 0);return Object.assign({},void 0!==s?{labels:[...s]}:{},void 0!==c?{dbThreshold:VP(c,NP,0)}:{},{hitPercent:VP(t.hitPercent??n.hitPercent,1,100),samplingSeconds:VP(t.samplingSeconds??n.samplingSeconds,1,300)})}var KP="\ud83d\udd08",WP=new Map(vd.flatMap(e=>void 0===e.icon?[]:[[e.id,e.icon]]));function GP(e,t){const n=e?.audioKinds??[],a=n.length>0?n.map(e=>{const t=AP(e.kind);return{value:t,label:e.label,icon:WP.get(t)??KP,unknown:!1}}):vd.map(e=>({value:e.id,label:e.name,icon:e.icon??KP,unknown:!1})),r=new Set(a.map(e=>e.value)),i=[];for(const e of t??[]){const t=AP(e);r.has(t)||i.includes(t)||(i.push(t),a.push({value:t,label:t,icon:KP,unknown:!0}))}return{choices:a,unknownLabels:i}}function ZP(e,t){const n=AP(t);return(e??[]).some(e=>AP(e)===n)}function YP(e,t){const n=AP(t),a=e??[];if(ZP(a,n)){const e=a.filter(e=>AP(e)!==n);return e.length>0?e:void 0}return[...a,n]}var JP=new Set(["classes","classesExclude"]),XP=new Set(["sensorKinds"]),QP=new Set(["occupancy"]);function eM(e){return{value:e.kind,label:e.label}}function tM(e){const t=[],n=new Map,a=(e,a)=>{const r=n.get(e);if(void 0!==r)return r;const i={fallbackLabel:a,options:[]};return n.set(e,i),t.push(e),i};for(const t of e){const e=t.parentKind??t.kind,n=a(e,null===t.parentKind?t.label:e);n.options.push(eM(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 nM(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,[eM(a)]),t.push(e)):r.push(eM(a))}return t.flatMap(e=>{const t=n.get(e);return void 0===t?[]:[{key:e,fallbackLabel:e,options:t}]})}function aM(e,t){if(!t)return null;if(JP.has(e)){const e=tM(t.videoClasses);return t.audioKinds.length>0&&e.push({key:"audio",fallbackLabel:"Audio",options:t.audioKinds.map(eM)}),e.length>0?{groups:e}:null}if(QP.has(e)){const e=t.videoClasses.filter(e=>null===e.parentKind).map(eM);return e.length>0?{groups:[{key:"macro",fallbackLabel:"Classes",options:e}]}:null}if(XP.has(e)){const e=nM(t.labels);return e.length>0?{groups:e}:null}return null}function rM(e){const t=new Set;for(const n of e.groups)for(const e of n.options)t.add(e.value);return t}var iM=["devices","classes"],oM=new Set(iM);function sM(e){return oM.has(e)}function cM(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 dM=[[/ /g," "],[/&/g,"&"],[/</g,"<"],[/>/g,">"],[/"/g,"\""],[/'/g,"'"]];function lM(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 dM)t=t.replace(e,n);return t.replace(/\n{3,}/g,"\n\n").trim()}var uM=[[/&/g,"&"],[/</g,"<"],[/>/g,">"],[/"/g,"""],[/'/g,"'"]];function mM(e){let t=e;for(const[e,n]of uM)t=t.replace(e,n);return t}function pM(e){return mM(e).replace(/\n/g,"<br>")}function bM(e){return mM(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 gM={text:["text","markdown","html"],markdown:["markdown","html","text"],html:["html","text","markdown"]};function zM(e,t){for(const n of gM[e]??gM.text)if(t.includes(n))return n;return t[0]??"text"}function fM(e,t,n){if(t===n)return e;if("text"===n){if("markdown"===t)return cM(e);if("html"===t)return lM(e)}if("html"===n){if("text"===t)return pM(e);if("markdown"===t)return bM(e)}if("markdown"===n){if("text"===t)return e;if("html"===t)return lM(e)}return e}function yM(e){return Object.assign({id:e.id,ordinal:e.ordinal},e.flags?{flags:e.flags}:{},e.requires?{requires:e.requires}:{})}function vM(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 yM(n)}const n=e.filter(e=>null!==e.ordinal);if(0===n.length)return yM(e[0]);const a=t.priority;return yM([...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 hM(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 SM(e,t){const n=[],a=t.format,r=zM(a,e.format);r!==a&&n.push("format");const i=fM(t.body,a,r),o=vM(e.levels,t),c=t.attachments??[],l=[];for(const t of c){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,s));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 f=null;void 0!==t.ttl&&(e.ttl?f=t.ttl:n.push("ttl"));const y=t.tag??null,v=hM(i,e.bodyMaxLen),h=v.length>1,S={level:o?.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:o,attachments:l,actions:b,clickUrl:g,sound:z,ttl:f,tag:y,bodyParts:v,renderedAs:S})}var IM={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function jM(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,i;for(const t of e)"weekday"===t.type?a=t.value:"hour"===t.type?r=Number(t.value):"minute"===t.type&&(i=Number(t.value));const o=void 0!==a?IM[a]:void 0;if(void 0!==o&&void 0!==r&&void 0!==i)return{day:o,minute:60*r+i}}catch{}return{day:n.getDay(),minute:60*n.getHours()+n.getMinutes()}}function kM(e,t){if(void 0===e)return!0;const{day:n,minute:a}=jM(t,e.timezone),r=(n+6)%7;let i=!1;for(const t of e.windows)if(t.startMinute<=t.endMinute){if(t.days.includes(n)&&a>=t.startMinute&&a<t.endMinute){i=!0;break}}else if(t.days.includes(n)&&a>=t.startMinute||t.days.includes(r)&&a<t.endMinute){i=!0;break}return!0===e.invert?!i:i}var PM=z.z.object({title:z.z.string().max(500).optional(),body:z.z.string().max(2e3).optional()}),MM=z.z.string().min(1).max(200),wM=z.z.array(z.z.number()).min(1),OM=z.z.number().int().min(2).max(3600),CM=z.z.number().int().min(1).max(60),AM=z.z.array(kl).min(1),NM=z.z.number().int().min(1).max(5),EM=.1,xM=z.z.number().min(EM).max(3600),TM=z.z.number().min(0).max(60),DM=z.z.string().max(200),RM=z.z.enum(["image","gif"]),FM=z.z.array(z.z.string().min(1).max(40)).max(20),BM=z.z.object({name:MM,enabled:z.z.boolean().default(!0),deviceIds:wM,schedule:ll,cadenceSec:OM.default(15),framerate:CM.default(10),denseCadenceSec:xM.optional(),minDwellSec:TM.optional(),targets:AM,template:PM.optional(),previewText:DM.optional(),previewMode:RM.default("image"),reportClasses:FM.optional(),priority:NM.default(3)}),LM="Timelapse {{camera}}",_M=z.z.object({name:MM.optional(),enabled:z.z.boolean().optional(),deviceIds:wM.optional(),schedule:ll.optional(),cadenceSec:OM.optional(),framerate:CM.optional(),denseCadenceSec:xM.optional(),minDwellSec:TM.optional(),targets:AM.optional(),template:PM.nullable().optional(),previewText:DM.optional(),previewMode:RM.optional(),reportClasses:FM.optional(),priority:NM.optional()}),qM=BM.extend({id:z.z.string(),ownerUserId:z.z.string().optional(),lastGeneratedAt:z.z.number().optional(),generatedByDevice:z.z.record(z.z.string(),z.z.number()).optional(),createdBy:z.z.string(),createdAt:z.z.number(),updatedAt:z.z.number()});function UM(e){const t=e.denseCadenceSec;if(void 0!==t&&t>=e.cadenceSec)throw new Error(`denseCadenceSec (${t}s) must be strictly smaller than cadenceSec (${e.cadenceSec}s) \u2014 a dense cadence that is not denser renders a uniform timelapse`)}function VM(e,t){const n=e.generatedByDevice;return void 0!==n?n[String(t)]??0:e.lastGeneratedAt??0}var HM="detail-crop",$M="detailCropPaddingRatio",KM="detailCropSquare",WM=z.z.object({paddingRatio:z.z.number().min(0).max(4),square:z.z.boolean()}),GM={paddingRatio:.15,square:!1};function ZM(e){const t=WM.shape.paddingRatio.safeParse(e[$M]),n=WM.shape.square.safeParse(e[KM]);return{paddingRatio:t.success?t.data:GM.paddingRatio,square:n.success?n.data:GM.square}}function YM(e){return"object"==typeof e&&null!==e&&"key"in e}function JM(e){if(null===e)return GM;const t={};for(const n of e.sections)for(const e of n.fields)YM(e)&&"string"==typeof e.key&&("detailCropPaddingRatio"!==e.key&&"detailCropSquare"!==e.key||(t[e.key]=e.value));return ZM(t)}var XM={min:0,max:1,step:.05,default:GM.paddingRatio};function QM(e,t,n,a){const r=a.paddingRatio*e.w,i=a.paddingRatio*e.h,o={x:e.x-r,y:e.y-i,w:e.w+2*r,h:e.h+2*i};return a.square?nw(ew(o,t,n),t,n):tw(o,t,n)}function ew(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 tw(e,t,n){const a=Math.max(0,e.x),r=Math.max(0,e.y),i=Math.min(t,e.x+e.w),o=Math.min(n,e.y+e.h);return{x:a,y:r,w:Math.max(0,i-a),h:Math.max(0,o-r)}}function nw(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 aw="native-lease",rw="nativeLeaseHoldFrames",iw="nativeLeaseBudgetMb",ow="nativeLeaseActivityMs",sw="nativeLeaseAdmission",cw="nativeTileBudgetMb",dw=z.z.enum(["all","inferred"]),lw=z.z.object({holdFrames:z.z.number().int().min(1).max(64),budgetMb:z.z.number().int().min(0).max(4096),activityMs:z.z.number().int().min(0).max(12e4),admission:dw,tileBudgetMb:z.z.number().int().min(0).max(1024)}),uw={holdFrames:8,budgetMb:1024,activityMs:15e3,tileBudgetMb:64,admission:"inferred"},mw={min:1,max:64,step:1,default:uw.holdFrames},pw={min:0,max:4096,step:64,default:uw.budgetMb},bw={min:0,max:12e4,step:1e3,default:uw.activityMs},gw={min:0,max:1024,step:16,default:uw.tileBudgetMb},zw={options:[{value:"all",label:"Every delivered frame"},{value:"inferred",label:"Only frames sent to inference"}],default:uw.admission};function fw(e,t){const n=lw.shape[e].safeParse(t);return n.success?n.data===uw[e]?null:n.data:null}function yw(e){const t=dw.safeParse(e);return t.success?t.data===uw.admission?null:t.data:null}function vw(e){const t=fw("holdFrames",e[rw]),n=fw("budgetMb",e[iw]),a=fw("activityMs",e[ow]),r=yw(e[sw]),i=fw("tileBudgetMb",e[cw]);return Object.assign({},null===t?{}:{holdFrames:t},null===n?{}:{budgetMb:n},null===a?{}:{activityMs:a},null===r?{}:{admission:r},null===i?{}:{tileBudgetMb:i})}function hw(e){return"object"==typeof e&&null!==e&&"key"in e}var Sw=[rw,iw,ow,sw,cw];function Iw(e){if(null===e)return{};const t={};for(const n of e.sections)for(const e of n.fields)hw(e)&&"string"==typeof e.key&&Sw.includes(e.key)&&(t[e.key]=e.value);return vw(t)}var jw=[{id:"viewer",label:"View",description:"Watch live and recorded video, browse events and read device state. Cannot change anything.",deviceAccess:["view"],systemAccess:["view"]},{id:"operator",label:"Operate",description:"Everything View does, plus acting on a device: PTZ, lights, sirens, locks, and snoozing notifications. Cannot delete.",deviceAccess:["view","create"],systemAccess:["view","create"]},{id:"manager",label:"Full management",description:"Everything Operate does, plus deleting devices, recordings and events. Short of admin \u2014 no user or cluster administration.",deviceAccess:["view","create","delete"],systemAccess:["view","create","delete"]}];function kw(e){const t=jw.find(t=>t.id===e);if(!t)throw new Error(`Unknown access role '${e}'`);return t}function Pw(e){const t=kw(e.roleId);return[{type:"device",selector:e.selector,access:[...t.deviceAccess],includeLinked:e.includeLinked},{type:"category",target:"system",access:[...t.systemAccess]}]}function Mw(e,t){if(e.length!==t.length)return!1;const n=new Set(e);return t.every(e=>n.has(e))}function ww(e){if(2!==e.length)return null;const t=e.filter(e=>"device"===e.type),n=e.filter(e=>"category"===e.type&&"system"===e.target);if(1!==t.length||1!==n.length)return null;const[a]=t,[r]=n;if(void 0===a||void 0===r)return null;if("device"!==a.type)return null;if(void 0===a.includeLinked)return null;const i=jw.find(e=>Mw(e.deviceAccess,a.access)&&Mw(e.systemAccess,r.access));return i?{roleId:i.id,selector:a.selector,includeLinked:a.includeLinked}:null}var Ow=8;function Cw(e,t){switch(e.kind){case"all":return!0;case"ids":return e.ids.includes(t.id);case"types":return e.types.some(e=>String(e)===t.type);case"locations":return null!==t.location&&e.locations.includes(t.location)}}function Aw(e,t){return e.some(e=>"category"===e.type&&"device"===e.target&&e.access.includes(t))}function Nw(e,t){return e.filter(e=>"device"===e.type&&e.access.includes(t))}function Ew(e,t){return e.includeLinked??"view"===t}function xw(e,t){const n=[];let a=e;for(let e=0;e<Ow;e++){const e=null===a?null:t.get(a)?.parentDeviceId??null;if(null===e||e===a)break;n.push(e),a=e}return n}function Tw(e,t,n){if(Aw(e,n))return new Set(t.map(e=>e.id));const a=new Map;for(const e of t)a.set(e.id,e);const r=Nw(e,n),i=new Set;for(const e of t)for(const t of r){if(Cw(t.selector,e)){i.add(e.id);break}if(Ew(t,n)&&xw(e.id,a).some(e=>{const n=a.get(e);return void 0!==n&&Cw(t.selector,n)})){i.add(e.id);break}}return i}function Dw(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){const e=uu.safeParse(n);e.success&&t.push(e.data)}return t}var Rw=["view","create","delete"];function Fw(e,t,n,a){return a?{all:!0,deviceCount:t.length}:{all:Aw(e,n)||Nw(e,n).some(e=>"all"===e.selector.kind),deviceCount:Tw(e,t,n).size}}function Bw(e){const t=[];for(const n of e)"capability"===n.type&&t.push({name:n.target,access:n.access});return t}function Lw(e){const t=[];for(const n of e)"addon"===n.type&&t.push({name:n.target,access:n.access});return t}function _w(e,t,n){const a={view:Fw(e,t,"view",n),create:Fw(e,t,"create",n),delete:Fw(e,t,"delete",n)},r=n?Rw:Rw.filter(t=>e.some(e=>"category"===e.type&&"system"===e.target&&e.access.includes(t)));return{isAdmin:n,allDevicesViewable:a.view.all,viewableDeviceCount:a.view.deviceCount,device:a,system:r,capabilities:Bw(e),addons:Lw(e)}}var qw={camera:{type:"camera",label:"Camera",icon:"camera"}},Uw={"\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}},Vw=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 Hw(e){return Object.hasOwn(Uw,e)?Uw[e]:void 0}function $w(e){return Hw(e)?.dimension}function Kw(e,t){return e*t.factor+t.offset}function Ww(e,t){return(e-t.offset)/t.factor}function Gw(e,t,n){if(t===n)return e;const a=Hw(t);if(!a)throw new Vw(t,n,"unknown-from");const r=Hw(n);if(!r)throw new Vw(t,n,"unknown-to");if(a.dimension!==r.dimension)throw new Vw(t,n,"cross-dimension");return Ww(Kw(e,a),r)}function Zw(e,t,n){if(t===n)return e;const a=Hw(t);if(!a)return;const r=Hw(n);return r&&a.dimension===r.dimension?Ww(Kw(e,a),r):void 0}function Yw(e,t){if(e===t)return!0;const n=$w(e);return void 0!==n&&n===$w(t)}function Jw(e){const t=[];for(const[n,a]of Object.entries(Uw))a.dimension===e&&t.push(n);return t}function Xw(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),i=Array.from({length:a+1},()=>0);for(let o=1;o<=n;o++){i[0]=o;let n=r[0]??0;for(let s=1;s<=a;s++){const a=r[s]??0,c=i[s-1]??0,d=e.charCodeAt(o-1)===t.charCodeAt(s-1)?0:1;i[s]=Math.min(a+1,c+1,n+d),n=a}for(let e=0;e<=a;e++)r[e]=i[e]??0}return r[a]??0}function Qw(e,t){const n=e.trim().toLowerCase(),a=t.trim().toLowerCase();return n===a?1:0===n.length||0===a.length?0:1-Xw(n,a)/Math.max(n.length,a.length)}function eO(e,t,n=.8){let a=null,r=0;for(const i of t){const t=Qw(e,i);t>=n&&t>r&&(a=i,r=t)}return a}var tO="addon:";function nO(e){return e.startsWith(tO)?e.slice(6):e}function aO(e,t){return nO(e)===nO(t)}function rO(e,t){if(e.length!==t.length)return 0;let n=0,a=0,r=0;for(let i=0;i<e.length;i++)n+=e[i]*t[i],a+=e[i]*e[i],r+=t[i]*t[i];const i=Math.sqrt(a)*Math.sqrt(r);return 0===i?0:n/i}var iO=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(),oO(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 oO(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 sO(e,t){return`https://huggingface.co/${e}/resolve/main/${t}`}var cO=[/^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 dO(e){return cO.some(t=>t.test(e))}function lO(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()))dO(e)&&(t.searchParams.set(e,"***"),n=!0);return n?t.toString():e}catch{return e}}function uO(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 i=0;i<t;i++){const o=(i+.5)/t,s=(a+.5)/n;for(const n of e)if(o>=n.x&&o<=n.x+n.w&&s>=n.y&&s<=n.y+n.h){r[a*t+i]=!0;break}}return r}function mO(e,t,n,a){if(t<=0||n<=0||a<=0)return[];const r=t*n,i=Array.from({length:r}).fill(!1),o=Math.min(e.length,r);for(let t=0;t<o;t++)i[t]=!0===e[t];const s=[],c=[];for(let e=0;e<=n;e++){const a=[];if(e<n){let n=-1;for(let r=0;r<=t;r++){const o=r<t&&!0===i[e*t+r];o&&-1===n?n=r:o||-1===n||(a.push({colStart:n,colEnd:r-1}),n=-1)}}const r=new Set,o=[];for(const t of c){const n=a.findIndex(e=>e.colStart===t.colStart&&e.colEnd===t.colEnd);n>=0?(o.push(t),r.add(n)):s.push(Object.assign({},t,{rowEnd:e-1}))}for(let t=0;t<a.length;t++)if(!r.has(t)){const n=a[t];o.push({colStart:n.colStart,colEnd:n.colEnd,rowStart:e})}c.length=0;for(const e of o)c.push(e)}if(0===s.length)return[];const d=s.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 pO=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 bO(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:gO(performance.now()-n),ok:!0}}catch(e){return{output:void 0,durationMs:gO(performance.now()-n),ok:!1,error:(0,g.t)(e)}}var a,r}function gO(e){return Math.round(100*e)/100}var zO={cpu:"onnx",coreml:"onnx",cuda:"onnx",tensorrt:"onnx","onnx-py":"onnx",pytorch:"pt",openvino:"openvino"},fO={openvino:"openvino",edgetpu:"tflite",coreml:"coreml",onnx:"onnx",cpu:"onnx",cuda:"onnx"};function yO(e){return fO[e]??"onnx"}var vO={onnx:"onnx",coreml:"coreml",openvino:"openvino",tflite:"tflite",pytorch:"pt"},hO={coreml:"coreml_inference.py",pytorch:"pytorch_inference.py",openvino:"openvino_inference.py"};function SO(e,t){return"node"===e?"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pytorch","onnx-py":"onnx",cpu:"onnx"}[t]??t}function IO(e,t){return"node"===e?zO[t]??"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pt","onnx-py":"onnx",cpu:"onnx"}[t]??"onnx"}function jO(e,t){return e&&"auto"!==e?SO(e,t??"cpu"):"auto"}function kO(e){return zO[e]??"onnx"}function PO(e){return vO[e]}function MO(e){return hO[e]}function wO(e){return"coreml"===e||"pytorch"===e||"openvino"===e}function OO(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 CO(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 AO(e){return Math.floor(Buffer.from(e,"base64").byteLength/4)}function NO(e,t,n,a,r){if(0===n.length||0===t.length)return{passed:e,excluded:[]};const i=n.filter(e=>!1!==e.enabled),o=i.filter(e=>"include"===e.mode),s=i.filter(e=>"exclude"===e.mode),c=o.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),i=o.some(t=>EO(t,e,n,d)),m=s.some(t=>EO(t,e,n,d));c?i&&!m?l.push(t):u.push(t):m?u.push(t):l.push(t)}return{passed:l,excluded:u}}function EO(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&&xO(t,e.polygon))return!0}return!1}function xO(e,t){if(t.length<3)return!1;let n=!1;const{x:a,y:r}=e;for(let e=0,i=t.length-1;e<t.length;i=e++){const o=t[e],s=t[i];o.y>r!=s.y>r&&a<(s.x-o.x)*(r-o.y)/(s.y-o.y||Number.EPSILON)+o.x&&(n=!n)}return n}function TO(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 DO={value:"auto",label:"Auto"},RO={value:"cpu",label:"CPU"},FO={value:"usb",label:"Coral USB"},BO=[{id:"onnx",supports:()=>!0,devices:e=>{if(!e)return[RO];const t=[RO];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[DO];const t=[DO,RO];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"},RO),n},defaultDevice:"all"},{id:"edgetpu",supports:e=>null!=e?.coral,devices:()=>[FO],defaultDevice:"usb"}];function LO(e){const t=BO.find(t=>t.id===e);if(!t)throw new Error(`Unknown runtime: ${e}`);return t}function _O(e){return BO.filter(t=>t.supports(e)).map(e=>e.id)}function qO(e,t){return LO(e).devices(t)}function UO(e){return LO(e).defaultDevice}function VO(e){return"edgetpu"===e?"tflite":PO(e)}function HO(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 $O={cuda:"gpu",edgetpu:"usb",coreml:"all",cpu:"cpu"};function KO(e,t,n,a){return{key:"cpu"===e?"cpu":`${e}:${t}`,backend:e,device:t,format:n,runtime:"python",score:a,available:!0}}function WO(e){const{scores:t}=HO(e),n=[];for(const a of t){if("openvino"===a.backend){"intel-npu"===e.npu?.type&&n.push(KO("openvino","npu",a.format,a.score+2)),"intel"===e.gpu?.type&&n.push(KO("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(KO("edgetpu",t,a.format,a.score))}continue}const t=$O[a.backend]??a.backend;n.push(KO(a.backend,t,a.format,a.score))}return n}},1054,[120,410,1055,1056,1136,1138,1139,1057]);
|
|
2365
2365
|
__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.UpdateAvailable="update.available",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.PipelineNodeInferenceUnavailable="pipeline.node-inference-unavailable",n.PipelineDetectionBlind="pipeline.detection-blind",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})({})},1055,[]);
|
|
2366
|
-
__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 V}}),Object.defineProperty(o,"A",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(o,"B",{enumerable:!0,get:function(){return re}}),Object.defineProperty(o,"C",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(o,"Ct",{enumerable:!0,get:function(){return u}}),Object.defineProperty(o,"D",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(o,"Dt",{enumerable:!0,get:function(){return v}}),Object.defineProperty(o,"E",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(o,"Et",{enumerable:!0,get:function(){return m}}),Object.defineProperty(o,"F",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(o,"G",{enumerable:!0,get:function(){return te}}),Object.defineProperty(o,"H",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(o,"I",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(o,"J",{enumerable:!0,get:function(){return E}}),Object.defineProperty(o,"K",{enumerable:!0,get:function(){return N}}),Object.defineProperty(o,"L",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(o,"M",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(o,"N",{enumerable:!0,get:function(){return be}}),Object.defineProperty(o,"O",{enumerable:!0,get:function(){return we}}),Object.defineProperty(o,"Ot",{enumerable:!0,get:function(){return y}}),Object.defineProperty(o,"P",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(o,"Q",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(o,"R",{enumerable:!0,get:function(){return me}}),Object.defineProperty(o,"S",{enumerable:!0,get:function(){return je}}),Object.defineProperty(o,"St",{enumerable:!0,get:function(){return h}}),Object.defineProperty(o,"T",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(o,"Tt",{enumerable:!0,get:function(){return p}}),Object.defineProperty(o,"U",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(o,"V",{enumerable:!0,get:function(){return de}}),Object.defineProperty(o,"W",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(o,"X",{enumerable:!0,get:function(){return x}}),Object.defineProperty(o,"Y",{enumerable:!0,get:function(){return T}}),Object.defineProperty(o,"Z",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(o,"_",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(o,"_t",{enumerable:!0,get:function(){return k}}),Object.defineProperty(o,"a",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(o,"at",{enumerable:!0,get:function(){return U}}),Object.defineProperty(o,"b",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(o,"bt",{enumerable:!0,get:function(){return S}}),Object.defineProperty(o,"c",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(o,"ct",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(o,"d",{enumerable:!0,get:function(){return We}}),Object.defineProperty(o,"dt",{enumerable:!0,get:function(){return B}}),Object.defineProperty(o,"et",{enumerable:!0,get:function(){return W}}),Object.defineProperty(o,"f",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(o,"ft",{enumerable:!0,get:function(){return _}}),Object.defineProperty(o,"g",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(o,"gt",{enumerable:!0,get:function(){return A}}),Object.defineProperty(o,"h",{enumerable:!0,get:function(){return He}}),Object.defineProperty(o,"ht",{enumerable:!0,get:function(){return j}}),Object.defineProperty(o,"i",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(o,"it",{enumerable:!0,get:function(){return F}}),Object.defineProperty(o,"j",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(o,"k",{enumerable:!0,get:function(){return De}}),Object.defineProperty(o,"l",{enumerable:!0,get:function(){return it}}),Object.defineProperty(o,"lt",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(o,"m",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(o,"mt",{enumerable:!0,get:function(){return H}}),Object.defineProperty(o,"n",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(o,"nt",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(o,"o",{enumerable:!0,get:function(){return et}}),Object.defineProperty(o,"ot",{enumerable:!0,get:function(){return G}}),Object.defineProperty(o,"p",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(o,"pt",{enumerable:!0,get:function(){return $}}),Object.defineProperty(o,"q",{enumerable:!0,get:function(){return R}}),Object.defineProperty(o,"r",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(o,"rt",{enumerable:!0,get:function(){return L}}),Object.defineProperty(o,"s",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(o,"st",{enumerable:!0,get:function(){return X}}),Object.defineProperty(o,"t",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(o,"tt",{enumerable:!0,get:function(){return K}}),Object.defineProperty(o,"u",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(o,"ut",{enumerable:!0,get:function(){return J}}),Object.defineProperty(o,"v",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(o,"vt",{enumerable:!0,get:function(){return I}}),Object.defineProperty(o,"w",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(o,"wt",{enumerable:!0,get:function(){return l}}),Object.defineProperty(o,"x",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(o,"xt",{enumerable:!0,get:function(){return z}}),Object.defineProperty(o,"y",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(o,"yt",{enumerable:!0,get:function(){return w}}),Object.defineProperty(o,"z",{enumerable:!0,get:function(){return ue}});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 M(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 k=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?M(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=>O(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 O(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(...O(e.fields));else t.push(...O(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}var ve="session";function be(e){return e.mount?e.mount:!0===e.deviceNative?{kind:"device-native"}:"collection"===e.mode?{kind:"collection"}:{kind:"singleton"}}var fe=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())}),he=c.z.object({id:c.z.string(),label:c.z.string(),icon:c.z.string(),order:c.z.number().optional()}),Se=c.z.object({tabs:c.z.array(he).optional(),sections:c.z.array(fe)}).nullable(),ze={getDeviceSettingsContribution:{input:c.z.object({deviceId:c.z.number()}),output:Se,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:c.z.object({deviceId:c.z.number()}),output:Se,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"}},we={getStatus:{input:c.z.object({deviceId:c.z.number()}),output:c.z.unknown().nullable(),kind:"query",auth:"protected"}};function Pe(e){let t=e.methods;return e.exposesDeviceSettings&&(t=Object.assign({},ze,t)),e.status&&(t=Object.assign({},we,t)),t}function Ce(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 qe(e,t,i){return Object.assign({},Ce(e,t,i),{systemOnly:!0})}function De(e){return{data:e}}function Me(e){return void 0!==e?.deviceConfig}var ke=c.z.object({staticDir:c.z.string()}),Oe=c.z.object({version:c.z.string()}),Ie={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Ce(c.z.void(),ke),getVersion:Ce(c.z.void(),Oe)}},Ae=(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})({}),je=(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})({}),Re=(function(e){return e.ChargingDC="charging-dc",e.ChargingSolar="charging-solar",e.NotCharging="not-charging",e})({}),Ne=(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})({}),Ee=c.z.object({staticDir:c.z.string()}),Te=c.z.object({version:c.z.string()}),xe={name:"viewer-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Ce(c.z.void(),Ee),getVersion:Ce(c.z.void(),Te)}},Fe=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()}),Le=c.z.object({key:c.z.string(),value:c.z.unknown()}),Be=c.z.object({source:c.z.string(),data:c.z.record(c.z.string(),c.z.unknown())}),_e={name:"device-ops",scope:"device",deviceNative:!0,mode:"singleton",methods:{getStreamSources:Ce(c.z.object({deviceId:c.z.number()}),c.z.array(Fe)),getConfigEntries:Ce(c.z.object({deviceId:c.z.number()}),c.z.array(Le)),setConfig:Ce(c.z.object({deviceId:c.z.number(),values:c.z.record(c.z.string(),c.z.unknown())}),c.z.void(),{kind:"mutation"}),runAction:Ce(c.z.object({deviceId:c.z.number(),action:c.z.string().min(1),input:c.z.unknown()}),c.z.unknown(),{kind:"mutation"}),removeDevice:Ce(c.z.object({deviceId:c.z.number()}),c.z.void(),{kind:"mutation"}),getSettingsSchema:Ce(c.z.object({deviceId:c.z.number()}),c.z.unknown().nullable()),getRawState:Ce(c.z.object({deviceId:c.z.number()}),Be.nullable(),{auth:"protected"})}},$e="device.state-changed";function He(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 Ue(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 Ge(e,t,i){const n="function"==typeof(r=e).read&&"function"==typeof r.watch?e:He(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 Ve(e,t,i){const n=e,r=i?.stateSource??He(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:Ge(r,t.deviceId,"air-quality-sensor"),alarmPanel:Ge(r,t.deviceId,"alarm-panel"),ambientLightSensor:Ge(r,t.deviceId,"ambient-light-sensor"),audioMetrics:Ge(r,t.deviceId,"audio-metrics"),automationControl:Ge(r,t.deviceId,"automation-control"),battery:Ge(r,t.deviceId,"battery"),binary:Ge(r,t.deviceId,"binary"),brightness:Ge(r,t.deviceId,"brightness"),cameraStreams:Ge(r,t.deviceId,"camera-streams"),carbonMonoxide:Ge(r,t.deviceId,"carbon-monoxide"),climateControl:Ge(r,t.deviceId,"climate-control"),color:Ge(r,t.deviceId,"color"),connectivity:Ge(r,t.deviceId,"connectivity"),consumables:Ge(r,t.deviceId,"consumables"),contact:Ge(r,t.deviceId,"contact"),control:Ge(r,t.deviceId,"control"),cover:Ge(r,t.deviceId,"cover"),dayNight:Ge(r,t.deviceId,"day-night"),deviceDiscovery:Ge(r,t.deviceId,"device-discovery"),deviceStatus:Ge(r,t.deviceId,"device-status"),doorbell:Ge(r,t.deviceId,"doorbell"),enumSensor:Ge(r,t.deviceId,"enum-sensor"),eventEmitter:Ge(r,t.deviceId,"event-emitter"),fanControl:Ge(r,t.deviceId,"fan-control"),featureProbe:Ge(r,t.deviceId,"feature-probe"),flood:Ge(r,t.deviceId,"flood"),gas:Ge(r,t.deviceId,"gas"),humidifier:Ge(r,t.deviceId,"humidifier"),humiditySensor:Ge(r,t.deviceId,"humidity-sensor"),image:Ge(r,t.deviceId,"image"),imageSettings:Ge(r,t.deviceId,"image-settings"),intercom:Ge(r,t.deviceId,"intercom"),lawnMowerControl:Ge(r,t.deviceId,"lawn-mower-control"),lockControl:Ge(r,t.deviceId,"lock-control"),mediaPlayer:Ge(r,t.deviceId,"media-player"),motion:Ge(r,t.deviceId,"motion"),motionTrigger:Ge(r,t.deviceId,"motion-trigger"),motionZones:Ge(r,t.deviceId,"motion-zones"),nativeObjectDetection:Ge(r,t.deviceId,"native-object-detection"),notifier:Ge(r,t.deviceId,"notifier"),numericSensor:Ge(r,t.deviceId,"numeric-sensor"),petFeeder:Ge(r,t.deviceId,"pet-feeder"),powerMeter:Ge(r,t.deviceId,"power-meter"),presence:Ge(r,t.deviceId,"presence"),pressureSensor:Ge(r,t.deviceId,"pressure-sensor"),privacyMask:Ge(r,t.deviceId,"privacy-mask"),ptzAutotrack:Ge(r,t.deviceId,"ptz-autotrack"),sceneMonitor:Ge(r,t.deviceId,"scene-monitor"),scriptRunner:Ge(r,t.deviceId,"script-runner"),smoke:Ge(r,t.deviceId,"smoke"),streamCatalog:Ge(r,t.deviceId,"stream-catalog"),streamParams:Ge(r,t.deviceId,"stream-params"),switch:Ge(r,t.deviceId,"switch"),tamper:Ge(r,t.deviceId,"tamper"),temperatureSensor:Ge(r,t.deviceId,"temperature-sensor"),update:Ge(r,t.deviceId,"update"),vacuumControl:Ge(r,t.deviceId,"vacuum-control"),valve:Ge(r,t.deviceId,"valve"),vibration:Ge(r,t.deviceId,"vibration"),waterHeater:Ge(r,t.deviceId,"water-heater"),weather:Ge(r,t.deviceId,"weather"),zoneAnalytics:Ge(r,t.deviceId,"zone-analytics"),zoneRules:Ge(r,t.deviceId,"zone-rules"),zones:Ge(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),pauseForStorageMigration:e=>s("pipeline-analytics","pipelineAnalytics","pauseForStorageMigration","mutation",e),resumeForStorageMigration:e=>s("pipeline-analytics","pipelineAnalytics","resumeForStorageMigration","mutation",e),refreshStorageLocationsForMigration:e=>s("pipeline-analytics","pipelineAnalytics","refreshStorageLocationsForMigration","mutation",e),startStorageMigrationMove:e=>s("pipeline-analytics","pipelineAnalytics","startStorageMigrationMove","mutation",e),getStorageMigrationMoveStatus:e=>s("pipeline-analytics","pipelineAnalytics","getStorageMigrationMoveStatus","query",e),cancelStorageMigrationMove:e=>s("pipeline-analytics","pipelineAnalytics","cancelStorageMigrationMove","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),resetScene:e=>s("scene-monitor","sceneMonitor","resetScene","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),getDebugState:e=>s("snapshot","snapshot","getDebugState","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:{listRecentFaces:e=>c("faceGallery","listRecentFaces","query",e),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 Ze=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 Ke(e){return Ze.has(e)}var We=[15e3,6e4,3e5,9e5,18e5,36e5,54e5];function Qe(e){return JSON.parse(e)}function Je(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:Object.assign({},e)}function Ye(e){return Array.isArray(e)?e:[]}function Xe(e,t=""){return"string"==typeof e?e:t}function et(e,t=0){return"number"==typeof e?e:t}function tt(e,t=!1){return"boolean"==typeof e?e:t}function it(e){try{return Je(Qe(e))}catch{return null}}function nt(e){try{const t=Qe(e);return Array.isArray(t)?t:null}catch{return null}}function rt(e){return new Promise(t=>setTimeout(t,Math.max(0,e)))}function ot(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})})}},1056,{"0":1055,"1":1057,"2":2239,"3":1017,"4":2240,"paths":{"2239":"/viewer/camstack/_expo/static/js/web/node-path-7207d1e1ab270b9b9a709a43d1bef8e2.js","2240":"/viewer/camstack/_expo/static/js/web/node-fs-0a94950724205b9741f68a8d82751a5e.js"}});
|
|
2366
|
+
__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 V}}),Object.defineProperty(o,"A",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(o,"B",{enumerable:!0,get:function(){return re}}),Object.defineProperty(o,"C",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(o,"Ct",{enumerable:!0,get:function(){return u}}),Object.defineProperty(o,"D",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(o,"Dt",{enumerable:!0,get:function(){return v}}),Object.defineProperty(o,"E",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(o,"Et",{enumerable:!0,get:function(){return m}}),Object.defineProperty(o,"F",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(o,"G",{enumerable:!0,get:function(){return te}}),Object.defineProperty(o,"H",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(o,"I",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(o,"J",{enumerable:!0,get:function(){return E}}),Object.defineProperty(o,"K",{enumerable:!0,get:function(){return N}}),Object.defineProperty(o,"L",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(o,"M",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(o,"N",{enumerable:!0,get:function(){return be}}),Object.defineProperty(o,"O",{enumerable:!0,get:function(){return we}}),Object.defineProperty(o,"Ot",{enumerable:!0,get:function(){return y}}),Object.defineProperty(o,"P",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(o,"Q",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(o,"R",{enumerable:!0,get:function(){return me}}),Object.defineProperty(o,"S",{enumerable:!0,get:function(){return je}}),Object.defineProperty(o,"St",{enumerable:!0,get:function(){return h}}),Object.defineProperty(o,"T",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(o,"Tt",{enumerable:!0,get:function(){return p}}),Object.defineProperty(o,"U",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(o,"V",{enumerable:!0,get:function(){return de}}),Object.defineProperty(o,"W",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(o,"X",{enumerable:!0,get:function(){return x}}),Object.defineProperty(o,"Y",{enumerable:!0,get:function(){return T}}),Object.defineProperty(o,"Z",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(o,"_",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(o,"_t",{enumerable:!0,get:function(){return k}}),Object.defineProperty(o,"a",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(o,"at",{enumerable:!0,get:function(){return U}}),Object.defineProperty(o,"b",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(o,"bt",{enumerable:!0,get:function(){return S}}),Object.defineProperty(o,"c",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(o,"ct",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(o,"d",{enumerable:!0,get:function(){return We}}),Object.defineProperty(o,"dt",{enumerable:!0,get:function(){return B}}),Object.defineProperty(o,"et",{enumerable:!0,get:function(){return W}}),Object.defineProperty(o,"f",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(o,"ft",{enumerable:!0,get:function(){return _}}),Object.defineProperty(o,"g",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(o,"gt",{enumerable:!0,get:function(){return A}}),Object.defineProperty(o,"h",{enumerable:!0,get:function(){return He}}),Object.defineProperty(o,"ht",{enumerable:!0,get:function(){return j}}),Object.defineProperty(o,"i",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(o,"it",{enumerable:!0,get:function(){return F}}),Object.defineProperty(o,"j",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(o,"k",{enumerable:!0,get:function(){return De}}),Object.defineProperty(o,"l",{enumerable:!0,get:function(){return it}}),Object.defineProperty(o,"lt",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(o,"m",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(o,"mt",{enumerable:!0,get:function(){return H}}),Object.defineProperty(o,"n",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(o,"nt",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(o,"o",{enumerable:!0,get:function(){return et}}),Object.defineProperty(o,"ot",{enumerable:!0,get:function(){return G}}),Object.defineProperty(o,"p",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(o,"pt",{enumerable:!0,get:function(){return $}}),Object.defineProperty(o,"q",{enumerable:!0,get:function(){return R}}),Object.defineProperty(o,"r",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(o,"rt",{enumerable:!0,get:function(){return L}}),Object.defineProperty(o,"s",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(o,"st",{enumerable:!0,get:function(){return X}}),Object.defineProperty(o,"t",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(o,"tt",{enumerable:!0,get:function(){return K}}),Object.defineProperty(o,"u",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(o,"ut",{enumerable:!0,get:function(){return J}}),Object.defineProperty(o,"v",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(o,"vt",{enumerable:!0,get:function(){return I}}),Object.defineProperty(o,"w",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(o,"wt",{enumerable:!0,get:function(){return l}}),Object.defineProperty(o,"x",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(o,"xt",{enumerable:!0,get:function(){return z}}),Object.defineProperty(o,"y",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(o,"yt",{enumerable:!0,get:function(){return w}}),Object.defineProperty(o,"z",{enumerable:!0,get:function(){return ue}});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 M(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 k=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?M(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=>O(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 O(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(...O(e.fields));else t.push(...O(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}var ve="session";function be(e){return e.mount?e.mount:!0===e.deviceNative?{kind:"device-native"}:"collection"===e.mode?{kind:"collection"}:{kind:"singleton"}}var fe=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())}),he=c.z.object({id:c.z.string(),label:c.z.string(),icon:c.z.string(),order:c.z.number().optional()}),Se=c.z.object({tabs:c.z.array(he).optional(),sections:c.z.array(fe)}).nullable(),ze={getDeviceSettingsContribution:{input:c.z.object({deviceId:c.z.number()}),output:Se,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:c.z.object({deviceId:c.z.number()}),output:Se,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"}},we={getStatus:{input:c.z.object({deviceId:c.z.number()}),output:c.z.unknown().nullable(),kind:"query",auth:"protected"}};function Pe(e){let t=e.methods;return e.exposesDeviceSettings&&(t=Object.assign({},ze,t)),e.status&&(t=Object.assign({},we,t)),t}function Ce(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 qe(e,t,i){return Object.assign({},Ce(e,t,i),{systemOnly:!0})}function De(e){return{data:e}}function Me(e){return void 0!==e?.deviceConfig}var ke=c.z.object({staticDir:c.z.string()}),Oe=c.z.object({version:c.z.string()}),Ie={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Ce(c.z.void(),ke),getVersion:Ce(c.z.void(),Oe)}},Ae=(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})({}),je=(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})({}),Re=(function(e){return e.ChargingDC="charging-dc",e.ChargingSolar="charging-solar",e.NotCharging="not-charging",e})({}),Ne=(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})({}),Ee=c.z.object({staticDir:c.z.string()}),Te=c.z.object({version:c.z.string()}),xe={name:"viewer-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:Ce(c.z.void(),Ee),getVersion:Ce(c.z.void(),Te)}},Fe=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()}),Le=c.z.object({key:c.z.string(),value:c.z.unknown()}),Be=c.z.object({source:c.z.string(),data:c.z.record(c.z.string(),c.z.unknown())}),_e={name:"device-ops",scope:"device",deviceNative:!0,mode:"singleton",methods:{getStreamSources:Ce(c.z.object({deviceId:c.z.number()}),c.z.array(Fe)),getConfigEntries:Ce(c.z.object({deviceId:c.z.number()}),c.z.array(Le)),setConfig:Ce(c.z.object({deviceId:c.z.number(),values:c.z.record(c.z.string(),c.z.unknown())}),c.z.void(),{kind:"mutation"}),runAction:Ce(c.z.object({deviceId:c.z.number(),action:c.z.string().min(1),input:c.z.unknown()}),c.z.unknown(),{kind:"mutation"}),removeDevice:Ce(c.z.object({deviceId:c.z.number()}),c.z.void(),{kind:"mutation"}),getSettingsSchema:Ce(c.z.object({deviceId:c.z.number()}),c.z.unknown().nullable()),getRawState:Ce(c.z.object({deviceId:c.z.number()}),Be.nullable(),{auth:"protected"})}},$e="device.state-changed";function He(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 Ue(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 Ge(e,t,i){const n="function"==typeof(r=e).read&&"function"==typeof r.watch?e:He(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 Ve(e,t,i){const n=e,r=i?.stateSource??He(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:Ge(r,t.deviceId,"air-quality-sensor"),alarmPanel:Ge(r,t.deviceId,"alarm-panel"),ambientLightSensor:Ge(r,t.deviceId,"ambient-light-sensor"),audioMetrics:Ge(r,t.deviceId,"audio-metrics"),automationControl:Ge(r,t.deviceId,"automation-control"),battery:Ge(r,t.deviceId,"battery"),binary:Ge(r,t.deviceId,"binary"),brightness:Ge(r,t.deviceId,"brightness"),cameraStreams:Ge(r,t.deviceId,"camera-streams"),carbonMonoxide:Ge(r,t.deviceId,"carbon-monoxide"),climateControl:Ge(r,t.deviceId,"climate-control"),color:Ge(r,t.deviceId,"color"),connectivity:Ge(r,t.deviceId,"connectivity"),consumables:Ge(r,t.deviceId,"consumables"),contact:Ge(r,t.deviceId,"contact"),control:Ge(r,t.deviceId,"control"),cover:Ge(r,t.deviceId,"cover"),dayNight:Ge(r,t.deviceId,"day-night"),deviceDiscovery:Ge(r,t.deviceId,"device-discovery"),deviceStatus:Ge(r,t.deviceId,"device-status"),doorbell:Ge(r,t.deviceId,"doorbell"),enumSensor:Ge(r,t.deviceId,"enum-sensor"),eventEmitter:Ge(r,t.deviceId,"event-emitter"),fanControl:Ge(r,t.deviceId,"fan-control"),featureProbe:Ge(r,t.deviceId,"feature-probe"),flood:Ge(r,t.deviceId,"flood"),gas:Ge(r,t.deviceId,"gas"),humidifier:Ge(r,t.deviceId,"humidifier"),humiditySensor:Ge(r,t.deviceId,"humidity-sensor"),image:Ge(r,t.deviceId,"image"),imageSettings:Ge(r,t.deviceId,"image-settings"),intercom:Ge(r,t.deviceId,"intercom"),lawnMowerControl:Ge(r,t.deviceId,"lawn-mower-control"),lockControl:Ge(r,t.deviceId,"lock-control"),mediaPlayer:Ge(r,t.deviceId,"media-player"),motion:Ge(r,t.deviceId,"motion"),motionTrigger:Ge(r,t.deviceId,"motion-trigger"),motionZones:Ge(r,t.deviceId,"motion-zones"),nativeObjectDetection:Ge(r,t.deviceId,"native-object-detection"),notifier:Ge(r,t.deviceId,"notifier"),numericSensor:Ge(r,t.deviceId,"numeric-sensor"),petFeeder:Ge(r,t.deviceId,"pet-feeder"),powerMeter:Ge(r,t.deviceId,"power-meter"),presence:Ge(r,t.deviceId,"presence"),pressureSensor:Ge(r,t.deviceId,"pressure-sensor"),privacyMask:Ge(r,t.deviceId,"privacy-mask"),ptzAutotrack:Ge(r,t.deviceId,"ptz-autotrack"),sceneMonitor:Ge(r,t.deviceId,"scene-monitor"),scriptRunner:Ge(r,t.deviceId,"script-runner"),smoke:Ge(r,t.deviceId,"smoke"),streamCatalog:Ge(r,t.deviceId,"stream-catalog"),streamParams:Ge(r,t.deviceId,"stream-params"),switch:Ge(r,t.deviceId,"switch"),tamper:Ge(r,t.deviceId,"tamper"),temperatureSensor:Ge(r,t.deviceId,"temperature-sensor"),update:Ge(r,t.deviceId,"update"),vacuumControl:Ge(r,t.deviceId,"vacuum-control"),valve:Ge(r,t.deviceId,"valve"),vibration:Ge(r,t.deviceId,"vibration"),waterHeater:Ge(r,t.deviceId,"water-heater"),weather:Ge(r,t.deviceId,"weather"),zoneAnalytics:Ge(r,t.deviceId,"zone-analytics"),zoneRules:Ge(r,t.deviceId,"zone-rules"),zones:Ge(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),pauseForStorageMigration:e=>s("pipeline-analytics","pipelineAnalytics","pauseForStorageMigration","mutation",e),resumeForStorageMigration:e=>s("pipeline-analytics","pipelineAnalytics","resumeForStorageMigration","mutation",e),refreshStorageLocationsForMigration:e=>s("pipeline-analytics","pipelineAnalytics","refreshStorageLocationsForMigration","mutation",e),startStorageMigrationMove:e=>s("pipeline-analytics","pipelineAnalytics","startStorageMigrationMove","mutation",e),getStorageMigrationMoveStatus:e=>s("pipeline-analytics","pipelineAnalytics","getStorageMigrationMoveStatus","query",e),cancelStorageMigrationMove:e=>s("pipeline-analytics","pipelineAnalytics","cancelStorageMigrationMove","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),resetScene:e=>s("scene-monitor","sceneMonitor","resetScene","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),getDebugState:e=>s("snapshot","snapshot","getDebugState","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:{listRecentFaces:e=>c("faceGallery","listRecentFaces","query",e),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 Ze=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 Ke(e){return Ze.has(e)}var We=[15e3,6e4,3e5,9e5,18e5,36e5,54e5];function Qe(e){return JSON.parse(e)}function Je(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:Object.assign({},e)}function Ye(e){return Array.isArray(e)?e:[]}function Xe(e,t=""){return"string"==typeof e?e:t}function et(e,t=0){return"number"==typeof e?e:t}function tt(e,t=!1){return"boolean"==typeof e?e:t}function it(e){try{return Je(Qe(e))}catch{return null}}function nt(e){try{const t=Qe(e);return Array.isArray(t)?t:null}catch{return null}}function rt(e){return new Promise(t=>setTimeout(t,Math.max(0,e)))}function ot(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})})}},1056,{"0":1055,"1":1057,"2":2240,"3":1017,"4":2241,"paths":{"2240":"/viewer/camstack/_expo/static/js/web/node-path-da70216c9d8adb1fa18a6f4efbee784e.js","2241":"/viewer/camstack/_expo/static/js/web/node-fs-9335d97bb088777ae4eb23bb48049a68.js"}});
|
|
2367
2367
|
__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},1057,[1058]);
|
|
2368
2368
|
__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)())},1058,[1059,1128,1129,1132,1131,1133,1079,1125,1134,1069,1130,1135]);
|
|
2369
2369
|
__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]))},1059,[1060,1061,1062,1064,1065,1068,1063,1066,1069,1122,1067,1123,1124,1125,1126,1127]);
|
|
@@ -3160,7 +3160,7 @@ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e
|
|
|
3160
3160
|
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.toTrackFlagsResult=l,e.useSetTrackFlags=function(){const u=(0,t.c)(2),{controller:s}=(0,o.useConnection)();let f;u[0]!==s?(f={mutationFn:async t=>{const{deviceId:n,trackId:o,flags:u}=t,f=s.getSystem();if(!f)throw new Error("not connected");const k=l(await(0,c.capMutateOrThrow)(f.trpcClient,"pipelineAnalytics","setTrackFlags",{deviceId:n,trackId:o,flags:u}));if(null===k)throw new Error("track flags unreadable");return k}},u[0]=s,u[1]=f):f=u[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,favourited:u}=t;return'string'!=typeof n||0===n.length||'boolean'!=typeof o||'boolean'!=typeof l||'boolean'!=typeof u?null:{trackId:n,markForTrain:o,debug:l,favourited:u}}},1834,[15,1491,1027,1551]);
|
|
3161
3161
|
__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.TrackDetailSkeleton=function(){const e=(0,t.c)(10);let s,l,c,h,y,_,w,p,b,I;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,n.jsx)(x,{}),e[0]=s):s=e[0];e[1]===Symbol.for("react.memo_cache_sentinel")?(l=(0,n.jsx)(i.default,{style:j.hero,children:(0,n.jsx)(o.SkeletonBox,{})}),e[1]=l):l=e[1];e[2]===Symbol.for("react.memo_cache_sentinel")?(c=(0,n.jsx)(i.default,{style:j.shareBtn,children:(0,n.jsx)(o.SkeletonBox,{})}),e[2]=c):c=e[2];e[3]===Symbol.for("react.memo_cache_sentinel")?(h=(0,n.jsxs)(i.default,{style:j.shareRow,children:[c,(0,n.jsx)(i.default,{style:j.shareBtn,children:(0,n.jsx)(o.SkeletonBox,{})})]}),y=(0,n.jsx)(x,{}),e[3]=h,e[4]=y):(h=e[3],y=e[4]);e[5]===Symbol.for("react.memo_cache_sentinel")?(_=(0,n.jsx)(i.default,{style:j.frame,children:(0,n.jsx)(o.SkeletonBox,{})}),e[5]=_):_=e[5];e[6]===Symbol.for("react.memo_cache_sentinel")?(w=(0,n.jsx)(i.default,{style:j.counter,children:(0,n.jsx)(u,{width:30,height:9,radius:4})}),e[6]=w):w=e[6];e[7]===Symbol.for("react.memo_cache_sentinel")?(p=(0,n.jsx)(i.default,{style:j.strip,children:Array.from({length:f},S)}),e[7]=p):p=e[7];e[8]===Symbol.for("react.memo_cache_sentinel")?(b=(0,n.jsxs)(i.default,{style:j.metaRow,children:[(0,n.jsx)(u,{width:72,height:10,radius:4}),(0,n.jsx)(u,{width:"45%",height:10,radius:4})]}),e[8]=b):b=e[8];e[9]===Symbol.for("react.memo_cache_sentinel")?(I=(0,n.jsxs)(i.default,{style:j.root,accessibilityRole:"progressbar",accessibilityLabel:"",children:[s,l,h,y,_,w,p,(0,n.jsxs)(i.default,{style:j.meta,children:[b,(0,n.jsxs)(i.default,{style:j.metaRow,children:[(0,n.jsx)(u,{width:72,height:10,radius:4}),(0,n.jsx)(u,{width:"60%",height:10,radius:4})]})]})]}),e[9]=I):I=e[9];return I};var t=r(d[0]);r(d[1]);var s=e(r(d[2])),i=e(r(d[3])),o=r(d[4]),l=r(d[5]),n=r(d[6]);const c=1.7777777777777777,h=64,f=5;function u(e){const s=(0,t.c)(7),{width:c,height:h,radius:f}=e,u=void 0===f?l.RADIUS.sm:f;let x,S,j;return s[0]!==h||s[1]!==u||s[2]!==c?(x={width:c,height:h,borderRadius:u,overflow:"hidden"},s[0]=h,s[1]=u,s[2]=c,s[3]=x):x=s[3],s[4]===Symbol.for("react.memo_cache_sentinel")?(S=(0,n.jsx)(o.SkeletonBox,{}),s[4]=S):S=s[4],s[5]!==x?(j=(0,n.jsx)(i.default,{style:x,children:S}),s[5]=x,s[6]=j):j=s[6],j}function x(){const e=(0,t.c)(1);let s;return e[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,n.jsx)(i.default,{style:j.caption,children:(0,n.jsx)(u,{width:78,height:9,radius:4})}),e[0]=s):s=e[0],s}function S(e,t){return(0,n.jsxs)(i.default,{style:j.tileWrap,children:[(0,n.jsx)(u,{width:h,height:h}),(0,n.jsx)(u,{width:40,height:8,radius:4})]},t)}const j=s.default.create({root:{paddingBottom:l.SPACING.md},caption:{marginTop:l.SPACING.sm,marginBottom:l.SPACING.xs},hero:{width:'100%',aspectRatio:c,borderRadius:l.RADIUS.md,overflow:'hidden'},shareRow:{flexDirection:'row',gap:l.SPACING.sm,marginTop:l.SPACING.sm},shareBtn:{flex:1,height:38,borderRadius:l.RADIUS.md,overflow:'hidden'},frame:{width:'100%',aspectRatio:c,borderRadius:l.RADIUS.md,overflow:'hidden'},counter:{alignItems:'center',marginTop:l.SPACING.xs},strip:{flexDirection:'row',gap:l.SPACING.sm,paddingVertical:l.SPACING.sm},tileWrap:{width:h,alignItems:'center',gap:4},meta:{marginTop:l.SPACING.md,gap:l.SPACING.sm},metaRow:{flexDirection:'row',gap:l.SPACING.sm,alignItems:'center'}})},1835,[15,17,33,20,1568,1022,10]);
|
|
3162
3162
|
__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)}},1836,[15,17,245,20,112,252,147,33,466,786,813,1020,1022,1837,10]);
|
|
3163
|
-
__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])},1837,{"0":136,"1":
|
|
3163
|
+
__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])},1837,{"0":136,"1":2242,"2":1017,"paths":{"2242":"/viewer/camstack/_expo/static/js/web/Clipboard-68139000fcc61af593c44b211b675f83.js"}});
|
|
3164
3164
|
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useTrackDetailMedia=function(u,k,v){const y=(0,t.c)(27),{controller:f,state:p}=(0,l.useConnection)(),b=k??"none",M=v??"none";let _;y[0]!==u||y[1]!==b||y[2]!==M?(_=["v2","analytics","track-detail-media",u,b,M],y[0]=u,y[1]=b,y[2]=M,y[3]=_):_=y[3];const I="connected"===p&&null!==k;let T,h;y[4]!==k||y[5]!==f||y[6]!==u||y[7]!==v?(T=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,deviceId:u}),null!==v?(0,c.capQuery)(n,"pipelineAnalytics","getTrackMedia",{trackId:v,deviceId:u}):Promise.resolve(null)]);return{event:(0,s.parseMediaFiles)(l),track:(0,s.parseMediaManifest)(o)}},y[4]=k,y[5]=f,y[6]=u,y[7]=v,y[8]=T):T=y[8];y[9]!==_||y[10]!==I||y[11]!==T?(h={queryKey:_,enabled:I,staleTime:6e4,queryFn:T},y[9]=_,y[10]=I,y[11]=T,y[12]=h):h=y[12];const F=(0,n.useQuery)(h);let S;e:{if(!F.data){S=o;break e}let t;y[13]!==F.data.event||y[14]!==F.data.track?(t=(0,s.resolveTrackDetailImages)(F.data.event,F.data.track),y[13]=F.data.event,y[14]=F.data.track,y[15]=t):t=y[15],S=t}const L=S;let P;e:{if(!F.data){let t;y[16]===Symbol.for("react.memo_cache_sentinel")?(t=[],y[16]=t):t=y[16],P=t;break e}let t;if(y[17]!==F.data.event||y[18]!==F.data.track){const n=new Set;t=[];for(const l of[...F.data.event,...F.data.track])n.has(l.key)||(n.add(l.key),t.push({key:l.key,kind:l.kind}));y[17]=F.data.event,y[18]=F.data.track,y[19]=t}else t=y[19];P=t}const Q=P;let U;y[20]!==F.data?(U=F.data?(0,s.buildTrackGallery)(F.data.event,F.data.track):[],y[20]=F.data,y[21]=U):U=y[21];const j=U;let q;y[22]!==j||y[23]!==L||y[24]!==Q||y[25]!==F.isLoading?(q=Object.assign({},L,{loading:F.isLoading,mediaKeys:Q,gallery:j}),y[22]=j,y[23]=L,y[24]=Q,y[25]=F.isLoading,y[26]=q):q=y[26];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}},1838,[15,17,1491,1027,1551,1688]);
|
|
3165
3165
|
__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])},1839,[1686]);
|
|
3166
3166
|
__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},1840,[15,17,1491,1027,1551,1841]);
|
|
@@ -3503,7 +3503,7 @@ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e
|
|
|
3503
3503
|
__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.GridCellPanelOverlay=function(e){const o=(0,t.c)(24),{panel:u,cameraName:h,hasPtz:f,onSelect:x,onClose:y}=e,{t:p}=(0,s.useTranslation)(),{colors:I}=(0,v.useTheme)();if(null===u)return null;let j,z,P,w;o[0]===Symbol.for("react.memo_cache_sentinel")?(j=[c.default.absoluteFill,k.backdrop],o[0]=j):j=o[0];o[1]!==p?(z=p("v2.cameraDetail.close"),o[1]=p,o[2]=z):z=o[2];o[3]!==y||o[4]!==z?(P=(0,C.jsx)(n.default,{style:j,onPress:y,accessibilityRole:"button",accessibilityLabel:z}),o[3]=y,o[4]=z,o[5]=P):P=o[5];o[6]!==I.background||o[7]!==I.border?(w=[k.card,{backgroundColor:I.background,borderColor:I.border}],o[6]=I.background,o[7]=I.border,o[8]=w):w=o[8];const O=`${u.kind}:${u.deviceId}`;let H,R,_,A;o[9]!==f||o[10]!==x||o[11]!==u||o[12]!==O?(H=(0,C.jsx)(S,{panel:u,hasPtz:f,onSelect:x},O),o[9]=f,o[10]=x,o[11]=u,o[12]=O,o[13]=H):H=o[13];o[14]!==h||o[15]!==y||o[16]!==H?(R=(0,C.jsx)(b.TimelinePanelHost,{title:h,onClose:y,children:H}),o[14]=h,o[15]=y,o[16]=H,o[17]=R):R=o[17];o[18]!==w||o[19]!==R?(_=(0,C.jsx)(l.default,{style:k.center,pointerEvents:"box-none",children:(0,C.jsx)(l.default,{style:w,children:R})}),o[18]=w,o[19]=R,o[20]=_):_=o[20];o[21]!==P||o[22]!==_?(A=(0,C.jsxs)(l.default,{style:c.default.absoluteFill,pointerEvents:"box-none",children:[P,_]}),o[21]=P,o[22]=_,o[23]=A):A=o[23];return A};var t=r(d[0]);r(d[1]);var l=e(r(d[2])),o=e(r(d[3])),n=e(r(d[4])),c=e(r(d[5])),s=r(d[6]),u=r(d[7]),h=r(d[8]),v=r(d[9]),f=r(d[10]),b=r(d[11]),x=r(d[12]),y=r(d[13]),p=r(d[14]),I=r(d[15]),j=r(d[16]),C=r(d[17]);function S(e){const o=(0,t.c)(10),{panel:n,hasPtz:c,onSelect:s}=e;switch(n.kind){case"ptz":{let e;return o[0]!==n.deviceId?(e=(0,C.jsx)(l.default,{style:k.centredBody,children:(0,C.jsx)(x.PtzControls,{deviceId:n.deviceId,hasFeature:!0})}),o[0]=n.deviceId,o[1]=e):e=o[1],e}case"devices":{let e;return o[2]!==n.deviceId?(e=(0,C.jsx)(y.DevicesPanel,{deviceId:n.deviceId}),o[2]=n.deviceId,o[3]=e):e=o[3],e}case"viewOptions":{let e;return o[4]!==n.deviceId?(e=(0,C.jsx)(z,{deviceId:n.deviceId}),o[4]=n.deviceId,o[5]=e):e=o[5],e}case"actions":{let e;return o[6]!==c||o[7]!==s||o[8]!==n.deviceId?(e=(0,C.jsx)(O,{deviceId:n.deviceId,hasPtz:c,onSelect:s}),o[6]=c,o[7]=s,o[8]=n.deviceId,o[9]=e):e=o[9],e}}}function z(e){const l=(0,t.c)(6),{deviceId:o}=e,n=(0,I.useCameraViewOptions)(o);let c;return l[0]!==o||l[1]!==n.highlight||l[2]!==n.overlay||l[3]!==n.setHighlight||l[4]!==n.setOverlay?(c=(0,C.jsx)(p.CameraViewOptionsSurface,{deviceId:o,context:"grid-cell",overlayConfig:n.overlay,onChangeOverlay:n.setOverlay,highlight:n.highlight,onSetHighlight:n.setHighlight}),l[0]=o,l[1]=n.highlight,l[2]=n.overlay,l[3]=n.setHighlight,l[4]=n.setOverlay,l[5]=c):c=l[5],c}const P={ptz:u.Move,devices:u.Lightbulb,viewOptions:u.SlidersHorizontal,actions:u.SlidersHorizontal},w={ptz:'v2.cameraDetail.ptz',devices:'v2.cameraDetail.devices',viewOptions:'v2.cameraMenu.title',actions:'v2.gridView.cellActions'};function O(e){const l=(0,t.c)(11),{hasPtz:c,onSelect:f}=e,{t:b}=(0,s.useTranslation)(),{colors:x}=(0,v.useTheme)();let y,p;if(l[0]!==x||l[1]!==c||l[2]!==f||l[3]!==b){let e;l[5]!==x||l[6]!==f||l[7]!==b?(e=e=>{const t=P[e];return(0,C.jsxs)(n.default,{accessibilityRole:"button",onPress:()=>{(0,h.hapticTap)(),f(e)},style:e=>{const{pressed:t}=e;return[k.actionRow,{borderColor:x.borderSubtle,opacity:t?.6:1}]},children:[(0,C.jsx)(t,{size:18,color:x.foregroundMuted}),(0,C.jsx)(o.default,{style:[k.actionLabel,{color:x.foreground}],children:b(w[e])}),(0,C.jsx)(u.ChevronRight,{size:18,color:x.foregroundSubtle})]},e)},l[5]=x,l[6]=f,l[7]=b,l[8]=e):e=l[8],y=(0,j.cellActionRows)({hasPtz:c}).map(e),l[0]=x,l[1]=c,l[2]=f,l[3]=b,l[4]=y}else y=l[4];return l[9]!==y?(p=(0,C.jsx)(C.Fragment,{children:y}),l[9]=y,l[10]=p):p=l[10],p}const k=c.default.create({backdrop:{backgroundColor:'rgba(0,0,0,0.6)'},center:{flex:1,alignItems:'center',justifyContent:'center',padding:f.SPACING.xl},card:{width:'100%',maxWidth:420,height:'82%',maxHeight:640,borderRadius:f.RADIUS.xl,borderWidth:1,overflow:'hidden'},centredBody:{flex:1,justifyContent:'center'},actionRow:{flexDirection:'row',alignItems:'center',gap:f.SPACING.md,paddingVertical:f.SPACING.md,borderBottomWidth:c.default.hairlineWidth},actionLabel:{flex:1,fontSize:15,fontWeight:'500'}})},2177,[15,17,20,112,252,33,786,813,1002,1020,1022,2074,2087,2090,2115,2148,2158,10]);
|
|
3504
3504
|
__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 u}});var n=r(d[0]),t=r(d[1]);r(d[2]);var c=r(d[3]),l=r(d[4]),s=r(d[5]);function u(){const u=(0,n.c)(5),{devices:o}=(0,t.useLocalSearchParams)();let f;u[0]!==o?(f=(0,l.parseAdhocDeviceIds)(o),u[0]=o,u[1]=f):f=u[1];const b=f;if(0===b.length)return null;let h,S;return u[2]===Symbol.for("react.memo_cache_sentinel")?(h=(0,s.jsx)(t.Stack.Screen,{options:{gestureEnabled:!1,fullScreenGestureEnabled:!1}}),u[2]=h):h=u[2],u[3]!==b?(S=(0,s.jsxs)(s.Fragment,{children:[h,(0,s.jsx)(c.GridViewScreen,{gridId:null,adhocCameraIds:b})]}),u[3]=b,u[4]=S):S=u[4],S}},2178,[15,743,17,2155,2044,10]);
|
|
3505
3505
|
__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.CamerasManageScreen,{}),o[0]=u):u=o[0],u}},2179,[15,2180,10]);
|
|
3506
|
-
__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.CamerasManageScreen=function(){const e=(0,o.c)(
|
|
3506
|
+
__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.CamerasManageScreen=function(){const e=(0,o.c)(35),{t:s}=(0,y.useTranslation)(),{colors:u}=(0,C.useTheme)(),c=(0,S.useRouter)(),f=(0,A.useSafeAreaInsets)(),{data:h,isLoading:p}=(0,v.useAllCameras)();let j;e[0]!==h?(j=void 0===h?[]:h,e[0]=h,e[1]=j):j=e[1];const H=j,{setLocalName:T,setHidden:D,setOrder:_}=(0,I.useCameraPrefs)(),[L,z]=(0,t.useState)(H);let w,O,V;e[2]!==H?(w=()=>{z(H)},O=[H],e[2]=H,e[3]=w,e[4]=O):(w=e[3],O=e[4]);(0,t.useEffect)(w,O),e[5]!==_?(V=e=>{const{data:o}=e;z(o),_(o.map(G))},e[5]=_,e[6]=V):V=e[6];const B=V;let W;e[7]!==u||e[8]!==D||e[9]!==T?(W=e=>{const{item:o,drag:t,isActive:n}=e;return(0,k.jsx)(R,{camera:o,drag:t,isActive:n,colors:u,onRename:e=>T(o.id,e),onToggleHidden:e=>D(o.id,e)})},e[7]=u,e[8]=D,e[9]=T,e[10]=W):W=e[10];const K=W;let F,U,q,J,Q,X;e[11]!==u.background?(F={flex:1,backgroundColor:u.background},e[11]=u.background,e[12]=F):F=e[12];e[13]!==s?(U=s("v2.cameras.manage"),e[13]=s,e[14]=U):U=e[14];e[15]!==c?(q=()=>c.back(),e[15]=c,e[16]=q):q=e[16];e[17]!==U||e[18]!==q?(J=(0,k.jsx)(N.ScreenHeader,{title:U,onBack:q,bordered:!0}),e[17]=U,e[18]=q,e[19]=J):J=e[19];e[20]!==H||e[21]!==u.foregroundMuted||e[22]!==u.foregroundSubtle||e[23]!==u.primary||e[24]!==L||e[25]!==B||e[26]!==f||e[27]!==p||e[28]!==K||e[29]!==s?(Q=p?(0,k.jsx)(n.default,{style:E.centered,children:(0,k.jsx)(b.default,{color:u.primary})}):0===H.length?(0,k.jsx)(n.default,{style:E.centered,children:(0,k.jsx)(l.default,{style:{color:u.foregroundMuted,fontSize:15},children:s("v2.cameras.empty")})}):(0,k.jsx)(x.default,{data:L,keyExtractor:M,onDragEnd:B,renderItem:K,style:E.list,contentContainerStyle:(0,P.camerasManageListContentStyle)(f.bottom),activationDistance:12,automaticallyAdjustKeyboardInsets:!1,keyboardShouldPersistTaps:"handled",keyboardDismissMode:"interactive",ListHeaderComponent:(0,k.jsx)(l.default,{style:[E.hint,{color:u.foregroundSubtle}],children:s("v2.cameras.manageHint")})}),e[20]=H,e[21]=u.foregroundMuted,e[22]=u.foregroundSubtle,e[23]=u.primary,e[24]=L,e[25]=B,e[26]=f,e[27]=p,e[28]=K,e[29]=s,e[30]=Q):Q=e[30];e[31]!==Q||e[32]!==F||e[33]!==J?(X=(0,k.jsxs)(n.default,{style:F,children:[J,Q]}),e[31]=Q,e[32]=F,e[33]=J,e[34]=X):X=e[34];return X};var o=r(d[0]),t=r(d[1]),n=e(r(d[2])),l=e(r(d[3])),s=e(r(d[4])),u=e(r(d[5])),c=e(r(d[6])),f=e(r(d[7])),b=e(r(d[8]));r(d[9]);var y=r(d[10]),S=r(d[11]),h=r(d[12]),x=e(h),p=r(d[13]),C=r(d[14]),j=r(d[15]),A=r(d[16]),N=r(d[17]),v=r(d[18]),I=r(d[19]),P=r(d[20]),k=r(d[21]);function M(e){return String(e.id)}function G(e){return e.id}function R(e){const f=(0,o.c)(59),{camera:b,drag:S,isActive:x,colors:C,onRename:j,onToggleHidden:A}=e,{t:N}=(0,y.useTranslation)(),[v,I]=(0,t.useState)(b.name);let M,G,R;f[0]!==b.name?(M=()=>{I(b.name)},G=[b.name],f[0]=b.name,f[1]=M,f[2]=G):(M=f[1],G=f[2]),(0,t.useEffect)(M,G),f[3]!==b.name||f[4]!==v||f[5]!==j?(R=()=>{v!==b.name&&j(v)},f[3]=b.name,f[4]=v,f[5]=j,f[6]=R):R=f[6];const H=R,T=b.name!==b.originalName,D=x?C.surfaceHover:C.surface,_=b.hidden?.55:1;let L,z,w,O;f[7]!==C.border||f[8]!==D||f[9]!==_?(L=[E.row,{backgroundColor:D,borderColor:C.border,opacity:_,marginBottom:P.CAMERAS_MANAGE_ROW_GAP}],f[7]=C.border,f[8]=D,f[9]=_,f[10]=L):L=f[10],f[11]!==N?(z=N("v2.cameras.reorderHandle"),f[11]=N,f[12]=z):z=f[12],f[13]!==C.foregroundMuted?(w=(0,k.jsx)(p.GripVertical,{size:20,color:C.foregroundMuted}),f[13]=C.foregroundMuted,f[14]=w):w=f[14],f[15]!==S||f[16]!==z||f[17]!==w?(O=(0,k.jsx)(c.default,{accessibilityRole:"button",accessibilityLabel:z,onLongPress:S,delayLongPress:150,style:E.handle,children:w}),f[15]=S,f[16]=z,f[17]=w,f[18]=O):O=f[18];const V=b.online?C.success:C.foregroundDisabled;let B,W,K,F,U,q,J;f[19]!==V?(B=(0,k.jsx)(n.default,{style:[E.statusDot,{backgroundColor:V}]}),f[19]=V,f[20]=B):B=f[20],f[21]!==C.foreground?(W=[E.input,{color:C.foreground}],f[21]=C.foreground,f[22]=W):W=f[22],f[23]!==b.originalName||f[24]!==C.foregroundSubtle||f[25]!==H||f[26]!==v||f[27]!==W?(K=(0,k.jsx)(s.default,{value:v,onChangeText:I,onBlur:H,onSubmitEditing:H,returnKeyType:"done",placeholder:b.originalName,placeholderTextColor:C.foregroundSubtle,selectTextOnFocus:!0,style:W}),f[23]=b.originalName,f[24]=C.foregroundSubtle,f[25]=H,f[26]=v,f[27]=W,f[28]=K):K=f[28],f[29]!==B||f[30]!==K?(F=(0,k.jsxs)(n.default,{style:E.nameRow,children:[B,K]}),f[29]=B,f[30]=K,f[31]=F):F=f[31],f[32]!==b.originalName||f[33]!==C.foregroundSubtle||f[34]!==T?(U=T?(0,k.jsx)(l.default,{style:[E.original,{color:C.foregroundSubtle}],numberOfLines:1,children:b.originalName}):null,f[32]=b.originalName,f[33]=C.foregroundSubtle,f[34]=T,f[35]=U):U=f[35],f[36]!==F||f[37]!==U?(q=(0,k.jsxs)(n.default,{style:E.body,children:[F,U]}),f[36]=F,f[37]=U,f[38]=q):q=f[38],f[39]!==b.hidden||f[40]!==C.foregroundMuted?(J=b.hidden?(0,k.jsx)(p.EyeOff,{size:16,color:C.foregroundMuted}):null,f[39]=b.hidden,f[40]=C.foregroundMuted,f[41]=J):J=f[41];const Q=!b.hidden;let X,Y,Z,$;return f[42]!==A?(X=e=>A(!e),f[42]=A,f[43]=X):X=f[43],f[44]!==C.border||f[45]!==C.primary?(Y={false:C.border,true:C.primary},f[44]=C.border,f[45]=C.primary,f[46]=Y):Y=f[46],f[47]!==C.backgroundElevated||f[48]!==C.border||f[49]!==Q||f[50]!==X||f[51]!==Y?(Z=(0,k.jsx)(u.default,{value:Q,onValueChange:X,trackColor:Y,thumbColor:C.backgroundElevated,ios_backgroundColor:C.border}),f[47]=C.backgroundElevated,f[48]=C.border,f[49]=Q,f[50]=X,f[51]=Y,f[52]=Z):Z=f[52],f[53]!==q||f[54]!==J||f[55]!==Z||f[56]!==L||f[57]!==O?($=(0,k.jsx)(h.ScaleDecorator,{children:(0,k.jsxs)(n.default,{style:L,children:[O,q,J,Z]})}),f[53]=q,f[54]=J,f[55]=Z,f[56]=L,f[57]=O,f[58]=$):$=f[58],$}const E=f.default.create({centered:{flex:1,alignItems:'center',justifyContent:'center',padding:j.SPACING['2xl']},list:{flex:1},hint:{fontSize:13,lineHeight:18,paddingHorizontal:j.SPACING.sm,paddingTop:j.SPACING.sm,paddingBottom:j.SPACING.md},row:{flexDirection:'row',alignItems:'center',gap:j.SPACING.lg,borderWidth:1,borderRadius:j.RADIUS.md,paddingVertical:j.SPACING.md,paddingHorizontal:j.SPACING.lg},handle:{paddingVertical:j.SPACING.sm,paddingRight:j.SPACING.xs},body:{flex:1,gap:2},nameRow:{flexDirection:'row',alignItems:'center',gap:j.SPACING.md},statusDot:{width:8,height:8,borderRadius:4},input:{flex:1,fontSize:16,fontWeight:'600',paddingVertical:0},original:{fontSize:12,marginLeft:8+j.SPACING.md}})},2180,[15,17,20,112,262,260,252,33,240,136,786,743,2181,813,1020,1022,466,1487,1490,1542,2204,10]);
|
|
3507
3507
|
__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 l}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},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 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 u=r(d[3]);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[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 l=n.default},2181,[2182,2197,2199,2202,2203]);
|
|
3508
3508
|
__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 H}});var t=r(_d[0]),n=e(t),l=e(r(_d[1])),i=r(_d[2]),o=r(_d[3]),u=e(o),s=e(r(_d[4])),c=r(_d[5]),d=e(r(_d[6])),v=e(r(_d[7])),_=e(r(_d[8])),f=r(_d[9]),h=e(f),S=r(_d[10]),b=e(S),D=e(r(_d[11])),p=r(_d[12]),A=r(_d[13]),O=e(r(_d[14])),x=r(_d[15]);function I(){return I=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},I.apply(this,arguments)}const w=u.default.createAnimatedComponent(i.FlatList),J={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs1(){const{isTouchActiveNative}=this.__closure;return isTouchActiveNative.value;}"},C={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs2(cur,prev){const{touchTranslate,activeIndexAnim,disabled,runOnJS,onRelease,onDragEnd,spacerIndexAnim}=this.__closure;if(cur!==prev&&!cur){const hasMoved=!!touchTranslate.value;if(!hasMoved&&activeIndexAnim.value>=0&&!disabled.value){runOnJS(onRelease)(activeIndexAnim.value);runOnJS(onDragEnd)({from:activeIndexAnim.value,to:spacerIndexAnim.value});}}}"},E={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs3(){const{spacerIndexAnim}=this.__closure;return spacerIndexAnim.value;}"},k={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs4(cur,prev){const{runOnJS,onPlaceholderIndexChange}=this.__closure;if(prev!==null&&cur!==prev&&cur>=0&&prev>=0){runOnJS(onPlaceholderIndexChange)(cur);}}"},T={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs5(){const{runOnJS,onContainerTouchEnd}=this.__closure;runOnJS(onContainerTouchEnd)();}"},R={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs6(){const{runOnJS,onContainerTouchStart}=this.__closure;runOnJS(onContainerTouchStart)();}"},y={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs7(evt){const{gestureDisabled,isTouchActiveNative,horizontalAnim,touchTranslate,autoScrollDistance,panGestureState,activeIndexAnim,disabled,runOnJS,onRelease,placeholderOffset,activeCellOffset,withSpring,animationConfigRef,onDragEnd,spacerIndexAnim}=this.__closure;if(gestureDisabled.value)return;isTouchActiveNative.value=false;const translation=horizontalAnim.value?evt.translationX:evt.translationY;touchTranslate.value=translation+autoScrollDistance.value;panGestureState.value=evt.state;if(activeIndexAnim.value===-1||disabled.value)return;disabled.value=true;runOnJS(onRelease)(activeIndexAnim.value);const springTo=placeholderOffset.value-activeCellOffset.value;touchTranslate.value=withSpring(springTo,animationConfigRef.value,function(){runOnJS(onDragEnd)({from:activeIndexAnim.value,to:spacerIndexAnim.value});disabled.value=false;});}"},z={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs8(evt){const{gestureDisabled,panGestureState,horizontalAnim,touchTranslate}=this.__closure;if(gestureDisabled.value)return;panGestureState.value=evt.state;const translation=horizontalAnim.value?evt.translationX:evt.translationY;touchTranslate.value=translation;}"},F={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs9(evt){const{gestureDisabled,disabled,panGestureState}=this.__closure;gestureDisabled.value=disabled.value;if(gestureDisabled.value)return;panGestureState.value=evt.state;}"},L={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs10(){const{runOnJS,onDragEnd,activeIndexAnim,spacerIndexAnim,disabled}=this.__closure;runOnJS(onDragEnd)({from:activeIndexAnim.value,to:spacerIndexAnim.value});disabled.value=false;}"},N={code:"function reactNativeDraggableFlatlist_DraggableFlatListJs11(evt){const{scrollOffset,horizontalAnim,runOnJS,onScroll}=this.__closure;scrollOffset.value=horizontalAnim.value?evt.contentOffset.x:evt.contentOffset.y;runOnJS(onScroll)(scrollOffset.value);}"};function P(e,t){return n.default.createElement(_.default,e,n.default.createElement(h.default,null,n.default.createElement(b.default,{flatListRef:t},n.default.createElement(G,e))))}const G=(0,x.typedMemo)(function(e){const{cellDataRef:_,containerRef:h,flatlistRef:b,keyToIndexRef:x,propsRef:P,animationConfigRef:G}=(0,S.useRefs)(),{activeCellOffset:H,activeCellSize:M,activeIndexAnim:V,containerSize:j,scrollOffset:Y,scrollViewSize:U,spacerIndexAnim:X,horizontalAnim:K,placeholderOffset:B,touchTranslate:q,autoScrollDistance:Q,panGestureState:W,isTouchActiveNative:Z,viewableIndexMin:$,viewableIndexMax:ee,disabled:te}=(0,f.useAnimatedValues)(),ae=(0,A.useStableCallback)(()=>{V.value=-1,X.value=-1,q.value=0,M.value=-1,H.value=-1,oe(null)}),{dragHitSlop:ne=c.DEFAULT_PROPS.dragHitSlop,scrollEnabled:le=c.DEFAULT_PROPS.scrollEnabled,activationDistance:re=c.DEFAULT_PROPS.activationDistance}=e;let[ie,oe]=(0,t.useState)(null);const[ue,se]=(0,t.useState)(!P.current.enableLayoutAnimationExperimental),ce=(0,A.useStableCallback)((t,n)=>{if(!e.keyExtractor)throw new Error("You must provide a keyExtractor to DraggableFlatList");return e.keyExtractor(t,n)}),de=(0,t.useRef)(e.data),ve=de.current.map(ce).join("")!==e.data.map(ce).join("");de.current=e.data,ve&&(ie=null,l.default.runAfterInteractions(()=>{ae()})),(0,t.useEffect)(()=>{P.current.enableLayoutAnimationExperimental&&(ie?se(!0):setTimeout(()=>{se(!1)},100))},[ie]),(0,t.useLayoutEffect)(()=>{e.data.forEach((e,t)=>{const n=ce(e,t);x.current.set(n,t)})},[e.data,ce,x]);const fe=(0,A.useStableCallback)(e=>{if(te.value)return;const t=x.current.get(e),n=_.current.get(e);n&&(H.value=n.measurements.offset,M.value=n.measurements.size);const{onDragBegin:l}=P.current;void 0!==t&&(X.value=t,V.value=t,oe(e),null==l||l(t))}),he=(0,t.useMemo)(()=>({activeKey:ie,extraData:e.extraData}),[ie,e.extraData]),me=(0,t.useCallback)(t=>{let{item:l,index:i}=t;const o=ce(l,i);return i!==x.current.get(o)&&x.current.set(o,i),n.default.createElement(v.default,{item:l,itemKey:o,renderItem:e.renderItem,drag:fe,extraData:e.extraData})},[e.renderItem,e.extraData,fe,ce]),ge=(0,A.useStableCallback)(t=>{var n;null===(n=e.onRelease)||void 0===n||n.call(e,t)}),Se=(0,A.useStableCallback)(t=>{let{from:n,to:l}=t;const{onDragEnd:i,data:o}=e,u=[...o];n!==l&&(u.splice(n,1),u.splice(l,0,o[n])),null==i||i({from:n,to:l,data:u}),oe(null)}),be=(0,A.useStableCallback)(t=>{var n;null===(n=e.onPlaceholderIndexChange)||void 0===n||n.call(e,t)});(0,o.useAnimatedReaction)((function({_worklet_12667785060637_init_data:e,isTouchActiveNative:t}){const n=function(){return t.value};return n.__closure={isTouchActiveNative:t},n.__workletHash=0xb8572d4211d,n.__initData=e,n})({_worklet_12667785060637_init_data:J,isTouchActiveNative:Z}),(function({_worklet_3017769988260_init_data:e,touchTranslate:t,activeIndexAnim:n,disabled:l,runOnJS:i,onRelease:o,onDragEnd:u,spacerIndexAnim:s}){const c=function(e,c){if(e!==c&&!e){!!!t.value&&n.value>=0&&!l.value&&(i(o)(n.value),i(u)({from:n.value,to:s.value}))}};return c.__closure={touchTranslate:t,activeIndexAnim:n,disabled:l,runOnJS:i,onRelease:o,onDragEnd:u,spacerIndexAnim:s},c.__workletHash=3017769988260,c.__initData=e,c})({_worklet_3017769988260_init_data:C,touchTranslate:q,activeIndexAnim:V,disabled:te,runOnJS:o.runOnJS,onRelease:ge,onDragEnd:Se,spacerIndexAnim:X}),[Z,Se,ge]),(0,o.useAnimatedReaction)((function({_worklet_6176791664127_init_data:e,spacerIndexAnim:t}){const n=function(){return t.value};return n.__closure={spacerIndexAnim:t},n.__workletHash=6176791664127,n.__initData=e,n})({_worklet_6176791664127_init_data:E,spacerIndexAnim:X}),(function({_worklet_2590604232580_init_data:e,runOnJS:t,onPlaceholderIndexChange:n}){const l=function(e,l){null!==l&&e!==l&&e>=0&&l>=0&&t(n)(e)};return l.__closure={runOnJS:t,onPlaceholderIndexChange:n},l.__workletHash=2590604232580,l.__initData=e,l})({_worklet_2590604232580_init_data:k,runOnJS:o.runOnJS,onPlaceholderIndexChange:be}),[X]);const De=(0,o.useSharedValue)(!1),pe=i.Gesture.Pan().onBegin((function({_worklet_7787583163440_init_data:e,gestureDisabled:t,disabled:n,panGestureState:l}){const i=function(e){t.value=n.value,t.value||(l.value=e.state)};return i.__closure={gestureDisabled:t,disabled:n,panGestureState:l},i.__workletHash=7787583163440,i.__initData=e,i})({_worklet_7787583163440_init_data:F,gestureDisabled:De,disabled:te,panGestureState:W})).onUpdate((function({_worklet_11677334153389_init_data:e,gestureDisabled:t,panGestureState:n,horizontalAnim:l,touchTranslate:i}){const o=function(e){if(t.value)return;n.value=e.state;const o=l.value?e.translationX:e.translationY;i.value=o};return o.__closure={gestureDisabled:t,panGestureState:n,horizontalAnim:l,touchTranslate:i},o.__workletHash=0xa9ed75aa8ad,o.__initData=e,o})({_worklet_11677334153389_init_data:z,gestureDisabled:De,panGestureState:W,horizontalAnim:K,touchTranslate:q})).onEnd((function({_worklet_13600115403067_init_data:e,gestureDisabled:t,isTouchActiveNative:n,horizontalAnim:l,touchTranslate:i,autoScrollDistance:o,panGestureState:u,activeIndexAnim:s,disabled:c,runOnJS:d,onRelease:v,placeholderOffset:_,activeCellOffset:f,withSpring:h,animationConfigRef:S,onDragEnd:b,spacerIndexAnim:D}){const p=function(e){if(t.value)return;n.value=!1;const p=l.value?e.translationX:e.translationY;if(i.value=p+o.value,u.value=e.state,-1===s.value||c.value)return;c.value=!0,d(v)(s.value);const A=_.value-f.value;i.value=h(A,S.value,(function({_worklet_9458151985595_init_data:e,runOnJS:t,onDragEnd:n,activeIndexAnim:l,spacerIndexAnim:i,disabled:o}){const u=function(){t(n)({from:l.value,to:i.value}),o.value=!1};return u.__closure={runOnJS:t,onDragEnd:n,activeIndexAnim:l,spacerIndexAnim:i,disabled:o},u.__workletHash=9458151985595,u.__initData=e,u})({_worklet_9458151985595_init_data:L,runOnJS:d,onDragEnd:b,activeIndexAnim:s,spacerIndexAnim:D,disabled:c}))};return p.__closure={gestureDisabled:t,isTouchActiveNative:n,horizontalAnim:l,touchTranslate:i,autoScrollDistance:o,panGestureState:u,activeIndexAnim:s,disabled:c,runOnJS:d,onRelease:v,placeholderOffset:_,activeCellOffset:f,withSpring:h,animationConfigRef:S,onDragEnd:b,spacerIndexAnim:D},p.__workletHash=0xc5e860c293b,p.__initData=e,p})({_worklet_13600115403067_init_data:y,gestureDisabled:De,isTouchActiveNative:Z,horizontalAnim:K,touchTranslate:q,autoScrollDistance:Q,panGestureState:W,activeIndexAnim:V,disabled:te,runOnJS:o.runOnJS,onRelease:ge,placeholderOffset:B,activeCellOffset:H,withSpring:o.withSpring,animationConfigRef:G,onDragEnd:Se,spacerIndexAnim:X})).onTouchesDown((function({_worklet_2544844199545_init_data:e,runOnJS:t,onContainerTouchStart:n}){const l=function(){t(n)()};return l.__closure={runOnJS:t,onContainerTouchStart:n},l.__workletHash=2544844199545,l.__initData=e,l})({_worklet_2544844199545_init_data:R,runOnJS:o.runOnJS,onContainerTouchStart:()=>(te.value||(Z.value=!0),!1)})).onTouchesUp((function({_worklet_8529291078106_init_data:e,runOnJS:t,onContainerTouchEnd:n}){const l=function(){t(n)()};return l.__closure={runOnJS:t,onContainerTouchEnd:n},l.__workletHash=8529291078106,l.__initData=e,l})({_worklet_8529291078106_init_data:T,runOnJS:o.runOnJS,onContainerTouchEnd:()=>{Z.value=!1}}));if(ne&&pe.hitSlop(ne),re){const t=[-re,re];e.horizontal?pe.activeOffsetX(t):pe.activeOffsetY(t)}const Ae=(0,A.useStableCallback)(t=>{var n;null===(n=e.onScrollOffsetChange)||void 0===n||n.call(e,t)}),Oe=(0,o.useAnimatedScrollHandler)({onScroll:(function({_worklet_11729156081231_init_data:e,scrollOffset:t,horizontalAnim:n,runOnJS:l,onScroll:i}){const o=function(e){t.value=n.value?e.contentOffset.x:e.contentOffset.y,l(i)(t.value)};return o.__closure={scrollOffset:t,horizontalAnim:n,runOnJS:l,onScroll:i},o.__workletHash=0xaaae82e864f,o.__initData=e,o})({_worklet_11729156081231_init_data:N,scrollOffset:Y,horizontalAnim:K,runOnJS:o.runOnJS,onScroll:Ae})},[K]);(0,p.useAutoScroll)();const xe=(0,A.useStableCallback)(t=>{var n;const l=t.viewableItems.filter(e=>e.isViewable).map(e=>e.index).filter(e=>"number"==typeof e),i=Math.min(...l),o=Math.max(...l);$.value=i,ee.value=o,null===(n=e.onViewableItemsChanged)||void 0===n||n.call(e,t)});return n.default.createElement(D.default,{activeKey:ie,keyExtractor:ce,horizontal:!!e.horizontal,layoutAnimationDisabled:ue},n.default.createElement(i.GestureDetector,{gesture:pe},n.default.createElement(u.default.View,{style:e.containerStyle,ref:h,onLayout:t=>{var n;let{nativeEvent:{layout:l}}=t;const{width:i,height:o}=l;j.value=e.horizontal?i:o,null===(n=e.onContainerLayout)||void 0===n||n.call(e,{layout:l,containerRef:h})}},e.renderPlaceholder&&n.default.createElement(d.default,{renderPlaceholder:e.renderPlaceholder}),n.default.createElement(w,I({},e,{data:e.data,onViewableItemsChanged:xe,CellRendererComponent:s.default,ref:b,onContentSizeChange:(t,n)=>{var l;U.value=e.horizontal?t:n,null===(l=e.onContentSizeChange)||void 0===l||l.call(e,t,n)},scrollEnabled:!ie&&le,renderItem:me,extraData:he,keyExtractor:ce,onScroll:Oe,scrollEventThrottle:16,simultaneousHandlers:e.simultaneousHandlers,removeClippedSubviews:!1})),!!e.onScrollOffsetChange&&n.default.createElement(O.default,{onScrollOffsetChange:e.onScrollOffsetChange,scrollOffset:Y}))))});var H=n.default.forwardRef(P)},2182,[17,155,1690,1151,2183,2185,2193,2194,2188,2187,2189,2184,2195,2192,2196,2190]);
|
|
3509
3509
|
__d(function(g,r,_i,a,m,_e,d){"use strict";const t=["item","index","onLayout","children"];function e(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return R}});var n=e(r(d[0])),o=r(d[1]),i=e(o),l=e(r(d[2])),s=r(d[3]),u=e(s),c=r(d[4]),f=r(d[5]),_=r(d[6]),h=r(d[7]),y=r(d[8]),C=r(d[9]),b=e(r(d[10])),v=r(d[11]);function L(){return L=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},L.apply(this,arguments)}const A={code:"function reactNativeDraggableFlatlist_CellRendererComponentJs1(){const{translate,isWeb,heldTanslate,activeKey,horizontalAnim}=this.__closure;if(translate.value&&!isWeb){heldTanslate.value=translate.value;}const t=activeKey?translate.value:heldTanslate.value;return{transform:[horizontalAnim.value?{translateX:t}:{translateY:t}]};}"},D={code:"function reactNativeDraggableFlatlist_CellRendererComponentJs2(t,_layoutDisabled){const{stashConfig,getStashedConfig}=this.__closure;if(!t)return;const config=global.LayoutAnimationRepository.configs[t];if(config)stashConfig(t,config);const stashedConfig=getStashedConfig(t);if(_layoutDisabled){global.LayoutAnimationRepository.removeConfig(t);}else if(stashedConfig){global.LayoutAnimationRepository.registerConfig(t,stashedConfig);}}"};var R=(0,h.typedMemo)(function(e){const{item:h,index:R,onLayout:F,children:k}=e,w=(0,n.default)(e,t),N=(0,o.useRef)(null),{cellDataRef:x,propsRef:z,containerRef:E}=(0,y.useRefs)(),{horizontalAnim:O,scrollOffset:W}=(0,C.useAnimatedValues)(),{activeKey:T,keyExtractor:K,horizontal:H,layoutAnimationDisabled:J}=(0,c.useDraggableFlatListContext)(),V=K(h,R),j=(0,s.useSharedValue)(-1),I=(0,s.useSharedValue)(-1),M=(0,s.useSharedValue)(0),P=(0,_.useCellTranslate)({cellOffset:j,cellSize:I,cellIndex:R}),U=T===V,X=(0,s.useAnimatedStyle)((function({_worklet_9493151677458_init_data:t,translate:e,isWeb:n,heldTanslate:o,activeKey:i,horizontalAnim:l}){const s=function(){e.value&&!n&&(o.value=e.value);const t=i?e.value:o.value;return{transform:[l.value?{translateX:t}:{translateY:t}]}};return s.__closure={translate:e,isWeb:n,heldTanslate:o,activeKey:i,horizontalAnim:l},s.__workletHash=9493151677458,s.__initData=t,s})({_worklet_9493151677458_init_data:A,translate:P,isWeb:f.isWeb,heldTanslate:M,activeKey:T,horizontalAnim:O}),[P,T]),Y=(0,v.useStableCallback)(()=>{const t=(t,e,n,o)=>{f.isWeb&&H&&(t+=W.value);const i=H?t:e,l=H?n:o;x.current.set(V,{measurements:{size:l,offset:i}}),I.value=l,j.value=i},e=()=>{var t;null!==(t=z.current)&&void 0!==t&&t.debug&&console.log(`## on measure fail, index: ${R}`)},n=E.current,o=N.current,i=n;o&&i&&o.measureLayout(i,t,e)}),q=(0,v.useStableCallback)(t=>{M.value=0,Y(),F&&t&&F(t)});(0,o.useEffect)(()=>{f.isWeb&&requestAnimationFrame(()=>{q()})},[R,q]);const $=(0,o.useMemo)(()=>({elevation:U?1:0,zIndex:U?999:0,flexDirection:H?"row":"column"}),[U,H]),{itemEnteringAnimation:B,itemExitingAnimation:G,itemLayoutAnimation:Q}=z.current;return(0,o.useEffect)(()=>{if(!z.current.enableLayoutAnimationExperimental)return;const t=(0,l.default)(N.current);(0,s.runOnUI)((function({_worklet_10702969925975_init_data:t,stashConfig:e,getStashedConfig:n}){const o=function(t,o){if(!t)return;const i=g.LayoutAnimationRepository.configs[t];i&&e(t,i);const l=n(t);o?g.LayoutAnimationRepository.removeConfig(t):l&&g.LayoutAnimationRepository.registerConfig(t,l)};return o.__closure={stashConfig:e,getStashedConfig:n},o.__workletHash=0x9bbfab87157,o.__initData=t,o})({_worklet_10702969925975_init_data:D,stashConfig:S,getStashedConfig:p}))(t,J)},[J]),i.default.createElement(u.default.View,L({},w,{ref:N,onLayout:q,entering:B,exiting:G,layout:z.current.enableLayoutAnimationExperimental?Q:void 0,style:[e.style,$,X],pointerEvents:T?"none":"auto"}),i.default.createElement(b.default,{isActive:U},k))});(0,s.runOnUI)((function({_worklet_4071045011151_init_data:t}){const e=function(){g.RNDFLLayoutAnimationConfigStash={}};return e.__closure={},e.__workletHash=4071045011151,e.__initData=t,e})({_worklet_4071045011151_init_data:{code:"function reactNativeDraggableFlatlist_CellRendererComponentJs3(){global.RNDFLLayoutAnimationConfigStash={};}"}}))();const S=(function({_worklet_17335747121283_init_data:t}){const e=function(t,e){g.RNDFLLayoutAnimationConfigStash||(g.RNDFLLayoutAnimationConfigStash={}),g.RNDFLLayoutAnimationConfigStash[t]=e};return e.__closure={},e.__workletHash=0xfc44b0c9083,e.__initData=t,e})({_worklet_17335747121283_init_data:{code:"function stashConfig_reactNativeDraggableFlatlist_CellRendererComponentJs4(tag,config){if(!global.RNDFLLayoutAnimationConfigStash)global.RNDFLLayoutAnimationConfigStash={};global.RNDFLLayoutAnimationConfigStash[tag]=config;}"}}),p=(function({_worklet_1208922414792_init_data:t}){const e=function(t){return g.RNDFLLayoutAnimationConfigStash?g.RNDFLLayoutAnimationConfigStash[t]:null};return e.__closure={},e.__workletHash=1208922414792,e.__initData=t,e})({_worklet_1208922414792_init_data:{code:"function getStashedConfig_reactNativeDraggableFlatlist_CellRendererComponentJs5(tag){if(!global.RNDFLLayoutAnimationConfigStash)return null;return global.RNDFLLayoutAnimationConfigStash[tag];}"}})},2183,[120,17,122,1151,2184,2185,2186,2190,2189,2187,2191,2192]);
|
|
@@ -3527,40 +3527,41 @@ __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',
|
|
|
3527
3527
|
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useNestedAutoScroll=function(h){const{outerScrollOffset:E,containerSize:N,scrollableRef:C,scrollViewSize:L}=(0,o.useSafeNestableScrollContainerContext)(),A=(0,t.useSharedValue)(0),{hoverOffset:D=A,activeCellSize:I=A,autoscrollSpeed:w=100,autoscrollThreshold:R=30,isDraggingCell:p=A,isTouchActiveNative:k=A}=h,b=(0,t.useDerivedValue)((function({_worklet_1881896633941_init_data:t,hoverOffset:o,outerScrollOffset:l}){const s=function(){return o.value-l.value};return s.__closure={hoverOffset:o,outerScrollOffset:l},s.__workletHash=1881896633941,s.__initData=t,s})({_worklet_1881896633941_init_data:s,hoverOffset:D,outerScrollOffset:E}),[]),z=(0,t.useDerivedValue)((function({_worklet_4729636409762_init_data:t,outerScrollOffset:o,SCROLL_POSITION_TOLERANCE:l}){const s=function(){return o.value-l<=0};return s.__closure={outerScrollOffset:o,SCROLL_POSITION_TOLERANCE:l},s.__workletHash=4729636409762,s.__initData=t,s})({_worklet_4729636409762_init_data:c,outerScrollOffset:E,SCROLL_POSITION_TOLERANCE:l.SCROLL_POSITION_TOLERANCE}),[]),P=(0,t.useDerivedValue)((function({_worklet_6931217787228_init_data:t,outerScrollOffset:o,containerSize:l,SCROLL_POSITION_TOLERANCE:s,scrollViewSize:c}){const u=function(){return o.value+l.value+s>=c.value};return u.__closure={outerScrollOffset:o,containerSize:l,SCROLL_POSITION_TOLERANCE:s,scrollViewSize:c},u.__workletHash=6931217787228,u.__initData=t,u})({_worklet_6931217787228_init_data:u,outerScrollOffset:E,containerSize:N,SCROLL_POSITION_TOLERANCE:l.SCROLL_POSITION_TOLERANCE,scrollViewSize:L}),[]),B=(0,t.useDerivedValue)((function({_worklet_14157162290883_init_data:t,hoverScreenOffset:o}){const l=function(){return Math.max(0,o.value)};return l.__closure={hoverScreenOffset:o},l.__workletHash=0xce038a11ec3,l.__initData=t,l})({_worklet_14157162290883_init_data:n,hoverScreenOffset:b}),[b]),J=(0,t.useDerivedValue)((function({_worklet_6156973048070_init_data:t,containerSize:o,hoverScreenOffset:l,activeCellSize:s}){const c=function(){const t=o.value-(l.value+s.value);return Math.max(0,t)};return c.__closure={containerSize:o,hoverScreenOffset:l,activeCellSize:s},c.__workletHash=6156973048070,c.__initData=t,c})({_worklet_6156973048070_init_data:_,containerSize:N,hoverScreenOffset:b,activeCellSize:I}),[b,I,N]),V=(0,t.useDerivedValue)((function({_worklet_11726045427259_init_data:t,distToTopEdge:o,autoscrollThreshold:l}){const s=function(){return o.value<=l};return s.__closure={distToTopEdge:o,autoscrollThreshold:l},s.__workletHash=0xaaa2ec5b63b,s.__initData=t,s})({_worklet_11726045427259_init_data:f,distToTopEdge:B,autoscrollThreshold:R}),[]),x=(0,t.useDerivedValue)((function({_worklet_7914873790874_init_data:t,distToBottomEdge:o,autoscrollThreshold:l}){const s=function(){return o.value<=l};return s.__closure={distToBottomEdge:o,autoscrollThreshold:l},s.__workletHash=7914873790874,s.__initData=t,s})({_worklet_7914873790874_init_data:S,distToBottomEdge:J,autoscrollThreshold:R})),F=(0,t.useSharedValue)(0);return(0,t.useAnimatedReaction)((function({_worklet_14021221439128_init_data:t,isDraggingCell:o}){const l=function(){return o.value};return l.__closure={isDraggingCell:o},l.__workletHash=0xcc091ec5698,l.__initData=t,l})({_worklet_14021221439128_init_data:O,isDraggingCell:p}),(function({_worklet_17362022355714_init_data:t,scrollTarget:o,outerScrollOffset:l}){const s=function(t,s){t&&!s&&(o.value=l.value)};return s.__closure={scrollTarget:o,outerScrollOffset:l},s.__workletHash=0xfca692cd302,s.__initData=t,s})({_worklet_17362022355714_init_data:v,scrollTarget:F,outerScrollOffset:E}),[I]),(0,t.useDerivedValue)((function({_worklet_15221845355323_init_data:t,isAtTopEdge:o,isAtBottomEdge:l,isScrolledUp:s,isScrolledDown:c,scrollTarget:u,outerScrollOffset:n,SCROLL_POSITION_TOLERANCE:_,isDraggingCell:f,isTouchActiveNative:S,distToTopEdge:O,distToBottomEdge:v,autoscrollThreshold:T,autoscrollSpeed:h,runOnJS:E,scrollToInternal:N}){const C=function(){const t=o.value||l.value,C=o.value&&s.value,L=l.value&&c.value,A=C||L,D=Math.abs(u.value-n.value)>_,I=t&&!A&&f.value&&S.value&&!D,w=(1-(o.value?O.value:v.value)/T)*h,R=o.value?Math.max(0,n.value-w):n.value+w;I&&(u.value=R,E(N)(R))};return C.__closure={isAtTopEdge:o,isAtBottomEdge:l,isScrolledUp:s,isScrolledDown:c,scrollTarget:u,outerScrollOffset:n,SCROLL_POSITION_TOLERANCE:_,isDraggingCell:f,isTouchActiveNative:S,distToTopEdge:O,distToBottomEdge:v,autoscrollThreshold:T,autoscrollSpeed:h,runOnJS:E,scrollToInternal:N},C.__workletHash=0xdd81caf6b3b,C.__initData=t,C})({_worklet_15221845355323_init_data:T,isAtTopEdge:V,isAtBottomEdge:x,isScrolledUp:z,isScrolledDown:P,scrollTarget:F,outerScrollOffset:E,SCROLL_POSITION_TOLERANCE:l.SCROLL_POSITION_TOLERANCE,isDraggingCell:p,isTouchActiveNative:k,distToTopEdge:B,distToBottomEdge:J,autoscrollThreshold:R,autoscrollSpeed:w,runOnJS:t.runOnJS,scrollToInternal:function(t){var o;null===(o=C.current)||void 0===o||o.scrollTo({y:t,animated:!0})}}),[w,R,p]),null};var t=r(d[0]),o=r(d[1]),l=r(d[2]);const s={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs1(){const{hoverOffset,outerScrollOffset}=this.__closure;return hoverOffset.value-outerScrollOffset.value;}"},c={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs2(){const{outerScrollOffset,SCROLL_POSITION_TOLERANCE}=this.__closure;return outerScrollOffset.value-SCROLL_POSITION_TOLERANCE<=0;}"},u={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs3(){const{outerScrollOffset,containerSize,SCROLL_POSITION_TOLERANCE,scrollViewSize}=this.__closure;return outerScrollOffset.value+containerSize.value+SCROLL_POSITION_TOLERANCE>=scrollViewSize.value;}"},n={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs4(){const{hoverScreenOffset}=this.__closure;return Math.max(0,hoverScreenOffset.value);}"},_={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs5(){const{containerSize,hoverScreenOffset,activeCellSize}=this.__closure;const dist=containerSize.value-(hoverScreenOffset.value+activeCellSize.value);return Math.max(0,dist);}"},f={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs6(){const{distToTopEdge,autoscrollThreshold}=this.__closure;return distToTopEdge.value<=autoscrollThreshold;}"},S={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs7(){const{distToBottomEdge,autoscrollThreshold}=this.__closure;return distToBottomEdge.value<=autoscrollThreshold;}"},O={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs8(){const{isDraggingCell}=this.__closure;return isDraggingCell.value;}"},v={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs9(cur,prev){const{scrollTarget,outerScrollOffset}=this.__closure;if(cur&&!prev){scrollTarget.value=outerScrollOffset.value;}}"},T={code:"function reactNativeDraggableFlatlist_useNestedAutoScrollJs10(){const{isAtTopEdge,isAtBottomEdge,isScrolledUp,isScrolledDown,scrollTarget,outerScrollOffset,SCROLL_POSITION_TOLERANCE,isDraggingCell,isTouchActiveNative,distToTopEdge,distToBottomEdge,autoscrollThreshold,autoscrollSpeed,runOnJS,scrollToInternal}=this.__closure;const isAtEdge=isAtTopEdge.value||isAtBottomEdge.value;const topDisabled=isAtTopEdge.value&&isScrolledUp.value;const bottomDisabled=isAtBottomEdge.value&&isScrolledDown.value;const isEdgeDisabled=topDisabled||bottomDisabled;const scrollTargetDiff=Math.abs(scrollTarget.value-outerScrollOffset.value);const scrollInProgress=scrollTargetDiff>SCROLL_POSITION_TOLERANCE;const shouldScroll=isAtEdge&&!isEdgeDisabled&&isDraggingCell.value&&isTouchActiveNative.value&&!scrollInProgress;const distFromEdge=isAtTopEdge.value?distToTopEdge.value:distToBottomEdge.value;const speedPct=1-distFromEdge/autoscrollThreshold;const offset=speedPct*autoscrollSpeed;const targetOffset=isAtTopEdge.value?Math.max(0,outerScrollOffset.value-offset):outerScrollOffset.value+offset;if(shouldScroll){scrollTarget.value=targetOffset;runOnJS(scrollToInternal)(targetOffset);}}"}},2201,[1151,2200,2185]);
|
|
3528
3528
|
__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,"NestableScrollContainer",{enumerable:!0,get:function(){return S}});var t=e(r(d[0])),l=r(d[1]),n=r(d[2]),o=e(n),c=r(d[3]),f=r(d[4]);function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n])}return e},u.apply(this,arguments)}const i=o.default.createAnimatedComponent(l.ScrollView),s={code:"function reactNativeDraggableFlatlist_NestableScrollContainerJs1(_ref){const{outerScrollOffset}=this.__closure;let{contentOffset:contentOffset}=_ref;outerScrollOffset.value=contentOffset.y;}"};function _(e){const{outerScrollOffset:l,containerSize:o,scrollViewSize:_,scrollableRef:S,outerScrollEnabled:b}=(0,c.useSafeNestableScrollContainerContext)(),v=(0,n.useAnimatedScrollHandler)({onScroll:(function({_worklet_8746208410386_init_data:e,outerScrollOffset:t}){const l=function(e){let{contentOffset:l}=e;t.value=l.y};return l.__closure={outerScrollOffset:t},l.__workletHash=8746208410386,l.__initData=e,l})({_worklet_8746208410386_init_data:s,outerScrollOffset:l})}),O=(0,f.useStableCallback)(e=>{const{nativeEvent:{layout:t}}=e;o.value=t.height}),C=(0,f.useStableCallback)((t,l)=>{var n;_.value=l,null===(n=e.onContentSizeChange)||void 0===n||n.call(e,t,l)});return t.default.createElement(i,u({},e,{onLayout:O,onContentSizeChange:C,scrollEnabled:b,ref:S,scrollEventThrottle:1,onScroll:v}))}const S=t.default.forwardRef((e,l)=>t.default.createElement(c.NestableScrollContainerProvider,{forwardedRef:l||void 0},t.default.createElement(_,e)))},2202,[17,1690,1151,2200,2192]);
|
|
3529
3529
|
__d(function(g,r,i,a,m,e,d){},2203,[]);
|
|
3530
|
-
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"
|
|
3531
|
-
__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
|
|
3532
|
-
__d(function(g,r,i,a,m,
|
|
3533
|
-
__d(function(e,t,a,o,i,n,r){i.exports={devices:{editDevice:"Edit device",originalName:"Original name",customName:"Custom name",customNamePlaceholder:"Leave empty to use original",icon:"Icon",typeLight:"Light",typeSwitch:"Switch",typeCover:"Cover",typeLock:"Lock",typeAlarm:"Alarm",typeButton:"Button",typeSelect:"Select",typeSiren:"Siren",typeSensor:"Sensor",typeEntry:"Entry",typeMediaPlayer:"Media Player",typeScript:"Script",run:"Run",sourceHA:"Home Assistant",sourceScrypted:"Scrypted",off:"Off",on:"On",mute:"Mute",unmute:"Unmute",stop:"Stop",locked:"Locked",unlocked:"Unlocked",open:"Open",closed:"Closed",disarmed:"Disarmed",disarm:"Disarm"},common:{error:"Error",save:"Save",cancel:"Cancel",loading:"Loading...",comingSoon:"Coming soon",back:"Back",fullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen",reset:"Reset",selectAll:"Select all",deselectAll:"Deselect all",delete:"Delete",retry:"Retry"},grids:{newGrid:"New grid",deleteConfirm:"Delete this grid?",noGrids:"No grids yet. Create one to arrange cameras in a mosaic view.",createGrid:"Create grid",cameras:"cameras",notFound:"Grid not found.",noCameras:"No cameras in this grid. Edit the grid to add some.",edit:"Edit",addCamera:"Add camera",presets:"Presets",auto:"Auto",manual:"Manual",gridName:"Grid name",view:"View",addCameraHint:"Add at least one camera from the button above.",allCamerasAdded:"All cameras already in grid",cameraUnavailable:"Camera unavailable",camerasInGrid:"Cameras in grid",addAll:"Add all",addCameras:"Add Cameras",backToGrid:"Back to Grid",timelineNotSupported:"Timeline not supported"},nav:{cameras:"Cameras",grids:"Grids",library:"Library",notifications:"Notifications",events:"Events",videoclips:"Videoclips",list:"List",settings:"Settings"},cameras:{addCamera:"Add camera",pipActive:"PiP active",reorderEnable:"Reorder",reorderDisable:"Unlock",live:"Live",noCameras:"No cameras configured",noIntegrations:"No integrations configured. Add a system to get started.",createSystem:"Create system",importFrom:"Import cameras from",importSuccess:"Import complete",importCount:"{{count}} cameras imported",selectCamerasToImport:"Select cameras to import",selectAll:"Select all",deselectAll:"Deselect all",importSelected:"Import {{count}} selected",noCamerasFound:"No cameras found",play:"\u25b6 Play",paused:"Paused",noDataForDate:"No data for this date",recordingNotAvailable:"Recording not available",noEventsReel:"No recent events",settings:"Settings",highlightMotion:"Motion Highlight",highlightOnMotion:"Highlight on motion",highlightAudio:"Audio Highlight",audioMode:"Mode",audioModeOff:"Off",audioModeSensor:"Sensor",audioModeLevel:"Level",audioPreset:"Audio Preset",audioPresetCustom:"Custom",audioPresetCrying:"Crying / baby",audioPresetAlarm:"Alarm / siren",audioPresetDog:"Dog barking",audioPresetDoorbell:"Doorbell / knock",audioPresetGlass:"Glass break",audioWindow:"Window (s)",audioThreshold:"Threshold (dB)",audioHitPercentage:"Hit (%)",audioHoldSeconds:"Hold (s)",highlightDetection:"Object Detection Highlight",highlightOnDetection:"Highlight on detection",detectionClasses:"Classes",holdSeconds:"Hold (s)",rtspNotSupportedWeb:"RTSP streams are not supported on web. Use the mobile app.",liveDetections:"Live detections",filterTimeline:"Filter timeline",filterClasses:"Filter classes...",filterBySeverity:"Filter by severity",severityAlert:"Alert",severityDetection:"Detection",statusPosition:"Status Indicators Position",today:"Today",yesterday:"Yesterday",timeline:"Timeline",timelineEventsClusterEvents:"Events",selectDate:"Select a date",videoclipsNotSupported:"Videoclips not supported for this camera",noVideoclipsForDate:"No videoclips for this date",endOfList:"End of list",backToLive:"Back to live",goLive:"Go live",loadingClip:"Loading clip...",clusterDetailShowBbox:"Show bounding box on image",clusterDetailOpenVideoclip:"Open videoclip",clusterDetailLoadingEvents:"Loading events...",devices:"Devices",noAssociatedDevices:"No devices linked. Configure in Settings > Cameras.",timelineData:"Timeline data",timelineDataHint:"What to show on the timeline.",timelineDataVideoclips:"Videoclips",timelineDataAdvancedNotifier:"Advanced Notifier",timelineDataEvents:"Events",timelineEvents:"Timeline events",timelineEventsHint:"Which event types to show on the timeline, by severity.",timelinePresetAll:"All",timelinePresetImportant:"Important",timelinePresetCritical:"Critical",timelinePresetCustom:"Custom",statusBlock:"Status Block",sensorsBlock:"Sensors Block",position:"Position",indicators:"Indicators",downloadSnapshot:"Download Snapshot",exportDownloadClip:"Download Clip",exportRecordingWebOnly:"Recording export (web only)",exportSnapshot:"Export Snapshot",intercomError:"Intercom error",multiCam:"Multi-Camera",ptzNotSupported:"PTZ not supported",ptzSelectPreset:"Select PTZ Preset",snapshotFailed:"Snapshot failed"},events:{loading:"Loading events...",filterByLabel:"Filter by label",filterByLabelPlaceholder:"e.g. person, doorbell",filterByCamera:"Filter by camera",date:"Date",detectionTypes:"Detection types",source:"Source",cameras:"Cameras",groupingRange:"Grouping",groupingPresetMinutes:"{{m}} min",groupingCustom:"Custom",groupingCustomMinutes:"Minutes",groupingCustomApply:"Apply",today:"Today",noCamerasFromConfig:"Cameras loaded from EventsApp config",all:"All",typesCount:"{{count}} types",camerasCount:"{{count}} cameras",cols:"cols",sourceAuto:"Auto",sourceNVR:"NVR",sourceFrigate:"Frigate",sourceVideoClips:"VideoClips API",sourceRawDetection:"Raw",sourceAdvancedNotifier:"Advanced Notifier",detectionPerson:"Person",detectionVehicle:"Vehicle",detectionAnimal:"Animal",detectionAudio:"Audio",detectionFace:"Face",detectionPlate:"Plate",detectionPackage:"Package",detectionDoorbell:"Doorbell",detectionSensor:"Sensor",detectionMotion:"Motion",detectionRules:"Rules",noScryptedIntegration:"Add a Scrypted integration in Settings to view events.",frigateNoEvents:"Events are only available for Scrypted. Select a Scrypted instance in Settings.",noSource:"Add a Scrypted or Frigate integration in Settings, then select it as the Events/Videoclips source.",loadError:"Error loading events",noEvents:"No events for this date. Try changing the date or filters.",clearCacheTitle:"Clear cache",clearCacheMessage:"Clear all cached events and videoclips data? This will force a fresh fetch on next load.",clearCacheConfirm:"Clear",columnsPerRow:"Columns per row",onlyWithClips:"Only with clips",relatedClip:"Related Clip"},settings:{integrations:"Integrations",camstackProxy:"CamStack Proxy",scrypted:"Scrypted",frigate:"Frigate",rtsp:"RTSP",homeAssistant:"Home Assistant",name:"Name",baseUrl:"Base URL",urlLocal:"Local URL",urlPublic:"Public URL",username:"Username",password:"Password",token:"Token (optional)",frigateTokenHint:"Token (optional): JWT from browser",tokenRequired:"Token",testConnection:"Test connection",testLocal:"Test Local",testPublic:"Test Public",testMqtt:"Test MQTT",connectionOk:"Connection successful",connectionError:"Connection failed",scryptedCredentialsPromptTitle:"Scrypted login",scryptedCredentialsPromptSubtitle:"Enter your Scrypted username and password to connect.",scryptedCredentialsPromptSkip:"Skip for now",usernamePlaceholder:"admin",save:"Save",tabStream:"Stream & playback",tabGeneral:"General",data:"Data",clearCacheEventsClips:"Clear events & videoclips cache",eventsClipsSourceHint:"Source for Events and Videoclips tabs.",hubReelTitle:"Hub & Reel",reelIntegrationsHint:"Choose which integrations to use for the reel.",reelScryptedSourceHint:"When using Scrypted: event source for reel.",eventsClipsAuto:"Auto",eventsClipsNoInstance:"Add a Scrypted or Frigate integration first.",exportBackup:"Export backup",exportError:"Export failed",importBackup:"Import backup",importConfirm:"This will replace all cameras, integrations and settings with the backup data. Continue?",importSuccess:"Backup restored successfully",importError:"Import failed",uiPrototypes:"UI Prototypes",uiPrototypesHint:"Explore experimental timeline designs",versions:"Versions",appVersion:"App",nativeVersion:"Native",updateNow:"Update now",updateError:"Update failed",updateAvailableTitle:"Update Available",updateAvailableMessage:"A new version of CamStack has been downloaded and is ready to install. The app will restart to apply the update.",updateInstall:"Install & Restart",updateLater:"Later",tabIntegrations:"Integrations",tabCameras:"Camera settings",theme:"Theme",themeSystem:"System",themeLight:"Light",themeDark:"Dark",language:"Language",languageSystem:"System",languageEn:"English",languageIt:"Italiano",timelineMode:"Timeline Mode",timelineModeClassic:"Classic",timelineModeTheater:"Theater",timeline:"Timeline",timelineVisible:"Show detection timeline",timelineVisibleDescription:"Display the detection timeline panel in the camera view.",clusterSize:"Cluster card size",snapshotInterval:"Snapshot refresh interval",clusterSizeXS:"XS",clusterSizeS:"S",clusterSizeM:"M",clusterSizeL:"L",clusterSizeXL:"XL",highlightAppearance:"Highlight appearance",highlightAppearanceHint:"Color and border thickness for motion, audio, and detection highlights on camera streams.",highlightMotion:"Motion",highlightAudio:"Audio",highlightDetection:"Detection",highlightColor:"Color",highlightThickness:"Thickness",selectSection:"Select section",addSystem:"Add system",selectPlatform:"Select platform",deleteInstance:"Delete instance",deleteInstanceConfirm:"Are you sure you want to delete this instance?",delete:"Delete",mqttEvents:"MQTT - Real-time events",mqttBrokerUrl:"MQTT broker URL",mqttUsername:"MQTT username",mqttPassword:"MQTT password",mqttTopicPrefix:"Topic prefix (default: frigate)",mqttOptional:"Optional",scryptedAddressAlreadyUsed:"This Scrypted address is already configured. Only one instance per address is allowed.",scryptedAdvancedNotifierRequired:"The Advanced Notifier plugin is required for the connection.",scryptedCorsTitle:"CORS configuration required (Web)",scryptedCorsBody:"In Scrypted, open the Cloud plugin settings and add your domain ({{domain}}) to the CORS Allowed Origins list. Without this, the browser will block requests to your Scrypted server.",scryptedUrlHint:"Local URL is tried first (e.g. on LAN), then public URL. At least one required.",gridLayout:"Grid layout",gridLayoutHint:"Display options for the cameras grid.",gridColumns:"Grid columns",gridColumnsHint:"Number of cameras per row. Auto = 1 on mobile, 4 on tablet.",gridShowName:"Show camera name",gridShowState:"Show state (battery, recording, sleeping)",reorderCameras:"Reorder cameras",reorderCamerasHint:"Drag to reorder cameras",reorderDone:"Done",manageCameras:"Manage cameras",manageCamerasHint:"Remove cameras from the app.",downloadSnapshot:"Download snapshot",snapshotFailed:"Could not fetch snapshot",exportSnapshot:"Snapshot",exportDownloadClip:"Download clip",exportStartRecording:"Start recording",exportStopRecording:"Stop recording",exportRecordingWebOnly:"Recording available on web",intercomError:"Intercom unavailable. Check camera credentials in Scrypted.",deleteCamera:"Remove camera",deleteCameraConfirm:"Remove {{name}} from the app?",streamPlayback:"Stream & playback",playOnOpen:"Start stream when opening camera",playOnOpenHint:"Automatically load the live stream when you open a camera.",audioOnOpen:"Unmute audio when opening",audioOnOpenHint:"Play audio when opening a camera (if supported).",streamWatchdog:"Stream watchdog",streamWatchdogHint:"Restart stream when no data received (helps with stalled connections).",cameraPlayer:"Camera player",webViewCameraDetail:"Use WebView player",webViewCameraDetailHint:"Use WebView for Scrypted cameras (faster first frame, more stable). PiP, fullscreen and intercom work. Default: native player.",streamQuality:"Stream quality",streamQualitySingle:"Single camera quality",streamQualityGrid:"Grid quality",qualityAuto:"Auto",qualityHigh:"High",qualityMedium:"Mid",qualityLow:"Sub",auto:"Auto",associatedDevices:"Associated devices",associatedDevicesHint:"Add actuators (lights, switches, covers, etc.) to control from the camera view.",linkedDevices:"Linked",reorderHint:"Use arrows to reorder",addDevice:"Add device",noEligibleDevices:"No Scrypted or Home Assistant configured. Add an integration first.",configureDevices:"Configure devices",cameraSettingsHint:"Choose a camera to configure its specific options.",noCamerasConfigured:"No cameras configured.",searchDevices:"Search devices...",source:"Source",type:"Type",all:"All",noMatchingDevices:"No devices match the filters.",frigateStream:"Frigate Stream",frigateStreamSourceHint:"Stream source: WebRTC (default), RTSP, or MJPEG.",frigateStreamMapping:"Stream mapping (go2rtc names from config)",frigateStreamMappingHint:"Select from available go2rtc streams. Order: Main, Sub, Low.",frigateSelectStream:"Select stream",frigateAddStream:"Add stream",frigateInfo:"Camera info",frigateShowConfig:"Show config",frigateShowGo2rtc:"Show go2rtc",frigateMissingConfig:"Missing baseUrl or cameraName in camera config.",tabLogs:"Logs",logsCount:"{{count}} entries",logsDownload:"Download",logsClear:"Clear",logsEmpty:"No logs yet. Console output will appear here.",logsExportError:"Export failed",logsExportTitle:"Export logs",logsClearConfirmTitle:"Clear logs",logsClearConfirmMessage:"Remove all log entries?",hubAppearanceTitle:"Appearance",hubAppearanceDesc:"Theme, language, timeline and highlights",hubCamerasTitle:"Cameras",hubCamerasDesc:"Grid layout, stream quality and camera management",hubIntegrationsTitle:"Integrations",hubIntegrationsDesc:"Manage Scrypted, Frigate and other systems",hubAdvancedTitle:"Advanced",hubAdvancedDesc:"Data backup and cache management",hubLogsTitle:"Logs",hubLogsDesc:"View and export application logs",hubCacheTitle:"Cache",frigateAutoSnap:"Auto Snapshot",frigateSegmentNav:"Segment Navigation",frigateShowGo:"Show Go2RTC",frigateTimeline:"Timeline",reelCameras:"Reel Cameras",reelCamerasHint:"Select which cameras appear in the events reel",reelDeselectAll:"Deselect All",reelDetectionClasses:"Detection Classes",reelDetectionClassesHint:"Filter events by detection class",reelIncludeRuleArtifacts:"Include Rule Artifacts",reelIncludeRuleArtifactsHint:"Show rule-based events in the reel",reelRuleArtifacts:"Rule Artifacts",reelSelectAll:"Select All",reelBadgeContent:"Badge content",reelBadgePosition:"Badge position",reelBadgeSize:"Badge size",reelBadgeBoth:"Time + Class",reelBadgeTime:"Time only",reelBadgeClass:"Class only",reelBadgeNone:"Hidden",reelBadgeSmall:"Small",reelBadgeMedium:"Medium",reelBadgeLarge:"Large"},reel:{filterMotion:"Motion",filterOnlyRules:"Only rules",filterOnlySensors:"Only sensors",goToMostRecent:"Go to most recent"},v2:{common:{connecting:"Connecting\u2026",online:"Online",offline:"Offline",loadError:"Loading error",create:"Create",back:"Back",on:"On",off:"Off"},cameras:{empty:"No cameras",hubNotAnswering:"The hub isn't answering. Some cameras may belong to a node that is currently offline \u2014 pull to retry.",statusOnline:" \xb7 online",statusOffline:" \xb7 offline",unavailable:"Unavailable",motion:"Motion",doorbell:"Doorbell",doorbellRinging:"Ringing",doorbellLastRing:"Ring {{time}} ago",snapshotLoading:"Loading\u2026",refreshing:"Updating\u2026",parkedFor:"parked {{min}}m",manage:"Manage cameras",manageHint:"Drag to reorder. Rename inline. Toggle to show or hide a camera from the list.",reorderHandle:"Drag to reorder",appearance:"Appearance",editList:"Edit list",listOptions:"Camera list options",disabledTitle:"Out of service",disabledHint:"Disabled by an administrator",noSnapshotYet:"No snapshot yet",emptyOutOfScope:"No cameras in your access profile",emptyOutOfScopeHint:"Your account has no cameras assigned to it yet. Ask whoever administers this hub to grant you access.",snapshotStale:"Snapshot {{age}} old"},cameraDetail:{fallbackName:"Camera #{{id}}",mute:"Mute",unmute:"Unmute",snapshot:"Snapshot",snapshotFailed:"Could not capture a snapshot.",ptz:"PTZ controls",talk:"Talk",fullscreen:"Fullscreen",talkFailed:"Could not start talk-back. Check microphone access.",pip:"Picture in Picture",exitFullscreen:"Exit fullscreen",devices:"Devices",devicesEmpty:"No connected devices.",linkedModeAuto:"Link: Auto (same location)",linkedModeManual:"Link: Manual",motionBoxes:"Motion boxes",close:"Close",deviceOnline:"Online",deviceOffline:"Offline"},grids:{createA11y:"Create grid",empty:"No grids",emptyHint:"Tap + to create your first grid",countNone:"No cameras",countOne:"1 camera",countOther:"{{count}} cameras",defaultName:"New grid",deleteTitle:"Delete grid",deleteConfirm:"Delete \"{{name}}\"? This cannot be undone.",export:"Export",exportAllA11y:"Export all grids",shareA11y:"Share grid",editA11y:"Edit grid",deleteA11y:"Delete grid",linkCopied:"Grid link copied to clipboard",layoutAuto:"Auto",layoutColumns:"{{count}} cols"},gridView:{editA11y:"Edit grid",fallbackTitle:"Grid",notFound:"Grid not found",emptyGrid:"This grid is empty",addCameras:"Add cameras",reorderTitle:"Reorder cameras",reorderA11y:"Reorder cameras",reorderDoneA11y:"Done reordering",allHidden:"All cameras are hidden. Use reorder mode to show some.",dragA11y:"Drag to reorder",hideA11y:"Hide from grid",showA11y:"Show in grid",removeA11y:"Remove from grid",adhocTitle:"Quick grid",cellActions:"Camera actions",cellActionsA11y:"More actions for this camera",cellDevicesA11y:"Linked devices",cellMenuA11y:"View options"},gridBuilder:{title:"Edit grid",nameLabel:"Name",namePlaceholder:"Grid name",camerasSelected:"Cameras ({{count}} selected)",optionsTitle:"Options",showName:"Show camera name",export:"Export grid",orderSection:"In the grid",orderHint:"Drag to reorder",emptyOrder:"No cameras yet \u2014 add some below.",addSection:"Add cameras",removeA11y:"Remove from grid",addA11y:"Add to grid",highlightMotion:"On motion",highlightAudio:"On audio",highlightAudioOff:"Off",highlightAudioSensor:"Presence",highlightAudioLevel:"Level",highlightThreshold:"Threshold",highlightHold:"Hold",highlightDetection:"On detection",clusterLabel:"Cluster label",clusterLabelIcon:"Icon",clusterLabelText:"Text"},gridBar:{back:"Back",pauseAll:"Pause all",playAll:"Play all",audio:"Audio",quality:"Stream quality",layout:"Layout",timeline:"Timeline",highlightMenu:"Highlight & overlays",activeOnly:"Active only",share:"Share grid",edit:"Edit grid",hide:"Hide controls",show:"Show controls",muteAll:"Mute all",unmuteAll:"Unmute all"},gridMenu:{highlightMaster:"Highlight borders"},gridShare:{title:"Share \"{{name}}\"",quality:"Stream quality",layout:"Layout",showNames:"Show camera names",activeOnly:"Active cameras only",boxes:"Bounding boxes",highlightEnable:"Highlight",audioSummary:"Audio starts on for {{count}} camera(s)",ttlTitle:"Link expires",ttl_1d:"1 day",ttl_7d:"7 days",ttl_30d:"30 days",ttl_never:"Forever",tokenNotice:"The link includes a view-only access token limited to these cameras. Anyone with the link can watch until it expires or is revoked.",copyLink:"Copy link",creating:"Creating link\u2026",copiedExpires:"Link copied \u2014 expires {{date}}",copiedNever:"Link copied \u2014 never expires",error:"Could not create the share link. Check the connection and try again.",optionAuto:"Auto",optionHigh:"High",optionMedium:"Mid",optionLow:"Low"},gridControls:{play:"Play",pause:"Pause",mute:"Mute",unmute:"Unmute",quality:"Quality",layout:"Layout",layoutAuto:"Auto"},events:{comingSoon:"Events \u2014 coming soon",searchLabel:"Search label\u2026",searchSubmit:"Search",searchClear:"Clear search",empty:"No events",today:"Today",filteredEmpty:"No matches in the loaded range",loadOlder:"Load older",selectPrompt:"Select an event to see its detail",filters:"Filters",all:"All",day:"Day",sort:"Sort",sortTime:"Newest",sortImportance:"Importance",flaggedOnly:"Flagged",flaggedOnlyHint:"Favourited, debug, or marked for training",cameras:"Cameras",classes:"Classes",search:"Search",searchCameras:"Search cameras\u2026",searchClasses:"Search classes\u2026",allCamerasHint:"None = all",allClassesHint:"None = all",done:"Done",density:"Density",selectHint:"Select an event",unrecognizedFace:"Face detected, not recognised",eventKinds:"Event types",displayOptions:"Display",displayTitle:"Display options"},settings:{themeSystem:"System",themeDark:"Dark",themeLight:"Light",server:"Server",hubActive:"Active hub",changeServer:"Change server",signOut:"Sign out",network:"Network",networkNone:"No routes probed yet",endpointUnlikely:"Unlikely usable",reprobe:"Re-probe routes",reprobing:"Probing\u2026",appearance:"Appearance",theme:"Theme",info:"Info",app:"App",version:"Version",noServer:"No server",footerNote:"CamStack Viewer connects to a single camstack hub. Cameras, grids and events are managed by the server.",language:"Language",langSystem:"System",gridDefaults:"Grid defaults",showName:"Show camera name",showNameHint:"Overlay the camera name on each tile",showState:"Show status badge",showStateHint:"Show online / recording state on each tile",columns:"Columns",cameraOrder:"Camera order",orderName:"By name",orderCustom:"Custom",motionHold:"Motion highlight linger",motionHoldHint:"Keep a tile's motion highlight lit this long after motion stops.",motionHoldOff:"Off",streamQuality:"Stream quality",streamDefaults:"Stream defaults",playOnOpen:"Play on open",playOnOpenHint:"Start the live stream when a camera opens",audioOnOpen:"Audio on open",audioOnOpenHint:"Unmute audio when a camera opens",snapshotInterval:"Snapshot refresh",highlightAppearance:"Highlight appearance",highlightMotionColor:"Motion color",highlightAudioColor:"Audio color",highlightDetectionColor:"Detection color",highlightThickness:"Border thickness",qualityAuto:"Auto",qualityHigh:"High",qualityMid:"Medium",qualityLow:"Low",secondsValue:"{{count}}s",advanced:"Advanced",clearCache:"Clear cache",clearCacheHint:"Free up snapshots and cached data (keeps your server and settings)",clearCacheConfirmTitle:"Clear cache?",clearCacheConfirmBody:"This removes cached images and query data. Your server, sign-in and settings are kept.",clearCacheDone:"Cache cleared",exportSettings:"Export settings",exportSettingsHint:"Copy your settings as JSON",exportSettingsDone:"Settings copied as JSON",viewLogs:"View logs",viewLogsHint:"Recent in-app log messages",logsEmpty:"No logs recorded yet",keepLogs:"Keep logs",keepLogsHint:"Record a rolling buffer of in-app log messages",debugMode:"Debug mode",debugModeHint:"Verbose logs across live, playback and scrub \u2014 sent to the server",logsClear:"Clear",resetSettings:"Reset settings",resetSettingsHint:"Restore all defaults",resetConfirmTitle:"Reset settings?",resetConfirmBody:"This restores all settings to their defaults.",cancel:"Cancel",confirm:"Confirm",timeline:"Timeline",reel:"Event reel",reelThumbSize:"Reel thumbnail size",reelThumbSizeHint:"Size of the tiles in the Recent events reel.",reelSizeSmall:"Small",reelSizeMedium:"Medium",reelSizeLarge:"Large",reelShowLabels:"Show labels",reelShowLabelsHint:"Show the class/identity label on reel items.",reelLabelStyle:"Class display",reelLabelStyleHint:"Show the detection class as an icon or as text on reel items.",reelShowImportance:"Show importance",reelShowImportanceHint:"Show the importance badge on reel items.",events:"Events",eventsPage:"Events page",minImportance:"Minimum importance",minImportanceHint:"Hide events scored below this across the events page and the camera timeline.",minImportanceOff:"Off",tileShowLabels:"Show labels",tileShowLabelsHint:"Show the class / identity / audio labels on event cards.",tileShowImportance:"Show importance",tileShowImportanceHint:"Show the importance badge on event cards (when scored).",tileShowCameraName:"Show camera name",tileShowCameraNameHint:"Show the camera name in the event card footer.",tileLabelStyle:"Class display",tileLabelStyleHint:"Show the detection class as an icon or as text.",tileLabelStyleIcon:"Icon",tileLabelStyleText:"Text",comingSoon:"Coming soon",cameras:"Cameras",manageCameras:"Manage cameras",manageCamerasHint:"Rename, hide, reorder",notifications:"Notifications",notificationsManage:"Manage notifications",pinchExpandsHeight:"Pinch enlarges the view",pinchExpandsHeightHint:"Pinching to zoom also grows the video taller (crops the side edges on 16:9 cameras).","timeline.gapPercent":"Cluster gap (%)","timeline.sizePercent":"Cluster size (%)","timeline.indicatorPositionPct":"Indicator position (%)","timeline.showImportance":"Show importance on items","timeline.showClass":"Show detection class on items","timeline.cardWidthPct":"Card width (%)",haptics:"Vibration",hapticsUiFeedback:"Vibrate on press",hapticsUiFeedbackHint:"A short buzz confirms buttons, switches, PTZ and player controls. Native only (iOS/Android).",hapticsEnabled:"Vibrate on events",hapticsEnabledHint:"Small vibration pulses for key events on the camera you're watching. Native only (iOS/Android).",hapticsMotion:"Motion",hapticsDetection:"Detection",hapticsPerson:"Person / recognized",buildNumber:"Build",runtimeVersion:"Runtime",runningBundle:"Running bundle",checkUpdates:"Check for updates",checkingUpdates:"Checking\u2026",updateUpToDate:"You're on the latest version.",updatesDisabled:"Updates are disabled in this build.",updateReadyTitle:"Update downloaded",updateReadyBody:"Restart the app now to apply it?",updateCheckFailed:"Could not check for updates",listOverlays:"Camera cards",listMotionBorder:"Motion ring",listMotionBorderHint:"Pulse a ring around a card while the camera sees motion.",listMotionBadge:"Motion badge position",listOccupancy:"Occupancy position",useNativeRenderer:"Use the built-in renderer",useNativeRendererHint:"Render Recent and Events inside the app instead of loading the hub-hosted embed."},nc:{title:"Notifications",tabs:{rules:"Rules",targets:"Targets",snooze:"Snooze"},rulesPlaceholder:"Notification rules will appear here.",targetsPlaceholder:"Delivery targets will appear here.",rules:{add:"New rule",empty:"No rules yet.",loadError:"Couldn't load rules. Pull to retry.",mine:"My rules",admin:"Admin rules",system:"System events",personalBadge:"Personal",adminBadge:"Admin",edit:"Edit",delete:"Delete",cancel:"Cancel",deleteConfirmTitle:"Delete rule",deleteConfirmMessage:"Delete \"{{name}}\"? This can't be undone.",receiveOn:"Receive on {{name}}",noOwnedTargets:"This rule doesn't deliver to any of your targets.",mediaBadge:{attach:{"best-matching":"Matching image",keyFrame:"Key frame",none:"No image"},frame:{full:"Whole scene",boxed:"Boxed scene"},zoneCrop:"Zone crop",gif:"GIF",clip:"Clip",profile:"{{profile}} quality"},editor:{createTitle:"New rule",editTitle:"Edit \"{{name}}\"",basics:"Basics",nameLabel:"Name",namePlaceholder:"e.g. Front door people",triggerLabel:"Trigger",priorityLabel:"Priority",targetsLabel:"Deliver to",noTargets:"You have no targets yet. Add one under the Targets tab first.",pickTarget:"Pick at least one target.",conditionsLabel:"Conditions",condition:{systemEvent:"System event"},moreConditionsLabel:"More conditions",showAdvanced:"Show advanced",noConditions:"No conditions available.",notForTrigger:"Not for this trigger",notForTriggerHint:"Not evaluated for the selected trigger \u2014 switch the trigger to use it.",mediaLabel:"Media",attachLabel:"Attachment",frameLabel:"Picture shows",frame:{cropped:"The subject",full:"The whole scene",boxed:"The scene, with boxes"},zoneCropLabel:"Crop to the zone",zoneCropHint:"Crop the picture to the rule's zone instead of the subject or the whole scene.",gifLabel:"Attach a GIF",gifHint:"A short animation cut from the live buffer around the moment \u2014 the camera does not have to be recording.",clipLabel:"Attach a video clip",clipHint:"An MP4 of the same cut. Destinations that take no video still get the picture.",preRollLabel:"Seconds before",postRollLabel:"Seconds after",profileLabel:"Footage quality",profile:{auto:"Automatic",high:"High",mid:"Medium",low:"Low"},templateLabel:"Message (optional)",templateTitleLabel:"Title",templateBodyLabel:"Body",templatePlaceholder:"Supports {{var}} placeholders",save:"Save changes",create:"Create rule",addValue:"Add value\u2026",removeTag:"Remove {{value}}",clear:"Clear",noCameras:"No cameras available \u2014 the rule applies to all devices.",zoneId:"Zone id\u2026",plateText:"Plate text\u2026",maxDistance:"Max distance",waitForEnhancementLabel:"Wait for recognition",waitForEnhancementHint:"On: one notification at the end of the track, with the name. Off: one straight away without the name, plus a second one if the name arrives before the track ends.",recognition:{noIdentities:"No people saved yet. Add one from an event's face.",unknownIdentities:"Selected but not in the gallery (a deleted person, or an old rule saved by name). Remove what no longer applies.",identities:{off:"Anyone",anyKnown:"Known",specific:"These people",offHint:"The rule does not care who it is \u2014 someone unrecognised matches too.",anyKnownHint:"Only people saved in the gallery, whoever they are. A stranger does not match.",specificHint:"Only the people selected here. Matched on the saved person, so renaming them does not break the rule."},plates:{off:"Any vehicle",anyKnown:"Any plate",specific:"These plates",offHint:"The rule does not care about the plate \u2014 a vehicle whose plate could not be read matches too.",anyKnownHint:"Only vehicles whose plate was actually read, whatever it said.",specificHint:"Only these plates, matched tolerantly \u2014 plate reading is never perfect."}},customZones:{empty:"No custom zones yet. Pick a camera and draw one.",pickCamera:"Camera to draw over",noCameras:"No online cameras to draw over.",draw:"Draw zone",zoneLabel:"Zone {{index}} ({{count}} pts)",remove:"Remove zone {{index}}",title:"Draw zone \u2014 {{name}}",hint:"Tap to add points, drag a point to move. Tap the first point to close.",loading:"Loading frame\u2026",cancel:"Cancel",clear:"Clear",close:"Close",confirm:"Confirm"},addWindow:"Add window",scheduleAlways:"Always active \u2014 add a window to restrict when the rule fires.",scheduleInvert:"Active outside the windows",delivery:{immediate:"Immediate",trackEnd:"Track end",deviceEvent:"Device event",packageEvent:"Package event",systemEvent:"System event"},systemKinds:{"device-online":"Device online","device-offline":"Device offline","device-disabled":"Device switched off","device-enabled":"Device switched on","camera-online":"Camera online","camera-offline":"Camera offline","camera-disabled":"Camera switched off","camera-enabled":"Camera switched on","stream-online":"Stream online","stream-offline":"Stream offline","node-online":"Node online","node-offline":"Node offline","node-inference-unavailable":"Node has no usable inference device","detection-blind":"Camera detecting nothing","alarm-arm-refused":"Alarm arming refused","alarm-arming":"Alarm arming","alarm-triggered":"Alarm triggered","alarm-armed":"Alarm armed","alarm-disarmed":"Alarm disarmed","addon-update-available":"Addon update available","server-update-available":"Server update available","addon-updated":"Addons updated","server-updated":"Server updated","export-completed":"Export completed"},systemFilters:{cameras:"Only these cameras (optional)",deviceTypes:"Only these device types (optional)",nodes:"Only these node IDs (optional)",packages:"Only these addon packages (optional)",addNode:"Add node ID\u2026",addPackage:"Add package name\u2026"},media:{best:"Best image",bestMatching:"Best matching",keyFrame:"Key frame",none:"No attachment"},source:{any:"Any",pipeline:"Pipeline",onboard:"Onboard",sensor:"Sensor",audio:"Audio"},phase:{delivered:"Delivered","picked-up":"Picked up",both:"Both"},zoneMatch:{any:"Any of",all:"All of"},group:{scope:"Scope",class:"Classes",zones:"Zones",quality:"Quality",label:"Identity & plates",device:"Device event",package:"Package",system:"System events",schedule:"Schedule",occupancy:"Occupancy",audio:"Sound"},taxonomy:{person:"People",vehicle:"Vehicles",animal:"Animals",audio:"Audio",sensor:"Sensors",control:"Controls",custom:"Custom values",addCustom:"Add a custom value\u2026"},weekday:{mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat",sun:"Sun"},crossing:{unset:"Entering",exit:"Leaving",any:"Either"},deviceStateNone:"Not set \u2014 this rule is never gated on another device.",deviceStateSet:"Only while device {{deviceId}} is: {{states}}. Change it from the admin UI \u2014 this app cannot list every device.",sceneGateNone:"Not set \u2014 this rule is never gated on a scene.",sceneGateSet:"Only while scene {{sceneId}} is {{state}}, reading {{read}}. Pick the scene from the admin UI \u2014 this app cannot list them.",sceneReadDefault:"whichever boolean the scene itself uses",sceneReadLatched:"the latch (since it was armed)",sceneReadLive:"the live verdict",sceneState:{matched:"matched (as captured)",diverged:"diverged (changed)"},occupancy:{zoneLabel:"Zone",wholeFrame:"\u2014 whole frame \u2014",zonesLoading:"Loading zones\u2026",zonesNeedCamera:"Pick the cameras above to choose one of their zones.",zonesNone:"These cameras have no zones \u2014 the count covers the whole frame.",zoneMissing:"Zone \"{{id}}\" no longer exists on these cameras. The rule still stores it and will never fire until you pick another scope.",classLabel:"Class",anyClass:"\u2014 any class \u2014",classesNone:"The hub sent no class vocabulary \u2014 the count covers every class.",classMissing:"\"{{name}}\" is not a class these cameras report. The rule still stores it and will never fire until you pick another one.",opLabel:"Fires when",op:{"became-occupied":"Became occupied","became-free":"Became free",">=":"Count \u2265","<=":"Count \u2264"},thresholdLabel:"Threshold",countLabel:"Count",sustainLabel:"Hold for (seconds)",sustainInstantHint:"A 0-second hold fires on the very first frame that crosses \u2014 expect repeat notifications from a subject that walks the edge of the zone. 15 seconds is the usual choice.",hint:"Counts confirmed tracked objects from zone analytics. The change must hold for the whole window before it fires; with no snapshot for the camera or zone the rule never fires.",classesDropped:"The class filter ({{classes}}) is dropped on save: an occupancy edge carries one class, so it would only stop this rule from ever firing. Scope the class above instead."},audio:{modeLabel:"How it fires",modeLabelOption:"\ud83d\udd0e Sounds",modeLevelOption:"\ud83d\udcc8 Volume",modeLabelHint:"Fires on the FIRST frame the classifier hears one of these sounds \u2014 no sampling window, however brief the sound is. The rule's cooldown is the only throttle.",modeLevelHint:"Fires when the sound stays loud enough for long enough: the window below is the whole condition.",labelsLabel:"Sounds",labelsHint:"Pick at least one. The classifier labels only a frame or two per episode, so a percentage of a window could never confirm them \u2014 that is why this mode has no window.",labelsUnknown:"This rule stores {{labels}}, which this hub does not classify. It is kept as-is; tap it to drop it.",dbLabel:"Louder than (dBFS)",dbHint:"dBFS is negative-going: 0 is full scale, \u221296 is silence \u2014 so a HIGHER number is a NARROWER filter. Measured on this hub, a baby crying reads \u221255 to \u221226 dBFS, so a floor above \u221255 excludes most of it.",hitPercentLabel:"Hits in the window (%)",hitPercentHint:"How much of the window must match before it fires. Default 60%.",samplingLabel:"Window (seconds)",samplingHint:"The window must be FULL before it can match \u2014 a half-open window never fires. Default 10s.",failClosedHint:"Pick at least one sound or set a level floor. With neither, every sample is a hit and the hub refuses the rule rather than notifying on silence.",hint:"Fires on sustained SOUND, not on a picture: a rule with this condition is evaluated only on a confirmed audio window, never on a detection or a track. The cameras it covers need audio analysis enabled."}}},targets:{add:"Add target",empty:"No targets yet. Add one to start receiving notifications.",loadError:"Couldn't load your targets. Pull to retry.",pickKind:"Choose a notification kind",noKinds:"No notification kinds are available.",kindUnavailable:"unavailable",test:"Send test",testing:"Sending\u2026",testOk:"Test delivered",testFail:"Test failed",edit:"Edit",delete:"Delete",cancel:"Cancel",save:"Save changes",create:"Create target",addTitle:"Add {{kind}} target",editTitle:"Edit {{name}}",deleteConfirmTitle:"Delete target",deleteConfirmMessage:"Delete \"{{name}}\"? This can't be undone.",form:{details:"Details",config:"Configuration",nameLabel:"Name",nameHint:"A label to recognize this target.",secretHint:"Leave blank to keep the saved value."}},snooze:{title:"Snooze",intro:"A snooze silences YOU, not the household \u2014 unless a rule says otherwise. It ends by itself.",activeNone:"Nothing is snoozed.",active:"Silenced now",past:"Recently ended",openTitle:"Silence for",scopeLabel:"What to silence",everything:"Everything",aRule:"One rule",aCamera:"One camera",chooseRule:"Choose a rule",chooseCamera:"Choose a camera",camerasLoading:"Loading your cameras\u2026",noCameras:"No cameras to silence.",globalLabel:"Silence it for everyone",globalHelp:"Other people stop being notified too.",globalNotAllowed:"This rule can only be silenced for you.",summaryLabel:"Tell me what I missed",summaryHelp:"A summary arrives when the window ends.",endNow:"End now",endsIn:"ends in {{label}}",everyone:"for everyone",loadError:"Couldn't load your snoozes.",createError:"Couldn't start that snooze.",classesTitle:"Only these",classesHelp:"Leave this alone and the window covers everything. Pick classes to silence only those \u2014 the rest still reaches you.",everyClass:"Everything",durations:{m10:"10 min",m30:"30 min",h1:"1 hour"},scope:{rule:"One rule",device:"One camera",all:"Everything"},remaining:{ended:"over",minutes:"{{minutes}} min",hours:"{{hours}}h",hoursMinutes:"{{hours}}h {{minutes}}m"},viewOnly:"Your account can see snoozes but not open one."}},login:{loginFailed:"Login failed",verifyFailed:"Verification failed",serverUrl:"Server URL",username:"Username",password:"Password",showPassword:"Show password",hidePassword:"Hide password",signIn:"Sign in",signingIn:"Signing in\u2026",twoFactor:"Two-factor authentication",totpHint:"Enter the 6-digit code from your authenticator app to sign in as ",verificationCode:"Verification code",verifyAndSignIn:"Verify and sign in",verifying:"Verifying\u2026",back:"Back",or:"or",signInWithCamStack:"Sign in with CamStack",hubSignInHint:"Opens your hub\u2019s login page and links this app without typing your password here.",handoffFailed:"Sign-in with CamStack failed \u2014 try again or use username and password",invalidServerUrl:"Enter a valid server URL (https://\u2026) first"},live:{webUnsupported:"Live view is not available on the web version yet.",connecting:"Connecting to live stream\u2026",error:"Unable to load the live stream.",retry:"Retry",noConnection:"No connection to the server",failed:"Connection failed",errorPageLoad:"The player page failed to load."},ptz:{title:"PTZ",notAvailable:"PTZ controls are not available for this camera.",zoom:"Zoom",home:"Home position",presets:"Presets",noPresets:"No presets saved."},timeline:{activityTitle:"Activity",last24h:"Last 24h",loading:"Loading activity\u2026",noActivity:"No activity in the last 24 hours.",legendRecording:"Recorded",legendMotion:"Motion",legendAudio:"Audio",showTimeline:"Show timeline",hideTimeline:"Hide timeline",faultStream:"The video stream is unavailable.",faultRecordings:"Couldn't load the recordings for this day.",faultEvents:"Couldn't load this day's events.",faultDismiss:"Dismiss",loadRetry:"Retry",loadRetrying:"Retrying\u2026"},theater:{back:"Back",today:"Today",yesterday:"Yesterday",prevDay:"Previous day",nextDay:"Next day",selectDate:"Pick a date",live:"LIVE",now:"NOW",auto:"Auto",quality:"Stream quality",filterAll:"All",filter_motion:"Motion",filter_audio:"Audio",goToLive:"Go to live",liveLockOn:"Live lock on \u2014 browsing keeps the picture live",liveLockOff:"Live lock off \u2014 browsing plays the recording",recordLive:"Record live",stopRecording:"Stop recording",keepClipTitle:"Keep this clip?",discardClip:"Discard",saveToGallery:"Save to Photos",shareClip:"Share",recordFailed:"Could not record the live view",noRecording:"No recording",noRecordingHint:"No footage at this time",detailCount:"{{frames}} frames \xb7 {{count}} detections",detailTracks:"{{tracks}} tracks \xb7 {{count}} detections",detailEmpty:"No detail images for this moment",detailSeek:"Go to this moment",zoneHint:"Drag a rectangle over the video to filter events by zone",zoneConfirm:"Confirm",zoneCancel:"Cancel",playbackBar:"Playback controls",footerBar:"Timeline tools",filterTitle:"Filters",zoomIn:"Zoom in",zoomOut:"Zoom out",zoneFilter:"Zone filter",detailSubjects_one:"{{count}} subject",detailSubjects_other:"{{count}} subjects",zoneModeRect:"Rectangle",zoneModePolygon:"Polygon",zoneClearPoints:"Clear",zoneHintPolygon:"Tap to add points \u2014 3 or more",selectTime:"Time",goSameTime:"Go \u2014 same time of day",recordingDaysFailed:"Couldn't read which days have recordings."},mediaKind:{crop:"Object crop",thumbnail:"Best shot",faceCrop:"Face",plateCrop:"Plate",fullFrame:"Frame",fullFrameBoxed:"Boxed",keyFrame:"Key frame",firstFrame:"First",lastFrame:"Last",snapshot:"Snapshot"},tracks:{crop:"Crop",fullFrame:"Full frame",bestShot:"Best shot",media:"Media",path:"Path",pathSummary:"{{count}} points \xb7 {{seconds}}s",pathNoLocalization:"no precise position",share:"Share",copyLink:"Copy link",linkCopied:"Link copied",shareImage:"Share image",viewFullRes:"Full resolution",fullResBadge:"Full",zones:"Zones",audio:"Audio",reason:"Why notable",empty:"No tracks",recent:"Recent",searchPlaceholder:"Search events (e.g. \"person in red\")",searchSubmit:"Search",searchClear:"Clear search",noMatches:"No matching events",person:"Person",assignPerson:"Assign to person",changePerson:"Change",notAssigned:"Not assigned",matchConfidence:"Match confidence",suggested:"Suggested",suggestedUnknown:"Suggested person",suggestedConfirm:"Confirm",suggestedDismiss:"Dismiss",assignFaceTitle:"Assign face",newPersonPlaceholder:"New person name\u2026",createAndAssign:"Create & assign",assignFailed:"Couldn't assign the face",removePerson:"Remove person",removePersonConfirmTitle:"Remove person?",removePersonConfirmBody:"This unlinks the person from this face. The face returns to the unassigned buffer and can be reassigned later.",disassociateFailed:"Couldn't remove the person",removePersonAll:"Remove from all events",removePersonAllConfirmTitle:"Remove from all events?",removePersonAllConfirmBody:"This unlinks this person from EVERY event. All faces currently recognized as this person return to the unassigned buffer and can be reassigned later. The person is kept.",disassociateAllFailed:"Couldn't remove the person from all events",existingPersons:"People",noPersons:"No people yet",metadata:"Metadata",markForTraining:"Mark for training",markForTrainingHint:"Keeps this track and its media past retention",debugFlag:"Debug",debugFlagHint:"Flag this track for diagnostic attention",favourited:"Favourited",favouritedHint:"Keeps this track and its media past retention",copy:"Copy",copied:"Copied","meta.trackId":"Track ID","meta.eventId":"Best event ID","meta.deviceId":"Device ID","meta.camera":"Camera","meta.className":"Class","meta.label":"Label","meta.firstSeen":"First seen","meta.lastSeen":"Last seen","meta.state":"State","meta.importance":"Importance","meta.confidence":"Confidence","meta.mediaKeys":"Media keys"},accessories:{on:"On",off:"Off",dimUp:"Brighter",dimDown:"Dimmer",lock:"Lock",unlock:"Unlock",open:"Open",close:"Close",stop:"Stop",arm:"Arm",disarm:"Disarm",onMotion:"On motion",openPercent:"Open {{percent}}",warmer:"Warmer",cooler:"Cooler",speedUp:"Faster",speedDown:"Slower",oscillate:"Oscillate",press:"Press",play:"Play",pause:"Pause",previous:"Previous",next:"Next",start:"Start",dock:"Dock",locate:"Locate",feed:"Feed",feeding:"Feeding\u2026",install:"Install",installing:"Installing\u2026",upToDate:"Up to date",increase:"Increase",decrease:"Decrease",select:"Select",noEvent:"No events yet",buttonIndex:"Button {{index}}",mode:"Mode",fanMode:"Fan mode",preset:"Preset",direction:"Direction",forward:"Forward",reverse:"Reverse",away:"Away",humidityUp:"Increase humidity",humidityDown:"Decrease humidity",swingVertical:"Vertical swing",swingHorizontal:"Horizontal swing",setTemperature:"Set temperature",currentTemperature:"Current temperature",climateModes:{off:"Off",heat:"Heat",cool:"Cool",auto:"Auto",heat_cool:"Heat/Cool",fan_only:"Fan",dry:"Dry"}},cameraMenu:{title:"View options",gridCommonHint:"Overlays shared by the whole wall \u2014 boxes, highlight border and its triggers, cluster labels \u2014 are set once for the grid, in the grid bar.",boundingBoxes:"Bounding boxes",streamStats:"Stream stats",audioLevel:"Audio level",densityTitle:"Timeline density",density_compact:"Compact",density_medium:"Medium",density_wide:"Wide",densityCustom:"Custom",showImportance:"Show importance",showClass:"Show detection class",timelineSection:"Timeline",managementTitle:"Management"},viewOptions:{groupDetection:"Detection overlays"},cameraSwitches:{title:"Camera functions",loading:"Reading camera functions\u2026",readFailed:"Camera functions could not be read. Nothing has changed \u2014 they are not shown rather than shown with a guessed state.",writeFailed:"That change was refused and has been undone. {{reason}}",offBadge:"OFF",badgeLabel_one:"{{count}} function switched off",badgeLabel_other:"{{count}} functions switched off",unavailableNoProvider:"Not available \u2014 nothing in this installation provides it.",unavailableUnreachable:"Unknown \u2014 the service that owns this did not answer.",unavailableUnknown:"Not available on this camera."},stats:{title:"Stream stats",resolution:"Resolution",fps:"FPS",bitrate:"Bitrate",packetLoss:"Packet loss",jitter:"Jitter",codec:"Codec",frames:"Frames (dropped/total)",waiting:"Measuring\u2026",playbackHint:"Full WebRTC stats need the native player."},exportActions:{title:"Capture",recordingExport:"Recording export"},exports:{title:"Exports",empty:"No exports yet.",settingsHint:"Download recorded clips",range:"Range",rangeStart:"Start",rangeEnd:"End",profile:"Profile",noFootage:"No footage in this range.",speed:"Speed",timelapse:"Timelapse",cadence:"Frame every",audio:"Audio",includeAudio:"Include audio",audioUnavailable:"Audio is only available at 0.5\u20132\xd7 speed.",retention:"Keep for",life24h:"24 hours",life7d:"7 days",life30d:"30 days",deleteAfterDownload:"Delete after download",deleteAfterDownloadHint:"Remove the file once downloaded.",notify:"Notify when ready",creating:"Creating\u2026",createAction:"Export",createFailed:"Could not create the export.",withAudio:"with audio",variantRegular:"1\xd7",variantAccelerated:"Accelerated {{speed}}\xd7",variantSlow:"Slow {{speed}}\xd7",variantTimelapse:"Timelapse",expired:"Expired",expiresInDays:"Expires in {{count}}d",expiresInHours:"Expires in {{count}}h",expiresInMinutes:"Expires in {{count}}m",downloadAction:"Download",downloadUnavailable:"Download not available.",downloadFailed:"Download failed.",cancelAction:"Cancel",cancelConfirmTitle:"Cancel export?",cancelConfirmBody:"This stops rendering and discards the partial file.",deleteAction:"Delete",deleteConfirmTitle:"Delete export?",deleteConfirmBody:"This removes the file. The history entry is kept.",dismiss:"Dismiss",state:{queued:"Queued",rendering:"Rendering",ready:"Ready",failed:"Failed",expired:"Expired",deleted:"Deleted"}},library:{title:"Library",sections:{events:"Events",artifacts:"Artifacts",exports:"Exports"}},artifacts:{title:"Artifacts",settingsHint:"Timelapses, clips and summaries",empty:"No artifacts yet.",emptyFiltered:"No artifacts match these filters.",loadError:"Could not load the artifacts.",gone:"This artifact is no longer on the hub.",expired:"Expired",expiredBody:"The retention window closed and the file was removed.",expiresInDays:"Expires in {{count}}d",expiresInHours:"Expires in {{count}}h",expiresInMinutes:"Expires in {{count}}m",retentionHint:"Kept for up to 14 days. Files may be removed sooner when the hub reaches its storage limits.",byRule:"Rule: {{name}}",allCameras:"All cameras",cameraPlus:"{{name}} +{{count}}",close:"Close",downloadAction:"Download",downloadUnavailable:"Download not available.",downloadFailed:"Download failed.",kind:{timelapse:"Timelapse","timelapse-preview":"Timelapse preview","summary-mosaic":"Summary mosaic","event-gif":"GIF","event-clip":"MP4","event-still":"Still"},time:{now:"Just now",minutesAgo:"{{count}}m ago",hoursAgo:"{{count}}h ago",daysAgo:"{{count}}d ago"},range:{all:"All",day:"24h",week:"7d",month:"30d"},filters:{toggle:"Filters",kind:"Type",camera:"Camera",range:"Period",clear:"Clear filters"},detail:{kind:"Type",cameras:"Cameras",rule:"Rule",captured:"Captured",created:"Produced",size:"Size",format:"Format",expiry:"Expires"}},streamBar:{play:"Play",pause:"Pause",scrubForward:"Scrubbing forward",scrubBackward:"Scrubbing backward",mute:"Mute",unmute:"Unmute",talkStart:"Start talking",talkStop:"Stop talking",quality:"Stream quality",menu:"View options",snapshot:"Snapshot",pip:"Picture in picture",fullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen"},playback:{prevFrame:"Previous frame",nextFrame:"Next frame",speed:"Playback speed",audioMuted:"Audio off at \u2260 1\xd7",audioOn:"Audio on"},cameraSwitcher:{title:"Switch camera",empty:"No cameras available",openGrid:"Open grid ({{n}})",selectA11y:"Select {{name}}"},storage:{title:"Storage",usageTitle:"Usage",nodeTotal:"Node total",defaultLocation:"Default location",locationFree:"{{free}} free",retentionTitle:"Retention",pruneAction:"Apply retention now",pruneConfirmTitle:"Apply retention?",pruneConfirmBody:"Delete footage on {{name}} that exceeds its retention policy.",pruneResult:"Reclaimed {{bytes}} ({{buckets}} segments).",deleteTitle:"Delete footage",deleteAction:"Delete",deleteConfirmTitle:"Delete footage?",deleteConfirmBody:"Permanently delete {{range}} of footage on {{name}}. This cannot be undone.",deleteResult:"Reclaimed {{bytes}} ({{buckets}} segments).",cancel:"Cancel",window24h:"Last 24h",window7d:"Last 7 days",window30d:"Last 30 days",windowAll:"Everything"},eventsMgmt:{title:"Events",footprintTitle:"Footprint",rowsBytes:"{{rows}} events \xb7 {{bytes}}",clusterTotal:"Cluster total",pruneTitle:"Prune older than",pruneHint:"Applies to all cameras.",pruneAction:"Prune",pruneConfirmTitle:"Prune old events?",pruneConfirmBody:"Delete events older than {{range}} across ALL cameras. This cannot be undone.",pruneResult:"Deleted {{count}} events.",deleteTitle:"Delete camera events",deleteAction:"Delete all events for this camera",deleteConfirmTitle:"Delete all events?",deleteConfirmBody:"Permanently delete every event for {{name}}. This cannot be undone.",deleteResult:"Deleted {{count}} events.",cancel:"Cancel",older24h:"24 hours",older7d:"7 days",older30d:"30 days"},overlay:{title:"Overlay",liveSection:"Live indicators",readoutsSection:"Sensors & values",motionBoxes:"Motion regions",boxesOff:"Off",boxesKept:"Detections",boxesAll:"All model detections",boxesAllHint:"Also draws, as dashed outlines, the near-miss and out-of-zone detections of the classes you enabled \u2014 subjects that fell just under the confidence threshold, or stood outside a zone rule. Use it when boxes flicker on a moving subject. The count pill compares what the model saw with what was kept.",diagCounts:"model {{saw}} \xb7 kept {{kept}}",diagHidden:"{{hidden}} hidden",diagOffTopic:"{{offTopic}} off-topic",diagShed:"frame shed \xb7 {{reason}}",reasonThreshold:"below threshold",reasonFullFrame:"full-frame guard",reasonNms:"suppressed by NMS",reasonClassFilter:"class filter",reasonZoneGate:"zone rule",motionBadge:"Motion badge",highlightBorder:"Highlight border",occupancy:"Occupancy",addReadout:"Add a readout",removeReadout:"Remove readout",readoutsHint:"Pin a live value over the picture \u2014 the audio level, or any sensor linked to this camera.",noFields:"This device publishes no live values.",thisCamera:"This camera",audioDbfs:"Audio level",liveOnlyHint:"These draw on the live picture only \u2014 not during playback or while paused.",positions:{off:"Off","top-left":"Top left","top-center":"Top center","top-right":"Top right","left-center":"Left center","right-center":"Right center","bottom-left":"Bottom left","bottom-center":"Bottom center","bottom-right":"Bottom right"}},clips:{title:"Clips",loading:"Loading clips\u2026",empty:"No clips for this camera in the loaded window.",summary_one:"{{count}} clip",summary_other:"{{count}} clips",collapsedHint:"{{duration}} skipped",hiddenHint_one:"{{count}} hidden by source",hiddenHint_other:"{{count}} hidden by source",segmentLabel:"Clip at {{time}}, {{duration}} long",gapLabel:"Gap of {{duration}}",notPlayable:"not playable yet",kind_motion:"Motion",kind_object:"Object",kind_audio:"Audio",kind_native:"Camera",sourceAnalytics:"Recording",sourceOnboard:"Camera ({{vendor}})",sourceHksv:"HomeKit",sourceUnknown:"{{vendor}}",unitDay:"d",unitHour:"h",unitMinute:"m",unitSecond:"s"},eventsEmbed:{section:"Hub embed (preview)",title:"Events embed",count:"{{count}} shown",openPreview:"Embed preview",openPreviewHint:"Open the hub-hosted events surface next to this page. Nothing is replaced.",view_reel:"Reel",view_gallery:"Gallery",error:"Couldn't load events",retry:"Retry",empty:"No events",end:"\xb7 end \xb7"},eventsShare:{title:"Events embed link",openBuilder:"Create embed link",openBuilderHint:"Build a standalone URL for a dashboard or an iframe.",view:"View",viewReel:"Reel",viewGallery:"Gallery",columns:"Columns",rows:"Rows",auto:"Auto",thumb:"Thumbnail size",thumbSmall:"Small",thumbMedium:"Medium",thumbLarge:"Large",theme:"Theme",themeAuto:"Auto",themeDark:"Dark",themeLight:"Light",fields:"Card text",field_label:"Title",field_sublabel:"Class",field_camera:"Camera",field_time:"Time",field_badges:"Badges",cameras:"Cameras",camerasAll:"All cameras the link can see",camerasCount:"{{count}} selected",preview:"Link preview",shareMediaNotice:"A share link cannot load thumbnails. Share tokens have no access to the media endpoint at all \u2014 the shared page lists its events, without their images.",copyLink:"Create link",chip:"Embed link",semanticScopeNotice:"Semantic search runs across every camera and is trimmed to this link afterwards, so a link with few cameras can return sparse results on a large cluster."},gridTimeline:{live:"LIVE",goLive:"Back to live",play:"Play all cameras",pause:"Pause all cameras",zoomIn:"Shorter time span",zoomOut:"Longer time span",summary:"{{events}} events \xb7 {{active}}/{{cameras}} active here",truncated:"partial",noCoverage:"gaps unknown",scrubA11y:"Scrub the grid timeline \u2014 all cameras seek together",eventsFailed:"events unavailable"},battery:{holdHint:"This camera runs on battery \u2014 press play to start the stream and wake it.",startStreamA11y:"Start the stream and wake the battery camera"}},prototype:{today:"Today",yesterday:"Yesterday",now:"NOW",endOfDay:"END OF DAY",loading:"Loading...",timeline:"Timeline",events:"Events",playClip:"Play clip",goToNow:"NOW",noEvents:"No events"},eventKind:{motion:"Motion",audio:"Audio",person:"Person",vehicle:"Vehicle",animal:"Animal",package:"Package",sensor:"Sensor",control:"Control",car:"Car",truck:"Truck",bus:"Bus",motorcycle:"Motorcycle",bicycle:"Bicycle",airplane:"Airplane",boat:"Boat",train:"Train",bird:"Bird",cat:"Cat",dog:"Dog",horse:"Horse",sheep:"Sheep",cow:"Cow",elephant:"Elephant",bear:"Bear",zebra:"Zebra",giraffe:"Giraffe",contact:"Contact","motion-sensor":"Motion sensor",smoke:"Smoke",flood:"Water leak",gas:"Gas","carbon-monoxide":"Carbon monoxide",vibration:"Vibration",tamper:"Tamper",presence:"Presence","enum-sensor":"Sensor state","device-event":"Device event",lock:"Lock",switch:"Switch",siren:"Siren",button:"Button",doorbell:"Doorbell","package-delivered":"Package delivered","package-picked-up":"Package picked up","audio-speech":"Speech","audio-music":"Music","audio-dog":"Dog","audio-doorbell":"Doorbell","audio-siren":"Siren","audio-alarm":"Alarm"}}},2207,[]);
|
|
3534
|
-
__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",library:"Libreria",notifications:"Notifiche",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",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",emptyOutOfScope:"Nessuna telecamera nel tuo profilo di accesso",emptyOutOfScopeHint:"Al tuo account non \xe8 ancora assegnata nessuna telecamera. Chiedi a chi amministra questo hub di darti accesso.",snapshotStale:"Snapshot di {{age}} fa"},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",cellActions:"Azioni telecamera",cellActionsA11y:"Altre azioni per questa telecamera",cellDevicesA11y:"Dispositivi collegati",cellMenuA11y:"Opzioni di visualizzazione"},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",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",timeline:"Timeline",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",flaggedOnly:"Contrassegnate",flaggedOnlyHint:"Preferite, debug o da addestrare",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",hapticsUiFeedback:"Vibra alla pressione",hapticsUiFeedbackHint:"Una breve vibrazione conferma pulsanti, interruttori, PTZ e comandi del player. Solo su dispositivo (iOS/Android).",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",system:"Eventi di sistema",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",waitForEnhancementLabel:"Attendi il riconoscimento",waitForEnhancementHint:"Attivo: una sola notifica a fine traccia, con il nome. Disattivo: una subito senza nome, pi\xf9 una seconda se il nome arriva prima che la traccia si chiuda.",recognition:{noIdentities:"Nessuna persona salvata. Aggiungine una dal volto di un evento.",unknownIdentities:"Selezionati ma non presenti in galleria (una persona eliminata, o una regola vecchia salvata per nome). Rimuovi ci\xf2 che non vale pi\xf9.",identities:{off:"Chiunque",anyKnown:"Conosciuti",specific:"Queste persone",offHint:"Alla regola non importa chi sia: corrisponde anche una persona non riconosciuta.",anyKnownHint:"Solo le persone salvate in galleria, chiunque siano. Uno sconosciuto non corrisponde.",specificHint:"Solo le persone selezionate qui. La corrispondenza usa la persona salvata, quindi rinominarla non rompe la regola."},plates:{off:"Qualsiasi veicolo",anyKnown:"Targa letta",specific:"Queste targhe",offHint:"Alla regola non importa la targa: corrisponde anche un veicolo di cui non \xe8 stata letta.",anyKnownHint:"Solo i veicoli di cui la targa \xe8 stata effettivamente letta, qualunque essa sia.",specificHint:"Solo queste targhe, con corrispondenza tollerante \u2014 la lettura della targa non \xe8 mai perfetta."}},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:{"device-online":"Dispositivo online","device-offline":"Dispositivo offline","device-disabled":"Dispositivo spento","device-enabled":"Dispositivo acceso","camera-online":"Videocamera online","camera-offline":"Videocamera offline","camera-disabled":"Videocamera spenta","camera-enabled":"Videocamera accesa","stream-online":"Flusso online","stream-offline":"Flusso offline","node-online":"Nodo online","node-offline":"Nodo offline","node-inference-unavailable":"Nodo senza dispositivi di inferenza utilizzabili","detection-blind":"Telecamera che non rileva nulla","alarm-arm-refused":"Inserimento allarme rifiutato","alarm-arming":"Allarme in inserimento","alarm-triggered":"Allarme scattato","alarm-armed":"Allarme inserito","alarm-disarmed":"Allarme disinserito","addon-update-available":"Aggiornamento addon disponibile","server-update-available":"Aggiornamento server disponibile","addon-updated":"Addon aggiornati","server-updated":"Server aggiornato","export-completed":"Export completato"},systemFilters:{cameras:"Solo queste videocamere (facoltativo)",deviceTypes:"Solo questi tipi di dispositivo (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",audio:"Audio"},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",occupancy:"Occupazione",audio:"Suono"},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.",sceneGateNone:"Non impostato \u2014 questa regola non dipende da nessuna scena.",sceneGateSet:"Solo mentre la scena {{sceneId}} \xe8 {{state}}, leggendo {{read}}. La scena si sceglie dall'admin \u2014 questa app non pu\xf2 elencarle.",sceneReadDefault:"il booleano scelto dalla scena stessa",sceneReadLatched:"il latch (dall'ultimo riarmo)",sceneReadLive:"il verdetto attuale",sceneState:{matched:"coincidente (come catturata)",diverged:"divergente (cambiata)"},occupancy:{zoneLabel:"Zona",wholeFrame:"\u2014 intero fotogramma \u2014",zonesLoading:"Caricamento zone\u2026",zonesNeedCamera:"Scegli le telecamere qui sopra per selezionare una delle loro zone.",zonesNone:"Queste telecamere non hanno zone \u2014 il conteggio copre l\u2019intero fotogramma.",zoneMissing:"La zona \"{{id}}\" non esiste pi\xf9 su queste telecamere. La regola la conserva e non scatter\xe0 finch\xe9 non scegli un altro ambito.",classLabel:"Classe",anyClass:"\u2014 qualsiasi classe \u2014",classesNone:"L\u2019hub non ha inviato un vocabolario di classi \u2014 il conteggio copre ogni classe.",classMissing:"\"{{name}}\" non \xe8 una classe segnalata da queste telecamere. La regola la conserva e non scatter\xe0 finch\xe9 non ne scegli un\u2019altra.",opLabel:"Scatta quando",op:{"became-occupied":"Diventa occupata","became-free":"Diventa libera",">=":"Conteggio \u2265","<=":"Conteggio \u2264"},thresholdLabel:"Soglia",countLabel:"Conteggio",sustainLabel:"Mantieni per (secondi)",sustainInstantHint:"Con 0 secondi scatta al primo fotogramma che supera la soglia \u2014 aspettati notifiche ripetute da un soggetto che cammina sul bordo della zona. Di solito si usano 15 secondi.",hint:"Conta gli oggetti tracciati confermati dall\u2019analisi delle zone. Il cambiamento deve durare per tutta la finestra prima di scattare; senza uno snapshot per la telecamera o la zona la regola non scatta mai.",classesDropped:"Il filtro classi ({{classes}}) viene rimosso al salvataggio: un evento di occupazione porta una sola classe, quindi impedirebbe soltanto alla regola di scattare. Imposta invece la classe qui sopra."},audio:{modeLabel:"Come scatta",modeLabelOption:"\ud83d\udd0e Suoni",modeLevelOption:"\ud83d\udcc8 Volume",modeLabelHint:"Scatta subito, sul PRIMO fotogramma in cui il classificatore riconosce uno di questi suoni \u2014 nessuna finestra di campionamento, per quanto breve sia il suono. L\u2019unico freno \xe8 la pausa della regola.",modeLevelHint:"Scatta quando il suono resta abbastanza forte abbastanza a lungo: la finestra qui sotto \xe8 tutta la condizione.",labelsLabel:"Suoni",labelsHint:"Scegline almeno uno. Il classificatore etichetta solo uno o due fotogrammi per episodio, quindi una percentuale su una finestra non potrebbe mai confermarli \u2014 per questo in questo modo non c\u2019\xe8 finestra.",labelsUnknown:"Questa regola conserva {{labels}}, che questo hub non classifica. Resta com\u2019\xe8; toccalo per rimuoverlo.",dbLabel:"Pi\xf9 forte di (dBFS)",dbHint:"I dBFS sono negativi: 0 \xe8 il fondo scala, \u221296 \xe8 il silenzio \u2014 quindi un numero PI\xd9 ALTO \xe8 un filtro PI\xd9 STRETTO. Misurato su questo hub, un bambino che piange sta fra \u221255 e \u221226 dBFS: una soglia sopra \u221255 ne esclude la maggior parte.",hitPercentLabel:"Rilevamenti nella finestra (%)",hitPercentHint:"Quanta parte della finestra deve corrispondere prima di scattare. Predefinito 60%.",samplingLabel:"Finestra (secondi)",samplingHint:"La finestra deve essere PIENA prima di poter corrispondere \u2014 una finestra a met\xe0 non scatta mai. Predefinito 10s.",failClosedHint:"Scegli almeno un suono oppure imposta una soglia di livello. Senza nessuno dei due ogni campione conta come rilevamento e l\u2019hub rifiuta la regola invece di notificare sul silenzio.",hint:"Scatta sul SUONO prolungato, non su un\u2019immagine: una regola con questa condizione viene valutata solo su una finestra audio confermata, mai su un rilevamento o una traccia. Le telecamere coinvolte devono avere l\u2019analisi audio attiva."}}},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",aCamera:"Una telecamera",chooseRule:"Scegli una regola",chooseCamera:"Scegli una telecamera",camerasLoading:"Sto caricando le telecamere\u2026",noCameras:"Nessuna telecamera da silenziare.",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.",classesTitle:"Solo questi",classesHelp:"Se non tocchi nulla la finestra copre tutto. Scegli delle classi per silenziare solo quelle \u2014 il resto continua ad arrivarti.",everyClass:"Tutto",durations:{m10:"10 min",m30:"30 min",h1:"1 ora"},scope:{rule:"Una regola",device:"Una telecamera",all:"Tutto"},remaining:{ended:"finito",minutes:"{{minutes}} min",hours:"{{hours}}h",hoursMinutes:"{{hours}}h {{minutes}}m"},viewOnly:"Il tuo account pu\xf2 vedere le pause ma non aprirne una."}},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",faultStream:"Lo stream video non \xe8 disponibile.",faultRecordings:"Non \xe8 stato possibile caricare le registrazioni di questo giorno.",faultEvents:"Non \xe8 stato possibile caricare gli eventi di questo giorno.",faultDismiss:"Ignora",loadRetry:"Riprova",loadRetrying:"Riprovo\u2026"},theater:{back:"Indietro",today:"Oggi",yesterday:"Ieri",prevDay:"Giorno precedente",nextDay:"Giorno successivo",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",liveLockOn:"Blocco live attivo \u2014 navigando l'immagine resta in diretta",liveLockOff:"Blocco live disattivo \u2014 navigando parte la registrazione",recordLive:"Registra live",stopRecording:"Interrompi registrazione",keepClipTitle:"Tenere questo clip?",discardClip:"Scarta",saveToGallery:"Salva in Foto",shareClip:"Condividi",recordFailed:"Impossibile registrare la vista 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",recordingDaysFailed:"Non \xe8 stato possibile leggere i giorni con registrazioni."},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",markForTraining:"Segna per addestramento",markForTrainingHint:"Mantiene questa traccia e i suoi media oltre la conservazione",debugFlag:"Debug",debugFlagHint:"Segnala questa traccia per attenzione diagnostica",favourited:"Preferito",favouritedHint:"Mantiene questa traccia e i suoi media oltre la conservazione",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",setTemperature:"Temperatura impostata",currentTemperature:"Temperatura attuale",climateModes:{off:"Spento",heat:"Riscaldamento",cool:"Raffreddamento",auto:"Auto",heat_cool:"Caldo/Freddo",fan_only:"Ventola",dry:"Deumidificazione"}},cameraMenu:{title:"Opzioni vista",gridCommonHint:"Gli overlay comuni a tutta la griglia \u2014 riquadri, bordo di evidenziazione e i suoi trigger, etichette dei cluster \u2014 si impostano una volta sola per la griglia, nella barra della griglia.",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"},viewOptions:{groupDetection:"Overlay di rilevamento"},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.",notify:"Avvisa quando \xe8 pronto",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"}},library:{title:"Libreria",sections:{events:"Eventi",artifacts:"Artefatti",exports:"Esportazioni"}},artifacts:{title:"Artefatti",settingsHint:"Timelapse, clip e riepiloghi",empty:"Nessun artefatto.",emptyFiltered:"Nessun artefatto corrisponde a questi filtri.",loadError:"Impossibile caricare gli artefatti.",gone:"Questo artefatto non \xe8 pi\xf9 sull'hub.",expired:"Scaduto",expiredBody:"La finestra di conservazione \xe8 terminata e il file \xe8 stato rimosso.",expiresInDays:"Scade tra {{count}}g",expiresInHours:"Scade tra {{count}}h",expiresInMinutes:"Scade tra {{count}}m",retentionHint:"Conservato fino a 14 giorni. I file possono essere rimossi prima se l'hub raggiunge i limiti di spazio.",byRule:"Regola: {{name}}",allCameras:"Tutte le telecamere",cameraPlus:"{{name}} +{{count}}",close:"Chiudi",downloadAction:"Scarica",downloadUnavailable:"Download non disponibile.",downloadFailed:"Download non riuscito.",kind:{timelapse:"Timelapse","timelapse-preview":"Anteprima timelapse","summary-mosaic":"Mosaico riepilogo","event-gif":"GIF","event-clip":"MP4","event-still":"Foto"},time:{now:"Adesso",minutesAgo:"{{count}}m fa",hoursAgo:"{{count}}h fa",daysAgo:"{{count}}g fa"},range:{all:"Tutto",day:"24h",week:"7g",month:"30g"},filters:{toggle:"Filtri",kind:"Tipo",camera:"Telecamera",range:"Periodo",clear:"Azzera filtri"},detail:{kind:"Tipo",cameras:"Telecamere",rule:"Regola",captured:"Ripreso il",created:"Prodotto il",size:"Dimensione",format:"Formato",expiry:"Scadenza"}},streamBar:{play:"Riproduci",pause:"Pausa",scrubForward:"Avanzamento veloce",scrubBackward:"Riavvolgimento",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",liveSection:"Indicatori live",readoutsSection:"Sensori e valori",motionBoxes:"Aree di movimento",boxesOff:"Off",boxesKept:"Rilevazioni",boxesAll:"Tutte le rilevazioni del modello",boxesAllHint:"Disegna anche, con tratteggio, le rilevazioni quasi accettate e quelle fuori zona delle classi che hai abilitato \u2014 soggetti rimasti appena sotto la soglia di confidenza, o fuori da una regola di zona. Utile quando i riquadri lampeggiano su un soggetto in movimento. La pillola confronta ci\xf2 che il modello ha visto con ci\xf2 che \xe8 stato tenuto.",diagCounts:"modello {{saw}} \xb7 tenuti {{kept}}",diagHidden:"{{hidden}} nascosti",diagOffTopic:"{{offTopic}} non pertinenti",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."},gridTimeline:{live:"LIVE",goLive:"Torna al live",play:"Riproduci tutte le telecamere",pause:"Metti in pausa tutte le telecamere",zoomIn:"Intervallo pi\xf9 breve",zoomOut:"Intervallo pi\xf9 lungo",summary:"{{events}} eventi \xb7 {{active}}/{{cameras}} attive qui",truncated:"parziale",noCoverage:"lacune non note",scrubA11y:"Scorri la timeline della griglia \u2014 tutte le telecamere si spostano insieme",eventsFailed:"eventi non disponibili"},battery:{holdHint:"La camera \xe8 a batteria: premi play per avviare lo stream e svegliarla.",startStreamA11y:"Avvia lo stream e sveglia la camera a batteria"}},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"}}},2208,[]);
|
|
3535
|
-
__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}})()}))},2209,[288,1981,1862]);
|
|
3536
|
-
__d(function(g,r,i,a,m,
|
|
3537
|
-
__d(function(g,r,i,a,m,e,d){"use strict";
|
|
3538
|
-
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.
|
|
3539
|
-
__d(function(g,r,i,a,m,
|
|
3540
|
-
__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),
|
|
3541
|
-
__d(function(g,r,i,a,m,
|
|
3542
|
-
__d(function(g,r,i,a,m,
|
|
3543
|
-
__d(function(g,r,i,a,m,
|
|
3544
|
-
__d(function(g,r,i,a,m,e,d){
|
|
3545
|
-
__d(function(g,r,i,a,m,
|
|
3546
|
-
__d(function(g,r,i,a,m,
|
|
3547
|
-
__d(function(g,r,i,a,m,
|
|
3548
|
-
__d(function(g,r,i,a,m,_e,d){"use strict";
|
|
3549
|
-
__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}},2223,[15,17,240,244,136,252,147,112,262,20,786,2224,618,2227,2228,1007,1557,1020,1022,2229,813,10]);
|
|
3550
|
-
__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},2224,[289,226,233,136,40,2225,2226]);
|
|
3551
|
-
__d(function(g,r,
|
|
3552
|
-
__d(function(g,r,
|
|
3553
|
-
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"
|
|
3554
|
-
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"
|
|
3555
|
-
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.
|
|
3556
|
-
__d(function(g,r,i,a,m,
|
|
3557
|
-
__d(function(g,r,i,a,
|
|
3558
|
-
__d(function(g,r,i,a,
|
|
3559
|
-
__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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),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})))}}},2233,[120,17,2234,323,2235]);
|
|
3560
|
-
__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}}},2234,[]);
|
|
3561
|
-
__d(function(g,r,
|
|
3562
|
-
__d(function(g,r,i,a,m,e,d){"
|
|
3563
|
-
__d(function(g,r,
|
|
3530
|
+
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"CAMERAS_MANAGE_ROW_GAP",{enumerable:!0,get:function(){return n}}),e.camerasManageListContentStyle=function(n){return{padding:t.SPACING.md,paddingBottom:t.SPACING.md+n+t.SPACING['2xl']}};var t=r(d[0]);const n=t.SPACING.md},2204,[1022]);
|
|
3531
|
+
__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.NotificationCenterScreen,{}),o[0]=u):u=o[0],u}},2205,[15,1946,10]);
|
|
3532
|
+
__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]);r(d[1]),r(d[2]),r(d[3]);var n=r(d[4]),o=r(d[5]),c=r(d[6]);function s(){const s=(0,t.c)(1);let u;return s[0]===Symbol.for("react.memo_cache_sentinel")?(u=(0,c.jsx)(o.RootProviders,{children:(0,c.jsx)(n.Stack,{screenOptions:{headerShown:!1}})}),s[0]=u):u=s[0],u}},2206,[15,2207,2210,2211,743,2212,10]);
|
|
3533
|
+
__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 b}});var t=e(r(_d[0])),n=r(_d[1]),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[2])),l=e(r(_d[3])),c=e(r(_d[4])),o=e(r(_d[5]));const f={en:{translation:c.default},it:{translation:o.default}},d=u.getLocales()[0]?.languageCode?.slice(0,2)??"en",s=Object.keys(f).includes(d)?d:"en";t.default.use(n.initReactI18next).init({resources:f,lng:s,fallbackLng:"en",interpolation:{escapeValue:!1}}),l.default.getItem("v2.language").then(e=>{"it"!==e&&"en"!==e||t.default.changeLanguage(e)});var b=t.default},2207,[789,786,1993,1008,2208,2209]);
|
|
3534
|
+
__d(function(e,t,a,o,i,n,r){i.exports={devices:{editDevice:"Edit device",originalName:"Original name",customName:"Custom name",customNamePlaceholder:"Leave empty to use original",icon:"Icon",typeLight:"Light",typeSwitch:"Switch",typeCover:"Cover",typeLock:"Lock",typeAlarm:"Alarm",typeButton:"Button",typeSelect:"Select",typeSiren:"Siren",typeSensor:"Sensor",typeEntry:"Entry",typeMediaPlayer:"Media Player",typeScript:"Script",run:"Run",sourceHA:"Home Assistant",sourceScrypted:"Scrypted",off:"Off",on:"On",mute:"Mute",unmute:"Unmute",stop:"Stop",locked:"Locked",unlocked:"Unlocked",open:"Open",closed:"Closed",disarmed:"Disarmed",disarm:"Disarm"},common:{error:"Error",save:"Save",cancel:"Cancel",loading:"Loading...",comingSoon:"Coming soon",back:"Back",fullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen",reset:"Reset",selectAll:"Select all",deselectAll:"Deselect all",delete:"Delete",retry:"Retry"},grids:{newGrid:"New grid",deleteConfirm:"Delete this grid?",noGrids:"No grids yet. Create one to arrange cameras in a mosaic view.",createGrid:"Create grid",cameras:"cameras",notFound:"Grid not found.",noCameras:"No cameras in this grid. Edit the grid to add some.",edit:"Edit",addCamera:"Add camera",presets:"Presets",auto:"Auto",manual:"Manual",gridName:"Grid name",view:"View",addCameraHint:"Add at least one camera from the button above.",allCamerasAdded:"All cameras already in grid",cameraUnavailable:"Camera unavailable",camerasInGrid:"Cameras in grid",addAll:"Add all",addCameras:"Add Cameras",backToGrid:"Back to Grid",timelineNotSupported:"Timeline not supported"},nav:{cameras:"Cameras",grids:"Grids",library:"Library",notifications:"Notifications",events:"Events",videoclips:"Videoclips",list:"List",settings:"Settings"},cameras:{addCamera:"Add camera",pipActive:"PiP active",reorderEnable:"Reorder",reorderDisable:"Unlock",live:"Live",noCameras:"No cameras configured",noIntegrations:"No integrations configured. Add a system to get started.",createSystem:"Create system",importFrom:"Import cameras from",importSuccess:"Import complete",importCount:"{{count}} cameras imported",selectCamerasToImport:"Select cameras to import",selectAll:"Select all",deselectAll:"Deselect all",importSelected:"Import {{count}} selected",noCamerasFound:"No cameras found",play:"\u25b6 Play",paused:"Paused",noDataForDate:"No data for this date",recordingNotAvailable:"Recording not available",noEventsReel:"No recent events",settings:"Settings",highlightMotion:"Motion Highlight",highlightOnMotion:"Highlight on motion",highlightAudio:"Audio Highlight",audioMode:"Mode",audioModeOff:"Off",audioModeSensor:"Sensor",audioModeLevel:"Level",audioPreset:"Audio Preset",audioPresetCustom:"Custom",audioPresetCrying:"Crying / baby",audioPresetAlarm:"Alarm / siren",audioPresetDog:"Dog barking",audioPresetDoorbell:"Doorbell / knock",audioPresetGlass:"Glass break",audioWindow:"Window (s)",audioThreshold:"Threshold (dB)",audioHitPercentage:"Hit (%)",audioHoldSeconds:"Hold (s)",highlightDetection:"Object Detection Highlight",highlightOnDetection:"Highlight on detection",detectionClasses:"Classes",holdSeconds:"Hold (s)",rtspNotSupportedWeb:"RTSP streams are not supported on web. Use the mobile app.",liveDetections:"Live detections",filterTimeline:"Filter timeline",filterClasses:"Filter classes...",filterBySeverity:"Filter by severity",severityAlert:"Alert",severityDetection:"Detection",statusPosition:"Status Indicators Position",today:"Today",yesterday:"Yesterday",timeline:"Timeline",timelineEventsClusterEvents:"Events",selectDate:"Select a date",videoclipsNotSupported:"Videoclips not supported for this camera",noVideoclipsForDate:"No videoclips for this date",endOfList:"End of list",backToLive:"Back to live",goLive:"Go live",loadingClip:"Loading clip...",clusterDetailShowBbox:"Show bounding box on image",clusterDetailOpenVideoclip:"Open videoclip",clusterDetailLoadingEvents:"Loading events...",devices:"Devices",noAssociatedDevices:"No devices linked. Configure in Settings > Cameras.",timelineData:"Timeline data",timelineDataHint:"What to show on the timeline.",timelineDataVideoclips:"Videoclips",timelineDataAdvancedNotifier:"Advanced Notifier",timelineDataEvents:"Events",timelineEvents:"Timeline events",timelineEventsHint:"Which event types to show on the timeline, by severity.",timelinePresetAll:"All",timelinePresetImportant:"Important",timelinePresetCritical:"Critical",timelinePresetCustom:"Custom",statusBlock:"Status Block",sensorsBlock:"Sensors Block",position:"Position",indicators:"Indicators",downloadSnapshot:"Download Snapshot",exportDownloadClip:"Download Clip",exportRecordingWebOnly:"Recording export (web only)",exportSnapshot:"Export Snapshot",intercomError:"Intercom error",multiCam:"Multi-Camera",ptzNotSupported:"PTZ not supported",ptzSelectPreset:"Select PTZ Preset",snapshotFailed:"Snapshot failed"},events:{loading:"Loading events...",filterByLabel:"Filter by label",filterByLabelPlaceholder:"e.g. person, doorbell",filterByCamera:"Filter by camera",date:"Date",detectionTypes:"Detection types",source:"Source",cameras:"Cameras",groupingRange:"Grouping",groupingPresetMinutes:"{{m}} min",groupingCustom:"Custom",groupingCustomMinutes:"Minutes",groupingCustomApply:"Apply",today:"Today",noCamerasFromConfig:"Cameras loaded from EventsApp config",all:"All",typesCount:"{{count}} types",camerasCount:"{{count}} cameras",cols:"cols",sourceAuto:"Auto",sourceNVR:"NVR",sourceFrigate:"Frigate",sourceVideoClips:"VideoClips API",sourceRawDetection:"Raw",sourceAdvancedNotifier:"Advanced Notifier",detectionPerson:"Person",detectionVehicle:"Vehicle",detectionAnimal:"Animal",detectionAudio:"Audio",detectionFace:"Face",detectionPlate:"Plate",detectionPackage:"Package",detectionDoorbell:"Doorbell",detectionSensor:"Sensor",detectionMotion:"Motion",detectionRules:"Rules",noScryptedIntegration:"Add a Scrypted integration in Settings to view events.",frigateNoEvents:"Events are only available for Scrypted. Select a Scrypted instance in Settings.",noSource:"Add a Scrypted or Frigate integration in Settings, then select it as the Events/Videoclips source.",loadError:"Error loading events",noEvents:"No events for this date. Try changing the date or filters.",clearCacheTitle:"Clear cache",clearCacheMessage:"Clear all cached events and videoclips data? This will force a fresh fetch on next load.",clearCacheConfirm:"Clear",columnsPerRow:"Columns per row",onlyWithClips:"Only with clips",relatedClip:"Related Clip"},settings:{integrations:"Integrations",camstackProxy:"CamStack Proxy",scrypted:"Scrypted",frigate:"Frigate",rtsp:"RTSP",homeAssistant:"Home Assistant",name:"Name",baseUrl:"Base URL",urlLocal:"Local URL",urlPublic:"Public URL",username:"Username",password:"Password",token:"Token (optional)",frigateTokenHint:"Token (optional): JWT from browser",tokenRequired:"Token",testConnection:"Test connection",testLocal:"Test Local",testPublic:"Test Public",testMqtt:"Test MQTT",connectionOk:"Connection successful",connectionError:"Connection failed",scryptedCredentialsPromptTitle:"Scrypted login",scryptedCredentialsPromptSubtitle:"Enter your Scrypted username and password to connect.",scryptedCredentialsPromptSkip:"Skip for now",usernamePlaceholder:"admin",save:"Save",tabStream:"Stream & playback",tabGeneral:"General",data:"Data",clearCacheEventsClips:"Clear events & videoclips cache",eventsClipsSourceHint:"Source for Events and Videoclips tabs.",hubReelTitle:"Hub & Reel",reelIntegrationsHint:"Choose which integrations to use for the reel.",reelScryptedSourceHint:"When using Scrypted: event source for reel.",eventsClipsAuto:"Auto",eventsClipsNoInstance:"Add a Scrypted or Frigate integration first.",exportBackup:"Export backup",exportError:"Export failed",importBackup:"Import backup",importConfirm:"This will replace all cameras, integrations and settings with the backup data. Continue?",importSuccess:"Backup restored successfully",importError:"Import failed",uiPrototypes:"UI Prototypes",uiPrototypesHint:"Explore experimental timeline designs",versions:"Versions",appVersion:"App",nativeVersion:"Native",updateNow:"Update now",updateError:"Update failed",updateAvailableTitle:"Update Available",updateAvailableMessage:"A new version of CamStack has been downloaded and is ready to install. The app will restart to apply the update.",updateInstall:"Install & Restart",updateLater:"Later",tabIntegrations:"Integrations",tabCameras:"Camera settings",theme:"Theme",themeSystem:"System",themeLight:"Light",themeDark:"Dark",language:"Language",languageSystem:"System",languageEn:"English",languageIt:"Italiano",timelineMode:"Timeline Mode",timelineModeClassic:"Classic",timelineModeTheater:"Theater",timeline:"Timeline",timelineVisible:"Show detection timeline",timelineVisibleDescription:"Display the detection timeline panel in the camera view.",clusterSize:"Cluster card size",snapshotInterval:"Snapshot refresh interval",clusterSizeXS:"XS",clusterSizeS:"S",clusterSizeM:"M",clusterSizeL:"L",clusterSizeXL:"XL",highlightAppearance:"Highlight appearance",highlightAppearanceHint:"Color and border thickness for motion, audio, and detection highlights on camera streams.",highlightMotion:"Motion",highlightAudio:"Audio",highlightDetection:"Detection",highlightColor:"Color",highlightThickness:"Thickness",selectSection:"Select section",addSystem:"Add system",selectPlatform:"Select platform",deleteInstance:"Delete instance",deleteInstanceConfirm:"Are you sure you want to delete this instance?",delete:"Delete",mqttEvents:"MQTT - Real-time events",mqttBrokerUrl:"MQTT broker URL",mqttUsername:"MQTT username",mqttPassword:"MQTT password",mqttTopicPrefix:"Topic prefix (default: frigate)",mqttOptional:"Optional",scryptedAddressAlreadyUsed:"This Scrypted address is already configured. Only one instance per address is allowed.",scryptedAdvancedNotifierRequired:"The Advanced Notifier plugin is required for the connection.",scryptedCorsTitle:"CORS configuration required (Web)",scryptedCorsBody:"In Scrypted, open the Cloud plugin settings and add your domain ({{domain}}) to the CORS Allowed Origins list. Without this, the browser will block requests to your Scrypted server.",scryptedUrlHint:"Local URL is tried first (e.g. on LAN), then public URL. At least one required.",gridLayout:"Grid layout",gridLayoutHint:"Display options for the cameras grid.",gridColumns:"Grid columns",gridColumnsHint:"Number of cameras per row. Auto = 1 on mobile, 4 on tablet.",gridShowName:"Show camera name",gridShowState:"Show state (battery, recording, sleeping)",reorderCameras:"Reorder cameras",reorderCamerasHint:"Drag to reorder cameras",reorderDone:"Done",manageCameras:"Manage cameras",manageCamerasHint:"Remove cameras from the app.",downloadSnapshot:"Download snapshot",snapshotFailed:"Could not fetch snapshot",exportSnapshot:"Snapshot",exportDownloadClip:"Download clip",exportStartRecording:"Start recording",exportStopRecording:"Stop recording",exportRecordingWebOnly:"Recording available on web",intercomError:"Intercom unavailable. Check camera credentials in Scrypted.",deleteCamera:"Remove camera",deleteCameraConfirm:"Remove {{name}} from the app?",streamPlayback:"Stream & playback",playOnOpen:"Start stream when opening camera",playOnOpenHint:"Automatically load the live stream when you open a camera.",audioOnOpen:"Unmute audio when opening",audioOnOpenHint:"Play audio when opening a camera (if supported).",streamWatchdog:"Stream watchdog",streamWatchdogHint:"Restart stream when no data received (helps with stalled connections).",cameraPlayer:"Camera player",webViewCameraDetail:"Use WebView player",webViewCameraDetailHint:"Use WebView for Scrypted cameras (faster first frame, more stable). PiP, fullscreen and intercom work. Default: native player.",streamQuality:"Stream quality",streamQualitySingle:"Single camera quality",streamQualityGrid:"Grid quality",qualityAuto:"Auto",qualityHigh:"High",qualityMedium:"Mid",qualityLow:"Sub",auto:"Auto",associatedDevices:"Associated devices",associatedDevicesHint:"Add actuators (lights, switches, covers, etc.) to control from the camera view.",linkedDevices:"Linked",reorderHint:"Use arrows to reorder",addDevice:"Add device",noEligibleDevices:"No Scrypted or Home Assistant configured. Add an integration first.",configureDevices:"Configure devices",cameraSettingsHint:"Choose a camera to configure its specific options.",noCamerasConfigured:"No cameras configured.",searchDevices:"Search devices...",source:"Source",type:"Type",all:"All",noMatchingDevices:"No devices match the filters.",frigateStream:"Frigate Stream",frigateStreamSourceHint:"Stream source: WebRTC (default), RTSP, or MJPEG.",frigateStreamMapping:"Stream mapping (go2rtc names from config)",frigateStreamMappingHint:"Select from available go2rtc streams. Order: Main, Sub, Low.",frigateSelectStream:"Select stream",frigateAddStream:"Add stream",frigateInfo:"Camera info",frigateShowConfig:"Show config",frigateShowGo2rtc:"Show go2rtc",frigateMissingConfig:"Missing baseUrl or cameraName in camera config.",tabLogs:"Logs",logsCount:"{{count}} entries",logsDownload:"Download",logsClear:"Clear",logsEmpty:"No logs yet. Console output will appear here.",logsExportError:"Export failed",logsExportTitle:"Export logs",logsClearConfirmTitle:"Clear logs",logsClearConfirmMessage:"Remove all log entries?",hubAppearanceTitle:"Appearance",hubAppearanceDesc:"Theme, language, timeline and highlights",hubCamerasTitle:"Cameras",hubCamerasDesc:"Grid layout, stream quality and camera management",hubIntegrationsTitle:"Integrations",hubIntegrationsDesc:"Manage Scrypted, Frigate and other systems",hubAdvancedTitle:"Advanced",hubAdvancedDesc:"Data backup and cache management",hubLogsTitle:"Logs",hubLogsDesc:"View and export application logs",hubCacheTitle:"Cache",frigateAutoSnap:"Auto Snapshot",frigateSegmentNav:"Segment Navigation",frigateShowGo:"Show Go2RTC",frigateTimeline:"Timeline",reelCameras:"Reel Cameras",reelCamerasHint:"Select which cameras appear in the events reel",reelDeselectAll:"Deselect All",reelDetectionClasses:"Detection Classes",reelDetectionClassesHint:"Filter events by detection class",reelIncludeRuleArtifacts:"Include Rule Artifacts",reelIncludeRuleArtifactsHint:"Show rule-based events in the reel",reelRuleArtifacts:"Rule Artifacts",reelSelectAll:"Select All",reelBadgeContent:"Badge content",reelBadgePosition:"Badge position",reelBadgeSize:"Badge size",reelBadgeBoth:"Time + Class",reelBadgeTime:"Time only",reelBadgeClass:"Class only",reelBadgeNone:"Hidden",reelBadgeSmall:"Small",reelBadgeMedium:"Medium",reelBadgeLarge:"Large"},reel:{filterMotion:"Motion",filterOnlyRules:"Only rules",filterOnlySensors:"Only sensors",goToMostRecent:"Go to most recent"},v2:{common:{connecting:"Connecting\u2026",online:"Online",offline:"Offline",loadError:"Loading error",create:"Create",back:"Back",on:"On",off:"Off"},cameras:{empty:"No cameras",hubNotAnswering:"The hub isn't answering. Some cameras may belong to a node that is currently offline \u2014 pull to retry.",statusOnline:" \xb7 online",statusOffline:" \xb7 offline",unavailable:"Unavailable",motion:"Motion",doorbell:"Doorbell",doorbellRinging:"Ringing",doorbellLastRing:"Ring {{time}} ago",snapshotLoading:"Loading\u2026",refreshing:"Updating\u2026",parkedFor:"parked {{min}}m",manage:"Manage cameras",manageHint:"Drag to reorder. Rename inline. Toggle to show or hide a camera from the list.",reorderHandle:"Drag to reorder",appearance:"Appearance",editList:"Edit list",listOptions:"Camera list options",disabledTitle:"Out of service",disabledHint:"Disabled by an administrator",noSnapshotYet:"No snapshot yet",emptyOutOfScope:"No cameras in your access profile",emptyOutOfScopeHint:"Your account has no cameras assigned to it yet. Ask whoever administers this hub to grant you access.",snapshotStale:"Snapshot {{age}} old"},cameraDetail:{fallbackName:"Camera #{{id}}",mute:"Mute",unmute:"Unmute",snapshot:"Snapshot",snapshotFailed:"Could not capture a snapshot.",ptz:"PTZ controls",talk:"Talk",fullscreen:"Fullscreen",talkFailed:"Could not start talk-back. Check microphone access.",pip:"Picture in Picture",exitFullscreen:"Exit fullscreen",devices:"Devices",devicesEmpty:"No connected devices.",linkedModeAuto:"Link: Auto (same location)",linkedModeManual:"Link: Manual",motionBoxes:"Motion boxes",close:"Close",deviceOnline:"Online",deviceOffline:"Offline"},grids:{createA11y:"Create grid",empty:"No grids",emptyHint:"Tap + to create your first grid",countNone:"No cameras",countOne:"1 camera",countOther:"{{count}} cameras",defaultName:"New grid",deleteTitle:"Delete grid",deleteConfirm:"Delete \"{{name}}\"? This cannot be undone.",export:"Export",exportAllA11y:"Export all grids",shareA11y:"Share grid",editA11y:"Edit grid",deleteA11y:"Delete grid",linkCopied:"Grid link copied to clipboard",layoutAuto:"Auto",layoutColumns:"{{count}} cols"},gridView:{editA11y:"Edit grid",fallbackTitle:"Grid",notFound:"Grid not found",emptyGrid:"This grid is empty",addCameras:"Add cameras",reorderTitle:"Reorder cameras",reorderA11y:"Reorder cameras",reorderDoneA11y:"Done reordering",allHidden:"All cameras are hidden. Use reorder mode to show some.",dragA11y:"Drag to reorder",hideA11y:"Hide from grid",showA11y:"Show in grid",removeA11y:"Remove from grid",adhocTitle:"Quick grid",cellActions:"Camera actions",cellActionsA11y:"More actions for this camera",cellDevicesA11y:"Linked devices",cellMenuA11y:"View options"},gridBuilder:{title:"Edit grid",nameLabel:"Name",namePlaceholder:"Grid name",camerasSelected:"Cameras ({{count}} selected)",optionsTitle:"Options",showName:"Show camera name",export:"Export grid",orderSection:"In the grid",orderHint:"Drag to reorder",emptyOrder:"No cameras yet \u2014 add some below.",addSection:"Add cameras",removeA11y:"Remove from grid",addA11y:"Add to grid",highlightMotion:"On motion",highlightAudio:"On audio",highlightAudioOff:"Off",highlightAudioSensor:"Presence",highlightAudioLevel:"Level",highlightThreshold:"Threshold",highlightHold:"Hold",highlightDetection:"On detection",clusterLabel:"Cluster label",clusterLabelIcon:"Icon",clusterLabelText:"Text"},gridBar:{back:"Back",pauseAll:"Pause all",playAll:"Play all",audio:"Audio",quality:"Stream quality",layout:"Layout",timeline:"Timeline",highlightMenu:"Highlight & overlays",activeOnly:"Active only",share:"Share grid",edit:"Edit grid",hide:"Hide controls",show:"Show controls",muteAll:"Mute all",unmuteAll:"Unmute all"},gridMenu:{highlightMaster:"Highlight borders"},gridShare:{title:"Share \"{{name}}\"",quality:"Stream quality",layout:"Layout",showNames:"Show camera names",activeOnly:"Active cameras only",boxes:"Bounding boxes",highlightEnable:"Highlight",audioSummary:"Audio starts on for {{count}} camera(s)",ttlTitle:"Link expires",ttl_1d:"1 day",ttl_7d:"7 days",ttl_30d:"30 days",ttl_never:"Forever",tokenNotice:"The link includes a view-only access token limited to these cameras. Anyone with the link can watch until it expires or is revoked.",copyLink:"Copy link",creating:"Creating link\u2026",copiedExpires:"Link copied \u2014 expires {{date}}",copiedNever:"Link copied \u2014 never expires",error:"Could not create the share link. Check the connection and try again.",optionAuto:"Auto",optionHigh:"High",optionMedium:"Mid",optionLow:"Low"},gridControls:{play:"Play",pause:"Pause",mute:"Mute",unmute:"Unmute",quality:"Quality",layout:"Layout",layoutAuto:"Auto"},events:{comingSoon:"Events \u2014 coming soon",searchLabel:"Search label\u2026",searchSubmit:"Search",searchClear:"Clear search",empty:"No events",today:"Today",filteredEmpty:"No matches in the loaded range",loadOlder:"Load older",selectPrompt:"Select an event to see its detail",filters:"Filters",all:"All",day:"Day",sort:"Sort",sortTime:"Newest",sortImportance:"Importance",flaggedOnly:"Flagged",flaggedOnlyHint:"Favourited, debug, or marked for training",cameras:"Cameras",classes:"Classes",search:"Search",searchCameras:"Search cameras\u2026",searchClasses:"Search classes\u2026",allCamerasHint:"None = all",allClassesHint:"None = all",done:"Done",density:"Density",selectHint:"Select an event",unrecognizedFace:"Face detected, not recognised",eventKinds:"Event types",displayOptions:"Display",displayTitle:"Display options"},settings:{themeSystem:"System",themeDark:"Dark",themeLight:"Light",server:"Server",hubActive:"Active hub",changeServer:"Change server",signOut:"Sign out",network:"Network",networkNone:"No routes probed yet",endpointUnlikely:"Unlikely usable",reprobe:"Re-probe routes",reprobing:"Probing\u2026",appearance:"Appearance",theme:"Theme",info:"Info",app:"App",version:"Version",noServer:"No server",footerNote:"CamStack Viewer connects to a single camstack hub. Cameras, grids and events are managed by the server.",language:"Language",langSystem:"System",gridDefaults:"Grid defaults",showName:"Show camera name",showNameHint:"Overlay the camera name on each tile",showState:"Show status badge",showStateHint:"Show online / recording state on each tile",columns:"Columns",cameraOrder:"Camera order",orderName:"By name",orderCustom:"Custom",motionHold:"Motion highlight linger",motionHoldHint:"Keep a tile's motion highlight lit this long after motion stops.",motionHoldOff:"Off",streamQuality:"Stream quality",streamDefaults:"Stream defaults",playOnOpen:"Play on open",playOnOpenHint:"Start the live stream when a camera opens",audioOnOpen:"Audio on open",audioOnOpenHint:"Unmute audio when a camera opens",snapshotInterval:"Snapshot refresh",highlightAppearance:"Highlight appearance",highlightMotionColor:"Motion color",highlightAudioColor:"Audio color",highlightDetectionColor:"Detection color",highlightThickness:"Border thickness",qualityAuto:"Auto",qualityHigh:"High",qualityMid:"Medium",qualityLow:"Low",secondsValue:"{{count}}s",advanced:"Advanced",clearCache:"Clear cache",clearCacheHint:"Free up snapshots and cached data (keeps your server and settings)",clearCacheConfirmTitle:"Clear cache?",clearCacheConfirmBody:"This removes cached images and query data. Your server, sign-in and settings are kept.",clearCacheDone:"Cache cleared",exportSettings:"Export settings",exportSettingsHint:"Copy your settings as JSON",exportSettingsDone:"Settings copied as JSON",viewLogs:"View logs",viewLogsHint:"Recent in-app log messages",logsEmpty:"No logs recorded yet",keepLogs:"Keep logs",keepLogsHint:"Record a rolling buffer of in-app log messages",debugMode:"Debug mode",debugModeHint:"Verbose logs across live, playback and scrub \u2014 sent to the server",logsClear:"Clear",resetSettings:"Reset settings",resetSettingsHint:"Restore all defaults",resetConfirmTitle:"Reset settings?",resetConfirmBody:"This restores all settings to their defaults.",cancel:"Cancel",confirm:"Confirm",timeline:"Timeline",reel:"Event reel",reelThumbSize:"Reel thumbnail size",reelThumbSizeHint:"Size of the tiles in the Recent events reel.",reelSizeSmall:"Small",reelSizeMedium:"Medium",reelSizeLarge:"Large",reelShowLabels:"Show labels",reelShowLabelsHint:"Show the class/identity label on reel items.",reelLabelStyle:"Class display",reelLabelStyleHint:"Show the detection class as an icon or as text on reel items.",reelShowImportance:"Show importance",reelShowImportanceHint:"Show the importance badge on reel items.",events:"Events",eventsPage:"Events page",minImportance:"Minimum importance",minImportanceHint:"Hide events scored below this across the events page and the camera timeline.",minImportanceOff:"Off",tileShowLabels:"Show labels",tileShowLabelsHint:"Show the class / identity / audio labels on event cards.",tileShowImportance:"Show importance",tileShowImportanceHint:"Show the importance badge on event cards (when scored).",tileShowCameraName:"Show camera name",tileShowCameraNameHint:"Show the camera name in the event card footer.",tileLabelStyle:"Class display",tileLabelStyleHint:"Show the detection class as an icon or as text.",tileLabelStyleIcon:"Icon",tileLabelStyleText:"Text",comingSoon:"Coming soon",cameras:"Cameras",manageCameras:"Manage cameras",manageCamerasHint:"Rename, hide, reorder",notifications:"Notifications",notificationsManage:"Manage notifications",pinchExpandsHeight:"Pinch enlarges the view",pinchExpandsHeightHint:"Pinching to zoom also grows the video taller (crops the side edges on 16:9 cameras).","timeline.gapPercent":"Cluster gap (%)","timeline.sizePercent":"Cluster size (%)","timeline.indicatorPositionPct":"Indicator position (%)","timeline.showImportance":"Show importance on items","timeline.showClass":"Show detection class on items","timeline.cardWidthPct":"Card width (%)",haptics:"Vibration",hapticsUiFeedback:"Vibrate on press",hapticsUiFeedbackHint:"A short buzz confirms buttons, switches, PTZ and player controls. Native only (iOS/Android).",hapticsEnabled:"Vibrate on events",hapticsEnabledHint:"Small vibration pulses for key events on the camera you're watching. Native only (iOS/Android).",hapticsMotion:"Motion",hapticsDetection:"Detection",hapticsPerson:"Person / recognized",buildNumber:"Build",runtimeVersion:"Runtime",runningBundle:"Running bundle",checkUpdates:"Check for updates",checkingUpdates:"Checking\u2026",updateUpToDate:"You're on the latest version.",updatesDisabled:"Updates are disabled in this build.",updateReadyTitle:"Update downloaded",updateReadyBody:"Restart the app now to apply it?",updateCheckFailed:"Could not check for updates",listOverlays:"Camera cards",listMotionBorder:"Motion ring",listMotionBorderHint:"Pulse a ring around a card while the camera sees motion.",listMotionBadge:"Motion badge position",listOccupancy:"Occupancy position",useNativeRenderer:"Use the built-in renderer",useNativeRendererHint:"Render Recent and Events inside the app instead of loading the hub-hosted embed."},nc:{title:"Notifications",tabs:{rules:"Rules",targets:"Targets",snooze:"Snooze"},rulesPlaceholder:"Notification rules will appear here.",targetsPlaceholder:"Delivery targets will appear here.",rules:{add:"New rule",empty:"No rules yet.",loadError:"Couldn't load rules. Pull to retry.",mine:"My rules",admin:"Admin rules",system:"System events",personalBadge:"Personal",adminBadge:"Admin",edit:"Edit",delete:"Delete",cancel:"Cancel",deleteConfirmTitle:"Delete rule",deleteConfirmMessage:"Delete \"{{name}}\"? This can't be undone.",receiveOn:"Receive on {{name}}",noOwnedTargets:"This rule doesn't deliver to any of your targets.",mediaBadge:{attach:{"best-matching":"Matching image",keyFrame:"Key frame",none:"No image"},frame:{full:"Whole scene",boxed:"Boxed scene"},zoneCrop:"Zone crop",gif:"GIF",clip:"Clip",profile:"{{profile}} quality"},editor:{createTitle:"New rule",editTitle:"Edit \"{{name}}\"",basics:"Basics",nameLabel:"Name",namePlaceholder:"e.g. Front door people",triggerLabel:"Trigger",priorityLabel:"Priority",targetsLabel:"Deliver to",noTargets:"You have no targets yet. Add one under the Targets tab first.",pickTarget:"Pick at least one target.",conditionsLabel:"Conditions",condition:{systemEvent:"System event"},moreConditionsLabel:"More conditions",showAdvanced:"Show advanced",noConditions:"No conditions available.",notForTrigger:"Not for this trigger",notForTriggerHint:"Not evaluated for the selected trigger \u2014 switch the trigger to use it.",mediaLabel:"Media",attachLabel:"Attachment",frameLabel:"Picture shows",frame:{cropped:"The subject",full:"The whole scene",boxed:"The scene, with boxes"},zoneCropLabel:"Crop to the zone",zoneCropHint:"Crop the picture to the rule's zone instead of the subject or the whole scene.",gifLabel:"Attach a GIF",gifHint:"A short animation cut from the live buffer around the moment \u2014 the camera does not have to be recording.",clipLabel:"Attach a video clip",clipHint:"An MP4 of the same cut. Destinations that take no video still get the picture.",preRollLabel:"Seconds before",postRollLabel:"Seconds after",profileLabel:"Footage quality",profile:{auto:"Automatic",high:"High",mid:"Medium",low:"Low"},templateLabel:"Message (optional)",templateTitleLabel:"Title",templateBodyLabel:"Body",templatePlaceholder:"Supports {{var}} placeholders",save:"Save changes",create:"Create rule",addValue:"Add value\u2026",removeTag:"Remove {{value}}",clear:"Clear",noCameras:"No cameras available \u2014 the rule applies to all devices.",zoneId:"Zone id\u2026",plateText:"Plate text\u2026",maxDistance:"Max distance",waitForEnhancementLabel:"Wait for recognition",waitForEnhancementHint:"On: one notification at the end of the track, with the name. Off: one straight away without the name, plus a second one if the name arrives before the track ends.",recognition:{noIdentities:"No people saved yet. Add one from an event's face.",unknownIdentities:"Selected but not in the gallery (a deleted person, or an old rule saved by name). Remove what no longer applies.",identities:{off:"Anyone",anyKnown:"Known",specific:"These people",offHint:"The rule does not care who it is \u2014 someone unrecognised matches too.",anyKnownHint:"Only people saved in the gallery, whoever they are. A stranger does not match.",specificHint:"Only the people selected here. Matched on the saved person, so renaming them does not break the rule."},plates:{off:"Any vehicle",anyKnown:"Any plate",specific:"These plates",offHint:"The rule does not care about the plate \u2014 a vehicle whose plate could not be read matches too.",anyKnownHint:"Only vehicles whose plate was actually read, whatever it said.",specificHint:"Only these plates, matched tolerantly \u2014 plate reading is never perfect."}},customZones:{empty:"No custom zones yet. Pick a camera and draw one.",pickCamera:"Camera to draw over",noCameras:"No online cameras to draw over.",draw:"Draw zone",zoneLabel:"Zone {{index}} ({{count}} pts)",remove:"Remove zone {{index}}",title:"Draw zone \u2014 {{name}}",hint:"Tap to add points, drag a point to move. Tap the first point to close.",loading:"Loading frame\u2026",cancel:"Cancel",clear:"Clear",close:"Close",confirm:"Confirm"},addWindow:"Add window",scheduleAlways:"Always active \u2014 add a window to restrict when the rule fires.",scheduleInvert:"Active outside the windows",delivery:{immediate:"Immediate",trackEnd:"Track end",deviceEvent:"Device event",packageEvent:"Package event",systemEvent:"System event"},systemKinds:{"device-online":"Device online","device-offline":"Device offline","device-disabled":"Device switched off","device-enabled":"Device switched on","camera-online":"Camera online","camera-offline":"Camera offline","camera-disabled":"Camera switched off","camera-enabled":"Camera switched on","stream-online":"Stream online","stream-offline":"Stream offline","node-online":"Node online","node-offline":"Node offline","node-inference-unavailable":"Node has no usable inference device","detection-blind":"Camera detecting nothing","alarm-arm-refused":"Alarm arming refused","alarm-arming":"Alarm arming","alarm-triggered":"Alarm triggered","alarm-armed":"Alarm armed","alarm-disarmed":"Alarm disarmed","addon-update-available":"Addon update available","server-update-available":"Server update available","addon-updated":"Addons updated","server-updated":"Server updated","export-completed":"Export completed"},systemFilters:{cameras:"Only these cameras (optional)",deviceTypes:"Only these device types (optional)",nodes:"Only these node IDs (optional)",packages:"Only these addon packages (optional)",addNode:"Add node ID\u2026",addPackage:"Add package name\u2026"},media:{best:"Best image",bestMatching:"Best matching",keyFrame:"Key frame",none:"No attachment"},source:{any:"Any",pipeline:"Pipeline",onboard:"Onboard",sensor:"Sensor",audio:"Audio"},phase:{delivered:"Delivered","picked-up":"Picked up",both:"Both"},zoneMatch:{any:"Any of",all:"All of"},group:{scope:"Scope",class:"Classes",zones:"Zones",quality:"Quality",label:"Identity & plates",device:"Device event",package:"Package",system:"System events",schedule:"Schedule",occupancy:"Occupancy",audio:"Sound"},taxonomy:{person:"People",vehicle:"Vehicles",animal:"Animals",audio:"Audio",sensor:"Sensors",control:"Controls",custom:"Custom values",addCustom:"Add a custom value\u2026"},weekday:{mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat",sun:"Sun"},crossing:{unset:"Entering",exit:"Leaving",any:"Either"},deviceStateNone:"Not set \u2014 this rule is never gated on another device.",deviceStateSet:"Only while device {{deviceId}} is: {{states}}. Change it from the admin UI \u2014 this app cannot list every device.",sceneGateNone:"Not set \u2014 this rule is never gated on a scene.",sceneGateSet:"Only while scene {{sceneId}} is {{state}}, reading {{read}}. Pick the scene from the admin UI \u2014 this app cannot list them.",sceneReadDefault:"whichever boolean the scene itself uses",sceneReadLatched:"the latch (since it was armed)",sceneReadLive:"the live verdict",sceneState:{matched:"matched (as captured)",diverged:"diverged (changed)"},occupancy:{zoneLabel:"Zone",wholeFrame:"\u2014 whole frame \u2014",zonesLoading:"Loading zones\u2026",zonesNeedCamera:"Pick the cameras above to choose one of their zones.",zonesNone:"These cameras have no zones \u2014 the count covers the whole frame.",zoneMissing:"Zone \"{{id}}\" no longer exists on these cameras. The rule still stores it and will never fire until you pick another scope.",classLabel:"Class",anyClass:"\u2014 any class \u2014",classesNone:"The hub sent no class vocabulary \u2014 the count covers every class.",classMissing:"\"{{name}}\" is not a class these cameras report. The rule still stores it and will never fire until you pick another one.",opLabel:"Fires when",op:{"became-occupied":"Became occupied","became-free":"Became free",">=":"Count \u2265","<=":"Count \u2264"},thresholdLabel:"Threshold",countLabel:"Count",sustainLabel:"Hold for (seconds)",sustainInstantHint:"A 0-second hold fires on the very first frame that crosses \u2014 expect repeat notifications from a subject that walks the edge of the zone. 15 seconds is the usual choice.",hint:"Counts confirmed tracked objects from zone analytics. The change must hold for the whole window before it fires; with no snapshot for the camera or zone the rule never fires.",classesDropped:"The class filter ({{classes}}) is dropped on save: an occupancy edge carries one class, so it would only stop this rule from ever firing. Scope the class above instead."},audio:{modeLabel:"How it fires",modeLabelOption:"\ud83d\udd0e Sounds",modeLevelOption:"\ud83d\udcc8 Volume",modeLabelHint:"Fires on the FIRST frame the classifier hears one of these sounds \u2014 no sampling window, however brief the sound is. The rule's cooldown is the only throttle.",modeLevelHint:"Fires when the sound stays loud enough for long enough: the window below is the whole condition.",labelsLabel:"Sounds",labelsHint:"Pick at least one. The classifier labels only a frame or two per episode, so a percentage of a window could never confirm them \u2014 that is why this mode has no window.",labelsUnknown:"This rule stores {{labels}}, which this hub does not classify. It is kept as-is; tap it to drop it.",dbLabel:"Louder than (dBFS)",dbHint:"dBFS is negative-going: 0 is full scale, \u221296 is silence \u2014 so a HIGHER number is a NARROWER filter. Measured on this hub, a baby crying reads \u221255 to \u221226 dBFS, so a floor above \u221255 excludes most of it.",hitPercentLabel:"Hits in the window (%)",hitPercentHint:"How much of the window must match before it fires. Default 60%.",samplingLabel:"Window (seconds)",samplingHint:"The window must be FULL before it can match \u2014 a half-open window never fires. Default 10s.",failClosedHint:"Pick at least one sound or set a level floor. With neither, every sample is a hit and the hub refuses the rule rather than notifying on silence.",hint:"Fires on sustained SOUND, not on a picture: a rule with this condition is evaluated only on a confirmed audio window, never on a detection or a track. The cameras it covers need audio analysis enabled."}}},targets:{add:"Add target",empty:"No targets yet. Add one to start receiving notifications.",loadError:"Couldn't load your targets. Pull to retry.",pickKind:"Choose a notification kind",noKinds:"No notification kinds are available.",kindUnavailable:"unavailable",test:"Send test",testing:"Sending\u2026",testOk:"Test delivered",testFail:"Test failed",edit:"Edit",delete:"Delete",cancel:"Cancel",save:"Save changes",create:"Create target",addTitle:"Add {{kind}} target",editTitle:"Edit {{name}}",deleteConfirmTitle:"Delete target",deleteConfirmMessage:"Delete \"{{name}}\"? This can't be undone.",form:{details:"Details",config:"Configuration",nameLabel:"Name",nameHint:"A label to recognize this target.",secretHint:"Leave blank to keep the saved value."}},snooze:{title:"Snooze",intro:"A snooze silences YOU, not the household \u2014 unless a rule says otherwise. It ends by itself.",activeNone:"Nothing is snoozed.",active:"Silenced now",past:"Recently ended",openTitle:"Silence for",scopeLabel:"What to silence",everything:"Everything",aRule:"One rule",aCamera:"One camera",chooseRule:"Choose a rule",chooseCamera:"Choose a camera",camerasLoading:"Loading your cameras\u2026",noCameras:"No cameras to silence.",globalLabel:"Silence it for everyone",globalHelp:"Other people stop being notified too.",globalNotAllowed:"This rule can only be silenced for you.",summaryLabel:"Tell me what I missed",summaryHelp:"A summary arrives when the window ends.",endNow:"End now",endsIn:"ends in {{label}}",everyone:"for everyone",loadError:"Couldn't load your snoozes.",createError:"Couldn't start that snooze.",classesTitle:"Only these",classesHelp:"Leave this alone and the window covers everything. Pick classes to silence only those \u2014 the rest still reaches you.",everyClass:"Everything",durations:{m10:"10 min",m30:"30 min",h1:"1 hour"},scope:{rule:"One rule",device:"One camera",all:"Everything"},remaining:{ended:"over",minutes:"{{minutes}} min",hours:"{{hours}}h",hoursMinutes:"{{hours}}h {{minutes}}m"},viewOnly:"Your account can see snoozes but not open one."}},login:{loginFailed:"Login failed",verifyFailed:"Verification failed",serverUrl:"Server URL",username:"Username",password:"Password",showPassword:"Show password",hidePassword:"Hide password",signIn:"Sign in",signingIn:"Signing in\u2026",twoFactor:"Two-factor authentication",totpHint:"Enter the 6-digit code from your authenticator app to sign in as ",verificationCode:"Verification code",verifyAndSignIn:"Verify and sign in",verifying:"Verifying\u2026",back:"Back",or:"or",signInWithCamStack:"Sign in with CamStack",hubSignInHint:"Opens your hub\u2019s login page and links this app without typing your password here.",handoffFailed:"Sign-in with CamStack failed \u2014 try again or use username and password",invalidServerUrl:"Enter a valid server URL (https://\u2026) first"},live:{webUnsupported:"Live view is not available on the web version yet.",connecting:"Connecting to live stream\u2026",error:"Unable to load the live stream.",retry:"Retry",noConnection:"No connection to the server",failed:"Connection failed",errorPageLoad:"The player page failed to load."},ptz:{title:"PTZ",notAvailable:"PTZ controls are not available for this camera.",zoom:"Zoom",home:"Home position",presets:"Presets",noPresets:"No presets saved."},timeline:{activityTitle:"Activity",last24h:"Last 24h",loading:"Loading activity\u2026",noActivity:"No activity in the last 24 hours.",legendRecording:"Recorded",legendMotion:"Motion",legendAudio:"Audio",showTimeline:"Show timeline",hideTimeline:"Hide timeline",faultStream:"The video stream is unavailable.",faultRecordings:"Couldn't load the recordings for this day.",faultEvents:"Couldn't load this day's events.",faultDismiss:"Dismiss",loadRetry:"Retry",loadRetrying:"Retrying\u2026"},theater:{back:"Back",today:"Today",yesterday:"Yesterday",prevDay:"Previous day",nextDay:"Next day",selectDate:"Pick a date",live:"LIVE",now:"NOW",auto:"Auto",quality:"Stream quality",filterAll:"All",filter_motion:"Motion",filter_audio:"Audio",goToLive:"Go to live",liveLockOn:"Live lock on \u2014 browsing keeps the picture live",liveLockOff:"Live lock off \u2014 browsing plays the recording",recordLive:"Record live",stopRecording:"Stop recording",keepClipTitle:"Keep this clip?",discardClip:"Discard",saveToGallery:"Save to Photos",shareClip:"Share",recordFailed:"Could not record the live view",noRecording:"No recording",noRecordingHint:"No footage at this time",detailCount:"{{frames}} frames \xb7 {{count}} detections",detailTracks:"{{tracks}} tracks \xb7 {{count}} detections",detailEmpty:"No detail images for this moment",detailSeek:"Go to this moment",zoneHint:"Drag a rectangle over the video to filter events by zone",zoneConfirm:"Confirm",zoneCancel:"Cancel",playbackBar:"Playback controls",footerBar:"Timeline tools",filterTitle:"Filters",zoomIn:"Zoom in",zoomOut:"Zoom out",zoneFilter:"Zone filter",detailSubjects_one:"{{count}} subject",detailSubjects_other:"{{count}} subjects",zoneModeRect:"Rectangle",zoneModePolygon:"Polygon",zoneClearPoints:"Clear",zoneHintPolygon:"Tap to add points \u2014 3 or more",selectTime:"Time",goSameTime:"Go \u2014 same time of day",recordingDaysFailed:"Couldn't read which days have recordings."},mediaKind:{crop:"Object crop",thumbnail:"Best shot",faceCrop:"Face",plateCrop:"Plate",fullFrame:"Frame",fullFrameBoxed:"Boxed",keyFrame:"Key frame",firstFrame:"First",lastFrame:"Last",snapshot:"Snapshot"},tracks:{crop:"Crop",fullFrame:"Full frame",bestShot:"Best shot",media:"Media",path:"Path",pathSummary:"{{count}} points \xb7 {{seconds}}s",pathNoLocalization:"no precise position",share:"Share",copyLink:"Copy link",linkCopied:"Link copied",shareImage:"Share image",viewFullRes:"Full resolution",fullResBadge:"Full",zones:"Zones",audio:"Audio",reason:"Why notable",empty:"No tracks",recent:"Recent",searchPlaceholder:"Search events (e.g. \"person in red\")",searchSubmit:"Search",searchClear:"Clear search",noMatches:"No matching events",person:"Person",assignPerson:"Assign to person",changePerson:"Change",notAssigned:"Not assigned",matchConfidence:"Match confidence",suggested:"Suggested",suggestedUnknown:"Suggested person",suggestedConfirm:"Confirm",suggestedDismiss:"Dismiss",assignFaceTitle:"Assign face",newPersonPlaceholder:"New person name\u2026",createAndAssign:"Create & assign",assignFailed:"Couldn't assign the face",removePerson:"Remove person",removePersonConfirmTitle:"Remove person?",removePersonConfirmBody:"This unlinks the person from this face. The face returns to the unassigned buffer and can be reassigned later.",disassociateFailed:"Couldn't remove the person",removePersonAll:"Remove from all events",removePersonAllConfirmTitle:"Remove from all events?",removePersonAllConfirmBody:"This unlinks this person from EVERY event. All faces currently recognized as this person return to the unassigned buffer and can be reassigned later. The person is kept.",disassociateAllFailed:"Couldn't remove the person from all events",existingPersons:"People",noPersons:"No people yet",metadata:"Metadata",markForTraining:"Mark for training",markForTrainingHint:"Keeps this track and its media past retention",debugFlag:"Debug",debugFlagHint:"Flag this track for diagnostic attention",favourited:"Favourited",favouritedHint:"Keeps this track and its media past retention",copy:"Copy",copied:"Copied","meta.trackId":"Track ID","meta.eventId":"Best event ID","meta.deviceId":"Device ID","meta.camera":"Camera","meta.className":"Class","meta.label":"Label","meta.firstSeen":"First seen","meta.lastSeen":"Last seen","meta.state":"State","meta.importance":"Importance","meta.confidence":"Confidence","meta.mediaKeys":"Media keys"},accessories:{on:"On",off:"Off",dimUp:"Brighter",dimDown:"Dimmer",lock:"Lock",unlock:"Unlock",open:"Open",close:"Close",stop:"Stop",arm:"Arm",disarm:"Disarm",onMotion:"On motion",openPercent:"Open {{percent}}",warmer:"Warmer",cooler:"Cooler",speedUp:"Faster",speedDown:"Slower",oscillate:"Oscillate",press:"Press",play:"Play",pause:"Pause",previous:"Previous",next:"Next",start:"Start",dock:"Dock",locate:"Locate",feed:"Feed",feeding:"Feeding\u2026",install:"Install",installing:"Installing\u2026",upToDate:"Up to date",increase:"Increase",decrease:"Decrease",select:"Select",noEvent:"No events yet",buttonIndex:"Button {{index}}",mode:"Mode",fanMode:"Fan mode",preset:"Preset",direction:"Direction",forward:"Forward",reverse:"Reverse",away:"Away",humidityUp:"Increase humidity",humidityDown:"Decrease humidity",swingVertical:"Vertical swing",swingHorizontal:"Horizontal swing",setTemperature:"Set temperature",currentTemperature:"Current temperature",climateModes:{off:"Off",heat:"Heat",cool:"Cool",auto:"Auto",heat_cool:"Heat/Cool",fan_only:"Fan",dry:"Dry"}},cameraMenu:{title:"View options",gridCommonHint:"Overlays shared by the whole wall \u2014 boxes, highlight border and its triggers, cluster labels \u2014 are set once for the grid, in the grid bar.",boundingBoxes:"Bounding boxes",streamStats:"Stream stats",audioLevel:"Audio level",densityTitle:"Timeline density",density_compact:"Compact",density_medium:"Medium",density_wide:"Wide",densityCustom:"Custom",showImportance:"Show importance",showClass:"Show detection class",timelineSection:"Timeline",managementTitle:"Management"},viewOptions:{groupDetection:"Detection overlays"},cameraSwitches:{title:"Camera functions",loading:"Reading camera functions\u2026",readFailed:"Camera functions could not be read. Nothing has changed \u2014 they are not shown rather than shown with a guessed state.",writeFailed:"That change was refused and has been undone. {{reason}}",offBadge:"OFF",badgeLabel_one:"{{count}} function switched off",badgeLabel_other:"{{count}} functions switched off",unavailableNoProvider:"Not available \u2014 nothing in this installation provides it.",unavailableUnreachable:"Unknown \u2014 the service that owns this did not answer.",unavailableUnknown:"Not available on this camera."},stats:{title:"Stream stats",resolution:"Resolution",fps:"FPS",bitrate:"Bitrate",packetLoss:"Packet loss",jitter:"Jitter",codec:"Codec",frames:"Frames (dropped/total)",waiting:"Measuring\u2026",playbackHint:"Full WebRTC stats need the native player."},exportActions:{title:"Capture",recordingExport:"Recording export"},exports:{title:"Exports",empty:"No exports yet.",settingsHint:"Download recorded clips",range:"Range",rangeStart:"Start",rangeEnd:"End",profile:"Profile",noFootage:"No footage in this range.",speed:"Speed",timelapse:"Timelapse",cadence:"Frame every",audio:"Audio",includeAudio:"Include audio",audioUnavailable:"Audio is only available at 0.5\u20132\xd7 speed.",retention:"Keep for",life24h:"24 hours",life7d:"7 days",life30d:"30 days",deleteAfterDownload:"Delete after download",deleteAfterDownloadHint:"Remove the file once downloaded.",notify:"Notify when ready",creating:"Creating\u2026",createAction:"Export",createFailed:"Could not create the export.",withAudio:"with audio",variantRegular:"1\xd7",variantAccelerated:"Accelerated {{speed}}\xd7",variantSlow:"Slow {{speed}}\xd7",variantTimelapse:"Timelapse",expired:"Expired",expiresInDays:"Expires in {{count}}d",expiresInHours:"Expires in {{count}}h",expiresInMinutes:"Expires in {{count}}m",downloadAction:"Download",downloadUnavailable:"Download not available.",downloadFailed:"Download failed.",cancelAction:"Cancel",cancelConfirmTitle:"Cancel export?",cancelConfirmBody:"This stops rendering and discards the partial file.",deleteAction:"Delete",deleteConfirmTitle:"Delete export?",deleteConfirmBody:"This removes the file. The history entry is kept.",dismiss:"Dismiss",state:{queued:"Queued",rendering:"Rendering",ready:"Ready",failed:"Failed",expired:"Expired",deleted:"Deleted"}},library:{title:"Library",sections:{events:"Events",artifacts:"Artifacts",exports:"Exports"}},artifacts:{title:"Artifacts",settingsHint:"Timelapses, clips and summaries",empty:"No artifacts yet.",emptyFiltered:"No artifacts match these filters.",loadError:"Could not load the artifacts.",gone:"This artifact is no longer on the hub.",expired:"Expired",expiredBody:"The retention window closed and the file was removed.",expiresInDays:"Expires in {{count}}d",expiresInHours:"Expires in {{count}}h",expiresInMinutes:"Expires in {{count}}m",retentionHint:"Kept for up to 14 days. Files may be removed sooner when the hub reaches its storage limits.",byRule:"Rule: {{name}}",allCameras:"All cameras",cameraPlus:"{{name}} +{{count}}",close:"Close",downloadAction:"Download",downloadUnavailable:"Download not available.",downloadFailed:"Download failed.",kind:{timelapse:"Timelapse","timelapse-preview":"Timelapse preview","summary-mosaic":"Summary mosaic","event-gif":"GIF","event-clip":"MP4","event-still":"Still"},time:{now:"Just now",minutesAgo:"{{count}}m ago",hoursAgo:"{{count}}h ago",daysAgo:"{{count}}d ago"},range:{all:"All",day:"24h",week:"7d",month:"30d"},filters:{toggle:"Filters",kind:"Type",camera:"Camera",range:"Period",clear:"Clear filters"},detail:{kind:"Type",cameras:"Cameras",rule:"Rule",captured:"Captured",created:"Produced",size:"Size",format:"Format",expiry:"Expires"}},streamBar:{play:"Play",pause:"Pause",scrubForward:"Scrubbing forward",scrubBackward:"Scrubbing backward",mute:"Mute",unmute:"Unmute",talkStart:"Start talking",talkStop:"Stop talking",quality:"Stream quality",menu:"View options",snapshot:"Snapshot",pip:"Picture in picture",fullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen"},playback:{prevFrame:"Previous frame",nextFrame:"Next frame",speed:"Playback speed",audioMuted:"Audio off at \u2260 1\xd7",audioOn:"Audio on"},cameraSwitcher:{title:"Switch camera",empty:"No cameras available",openGrid:"Open grid ({{n}})",selectA11y:"Select {{name}}"},storage:{title:"Storage",usageTitle:"Usage",nodeTotal:"Node total",defaultLocation:"Default location",locationFree:"{{free}} free",retentionTitle:"Retention",pruneAction:"Apply retention now",pruneConfirmTitle:"Apply retention?",pruneConfirmBody:"Delete footage on {{name}} that exceeds its retention policy.",pruneResult:"Reclaimed {{bytes}} ({{buckets}} segments).",deleteTitle:"Delete footage",deleteAction:"Delete",deleteConfirmTitle:"Delete footage?",deleteConfirmBody:"Permanently delete {{range}} of footage on {{name}}. This cannot be undone.",deleteResult:"Reclaimed {{bytes}} ({{buckets}} segments).",cancel:"Cancel",window24h:"Last 24h",window7d:"Last 7 days",window30d:"Last 30 days",windowAll:"Everything"},eventsMgmt:{title:"Events",footprintTitle:"Footprint",rowsBytes:"{{rows}} events \xb7 {{bytes}}",clusterTotal:"Cluster total",pruneTitle:"Prune older than",pruneHint:"Applies to all cameras.",pruneAction:"Prune",pruneConfirmTitle:"Prune old events?",pruneConfirmBody:"Delete events older than {{range}} across ALL cameras. This cannot be undone.",pruneResult:"Deleted {{count}} events.",deleteTitle:"Delete camera events",deleteAction:"Delete all events for this camera",deleteConfirmTitle:"Delete all events?",deleteConfirmBody:"Permanently delete every event for {{name}}. This cannot be undone.",deleteResult:"Deleted {{count}} events.",cancel:"Cancel",older24h:"24 hours",older7d:"7 days",older30d:"30 days"},overlay:{title:"Overlay",liveSection:"Live indicators",readoutsSection:"Sensors & values",motionBoxes:"Motion regions",boxesOff:"Off",boxesKept:"Detections",boxesAll:"All model detections",boxesAllHint:"Also draws, as dashed outlines, the near-miss and out-of-zone detections of the classes you enabled \u2014 subjects that fell just under the confidence threshold, or stood outside a zone rule. Use it when boxes flicker on a moving subject. The count pill compares what the model saw with what was kept.",diagCounts:"model {{saw}} \xb7 kept {{kept}}",diagHidden:"{{hidden}} hidden",diagOffTopic:"{{offTopic}} off-topic",diagShed:"frame shed \xb7 {{reason}}",reasonThreshold:"below threshold",reasonFullFrame:"full-frame guard",reasonNms:"suppressed by NMS",reasonClassFilter:"class filter",reasonZoneGate:"zone rule",motionBadge:"Motion badge",highlightBorder:"Highlight border",occupancy:"Occupancy",addReadout:"Add a readout",removeReadout:"Remove readout",readoutsHint:"Pin a live value over the picture \u2014 the audio level, or any sensor linked to this camera.",noFields:"This device publishes no live values.",thisCamera:"This camera",audioDbfs:"Audio level",liveOnlyHint:"These draw on the live picture only \u2014 not during playback or while paused.",positions:{off:"Off","top-left":"Top left","top-center":"Top center","top-right":"Top right","left-center":"Left center","right-center":"Right center","bottom-left":"Bottom left","bottom-center":"Bottom center","bottom-right":"Bottom right"}},clips:{title:"Clips",loading:"Loading clips\u2026",empty:"No clips for this camera in the loaded window.",summary_one:"{{count}} clip",summary_other:"{{count}} clips",collapsedHint:"{{duration}} skipped",hiddenHint_one:"{{count}} hidden by source",hiddenHint_other:"{{count}} hidden by source",segmentLabel:"Clip at {{time}}, {{duration}} long",gapLabel:"Gap of {{duration}}",notPlayable:"not playable yet",kind_motion:"Motion",kind_object:"Object",kind_audio:"Audio",kind_native:"Camera",sourceAnalytics:"Recording",sourceOnboard:"Camera ({{vendor}})",sourceHksv:"HomeKit",sourceUnknown:"{{vendor}}",unitDay:"d",unitHour:"h",unitMinute:"m",unitSecond:"s"},eventsEmbed:{section:"Hub embed (preview)",title:"Events embed",count:"{{count}} shown",openPreview:"Embed preview",openPreviewHint:"Open the hub-hosted events surface next to this page. Nothing is replaced.",view_reel:"Reel",view_gallery:"Gallery",error:"Couldn't load events",retry:"Retry",empty:"No events",end:"\xb7 end \xb7"},eventsShare:{title:"Events embed link",openBuilder:"Create embed link",openBuilderHint:"Build a standalone URL for a dashboard or an iframe.",view:"View",viewReel:"Reel",viewGallery:"Gallery",columns:"Columns",rows:"Rows",auto:"Auto",thumb:"Thumbnail size",thumbSmall:"Small",thumbMedium:"Medium",thumbLarge:"Large",theme:"Theme",themeAuto:"Auto",themeDark:"Dark",themeLight:"Light",fields:"Card text",field_label:"Title",field_sublabel:"Class",field_camera:"Camera",field_time:"Time",field_badges:"Badges",cameras:"Cameras",camerasAll:"All cameras the link can see",camerasCount:"{{count}} selected",preview:"Link preview",shareMediaNotice:"A share link cannot load thumbnails. Share tokens have no access to the media endpoint at all \u2014 the shared page lists its events, without their images.",copyLink:"Create link",chip:"Embed link",semanticScopeNotice:"Semantic search runs across every camera and is trimmed to this link afterwards, so a link with few cameras can return sparse results on a large cluster."},gridTimeline:{live:"LIVE",goLive:"Back to live",play:"Play all cameras",pause:"Pause all cameras",zoomIn:"Shorter time span",zoomOut:"Longer time span",summary:"{{events}} events \xb7 {{active}}/{{cameras}} active here",truncated:"partial",noCoverage:"gaps unknown",scrubA11y:"Scrub the grid timeline \u2014 all cameras seek together",eventsFailed:"events unavailable"},battery:{holdHint:"This camera runs on battery \u2014 press play to start the stream and wake it.",startStreamA11y:"Start the stream and wake the battery camera"}},prototype:{today:"Today",yesterday:"Yesterday",now:"NOW",endOfDay:"END OF DAY",loading:"Loading...",timeline:"Timeline",events:"Events",playClip:"Play clip",goToNow:"NOW",noEvents:"No events"},eventKind:{motion:"Motion",audio:"Audio",person:"Person",vehicle:"Vehicle",animal:"Animal",package:"Package",sensor:"Sensor",control:"Control",car:"Car",truck:"Truck",bus:"Bus",motorcycle:"Motorcycle",bicycle:"Bicycle",airplane:"Airplane",boat:"Boat",train:"Train",bird:"Bird",cat:"Cat",dog:"Dog",horse:"Horse",sheep:"Sheep",cow:"Cow",elephant:"Elephant",bear:"Bear",zebra:"Zebra",giraffe:"Giraffe",contact:"Contact","motion-sensor":"Motion sensor",smoke:"Smoke",flood:"Water leak",gas:"Gas","carbon-monoxide":"Carbon monoxide",vibration:"Vibration",tamper:"Tamper",presence:"Presence","enum-sensor":"Sensor state","device-event":"Device event",lock:"Lock",switch:"Switch",siren:"Siren",button:"Button",doorbell:"Doorbell","package-delivered":"Package delivered","package-picked-up":"Package picked up","audio-speech":"Speech","audio-music":"Music","audio-dog":"Dog","audio-doorbell":"Doorbell","audio-siren":"Siren","audio-alarm":"Alarm"}}},2208,[]);
|
|
3535
|
+
__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",library:"Libreria",notifications:"Notifiche",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",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",emptyOutOfScope:"Nessuna telecamera nel tuo profilo di accesso",emptyOutOfScopeHint:"Al tuo account non \xe8 ancora assegnata nessuna telecamera. Chiedi a chi amministra questo hub di darti accesso.",snapshotStale:"Snapshot di {{age}} fa"},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",cellActions:"Azioni telecamera",cellActionsA11y:"Altre azioni per questa telecamera",cellDevicesA11y:"Dispositivi collegati",cellMenuA11y:"Opzioni di visualizzazione"},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",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",timeline:"Timeline",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",flaggedOnly:"Contrassegnate",flaggedOnlyHint:"Preferite, debug o da addestrare",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",hapticsUiFeedback:"Vibra alla pressione",hapticsUiFeedbackHint:"Una breve vibrazione conferma pulsanti, interruttori, PTZ e comandi del player. Solo su dispositivo (iOS/Android).",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",system:"Eventi di sistema",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",waitForEnhancementLabel:"Attendi il riconoscimento",waitForEnhancementHint:"Attivo: una sola notifica a fine traccia, con il nome. Disattivo: una subito senza nome, pi\xf9 una seconda se il nome arriva prima che la traccia si chiuda.",recognition:{noIdentities:"Nessuna persona salvata. Aggiungine una dal volto di un evento.",unknownIdentities:"Selezionati ma non presenti in galleria (una persona eliminata, o una regola vecchia salvata per nome). Rimuovi ci\xf2 che non vale pi\xf9.",identities:{off:"Chiunque",anyKnown:"Conosciuti",specific:"Queste persone",offHint:"Alla regola non importa chi sia: corrisponde anche una persona non riconosciuta.",anyKnownHint:"Solo le persone salvate in galleria, chiunque siano. Uno sconosciuto non corrisponde.",specificHint:"Solo le persone selezionate qui. La corrispondenza usa la persona salvata, quindi rinominarla non rompe la regola."},plates:{off:"Qualsiasi veicolo",anyKnown:"Targa letta",specific:"Queste targhe",offHint:"Alla regola non importa la targa: corrisponde anche un veicolo di cui non \xe8 stata letta.",anyKnownHint:"Solo i veicoli di cui la targa \xe8 stata effettivamente letta, qualunque essa sia.",specificHint:"Solo queste targhe, con corrispondenza tollerante \u2014 la lettura della targa non \xe8 mai perfetta."}},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:{"device-online":"Dispositivo online","device-offline":"Dispositivo offline","device-disabled":"Dispositivo spento","device-enabled":"Dispositivo acceso","camera-online":"Videocamera online","camera-offline":"Videocamera offline","camera-disabled":"Videocamera spenta","camera-enabled":"Videocamera accesa","stream-online":"Flusso online","stream-offline":"Flusso offline","node-online":"Nodo online","node-offline":"Nodo offline","node-inference-unavailable":"Nodo senza dispositivi di inferenza utilizzabili","detection-blind":"Telecamera che non rileva nulla","alarm-arm-refused":"Inserimento allarme rifiutato","alarm-arming":"Allarme in inserimento","alarm-triggered":"Allarme scattato","alarm-armed":"Allarme inserito","alarm-disarmed":"Allarme disinserito","addon-update-available":"Aggiornamento addon disponibile","server-update-available":"Aggiornamento server disponibile","addon-updated":"Addon aggiornati","server-updated":"Server aggiornato","export-completed":"Export completato"},systemFilters:{cameras:"Solo queste videocamere (facoltativo)",deviceTypes:"Solo questi tipi di dispositivo (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",audio:"Audio"},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",occupancy:"Occupazione",audio:"Suono"},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.",sceneGateNone:"Non impostato \u2014 questa regola non dipende da nessuna scena.",sceneGateSet:"Solo mentre la scena {{sceneId}} \xe8 {{state}}, leggendo {{read}}. La scena si sceglie dall'admin \u2014 questa app non pu\xf2 elencarle.",sceneReadDefault:"il booleano scelto dalla scena stessa",sceneReadLatched:"il latch (dall'ultimo riarmo)",sceneReadLive:"il verdetto attuale",sceneState:{matched:"coincidente (come catturata)",diverged:"divergente (cambiata)"},occupancy:{zoneLabel:"Zona",wholeFrame:"\u2014 intero fotogramma \u2014",zonesLoading:"Caricamento zone\u2026",zonesNeedCamera:"Scegli le telecamere qui sopra per selezionare una delle loro zone.",zonesNone:"Queste telecamere non hanno zone \u2014 il conteggio copre l\u2019intero fotogramma.",zoneMissing:"La zona \"{{id}}\" non esiste pi\xf9 su queste telecamere. La regola la conserva e non scatter\xe0 finch\xe9 non scegli un altro ambito.",classLabel:"Classe",anyClass:"\u2014 qualsiasi classe \u2014",classesNone:"L\u2019hub non ha inviato un vocabolario di classi \u2014 il conteggio copre ogni classe.",classMissing:"\"{{name}}\" non \xe8 una classe segnalata da queste telecamere. La regola la conserva e non scatter\xe0 finch\xe9 non ne scegli un\u2019altra.",opLabel:"Scatta quando",op:{"became-occupied":"Diventa occupata","became-free":"Diventa libera",">=":"Conteggio \u2265","<=":"Conteggio \u2264"},thresholdLabel:"Soglia",countLabel:"Conteggio",sustainLabel:"Mantieni per (secondi)",sustainInstantHint:"Con 0 secondi scatta al primo fotogramma che supera la soglia \u2014 aspettati notifiche ripetute da un soggetto che cammina sul bordo della zona. Di solito si usano 15 secondi.",hint:"Conta gli oggetti tracciati confermati dall\u2019analisi delle zone. Il cambiamento deve durare per tutta la finestra prima di scattare; senza uno snapshot per la telecamera o la zona la regola non scatta mai.",classesDropped:"Il filtro classi ({{classes}}) viene rimosso al salvataggio: un evento di occupazione porta una sola classe, quindi impedirebbe soltanto alla regola di scattare. Imposta invece la classe qui sopra."},audio:{modeLabel:"Come scatta",modeLabelOption:"\ud83d\udd0e Suoni",modeLevelOption:"\ud83d\udcc8 Volume",modeLabelHint:"Scatta subito, sul PRIMO fotogramma in cui il classificatore riconosce uno di questi suoni \u2014 nessuna finestra di campionamento, per quanto breve sia il suono. L\u2019unico freno \xe8 la pausa della regola.",modeLevelHint:"Scatta quando il suono resta abbastanza forte abbastanza a lungo: la finestra qui sotto \xe8 tutta la condizione.",labelsLabel:"Suoni",labelsHint:"Scegline almeno uno. Il classificatore etichetta solo uno o due fotogrammi per episodio, quindi una percentuale su una finestra non potrebbe mai confermarli \u2014 per questo in questo modo non c\u2019\xe8 finestra.",labelsUnknown:"Questa regola conserva {{labels}}, che questo hub non classifica. Resta com\u2019\xe8; toccalo per rimuoverlo.",dbLabel:"Pi\xf9 forte di (dBFS)",dbHint:"I dBFS sono negativi: 0 \xe8 il fondo scala, \u221296 \xe8 il silenzio \u2014 quindi un numero PI\xd9 ALTO \xe8 un filtro PI\xd9 STRETTO. Misurato su questo hub, un bambino che piange sta fra \u221255 e \u221226 dBFS: una soglia sopra \u221255 ne esclude la maggior parte.",hitPercentLabel:"Rilevamenti nella finestra (%)",hitPercentHint:"Quanta parte della finestra deve corrispondere prima di scattare. Predefinito 60%.",samplingLabel:"Finestra (secondi)",samplingHint:"La finestra deve essere PIENA prima di poter corrispondere \u2014 una finestra a met\xe0 non scatta mai. Predefinito 10s.",failClosedHint:"Scegli almeno un suono oppure imposta una soglia di livello. Senza nessuno dei due ogni campione conta come rilevamento e l\u2019hub rifiuta la regola invece di notificare sul silenzio.",hint:"Scatta sul SUONO prolungato, non su un\u2019immagine: una regola con questa condizione viene valutata solo su una finestra audio confermata, mai su un rilevamento o una traccia. Le telecamere coinvolte devono avere l\u2019analisi audio attiva."}}},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",aCamera:"Una telecamera",chooseRule:"Scegli una regola",chooseCamera:"Scegli una telecamera",camerasLoading:"Sto caricando le telecamere\u2026",noCameras:"Nessuna telecamera da silenziare.",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.",classesTitle:"Solo questi",classesHelp:"Se non tocchi nulla la finestra copre tutto. Scegli delle classi per silenziare solo quelle \u2014 il resto continua ad arrivarti.",everyClass:"Tutto",durations:{m10:"10 min",m30:"30 min",h1:"1 ora"},scope:{rule:"Una regola",device:"Una telecamera",all:"Tutto"},remaining:{ended:"finito",minutes:"{{minutes}} min",hours:"{{hours}}h",hoursMinutes:"{{hours}}h {{minutes}}m"},viewOnly:"Il tuo account pu\xf2 vedere le pause ma non aprirne una."}},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",faultStream:"Lo stream video non \xe8 disponibile.",faultRecordings:"Non \xe8 stato possibile caricare le registrazioni di questo giorno.",faultEvents:"Non \xe8 stato possibile caricare gli eventi di questo giorno.",faultDismiss:"Ignora",loadRetry:"Riprova",loadRetrying:"Riprovo\u2026"},theater:{back:"Indietro",today:"Oggi",yesterday:"Ieri",prevDay:"Giorno precedente",nextDay:"Giorno successivo",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",liveLockOn:"Blocco live attivo \u2014 navigando l'immagine resta in diretta",liveLockOff:"Blocco live disattivo \u2014 navigando parte la registrazione",recordLive:"Registra live",stopRecording:"Interrompi registrazione",keepClipTitle:"Tenere questo clip?",discardClip:"Scarta",saveToGallery:"Salva in Foto",shareClip:"Condividi",recordFailed:"Impossibile registrare la vista 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",recordingDaysFailed:"Non \xe8 stato possibile leggere i giorni con registrazioni."},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",markForTraining:"Segna per addestramento",markForTrainingHint:"Mantiene questa traccia e i suoi media oltre la conservazione",debugFlag:"Debug",debugFlagHint:"Segnala questa traccia per attenzione diagnostica",favourited:"Preferito",favouritedHint:"Mantiene questa traccia e i suoi media oltre la conservazione",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",setTemperature:"Temperatura impostata",currentTemperature:"Temperatura attuale",climateModes:{off:"Spento",heat:"Riscaldamento",cool:"Raffreddamento",auto:"Auto",heat_cool:"Caldo/Freddo",fan_only:"Ventola",dry:"Deumidificazione"}},cameraMenu:{title:"Opzioni vista",gridCommonHint:"Gli overlay comuni a tutta la griglia \u2014 riquadri, bordo di evidenziazione e i suoi trigger, etichette dei cluster \u2014 si impostano una volta sola per la griglia, nella barra della griglia.",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"},viewOptions:{groupDetection:"Overlay di rilevamento"},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.",notify:"Avvisa quando \xe8 pronto",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"}},library:{title:"Libreria",sections:{events:"Eventi",artifacts:"Artefatti",exports:"Esportazioni"}},artifacts:{title:"Artefatti",settingsHint:"Timelapse, clip e riepiloghi",empty:"Nessun artefatto.",emptyFiltered:"Nessun artefatto corrisponde a questi filtri.",loadError:"Impossibile caricare gli artefatti.",gone:"Questo artefatto non \xe8 pi\xf9 sull'hub.",expired:"Scaduto",expiredBody:"La finestra di conservazione \xe8 terminata e il file \xe8 stato rimosso.",expiresInDays:"Scade tra {{count}}g",expiresInHours:"Scade tra {{count}}h",expiresInMinutes:"Scade tra {{count}}m",retentionHint:"Conservato fino a 14 giorni. I file possono essere rimossi prima se l'hub raggiunge i limiti di spazio.",byRule:"Regola: {{name}}",allCameras:"Tutte le telecamere",cameraPlus:"{{name}} +{{count}}",close:"Chiudi",downloadAction:"Scarica",downloadUnavailable:"Download non disponibile.",downloadFailed:"Download non riuscito.",kind:{timelapse:"Timelapse","timelapse-preview":"Anteprima timelapse","summary-mosaic":"Mosaico riepilogo","event-gif":"GIF","event-clip":"MP4","event-still":"Foto"},time:{now:"Adesso",minutesAgo:"{{count}}m fa",hoursAgo:"{{count}}h fa",daysAgo:"{{count}}g fa"},range:{all:"Tutto",day:"24h",week:"7g",month:"30g"},filters:{toggle:"Filtri",kind:"Tipo",camera:"Telecamera",range:"Periodo",clear:"Azzera filtri"},detail:{kind:"Tipo",cameras:"Telecamere",rule:"Regola",captured:"Ripreso il",created:"Prodotto il",size:"Dimensione",format:"Formato",expiry:"Scadenza"}},streamBar:{play:"Riproduci",pause:"Pausa",scrubForward:"Avanzamento veloce",scrubBackward:"Riavvolgimento",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",liveSection:"Indicatori live",readoutsSection:"Sensori e valori",motionBoxes:"Aree di movimento",boxesOff:"Off",boxesKept:"Rilevazioni",boxesAll:"Tutte le rilevazioni del modello",boxesAllHint:"Disegna anche, con tratteggio, le rilevazioni quasi accettate e quelle fuori zona delle classi che hai abilitato \u2014 soggetti rimasti appena sotto la soglia di confidenza, o fuori da una regola di zona. Utile quando i riquadri lampeggiano su un soggetto in movimento. La pillola confronta ci\xf2 che il modello ha visto con ci\xf2 che \xe8 stato tenuto.",diagCounts:"modello {{saw}} \xb7 tenuti {{kept}}",diagHidden:"{{hidden}} nascosti",diagOffTopic:"{{offTopic}} non pertinenti",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."},gridTimeline:{live:"LIVE",goLive:"Torna al live",play:"Riproduci tutte le telecamere",pause:"Metti in pausa tutte le telecamere",zoomIn:"Intervallo pi\xf9 breve",zoomOut:"Intervallo pi\xf9 lungo",summary:"{{events}} eventi \xb7 {{active}}/{{cameras}} attive qui",truncated:"parziale",noCoverage:"lacune non note",scrubA11y:"Scorri la timeline della griglia \u2014 tutte le telecamere si spostano insieme",eventsFailed:"eventi non disponibili"},battery:{holdHint:"La camera \xe8 a batteria: premi play per avviare lo stream e svegliarla.",startStreamA11y:"Avvia lo stream e sveglia la camera a batteria"}},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"}}},2209,[]);
|
|
3536
|
+
__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}})()}))},2210,[288,1981,1862]);
|
|
3537
|
+
__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()},2211,[1543,1544]);
|
|
3538
|
+
__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)()},2212,[15,17,1690,466,1491,1020,2213,1557,2214,2220,2221,1562,2222,10]);
|
|
3539
|
+
__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])},2213,[15,17,2007,1020,10]);
|
|
3540
|
+
__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])},2214,[15,17,136,20,2215,1007,1143,1557,2219,10]);
|
|
3541
|
+
__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},2215,[2216]);
|
|
3542
|
+
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.WebView=void 0;t(r(d[1]));var l=r(d[2]),o=t(r(d[3])),u=r(d[4]),f=e.WebView=function(){return(0,u.jsx)(l.View,{style:o.default.flexStart,children:(0,u.jsx)(l.Text,{style:o.default.colorRed,children:"React Native WebView does not support this platform."})})};e.default=f},2216,[2217,17,121,2218,10]);
|
|
3543
|
+
__d(function(g,r,i,a,m,_e,d){m.exports=function(e){return e&&e.__esModule?e:{default:e}},m.exports.__esModule=!0,m.exports.default=m.exports},2217,[]);
|
|
3544
|
+
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]).StyleSheet.create({container:{flex:1,overflow:'hidden'},loadingOrErrorView:{position:'absolute',flex:1,justifyContent:'center',alignItems:'center',height:'100%',width:'100%',backgroundColor:'white'},loadingProgressBar:{height:20},errorText:{fontSize:14,textAlign:'center',marginBottom:2},errorTextTitle:{fontSize:15,fontWeight:'500',marginBottom:10},webView:{backgroundColor:'#ffffff'},flexStart:{alignSelf:'flex-start'},colorRed:{color:'red'}});e.default=t},2218,[121]);
|
|
3545
|
+
__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}}},2219,[]);
|
|
3546
|
+
__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},2220,[17,1981]);
|
|
3547
|
+
__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}},2221,[15,17,1557,1003,1007,10]);
|
|
3548
|
+
__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])},2222,[226,1491]);
|
|
3549
|
+
__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}},2223,[15,240,20,743,1557,1020,2224,2231,10]);
|
|
3550
|
+
__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}},2224,[15,17,240,244,136,252,147,112,262,20,786,2225,618,2228,2229,1007,1557,1020,1022,2230,813,10]);
|
|
3551
|
+
__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},2225,[289,226,233,136,40,2226,2227]);
|
|
3552
|
+
__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},'')}},2226,[289,226,2227]);
|
|
3553
|
+
__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={}))},2227,[]);
|
|
3554
|
+
__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})},2228,[1029]);
|
|
3555
|
+
__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(/\/$/,'')}},2229,[1560]);
|
|
3556
|
+
__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},2230,[15,17,819,1020,10]);
|
|
3557
|
+
__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{}}},2231,[15,17,240,136,20,1557,1020,1007,1559,10]);
|
|
3558
|
+
__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)},2232,[2233]);
|
|
3559
|
+
__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},2233,[10,2234,757]);
|
|
3560
|
+
__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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),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})))}}},2234,[120,17,2235,323,2236]);
|
|
3561
|
+
__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}}},2235,[]);
|
|
3562
|
+
__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}},2236,[]);
|
|
3563
|
+
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},2237,[]);
|
|
3564
|
+
__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))}},2238,[10,564,17,121,563]);
|
|
3564
3565
|
__r(566);
|
|
3565
3566
|
__r(6);
|
|
3566
3567
|
__r(0);
|