@camstack/addon-admin-ui 0.1.15 → 0.1.16
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/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CKfGBI-Z.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CeLhKMin.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-CykPKLuU.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-DXPQtD9p.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-xMlwAAY4.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-OcRSBqRe.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-Clpxla3F.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-GvBGLFI2.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-B_akQFxJ.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-Dl4u0xYE.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-BZBxNMgx.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-CSyOECfO.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-CCRqQaXq.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-CzO_Esxm.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-B5D3mvYP.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-xw6c6JeS.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-CRHuTm5p.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-DNpf5SLz.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-XIS4Ck9-.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-BEKtiDI3.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-D4TBsvIB.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DlquBRmD.js} +1 -1
- package/dist/assets/auth-records-BEfan3dC.js +1 -0
- package/dist/assets/capability-router-map-B3jHfbHt.js +1 -0
- package/dist/assets/devices-CVfa8e_5.js +1 -0
- package/dist/assets/{hostInit-DpSCsYyA.js → hostInit-Bq0J4U4L.js} +1 -1
- package/dist/assets/index-B3BmQjhl.js +1 -0
- package/dist/assets/index-BYRl5bfb.js +1 -0
- package/dist/assets/index-Bftw8yZ0.js +80 -0
- package/dist/assets/index-BqEwAQt-.js +1098 -0
- package/dist/assets/index-ByDDdVKJ.css +1 -0
- package/dist/assets/index-C5--Sp9A.js +80 -0
- package/dist/assets/index-CJH_U_aT.js +1 -0
- package/dist/assets/index-CLnkxPD7.js +1 -0
- package/dist/assets/index-gZlh9vZc.js +1 -0
- package/dist/assets/index-o6URf7uT.js +1 -0
- package/dist/assets/index-otlbS_ZJ.js +1 -0
- package/dist/assets/{remoteEntry-0zDoMSWf.js → remoteEntry-qFyESaJr.js} +1 -1
- package/dist/assets/{schemas-BOzikgNT.js → schemas-XgIEoUz3.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-BnGk9xo_.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-cGbq1Btt.js} +2 -2
- package/dist/index.html +7 -8
- package/dist/mf-entry-bootstrap-0.js +2 -2
- package/dist/server/addon.js +11 -25
- package/dist/server/addon.js.map +1 -1
- package/dist/sw.js +1 -1
- package/package.json +4 -3
- package/dist/assets/capability-router-map-Bqwnkkax.js +0 -1
- package/dist/assets/devices-CFL4MLSo.js +0 -511
- package/dist/assets/index-BP0PcGIN.js +0 -1
- package/dist/assets/index-BQVATbZy.js +0 -5
- package/dist/assets/index-BZhZ3Jvf.js +0 -1
- package/dist/assets/index-BfdtdylV.js +0 -533
- package/dist/assets/index-BkJ1uzOh.js +0 -8420
- package/dist/assets/index-BuajxCgS.js +0 -1
- package/dist/assets/index-CKMQgnc3.js +0 -1
- package/dist/assets/index-DAq7g5_U.js +0 -1
- package/dist/assets/index-DRebE_bu.js +0 -22
- package/dist/assets/index-DUjRaULz.js +0 -1
- package/dist/assets/index-OcuNiGT5.js +0 -34
- package/dist/assets/index-R6tzT59K.css +0 -1
- package/dist/assets/index-pmj5N6Ix.js +0 -5
- package/dist/server/addon.d.ts +0 -12
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as n,s as e,n as t,d as f,b as h,r as b,u as S,a as c,y as Ln,f as q,l as I,_ as u,c as B,h as O,g as Ct,t as Nn,e as Ye,i as xa,z as za}from"./schemas-BOzikgNT.js";const La=["onnx","coreml","openvino","tflite","pt"],Na=[{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:"pipeline",label:"Detection Pipeline",icon:"cpu",order:39},{id:"zones",label:"Detection",icon:"shapes",order:38},{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}],qd=Object.fromEntries(Na.map(s=>[s.id,s]));function Fa(s){return s.type==="separator"||s.type==="info"||s.type==="button"||s.type==="object-array"||s.type==="widget"}function Rd(s,r){return{...s.tabs?{tabs:[...s.tabs]}:{},sections:s.sections.map(i=>({...i,fields:i.fields.map(l=>Xe(l,r))}))}}function Xe(s,r){if(Fa(s))return s;if(s.type==="group"){const p=s.fields.map(w=>Xe(w,r));return{...s,fields:p}}if(s.type==="sub-tabs"){const p=s.tabs.map(w=>({...w,fields:w.fields.map(A=>Xe(A,r))}));return{...s,tabs:p}}const i=s.key,l=Object.prototype.hasOwnProperty.call(r,i)?r[i]:void 0,g=s.default;if(s.multiple){const p=Array.isArray(l)?l:l!=null?[l]:[],k=s.multiple.itemDefault!==void 0?s.multiple.itemDefault:g!==void 0?g:Ua(s)==="string"?"":null,w=Math.max(s.multiple.min,p.length),A=[];for(let D=0;D<w;D++)A.push(D<p.length?p[D]:k);return{...s,value:A}}const y=l!==void 0?l:g!==void 0?g:null,v=s.type==="textarea"&&s.isJson&&y!==null&&typeof y=="object"?JSON.stringify(y,null,2):y;return{...s,value:v}}function Ua(s){switch(s.type){case"text":case"textarea":case"password":case"color":case"probe":return"string";case"number":case"slider":return"number";case"boolean":return"boolean";default:return"other"}}const _a=n({inputFps:t(),outputFps:t(),avgDecodeTimeMs:t(),droppedFrames:t()}),Gt=n({codec:e(),maxFps:t().default(0),outputFormat:f(["jpeg","rgb","bgr","yuv420","gray"]).default("jpeg"),scale:t().default(1),width:t().optional(),height:t().optional(),deviceId:t().int().nonnegative().optional(),tag:e().optional()}),Va=[{id:"speech",name:"Speech",icon:"🗣️"},{id:"scream",name:"Scream / Shout",icon:"😱"},{id:"crying",name:"Crying / Baby",icon:"😢"},{id:"laughter",name:"Laughter",icon:"😂"},{id:"music",name:"Music",icon:"🎵"},{id:"dog",name:"Dog",icon:"🐕"},{id:"cat",name:"Cat",icon:"🐈"},{id:"bird",name:"Bird",icon:"🐦"},{id:"animal",name:"Animal (other)",icon:"🐾"},{id:"alarm",name:"Alarm / Siren",icon:"🚨"},{id:"doorbell",name:"Doorbell / Knock",icon:"🔔"},{id:"glass_breaking",name:"Glass Breaking",icon:"💥"},{id:"gunshot",name:"Gunshot / Explosion",icon:"💣"},{id:"vehicle",name:"Vehicle",icon:"🚗"},{id:"siren",name:"Emergency Siren",icon:"🚑"},{id:"fire",name:"Fire / Smoke",icon:"🔥"},{id:"water",name:"Water",icon:"💧"},{id:"wind",name:"Wind / Weather",icon:"🌬️"},{id:"door",name:"Door",icon:"🚪"},{id:"footsteps",name:"Footsteps",icon:"👣"},{id:"crowd",name:"Crowd / Chatter",icon:"👥"},{id:"telephone",name:"Telephone",icon:"📞"},{id:"engine",name:"Engine / Motor",icon:"⚙️"},{id:"tools",name:"Tools / Construction",icon:"🔨"},{id:"silence",name:"Silence",icon:"🤫"}],Ha={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},Wa={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},At=new Map;for(const[s,r]of Object.entries(Ha.mapping))At.set(s.toLowerCase(),r);for(const[s,r]of Object.entries(Wa.mapping))At.set(s.toLowerCase(),r);function Bd(s){return At.get(s.toLowerCase())??null}function Od(){return Va.map(s=>s.id)}var C=(s=>(s.Camera="camera",s.Hub="hub",s.Light="light",s.Siren="siren",s.Switch="switch",s.Sensor="sensor",s.Thermostat="thermostat",s.Button="button",s.Generic="generic",s))(C||{}),Fn=(s=>(s.BatteryOperated="battery-operated",s.Rebootable="rebootable",s.NativeSnapshot="native-snapshot",s.DoorbellButton="doorbell-button",s.TwoWayAudio="two-way-audio",s.PanTiltZoom="pan-tilt-zoom",s.PtzAutotrack="ptz-autotrack",s.MotionTrigger="motion-trigger",s))(Fn||{}),Ga=(s=>(s.ChargingDC="charging-dc",s.ChargingSolar="charging-solar",s.NotCharging="not-charging",s))(Ga||{}),N=(s=>(s.Siren="siren",s.Floodlight="floodlight",s.Spotlight="spotlight",s.PirSensor="pir-sensor",s.Chime="chime",s.Autotrack="autotrack",s.Nightvision="nightvision",s.PrivacyMask="privacy-mask",s.Doorbell="doorbell",s))(N||{});const _={Siren:N.Siren,Floodlight:N.Floodlight,Spotlight:N.Spotlight,PirSensor:N.PirSensor,Chime:N.Chime,Autotrack:N.Autotrack,Nightvision:N.Nightvision,PrivacyMask:N.PrivacyMask},xd={[_.Siren]:"Siren",[_.Floodlight]:"Floodlight",[_.Spotlight]:"Spotlight",[_.PirSensor]:"PIR",[_.Chime]:"Chime",[_.Autotrack]:"Autotracking",[_.Nightvision]:"Night Vision",[_.PrivacyMask]:"Privacy Mask"};function zd(s,r,i){const l=`${s}:${r}`;return typeof i=="number"?`${l}:${i}`:l}function Ka(s,r){return!s||s.length===0?!1:s.includes(r.when.hasFeature)}const $a={id:"battery",label:"Battery-operated camera",when:{hasFeature:Fn.BatteryOperated},defaults:{audioMode:"disabled",detectionMode:"on-motion"},settings:{"snapshot.minRefreshIntervalSec":3600,"streamBroker.preBufferEnabled":!1}},ja=[$a];function Ld(s){for(const r of ja)if(Ka(s,r))return r;return null}const Oe=n({online:h(),lastChangedAt:t()}),Nd={name:"device-status",scope:"device",mode:"singleton",methods:{},events:{onStatusChanged:{data:n({deviceId:t(),status:Oe})}},status:{schema:Oe,kind:"push"},runtimeState:Oe},xe=n({flags:b(e(),S()),deviceType:e().nullable(),model:e().nullable(),channelCount:t().nullable(),lastProbedAt:t(),lastFetchedAt:t()}),Fd={name:"feature-probe",scope:"device",mode:"singleton",methods:{},events:{onProbeChanged:{data:n({deviceId:t(),status:xe})}},status:{schema:xe,kind:"push"},runtimeState:xe},Za=n({id:e(),title:e(),description:e().optional(),style:f(["card","accordion"]).optional(),defaultCollapsed:h().optional(),columns:q([I(1),I(2),I(3),I(4)]).optional(),tab:e().optional(),location:f(["settings","top-tab"]).optional(),order:t().optional(),fields:c(Ln())}),Qa=n({id:e(),label:e(),icon:e(),order:t().optional()}),Ya=n({tabs:c(Qa).optional(),sections:c(Za)}),Kt=Ya.nullable(),Xa={getDeviceSettingsContribution:{input:n({deviceId:t()}),output:Kt,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:n({deviceId:t()}),output:Kt,kind:"query",auth:"protected"},applyDeviceSettingsPatch:{input:n({deviceId:t(),patch:b(e(),S())}),output:n({success:I(!0)}),kind:"mutation",auth:"admin"}},Ja={getStatus:{input:n({deviceId:t()}),output:S().nullable(),kind:"query",auth:"protected"}};function Ud(s){let r=s.methods;return s.exposesDeviceSettings&&(r={...Xa,...r}),s.status&&(r={...Ja,...r}),r}function o(s,r,i){return{input:s,output:r,kind:i?.kind??"query",auth:i?.auth??"protected",timeoutMs:i?.timeoutMs}}function j(s){return{data:s}}const ei=n({className:e(),hits:t().int().nonnegative(),avgScore:t().min(0).max(1),peakScore:t().min(0).max(1)}),$t=n({ts:t().int(),windowSec:t().int().positive(),level:n({rms:t(),dbfs:t()}),peakDbfs:t(),avgDbfs:t(),current:n({className:e(),score:t().min(0).max(1),timestamp:t().int()}).nullable(),byClass:c(ei).readonly()}),ti=n({ts:t().int(),dbfs:t().nullable(),peakDbfs:t(),avgDbfs:t(),topClass:e().nullable(),topScore:t().min(0).max(1).nullable()}),ni=n({points:c(ti).readonly(),effectiveSampleEveryMs:t().int().positive(),windowMsActual:t().int().nonnegative()}),_d={name:"audio-metrics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCurrentSnapshot:o(n({deviceId:t()}),$t.nullable()),getHistory:o(n({deviceId:t(),windowSec:t().int().positive().optional(),sampleEveryMs:t().int().positive().optional()}),ni)},runtimeState:$t},ze=n({percentage:t().min(0).max(100),charging:f(["dc","solar","none"]),sleeping:h(),lastUpdated:t()}),Vd={name:"battery",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor,C.Button,C.Switch],methods:{},events:{onStatusChanged:{data:n({deviceId:t(),status:ze})}},status:{schema:ze,kind:"push"},runtimeState:ze},jt=n({percentage:t().min(0).max(100),lastChangedAt:t()}),Hd={name:"brightness",scope:"device",mode:"singleton",deviceTypes:[C.Light],methods:{setBrightness:o(n({deviceId:t().int().nonnegative(),percentage:t().min(0).max(100)}),u(),{kind:"mutation",auth:"admin"})},events:{onBrightnessChanged:{data:n({deviceId:t(),percentage:t().min(0).max(100),lastChangedAt:t()})}},status:{schema:jt,kind:"command-driven"},runtimeState:jt},G=f(["high","mid","low"]),Wd=["high","mid","low"],Un=f(["pull-rtsp","pull-rtmp","pull-http","pull-rfc4571","push-annexb"]),wt=n({width:t().int().positive(),height:t().int().positive()}),Je=n({camStreamId:e().min(1),deviceId:t().int().nonnegative(),kind:Un,url:e().optional(),codec:e().optional(),resolution:wt.optional(),fps:t().positive().optional(),label:e().optional(),deviceFeatures:c(e()).optional(),autoEligible:h().optional(),metadata:b(e(),S()).optional()}),ke=f(["unassigned","idle","connecting","streaming","error"]),et=n({deviceId:t().int().nonnegative(),profile:G,brokerId:e(),sourceCamStreamId:e().nullable(),status:ke,resolution:wt.optional(),codec:e().optional(),preBufferSec:t().nonnegative().optional(),errorMessage:e().optional()}),ai=n({id:e(),label:e(),protocol:f(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:e().optional(),resolution:n({width:t(),height:t()}).readonly().optional(),fps:t().optional(),bitrate:t().optional(),codec:e().optional(),profileHint:f(["high","mid","low"]).optional()}),Gd=n({type:e(),url:e(),videoCodec:e().optional(),audioCodec:e().optional(),metadata:b(e(),S()).readonly().optional()}),ii=n({type:f(["video","audio"]),data:B(Uint8Array),pts:t(),dts:t(),keyframe:h(),codec:e()}),oi=n({data:B(Uint8Array),width:t(),height:t(),format:f(["jpeg","rgb","bgr","yuv420","gray"]),timestamp:t()}),si=f(["idle","connecting","streaming","error","stopped"]),ri=n({status:si,inputFps:t(),decodeFps:t(),encodedSubscribers:t(),decodedSubscribers:t(),uptimeMs:t(),bitrateKbps:t(),idrIntervalMs:t(),codec:e().optional(),totalBytes:t(),packetCount:t(),rtspClients:t(),pipeClients:t(),preBufferSec:t(),preBufferMs:t(),preBufferPackets:t(),decoderNodeId:e().nullable(),audio:n({codec:e(),sampleRate:t(),channels:t(),supported:h()}).nullable().optional()}),Pt=f(["webrtc","hls","mjpeg","rtsp"]),di=n({streamId:e(),format:Pt,url:e().nullable(),active:h()}),Kd={name:"streaming-engine",scope:"system",mode:"singleton",internal:!0,methods:{registerStream:o(n({streamId:e(),sourceUrl:e(),codec:e().optional()}),u(),{kind:"mutation"}),unregisterStream:o(n({streamId:e()}),u(),{kind:"mutation"}),getStreamUrl:o(n({streamId:e(),format:Pt}),e().nullable()),listStreams:o(u(),c(di))}},tt=n({brokerId:e(),url:e(),mutedUrl:e(),enabled:h()}),ci=n({sessionId:e(),remoteAddr:e(),playing:h(),muted:h(),connectedAt:t(),lastRtpAt:t(),bytesSent:t()}),li=n({tag:e(),subscribedAt:t(),maxFps:t(),framesDelivered:t(),framesDropped:t()}),ui=n({tag:e(),subscribedAt:t(),chunksDelivered:t()}),mi=n({rtsp:c(ci).readonly(),decoded:c(li).readonly(),audio:c(ui).readonly(),pipeClients:t(),encodedSubscribers:t()}),$d=f(["reconnecting","sleeping","offline","disabled","waking"]),jd={name:"stream-broker",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{publishCameraStream:o(n({deviceId:t().int().nonnegative(),camStreamId:e().min(1),kind:Un,url:e().optional(),codec:e().optional(),resolution:wt.optional(),fps:t().positive().optional(),label:e().optional(),deviceFeatures:c(e()).optional(),autoEligible:h().optional(),metadata:b(e(),S()).optional()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),retractCameraStream:o(n({deviceId:t().int().nonnegative(),camStreamId:e().min(1)}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),assignProfile:o(n({deviceId:t().int().nonnegative(),profile:G,camStreamId:e().min(1)}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),unassignProfile:o(n({deviceId:t().int().nonnegative(),profile:G}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),listAllCameraStreams:o(u(),c(Je).readonly()),listAllProfileSlots:o(u(),c(et).readonly()),getBrokerStats:o(n({brokerId:e()}),ri),listClients:o(n({brokerId:e()}),mi),killClient:o(n({brokerId:e(),channel:f(["rtsp","decoded","audio"]),handle:e()}),n({killed:h()}),{kind:"mutation",auth:"admin"}),restartProfile:o(n({deviceId:t().int().nonnegative(),profile:G}),n({success:h()}),{kind:"mutation",auth:"admin"}),getStreamUrl:o(n({streamId:e(),format:Pt}),n({url:e()})),getBroker:o(n({brokerId:e()}),O()),setPreBufferDuration:o(n({brokerId:e(),seconds:t().min(0).max(30)}),u(),{kind:"mutation",auth:"admin"}),getPreBufferInfo:o(n({brokerId:e()}),n({configuredSec:t(),bufferedMs:t(),packetCount:t()})),getRtspPort:o(u(),t()),getAllRtspEntries:o(n({hostname:e().optional()}),c(tt).readonly()),getRtspEntry:o(n({brokerId:e(),hostname:e().optional()}),tt.nullable()),regenerateRtspToken:o(n({brokerId:e()}),e().nullable(),{kind:"mutation",auth:"admin"}),setRtspEnabled:o(n({brokerId:e(),enabled:h()}),u(),{kind:"mutation",auth:"admin"}),isRtspEnabled:o(n({brokerId:e()}),h())},events:{onCamStreamDemand:j(n({deviceId:t().int().nonnegative(),camStreamId:e(),profile:G})),onCamStreamIdle:j(n({deviceId:t().int().nonnegative(),camStreamId:e()})),onRequestStreamSourceRefresh:j(n({deviceId:t().int().nonnegative(),camStreamId:e(),brokerId:e()}))}},Zd={name:"camera-streams",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCameraStreams:o(n({deviceId:t().int().nonnegative()}),c(Je).readonly()),getBrokerStreams:o(n({deviceId:t().int().nonnegative()}),c(et).readonly()),getRtspEntries:o(n({deviceId:t().int().nonnegative(),hostname:e().optional()}),c(tt).readonly())},events:{onCamStreamsChanged:j(n({deviceId:t().int().nonnegative(),camStreams:c(Je).readonly()})),onProfileSlotsChanged:j(n({deviceId:t().int().nonnegative(),profileSlots:c(et).readonly()}))},runtimeState:n({online:h(),slotStatuses:n({high:ke.optional(),mid:ke.optional(),low:ke.optional()}),slotErrors:n({high:e().optional(),mid:e().optional(),low:e().optional()}),lastChangedAt:t()})},pi=f(["online","sleeping","offline","unknown"]),nt=n({childNativeId:e(),name:e(),type:f(C),status:pi,metadata:n({model:e().optional(),serialNumber:e().optional(),uid:e().optional(),rtspChannel:t().int().nonnegative().optional(),isBattery:h().optional(),isDoorbell:h().optional(),isMultifocal:h().optional()}).default({}),alreadyAdopted:h(),adoptedDeviceId:t().int().nonnegative().nullable()}),Zt=n({discovered:c(nt),lastDiscoveryAt:t().int().nonnegative().nullable(),lastError:e().nullable()}),Qd={name:"device-discovery",scope:"device",mode:"singleton",deviceTypes:[C.Hub],status:{schema:Zt,kind:"poll"},runtimeState:Zt.extend({lastFetchedAt:t().int().nonnegative()}),methods:{listDiscovered:o(n({deviceId:t().int().nonnegative()}),c(nt).readonly()),refreshDiscovery:o(n({deviceId:t().int().nonnegative()}),c(nt).readonly(),{kind:"mutation",auth:"admin"}),adoptDevice:o(n({deviceId:t().int().nonnegative(),childNativeId:e(),name:e().optional()}),n({deviceId:t().int().nonnegative(),stableId:e()}),{kind:"mutation",auth:"admin"}),releaseDevice:o(n({deviceId:t().int().nonnegative(),childDeviceId:t().int().nonnegative()}),u(),{kind:"mutation",auth:"admin"})}},Qt=n({lastPressedAt:t().nullable(),pressCountSinceStart:t()}),gi=n({deviceId:t(),timestamp:t()}),Yd={name:"doorbell",scope:"device",mode:"singleton",deviceTypes:[C.Button],methods:{},events:{onPressed:{data:gi}},status:{schema:Qt,kind:"push"},runtimeState:Qt},hi=f(["jpeg","rgb","bgr","yuv420","gray"]),Ce=n({data:O(),format:hi,width:t(),height:t(),timestamp:t()}),ee=n({x:t(),y:t(),w:t(),h:t()}),yi=n({class:e(),originalClass:e(),score:t(),bbox:ee}),Yt=n({data:B(Float32Array),sampleRate:t(),channels:t(),timestamp:t(),deviceId:t().optional()}),vi=n({rms:t(),dbfs:t()}),at=n({className:e(),originalClass:e().optional(),score:t()}),De=n({bbox:ee,pixelCount:t(),intensity:t()}),fi=n({detected:h(),regionCount:t(),regions:c(De).readonly(),rawRegions:c(De).readonly(),frameWidth:t(),frameHeight:t(),analysisMs:t()}),Xd={name:"motion-detection",scope:"device",mode:"singleton",exposesDeviceSettings:!0,methods:{analyze:o(n({deviceId:t(),frame:Ce}),fi,{kind:"mutation"}),removeCamera:o(n({deviceId:t()}),u(),{kind:"mutation"}),reset:o(u(),u(),{kind:"mutation"})},events:{onMotion:{data:n({deviceId:t(),detected:h(),regionCount:t()})}}},Jd=n({activeCameras:t(),throttledCameras:t(),avgInferenceTimeMs:t(),queueDepth:t()}),Dt=n({detectionMode:f(["disabled","always-on","on-motion"]),configuredFps:t(),actualFps:t(),queueDepth:t(),avgInferenceTimeMs:t(),droppedFrames:t(),phase:f(["idle","watching","active"])}),Si=Dt.extend({deviceId:t()}),it=f(["onnx","coreml","openvino","tflite","pt"]),ce=f(["detector","cropper","classifier","refiner","audio-classifier"]),M=n({runtime:f(["node","python"]),backend:e(),format:it,device:e().optional()}),bi=n({id:e(),label:e(),description:e().optional()}),Ii=n({engine:M,devices:c(bi).readonly(),defaultDevice:e()}),ot=Ct(()=>n({addonId:e(),addonName:e(),slot:ce,inputClasses:c(e()).readonly(),outputClasses:c(e()).readonly(),enabled:h(),modelId:e(),children:c(ot).readonly(),engine:M.optional(),group:e().optional(),settings:b(e(),S()).optional()})),Ee=Ct(()=>n({addonId:e(),enabled:h(),modelId:e(),children:c(Ee).readonly(),settings:b(e(),S()).optional()})),Le=n({id:e(),name:e(),createdAt:e(),updatedAt:e(),engine:M,steps:c(Ee).readonly()}),ki=n({id:e(),name:e(),formats:b(e(),n({downloaded:h(),sizeMB:t()}))}),Ci=O(),Ai=n({id:e(),name:e(),slot:ce,inputClasses:c(e()).readonly(),outputClasses:c(e()).readonly(),childSlots:c(ce).readonly(),models:c(ki).readonly(),defaultModelId:e(),defaultModelIdByFormat:b(e(),e()).optional(),enabledByDefault:h().optional(),defaultConfidence:t(),group:e().optional(),configSchema:c(Ci).readonly().optional()}),wi=n({id:ce,label:e(),priority:t(),parentSlot:ce.nullable(),addons:c(Ai).readonly()}),Pi=n({availableEngines:c(Ii).readonly(),selectedEngine:M,slots:c(wi).readonly()}),Di=n({detections:c(yi).readonly(),inferenceMs:t(),modelId:e()}),X=Ct(()=>n({addonId:e(),modelId:e(),enabled:h().default(!0),children:c(X).optional(),settings:b(e(),S()).optional()})),Ei=n({filename:e(),stepIds:c(e()).readonly().optional()}),Mi=n({base64:e(),filename:e()}),Ti=n({filename:e(),sizeKb:t()}),qi=n({base64:e()}),Ri=n({id:e(),name:e(),description:e(),available:h(),rawLabels:c(e()).readonly().optional()}),Bi=n({activeBackend:e(),availableBackends:c(Ri).readonly(),sampleRate:t(),chunkDurationMs:t()}),Oi=n({filePath:e(),sizeMB:t(),durationMs:t()}),xi=n({success:h(),error:e().optional(),frame:O().optional()}),zi=O(),Li=O(),Ni=O(),Fi=O(),Ui=O(),Xt=O(),ec={name:"pipeline-executor",scope:"system",mode:"singleton",methods:{getAvailableEngines:o(u(),c(M)),getSelectedEngine:o(u(),M),getDefaultSteps:o(M,c(ot)),reprobeEngine:o(u(),M,{kind:"mutation",auth:"admin"}),getVideoPipelineSteps:o(u(),b(e(),n({modelId:e(),settings:b(e(),S()).readonly()}))),setVideoPipelineSteps:o(n({steps:b(e(),n({modelId:e(),settings:b(e(),S()).readonly()}))}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),getSchema:o(u(),Pi),getGlobalSteps:o(u(),c(ot).readonly().nullable()),getGlobalPipelineConfig:o(u(),zi),getOrchestratorConfigSchema:o(u(),Li),listTemplates:o(u(),c(Le).readonly()),saveTemplate:o(n({name:e(),steps:c(Ee).readonly(),engine:M}),Le,{kind:"mutation"}),updateTemplate:o(n({id:e(),name:e().optional(),steps:c(Ee).readonly().optional()}),Le,{kind:"mutation"}),deleteTemplate:o(n({id:e()}),u(),{kind:"mutation"}),getCapabilities:o(u(),Fi),getAddonModels:o(n({addonId:e()}),Ui),downloadModel:o(n({addonId:e(),modelId:e(),format:it}),Oi,{kind:"mutation"}),deleteModel:o(n({addonId:e(),modelId:e(),format:it}),n({success:I(!0)}),{kind:"mutation"}),detect:o(n({addonId:e(),frame:Ce,config:b(e(),S()).optional()}),Di),runPipeline:o(n({engine:M.optional(),steps:c(X).min(1),frame:Ce.optional(),imageBase64:e().optional(),image:B(Uint8Array).optional(),referenceImage:e().optional(),deviceId:t().optional(),sessionId:e().optional()}),Xt,{kind:"mutation"}),runPipelineBatch:o(n({engine:M.optional(),steps:c(X).min(1),frames:c(Ce).min(1).max(255),deviceId:t().optional(),sessionId:e().optional()}),n({results:c(Xt).readonly()}),{kind:"mutation"}),cacheFrameInPool:o(n({data:B(Uint8Array),width:t().int().positive(),height:t().int().positive(),format:f(["rgb","bgr","gray"])}),n({frameId:t(),width:t(),height:t()}),{kind:"mutation"}),inferCached:o(n({stepId:e(),frameId:t().int()}),b(e(),S()),{kind:"mutation"}),uncacheFrame:o(n({frameId:t().int()}),u(),{kind:"mutation"}),getEffectiveTuning:o(u(),n({batchMode:e(),windowMs:t(),maxBatchSize:t(),concurrency:t()})),listLoadedEngines:o(u(),c(n({engineKey:e(),engine:M,modelsLoaded:c(e()).readonly(),inUseByCameras:c(t()).readonly(),kind:f(["runtime","warm-override"]),poolPid:t().nullable(),idleMs:t().nullable(),idleTtlMs:t().nullable()})).readonly()),spinEngine:o(n({engine:M}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),killEngine:o(n({engine:M,force:h().optional()}),n({success:h(),reason:e().optional()}),{kind:"mutation",auth:"admin"}),listReferenceImages:o(u(),c(Ei).readonly()),getReferenceImage:o(n({filename:e()}),Mi.nullable()),getReferenceAudioFiles:o(u(),c(Ti).readonly()),getReferenceAudio:o(n({filename:e()}),qi.nullable()),getAudioCapabilities:o(u(),Bi),runAudioTest:o(n({addonId:e(),modelId:e(),filename:e().optional(),settings:b(e(),S()).optional()}),xi,{kind:"mutation"}),getDetectionConfigSchema:o(u(),Ni)}},_i=f(["polygon","tripwire"]),Vi=n({x:t(),y:t()}),se=n({id:e(),name:e(),kind:_i.default("polygon"),polygon:c(Vi).readonly(),color:e().default("#3b82f6")}),tc={name:"zones",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listZones:o(n({deviceId:t()}),c(se).readonly()),addZone:o(n({deviceId:t(),zone:se}),u(),{kind:"mutation",auth:"admin"}),removeZone:o(n({deviceId:t(),zoneId:e()}),u(),{kind:"mutation",auth:"admin"}),updateZone:o(n({deviceId:t(),zone:se}),u(),{kind:"mutation",auth:"admin"})},runtimeState:n({zones:c(se).readonly()})},Z={min:0,max:6e4,default:3e4,step:500},K={min:1,max:30,default:4,step:1},$={min:1,max:30,default:10,step:1},Et=f(["onboard","analyzer"]),Hi=c(Et),Wi=n({deviceId:t(),detected:h(),source:Et.default("analyzer"),regions:c(De).readonly().optional()}),Gi=n({deviceId:t(),detectionMode:f(["disabled","always-on","on-motion"]).default("on-motion"),audioMode:f(["disabled","always-on","on-motion"]).default("always-on"),motionCooldownMs:t().min(Z.min).default(Z.default),motionFps:t().min(K.min).max(K.max).default(K.default),detectionFps:t().min($.min).max($.max).default($.default),motionStreamId:e(),detectionStreamId:e(),motionSources:Hi.default(["analyzer"]),pipelineEnabled:h().default(!0),engine:M.optional(),steps:c(X).readonly().optional(),audio:n({engine:M,modelId:e(),enabled:h()}).nullable().optional(),zones:c(se).readonly().default([])}),nc=[{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:K.min,max:K.max,step:K.step,default:K.default,showValue:!0,unit:"fps",showWhen:{field:"motionSources",includes:"analyzer"}},{key:"detectionFps",type:"slider",label:"Detection FPS",min:$.min,max:$.max,step:$.step,default:$.default,showValue:!0,unit:"fps"},{key:"motionCooldownMs",type:"slider",label:"Motion Cooldown",description:"Time without a fresh motion event before the active phase ends. Applies to all motion sources — every motion event re-arms the timer.",min:Z.min,max:Z.max,step:Z.step,default:Z.default,showValue:!0,unit:"s",displayScale:1e3}],_n=n({nodeId:e(),attachedCameras:t(),activeCameras:t(),avgInferenceFps:t(),avgInferenceTimeMs:t(),queueDepthTotal:t(),hardware:n({hasGpu:h(),inferenceBackend:e().optional(),cpuCores:t().optional()})}),Ki=n({nodeId:e(),activeCameras:t(),throttledCameras:t(),avgInferenceTimeMs:t(),queueDepth:t()}),ac={name:"pipeline-runner",scope:"system",mode:"singleton",methods:{attachCamera:o(Gi,n({success:I(!0)}),{kind:"mutation"}),detachCamera:o(n({deviceId:t()}),n({success:I(!0)}),{kind:"mutation"}),reportMotion:o(Wi,n({success:I(!0)}),{kind:"mutation"}),getLocalLoad:o(u(),_n),getLocalMetrics:o(u(),Ki),getCameraMetrics:o(n({deviceId:t()}),Dt.nullable()),getAllCameraMetrics:o(u(),c(Si).readonly()),getLocalCameras:o(u(),c(t()).readonly())}},Jt=n({detected:h(),lastDetectedAt:t().nullable(),autoClearAfterMs:t().nullable()}),$i=n({deviceId:t(),detected:h(),timestamp:t(),source:Et,regions:c(De).readonly().optional()}),ic={name:"motion",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor],methods:{isDetected:o(n({deviceId:t()}),h())},events:{onMotionChanged:{data:$i}},status:{schema:Jt,kind:"push"},runtimeState:Jt},Vn=n({enabled:h(),lastChangedAt:t()}),ji=Vn.extend({lastFetchedAt:t()}),oc={name:"motion-trigger",scope:"device",mode:"singleton",deviceTypes:[C.Light,C.Siren,C.Switch],methods:{setMotionTrigger:o(n({deviceId:t().int().nonnegative(),enabled:h()}),u(),{kind:"mutation",auth:"admin"})},events:{onMotionTriggerChanged:{data:n({deviceId:t(),enabled:h(),lastChangedAt:t()})}},status:{schema:Vn,kind:"command-driven"},runtimeState:ji},Zi=e().describe("Vendor target string (people/vehicle/pet); empty = camera default"),st=n({targetType:Zi,stopDelaySeconds:t().int().min(0).max(300),disappearDelaySeconds:t().int().min(0).max(300)}),Qi=n({value:e(),label:e()}),Ae=n({enabled:h(),lastChangedAt:t(),currentSettings:st.nullable(),supportedTargetTypes:c(Qi)}),Yi=Ae.extend({lastFetchedAt:t()}),sc={name:"ptz-autotrack",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getStatus:o(n({deviceId:t()}),Ae),setEnabled:o(n({deviceId:t(),enabled:h()}),u(),{kind:"mutation"}),getSettings:o(n({deviceId:t()}),st.nullable()),setSettings:o(n({deviceId:t(),settings:st.partial()}),u(),{kind:"mutation"})},events:{onStatusChanged:{data:n({deviceId:t(),status:Ae})}},status:{schema:Ae,kind:"command-driven"},runtimeState:Yi},en=n({on:h(),lastChangedAt:t()}),rc={name:"switch",scope:"device",mode:"singleton",deviceTypes:[C.Switch,C.Siren,C.Light],methods:{setState:o(n({deviceId:t(),on:h()}),u(),{kind:"mutation",auth:"admin"})},events:{onStateChanged:{data:n({deviceId:t(),on:h(),lastChangedAt:t()})}},status:{schema:en,kind:"command-driven"},runtimeState:en,settings:{bindings:[{kind:"scalar",statusPath:"on",method:"setState",valueArg:"on",field:{label:"On",kind:"boolean"}}]}},rt=n({totalObjects:t().int().nonnegative(),byClass:b(e(),t().int().nonnegative())}),Xi=rt.extend({zoneId:e(),zoneName:e(),trackIds:c(e()).readonly()}),tn=n({ts:t().int(),frameWidth:t().int().nonnegative(),frameHeight:t().int().nonnegative(),zones:c(Xi).readonly(),frame:rt,unzoned:rt}),Ji=f(["minute","5min","hour"]),Ne=n({from:t().int(),to:t().int(),resolution:Ji}),Fe=n({ts:t().int(),count:t().int().nonnegative()}),dc={name:"zone-analytics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCurrentSnapshot:o(n({deviceId:t()}),tn.nullable()),getZoneHistory:o(n({deviceId:t(),zoneId:e(),className:e().optional()}).extend(Ne.shape),c(Fe).readonly()),getCameraHistory:o(n({deviceId:t(),className:e().optional()}).extend(Ne.shape),c(Fe).readonly()),getUnzonedHistory:o(n({deviceId:t(),className:e().optional()}).extend(Ne.shape),c(Fe).readonly())},runtimeState:tn},eo=f(["include","exclude"]),re=n({id:e(),name:e().optional(),zoneIds:c(e()).min(1).readonly(),mode:eo,classFilter:c(e()).readonly().optional(),overlapThreshold:t().min(0).max(1).optional(),bboxInclusionPct:t().min(0).max(100).optional(),preferMask:h().optional(),enabled:h().default(!0)}),cc=c(re).readonly(),nn=f(["motion","detection"]),lc={name:"zone-rules",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listRules:o(n({deviceId:t(),stage:nn}),c(re).readonly()),setRules:o(n({deviceId:t(),stage:nn,rules:c(re).readonly()}),u(),{kind:"mutation",auth:"admin"})},runtimeState:n({motion:c(re).readonly(),detection:c(re).readonly()})},to=n({connected:h(),deviceCount:t(),error:e().optional()}),uc=n({externalId:e(),name:e(),type:e(),metadata:b(e(),S()).optional()}),Me=n({stableId:e(),type:f(C),suggestedName:e(),prefilledConfig:b(e(),S())}),Te=n({id:t(),stableId:e(),addonId:e(),type:e(),name:e(),parentDeviceId:t().nullable(),online:h(),features:c(e()),config:b(e(),S())}),dt=n({status:f(["ok","error"]),labels:c(e()).optional(),error:e().optional()}),no=S(),mc={name:"device-provider",scope:"system",mode:"collection",methods:{start:o(u(),u(),{kind:"mutation"}),stop:o(u(),u(),{kind:"mutation"}),getStatus:o(u(),to),getDevices:o(u(),c(n({id:e(),name:e(),type:e()}))),supportsDiscovery:o(n({}),h()),discoverDevices:o(n({}),c(Me),{kind:"mutation",auth:"admin"}),adoptDiscoveredDevice:o(n({candidate:Me}),Te,{kind:"mutation",auth:"admin"}),supportsManualCreation:o(n({}),h()),getChildCreationSchema:o(n({type:f(C)}),no),createDevice:o(n({type:f(C),config:b(e(),S())}),Te,{kind:"mutation",auth:"admin"}),testCreationField:o(n({type:f(C),key:e(),value:S(),formValues:b(e(),S()).optional()}),dt,{kind:"mutation",auth:"admin"})}},ao="device.state-changed";function Hn(s){const r=new Map,i=new Map;let l=null;const g=(m,p)=>`${m}:${p}`,y=()=>{l||s.live?.onEvent&&(l=s.live.onEvent.subscribe({category:ao},{onData:m=>{const p=m.data;if(!p||typeof p.deviceId!="number"||typeof p.capName!="string")return;const k=g(p.deviceId,p.capName);r.set(k,p.slice);const w=i.get(k);if(w)for(const A of w)try{A(p.slice)}catch{}}}))},v=()=>{l&&(i.size>0||(l.unsubscribe(),l=null))};return{read(m,p){return r.get(g(m,p))},async refresh(m,p){const k=await s.deviceState.getCapSlice.query({deviceId:m,capName:p}),w=g(m,p);r.set(w,k??void 0);const A=i.get(w);if(A)for(const D of A)try{D(k??void 0)}catch{}},watch(m,p,k){const w=g(m,p);let A=i.get(w);return A||(A=new Set,i.set(w,A)),A.add(k),y(),()=>{A.delete(k),A.size===0&&i.delete(w),v()}},async write(m,p,k){await s.deviceState.setCapSlice.mutate({deviceId:m,capName:p,slice:k})}}}function io(s,r,i){const l=(g,y)=>`${g}:${y}`;return{read(g,y){return s.get(g)?.get(y)},async refresh(){},watch(g,y,v){const m=l(g,y);let p=r.get(m);return p||(p=new Set,r.set(m,p)),p.add(v),()=>{p.delete(v),p.size===0&&r.delete(m)}},async write(g,y,v){if(!i)throw new Error("createMirrorSource: write requires an api reference — pass it as the third argument when constructing the source");await i.deviceState.setCapSlice.mutate({deviceId:g,capName:y,slice:v})}}}function T(s,r,i){const l=oo(s)?s:Hn(s);return{get value(){return l.read(r,i)},refresh(){return l.refresh(r,i)},subscribe(g){const y=l.watch(r,i,v=>{try{g(v)}catch{}});try{g(l.read(r,i))}catch{}return l.read(r,i)===void 0&&l.refresh(r,i).catch(()=>{}),y},async set(g){await l.write(r,i,g)},async patch(g){const v={...l.read(r,i)??{},...g};await l.write(r,i,v)}}}function oo(s){return typeof s.read=="function"&&typeof s.watch=="function"}function so(s,r,i){const l=s,g=i?.stateSource??Hn(s);function y(d,z){const L=typeof d=="object"&&d!==null?d:{};return z!==void 0?{...L,deviceId:r.deviceId,nodeId:z}:{...L,deviceId:r.deviceId}}function v(d,z,L,H,ae){const Se=l[d]?.[z];if(!Se)throw new Error(`DeviceProxy: api has no '${d}.${z}'`);const ie=Se;return L==="mutation"?ie.mutate(H):L==="subscription"?ie.subscribe(H,ae):ie.query(H)}function m(d,z,L,H,ae,Se){const ie=r.entries.find(Oa=>Oa.capName===d);return v(z,L,H,y(ae,ie?.providerNodeId),Se)}function p(d,z,L,H,ae){return v(d,z,L,y(H,void 0),ae)}const k={getStatus:d=>m("accessories","accessories","getStatus","query",d)},w={resolveDeviceSettings:d=>m("audio-analysis","audioAnalysis","resolveDeviceSettings","query",d),getDeviceSettingsContribution:d=>m("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>m("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>m("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",d)},A={getCurrentSnapshot:d=>m("audio-metrics","audioMetrics","getCurrentSnapshot","query",d),getHistory:d=>m("audio-metrics","audioMetrics","getHistory","query",d)},D={getStatus:d=>m("battery","battery","getStatus","query",d)},E={setBrightness:d=>m("brightness","brightness","setBrightness","mutation",d),getStatus:d=>m("brightness","brightness","getStatus","query",d)},R={getCredentials:d=>m("camera-credentials","cameraCredentials","getCredentials","query",d),getStatus:d=>m("camera-credentials","cameraCredentials","getStatus","query",d)},F={getCameraStreams:d=>m("camera-streams","cameraStreams","getCameraStreams","query",d),getBrokerStreams:d=>m("camera-streams","cameraStreams","getBrokerStreams","query",d),getRtspEntries:d=>m("camera-streams","cameraStreams","getRtspEntries","query",d)},he={getDeviceSettingsContribution:d=>m("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>m("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>m("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",d)},ye={listDiscovered:d=>m("device-discovery","deviceDiscovery","listDiscovered","query",d),refreshDiscovery:d=>m("device-discovery","deviceDiscovery","refreshDiscovery","mutation",d),adoptDevice:d=>m("device-discovery","deviceDiscovery","adoptDevice","mutation",d),releaseDevice:d=>m("device-discovery","deviceDiscovery","releaseDevice","mutation",d),getStatus:d=>m("device-discovery","deviceDiscovery","getStatus","query",d)},qt={getStreamSources:d=>m("device-ops","deviceOps","getStreamSources","query",d),getConfigEntries:d=>m("device-ops","deviceOps","getConfigEntries","query",d),setConfig:d=>m("device-ops","deviceOps","setConfig","mutation",d),removeDevice:d=>m("device-ops","deviceOps","removeDevice","mutation",d),getSettingsSchema:d=>m("device-ops","deviceOps","getSettingsSchema","query",d)},Rt={getStatus:d=>m("device-status","deviceStatus","getStatus","query",d)},Bt={getStatus:d=>m("doorbell","doorbell","getStatus","query",d)},Ot={getEvents:d=>m("events","events","getEvents","query",d),getEventThumbnail:d=>m("events","events","getEventThumbnail","query",d),getEventClipUrl:d=>m("events","events","getEventClipUrl","query",d)},xt={getStatus:d=>m("feature-probe","featureProbe","getStatus","query",d)},zt={startSession:d=>m("intercom","intercom","startSession","mutation",d),handleAnswer:d=>m("intercom","intercom","handleAnswer","mutation",d),stopSession:d=>m("intercom","intercom","stopSession","mutation",d),getStatus:d=>m("intercom","intercom","getStatus","query",d)},Lt={isDetected:d=>m("motion","motion","isDetected","query",d),getStatus:d=>m("motion","motion","getStatus","query",d)},Nt={analyze:d=>m("motion-detection","motionDetection","analyze","mutation",d),removeCamera:d=>m("motion-detection","motionDetection","removeCamera","mutation",d),reset:d=>m("motion-detection","motionDetection","reset","mutation",d),getDeviceSettingsContribution:d=>m("motion-detection","motionDetection","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>m("motion-detection","motionDetection","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>m("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",d)},Ft={setMotionTrigger:d=>m("motion-trigger","motionTrigger","setMotionTrigger","mutation",d),getStatus:d=>m("motion-trigger","motionTrigger","getStatus","query",d)},Ut={getStatus:d=>m("native-object-detection","nativeObjectDetection","getStatus","query",d)},_t={setOverlay:d=>m("osd","osd","setOverlay","mutation",d),getStatus:d=>m("osd","osd","getStatus","query",d)},Vt={getActiveTracks:d=>m("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",d),getTrack:d=>m("pipeline-analytics","pipelineAnalytics","getTrack","query",d),listTracks:d=>m("pipeline-analytics","pipelineAnalytics","listTracks","query",d),clearTracks:d=>m("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",d),getMotionEvents:d=>m("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",d),getObjectEvents:d=>m("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",d),getAudioEvents:d=>m("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",d),getEventMedia:d=>m("pipeline-analytics","pipelineAnalytics","getEventMedia","query",d),getTrackMedia:d=>m("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",d),getDeviceSettingsContribution:d=>m("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>m("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>m("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",d)},Ht={move:d=>m("ptz","ptz","move","mutation",d),continuousMove:d=>m("ptz","ptz","continuousMove","mutation",d),stop:d=>m("ptz","ptz","stop","mutation",d),getPresets:d=>m("ptz","ptz","getPresets","query",d),goToPreset:d=>m("ptz","ptz","goToPreset","mutation",d),goHome:d=>m("ptz","ptz","goHome","mutation",d),getPosition:d=>m("ptz","ptz","getPosition","query",d),getStatus:d=>m("ptz","ptz","getStatus","query",d)},Wt={getStatus:d=>m("ptz-autotrack","ptzAutotrack","getStatus","query",d),setEnabled:d=>m("ptz-autotrack","ptzAutotrack","setEnabled","mutation",d),getSettings:d=>m("ptz-autotrack","ptzAutotrack","getSettings","query",d),setSettings:d=>m("ptz-autotrack","ptzAutotrack","setSettings","mutation",d)},a={reboot:d=>m("reboot","reboot","reboot","mutation",d)},U={getSegments:d=>m("recording","recording","getSegments","query",d),getPlaybackUrl:d=>m("recording","recording","getPlaybackUrl","query",d),getThumbnailAt:d=>m("recording","recording","getThumbnailAt","query",d)},ve={getSnapshot:d=>m("snapshot","snapshot","getSnapshot","query",d),invalidateCache:d=>m("snapshot","snapshot","invalidateCache","mutation",d),getStatus:d=>m("snapshot","snapshot","getStatus","query",d),getDeviceSettingsContribution:d=>m("snapshot","snapshot","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>m("snapshot","snapshot","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>m("snapshot","snapshot","applyDeviceSettingsPatch","mutation",d)},te={setState:d=>m("switch","switch","setState","mutation",d),getStatus:d=>m("switch","switch","getStatus","query",d)},Be={listStreams:d=>m("webrtc-session","webrtcSession","listStreams","query",d),createSession:d=>m("webrtc-session","webrtcSession","createSession","mutation",d),handleAnswer:d=>m("webrtc-session","webrtcSession","handleAnswer","mutation",d),closeSession:d=>m("webrtc-session","webrtcSession","closeSession","mutation",d),hasAdaptiveBitrate:d=>m("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",d)},fe={getCurrentSnapshot:d=>m("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",d),getZoneHistory:d=>m("zone-analytics","zoneAnalytics","getZoneHistory","query",d),getCameraHistory:d=>m("zone-analytics","zoneAnalytics","getCameraHistory","query",d),getUnzonedHistory:d=>m("zone-analytics","zoneAnalytics","getUnzonedHistory","query",d)},ne={listRules:d=>m("zone-rules","zoneRules","listRules","query",d),setRules:d=>m("zone-rules","zoneRules","setRules","mutation",d)},Ca={listZones:d=>m("zones","zones","listZones","query",d),addZone:d=>m("zones","zones","addZone","mutation",d),removeZone:d=>m("zones","zones","removeZone","mutation",d),updateZone:d=>m("zones","zones","updateZone","mutation",d)},Aa={getDeviceSettings:d=>p("addonSettings","getDeviceSettings","query",d),updateDeviceSettings:d=>p("addonSettings","updateDeviceSettings","mutation",d)},wa={loadConfig:d=>p("deviceManager","loadConfig","query",d),loadRuntimeState:d=>p("deviceManager","loadRuntimeState","query",d),loadMeta:d=>p("deviceManager","loadMeta","query",d),setName:d=>p("deviceManager","setName","mutation",d),setLocation:d=>p("deviceManager","setLocation","mutation",d),setMetadata:d=>p("deviceManager","setMetadata","mutation",d),setDisabled:d=>p("deviceManager","setDisabled","mutation",d),getDevice:d=>p("deviceManager","getDevice","query",d),getStreamSources:d=>p("deviceManager","getStreamSources","query",d),getConfigSchema:d=>p("deviceManager","getConfigSchema","query",d),getSettingsSchema:d=>p("deviceManager","getSettingsSchema","query",d),updateConfig:d=>p("deviceManager","updateConfig","mutation",d),enable:d=>p("deviceManager","enable","mutation",d),disable:d=>p("deviceManager","disable","mutation",d),remove:d=>p("deviceManager","remove","mutation",d),getStreamProfileMap:d=>p("deviceManager","getStreamProfileMap","query",d),setStreamProfileMap:d=>p("deviceManager","setStreamProfileMap","mutation",d),probeStreams:d=>p("deviceManager","probeStreams","mutation",d),getBindings:d=>p("deviceManager","getBindings","query",d),getAllBindings:d=>p("deviceManager","getAllBindings","query",d),setWrapperActive:d=>p("deviceManager","setWrapperActive","mutation",d),getDeviceSettingsAggregate:d=>p("deviceManager","getDeviceSettingsAggregate","query",d),getDeviceLiveInfoAggregate:d=>p("deviceManager","getDeviceLiveInfoAggregate","query",d),getDeviceAggregate:d=>p("deviceManager","getDeviceAggregate","query",d),updateDeviceField:d=>p("deviceManager","updateDeviceField","mutation",d),updateDeviceFieldsBatch:d=>p("deviceManager","updateDeviceFieldsBatch","mutation",d),testField:d=>p("deviceManager","testField","mutation",d),getDeviceStatusAggregate:d=>p("deviceManager","getDeviceStatusAggregate","query",d)},Pa={getSnapshot:d=>p("deviceState","getSnapshot","query",d),getCapSlice:d=>p("deviceState","getCapSlice","query",d),setCapSlice:d=>p("deviceState","setCapSlice","mutation",d)},Da={getDeviceStats:d=>p("networkQuality","getDeviceStats","query",d),reportClientStats:d=>p("networkQuality","reportClientStats","mutation",d)},Ea={runPipeline:d=>p("pipelineExecutor","runPipeline","mutation",d),runPipelineBatch:d=>p("pipelineExecutor","runPipelineBatch","mutation",d)},Ma={assignPipeline:d=>p("pipelineOrchestrator","assignPipeline","mutation",d),unassignPipeline:d=>p("pipelineOrchestrator","unassignPipeline","mutation",d),getPipelineAssignment:d=>p("pipelineOrchestrator","getPipelineAssignment","query",d),getCameraMetrics:d=>p("pipelineOrchestrator","getCameraMetrics","query",d),assignDecoder:d=>p("pipelineOrchestrator","assignDecoder","mutation",d),unassignDecoder:d=>p("pipelineOrchestrator","unassignDecoder","mutation",d),assignAudio:d=>p("pipelineOrchestrator","assignAudio","mutation",d),unassignAudio:d=>p("pipelineOrchestrator","unassignAudio","mutation",d),getAudioAssignment:d=>p("pipelineOrchestrator","getAudioAssignment","query",d),getAudioAssignments:d=>p("pipelineOrchestrator","getAudioAssignments","query",d),getDecoderAssignment:d=>p("pipelineOrchestrator","getDecoderAssignment","query",d),getCameraSettings:d=>p("pipelineOrchestrator","getCameraSettings","query",d),setCameraStepToggle:d=>p("pipelineOrchestrator","setCameraStepToggle","mutation",d),getCameraStepOverrides:d=>p("pipelineOrchestrator","getCameraStepOverrides","query",d),setCameraStepOverride:d=>p("pipelineOrchestrator","setCameraStepOverride","mutation",d),setCameraPipelineForAgent:d=>p("pipelineOrchestrator","setCameraPipelineForAgent","mutation",d),resolvePipeline:d=>p("pipelineOrchestrator","resolvePipeline","query",d),getDeviceSettingsContribution:d=>p("pipelineOrchestrator","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>p("pipelineOrchestrator","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>p("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",d)},Ta={detachCamera:d=>p("pipelineRunner","detachCamera","mutation",d),getCameraMetrics:d=>p("pipelineRunner","getCameraMetrics","query",d)},qa={getPolicyStatus:d=>p("recordingEngine","getPolicyStatus","query",d)},Ra={supportsDevice:d=>p("snapshotProvider","supportsDevice","query",d),getSnapshot:d=>p("snapshotProvider","getSnapshot","query",d)},Ba={publishCameraStream:d=>p("streamBroker","publishCameraStream","mutation",d),retractCameraStream:d=>p("streamBroker","retractCameraStream","mutation",d),assignProfile:d=>p("streamBroker","assignProfile","mutation",d),unassignProfile:d=>p("streamBroker","unassignProfile","mutation",d),restartProfile:d=>p("streamBroker","restartProfile","mutation",d),getDeviceSettingsContribution:d=>p("streamBroker","getDeviceSettingsContribution","query",d),getDeviceLiveContribution:d=>p("streamBroker","getDeviceLiveContribution","query",d),applyDeviceSettingsPatch:d=>p("streamBroker","applyDeviceSettingsPatch","mutation",d)};return{deviceId:r.deviceId,binding:r,state:{audioMetrics:T(g,r.deviceId,"audio-metrics"),battery:T(g,r.deviceId,"battery"),brightness:T(g,r.deviceId,"brightness"),cameraStreams:T(g,r.deviceId,"camera-streams"),deviceDiscovery:T(g,r.deviceId,"device-discovery"),deviceStatus:T(g,r.deviceId,"device-status"),doorbell:T(g,r.deviceId,"doorbell"),featureProbe:T(g,r.deviceId,"feature-probe"),motion:T(g,r.deviceId,"motion"),motionTrigger:T(g,r.deviceId,"motion-trigger"),ptzAutotrack:T(g,r.deviceId,"ptz-autotrack"),switch:T(g,r.deviceId,"switch"),zoneAnalytics:T(g,r.deviceId,"zone-analytics"),zoneRules:T(g,r.deviceId,"zone-rules"),zones:T(g,r.deviceId,"zones")},accessories:k,audioAnalysis:w,audioMetrics:A,battery:D,brightness:E,cameraCredentials:R,cameraStreams:F,detectionPipeline:he,deviceDiscovery:ye,deviceOps:qt,deviceStatus:Rt,doorbell:Bt,events:Ot,featureProbe:xt,intercom:zt,motion:Lt,motionDetection:Nt,motionTrigger:Ft,nativeObjectDetection:Ut,osd:_t,pipelineAnalytics:Vt,ptz:Ht,ptzAutotrack:Wt,reboot:a,recording:U,snapshot:ve,switch:te,webrtcSession:Be,zoneAnalytics:fe,zoneRules:ne,zones:Ca,addonSettings:Aa,deviceManager:wa,deviceState:Pa,networkQuality:Da,pipelineExecutor:Ea,pipelineOrchestrator:Ma,pipelineRunner:Ta,recordingEngine:qa,snapshotProvider:Ra,streamBroker:Ba}}function pc(s){const r=s;function i(a,U,ve,te,Be){const fe=r[a]?.[U];if(!fe)throw new Error(`SystemProxy: api has no '${a}.${U}'`);const ne=fe;return ve==="mutation"?ne.mutate(te):ve==="subscription"?ne.subscribe(te,Be):ne.query(te)}return{addonPages:{listPages:a=>i("addonPages","listPages","query",a)},addons:{list:a=>i("addons","list","query",a),getLogs:a=>i("addons","getLogs","query",a),listPackages:a=>i("addons","listPackages","query",a),installPackage:a=>i("addons","installPackage","mutation",a),installFromWorkspace:a=>i("addons","installFromWorkspace","mutation",a),isWorkspaceAvailable:a=>i("addons","isWorkspaceAvailable","query",a),listWorkspacePackages:a=>i("addons","listWorkspacePackages","query",a),uninstallPackage:a=>i("addons","uninstallPackage","mutation",a),reloadPackages:a=>i("addons","reloadPackages","mutation",a),searchAvailable:a=>i("addons","searchAvailable","query",a),listUpdates:a=>i("addons","listUpdates","query",a),updatePackage:a=>i("addons","updatePackage","mutation",a),forceRefresh:a=>i("addons","forceRefresh","mutation",a),restartServer:a=>i("addons","restartServer","mutation",a),getVersions:a=>i("addons","getVersions","query",a),restartAddon:a=>i("addons","restartAddon","mutation",a),getAutoUpdateSettings:a=>i("addons","getAutoUpdateSettings","query",a),setAutoUpdateSettings:a=>i("addons","setAutoUpdateSettings","mutation",a),getAddonAutoUpdate:a=>i("addons","getAddonAutoUpdate","query",a),setAddonAutoUpdate:a=>i("addons","setAddonAutoUpdate","mutation",a),applyAutoUpdateToAll:a=>i("addons","applyAutoUpdateToAll","mutation",a),custom:a=>i("addons","custom","mutation",a),onAddonLogs:(a,U)=>i("addons","onAddonLogs","subscription",a,U)},addonSettings:{getGlobalSettings:a=>i("addonSettings","getGlobalSettings","query",a),updateGlobalSettings:a=>i("addonSettings","updateGlobalSettings","mutation",a)},addonWidgets:{listWidgets:a=>i("addonWidgets","listWidgets","query",a)},alerts:{emit:a=>i("alerts","emit","mutation",a),update:a=>i("alerts","update","mutation",a),list:a=>i("alerts","list","query",a),getUnreadCount:a=>i("alerts","getUnreadCount","query",a),markRead:a=>i("alerts","markRead","mutation",a),markAllRead:a=>i("alerts","markAllRead","mutation",a),dismiss:a=>i("alerts","dismiss","mutation",a)},audioAnalyzer:{analyseChunk:a=>i("audioAnalyzer","analyseChunk","mutation",a),classify:a=>i("audioAnalyzer","classify","query",a),isReady:a=>i("audioAnalyzer","isReady","query",a),dispose:a=>i("audioAnalyzer","dispose","mutation",a),reprobeAudioEngine:a=>i("audioAnalyzer","reprobeAudioEngine","mutation",a)},audioCodec:{listSupportedCodecs:a=>i("audioCodec","listSupportedCodecs","query",a),canHandle:a=>i("audioCodec","canHandle","query",a),createDecodeSession:a=>i("audioCodec","createDecodeSession","mutation",a),createEncodeSession:a=>i("audioCodec","createEncodeSession","mutation",a),closeSession:a=>i("audioCodec","closeSession","mutation",a),pushEncodedFrame:a=>i("audioCodec","pushEncodedFrame","mutation",a),pullPcm:a=>i("audioCodec","pullPcm","query",a),pushPcm:a=>i("audioCodec","pushPcm","mutation",a),pullEncoded:a=>i("audioCodec","pullEncoded","query",a),flushEncode:a=>i("audioCodec","flushEncode","mutation",a),listActiveSessions:a=>i("audioCodec","listActiveSessions","query",a)},backup:{trigger:a=>i("backup","trigger","mutation",a),list:a=>i("backup","list","query",a),restore:a=>i("backup","restore","mutation",a),delete:a=>i("backup","delete","mutation",a)},decoder:{supportsCodec:a=>i("decoder","supportsCodec","query",a),getInfo:a=>i("decoder","getInfo","query",a),createSession:a=>i("decoder","createSession","query",a),destroySession:a=>i("decoder","destroySession","query",a),pushPacket:a=>i("decoder","pushPacket","query",a),openStream:a=>i("decoder","openStream","query",a),pullFrames:a=>i("decoder","pullFrames","query",a),updateConfig:a=>i("decoder","updateConfig","query",a),getStats:a=>i("decoder","getStats","query",a),listActiveSessions:a=>i("decoder","listActiveSessions","query",a),reprobeHwaccel:a=>i("decoder","reprobeHwaccel","mutation",a)},deviceManager:{allocateDeviceId:a=>i("deviceManager","allocateDeviceId","mutation",a),registerDevice:a=>i("deviceManager","registerDevice","mutation",a),removeDevice:a=>i("deviceManager","removeDevice","mutation",a),persistConfig:a=>i("deviceManager","persistConfig","mutation",a),listLocations:a=>i("deviceManager","listLocations","query",a),addLocation:a=>i("deviceManager","addLocation","mutation",a),removeLocation:a=>i("deviceManager","removeLocation","mutation",a),listPersistedByAddon:a=>i("deviceManager","listPersistedByAddon","query",a),listAll:a=>i("deviceManager","listAll","query",a),getChildren:a=>i("deviceManager","getChildren","query",a),listWrappersForCap:a=>i("deviceManager","listWrappersForCap","query",a),listBindableCapsForDeviceType:a=>i("deviceManager","listBindableCapsForDeviceType","query",a),discoverDevices:a=>i("deviceManager","discoverDevices","mutation",a),adoptDevice:a=>i("deviceManager","adoptDevice","mutation",a),getCreationSchema:a=>i("deviceManager","getCreationSchema","query",a),createDevice:a=>i("deviceManager","createDevice","mutation",a),testCreationField:a=>i("deviceManager","testCreationField","mutation",a)},deviceProvider:{start:a=>i("deviceProvider","start","mutation",a),stop:a=>i("deviceProvider","stop","mutation",a),getStatus:a=>i("deviceProvider","getStatus","query",a),getDevices:a=>i("deviceProvider","getDevices","query",a),supportsDiscovery:a=>i("deviceProvider","supportsDiscovery","query",a),discoverDevices:a=>i("deviceProvider","discoverDevices","mutation",a),adoptDiscoveredDevice:a=>i("deviceProvider","adoptDiscoveredDevice","mutation",a),supportsManualCreation:a=>i("deviceProvider","supportsManualCreation","query",a),getChildCreationSchema:a=>i("deviceProvider","getChildCreationSchema","query",a),createDevice:a=>i("deviceProvider","createDevice","mutation",a),testCreationField:a=>i("deviceProvider","testCreationField","mutation",a)},deviceState:{getAllSnapshots:a=>i("deviceState","getAllSnapshots","query",a)},integrations:{list:a=>i("integrations","list","query",a),get:a=>i("integrations","get","query",a),getByAddonId:a=>i("integrations","getByAddonId","query",a),create:a=>i("integrations","create","mutation",a),update:a=>i("integrations","update","mutation",a),delete:a=>i("integrations","delete","mutation",a),getSettings:a=>i("integrations","getSettings","query",a),setSettings:a=>i("integrations","setSettings","mutation",a),getAvailableTypes:a=>i("integrations","getAvailableTypes","query",a),testConnection:a=>i("integrations","testConnection","mutation",a)},metricsProvider:{collectSnapshot:a=>i("metricsProvider","collectSnapshot","query",a),getCached:a=>i("metricsProvider","getCached","query",a),getCurrent:a=>i("metricsProvider","getCurrent","query",a),getDiskSpace:a=>i("metricsProvider","getDiskSpace","query",a),getGpuInfo:a=>i("metricsProvider","getGpuInfo","query",a),getCpuTemperature:a=>i("metricsProvider","getCpuTemperature","query",a),getProcessStats:a=>i("metricsProvider","getProcessStats","query",a),listAddonInstances:a=>i("metricsProvider","listAddonInstances","query",a),getAddonStats:a=>i("metricsProvider","getAddonStats","query",a),listNodeProcesses:a=>i("metricsProvider","listNodeProcesses","query",a),killProcess:a=>i("metricsProvider","killProcess","mutation",a)},networkQuality:{getAllStats:a=>i("networkQuality","getAllStats","query",a)},nodes:{topology:a=>i("nodes","topology","query",a),deployAddon:a=>i("nodes","deployAddon","mutation",a),undeployAddon:a=>i("nodes","undeployAddon","mutation",a),restartAddon:a=>i("nodes","restartAddon","mutation",a),restartProcess:a=>i("nodes","restartProcess","mutation",a),restartNode:a=>i("nodes","restartNode","mutation",a),shutdownNode:a=>i("nodes","shutdownNode","mutation",a),renameNode:a=>i("nodes","renameNode","mutation",a),clusterAddonStatus:a=>i("nodes","clusterAddonStatus","query",a),setProcessLogLevel:a=>i("nodes","setProcessLogLevel","mutation",a),executeQuery:a=>i("nodes","executeQuery","mutation",a)},notificationOutput:{send:a=>i("notificationOutput","send","mutation",a),sendTest:a=>i("notificationOutput","sendTest","mutation",a)},pipelineExecutor:{getAvailableEngines:a=>i("pipelineExecutor","getAvailableEngines","query",a),getSelectedEngine:a=>i("pipelineExecutor","getSelectedEngine","query",a),getDefaultSteps:a=>i("pipelineExecutor","getDefaultSteps","query",a),reprobeEngine:a=>i("pipelineExecutor","reprobeEngine","mutation",a),getVideoPipelineSteps:a=>i("pipelineExecutor","getVideoPipelineSteps","query",a),setVideoPipelineSteps:a=>i("pipelineExecutor","setVideoPipelineSteps","mutation",a),getSchema:a=>i("pipelineExecutor","getSchema","query",a),getGlobalSteps:a=>i("pipelineExecutor","getGlobalSteps","query",a),getGlobalPipelineConfig:a=>i("pipelineExecutor","getGlobalPipelineConfig","query",a),getOrchestratorConfigSchema:a=>i("pipelineExecutor","getOrchestratorConfigSchema","query",a),listTemplates:a=>i("pipelineExecutor","listTemplates","query",a),saveTemplate:a=>i("pipelineExecutor","saveTemplate","mutation",a),updateTemplate:a=>i("pipelineExecutor","updateTemplate","mutation",a),deleteTemplate:a=>i("pipelineExecutor","deleteTemplate","mutation",a),getCapabilities:a=>i("pipelineExecutor","getCapabilities","query",a),getAddonModels:a=>i("pipelineExecutor","getAddonModels","query",a),downloadModel:a=>i("pipelineExecutor","downloadModel","mutation",a),deleteModel:a=>i("pipelineExecutor","deleteModel","mutation",a),detect:a=>i("pipelineExecutor","detect","query",a),cacheFrameInPool:a=>i("pipelineExecutor","cacheFrameInPool","mutation",a),inferCached:a=>i("pipelineExecutor","inferCached","mutation",a),uncacheFrame:a=>i("pipelineExecutor","uncacheFrame","mutation",a),getEffectiveTuning:a=>i("pipelineExecutor","getEffectiveTuning","query",a),listLoadedEngines:a=>i("pipelineExecutor","listLoadedEngines","query",a),spinEngine:a=>i("pipelineExecutor","spinEngine","mutation",a),killEngine:a=>i("pipelineExecutor","killEngine","mutation",a),listReferenceImages:a=>i("pipelineExecutor","listReferenceImages","query",a),getReferenceImage:a=>i("pipelineExecutor","getReferenceImage","query",a),getReferenceAudioFiles:a=>i("pipelineExecutor","getReferenceAudioFiles","query",a),getReferenceAudio:a=>i("pipelineExecutor","getReferenceAudio","query",a),getAudioCapabilities:a=>i("pipelineExecutor","getAudioCapabilities","query",a),runAudioTest:a=>i("pipelineExecutor","runAudioTest","mutation",a),getDetectionConfigSchema:a=>i("pipelineExecutor","getDetectionConfigSchema","query",a)},pipelineOrchestrator:{rebalance:a=>i("pipelineOrchestrator","rebalance","mutation",a),getPipelineAssignments:a=>i("pipelineOrchestrator","getPipelineAssignments","query",a),getAgentLoad:a=>i("pipelineOrchestrator","getAgentLoad","query",a),getGlobalMetrics:a=>i("pipelineOrchestrator","getGlobalMetrics","query",a),getCapabilityBindings:a=>i("pipelineOrchestrator","getCapabilityBindings","query",a),setCapabilityBinding:a=>i("pipelineOrchestrator","setCapabilityBinding","mutation",a),getDecoderAssignments:a=>i("pipelineOrchestrator","getDecoderAssignments","query",a),getAudioNodeLoad:a=>i("pipelineOrchestrator","getAudioNodeLoad","query",a),getAgentSettings:a=>i("pipelineOrchestrator","getAgentSettings","query",a),listAgentSettings:a=>i("pipelineOrchestrator","listAgentSettings","query",a),setAgentAddonDefaults:a=>i("pipelineOrchestrator","setAgentAddonDefaults","mutation",a),removeAgentSettings:a=>i("pipelineOrchestrator","removeAgentSettings","mutation",a),listTemplates:a=>i("pipelineOrchestrator","listTemplates","query",a),saveTemplate:a=>i("pipelineOrchestrator","saveTemplate","mutation",a),updateTemplate:a=>i("pipelineOrchestrator","updateTemplate","mutation",a),deleteTemplate:a=>i("pipelineOrchestrator","deleteTemplate","mutation",a)},pipelineRunner:{attachCamera:a=>i("pipelineRunner","attachCamera","mutation",a),reportMotion:a=>i("pipelineRunner","reportMotion","mutation",a),getLocalLoad:a=>i("pipelineRunner","getLocalLoad","query",a),getLocalMetrics:a=>i("pipelineRunner","getLocalMetrics","query",a),getAllCameraMetrics:a=>i("pipelineRunner","getAllCameraMetrics","query",a),getLocalCameras:a=>i("pipelineRunner","getLocalCameras","query",a)},platformProbe:{getCapabilities:a=>i("platformProbe","getCapabilities","query",a),getHardware:a=>i("platformProbe","getHardware","query",a),resolveInferenceConfig:a=>i("platformProbe","resolveInferenceConfig","query",a),resolveHwAccel:a=>i("platformProbe","resolveHwAccel","query",a)},recordingEngine:{getStatus:a=>i("recordingEngine","getStatus","query",a),enable:a=>i("recordingEngine","enable","mutation",a),disable:a=>i("recordingEngine","disable","mutation",a),getConfig:a=>i("recordingEngine","getConfig","query",a),updateConfig:a=>i("recordingEngine","updateConfig","mutation",a),getPlaylist:a=>i("recordingEngine","getPlaylist","query",a),getThumbnail:a=>i("recordingEngine","getThumbnail","query",a),getSegments:a=>i("recordingEngine","getSegments","query",a),getAvailability:a=>i("recordingEngine","getAvailability","query",a),estimateStorage:a=>i("recordingEngine","estimateStorage","query",a),estimateGlobalStorage:a=>i("recordingEngine","estimateGlobalStorage","query",a),getStorageUsage:a=>i("recordingEngine","getStorageUsage","query",a),setPolicy:a=>i("recordingEngine","setPolicy","mutation",a),getPolicy:a=>i("recordingEngine","getPolicy","query",a),getRetentionConfig:a=>i("recordingEngine","getRetentionConfig","query",a),updateRetentionConfig:a=>i("recordingEngine","updateRetentionConfig","mutation",a),getMotionStats:a=>i("recordingEngine","getMotionStats","query",a)},settingsStore:{get:a=>i("settingsStore","get","query",a),set:a=>i("settingsStore","set","mutation",a),query:a=>i("settingsStore","query","query",a),insert:a=>i("settingsStore","insert","mutation",a),update:a=>i("settingsStore","update","mutation",a),delete:a=>i("settingsStore","delete","mutation",a),count:a=>i("settingsStore","count","query",a),isEmpty:a=>i("settingsStore","isEmpty","query",a),declareCollection:a=>i("settingsStore","declareCollection","mutation",a)},storage:{resolve:a=>i("storage","resolve","query",a),write:a=>i("storage","write","mutation",a),read:a=>i("storage","read","query",a),exists:a=>i("storage","exists","query",a),list:a=>i("storage","list","query",a),delete:a=>i("storage","delete","mutation",a),getAvailableSpace:a=>i("storage","getAvailableSpace","query",a)},streamBroker:{listAllCameraStreams:a=>i("streamBroker","listAllCameraStreams","query",a),listAllProfileSlots:a=>i("streamBroker","listAllProfileSlots","query",a),getBrokerStats:a=>i("streamBroker","getBrokerStats","query",a),listClients:a=>i("streamBroker","listClients","query",a),killClient:a=>i("streamBroker","killClient","mutation",a),getStreamUrl:a=>i("streamBroker","getStreamUrl","query",a),getBroker:a=>i("streamBroker","getBroker","query",a),setPreBufferDuration:a=>i("streamBroker","setPreBufferDuration","mutation",a),getPreBufferInfo:a=>i("streamBroker","getPreBufferInfo","query",a),getRtspPort:a=>i("streamBroker","getRtspPort","query",a),getAllRtspEntries:a=>i("streamBroker","getAllRtspEntries","query",a),getRtspEntry:a=>i("streamBroker","getRtspEntry","query",a),regenerateRtspToken:a=>i("streamBroker","regenerateRtspToken","mutation",a),setRtspEnabled:a=>i("streamBroker","setRtspEnabled","mutation",a),isRtspEnabled:a=>i("streamBroker","isRtspEnabled","query",a)},system:{info:a=>i("system","info","query",a),health:a=>i("system","health","query",a),featureFlags:a=>i("system","featureFlags","query",a),networkAddresses:a=>i("system","networkAddresses","query",a),getRetentionConfig:a=>i("system","getRetentionConfig","query",a),setRetentionConfig:a=>i("system","setRetentionConfig","mutation",a),forceRetentionCleanup:a=>i("system","forceRetentionCleanup","mutation",a)},toast:{onToast:(a,U)=>i("toast","onToast","subscription",a,U)},turnProvider:{getTurnServers:a=>i("turnProvider","getTurnServers","query",a)},userManagement:{listUsers:a=>i("userManagement","listUsers","query",a),createUser:a=>i("userManagement","createUser","mutation",a),updateUser:a=>i("userManagement","updateUser","mutation",a),deleteUser:a=>i("userManagement","deleteUser","mutation",a),resetPassword:a=>i("userManagement","resetPassword","mutation",a),validateCredentials:a=>i("userManagement","validateCredentials","mutation",a),listApiKeys:a=>i("userManagement","listApiKeys","query",a),createApiKey:a=>i("userManagement","createApiKey","mutation",a),revokeApiKey:a=>i("userManagement","revokeApiKey","mutation",a),validateApiKey:a=>i("userManagement","validateApiKey","mutation",a),createScopedToken:a=>i("userManagement","createScopedToken","mutation",a),revokeScopedToken:a=>i("userManagement","revokeScopedToken","mutation",a),validateScopedToken:a=>i("userManagement","validateScopedToken","query",a),listScopedTokens:a=>i("userManagement","listScopedTokens","query",a)}}}const ro="device.state-changed",co="capability.binding-changed",lo="device.registered",uo="device.unregistered",mo="device.updated";class gc{constructor(r){this.api=r,this.stateSource=io(this.stateMirror,this.handleListeners,this.api)}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;stateSource;bridges=[];initialized=!1;initPromise=null;async init(r=15e3){if(!this.initialized){if(this.initPromise)return this.initPromise;this.initPromise=(async()=>{const i=(v,m)=>Number.isFinite(r)?new Promise((p,k)=>{const w=setTimeout(()=>k(new Error(`SystemMirror.init: '${m}' timed out after ${r}ms`)),r);v.then(A=>{clearTimeout(w),p(A)},A=>{clearTimeout(w),k(A)})}):v,[l,g,y]=await Promise.all([i(this.api.deviceManager.getAllBindings.query({}),"deviceManager.getAllBindings"),i(this.api.deviceState.getAllSnapshots.query({}),"deviceState.getAllSnapshots"),i(this.api.deviceManager.listAll.query({}),"deviceManager.listAll")]);for(const v of l)this.bindings.set(v.deviceId,v);for(const[v,m]of Object.entries(g)){const p=Number(v);if(!Number.isFinite(p))continue;const k=new Map;for(const[w,A]of Object.entries(m))k.set(w,A);this.stateMirror.set(p,k)}for(const v of y)this.devices.set(v.id,v);try{this.subscribeBus()}catch{}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 r of this.bridges)try{r.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(r){const i=this.bindings.get(r);return i?so(this.api,i,{stateSource:this.stateSource}):null}getDeviceByName(r){for(const i of this.devices.values())if(i.name===r)return this.getDeviceById(i.id);return null}getDeviceByStableId(r){for(const i of this.devices.values())if(i.stableId===r)return this.getDeviceById(i.id);return null}getDevicesByAddon(r){return this.query({addonId:r})}getDevicesByType(r){return this.query({type:r})}getDeviceInfo(r){return this.devices.get(r)??null}getAllDevices(){const r=[];for(const i of this.bindings.keys()){const l=this.getDeviceById(i);l&&r.push(l)}return r}filterByCap(r){return this.query({caps:r})}query(r={}){const i=[];for(const[l,g]of this.bindings){const y=this.devices.get(l);if(r.id!==void 0&&!be(l,r.id)||r.stableId!==void 0&&(!y||!be(y.stableId,r.stableId))||r.addonId!==void 0&&(!y||!be(y.addonId,r.addonId))||r.type!==void 0&&(!y||!be(y.type,r.type)))continue;if(r.caps!==void 0){const m=Ue(r.caps),p=new Set(g.entries.map(k=>k.capName));if(!m.every(k=>p.has(k)))continue}if(r.anyCap!==void 0){const m=Ue(r.anyCap),p=new Set(g.entries.map(k=>k.capName));if(!m.some(k=>p.has(k)))continue}if(r.name!==void 0&&(!y||!po(y.name,r.name))||r.online!==void 0&&(!y||y.online!==r.online))continue;if(r.parentDeviceId!==void 0){if(!y)continue;const m=r.parentDeviceId;if((y.parentDeviceId??null)!==m)continue}if(r.feature!==void 0&&(!y||!Ue(r.feature).every(p=>y.features.includes(p)))||r.isCamera!==void 0&&(!y||y.isCamera!==r.isCamera))continue;const v=this.getDeviceById(l);if(v){if(r.where&&y){if(!r.where(y,v))continue}else if(r.where&&!y)continue;i.push(v)}}return i}whereState(r,i){const l=[];for(const[g,y]of this.stateMirror){const v=y.get(r);if(!v||!i(v,g))continue;const m=this.getDeviceById(g);m&&l.push(m)}return l}mapState(r,i){const l=[];for(const[g,y]of this.stateMirror){const v=y.get(r);v&&l.push(i(v,g))}return l}findState(r,i){for(const[l,g]of this.stateMirror){const y=g.get(r);if(y&&i(y,l))return this.getDeviceById(l)}return null}countByCap(r){let i=0;for(const l of this.bindings.values())l.entries.some(g=>g.capName===r)&&i++;return i}countByState(r,i){let l=0;for(const[g,y]of this.stateMirror){const v=y.get(r);v&&i(v,g)&&l++}return l}listen(r){return this.globalStateListeners.add(r),()=>{this.globalStateListeners.delete(r)}}listenCap(r,i){let l=this.capListeners.get(r);return l||(l=new Set,this.capListeners.set(r,l)),l.add(i),()=>{l.delete(i),l.size===0&&this.capListeners.delete(r)}}listenDevice(r,i){let l=this.deviceListeners.get(r);return l||(l=new Set,this.deviceListeners.set(r,l)),l.add(i),()=>{l.delete(i),l.size===0&&this.deviceListeners.delete(r)}}onDeviceAdded(r){return this.addedListeners.add(r),()=>{this.addedListeners.delete(r)}}onDeviceRemoved(r){return this.removedListeners.add(r),()=>{this.removedListeners.delete(r)}}waitForState(r,i,l,g=3e4){return new Promise((y,v)=>{const p=(()=>{const A=this.stateMirror.get(r)?.get(i);return A&&l(A)?A:null})();if(p){y(p);return}let k=null;const w=this.listenDevice(r,(A,D,E)=>{D===i&&E&&l(E)&&(k&&clearTimeout(k),w(),y(E))});Number.isFinite(g)&&(k=setTimeout(()=>{w(),v(new Error(`waitForState timed out after ${g}ms (deviceId=${r}, capName=${i})`))},g))})}waitForDevice(r,i=3e4){return new Promise((l,g)=>{const y=this.getDeviceById(r);if(y){l(y);return}let v=null;const m=this.onDeviceAdded(p=>{if(p!==r)return;const k=this.getDeviceById(p);k&&(v&&clearTimeout(v),m(),l(k))});Number.isFinite(i)&&(v=setTimeout(()=>{m(),g(new Error(`waitForDevice timed out after ${i}ms (deviceId=${r})`))},i))})}async forEachCap(r,i){for(const l of this.filterByCap(r))await i(l)}async invokeCap(r,i,l,g={}){const y=this.filterByCap(r),v=Math.max(1,g.parallelism??y.length),m=[];for(let p=0;p<y.length;p+=v){const k=y.slice(p,p+v),w=await Promise.allSettled(k.map(async A=>{const D=A[r];if(!D||typeof D[i]!="function")throw new Error(`device '${A.deviceId}' does not expose '${r}.${i}'`);return await D[i](l)}));for(let A=0;A<w.length;A++){const D=k[A],E=w[A];E.status==="fulfilled"?m.push({deviceId:D.deviceId,ok:!0,result:E.value}):m.push({deviceId:D.deviceId,ok:!1,error:E.reason})}}return m}summary(){const r={},i={},l={};let g=0,y=0;for(const v of this.bindings.values())for(const m of v.entries)r[m.capName]=(r[m.capName]??0)+1;for(const v of this.devices.values())i[v.addonId]=(i[v.addonId]??0)+1,l[v.type]=(l[v.type]??0)+1,v.online?g++:y++;return{totalDevices:this.bindings.size,online:g,offline:y,byCap:r,byAddon:i,byType:l,statedDevices:this.stateMirror.size}}dump(r){const i=g=>{const y=this.devices.get(g)??null,v=this.bindings.get(g)??null,m={},p=this.stateMirror.get(g);if(p)for(const[k,w]of p)m[k]={...w};return{deviceId:g,info:y,binding:v?{...v,entries:v.entries.map(k=>({...k}))}:null,state:m}};if(r!==void 0)return i(r);const l=[];for(const g of this.bindings.keys())l.push(i(g));return l}getRawMirror(){return this.stateMirror}getSystemState(){const r=new Map;for(const[i,l]of this.stateMirror){const g=new Map;for(const[y,v]of l)g.set(y,{...v});r.set(i,g)}return r}subscribeBus(){if(!this.api.live?.onEvent)return;const r=this.api.live.onEvent;this.bridges.push(r.subscribe({category:ro},{onData:i=>{const l=i.data;!l||typeof l.deviceId!="number"||typeof l.capName!="string"||this.applyStateUpdate(l.deviceId,l.capName,l.slice)}})),this.bridges.push(r.subscribe({category:co},{onData:i=>{const l=i.data,g=typeof l?.deviceId=="number"?l.deviceId:l?.source?.type==="device"&&typeof l.source.id=="number"?l.source.id:null;g!==null&&this.refreshBinding(g)}})),this.bridges.push(r.subscribe({category:lo},{onData:i=>{const l=i.data;typeof l?.deviceId=="number"&&this.refreshDeviceMetadata(l.deviceId,"added")}})),this.bridges.push(r.subscribe({category:uo},{onData:i=>{const l=i.data;typeof l?.deviceId=="number"&&this.applyDeviceRemoval(l.deviceId)}})),this.bridges.push(r.subscribe({category:mo},{onData:i=>{const l=i.data;typeof l?.deviceId=="number"&&this.refreshDeviceMetadata(l.deviceId,"updated")}}))}applyStateUpdate(r,i,l){let g=this.stateMirror.get(r);g||(g=new Map,this.stateMirror.set(r,g)),l===void 0?g.delete(i):g.set(i,l);const y=`${r}:${i}`,v=this.handleListeners.get(y);if(v)for(const k of v)try{k(l)}catch{}for(const k of this.globalStateListeners)try{k(r,i,l)}catch{}const m=this.capListeners.get(i);if(m)for(const k of m)try{k(r,l)}catch{}const p=this.deviceListeners.get(r);if(p)for(const k of p)try{k(r,i,l)}catch{}}applyDeviceRemoval(r){const i=this.devices.get(r)??null;this.bindings.delete(r),this.devices.delete(r),this.stateMirror.delete(r);for(const l of this.removedListeners)try{l(r,i)}catch{}}async refreshBinding(r){try{const l=(await this.api.deviceManager.getAllBindings.query({})).find(g=>g.deviceId===r);l?this.bindings.set(r,l):this.applyDeviceRemoval(r)}catch{}}async refreshDeviceMetadata(r,i){try{const g=(await this.api.deviceManager.listAll.query({})).find(v=>v.id===r);if(!g)return;const y=!this.devices.has(r);if(this.devices.set(r,g),i==="added"&&y){await this.refreshBinding(r);for(const v of this.addedListeners)try{v(r,g)}catch{}}}catch{}}}function be(s,r){return Array.isArray(r)?r.includes(s):s===r}function Ue(s){return Array.isArray(s)?s:[s]}function po(s,r){return typeof r=="string"?s===r:r instanceof RegExp?r.test(s):"exact"in r?s===r.exact:"contains"in r?s.toLowerCase().includes(r.contains.toLowerCase()):!1}const go=n({id:e(),label:e(),icon:e(),order:t().optional()}),ho=n({id:e(),title:e(),description:e().optional(),style:f(["card","accordion"]).optional(),defaultCollapsed:h().optional(),columns:q([I(1),I(2),I(3),I(4)]).optional(),tab:e().optional(),location:f(["settings","top-tab"]).optional(),order:t().optional(),fields:c(Ln())}),Q=n({tabs:c(go).optional(),sections:c(ho)}),an=b(e(),S()),on=n({success:I(!0)}),hc={name:"addon-settings",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{getGlobalSettings:o(n({addonId:e(),nodeId:e().optional(),overlay:b(e(),S()).optional()}),Q.nullable()),updateGlobalSettings:o(n({addonId:e(),nodeId:e().optional(),patch:an}),on,{kind:"mutation",auth:"admin"}),getDeviceSettings:o(n({addonId:e(),deviceId:t(),nodeId:e().optional()}),Q.nullable()),updateDeviceSettings:o(n({addonId:e(),deviceId:t(),nodeId:e().optional(),patch:an}),on,{kind:"mutation",auth:"admin"})}},yo=f(["info","success","warning","error"]),vo=f(["active","in-progress","completed","failed","dismissed"]),fo=n({type:e(),id:e()}),_e=n({id:e(),category:e(),severity:yo,title:e(),message:e(),status:vo,progress:t().optional(),read:h(),createdAt:t(),updatedAt:t(),source:fo.optional(),metadata:b(e(),S()).optional()}),yc={name:"alerts",scope:"system",mode:"singleton",methods:{emit:o(_e,u(),{kind:"mutation"}),update:o(n({alertId:e(),patch:_e.partial()}),u(),{kind:"mutation"}),list:o(n({unreadOnly:h().optional(),limit:t().optional()}).optional(),c(_e).readonly()),getUnreadCount:o(u(),t()),markRead:o(n({alertId:e()}),u(),{kind:"mutation"}),markAllRead:o(u(),u(),{kind:"mutation"}),dismiss:o(n({alertId:e()}),u(),{kind:"mutation"})}},W=f(["data","media","recordings","models","cache","logs","addons-data"]),vc={name:"storage",scope:"system",mode:"collection",methods:{resolve:o(n({location:W,relativePath:e()}),e()),write:o(n({location:W,relativePath:e()}),u(),{kind:"mutation"}),read:o(n({location:W,relativePath:e()}),B(Uint8Array)),exists:o(n({location:W,relativePath:e()}),h()),list:o(n({location:W,prefix:e().optional()}),c(e()).readonly()),delete:o(n({location:W,relativePath:e()}),u(),{kind:"mutation"}),getAvailableSpace:o(n({location:W}),t().nullable())}},sn=n({id:e(),label:e().optional(),createdAt:t(),sizeBytes:t(),locations:c(e()).optional()}),fc={name:"backup",scope:"system",mode:"singleton",methods:{trigger:o(n({locations:c(e()).optional(),label:e().optional()}).optional(),sn,{kind:"mutation",auth:"superAdmin"}),list:o(u(),c(sn).readonly(),{auth:"superAdmin"}),restore:o(n({backupId:e()}),u(),{kind:"mutation",auth:"superAdmin"}),delete:o(n({backupId:e()}),u(),{kind:"mutation",auth:"superAdmin"})}},rn=n({where:b(e(),S()).optional(),whereIn:b(e(),c(S())).optional(),whereBetween:b(e(),Nn([S(),S()])).optional(),orderBy:n({field:e(),direction:f(["asc","desc"])}).optional(),limit:t().optional(),offset:t().optional()}),dn=n({id:e(),data:b(e(),S())}),So=n({name:e(),type:f(["TEXT","INTEGER","REAL","JSON"]),primaryKey:h().optional(),notNull:h().optional(),unique:h().optional()}),bo=n({name:e(),columns:c(e()).readonly(),unique:h().optional()}),Sc={name:"settings-store",scope:"system",mode:"singleton",methods:{get:o(n({namespace:e().optional(),collection:e(),key:e()}),S()),set:o(n({namespace:e().optional(),collection:e(),key:e(),value:S()}),u(),{kind:"mutation"}),query:o(n({namespace:e().optional(),collection:e(),filter:rn.optional()}),c(dn).readonly()),insert:o(n({namespace:e().optional(),collection:e(),record:dn}),u(),{kind:"mutation"}),update:o(n({namespace:e().optional(),collection:e(),id:e(),data:b(e(),S())}),u(),{kind:"mutation"}),delete:o(n({namespace:e().optional(),collection:e(),key:e()}),u(),{kind:"mutation"}),count:o(n({namespace:e().optional(),collection:e(),filter:rn.optional()}),t()),isEmpty:o(n({namespace:e().optional(),collection:e()}),h()),declareCollection:o(n({namespace:e().optional(),collection:e(),columns:c(So).readonly(),indexes:c(bo).readonly().optional()}),u(),{kind:"mutation"})}},Wn=f(["debug","info","warn","error"]),cn=n({timestamp:Ye(),level:Wn,scope:c(e()),message:e(),meta:b(e(),S()).optional(),tags:b(e(),e()).optional()}),bc={name:"log-destination",scope:"system",mode:"collection",internal:!0,methods:{write:o(cn,u(),{kind:"mutation"}),query:o(n({scope:c(e()).optional(),level:Wn.optional(),since:Ye().optional(),until:Ye().optional(),limit:t().optional(),tags:b(e(),e()).optional()}),c(cn).readonly())}},Ic={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:o(u(),e()),getVersion:o(u(),e())}},Io=n({id:e(),label:e(),icon:e(),path:e(),remoteName:e(),bundle:e()}),ko=n({addonId:e(),page:Io,bundleUrl:e()}),kc={name:"addon-pages",scope:"system",mode:"singleton",methods:{listPages:o(u(),c(ko).readonly())}},Co=n({id:e(),label:e(),icon:e(),path:e(),remoteName:e(),bundle:e()}),Cc={name:"addon-pages-source",scope:"system",mode:"collection",internal:!0,methods:{listPages:o(u(),c(Co).readonly())}},Ao=f(["device-tab","dashboard","integration-detail"]),ln=f(["xs","sm","md","lg","xl"]),Gn=n({stableId:e(),label:e(),description:e().optional(),icon:e().optional(),remoteName:e(),bundle:e(),hosts:c(Ao).readonly(),requires:n({deviceContext:h().default(!1),integrationContext:h().default(!1)}),defaultSize:ln.default("md"),allowedSizes:c(ln).readonly().default(["sm","md","lg"]),defaultColumns:t().int().min(1).max(12).default(6),defaultRows:t().int().min(1).max(12).default(1)}),Ac={name:"addon-widgets-source",scope:"system",mode:"collection",internal:!0,methods:{listWidgets:o(u(),c(Gn).readonly())}},wo=Gn.extend({addonId:e(),bundleUrl:e()}),wc={name:"addon-widgets",scope:"system",mode:"singleton",methods:{listWidgets:o(u(),c(wo).readonly())}},Po=n({method:f(["GET","POST","PUT","DELETE","PATCH"]),path:e()}),Pc={name:"addon-routes",scope:"system",mode:"collection",internal:!0,methods:{getRoutes:o(u(),c(Po))}},Dc=[{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)"}],Ec={hwaccel:"auto",probedBestHwaccel:""},Mc={name:"decoder",scope:"system",mode:"singleton",methods:{supportsCodec:o(n({codec:e()}),h()),getInfo:o(u(),n({id:e(),name:e(),isPullMode:h().optional(),priority:t().optional()})),createSession:o(Gt,n({sessionId:e(),nodeId:e()})),destroySession:o(n({sessionId:e()}),u()),pushPacket:o(n({sessionId:e(),packet:ii}),u()),openStream:o(n({sessionId:e(),url:e()}),u()),pullFrames:o(n({sessionId:e(),maxCount:t().default(1)}),c(oi)),updateConfig:o(n({sessionId:e(),config:Gt.partial()}),u()),getStats:o(n({sessionId:e()}),_a),listActiveSessions:o(u(),c(n({sessionId:e(),codec:e(),outputFormat:e(),createdAtMs:t()})).readonly()),reprobeHwaccel:o(u(),n({backend:e()}),{kind:"mutation",auth:"admin"})}},Do=n({streamId:e(),label:e().optional(),codec:e(),type:f(["video","audio"]),sourceUrl:e()}),Eo=n({streamId:e(),format:e(),value:e()}),Tc={name:"restreamer",scope:"system",mode:"collection",internal:!0,methods:{registerDevice:o(n({deviceId:t(),streams:c(Do).readonly()}),u(),{kind:"mutation"}),unregisterDevice:o(n({deviceId:t()}),u(),{kind:"mutation"}),getExposedResources:o(n({deviceId:t()}),c(Eo).readonly())}},Kn=n({viewportWidth:t().int().positive().optional(),viewportHeight:t().int().positive().optional(),devicePixelRatio:t().positive().optional(),downlinkMbps:t().nonnegative().optional(),prefersTier:e().optional()}).partial(),qc={name:"webrtc",scope:"system",mode:"collection",internal:!0,methods:{handleOffer:o(n({streamId:e(),sdpOffer:e()}),e(),{kind:"mutation"}),supportsStream:o(n({streamId:e()}),h()),registerStream:o(n({streamId:e(),codec:e()}),u(),{kind:"mutation"}),unregisterStream:o(n({streamId:e()}),u(),{kind:"mutation"}),createSession:o(n({streamId:e(),hints:Kn.optional()}),n({sessionId:e(),sdpOffer:e()}),{kind:"mutation"}),handleAnswer:o(n({sessionId:e(),sdpAnswer:e()}),u(),{kind:"mutation"}),closeSession:o(n({sessionId:e()}),u(),{kind:"mutation"}),hasAdaptiveBitrate:o(n({streamId:e()}),h())}},$n=xa("kind",[n({kind:I("adaptive")}),n({kind:I("profile"),profile:G}),n({kind:I("cam-stream"),camStreamId:e().min(1)})]),Mo=n({id:e(),label:e(),target:$n,codec:e().nullable(),resolution:n({width:t(),height:t()}).nullable(),status:f(["idle","connecting","streaming","error","stopped"]).nullable(),inputFps:t().nullable(),decodeFps:t().nullable(),bitrateKbps:t().nullable()}),Rc={name:"webrtc-session",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listStreams:o(n({deviceId:t().int().nonnegative()}),c(Mo)),createSession:o(n({deviceId:t().int().nonnegative(),target:$n,hints:Kn.optional()}),n({sessionId:e(),sdpOffer:e()}),{kind:"mutation"}),handleAnswer:o(n({deviceId:t().int().nonnegative(),sessionId:e(),sdpAnswer:e()}),u(),{kind:"mutation"}),closeSession:o(n({deviceId:t().int().nonnegative(),sessionId:e()}),u(),{kind:"mutation"}),hasAdaptiveBitrate:o(n({deviceId:t().int().nonnegative(),profile:G}),h())}},we=n({engine:M,steps:c(X).readonly(),audio:n({engine:M,modelId:e(),enabled:h(),settings:b(e(),S()).readonly().optional()}).nullable().optional()}),Ve=n({id:e(),name:e(),description:e().optional(),config:we,createdAt:e(),updatedAt:e()}),jn=n({enabled:h(),modelId:e(),settings:b(e(),S()).readonly()}),un=n({addonDefaults:b(e(),jn).readonly()}),Zn=n({steps:c(X).readonly(),audio:n({modelId:e(),enabled:h()}).nullable()}),ct=n({enabled:h().optional(),modelId:e().optional(),settings:b(e(),S()).readonly().optional()}),To=n({pinnedAgentNodeId:e().optional(),stepToggles:b(e(),h()).optional(),stepOverridesByAgent:b(e(),b(e(),ct)).optional(),pipelineByAgent:b(e(),Zn).optional()}),mn=n({deviceId:t(),agentNodeId:e(),pinned:h(),reason:f(["manual","capacity","hardware-affinity","failover","rebalance"]),assignedAt:t()}),pn=n({deviceId:t(),decoderNodeId:e(),pinned:h(),reason:f(["manual","co-located","capacity","hardware-affinity"])}),qo=n({nodeId:e(),online:h(),load:_n,score:t()}),Ro=n({totalAgents:t(),onlineAgents:t(),totalCameras:t(),attachedCameras:t(),activeCameras:t(),avgInferenceTimeMs:t(),queueDepth:t()}),Bo=b(e(),e()),Bc={name:"pipeline-orchestrator",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{assignPipeline:o(n({deviceId:t(),agentNodeId:e()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),unassignPipeline:o(n({deviceId:t()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),rebalance:o(u(),n({migrated:t()}),{kind:"mutation",auth:"admin"}),getPipelineAssignments:o(u(),c(mn).readonly()),getPipelineAssignment:o(n({deviceId:t()}),mn.nullable()),getAgentLoad:o(u(),c(qo).readonly()),getGlobalMetrics:o(u(),Ro),getCameraMetrics:o(n({deviceId:t()}),Dt.nullable()),getCapabilityBindings:o(n({nodeId:e()}),Bo),setCapabilityBinding:o(n({nodeId:e(),capName:e(),addonId:e()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),assignDecoder:o(n({deviceId:t(),nodeId:e()}),u(),{kind:"mutation",auth:"admin"}),unassignDecoder:o(n({deviceId:t()}),u(),{kind:"mutation",auth:"admin"}),getDecoderAssignments:o(u(),c(pn).readonly()),assignAudio:o(n({deviceId:t(),nodeId:e()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),unassignAudio:o(n({deviceId:t()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),getAudioAssignment:o(n({deviceId:t()}),n({nodeId:e(),pinned:h(),assignedAt:t()}).nullable()),getAudioNodeLoad:o(u(),c(n({nodeId:e(),deviceCount:t()}))),getAudioAssignments:o(u(),c(n({deviceId:t(),nodeId:e(),pinned:h(),assignedAt:t()}))),getDecoderAssignment:o(n({deviceId:t(),pipelineNodeId:e().optional()}),pn),getAgentSettings:o(n({agentNodeId:e()}),un.nullable()),listAgentSettings:o(u(),c(n({nodeId:e(),settings:un})).readonly()),setAgentAddonDefaults:o(n({agentNodeId:e(),defaults:b(e(),jn)}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),removeAgentSettings:o(n({agentNodeId:e()}),n({success:h(),removed:h()}),{kind:"mutation",auth:"admin"}),getCameraSettings:o(n({deviceId:t()}),To.nullable()),setCameraStepToggle:o(n({deviceId:t(),addonId:e(),enabled:h().nullable()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),getCameraStepOverrides:o(n({deviceId:t()}),b(e(),b(e(),ct)).nullable()),setCameraStepOverride:o(n({deviceId:t(),agentNodeId:e(),addonId:e(),patch:ct.nullable()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),setCameraPipelineForAgent:o(n({deviceId:t(),agentNodeId:e(),pipeline:Zn.nullable()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),resolvePipeline:o(n({deviceId:t(),agentNodeId:e().optional()}),we),listTemplates:o(u(),c(Ve).readonly()),saveTemplate:o(n({name:e(),description:e().optional(),config:we}),Ve,{kind:"mutation",auth:"admin"}),updateTemplate:o(n({id:e(),name:e().optional(),description:e().optional(),config:we.optional()}),Ve,{kind:"mutation",auth:"admin"}),deleteTemplate:o(n({id:e()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"})}},Oo=n({level:vi,classification:n({labels:c(at).readonly(),inferenceMs:t()}).optional(),timestamp:t()}),xo=n({minConfidence:t().min(0).max(1).default(.3),allowedClasses:c(e()).default([])}),zo=n({labels:c(at).readonly(),rawLabels:c(at).readonly().optional(),inferenceMs:t()}),Oc=[{value:"auto",label:"Auto (platform default)"},{value:"apple-soundanalysis",label:"Apple SoundAnalysis (macOS 12+)"},{value:"yamnet-onnx",label:"YAMNet ONNX (cross-platform)"}],xc={audioBackend:"auto",probedBestAudioBackend:"",selectedAudioModel:""},zc={name:"audio-analyzer",scope:"system",mode:"singleton",methods:{analyseChunk:o(n({chunk:Yt,settings:xo}),Oo.nullable(),{kind:"mutation"}),classify:o(Yt,zo,{timeoutMs:3e4}),isReady:o(u(),h()),dispose:o(u(),u(),{kind:"mutation"}),reprobeAudioEngine:o(u(),n({backend:e()}),{kind:"mutation",auth:"admin"})}},Lc={name:"audio-analysis",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{resolveDeviceSettings:o(n({deviceId:t()}),O())},events:{onAudioLevel:j(n({deviceId:t(),rms:t(),dbfs:t()}))}},qe=f(["f32le","s16le"]),Lo=n({codec:e(),canDecode:h(),canEncode:h(),label:e().optional()}),No=n({codec:e(),sourceSampleRate:t().int().positive(),sourceChannels:t().int().positive(),extraData:B(Uint8Array).optional(),targetSampleRate:t().int().positive(),targetChannels:t().int().positive(),targetFormat:qe.optional(),idleMs:t().int().positive().optional(),tag:e().optional()}),Fo=n({codec:e(),sourceSampleRate:t().int().positive(),sourceChannels:t().int().positive(),sourceFormat:qe.optional(),targetSampleRate:t().int().positive(),targetChannels:t().int().positive(),bitrateKbps:t().int().positive().optional(),idleMs:t().int().positive().optional(),tag:e().optional()}),Uo=n({data:B(Uint8Array),sampleRate:t().int().positive(),channels:t().int().positive(),format:qe,pts:t()}),gn=n({data:B(Uint8Array),codec:e(),pts:t(),frameComplete:h()}),_o=n({sessionId:e(),kind:f(["decode","encode"]),codec:e(),sourceSampleRate:t(),sourceChannels:t(),targetSampleRate:t(),targetChannels:t(),format:qe,tag:e().optional(),createdAtMs:t(),lastActivityMs:t(),framesIn:t(),framesOut:t()}),Nc={name:"audio-codec",scope:"system",mode:"singleton",methods:{listSupportedCodecs:o(u(),c(Lo).readonly()),canHandle:o(n({codec:e(),kind:f(["decode","encode"])}),h()),createDecodeSession:o(No,n({sessionId:e(),nodeId:e()}),{kind:"mutation"}),createEncodeSession:o(Fo,n({sessionId:e(),nodeId:e()}),{kind:"mutation"}),closeSession:o(n({sessionId:e(),nodeId:e().optional()}),u(),{kind:"mutation"}),pushEncodedFrame:o(n({sessionId:e(),nodeId:e().optional(),data:B(Uint8Array),pts:t().optional()}),u(),{kind:"mutation"}),pullPcm:o(n({sessionId:e(),nodeId:e().optional(),maxCount:t().int().positive().default(8)}),c(Uo)),pushPcm:o(n({sessionId:e(),nodeId:e().optional(),data:B(Uint8Array),pts:t().optional()}),u(),{kind:"mutation"}),pullEncoded:o(n({sessionId:e(),nodeId:e().optional(),maxCount:t().int().positive().default(8)}),c(gn)),flushEncode:o(n({sessionId:e(),nodeId:e().optional()}),c(gn),{kind:"mutation"}),listActiveSessions:o(u(),c(_o).readonly())}},hn=n({embedding:c(t()),dimensions:t()}),Vo=n({modelId:e(),dimensions:t(),inputSize:t()}),Fc={name:"embedding-encoder",scope:"system",mode:"collection",internal:!0,methods:{encode:o(n({crop:B(Uint8Array),width:t(),height:t()}),hn),encodeText:o(n({text:e()}),hn),getInfo:o(u(),Vo)}},He=n({id:t(),stableId:e(),addonId:e(),type:f(C),name:e(),location:e().nullable(),disabled:h(),parentDeviceId:t().nullable(),role:e().nullable().optional(),online:h(),features:c(e()),isCamera:h(),config:b(e(),S()),metadata:b(e(),S()).nullable().optional()}),Ho=n({key:e(),value:S(),description:e().optional()}),Wo=n({id:t(),stableId:e(),type:e(),name:e(),location:e().nullable(),disabled:h(),parentDeviceId:t().nullable(),role:e().nullable().optional()}),Go=n({id:t(),stableId:e(),addonId:e(),type:e(),name:e(),location:e().nullable(),disabled:h(),parentDeviceId:t().nullable(),metadata:b(e(),S()).nullable().optional()}),Ko=S().nullable(),$o=n({streamId:e(),width:t().optional(),height:t().optional(),codec:e().optional(),fps:t().optional(),bitrateKbps:t().optional()}),jo=n({addonId:e(),stableId:e(),id:t(),type:e(),name:e(),location:e().nullable().optional(),disabled:h().optional(),parentDeviceId:t().nullable(),role:e().nullable().optional(),features:c(e()).optional(),config:b(e(),S())}),Zo=n({deviceId:t()}),Qo=n({deviceId:t(),data:b(e(),S())}),Uc={name:"device-manager",scope:"system",mode:"singleton",methods:{allocateDeviceId:o(n({addonId:e(),stableId:e()}),n({id:t()}),{kind:"mutation"}),registerDevice:o(jo,u(),{kind:"mutation"}),removeDevice:o(Zo,u(),{kind:"mutation"}),persistConfig:o(Qo,u(),{kind:"mutation"}),loadConfig:o(n({deviceId:t()}),b(e(),S())),loadRuntimeState:o(n({deviceId:t()}),b(e(),S())),loadMeta:o(n({deviceId:t()}),Go.nullable()),setName:o(n({deviceId:t(),name:e()}),u(),{kind:"mutation",auth:"admin"}),setLocation:o(n({deviceId:t(),location:e().nullable()}),u(),{kind:"mutation",auth:"admin"}),setMetadata:o(n({deviceId:t(),patch:b(e(),S())}),u(),{kind:"mutation",auth:"admin"}),listLocations:o(u(),c(e())),addLocation:o(n({name:e()}),u(),{kind:"mutation",auth:"admin"}),removeLocation:o(n({name:e(),cascade:h().optional()}),u(),{kind:"mutation",auth:"admin"}),setDisabled:o(n({deviceId:t(),disabled:h()}),u(),{kind:"mutation",auth:"admin"}),listPersistedByAddon:o(n({addonId:e()}),c(Wo)),listAll:o(n({addonId:e().optional()}),c(He)),getDevice:o(n({deviceId:t()}),He.nullable()),getChildren:o(n({parentDeviceId:t()}),c(He)),getStreamSources:o(n({deviceId:t()}),c(ai)),getConfigSchema:o(n({deviceId:t()}),c(Ho)),getSettingsSchema:o(n({deviceId:t()}),Ko),updateConfig:o(n({deviceId:t(),values:b(e(),S())}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),enable:o(n({deviceId:t()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),disable:o(n({deviceId:t()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),remove:o(n({deviceId:t()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),getStreamProfileMap:o(n({deviceId:t()}),b(e(),e().nullable())),setStreamProfileMap:o(n({deviceId:t(),profileMap:b(e(),e().nullable())}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),probeStreams:o(n({deviceId:t()}),c($o),{kind:"mutation",auth:"admin"}),getBindings:o(n({deviceId:t()}),n({deviceId:t(),entries:c(n({capName:e(),kind:f(["native","wrapped"]),providerAddonId:e(),providerNodeId:e(),nativeAddonId:e()}))})),getAllBindings:o(n({}),c(n({deviceId:t(),entries:c(n({capName:e(),kind:f(["native","wrapped"]),providerAddonId:e(),providerNodeId:e(),nativeAddonId:e()}))}))),setWrapperActive:o(n({deviceId:t(),capName:e(),wrapperAddonId:e(),active:h()}),u(),{kind:"mutation",auth:"admin"}),listWrappersForCap:o(n({capName:e()}),c(e())),listBindableCapsForDeviceType:o(n({deviceType:e()}),c(n({capName:e(),wrappers:c(e())}))),getDeviceSettingsAggregate:o(n({deviceId:t()}),Q.nullable()),getDeviceLiveInfoAggregate:o(n({deviceId:t()}),Q.nullable()),getDeviceAggregate:o(n({deviceId:t()}),n({settings:Q.nullable(),live:Q.nullable()})),updateDeviceField:o(n({deviceId:t(),writerCapName:e(),writerAddonId:e(),key:e(),value:S()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),updateDeviceFieldsBatch:o(n({deviceId:t(),changes:c(n({writerCapName:e(),writerAddonId:e(),key:e(),value:S()}))}),n({success:I(!0),failures:c(n({writerCapName:e(),writerAddonId:e(),error:e()}))}),{kind:"mutation",auth:"admin"}),discoverDevices:o(n({addonId:e()}),c(Me),{kind:"mutation",auth:"admin"}),adoptDevice:o(n({addonId:e(),candidate:Me}),Te,{kind:"mutation",auth:"admin"}),getCreationSchema:o(n({addonId:e(),type:f(C)}),S().nullable()),createDevice:o(n({addonId:e(),type:f(C),config:b(e(),S())}),Te,{kind:"mutation",auth:"admin"}),testCreationField:o(n({addonId:e(),type:f(C),key:e(),value:S(),formValues:b(e(),S()).optional()}),dt,{kind:"mutation",auth:"admin"}),testField:o(n({deviceId:t(),key:e(),value:S()}),dt,{kind:"mutation",auth:"admin"}),getDeviceStatusAggregate:o(n({deviceId:t(),caps:c(e()).readonly().optional()}),b(e(),S().nullable()))}},_c={name:"device-state",scope:"system",mode:"singleton",methods:{getSnapshot:o(n({deviceId:t()}),b(e(),b(e(),S()))),getCapSlice:o(n({deviceId:t(),capName:e()}),b(e(),S()).nullable()),getAllSnapshots:o(n({}),b(e(),b(e(),b(e(),S())))),setCapSlice:o(n({deviceId:t(),capName:e(),slice:b(e(),S())}),u(),{kind:"mutation"})},events:{onChanged:j(n({deviceId:t(),capName:e(),slice:b(e(),S())}))}},We=n({userId:e(),username:e(),email:e().optional(),displayName:e().optional(),roles:c(e()).optional()}),Vc={name:"auth-provider",scope:"system",mode:"collection",internal:!0,methods:{validateCredentials:o(n({username:e(),password:e()}),We.nullable(),{kind:"mutation"}),getLoginUrl:o(n({state:e()}),e()),handleCallback:o(b(e(),e()),We,{kind:"mutation"}),validateToken:o(n({token:e()}),We.nullable())}},lt=n({url:e(),hostname:e(),port:t(),protocol:f(["http","https"])}),Yo=n({connected:h(),endpoint:lt.nullable(),error:e().optional()}),Hc={name:"network-access",scope:"system",mode:"collection",internal:!0,methods:{start:o(u(),lt,{kind:"mutation"}),stop:o(u(),u(),{kind:"mutation"}),getEndpoint:o(u(),lt.nullable()),getStatus:o(u(),Yo)}},Xo=n({urls:q([e(),c(e())]),username:e().optional(),credential:e().optional()}),Wc={name:"turn-provider",scope:"system",mode:"collection",methods:{getTurnServers:o(u(),c(Xo).readonly())}},Qn=n({base64:e(),contentType:e()}),Jo=n({lastCapturedAt:t().nullable(),cacheAgeMs:t().nullable(),lastBytes:t().nullable(),lastStreamId:e().nullable()}),Gc={name:"snapshot",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{getSnapshot:o(n({deviceId:t(),streamId:e().optional(),force:h().optional()}),Qn.nullable()),invalidateCache:o(n({deviceId:t()}),u(),{kind:"mutation",auth:"admin"})},status:{schema:Jo,kind:"poll"}},Kc={name:"snapshot-provider",scope:"system",mode:"collection",methods:{supportsDevice:o(n({deviceId:t()}),h()),getSnapshot:o(n({deviceId:t(),streamId:e().optional()}),Qn.nullable())}},es=n({title:e(),body:e(),imageUrl:e().optional(),deviceId:t().optional(),eventId:e().optional(),priority:f(["low","normal","high","critical"]).default("normal"),metadata:b(e(),S()).optional()}),$c={name:"notification-output",scope:"system",mode:"collection",methods:{send:o(es,u(),{kind:"mutation"}),sendTest:o(u(),n({success:h(),error:e().optional()}),{kind:"mutation"})}},yn=n({id:e(),name:e(),enabled:h(),conditions:b(e(),S()),actions:c(b(e(),S()))}),ts=n({id:e(),ruleId:e(),timestamp:t(),deviceId:t().optional(),success:h(),error:e().optional()}),jc={name:"advanced-notifier",scope:"system",mode:"singleton",internal:!0,methods:{getRules:o(u(),c(yn).readonly()),upsertRule:o(yn,u(),{kind:"mutation"}),deleteRule:o(n({ruleId:e()}),u(),{kind:"mutation"}),testRule:o(n({ruleId:e(),lookbackMinutes:t()}),c(b(e(),S())),{kind:"mutation"}),getHistory:o(n({ruleId:e().optional(),limit:t().optional()}),c(ts))}},Yn=f(["continuous","motion","scheduled","composite"]),ns=n({streamId:e(),mode:f(["always","inherit"])}),as=n({days:c(t()).readonly(),startTime:e(),endTime:e(),mode:f(["continuous","motion"])}),le=n({deviceId:t(),mode:Yn,streams:c(ns).readonly(),enabled:h(),preBufferSec:t(),postBufferSec:t(),scheduleRules:c(as).readonly().optional()}),Xn=f(["recording:main","recording:mid","recording:sub","thumbnail:scrub","thumbnail:event"]),ut=n({deviceId:t(),dataCategory:Xn,storageName:e(),subDirectory:e(),retentionDays:t().nullable(),retentionGb:t().nullable()}),is=n({id:e(),deviceId:t(),streamId:e(),startTime:t(),endTime:t(),duration:t(),path:e(),storageName:e(),subDirectory:e(),sizeBytes:t(),codec:f(["h264","h265"]),hasAudio:h()}),os=n({deviceId:t(),timestamp:t(),path:e(),storageName:e(),subDirectory:e(),sizeBytes:t(),category:f(["scrub","event"])}),ss=n({startTime:t(),endTime:t(),streams:c(e()).readonly()}),rs=n({totalBytes:t(),segmentCount:t()}),ds=n({bitrateKbps:t(),retentionDays:t().nullable(),retentionGb:t().nullable(),estimatedGb:t(),estimatedDaysAtCapacity:t().nullable()}),vn=n({perStream:b(e(),ds),thumbnails:n({estimatedGb:t()}),totalEstimatedGb:t(),motionEstimate:n({avgEventsPerDay:t(),avgDurationSec:t(),dutyCyclePercent:t()}).optional()}),cs=n({totalEvents:t(),avgDurationSec:t(),avgEventsPerDay:t(),dutyCyclePercent:t()}),Ie=n({deviceId:t()}),ls=n({deviceId:t(),policy:le.omit({deviceId:!0}),storageOverrides:c(ut.omit({deviceId:!0})).readonly().optional(),ffmpegOverrides:b(e(),S()).optional()}),fn=n({deviceId:t(),startTime:t(),endTime:t()}),us=n({deviceId:t(),streamId:e(),startTime:t(),endTime:t()}),ms=n({deviceId:t(),streamId:e(),startTime:t(),endTime:t(),live:h().optional()}),ps=n({deviceId:t(),timestamp:t(),category:e().optional()}),gs=n({deviceId:t(),streamId:e()}),hs=n({deviceId:t(),motionInput:n({avgEventsPerDay:t(),avgDurationSec:t()}).optional()}),ys=n({deviceId:t(),dataCategory:Xn}),vs=n({deviceId:t(),policy:le.omit({deviceId:!0})}),fs=n({deviceId:t(),policy:le.omit({deviceId:!0}),ffmpegOverrides:b(e(),S()).optional()}),Zc={name:"recording-engine",scope:"system",mode:"singleton",methods:{getStatus:o(u(),n({activeRecordings:t(),totalSegments:t(),totalSizeMB:t()})),enable:o(ls,u(),{kind:"mutation",auth:"admin"}),disable:o(Ie,u(),{kind:"mutation",auth:"admin"}),getConfig:o(Ie,le.nullable()),updateConfig:o(fs,u(),{kind:"mutation",auth:"admin"}),getPlaylist:o(ms,e()),getThumbnail:o(ps,os.nullable()),getSegments:o(us,c(is).readonly()),getAvailability:o(fn,c(ss).readonly()),estimateStorage:o(hs,vn),estimateGlobalStorage:o(u(),vn),getStorageUsage:o(gs,rs),setPolicy:o(vs,u(),{kind:"mutation",auth:"admin"}),getPolicy:o(Ie,le.nullable()),getPolicyStatus:o(Ie,n({deviceId:t(),enabled:h(),mode:Yn,activeStreams:t()}).nullable()),getRetentionConfig:o(ys,ut.nullable()),updateRetentionConfig:o(ut,u(),{kind:"mutation",auth:"admin"}),getMotionStats:o(fn,cs)}},Qc={name:"detection-pipeline",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{}},Mt=f(["new","entered","left","moving","idle"]),Ss=f(["motion","object","audio"]),Jn=n({x:t(),y:t(),timestamp:t(),bbox:ee}),bs=n({timestamp:t(),position:Jn,mediaKey:e()}),Ge=n({trackId:e(),deviceId:t(),className:e(),label:e().optional(),firstSeen:t(),lastSeen:t(),positions:c(Jn).readonly(),snapshots:c(bs).readonly(),zonesVisited:c(e()).readonly(),totalDistance:t(),state:Mt,active:h()}),Tt={id:e(),deviceId:t(),timestamp:t()},Is=n({...Tt,kind:I("motion"),regionCount:t(),regions:c(n({bbox:ee,pixelCount:t(),intensity:t()})).readonly(),frameWidth:t(),frameHeight:t()}),ks=n({...Tt,kind:I("object"),trackId:e(),className:e(),label:e().optional(),confidence:t(),bbox:ee,zones:c(e()).readonly(),state:Mt,mediaKey:e().optional()}),Cs=n({...Tt,kind:I("audio"),rms:t(),dbfs:t(),classification:n({className:e(),originalClass:e().optional(),score:t()}).optional()}),Sn=n({key:e(),kind:f(["crop","thumbnail","snapshot"]),base64:e(),sizeBytes:t(),timestamp:t()}),As=1e3,ws=5e3,mt=n({deviceId:t(),since:t().optional(),until:t().optional(),limit:t().int().min(1).max(ws).default(As)}),Ps=mt.extend({classFilter:e().optional()}),Ds=n({trackId:e(),className:e(),confidence:t(),bbox:ee,zones:c(e()).readonly(),state:Mt}),Yc={name:"pipeline-analytics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{getActiveTracks:o(n({deviceId:t()}),c(Ge).readonly()),getTrack:o(n({deviceId:t(),trackId:e()}),Ge.nullable()),listTracks:o(n({deviceId:t(),since:t().optional(),until:t().optional(),limit:t().optional()}),c(Ge).readonly()),clearTracks:o(n({deviceId:t()}),u(),{kind:"mutation",auth:"admin"}),getMotionEvents:o(mt,c(Is).readonly()),getObjectEvents:o(Ps,c(ks).readonly()),getAudioEvents:o(mt,c(Cs).readonly()),getEventMedia:o(n({eventId:e()}),c(Sn).readonly()),getTrackMedia:o(n({trackId:e()}),c(Sn).readonly())},events:{onFrameTracked:{data:n({deviceId:t(),timestamp:t(),frameWidth:t(),frameHeight:t(),detections:c(Ds).readonly()})},onTrackStarted:{data:n({deviceId:t(),trackId:e(),className:e()})},onTrackEnded:{data:n({deviceId:t(),trackId:e(),className:e(),durationMs:t()})},onDetectionEvent:{data:n({deviceId:t(),kind:Ss,eventId:e(),timestamp:t()})}}},Es=n({total:t(),user:t(),system:t(),irq:t(),nice:t(),loadAvg:Nn([t(),t(),t()]),cores:t()}),Ms=n({percent:t(),totalBytes:t(),usedBytes:t(),availableBytes:t(),swapUsedBytes:t(),swapTotalBytes:t()}),Ts=n({readBytes:t(),writeBytes:t(),readOps:t(),writeOps:t(),timestampMs:t()}),qs=n({rxBytes:t(),txBytes:t(),rxPackets:t(),txPackets:t(),rxErrors:t(),txErrors:t(),timestampMs:t()}),ea=n({utilization:t(),model:e(),memoryUsedBytes:t(),memoryTotalBytes:t(),temperature:t().nullable()}),Rs=n({openFds:t(),threadCount:t(),activeHandles:t(),activeRequests:t()}),bn=n({avg10:t(),avg60:t(),avg300:t()}),Ke=n({some:bn,full:bn.nullable()}),In=n({cpu:Es,memory:Ms,gpu:ea.nullable(),network:qs,disk:Ts,pressure:n({cpu:Ke.nullable(),memory:Ke.nullable(),io:Ke.nullable()}),process:Rs,cpuTemperature:t().nullable(),timestampMs:t()}),Bs=n({path:e(),totalBytes:t(),usedBytes:t(),availableBytes:t(),percent:t()}),kn=n({pid:t(),cpu:t(),memory:t()}),Os=n({addonId:e(),nodeId:e(),role:f(["hub","worker"]),pid:t(),state:f(["starting","running","stopping","stopped","crashed"]),uptimeSec:t()}),xs=n({pid:t(),ppid:t(),pgid:t(),classification:f(["root","managed","system","ghost"]),addonId:e().nullable(),nodeId:e().nullable(),command:e(),cpuPercent:t(),memoryRssBytes:t(),uptimeSec:t(),orphaned:h()}),zs=n({pid:t(),force:h().optional()}),Ls=n({success:h(),reason:e().optional(),signal:f(["SIGTERM","SIGKILL"]).optional()}),Ns=n({cpuPercent:t(),memoryPercent:t(),memoryUsedMB:t(),memoryTotalMB:t(),diskPercent:t().optional(),temperature:t().optional(),gpuPercent:t().optional(),gpuMemoryPercent:t().optional()}),Xc={name:"metrics-provider",scope:"system",mode:"singleton",methods:{collectSnapshot:o(u(),In),getCached:o(u(),In.nullable()),getCurrent:o(u(),Ns),getDiskSpace:o(n({dirPath:e()}),Bs),getGpuInfo:o(u(),ea.nullable()),getCpuTemperature:o(u(),t().nullable()),getProcessStats:o(n({pids:c(t())}),c(kn)),listAddonInstances:o(u(),c(Os).readonly()),getAddonStats:o(n({addonId:e()}),kn.nullable()),listNodeProcesses:o(u(),c(xs).readonly()),killProcess:o(zs,Ls,{kind:"mutation",auth:"admin"})}},Fs=n({id:e(),name:e()}),Cn=n({pan:t(),tilt:t(),zoom:t()}),An=n({pan:t().optional(),tilt:t().optional(),zoom:t().optional(),speed:t().optional()}),Jc={name:"ptz",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{move:o(An.extend({deviceId:t()}),u(),{kind:"mutation"}),continuousMove:o(An.extend({deviceId:t()}),u(),{kind:"mutation"}),stop:o(n({deviceId:t()}),u(),{kind:"mutation"}),getPresets:o(n({deviceId:t()}),c(Fs)),goToPreset:o(n({deviceId:t(),presetId:e()}),u(),{kind:"mutation"}),goHome:o(n({deviceId:t()}),u(),{kind:"mutation"}),getPosition:o(n({deviceId:t()}),Cn)},status:{schema:Cn,kind:"command-driven"}},Us=n({id:e(),type:e(),timestamp:t(),label:e().optional(),thumbnailUrl:e().optional(),clipUrl:e().optional(),metadata:b(e(),S()).optional()}),el={name:"events",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getEvents:o(n({deviceId:t(),from:t().optional(),to:t().optional(),limit:t().optional()}),c(Us)),getEventThumbnail:o(n({deviceId:t(),eventId:e()}),n({base64:e(),contentType:e()}).nullable()),getEventClipUrl:o(n({deviceId:t(),eventId:e()}),e().nullable())}},_s=n({id:e(),startTs:t(),endTs:t(),durationSec:t(),sizeBytes:t().optional()}),tl={name:"recording",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getSegments:o(n({deviceId:t(),from:t().optional(),to:t().optional()}),c(_s)),getPlaybackUrl:o(n({deviceId:t(),segmentId:e()}),e().nullable()),getThumbnailAt:o(n({deviceId:t(),timestamp:t()}),n({base64:e(),contentType:e()}).nullable())}},Vs=n({id:e(),label:e(),protocol:f(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:e().optional(),resolution:n({width:t(),height:t()}).optional(),fps:t().optional(),bitrate:t().optional(),codec:e().optional(),profileHint:f(["high","mid","low"]).optional(),sdp:e().optional()}),Hs=n({key:e(),value:S()}),nl={name:"device-ops",scope:"device",mode:"singleton",methods:{getStreamSources:o(n({deviceId:t()}),c(Vs)),getConfigEntries:o(n({deviceId:t()}),c(Hs)),setConfig:o(n({deviceId:t(),values:b(e(),S())}),u(),{kind:"mutation"}),removeDevice:o(n({deviceId:t()}),u(),{kind:"mutation"}),getSettingsSchema:o(n({deviceId:t()}),S().nullable())}},Ws=n({host:e(),port:t().int().positive().optional(),onvifPort:t().int().positive().optional(),rtspPort:t().int().positive().optional(),https:h().optional(),username:e().optional(),password:e().optional(),onvifProfile:e().optional()}),Gs=n({host:e(),port:t().int().positive().nullable(),onvifPort:t().int().positive().nullable(),rtspPort:t().int().positive().nullable(),https:h().nullable(),hasUsername:h(),hasPassword:h(),onvifProfile:e().nullable()}),al={name:"camera-credentials",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCredentials:o(n({deviceId:t()}),Ws.nullable(),{kind:"query",auth:"admin"})},status:{schema:Gs,kind:"command-driven"}},il={name:"reboot",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor,C.Switch],methods:{reboot:o(n({deviceId:t().int().nonnegative()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"})}},Ks=f(["text","timestamp","watermark"]),pt=f(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right","custom"]),$s=n({id:e(),kind:Ks,enabled:h(),text:e().optional(),position:pt.optional(),availablePositions:c(pt).readonly(),readOnly:h().optional()}),wn=n({overlays:c($s).readonly()}),js=n({enabled:h().optional(),text:e().optional(),position:pt.optional()}).partial(),ol={name:"osd",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{setOverlay:o(n({deviceId:t(),overlayId:e(),patch:js}),u(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:n({deviceId:t(),status:wn})}},status:{schema:wn,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:s=>`${String(s.id)} enabled`,kind:"boolean"},text:{label:s=>`${String(s.id)} text`,kind:"text",when:s=>s.kind!=="timestamp"&&!s.readOnly},position:{label:s=>`${String(s.id)} position`,kind:"select",options:s=>s.availablePositions??[],when:s=>Array.isArray(s.availablePositions)&&s.availablePositions.length>0}}}]}},Zs=n({childDeviceIds:c(t()).readonly()}),sl={name:"accessories",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Hub],methods:{},events:{onAccessoriesChanged:{data:n({deviceId:t(),childDeviceIds:c(t()).readonly()})}},status:{schema:Zs,kind:"command-driven"}},Qs=n({codecs:c(e()),sampleRate:t(),duplex:f(["half","full"]),maxBacklogMs:t()}),Pn=n({talking:h(),lastSessionAt:t().nullable(),ability:Qs.nullable()}),rl={name:"intercom",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{startSession:o(n({deviceId:t()}),n({sessionId:e(),sdpOffer:e()}),{kind:"mutation",auth:"admin"}),handleAnswer:o(n({deviceId:t(),sessionId:e(),sdpAnswer:e()}),u(),{kind:"mutation",auth:"admin"}),stopSession:o(n({deviceId:t(),sessionId:e()}),u(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:n({deviceId:t(),status:Pn})}},status:{schema:Pn,kind:"command-driven"}},gt=f(["person","vehicle","animal","face","package","other"]),ta=n({class:gt,timestamp:t(),confidence:t().min(0).max(1).optional()}),Ys=n({lastByClass:b(gt,ta.nullable()),supportedClasses:c(gt).readonly()}),dl={name:"native-object-detection",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{},events:{onDetected:{data:n({deviceId:t(),detection:ta})}},status:{schema:Ys,kind:"push"}},Xs=f(La),Js=f(["videotoolbox","cuda","nvdec","vaapi","qsv","d3d11va","dxva2","amf","vdpau","drm","coreml","tensorrt","openvino","directml","webgpu","none"]).nullable().optional(),er=n({preferred:c(e()).readonly()}),tr=f(["darwin","linux","win32"]),nr=f(["arm64","x64"]),ar=n({type:f(["nvidia","amd","intel","apple"]),name:e(),memoryMB:t().optional()}),ir=n({type:f(["apple-ane","intel-npu"])}),na=n({platform:tr,arch:nr,cpuModel:e(),cpuCores:t(),totalRAM_MB:t(),availableRAM_MB:t(),gpu:ar.nullable(),npu:ir.nullable()}),Dn=n({runtime:f(["node","python"]),backend:e(),format:f(["onnx","coreml","openvino"]),score:t(),reason:e(),available:h()}),or=n({hardware:na,scores:c(Dn).readonly(),bestScore:Dn,pythonPath:e().nullable()}),sr=n({modelId:e(),name:e(),minRAM_MB:t(),accuracyScore:t(),formats:c(e()).readonly()}),rr=n({modelId:e(),runtime:f(["node","python"]),backend:e(),format:Xs,reason:e()}),cl={name:"platform-probe",scope:"system",mode:"singleton",methods:{getCapabilities:o(u(),or),getHardware:o(u(),na),resolveInferenceConfig:o(n({requirements:c(sr).readonly()}),rr),resolveHwAccel:o(n({prefer:Js,nodeId:e().optional()}),er)}},ge=f(["super_admin","admin","viewer","agent"]),$e=n({id:e(),username:e(),role:ge,allowedProviders:q([c(e()),I("*")]),allowedDevices:b(e(),q([c(e()),I("*")])),createdAt:t(),updatedAt:t()}),dr=n({username:e(),password:e().min(6),role:ge,allowedProviders:q([c(e()),I("*")]).optional(),allowedDevices:b(e(),q([c(e()),I("*")])).optional()}),cr=n({id:e(),role:ge.optional(),allowedProviders:q([c(e()),I("*")]).optional(),allowedDevices:b(e(),q([c(e()),I("*")])).optional()}),ht=n({id:e(),label:e(),role:ge,allowedProviders:q([c(e()),I("*")]).optional(),allowedDevices:b(e(),q([c(e()),I("*")])).optional(),tokenPrefix:e(),createdAt:t(),lastUsedAt:t().optional()}),lr=n({label:e(),role:ge,allowedProviders:q([c(e()),I("*")]).optional(),allowedDevices:b(e(),q([c(e()),I("*")])).optional()}),ur=n({token:e(),record:ht}),aa=n({type:f(["addon","route-prefix","capability"]),target:e()}),yt=n({id:e(),userId:e(),name:e(),tokenPrefix:e(),scopes:c(aa),expiresAt:t().optional(),lastUsedAt:t().optional(),createdAt:t()}),mr=n({name:e(),scopes:c(aa),expiresAt:t().optional()}),pr=n({token:e(),record:yt}),ll={name:"user-management",scope:"system",mode:"singleton",methods:{listUsers:o(u(),c($e),{auth:"admin"}),createUser:o(dr,$e,{kind:"mutation",auth:"superAdmin"}),updateUser:o(cr,n({success:I(!0)}),{kind:"mutation",auth:"superAdmin"}),deleteUser:o(n({id:e()}),n({success:I(!0)}),{kind:"mutation",auth:"superAdmin"}),resetPassword:o(n({id:e(),newPassword:e().min(6)}),n({success:I(!0)}),{kind:"mutation",auth:"superAdmin"}),validateCredentials:o(n({username:e(),password:e()}),$e.extend({passwordHash:e()}).nullable(),{kind:"mutation"}),listApiKeys:o(u(),c(ht),{auth:"admin"}),createApiKey:o(lr,ur,{kind:"mutation",auth:"admin"}),revokeApiKey:o(n({id:e()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),validateApiKey:o(n({token:e()}),ht.nullable(),{kind:"mutation"}),createScopedToken:o(mr,pr,{kind:"mutation",auth:"admin"}),revokeScopedToken:o(n({id:e()}),n({success:I(!0)}),{kind:"mutation",auth:"admin"}),validateScopedToken:o(n({token:e()}),yt.nullable()),listScopedTokens:o(n({userId:e()}),c(yt),{auth:"admin"})}},En=n({streaming:h(),notifications:h(),objectDetection:h(),remoteAccess:h(),agentCluster:h(),smartHome:h(),recordings:h(),backup:h(),repl:h()}),gr=n({status:I("ok"),uptime:t()}),hr=n({name:e(),address:e(),family:e(),internal:h()}),ul={name:"system",scope:"system",mode:"singleton",methods:{info:o(u(),En),health:o(u(),gr),featureFlags:o(u(),En),networkAddresses:o(u(),c(hr).readonly()),getRetentionConfig:o(u(),S().nullable(),{auth:"admin"}),setRetentionConfig:o(b(e(),S()),za(),{kind:"mutation",auth:"superAdmin"}),forceRetentionCleanup:o(u(),u(),{kind:"mutation",auth:"superAdmin"})}},yr=n({nominalBitrateKbps:t(),observedBitrateKbps:t(),peakBitrateKbps:t(),packetLossPercent:t(),lastUpdated:t()}),vr=n({rttMs:t(),jitterMs:t(),estimatedBandwidthKbps:t(),lastUpdated:t()}),Mn=n({deviceId:t(),streams:b(e(),yr),client:vr.optional()}),ml={name:"network-quality",scope:"system",mode:"singleton",methods:{getDeviceStats:o(n({deviceId:t()}),Mn.nullable()),getAllStats:o(u(),c(Mn).readonly()),reportClientStats:o(n({deviceId:t(),rttMs:t().min(0).max(6e4),jitterMs:t().min(0).max(1e4),estimatedBandwidthKbps:t().min(0).max(1e6)}),u(),{kind:"mutation"})}},fr=n({title:e(),message:e(),severity:f(["info","warning","critical"]),duration:t().optional(),action:n({label:e(),url:e()}).optional()}),pl={name:"toast",scope:"system",mode:"singleton",methods:{onToast:o(u(),fr,{kind:"subscription"})}},Sr=n({addonId:e(),capabilities:c(e()).readonly(),status:e()}),br=n({pid:t(),name:e(),state:e(),cpuPercent:t(),memoryRss:t(),uptimeSeconds:t(),services:c(Sr).readonly(),groupId:e().optional()}),Ir=n({id:e(),name:e(),hostname:e(),platform:e(),arch:e(),cpuModel:e().nullable(),cpuCores:t(),memoryMB:t(),engines:c(e()).readonly(),isHub:h(),isOnline:h(),cpuPercent:t(),memoryPercent:t(),uptime:t(),lastSeen:e(),localIps:c(e()).readonly(),addons:c(n({id:e(),capabilities:c(e()).readonly(),status:e()})).readonly(),processes:c(br).readonly()}),kr=n({nodeId:e(),name:e(),version:e(),status:e(),synced:h()}),Cr=n({hubVersion:e(),nodes:c(kr)}),je=n({nodeId:e(),addonId:e()}),oe=n({success:h()}),Ar=n({success:h(),reason:e().optional()}),wr=n({restarted:c(e()).readonly(),failed:c(e()).readonly()}),Pr=n({nodeId:e(),name:e()}),gl={name:"nodes",scope:"system",mode:"singleton",methods:{topology:o(u(),c(Ir).readonly(),{auth:"admin"}),deployAddon:o(je,oe,{kind:"mutation",auth:"superAdmin"}),undeployAddon:o(je,oe,{kind:"mutation",auth:"superAdmin"}),restartAddon:o(je,oe,{kind:"mutation",auth:"superAdmin"}),restartProcess:o(n({nodeId:e(),processName:e()}),Ar,{kind:"mutation",auth:"superAdmin"}),restartNode:o(n({nodeId:e()}),wr,{kind:"mutation",auth:"superAdmin"}),shutdownNode:o(n({nodeId:e()}),oe,{kind:"mutation",auth:"superAdmin"}),renameNode:o(n({nodeId:e(),name:e().min(1).max(64)}),Pr,{kind:"mutation",auth:"superAdmin"}),clusterAddonStatus:o(u(),b(e(),Cr),{auth:"superAdmin"}),setProcessLogLevel:o(n({nodeId:e(),level:e()}),oe,{kind:"mutation",auth:"superAdmin"}),executeQuery:o(n({nodeId:e(),addonId:e(),queryName:e(),params:b(e(),S()).optional()}),S(),{kind:"mutation",auth:"superAdmin"})}},Tn=n({id:e(),addonId:e(),name:e(),enabled:h(),info:b(e(),S()).readonly(),createdAt:t(),updatedAt:t(),processState:e()}),Ze=n({id:e(),addonId:e(),name:e(),enabled:h(),info:b(e(),S()).readonly(),createdAt:t(),updatedAt:t()}),Dr=n({addonId:e(),name:e(),description:e(),iconUrl:e().nullable(),color:e(),instanceMode:e(),discoveryMode:e(),existingInstances:c(n({id:e(),name:e()})),canAdd:h()}),Er=n({success:h(),error:e().optional()}),Mr=n({addonId:e(),name:e(),enabled:h().optional(),info:b(e(),S()).optional(),settings:b(e(),S()).optional(),skipRestart:h().optional()}),Tr=n({id:e(),name:e().optional(),enabled:h().optional(),info:b(e(),S()).optional()}),qr=n({success:h(),deletedId:e()}),hl={name:"integrations",scope:"system",mode:"singleton",methods:{list:o(u(),c(Tn)),get:o(n({id:e()}),Tn),getByAddonId:o(n({addonId:e()}),Ze.nullable()),create:o(Mr,Ze,{kind:"mutation",auth:"admin"}),update:o(Tr,Ze,{kind:"mutation",auth:"superAdmin"}),delete:o(n({id:e()}),qr,{kind:"mutation",auth:"superAdmin"}),getSettings:o(n({id:e()}),b(e(),S()),{auth:"admin"}),setSettings:o(n({id:e(),settings:b(e(),S())}),n({success:h()}),{kind:"mutation",auth:"superAdmin"}),getAvailableTypes:o(u(),c(Dr),{auth:"admin"}),testConnection:o(n({addonId:e(),settings:b(e(),S())}),Er,{kind:"mutation",auth:"admin"})}},qn=f(["debug","info","warn","error"]),vt=f(["off","latest","beta"]),ia=f(["off","latest","beta","inherit"]),Rr=n({id:e(),name:e().optional(),version:e().optional(),description:e().optional(),icon:e().optional(),color:e().optional(),capabilities:c(S()).readonly().optional(),packageName:e(),packageVersion:e(),packageDisplayName:e().optional(),protected:h().optional(),removable:h().optional()}),Br=n({pid:t().optional(),mode:e(),state:e()}),Or=n({manifest:Rr,declaration:S().optional(),source:e(),installSource:e().optional(),process:Br.optional()}),xr=n({name:e(),version:e(),dir:e(),installSource:e().optional()}),zr=n({name:e(),currentVersion:e(),latestVersion:e(),category:f(["addon","core"]),requiresRestart:h()}),Lr=n({version:e(),publishedAt:e(),deprecated:e().optional(),distTags:c(e()).readonly()}),Nr=n({name:e(),version:e(),description:e(),keywords:c(e()).readonly(),publishedAt:e(),author:e(),installed:h(),installedVersion:e().optional()}),Fr=n({channel:vt,intervalSeconds:t()}),Ur=ia,_r=S(),Rn=S(),Vr=S(),Hr=n({timestamp:e(),level:e(),message:e(),scope:e().optional()}),Wr=S(),Gr=n({addonId:e().min(1),action:e().min(1),input:S()}),yl={name:"addons",scope:"system",mode:"singleton",methods:{list:o(u(),c(Or).readonly()),getLogs:o(n({addonId:e(),limit:t().min(1).max(500).default(100),level:qn.optional()}),c(Wr),{auth:"admin"}),listPackages:o(u(),c(xr).readonly()),installPackage:o(n({packageName:e(),version:e().optional()}),Rn,{kind:"mutation",auth:"superAdmin"}),installFromWorkspace:o(n({packageName:e()}),Rn,{kind:"mutation",auth:"admin"}),isWorkspaceAvailable:o(u(),h()),listWorkspacePackages:o(u(),c(S()).readonly()),uninstallPackage:o(n({packageName:e()}),S(),{kind:"mutation",auth:"superAdmin"}),reloadPackages:o(u(),Vr,{kind:"mutation",auth:"admin"}),searchAvailable:o(n({query:e().optional()}),c(Nr)),listUpdates:o(u(),c(zr).readonly(),{auth:"admin"}),updatePackage:o(n({name:e().min(1),version:e().optional()}),S(),{kind:"mutation",auth:"superAdmin"}),forceRefresh:o(u(),S(),{kind:"mutation",auth:"admin"}),restartServer:o(n({confirm:I(!0)}),S(),{kind:"mutation",auth:"superAdmin"}),getVersions:o(n({name:e()}),c(Lr).readonly()),restartAddon:o(n({addonId:e()}),_r,{kind:"mutation",auth:"superAdmin"}),getAutoUpdateSettings:o(u(),Fr,{auth:"admin"}),setAutoUpdateSettings:o(n({channel:vt,intervalSeconds:t().min(300).max(86400).optional()}),S(),{kind:"mutation",auth:"superAdmin"}),getAddonAutoUpdate:o(n({addonId:e()}),Ur,{auth:"admin"}),setAddonAutoUpdate:o(n({addonId:e(),channel:ia}),S(),{kind:"mutation",auth:"admin"}),applyAutoUpdateToAll:o(n({channel:vt}),n({success:I(!0)}),{kind:"mutation",auth:"superAdmin"}),custom:o(Gr,S(),{kind:"mutation"}),onAddonLogs:o(n({addonId:e(),level:qn.optional()}),Hr,{kind:"subscription"})}},Kr=["decoder","motion-detection","pipeline-executor","audio-analyzer","pipeline-analytics","notification-output"],vl=[...Kr,"pipeline-orchestrator","pipeline-runner"],oa=f(["super_admin","admin","viewer","agent"]),sa=q([I("*"),c(e())]),ra=b(e(),q([I("*"),c(e())])),fl=n({id:e(),username:e(),passwordHash:e(),role:oa,allowedProviders:sa,allowedDevices:ra,createdAt:t(),updatedAt:t()}),Sl=n({id:e(),label:e(),role:oa,allowedProviders:sa,allowedDevices:ra,tokenHash:e(),tokenPrefix:e(),createdAt:t(),lastUsedAt:t().optional()}),$r=n({type:f(["addon","route-prefix","capability"]),target:e()}),bl=n({id:e(),userId:e(),name:e(),tokenHash:e(),tokenPrefix:e(),scopes:c($r),expiresAt:t().optional(),lastUsedAt:t().optional(),createdAt:t()});class jr{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(r,i){this.keyToValue.set(r,i),this.valueToKey.set(i,r)}getByKey(r){return this.keyToValue.get(r)}getByValue(r){return this.valueToKey.get(r)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}}class da{constructor(r){this.generateIdentifier=r,this.kv=new jr}register(r,i){this.kv.getByValue(r)||(i||(i=this.generateIdentifier(r)),this.kv.set(i,r))}clear(){this.kv.clear()}getIdentifier(r){return this.kv.getByValue(r)}getValue(r){return this.kv.getByKey(r)}}class Zr extends da{constructor(){super(r=>r.name),this.classToAllowedProps=new Map}register(r,i){typeof i=="object"?(i.allowProps&&this.classToAllowedProps.set(r,i.allowProps),super.register(r,i.identifier)):super.register(r,i)}getAllowedProps(r){return this.classToAllowedProps.get(r)}}function Qr(s){if("values"in Object)return Object.values(s);const r=[];for(const i in s)s.hasOwnProperty(i)&&r.push(s[i]);return r}function Yr(s,r){const i=Qr(s);if("find"in i)return i.find(r);const l=i;for(let g=0;g<l.length;g++){const y=l[g];if(r(y))return y}}function J(s,r){Object.entries(s).forEach(([i,l])=>r(l,i))}function Pe(s,r){return s.indexOf(r)!==-1}function Bn(s,r){for(let i=0;i<s.length;i++){const l=s[i];if(r(l))return l}}class Xr{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return Yr(this.transfomers,i=>i.isApplicable(r))}findByName(r){return this.transfomers[r]}}const Jr=s=>Object.prototype.toString.call(s).slice(8,-1),ca=s=>typeof s>"u",ed=s=>s===null,ue=s=>typeof s!="object"||s===null||s===Object.prototype?!1:Object.getPrototypeOf(s)===null?!0:Object.getPrototypeOf(s)===Object.prototype,ft=s=>ue(s)&&Object.keys(s).length===0,V=s=>Array.isArray(s),td=s=>typeof s=="string",nd=s=>typeof s=="number"&&!isNaN(s),ad=s=>typeof s=="boolean",id=s=>s instanceof RegExp,me=s=>s instanceof Map,pe=s=>s instanceof Set,la=s=>Jr(s)==="Symbol",od=s=>s instanceof Date&&!isNaN(s.valueOf()),ua=s=>s instanceof Error,On=s=>typeof s=="number"&&isNaN(s),sd=s=>ad(s)||ed(s)||ca(s)||nd(s)||td(s)||la(s),rd=s=>typeof s=="bigint",dd=s=>s===1/0||s===-1/0,cd=s=>ArrayBuffer.isView(s)&&!(s instanceof DataView),ld=s=>s instanceof URL,St=s=>s.replace(/\\/g,"\\\\").replace(/\./g,"\\."),Qe=s=>s.map(String).map(St).join("."),de=(s,r)=>{const i=[];let l="";for(let y=0;y<s.length;y++){let v=s.charAt(y);if(!r&&v==="\\"){const k=s.charAt(y+1);if(k==="\\"){l+="\\",y++;continue}else if(k!==".")throw Error("invalid path")}if(v==="\\"&&s.charAt(y+1)==="."){l+=".",y++;continue}if(v==="."){i.push(l),l="";continue}l+=v}const g=l;return i.push(g),i};function x(s,r,i,l){return{isApplicable:s,annotation:r,transform:i,untransform:l}}const ma=[x(ca,"undefined",()=>null,()=>{}),x(rd,"bigint",s=>s.toString(),s=>typeof BigInt<"u"?BigInt(s):(console.error("Please add a BigInt polyfill."),s)),x(od,"Date",s=>s.toISOString(),s=>new Date(s)),x(ua,"Error",(s,r)=>{const i={name:s.name,message:s.message};return"cause"in s&&(i.cause=s.cause),r.allowedErrorProps.forEach(l=>{i[l]=s[l]}),i},(s,r)=>{const i=new Error(s.message,{cause:s.cause});return i.name=s.name,i.stack=s.stack,r.allowedErrorProps.forEach(l=>{i[l]=s[l]}),i}),x(id,"regexp",s=>""+s,s=>{const r=s.slice(1,s.lastIndexOf("/")),i=s.slice(s.lastIndexOf("/")+1);return new RegExp(r,i)}),x(pe,"set",s=>[...s.values()],s=>new Set(s)),x(me,"map",s=>[...s.entries()],s=>new Map(s)),x(s=>On(s)||dd(s),"number",s=>On(s)?"NaN":s>0?"Infinity":"-Infinity",Number),x(s=>s===0&&1/s===-1/0,"number",()=>"-0",Number),x(ld,"URL",s=>s.toString(),s=>new URL(s))];function Re(s,r,i,l){return{isApplicable:s,annotation:r,transform:i,untransform:l}}const pa=Re((s,r)=>la(s)?!!r.symbolRegistry.getIdentifier(s):!1,(s,r)=>["symbol",r.symbolRegistry.getIdentifier(s)],s=>s.description,(s,r,i)=>{const l=i.symbolRegistry.getValue(r[1]);if(!l)throw new Error("Trying to deserialize unknown symbol");return l}),ud=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((s,r)=>(s[r.name]=r,s),{}),ga=Re(cd,s=>["typed-array",s.constructor.name],s=>[...s],(s,r)=>{const i=ud[r[1]];if(!i)throw new Error("Trying to deserialize unknown typed array");return new i(s)});function ha(s,r){return s?.constructor?!!r.classRegistry.getIdentifier(s.constructor):!1}const ya=Re(ha,(s,r)=>["class",r.classRegistry.getIdentifier(s.constructor)],(s,r)=>{const i=r.classRegistry.getAllowedProps(s.constructor);if(!i)return{...s};const l={};return i.forEach(g=>{l[g]=s[g]}),l},(s,r,i)=>{const l=i.classRegistry.getValue(r[1]);if(!l)throw new Error(`Trying to deserialize unknown class '${r[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(l.prototype),s)}),va=Re((s,r)=>!!r.customTransformerRegistry.findApplicable(s),(s,r)=>["custom",r.customTransformerRegistry.findApplicable(s).name],(s,r)=>r.customTransformerRegistry.findApplicable(s).serialize(s),(s,r,i)=>{const l=i.customTransformerRegistry.findByName(r[1]);if(!l)throw new Error("Trying to deserialize unknown custom value");return l.deserialize(s)}),md=[ya,pa,va,ga],xn=(s,r)=>{const i=Bn(md,g=>g.isApplicable(s,r));if(i)return{value:i.transform(s,r),type:i.annotation(s,r)};const l=Bn(ma,g=>g.isApplicable(s,r));if(l)return{value:l.transform(s,r),type:l.annotation}},fa={};ma.forEach(s=>{fa[s.annotation]=s});const pd=(s,r,i)=>{if(V(r))switch(r[0]){case"symbol":return pa.untransform(s,r,i);case"class":return ya.untransform(s,r,i);case"custom":return va.untransform(s,r,i);case"typed-array":return ga.untransform(s,r,i);default:throw new Error("Unknown transformation: "+r)}else{const l=fa[r];if(!l)throw new Error("Unknown transformation: "+r);return l.untransform(s,i)}},Y=(s,r)=>{if(r>s.size)throw new Error("index out of bounds");const i=s.keys();for(;r>0;)i.next(),r--;return i.next().value};function Sa(s){if(Pe(s,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(Pe(s,"prototype"))throw new Error("prototype is not allowed as a property");if(Pe(s,"constructor"))throw new Error("constructor is not allowed as a property")}const gd=(s,r)=>{Sa(r);for(let i=0;i<r.length;i++){const l=r[i];if(pe(s))s=Y(s,+l);else if(me(s)){const g=+l,y=+r[++i]==0?"key":"value",v=Y(s,g);switch(y){case"key":s=v;break;case"value":s=s.get(v);break}}else s=s[l]}return s},bt=(s,r,i)=>{if(Sa(r),r.length===0)return i(s);let l=s;for(let y=0;y<r.length-1;y++){const v=r[y];if(V(l)){const m=+v;l=l[m]}else if(ue(l))l=l[v];else if(pe(l)){const m=+v;l=Y(l,m)}else if(me(l)){if(y===r.length-2)break;const p=+v,k=+r[++y]==0?"key":"value",w=Y(l,p);switch(k){case"key":l=w;break;case"value":l=l.get(w);break}}}const g=r[r.length-1];if(V(l)?l[+g]=i(l[+g]):ue(l)&&(l[g]=i(l[g])),pe(l)){const y=Y(l,+g),v=i(y);y!==v&&(l.delete(y),l.add(v))}if(me(l)){const y=+r[r.length-2],v=Y(l,y);switch(+g==0?"key":"value"){case"key":{const p=i(v);l.set(p,l.get(v)),p!==v&&l.delete(v);break}case"value":{l.set(v,i(l.get(v)));break}}}return s},ba=s=>s<1;function It(s,r,i,l=[]){if(!s)return;const g=ba(i);if(!V(s)){J(s,(m,p)=>It(m,r,i,[...l,...de(p,g)]));return}const[y,v]=s;v&&J(v,(m,p)=>{It(m,r,i,[...l,...de(p,g)])}),r(y,l)}function hd(s,r,i,l){return It(r,(g,y)=>{s=bt(s,y,v=>pd(v,g,l))},i),s}function yd(s,r,i){const l=ba(i);function g(y,v){const m=gd(s,de(v,l));y.map(p=>de(p,l)).forEach(p=>{s=bt(s,p,()=>m)})}if(V(r)){const[y,v]=r;y.forEach(m=>{s=bt(s,de(m,l),()=>s)}),v&&J(v,g)}else J(r,g);return s}const vd=(s,r)=>ue(s)||V(s)||me(s)||pe(s)||ua(s)||ha(s,r);function fd(s,r,i){const l=i.get(s);l?l.push(r):i.set(s,[r])}function Sd(s,r){const i={};let l;return s.forEach(g=>{if(g.length<=1)return;r||(g=g.map(m=>m.map(String)).sort((m,p)=>m.length-p.length));const[y,...v]=g;y.length===0?l=v.map(Qe):i[Qe(y)]=v.map(Qe)}),l?ft(i)?[l]:[l,i]:ft(i)?void 0:i}const Ia=(s,r,i,l,g=[],y=[],v=new Map)=>{const m=sd(s);if(!m){fd(s,g,r);const E=v.get(s);if(E)return l?{transformedValue:null}:E}if(!vd(s,i)){const E=xn(s,i),R=E?{transformedValue:E.value,annotations:[E.type]}:{transformedValue:s};return m||v.set(s,R),R}if(Pe(y,s))return{transformedValue:null};const p=xn(s,i),k=p?.value??s,w=V(k)?[]:{},A={};J(k,(E,R)=>{if(R==="__proto__"||R==="constructor"||R==="prototype")throw new Error(`Detected property ${R}. This is a prototype pollution risk, please remove it from your object.`);const F=Ia(E,r,i,l,[...g,R],[...y,s],v);w[R]=F.transformedValue,V(F.annotations)?A[St(R)]=F.annotations:ue(F.annotations)&&J(F.annotations,(he,ye)=>{A[St(R)+"."+ye]=he})});const D=ft(A)?{transformedValue:w,annotations:p?[p.type]:void 0}:{transformedValue:w,annotations:p?[p.type,A]:A};return m||v.set(s,D),D};function ka(s){return Object.prototype.toString.call(s).slice(8,-1)}function zn(s){return ka(s)==="Array"}function bd(s){if(ka(s)!=="Object")return!1;const r=Object.getPrototypeOf(s);return!!r&&r.constructor===Object&&r===Object.prototype}function Id(s,r,i,l,g){const y={}.propertyIsEnumerable.call(l,r)?"enumerable":"nonenumerable";y==="enumerable"&&(s[r]=i),g&&y==="nonenumerable"&&Object.defineProperty(s,r,{value:i,enumerable:!1,writable:!0,configurable:!0})}function kt(s,r={}){if(zn(s))return s.map(g=>kt(g,r));if(!bd(s))return s;const i=Object.getOwnPropertyNames(s),l=Object.getOwnPropertySymbols(s);return[...i,...l].reduce((g,y)=>{if(y==="__proto__"||zn(r.props)&&!r.props.includes(y))return g;const v=s[y],m=kt(v,r);return Id(g,y,m,s,r.nonenumerable),g},{})}class P{constructor({dedupe:r=!1}={}){this.classRegistry=new Zr,this.symbolRegistry=new da(i=>i.description??""),this.customTransformerRegistry=new Xr,this.allowedErrorProps=[],this.dedupe=r}serialize(r){const i=new Map,l=Ia(r,i,this,this.dedupe),g={json:l.transformedValue};l.annotations&&(g.meta={...g.meta,values:l.annotations});const y=Sd(i,this.dedupe);return y&&(g.meta={...g.meta,referentialEqualities:y}),g.meta&&(g.meta.v=1),g}deserialize(r,i){const{json:l,meta:g}=r;let y=i?.inPlace?l:kt(l);return g?.values&&(y=hd(y,g.values,g.v??0,this)),g?.referentialEqualities&&(y=yd(y,g.referentialEqualities,g.v??0)),y}stringify(r){return JSON.stringify(this.serialize(r))}parse(r){return this.deserialize(JSON.parse(r),{inPlace:!0})}registerClass(r,i){this.classRegistry.register(r,i)}registerSymbol(r,i){this.symbolRegistry.register(r,i)}registerCustom(r,i){this.customTransformerRegistry.register({name:i,...r})}allowErrorProps(...r){this.allowedErrorProps.push(...r)}}P.defaultInstance=new P;P.serialize=P.defaultInstance.serialize.bind(P.defaultInstance);P.deserialize=P.defaultInstance.deserialize.bind(P.defaultInstance);P.stringify=P.defaultInstance.stringify.bind(P.defaultInstance);P.parse=P.defaultInstance.parse.bind(P.defaultInstance);P.registerClass=P.defaultInstance.registerClass.bind(P.defaultInstance);P.registerSymbol=P.defaultInstance.registerSymbol.bind(P.defaultInstance);P.registerCustom=P.defaultInstance.registerCustom.bind(P.defaultInstance);P.allowErrorProps=P.defaultInstance.allowErrorProps.bind(P.defaultInstance);const kd=P.serialize,Cd=P.deserialize,Ad=P.stringify,wd=P.parse,Pd=P.registerClass,Dd=P.registerCustom,Ed=P.registerSymbol,Md=P.allowErrorProps,Il=Object.freeze(Object.defineProperty({__proto__:null,SuperJSON:P,allowErrorProps:Md,default:P,deserialize:Cd,parse:wd,registerClass:Pd,registerCustom:Dd,registerSymbol:Ed,serialize:kd,stringify:Ad},Symbol.toStringTag,{value:"Module"}));export{Cs as $,xd as A,_ as B,Ur as C,Fn as D,Or as E,Co as F,ko as G,qo as H,_e as I,yo as J,fo as K,vo as L,La as M,Sl as N,ht as O,Oo as P,xo as Q,Yt as R,P as S,ei as T,at as U,zo as V,qd as W,Lo as X,No as Y,Fo as Z,gn as _,C as a,gi as a$,vi as a0,ti as a1,ni as a2,$t as a3,Uo as a4,We as a5,Fr as a6,Dr as a7,$a as a8,ze as a9,go as aA,lr as aB,ur as aC,Mr as aD,mr as aE,pr as aF,dr as aG,Gr as aH,xc as aI,Ec as aJ,ja as aK,Xa as aL,Ja as aM,oi as aN,pn as aO,Gt as aP,_a as aQ,qr as aR,Di as aS,Zt as aT,He as aU,Mn as aV,N as aW,Oe as aX,nt as aY,pi as aZ,uc as a_,ee as aa,jt as ab,ui as ac,mi as ad,li as ae,ci as af,ri as ag,si as ah,Wd as ai,G as aj,Un as ak,wt as al,Ws as am,Gs as an,Dt as ao,Si as ap,Je as aq,Bo as ar,Ga as as,vr as at,kr as au,Cr as av,So as aw,bo as ax,Ho as ay,ho as az,pc as b,et as b$,Qt as b0,Vo as b1,hn as b2,ii as b3,wo as b4,Us as b5,Ss as b6,Eo as b7,En as b8,xe as b9,Ys as bA,Yo as bB,hr as bC,lt as bD,ts as bE,yn as bF,es as bG,ks as bH,Jd as bI,Ks as bJ,js as bK,$s as bL,pt as bM,wn as bN,Kr as bO,vl as bP,zr as bQ,Lr as bR,qe as bS,rt as bT,mn as bU,ot as bV,M as bW,Xt as bX,X as bY,$d as bZ,Vi as b_,Ce as ba,Ro as bb,Dc as bc,gr as bd,Fe as be,Ji as bf,xr as bg,Ze as bh,Tn as bi,Qs as bj,Pn as bk,cn as bl,Wn as bm,Hr as bn,Sn as bo,fi as bp,Is as bq,$i as br,De as bs,Et as bt,Hi as bu,Jt as bv,ji as bw,Vn as bx,ta as by,gt as bz,so as c,Xi as c$,ke as c0,to as c1,Yi as c2,st as c3,Ae as c4,Qi as c5,An as c6,Cn as c7,Fs as c8,rn as c9,fr as cA,$r as cB,Ir as cC,br as cD,Sr as cE,Ge as cF,Mt as cG,Ds as cH,Xo as cI,Tr as cJ,cr as cK,fl as cL,oa as cM,$e as cN,Na as cO,Mo as cP,$n as cQ,Ao as cR,Gn as cS,ln as cT,Ha as cU,_i as cV,eo as cW,re as cX,nn as cY,cc as cZ,se as c_,Do as ca,Wi as cb,tt as cc,Gi as cd,nc as ce,_n as cf,Ki as cg,bl as ch,yt as ci,Nr as cj,_s as ck,an as cl,dn as cm,Q as cn,on as co,Qn as cp,yi as cq,W as cr,Pt as cs,di as ct,yr as cu,ai as cv,Gd as cw,en as cx,Ns as cy,Er as cz,gc as d,ul as d$,sl as d0,zd as d1,kc as d2,Cc as d3,Pc as d4,hc as d5,wc as d6,Ac as d7,yl as d8,Ic as d9,Bd as dA,o as dB,Xc as dC,Xd as dD,dl as dE,Hc as dF,ml as dG,gl as dH,$c as dI,ol as dJ,Yc as dK,ec as dL,Bc as dM,ac as dN,cl as dO,Jc as dP,il as dQ,tl as dR,Zc as dS,Ld as dT,Tc as dU,Sc as dV,Gc as dW,Kc as dX,vc as dY,jd as dZ,Kd as d_,jc as da,yc as db,Lc as dc,zc as dd,Nc as de,Vc as df,fc as dg,al as dh,Hn as di,io as dj,T as dk,Mc as dl,Qc as dm,Uc as dn,Ka as dp,nl as dq,_c as dr,Fc as ds,j as dt,el as du,Ud as dv,Od as dw,hl as dx,rl as dy,bc as dz,Il as e,pl as e0,Wc as e1,ll as e2,qc as e3,Kn as e4,Rc as e5,lc as f,dc as g,Rd as h,ic as i,Fd as j,Yd as k,Nd as l,oc as m,Qd as n,Zd as o,sc as p,Hd as q,Vd as r,rc as s,_d as t,mc as u,Wa as v,Oc as w,Va as x,Zs as y,tc as z};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{g as xt}from"./__mfe_internal__admin_ui_host__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.mjs-C_6K4VBY.js";import{r as Ct,a as St}from"./index-DUjRaULz.js";function Ot(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const o in n)if(o!=="default"&&!(o in e)){const s=Object.getOwnPropertyDescriptor(n,o);s&&Object.defineProperty(e,o,s.get?s:{enumerable:!0,get:()=>n[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Et=Object.create,M=Object.defineProperty,Tt=Object.getOwnPropertyDescriptor,jt=Object.getOwnPropertyNames,kt=Object.getPrototypeOf,Rt=Object.prototype.hasOwnProperty,i=(e,t)=>M(e,"name",{value:t,configurable:!0}),Mt=(e,t)=>{for(var r in t)M(e,r,{get:t[r],enumerable:!0})},Pe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of jt(t))!Rt.call(e,o)&&o!==r&&M(e,o,{get:()=>t[o],enumerable:!(n=Tt(t,o))||n.enumerable});return e},At=(e,t,r)=>(r=e!=null?Et(kt(e)):{},Pe(M(r,"default",{value:e,enumerable:!0}),e)),It=e=>Pe(M({},"__esModule",{value:!0}),e),we={};Mt(we,{DEFAULT_ENABLED_CLASSES:()=>N,DetectionClass:()=>ct,ELIGIBLE_HA_DOMAINS:()=>vt,ELIGIBLE_HA_DOMAINS_SET:()=>Lr,ELIGIBLE_SCRYPTED_DEVICE_TYPES:()=>yt,ELIGIBLE_SCRYPTED_DEVICE_TYPES_SET:()=>Dr,FEATURE_MATRIX:()=>W,HA_DOMAIN_TYPE_MAP:()=>Ir,RAW_TO_CANONICAL:()=>V,SCRYPTED_TYPE_TO_CANONICAL:()=>qr,System:()=>st,TIMELINE_PRESET_ALL:()=>ft,TIMELINE_PRESET_CRITICAL:()=>he,TIMELINE_PRESET_IMPORTANT:()=>pt,animalClasses:()=>re,audioClasses:()=>le,audioLabelClasses:()=>ue,createSystem:()=>at,defaultDetectionClasses:()=>dt,detectionClassesDefaultMap:()=>fe,doorbellClasses:()=>de,faceClasses:()=>ie,getBackendRequiredFeatures:()=>_t,getCanonicalDeviceType:()=>mt,getClassesForTimelinePreset:()=>ht,getNextEvalInterval:()=>wt,getParentClass:()=>Mr,getParentDetectionClass:()=>Ar,getSourceFeatures:()=>gt,isAnimalClassname:()=>xr,isAudioClassname:()=>jr,isDoorbellClassname:()=>Er,isFaceClassname:()=>lt,isFeatureAvailable:()=>bt,isLabelDetection:()=>Rr,isMotionClassname:()=>Or,isPackageClassname:()=>Tr,isPersonClassname:()=>Cr,isPlateClassname:()=>ut,isSensorLabelClassname:()=>kr,isVehicleClassname:()=>Sr,licensePlateClasses:()=>se,motionClasses:()=>ae,packageClasses:()=>ce,personClasses:()=>ne,selectOptimalStream:()=>Pt,sensorLabelClasses:()=>pe,vehicleClasses:()=>oe});var xe=It(we),qt=Object.create,Ce=Object.defineProperty,Dt=Object.getOwnPropertyDescriptor,Se=Object.getOwnPropertyNames,Lt=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty,_=i((e,t)=>function(){return t||(0,e[Se(e)[0]])((t={exports:{}}).exports,t),t.exports},"__commonJS"),Bt=i((e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(var o=Se(t),s=0,c=o.length,a;s<c;s++)a=o[s],!Nt.call(e,a)&&a!==r&&Ce(e,a,{get:(l=>t[l]).bind(null,a),enumerable:!(n=Dt(t,a))||n.enumerable});return e},"__copyProps"),m=i((e,t,r)=>(r=e!=null?qt(Lt(e)):{},Bt(t||!e||!e.__esModule?Ce(r,"default",{value:e,enumerable:!0}):r,e)),"__toESM"),Oe=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(e,t){function r(n){"@babel/helpers - typeof";return t.exports=r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},t.exports.__esModule=!0,t.exports.default=t.exports,r(n)}i(r,"_typeof$2"),t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}}),Wt=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(e,t){var r=Oe().default;function n(o,s){if(r(o)!="object"||!o)return o;var c=o[Symbol.toPrimitive];if(c!==void 0){var a=c.call(o,s||"default");if(r(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(o)}i(n,"toPrimitive$1"),t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}}),Ft=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(e,t){var r=Oe().default,n=Wt();function o(s){var c=n(s,"string");return r(c)=="symbol"?c:c+""}i(o,"toPropertyKey$1"),t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}}),C=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(e,t){var r=Ft();function n(o,s,c){return(s=r(s))in o?Object.defineProperty(o,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[s]=c,o}i(n,"_defineProperty"),t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}}),v=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(e,t){var r=C();function n(s,c){var a=Object.keys(s);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(s);c&&(l=l.filter(function(u){return Object.getOwnPropertyDescriptor(s,u).enumerable})),a.push.apply(a,l)}return a}i(n,"ownKeys");function o(s){for(var c=1;c<arguments.length;c++){var a=arguments[c]!=null?arguments[c]:{};c%2?n(Object(a),!0).forEach(function(l){r(s,l,a[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach(function(l){Object.defineProperty(s,l,Object.getOwnPropertyDescriptor(a,l))})}return s}i(o,"_objectSpread2"),t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}});function S(e){const t={subscribe(r){let n=null,o=!1,s=!1,c=!1;function a(){if(n===null){c=!0;return}s||(s=!0,typeof n=="function"?n():n&&n.unsubscribe())}return i(a,"unsubscribe"),n=e({next(l){var u;o||(u=r.next)===null||u===void 0||u.call(r,l)},error(l){var u;o||(o=!0,(u=r.error)===null||u===void 0||u.call(r,l),a())},complete(){var l;o||(o=!0,(l=r.complete)===null||l===void 0||l.call(r),a())}}),c&&a(),{unsubscribe:a}},pipe(...r){return r.reduce(Ee,t)}};return t}i(S,"observable");function Ee(e,t){return t(e)}i(Ee,"pipeReducer");function Te(e){const t=new AbortController;return new Promise((n,o)=>{let s=!1;function c(){s||(s=!0,a.unsubscribe())}i(c,"onDone"),t.signal.addEventListener("abort",()=>{o(t.signal.reason)});const a=e.subscribe({next(l){s=!0,n(l),c()},error(l){o(l)},complete(){t.abort(),c()}})})}i(Te,"observableToPromise");function je(e){return t=>{let r=0,n=null;const o=[];function s(){n||(n=t.subscribe({next(a){for(const u of o){var l;(l=u.next)===null||l===void 0||l.call(u,a)}},error(a){for(const u of o){var l;(l=u.error)===null||l===void 0||l.call(u,a)}},complete(){for(const l of o){var a;(a=l.complete)===null||a===void 0||a.call(l)}}}))}i(s,"startIfNeeded");function c(){if(r===0&&n){const a=n;n=null,a.unsubscribe()}}return i(c,"resetIfNeeded"),S(a=>(r++,o.push(a),s(),{unsubscribe(){r--,c();const l=o.findIndex(u=>u===a);l>-1&&o.splice(l,1)}}))}}i(je,"share");function K(e){let t=e;const r=[],n=i(c=>{t!==void 0&&c.next(t),r.push(c)},"addObserver"),o=i(c=>{r.splice(r.indexOf(c),1)},"removeObserver"),s=S(c=>(n(c),()=>{o(c)}));return s.next=c=>{if(t!==c){t=c;for(const a of r)a.next(c)}},s.get=()=>t,s}i(K,"behaviorSubject");function ke(e){return S(t=>{function r(o=0,s=e.op){const c=e.links[o];if(!c)throw new Error("No more links to execute - did you forget to add an ending link?");return c({op:s,next(l){return r(o+1,l)}})}return i(r,"execute"),r().subscribe(t)})}i(ke,"createChain");function k(e){return!!e&&!Array.isArray(e)&&typeof e=="object"}i(k,"isObject");function Re(){return Object.create(null)}i(Re,"emptyObject");var me=i(e=>e(),"run");function G(e=0){return new Promise(t=>setTimeout(t,e))}i(G,"sleep");var $t=Object.create,Me=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Ae=Object.getOwnPropertyNames,Gt=Object.getPrototypeOf,Ht=Object.prototype.hasOwnProperty,A=i((e,t)=>function(){return t||(0,e[Ae(e)[0]])((t={exports:{}}).exports,t),t.exports},"__commonJS"),Ut=i((e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(var o=Ae(t),s=0,c=o.length,a;s<c;s++)a=o[s],!Ht.call(e,a)&&a!==r&&Me(e,a,{get:(l=>t[l]).bind(null,a),enumerable:!(n=zt(t,a))||n.enumerable});return e},"__copyProps"),B=i((e,t,r)=>(r=e!=null?$t(Gt(e)):{},Ut(t||!e||!e.__esModule?Me(r,"default",{value:e,enumerable:!0}):r,e)),"__toESM"),Ie=i(()=>{},"noop"),ye=i(e=>{Object.freeze&&Object.freeze(e)},"freezeIfAvailable");function J(e,t,r){var n;const o=t.join(".");return(n=r[o])!==null&&n!==void 0||(r[o]=new Proxy(Ie,{get(s,c){if(!(typeof c!="string"||c==="then"))return J(e,[...t,c],r)},apply(s,c,a){const l=t[t.length-1];if(l==="valueOf"||l==="toString"||l==="toJSON")return`tRPC.proxy(${t.slice(0,-1).join(".")})`;let u={args:a,path:t};return l==="call"?u={args:a.length>=2?[a[1]]:[],path:t.slice(0,-1)}:l==="apply"&&(u={args:a.length>=2?a[1]:[],path:t.slice(0,-1)}),ye(u.args),ye(u.path),e(u)}})),r[o]}i(J,"createInnerProxy");var Yt=i(e=>J(e,[],Re()),"createRecursiveProxy"),Vt=i(e=>new Proxy(Ie,{get(t,r){if(r!=="then")return e(r)}}),"createFlatProxy"),qe=A({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(e,t){function r(n){"@babel/helpers - typeof";return t.exports=r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},t.exports.__esModule=!0,t.exports.default=t.exports,r(n)}i(r,"_typeof$2"),t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}}),Kt=A({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(e,t){var r=qe().default;function n(o,s){if(r(o)!="object"||!o)return o;var c=o[Symbol.toPrimitive];if(c!==void 0){var a=c.call(o,s||"default");if(r(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(o)}i(n,"toPrimitive$1"),t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}}),Jt=A({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(e,t){var r=qe().default,n=Kt();function o(s){var c=n(s,"string");return r(c)=="symbol"?c:c+""}i(o,"toPropertyKey$1"),t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}}),De=A({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(e,t){var r=Jt();function n(o,s,c){return(s=r(s))in o?Object.defineProperty(o,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[s]=c,o}i(n,"_defineProperty"),t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}}),X=A({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(e,t){var r=De();function n(s,c){var a=Object.keys(s);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(s);c&&(l=l.filter(function(u){return Object.getOwnPropertyDescriptor(s,u).enumerable})),a.push.apply(a,l)}return a}i(n,"ownKeys");function o(s){for(var c=1;c<arguments.length;c++){var a=arguments[c]!=null?arguments[c]:{};c%2?n(Object(a),!0).forEach(function(l){r(s,l,a[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach(function(l){Object.defineProperty(s,l,Object.getOwnPropertyDescriptor(a,l))})}return s}i(o,"_objectSpread2"),t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}});B(X(),1);B(De(),1);var I=B(X(),1);function Le(e,t){if("error"in e){const n=t.deserialize(e.error);return{ok:!1,error:(0,I.default)((0,I.default)({},e),{},{error:n})}}return{ok:!0,result:(0,I.default)((0,I.default)({},e.result),(!e.result.type||e.result.type==="data")&&{type:"data",data:t.deserialize(e.result.data)})}}i(Le,"transformResultInner");var F=class extends Error{static{i(this,"TransformResultError")}constructor(){super("Unable to transform response from server")}};function Z(e,t){let r;try{r=Le(e,t)}catch{throw new F}if(!r.ok&&(!k(r.error.error)||typeof r.error.error.code!="number"))throw new F;if(r.ok&&!k(r.result))throw new F;return r}i(Z,"transformResult");B(X(),1);var q=m(C(),1),O=m(v(),1);function Ne(e){return e instanceof P}i(Ne,"isTRPCClientError");function Be(e){return k(e)&&k(e.error)&&typeof e.error.code=="number"&&typeof e.error.message=="string"}i(Be,"isTRPCErrorResponse");function We(e,t){return typeof e=="string"?e:k(e)&&typeof e.message=="string"?e.message:t}i(We,"getMessageFromUnknownError");var P=class D extends Error{static{i(this,"TRPCClientError")}constructor(t,r){var n,o;const s=r?.cause;super(t,{cause:s}),(0,q.default)(this,"cause",void 0),(0,q.default)(this,"shape",void 0),(0,q.default)(this,"data",void 0),(0,q.default)(this,"meta",void 0),this.meta=r?.meta,this.cause=s,this.shape=r==null||(n=r.result)===null||n===void 0?void 0:n.error,this.data=r==null||(o=r.result)===null||o===void 0?void 0:o.error.data,this.name="TRPCClientError",Object.setPrototypeOf(this,D.prototype)}static from(t,r={}){const n=t;return Ne(n)?(r.meta&&(n.meta=(0,O.default)((0,O.default)({},n.meta),r.meta)),n):Be(n)?new D(n.error.message,(0,O.default)((0,O.default)({},r),{},{result:n,cause:r.cause})):new D(We(n,"Unknown error"),(0,O.default)((0,O.default)({},r),{},{cause:n}))}};function Q(e){const t=e;return t?"input"in t?t:{input:t,output:t}:{input:{serialize:i(r=>r,"serialize"),deserialize:i(r=>r,"deserialize")},output:{serialize:i(r=>r,"serialize"),deserialize:i(r=>r,"deserialize")}}}i(Q,"getTransformer");var ve=i(e=>typeof e=="function","isFunction");function Fe(e){if(e)return e;if(typeof window<"u"&&ve(window.fetch))return window.fetch;if(typeof globalThis<"u"&&ve(globalThis.fetch))return globalThis.fetch;throw new Error("No fetch implementation found")}i(Fe,"getFetch");var R=m(v(),1);function $e(e){return{url:e.url.toString(),fetch:e.fetch,transformer:Q(e.transformer),methodOverride:e.methodOverride}}i($e,"resolveHTTPLinkOptions");function ze(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[r]=n}return t}i(ze,"arrayToDict");var Xt={query:"GET",mutation:"POST",subscription:"PATCH"};function ee(e){return"input"in e?e.transformer.input.serialize(e.input):ze(e.inputs.map(t=>e.transformer.input.serialize(t)))}i(ee,"getInput");var H=i(e=>{const t=e.url.split("?");let n=t[0].replace(/\/$/,"")+"/"+e.path;const o=[];if(t[1]&&o.push(t[1]),"inputs"in e&&o.push("batch=1"),e.type==="query"||e.type==="subscription"){const s=ee(e);s!==void 0&&e.methodOverride!=="POST"&&o.push(`input=${encodeURIComponent(JSON.stringify(s))}`)}return o.length&&(n+="?"+o.join("&")),n},"getUrl"),Zt=i(e=>{if(e.type==="query"&&e.methodOverride!=="POST")return;const t=ee(e);return t!==void 0?JSON.stringify(t):void 0},"getBody"),Qt=i(e=>L((0,R.default)((0,R.default)({},e),{},{contentTypeHeader:"application/json",getUrl:H,getBody:Zt})),"jsonHttpRequester"),er=class extends Error{static{i(this,"AbortError")}constructor(){const e="AbortError";super(e),this.name=e,this.message=e}},tr=i(e=>{var t;if(e?.aborted)throw(t=e.throwIfAborted)===null||t===void 0||t.call(e),typeof DOMException<"u"?new DOMException("AbortError","AbortError"):new er},"throwIfAborted");async function Ge(e){var t,r;tr(e.signal);const n=e.getUrl(e),o=e.getBody(e),s=(t=e.methodOverride)!==null&&t!==void 0?t:Xt[e.type],c=await(async()=>{const l=await e.headers();return Symbol.iterator in l?Object.fromEntries(l):l})(),a=(0,R.default)((0,R.default)((0,R.default)({},e.contentTypeHeader&&s!=="GET"?{"content-type":e.contentTypeHeader}:{}),e.trpcAcceptHeader?{[(r=e.trpcAcceptHeaderKey)!==null&&r!==void 0?r:"trpc-accept"]:e.trpcAcceptHeader}:void 0),c);return Fe(e.fetch)(n,{method:s,signal:e.signal,body:o,headers:a})}i(Ge,"fetchHTTPResponse");async function L(e){const t={},r=await Ge(e);t.response=r;const n=await r.json();return t.responseJSON=n,{json:n,meta:t}}i(L,"httpRequest");function He(e){return e instanceof Uint8Array||e instanceof Blob}i(He,"isOctetType");function Ue(e){return e instanceof FormData}i(Ue,"isFormData");var j=m(v(),1),rr=i(e=>{if("input"in e){const{input:t}=e;if(Ue(t)){if(e.type!=="mutation"&&e.methodOverride!=="POST")throw new Error("FormData is only supported for mutations");return L((0,j.default)((0,j.default)({},e),{},{contentTypeHeader:void 0,getUrl:H,getBody:i(()=>t,"getBody")}))}if(He(t)){if(e.type!=="mutation"&&e.methodOverride!=="POST")throw new Error("Octet type input is only supported for mutations");return L((0,j.default)((0,j.default)({},e),{},{contentTypeHeader:"application/octet-stream",getUrl:H,getBody:i(()=>t,"getBody")}))}}return Qt(e)},"universalRequester");function Ye(e){const t=$e(e);return()=>r=>{const{op:n}=r;return S(o=>{const{path:s,input:c,type:a}=n;if(a==="subscription")throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");const l=rr((0,j.default)((0,j.default)({},t),{},{type:a,path:s,input:c,signal:n.signal,headers(){return e.headers?typeof e.headers=="function"?e.headers({op:n}):e.headers:{}}}));let u;return l.then(d=>{u=d.meta;const p=Z(d.json,t.transformer.output);if(!p.ok){o.error(P.from(p.error,{meta:u}));return}o.next({context:d.meta,result:p.result}),o.complete()}).catch(d=>{o.error(P.from(d,{meta:u}))}),()=>{}})}}i(Ye,"httpLink");m(v(),1);m(v(),1);var nr={encode:i(e=>JSON.stringify(e),"encode"),decode:i(e=>{if(typeof e!="string")throw new Error("jsonEncoder received binary data. JSON uses text frames. Use a binary encoder for binary data.");return JSON.parse(e)},"decode")},or={enabled:!1,closeMs:0},ir={enabled:!1,pongTimeoutMs:1e3,intervalMs:5e3},sr=i(e=>e===0?0:Math.min(1e3*2**e,3e4),"exponentialBackoff"),Ve=i((e,...t)=>typeof e=="function"?e(...t):e,"resultOf"),ar=m(C(),1),E=class Ke extends Error{static{i(this,"TRPCWebSocketClosedError")}constructor(t){super(t.message,{cause:t.cause}),this.name="TRPCWebSocketClosedError",Object.setPrototypeOf(this,Ke.prototype)}},cr=class{static{i(this,"ResettableTimeout")}constructor(e,t){this.onTimeout=e,this.timeoutMs=t,(0,ar.default)(this,"timeout",void 0)}reset(){this.timeout&&(clearTimeout(this.timeout),this.timeout=setTimeout(this.onTimeout,this.timeoutMs))}start(){clearTimeout(this.timeout),this.timeout=setTimeout(this.onTimeout,this.timeoutMs)}stop(){clearTimeout(this.timeout),this.timeout=void 0}};function te(){let e,t;return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}i(te,"withResolvers");async function Je(e){const t=await Ve(e.url);if(!e.connectionParams)return t;const n=`${t.includes("?")?"&":"?"}connectionParams=1`;return t+n}i(Je,"prepareUrl");async function Xe(e,t){const r={method:"connectionParams",data:await Ve(e)};return t.encode(r)}i(Xe,"buildConnectionMessage");var be=m(C(),1),lr=class{static{i(this,"RequestManager")}constructor(){(0,be.default)(this,"outgoingRequests",new Array),(0,be.default)(this,"pendingRequests",{})}register(e,t){const{promise:r,resolve:n}=te();return this.outgoingRequests.push({id:String(e.id),message:e,end:r,callbacks:{next:t.next,complete:i(()=>{t.complete(),n()},"complete"),error:i(o=>{t.error(o),n()},"error")}}),()=>{this.delete(e.id),t.complete(),n()}}delete(e){e!==null&&(this.outgoingRequests=this.outgoingRequests.filter(({id:t})=>t!==String(e)),delete this.pendingRequests[String(e)])}flush(){const e=this.outgoingRequests;this.outgoingRequests=[];for(const t of e)this.pendingRequests[t.id]=t;return e}getPendingRequests(){return Object.values(this.pendingRequests)}getPendingRequest(e){return e===null?null:this.pendingRequests[String(e)]}getOutgoingRequests(){return this.outgoingRequests}getRequests(){return[...this.getOutgoingRequests().map(e=>({state:"outgoing",message:e.message,end:e.end,callbacks:e.callbacks})),...this.getPendingRequests().map(e=>({state:"pending",message:e.message,end:e.end,callbacks:e.callbacks}))]}hasPendingRequests(){return this.getPendingRequests().length>0}hasPendingSubscriptions(){return this.getPendingRequests().some(e=>e.message.method==="subscription")}hasOutgoingRequests(){return this.outgoingRequests.length>0}},x=m(C(),1);function Ze(e){const{promise:t,resolve:r,reject:n}=te();return e.addEventListener("open",()=>{e.removeEventListener("error",n),r()}),e.addEventListener("error",n),t}i(Ze,"asyncWsOpen");function Qe(e,{intervalMs:t,pongTimeoutMs:r}){let n,o;function s(){n=setTimeout(()=>{e.send("PING"),o=setTimeout(()=>{e.close()},r)},t)}i(s,"start");function c(){clearTimeout(n),s()}i(c,"reset");function a(){clearTimeout(o),c()}i(a,"pong"),e.addEventListener("open",s),e.addEventListener("message",({data:l})=>{clearTimeout(n),s(),l==="PONG"&&a()}),e.addEventListener("close",()=>{clearTimeout(n),clearTimeout(o)})}i(Qe,"setupPingInterval");var et=class U{static{i(this,"WsConnection")}constructor(t){var r;if((0,x.default)(this,"id",++U.connectCount),(0,x.default)(this,"WebSocketPonyfill",void 0),(0,x.default)(this,"urlOptions",void 0),(0,x.default)(this,"keepAliveOpts",void 0),(0,x.default)(this,"encoder",void 0),(0,x.default)(this,"wsObservable",K(null)),(0,x.default)(this,"openPromise",null),this.WebSocketPonyfill=(r=t.WebSocketPonyfill)!==null&&r!==void 0?r:WebSocket,!this.WebSocketPonyfill)throw new Error("No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill");this.urlOptions=t.urlOptions,this.keepAliveOpts=t.keepAlive,this.encoder=t.encoder}get ws(){return this.wsObservable.get()}set ws(t){this.wsObservable.next(t)}isOpen(){return!!this.ws&&this.ws.readyState===this.WebSocketPonyfill.OPEN&&!this.openPromise}isClosed(){return!!this.ws&&(this.ws.readyState===this.WebSocketPonyfill.CLOSING||this.ws.readyState===this.WebSocketPonyfill.CLOSED)}async open(){var t=this;if(t.openPromise)return t.openPromise;t.id=++U.connectCount;const r=Je(t.urlOptions).then(n=>new t.WebSocketPonyfill(n));t.openPromise=r.then(async n=>{t.ws=n,n.binaryType="arraybuffer",n.addEventListener("message",function({data:o}){o==="PING"&&this.send("PONG")}),t.keepAliveOpts.enabled&&Qe(n,t.keepAliveOpts),n.addEventListener("close",()=>{t.ws===n&&(t.ws=null)}),await Ze(n),t.urlOptions.connectionParams&&n.send(await Xe(t.urlOptions.connectionParams,t.encoder))});try{await t.openPromise}finally{t.openPromise=null}}async close(){var t=this;try{await t.openPromise}finally{var r;(r=t.ws)===null||r===void 0||r.close()}}};(0,x.default)(et,"connectCount",0);function tt(e){return e.isOpen()?{id:e.id,state:"open",ws:e.ws}:e.isClosed()?{id:e.id,state:"closed",ws:e.ws}:e.ws?{id:e.id,state:"connecting",ws:e.ws}:null}i(tt,"backwardCompatibility");var g=m(C(),1),T=m(v(),1),ur=class{static{i(this,"WsClient")}constructor(e){var t,r;(0,g.default)(this,"connectionState",void 0),(0,g.default)(this,"allowReconnect",!1),(0,g.default)(this,"requestManager",new lr),(0,g.default)(this,"activeConnection",void 0),(0,g.default)(this,"reconnectRetryDelay",void 0),(0,g.default)(this,"inactivityTimeout",void 0),(0,g.default)(this,"callbacks",void 0),(0,g.default)(this,"lazyMode",void 0),(0,g.default)(this,"encoder",void 0),(0,g.default)(this,"reconnecting",null),this.encoder=(t=e.experimental_encoder)!==null&&t!==void 0?t:nr,this.callbacks={onOpen:e.onOpen,onClose:e.onClose,onError:e.onError};const n=(0,T.default)((0,T.default)({},or),e.lazy);this.inactivityTimeout=new cr(()=>{if(this.requestManager.hasOutgoingRequests()||this.requestManager.hasPendingRequests()){this.inactivityTimeout.reset();return}this.close().catch(()=>null)},n.closeMs),this.activeConnection=new et({WebSocketPonyfill:e.WebSocket,urlOptions:e,keepAlive:(0,T.default)((0,T.default)({},ir),e.keepAlive),encoder:this.encoder}),this.activeConnection.wsObservable.subscribe({next:i(o=>{o&&this.setupWebSocketListeners(o)},"next")}),this.reconnectRetryDelay=(r=e.retryDelayMs)!==null&&r!==void 0?r:sr,this.lazyMode=n.enabled,this.connectionState=K({type:"state",state:n.enabled?"idle":"connecting",error:null}),this.lazyMode||this.open().catch(()=>null)}async open(){var e=this;e.allowReconnect=!0,e.connectionState.get().state==="idle"&&e.connectionState.next({type:"state",state:"connecting",error:null});try{await e.activeConnection.open()}catch(t){return e.reconnect(new E({message:"Initialization error",cause:t})),e.reconnecting}}async close(){var e=this;e.allowReconnect=!1,e.inactivityTimeout.stop();const t=[];for(const r of e.requestManager.getRequests())r.message.method==="subscription"?r.callbacks.complete():r.state==="outgoing"?r.callbacks.error(P.from(new E({message:"Closed before connection was established"}))):t.push(r.end);await Promise.all(t).catch(()=>null),await e.activeConnection.close().catch(()=>null),e.connectionState.next({type:"state",state:"idle",error:null})}request({op:{id:e,type:t,path:r,input:n,signal:o},transformer:s,lastEventId:c}){return S(a=>{const l=this.batchSend({id:e,method:t,params:{input:s.input.serialize(n),path:r,lastEventId:c}},(0,T.default)((0,T.default)({},a),{},{next(u){const d=Z(u,s.output);if(!d.ok){a.error(P.from(d.error));return}a.next({result:d.result})}}));return()=>{l(),t==="subscription"&&this.activeConnection.isOpen()&&this.send({id:e,method:"subscription.stop"}),o?.removeEventListener("abort",l)}})}get connection(){return tt(this.activeConnection)}reconnect(e){var t=this;if(this.connectionState.next({type:"state",state:"connecting",error:P.from(e)}),this.reconnecting)return;const r=i(async n=>{try{await G(t.reconnectRetryDelay(n)),t.allowReconnect&&(await t.activeConnection.close(),await t.activeConnection.open(),t.requestManager.hasPendingRequests()&&t.send(t.requestManager.getPendingRequests().map(({message:o})=>o))),t.reconnecting=null}catch{await r(n+1)}},"tryReconnect");this.reconnecting=r(0)}setupWebSocketListeners(e){var t=this;const r=i(n=>{const o=this.requestManager.getPendingRequests();for(const{message:s,callbacks:c}of o)s.method!=="subscription"&&(c.error(P.from(n??new E({message:"WebSocket closed",cause:n}))),this.requestManager.delete(s.id))},"handleCloseOrError");e.addEventListener("open",()=>{me(async()=>{var n,o;t.lazyMode&&t.inactivityTimeout.start(),(n=(o=t.callbacks).onOpen)===null||n===void 0||n.call(o),t.connectionState.next({type:"state",state:"pending",error:null})}).catch(n=>{e.close(3e3),r(n)})}),e.addEventListener("message",({data:n})=>{if(this.inactivityTimeout.reset(),["PING","PONG"].includes(n))return;const o=this.encoder.decode(n);if("method"in o){this.handleIncomingRequest(o);return}this.handleResponseMessage(o)}),e.addEventListener("close",n=>{var o,s;r(n),(o=(s=this.callbacks).onClose)===null||o===void 0||o.call(s,n),(!this.lazyMode||this.requestManager.hasPendingSubscriptions())&&this.reconnect(new E({message:"WebSocket closed",cause:n}))}),e.addEventListener("error",n=>{var o,s;r(n),(o=(s=this.callbacks).onError)===null||o===void 0||o.call(s,n),this.reconnect(new E({message:"WebSocket closed",cause:n}))})}handleResponseMessage(e){const t=this.requestManager.getPendingRequest(e.id);if(!t)return;t.callbacks.next(e);let r=!0;"result"in e&&t.message.method==="subscription"&&(e.result.type==="data"&&(t.message.params.lastEventId=e.result.id),e.result.type!=="stopped"&&(r=!1)),r&&(t.callbacks.complete(),this.requestManager.delete(e.id))}handleIncomingRequest(e){e.method==="reconnect"&&this.reconnect(new E({message:"Server requested reconnect"}))}send(e){if(!this.activeConnection.isOpen())throw new Error("Active connection is not open");const t=e instanceof Array?e:[e];this.activeConnection.ws.send(this.encoder.encode(t.length===1?t[0]:t))}batchSend(e,t){var r=this;return this.inactivityTimeout.reset(),me(async()=>{r.activeConnection.isOpen()||await r.open(),await G(0),r.requestManager.hasOutgoingRequests()&&r.send(r.requestManager.flush().map(({message:n})=>n))}).catch(n=>{this.requestManager.delete(e.id),t.error(P.from(n))}),this.requestManager.register(e,t)}};function rt(e){return new ur(e)}i(rt,"createWSClient");function nt(e){const{client:t}=e,r=Q(e.transformer);return()=>({op:n})=>S(o=>{const s=n.type==="subscription"?t.connectionState.subscribe({next(a){o.next({result:a,context:n.context})}}):null,c=t.request({op:n,transformer:r}).subscribe(o);return()=>{c.unsubscribe(),s?.unsubscribe()}})}i(nt,"wsLink");var $=m(C(),1),ge=m(v(),1),dr=class{static{i(this,"TRPCUntypedClient")}constructor(e){(0,$.default)(this,"links",void 0),(0,$.default)(this,"runtime",void 0),(0,$.default)(this,"requestId",void 0),this.requestId=0,this.runtime={},this.links=e.links.map(t=>t(this.runtime))}$request(e){var t;return ke({links:this.links,op:(0,ge.default)((0,ge.default)({},e),{},{context:(t=e.context)!==null&&t!==void 0?t:{},id:++this.requestId})}).pipe(je())}async requestAsPromise(e){var t=this;try{const r=t.$request(e);return(await Te(r)).result.data}catch(r){throw P.from(r)}}query(e,t,r){return this.requestAsPromise({type:"query",path:e,input:t,context:r?.context,signal:r?.signal})}mutation(e,t,r){return this.requestAsPromise({type:"mutation",path:e,input:t,context:r?.context,signal:r?.signal})}subscription(e,t,r){return this.$request({type:"subscription",path:e,input:t,context:r.context,signal:r.signal}).subscribe({next(o){switch(o.result.type){case"state":{var s;(s=r.onConnectionStateChange)===null||s===void 0||s.call(r,o.result);break}case"started":{var c;(c=r.onStarted)===null||c===void 0||c.call(r,{context:o.context});break}case"stopped":{var a;(a=r.onStopped)===null||a===void 0||a.call(r);break}case"data":case void 0:{var l;(l=r.onData)===null||l===void 0||l.call(r,o.result.data);break}}},error(o){var s;(s=r.onError)===null||s===void 0||s.call(r,o)},complete(){var o;(o=r.onComplete)===null||o===void 0||o.call(r)}})}},pr=Symbol.for("trpc_untypedClient"),fr={query:"query",mutate:"mutation",subscribe:"subscription"},hr=i(e=>fr[e],"clientCallTypeToProcedureType");function ot(e){const t=Yt(({path:r,args:n})=>{const o=[...r],s=hr(o.pop()),c=o.join(".");return e[s](c,...n)});return Vt(r=>r===pr?e:t[r])}i(ot,"createTRPCClientProxy");function Y(e){const t=new dr(e);return ot(t)}i(Y,"createTRPCClient");m(v(),1);m(v(),1);var mr=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(e,t){function r(o){var s,c,a,l=2;for(typeof Symbol<"u"&&(c=Symbol.asyncIterator,a=Symbol.iterator);l--;){if(c&&(s=o[c])!=null)return s.call(o);if(a&&(s=o[a])!=null)return new n(s.call(o));c="@@asyncIterator",a="@@iterator"}throw new TypeError("Object is not async iterable")}i(r,"_asyncIterator$1");function n(o){function s(c){if(Object(c)!==c)return Promise.reject(new TypeError(c+" is not an object."));var a=c.done;return Promise.resolve(c.value).then(function(l){return{value:l,done:a}})}return i(s,"AsyncFromSyncIteratorContinuation"),n=i(function(a){this.s=a,this.n=a.next},"AsyncFromSyncIterator$1"),n.prototype={s:null,n:null,next:i(function(){return s(this.n.apply(this.s,arguments))},"next"),return:i(function(a){var l=this.s.return;return l===void 0?Promise.resolve({value:a,done:!0}):s(l.apply(this.s,arguments))},"_return"),throw:i(function(a){var l=this.s.return;return l===void 0?Promise.reject(a):s(l.apply(this.s,arguments))},"_throw")},new n(o)}i(n,"AsyncFromSyncIterator"),t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}});m(mr(),1);m(v(),1);var yr=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(e,t){function r(){var n=typeof SuppressedError=="function"?SuppressedError:function(a,l){var u=Error();return u.name="SuppressedError",u.error=a,u.suppressed=l,u},o={},s=[];function c(a,l){if(l!=null){if(Object(l)!==l)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(a)var u=l[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(u===void 0&&(u=l[Symbol.dispose||Symbol.for("Symbol.dispose")],a))var d=u;if(typeof u!="function")throw new TypeError("Object is not disposable.");d&&(u=i(function(){try{d.call(l)}catch(f){return Promise.reject(f)}},"o$1")),s.push({v:l,d:u,a})}else a&&s.push({d:l,a});return l}return i(c,"using"),{e:o,u:c.bind(null,!1),a:c.bind(null,!0),d:i(function(){var l,u=this.e,d=0;function p(){for(;l=s.pop();)try{if(!l.a&&d===1)return d=0,s.push(l),Promise.resolve().then(p);if(l.d){var h=l.d.call(l.v);if(l.a)return d|=2,Promise.resolve(h).then(p,f)}else d|=1}catch(y){return f(y)}if(d===1)return u!==o?Promise.reject(u):Promise.resolve();if(u!==o)throw u}i(p,"next");function f(h){return u=u!==o?new n(h,u):h,p()}return i(f,"err"),p()},"d")}}i(r,"_usingCtx"),t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}}),it=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(e,t){function r(n,o){this.v=n,this.k=o}i(r,"_OverloadYield"),t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}}),vr=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(e,t){var r=it();function n(o){return new r(o,0)}i(n,"_awaitAsyncGenerator$1"),t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}}),br=_({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(e,t){var r=it();function n(s){return function(){return new o(s.apply(this,arguments))}}i(n,"_wrapAsyncGenerator$1");function o(s){var c,a;function l(d,p){try{var f=s[d](p),h=f.value,y=h instanceof r;Promise.resolve(y?h.v:h).then(function(b){if(y){var w=d==="return"?"return":"next";if(!h.k||b.done)return l(w,b);b=s[w](b).value}u(f.done?"return":"normal",b)},function(b){l("throw",b)})}catch(b){u("throw",b)}}i(l,"resume");function u(d,p){switch(d){case"return":c.resolve({value:p,done:!0});break;case"throw":c.reject(p);break;default:c.resolve({value:p,done:!1})}(c=c.next)?l(c.key,c.arg):a=null}i(u,"settle"),this._invoke=function(d,p){return new Promise(function(f,h){var y={key:d,arg:p,resolve:f,reject:h,next:null};a?a=a.next=y:(c=a=y,l(d,p))})},typeof s.return!="function"&&(this.return=void 0)}i(o,"AsyncGenerator"),o.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},o.prototype.next=function(s){return this._invoke("next",s)},o.prototype.throw=function(s){return this._invoke("throw",s)},o.prototype.return=function(s){return this._invoke("return",s)},t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}});m(yr(),1);m(vr(),1);m(br(),1);m(v(),1);var _e=At(St),z=Ct,gr=1e4,_r=3e3,Pr=2e3,wr=3e4,st=class{static{i(this,"System")}serverUrl;useWs;baseRetryMs;maxRetryMs;onConnectionChange;token;_trpcClient;_wsClient=null;mirror=null;mirrorInit=null;connected=!1;connectedPromise=null;_systemProxy;_connectionVersion=0;connectionListeners=new Set;constructor(e){this.serverUrl=e.serverUrl.replace(/\/+$/,""),this.token=e.token;const t=typeof window<"u";this.useWs=e.useWebSocket??t,this.onConnectionChange=e.onConnectionChange,this.baseRetryMs=e.retryDelayMs??Pr,this.maxRetryMs=e.maxRetryDelayMs??wr,this._trpcClient=this.buildTrpcClient(),this._systemProxy=(0,z.createSystemProxy)(this._trpcClient)}get connectionVersion(){return this._connectionVersion}subscribeConnectionEvents(e){return this.connectionListeners.add(e),()=>{this.connectionListeners.delete(e)}}emitConnectionEvent(e){try{this.onConnectionChange?.(e)}catch{}for(const t of this.connectionListeners)try{t(e,this._connectionVersion)}catch{}}async awaitConnected(e){if(this.connected)return;if(this.connectedPromise)return this.connectedPromise;const t=e??15e3;this.connectedPromise=(async()=>{const r=this._trpcClient.auth.me.query();Number.isFinite(t)?await new Promise((n,o)=>{const s=setTimeout(()=>o(new Error(`System.awaitConnected: probe timed out after ${t}ms`)),t);r.then(()=>{clearTimeout(s),n()},c=>{clearTimeout(s),o(c instanceof Error?c:new Error(String(c)))})}):await r,this.connected=!0})();try{await this.connectedPromise}finally{this.connectedPromise=null}}async init(e){if(this.mirror?.isReady())return;if(this.mirrorInit)return this.mirrorInit;const t=new z.SystemMirror(this._trpcClient);return this.mirror=t,this.mirrorInit=(async()=>{await this.awaitConnected(e),await t.init(e)})().finally(()=>{this.mirrorInit=null}),this.mirrorInit}async awaitReady(){if(!this.mirror?.isReady())return this.mirrorInit?this.mirrorInit:this.init()}isReady(){return this.mirror?.isReady()??!1}isConnected(){return this.connected}reconnect(){this.useWs&&(this.emitConnectionEvent("connecting"),this._wsClient?.close(),this.disposeMirror(),this.connected=!1,this.connectedPromise=null,this._trpcClient=this.buildTrpcClient(),this._systemProxy=(0,z.createSystemProxy)(this._trpcClient))}close(){this.disposeMirror(),this.connected=!1,this.connectedPromise=null,this._wsClient?.close()}disposeMirror(){this.mirror?.dispose(),this.mirror=null,this.mirrorInit=null}async login(e,t){const r=await this._trpcClient.auth.login.mutate({username:e,password:t});if(typeof r=="object"&&r!==null&&"token"in r){const n=r.token;typeof n=="string"&&this.setToken(n)}return r}async logout(){await this._trpcClient.auth.logout.mutate()}async getMe(){return await this._trpcClient.auth.me.query()}setToken(e){this.token=e}listDevices(e){return this.mirror?(e?this.mirror.query(e):this.mirror.getAllDevices()).map(r=>this.attachBinding(r)):[]}getDevice(e){const t=this.mirror?.getDeviceById(e)??null;return t?this.attachBinding(t):null}getDeviceByName(e){const t=this.mirror?.getDeviceByName(e)??null;return t?this.attachBinding(t):null}getDeviceByStableId(e){const t=this.mirror?.getDeviceByStableId(e)??null;return t?this.attachBinding(t):null}async waitForDevice(e,t){this.mirror||await this.init();const r=await this.mirror.waitForDevice(e,t??3e4);return this.attachBinding(r)}onDeviceAdded(e){if(!this.mirror)throw new Error("System.onDeviceAdded: call init() before subscribing");return this.mirror.onDeviceAdded(e)}onDeviceRemoved(e){if(!this.mirror)throw new Error("System.onDeviceRemoved: call init() before subscribing");return this.mirror.onDeviceRemoved(e)}attachBinding(e){const t=this.lookupBinding(e.deviceId);if(t===e.binding)return e;const r=e;return r.binding=t,e}lookupBinding(e){return this.mirror?this.mirror.getDeviceById(e)?.binding??null:null}get addonPages(){return this._systemProxy.addonPages}get addonSettings(){return this._systemProxy.addonSettings}get alerts(){return this._systemProxy.alerts}get audioAnalyzer(){return this._systemProxy.audioAnalyzer}get audioCodec(){return this._systemProxy.audioCodec}get backup(){return this._systemProxy.backup}get decoder(){return this._systemProxy.decoder}get deviceManager(){return this._systemProxy.deviceManager}get deviceProvider(){return this._systemProxy.deviceProvider}get deviceState(){return this._systemProxy.deviceState}get metricsProvider(){return this._systemProxy.metricsProvider}get notificationOutput(){return this._systemProxy.notificationOutput}get pipelineExecutor(){return this._systemProxy.pipelineExecutor}get pipelineOrchestrator(){return this._systemProxy.pipelineOrchestrator}get pipelineRunner(){return this._systemProxy.pipelineRunner}get platformProbe(){return this._systemProxy.platformProbe}get recordingEngine(){return this._systemProxy.recordingEngine}get settingsStore(){return this._systemProxy.settingsStore}get storage(){return this._systemProxy.storage}get streamBroker(){return this._systemProxy.streamBroker}get turnProvider(){return this._systemProxy.turnProvider}get userManagement(){return this._systemProxy.userManagement}subscribeEvent(e,t){const r=this._trpcClient.live.onEvent.subscribe({category:e},{onData:i(n=>{try{t(n)}catch{}},"onData")});return()=>{try{r.unsubscribe()}catch{}}}get trpcClient(){return this._trpcClient}get wsClient(){return this._wsClient}buildTrpcClient(){const e=i(()=>{const t={};return this.token&&(t.Authorization=`Bearer ${this.token}`),t},"headers");if(this.useWs){const t=this.serverUrl.replace(/^http/,"ws")+"/trpc",r=this.baseRetryMs,n=this.maxRetryMs;return this._wsClient=rt({url:t,connectionParams:i(()=>({token:this.token}),"connectionParams"),retryDelayMs:i(o=>Math.min(r*Math.pow(2,o),n),"retryDelayMs"),keepAlive:{enabled:!0,intervalMs:gr,pongTimeoutMs:_r},onOpen:i(()=>{this._connectionVersion+=1,this.emitConnectionEvent("connected")},"onOpen"),onClose:i(()=>{this.emitConnectionEvent("disconnected")},"onClose")}),Y({links:[nt({client:this._wsClient,transformer:_e.default})]})}return this._wsClient=null,Y({links:[Ye({url:`${this.serverUrl}/trpc`,headers:e,transformer:_e.default})]})}};function at(e){return new st(e)}i(at,"createSystem");var ct=(function(e){return e.Motion="motion",e.Person="person",e.Vehicle="vehicle",e.Animal="animal",e.Audio="audio",e.Face="face",e.Plate="plate",e.Package="package",e.Doorbell="doorbell",e.Sensor="sensor",e})({}),re=["animal","dog_cat","dog","cat","horse","sheep","cow","elephant","bear","zebra","giraffe","mouse","rabbit","deer","lion","tiger","bird","eagle","owl","pigeon","fish","whale","dolphin","snake","turtle","lizard"],ne=["person","people","pedestrian","rider","driver","cyclist","skier","skateboarder","face","hand","head","body"],oe=["vehicle","car","truck","bus","motorcycle","bicycle","van","ambulance","police_car","fire_truck","train","subway","tram","airplane","boat","ship","helicopter"],ie=["face","eyes","nose","mouth","ears","eyebrows","left_eye","right_eye","pupil","iris","eyelid","eye_corner","upper_lip","lower_lip","teeth","chin","cheek","forehead","jaw","glasses","sunglasses","facial_hair","beard","mustache","facial_landmark","facial_keypoint"],se=["plate","license_plate","front_plate","rear_plate","motorcycle_plate","temporary_plate","dealer_plate","licensePlate","plate_number","plate_character","plate_digit","plate_letter","plate_symbol","plate_region","plate_country_identifier","plate_frame","plate_bolt","plate_sticker","plate_validation_tag","damaged_plate","obscured_plate","dirty_plate"],ae=["motion","movement","other"],ce=["package","packet"],le=["audio"],ue=["speech","scream","babbling","yell","bellow","whoop","whispering","laughter","snicker","crying","cry","sigh","singing","choir","chant","mantra","child_singing","rapping","humming","groan","grunt","whistling","breathing","wheeze","snoring","gasp","pant","snort","cough","throat_clearing","sneeze","sniff","cheering","applause","chatter","crowd","children_playing","bark","yip","howl","bow-wow","growling","whimper_dog","purr","meow","hiss","caterwaul","pets","livestock","doorbell","ding-dong","door","slam","knock","alarm","telephone","music","dog","dogs"],de=["doorbell","ring"],pe=["lock","binary","flood","entry","door","leak","door_open","flooded","entry_open"],fe={...re.reduce((e,t)=>({...e,[t]:"animal"}),{}),...ne.reduce((e,t)=>({...e,[t]:"person"}),{}),...oe.reduce((e,t)=>({...e,[t]:"vehicle"}),{}),...ae.reduce((e,t)=>({...e,[t]:"motion"}),{}),...ce.reduce((e,t)=>({...e,[t]:"package"}),{}),...ie.reduce((e,t)=>({...e,[t]:"face"}),{}),...se.reduce((e,t)=>({...e,[t]:"plate"}),{}),...le.reduce((e,t)=>({...e,[t]:"audio"}),{}),...ue.reduce((e,t)=>({...e,[t]:"audio"}),{}),...de.reduce((e,t)=>({...e,[t]:"doorbell"}),{}),...pe.reduce((e,t)=>({...e,[t]:"sensor"}),{})},lt=i(e=>ie.includes(e),"isFaceClassname"),ut=i(e=>se.includes(e),"isPlateClassname"),xr=i(e=>re.includes(e),"isAnimalClassname"),Cr=i(e=>ne.includes(e),"isPersonClassname"),Sr=i(e=>oe.includes(e),"isVehicleClassname"),Or=i(e=>ae.includes(e),"isMotionClassname"),Er=i(e=>de.includes(e),"isDoorbellClassname"),Tr=i(e=>ce.includes(e),"isPackageClassname"),jr=i(e=>le.includes(e)||ue.includes(e),"isAudioClassname"),kr=i(e=>pe.includes(e),"isSensorLabelClassname"),Rr=i(e=>lt(e)||ut(e),"isLabelDetection"),Mr=i(e=>fe[e],"getParentClass"),Ar=i(e=>{const{className:t}=e,r={face:"person",plate:"vehicle"},n=fe[t];return n&&n!==t?n:r[t]},"getParentDetectionClass"),dt=Object.values(ct),N=dt.filter(e=>e!=="motion"),he=["person","doorbell","package"],pt=[...he,"vehicle","animal","audio","face","plate"],ft=[...N];function ht(e,t){switch(e){case"critical":return he;case"important":return pt;case"all":return ft;case"custom":return t?.length?t:N;default:return N}}i(ht,"getClassesForTimelinePreset");var V={Light:"light",Switch:"switch",WindowCovering:"cover",Lock:"lock",SecuritySystem:"alarm",Buttons:"button",Select:"select",Siren:"siren",Sensor:"sensor",Entry:"entry",Program:"script",MediaPlayer:"media_player",Outlet:"switch",light:"light",switch:"switch",input_boolean:"switch",cover:"cover",lock:"lock",alarm_control_panel:"alarm",input_button:"button",button:"button",input_select:"select",select:"select",siren:"siren",sensor:"sensor",media_player:"media_player",script:"script"},Ir={light:"light",switch:"switch",input_boolean:"switch",cover:"cover",lock:"lock",alarm_control_panel:"alarm",input_button:"button",button:"button",input_select:"select",select:"select",siren:"siren",sensor:"sensor",binary_sensor:"sensor",media_player:"media_player",script:"script",climate:"climate",camera:"camera",fan:"fan",vacuum:"vacuum",automation:"automation",scene:"scene",input_number:"sensor",person:"person",device_tracker:"tracker",weather:"weather",water_heater:"climate"},qr={Light:"light",Switch:"switch",WindowCovering:"cover",Lock:"lock",SecuritySystem:"alarm",Buttons:"button",Select:"select",Siren:"siren",Sensor:"sensor",Entry:"entry",Program:"script",MediaPlayer:"media_player",Camera:"camera",Doorbell:"doorbell",Fan:"fan",Outlet:"switch"};function mt(e){const t=V[e];if(t)return t;const r=e.toLowerCase();return V[r]??null}i(mt,"getCanonicalDeviceType");var yt=["Entry","Light","Switch","Lock","SecuritySystem","Buttons","WindowCovering","Siren","Sensor","Select","Program"],Dr=new Set(yt),vt=["light","switch","input_boolean","cover","lock","alarm_control_panel","input_button","button","input_select","select","siren","media_player","script"],Lr=new Set(vt),W=[{id:"liveStream",label:"Live Stream",sources:{frigate:!0,scrypted:!0,rtsp:!0},adapterMethod:"getLiveStream"},{id:"multiResolution",label:"Multi-Resolution",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getResolutions"},{id:"motion",label:"Motion Detection",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getMotion"},{id:"objectDetection",label:"Object Detection",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getObjectDetections"},{id:"audioVolume",label:"Audio Level",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getAudioVolume"},{id:"audioVolumes",label:"Audio Volumes (dBFS)",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getAudioVolumes"},{id:"ptz",label:"PTZ Control",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getPTZ"},{id:"intercom",label:"Intercom (Mic)",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getIntercomSupport"},{id:"deviceStatus",label:"Device Status",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getStatus"},{id:"timeline",label:"Detection Timeline",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getCameraDayData"},{id:"clusteredTimeline",label:"Clustered Timeline",sources:{frigate:!0,scrypted:!0,rtsp:!1},requiresBackend:!0,adapterMethod:"getClusteredDayData"},{id:"detectionClasses",label:"Detection Classes",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getDetectionClasses"},{id:"videoClips",label:"Video Clips",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getVideoClips"},{id:"nvrPlayback",label:"NVR Playback",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getNvrPlaybackSupported"},{id:"nvrScrub",label:"NVR Scrub/Seek",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"seekRecordingStream"},{id:"recordingThumbnail",label:"Recording Thumbnails",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getRecordingStreamThumbnail"},{id:"nvrSeekToLive",label:"Seek to Live",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"seekNvrToLive"}];function bt(e,t,r){const n=W.find(o=>o.id===e);return!(!n||!n.sources[t]||n.platforms&&n.platforms[r]===!1)}i(bt,"isFeatureAvailable");function gt(e){return W.filter(t=>t.sources[e])}i(gt,"getSourceFeatures");function _t(){return W.filter(e=>e.requiresBackend)}i(_t,"getBackendRequiredFeatures");function Pt(e,t,r){if(e.length===0)return null;const n=t.viewportWidth*t.viewportHeight*(t.pixelRatio??1),o=t.bandwidthMbps??100,s=t.packetLoss??0,c=t.rttMs??50;let a="high";t.maxResolution==="low"||t.isCellular||o<1||s>.05?a="low":t.maxResolution==="medium"||o<5||n<5e5||c>200?a="medium":(t.maxResolution==="high"||n>2e6)&&(a="high");const l={main:"high",sub:"medium",ext:"low"},u=r??"native",d=e.map(f=>{let h=0;const y=l[f.profile]??"medium";if(y===a?h+=100:(a==="high"&&y==="medium"||a==="medium"&&y==="high"||a==="medium"&&y==="low"||a==="low"&&y==="medium")&&(h+=50),f.transport===u?h+=30:f.transport==="native"?h+=20:f.transport==="rtsp"?h+=15:f.transport==="rtmp"&&(h+=10),f.metadata?.width&&f.metadata?.height){const w=f.metadata.width*f.metadata.height/Math.max(n,1);w>=.8&&w<=2?h+=25:w>=.5&&w<=3&&(h+=15),w>4&&o<10&&(h-=20)}return f.metadata?.codec&&(o<5&&f.metadata.codec.includes("265")&&(h+=10),o>=10&&f.metadata.codec.includes("264")&&(h+=5)),{...f,score:h,targetTier:a}});d.sort((f,h)=>h.score-f.score);const p=d[0];return{streamName:p.streamName,profile:p.profile,transport:p.transport,label:p.label,metadata:p.metadata,reason:`${p.targetTier} quality → ${p.profile}/${p.transport} (score: ${p.score})`}}i(Pt,"selectOptimalStream");function wt(e,t){return t?10:e.isCellular||(e.packetLoss??0)>.02?15:30}i(wt,"getNextEvalInterval");/*! Bundled license information:
|
|
2
|
-
|
|
3
|
-
@trpc/client/dist/httpLink-lG_6juPY.mjs:
|
|
4
|
-
(* istanbul ignore if -- @preserve *)
|
|
5
|
-
*/const Nr=xt(xe),Fr=Ot({__proto__:null,default:Nr},[xe]);export{Fr as i};
|