@camstack/addon-admin-ui 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-CziSE-Do.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DP-TohD5.js} +1 -1
  2. package/dist/assets/{auth-records-BEfan3dC.js → auth-records-pPU2T5YK.js} +1 -1
  3. package/dist/assets/{capability-router-map-B3jHfbHt.js → capability-router-map-CnswfTnw.js} +1 -1
  4. package/dist/assets/{devices-BfsgGvwu.js → devices-DmhCpmLN.js} +1 -1
  5. package/dist/assets/{hostInit-7yPTCcmg.js → hostInit-Burx4GuM.js} +1 -1
  6. package/dist/assets/{index-cfq-Npln.js → index-CQLrpnMs.js} +1 -1
  7. package/dist/assets/{index-K1-f6oQr.js → index-CXbDmdLy.js} +1 -1
  8. package/dist/assets/{index-Bzz7AnXl.js → index-CZAjr0Nt.js} +2 -2
  9. package/dist/assets/{index-iCcWZGKs.js → index-DJUPuA7C.js} +1 -1
  10. package/dist/assets/{index-DfH297U6.js → index-DlYD2xgP.js} +1 -1
  11. package/dist/assets/{index-ptcmLXsE.js → index-Dq4t4mCo.js} +1 -1
  12. package/dist/assets/index-Dv_f5EEQ.js +1 -0
  13. package/dist/assets/{index-BlKJSHE9.js → index-gpRVuU7E.js} +1 -1
  14. package/dist/assets/{index-X-IEwb-L.js → index-hps9vVhf.js} +1 -1
  15. package/dist/assets/{index-Dvmk3HcY.js → index-xPcbbtKN.js} +1 -1
  16. package/dist/assets/{remoteEntry-Da_G1gka.js → remoteEntry-BJyQcDUE.js} +1 -1
  17. package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-kSAHDLPS.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-24aug5i6.js} +2 -2
  18. package/dist/index.html +5 -5
  19. package/dist/mf-entry-bootstrap-0.js +2 -2
  20. package/dist/sw.js +1 -1
  21. package/package.json +1 -1
  22. package/dist/assets/index-C-M4yvxf.js +0 -1
@@ -1 +1 @@
1
- import{d as h,o as t,n as a,b as l,r as y,u as v,s as e,f as E,a as r,j as Aa,l as b,_ as d,c as w,h as R,g as ot,t as Pa,e as Ne,i as on,k as sn}from"./schemas-XgIEoUz3.js";const rn=["onnx","coreml","openvino","tflite","pt"],dn=[{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}],Yr=Object.fromEntries(dn.map(m=>[m.id,m]));function cn(m){return m.type==="separator"||m.type==="info"||m.type==="button"||m.type==="object-array"||m.type==="widget"||m.type==="addon-action-button"}function Jr(m,c){return{...m.tabs?{tabs:[...m.tabs]}:{},sections:m.sections.map(o=>({...o,fields:o.fields.map(g=>Fe(g,c))}))}}function Fe(m,c){if(cn(m))return m;if(m.type==="group"){const p=m.fields.map(P=>Fe(P,c));return{...m,fields:p}}if(m.type==="sub-tabs"){const p=m.tabs.map(P=>({...P,fields:P.fields.map(A=>Fe(A,c))}));return{...m,tabs:p}}const o=m.key,g=Object.prototype.hasOwnProperty.call(c,o)?c[o]:void 0,S=m.default;if(m.multiple){const p=Array.isArray(g)?g:g!=null?[g]:[],k=m.multiple.itemDefault!==void 0?m.multiple.itemDefault:S!==void 0?S:ln(m)==="string"?"":null,P=Math.max(m.multiple.min,p.length),A=[];for(let D=0;D<P;D++)A.push(D<p.length?p[D]:k);return{...m,value:A}}const f=g!==void 0?g:S!==void 0?S:null,I=m.type==="textarea"&&m.isJson&&f!==null&&typeof f=="object"?JSON.stringify(f,null,2):f;return{...m,value:I}}function ln(m){switch(m.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 K=h(["data","media","recordings","recordings-high","recordings-low","recordings-clips","event-images","models","cache","logs","addons-data","backups"]),Xr={data:"singleton",media:"singleton",cache:"singleton",logs:"singleton","addons-data":"singleton",models:"singleton","event-images":"singleton",recordings:"multi","recordings-high":"multi","recordings-low":"multi","recordings-clips":"multi",backups:"multi"},T=t({id:e().regex(/^[a-z][a-z0-9-]*:[a-z0-9-]+$/),type:K,displayName:e().min(1),providerId:e().min(1),config:y(e(),v()),isDefault:l().default(!1),isSystem:l().default(!1),createdAt:a(),updatedAt:a()}),O=E([K,e().regex(/^[a-z][a-z0-9-]*:[a-z0-9-]+$/)]),un=t({inputFps:a(),outputFps:a(),avgDecodeTimeMs:a(),droppedFrames:a()}),zt=t({codec:e(),maxFps:a().default(0),outputFormat:h(["jpeg","rgb","bgr","yuv420","gray"]).default("jpeg"),scale:a().default(1),width:a().optional(),height:a().optional(),deviceId:a().int().nonnegative().optional(),tag:e().optional()}),mn=[{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:"🤫"}],pn={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},gn={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},st=new Map;for(const[m,c]of Object.entries(pn.mapping))st.set(m.toLowerCase(),c);for(const[m,c]of Object.entries(gn.mapping))st.set(m.toLowerCase(),c);function ed(m){return st.get(m.toLowerCase())??null}function td(){return mn.map(m=>m.id)}var C=(m=>(m.Camera="camera",m.Hub="hub",m.Light="light",m.Siren="siren",m.Switch="switch",m.Sensor="sensor",m.Thermostat="thermostat",m.Button="button",m.Generic="generic",m))(C||{}),wa=(m=>(m.BatteryOperated="battery-operated",m.Rebootable="rebootable",m.NativeSnapshot="native-snapshot",m.DoorbellButton="doorbell-button",m.TwoWayAudio="two-way-audio",m.PanTiltZoom="pan-tilt-zoom",m.PtzAutotrack="ptz-autotrack",m.MotionTrigger="motion-trigger",m))(wa||{}),hn=(m=>(m.ChargingDC="charging-dc",m.ChargingSolar="charging-solar",m.NotCharging="not-charging",m))(hn||{}),z=(m=>(m.Siren="siren",m.Floodlight="floodlight",m.Spotlight="spotlight",m.PirSensor="pir-sensor",m.Chime="chime",m.Autotrack="autotrack",m.Nightvision="nightvision",m.PrivacyMask="privacy-mask",m.Doorbell="doorbell",m))(z||{});const F={Siren:z.Siren,Floodlight:z.Floodlight,Spotlight:z.Spotlight,PirSensor:z.PirSensor,Chime:z.Chime,Autotrack:z.Autotrack,Nightvision:z.Nightvision,PrivacyMask:z.PrivacyMask},ad={[F.Siren]:"Siren",[F.Floodlight]:"Floodlight",[F.Spotlight]:"Spotlight",[F.PirSensor]:"PIR",[F.Chime]:"Chime",[F.Autotrack]:"Autotracking",[F.Nightvision]:"Night Vision",[F.PrivacyMask]:"Privacy Mask"};function nd(m,c,o){const g=`${m}:${c}`;return typeof o=="number"?`${g}:${o}`:g}function vn(m,c){return!m||m.length===0?!1:m.includes(c.when.hasFeature)}const yn={id:"battery",label:"Battery-operated camera",when:{hasFeature:wa.BatteryOperated},defaults:{audioMode:"disabled",detectionMode:"on-motion"},settings:{"snapshot.minRefreshIntervalSec":3600,"streamBroker.preBufferEnabled":!1}},Sn=[yn];function id(m){for(const c of Sn)if(vn(m,c))return c;return null}const Ie=t({online:l(),lastChangedAt:a()}),od={name:"device-status",scope:"device",mode:"singleton",methods:{},events:{onStatusChanged:{data:t({deviceId:a(),status:Ie})}},status:{schema:Ie,kind:"push"},runtimeState:Ie},ke=t({flags:y(e(),v()),deviceType:e().nullable(),model:e().nullable(),channelCount:a().nullable(),lastProbedAt:a(),lastFetchedAt:a()}),sd={name:"feature-probe",scope:"device",mode:"singleton",methods:{},events:{onProbeChanged:{data:t({deviceId:a(),status:ke})}},status:{schema:ke,kind:"push"},runtimeState:ke},bn=t({id:e(),title:e(),description:e().optional(),style:h(["card","accordion"]).optional(),defaultCollapsed:l().optional(),columns:E([b(1),b(2),b(3),b(4)]).optional(),tab:e().optional(),location:h(["settings","top-tab"]).optional(),order:a().optional(),fields:r(Aa())}),fn=t({id:e(),label:e(),icon:e(),order:a().optional()}),In=t({tabs:r(fn).optional(),sections:r(bn)}),Nt=In.nullable(),kn={getDeviceSettingsContribution:{input:t({deviceId:a()}),output:Nt,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:t({deviceId:a()}),output:Nt,kind:"query",auth:"protected"},applyDeviceSettingsPatch:{input:t({deviceId:a(),patch:y(e(),v())}),output:t({success:b(!0)}),kind:"mutation",auth:"admin"}},Cn={getStatus:{input:t({deviceId:a()}),output:v().nullable(),kind:"query",auth:"protected"}};function rd(m){let c=m.methods;return m.exposesDeviceSettings&&(c={...kn,...c}),m.status&&(c={...Cn,...c}),c}function i(m,c,o){return{input:m,output:c,kind:o?.kind??"query",auth:o?.auth??"protected",timeoutMs:o?.timeoutMs}}function G(m){return{data:m}}const An=t({className:e(),hits:a().int().nonnegative(),avgScore:a().min(0).max(1),peakScore:a().min(0).max(1)}),Ft=t({ts:a().int(),windowSec:a().int().positive(),level:t({rms:a(),dbfs:a()}),peakDbfs:a(),avgDbfs:a(),current:t({className:e(),score:a().min(0).max(1),timestamp:a().int()}).nullable(),byClass:r(An).readonly()}),Pn=t({ts:a().int(),dbfs:a().nullable(),peakDbfs:a(),avgDbfs:a(),topClass:e().nullable(),topScore:a().min(0).max(1).nullable()}),wn=t({points:r(Pn).readonly(),effectiveSampleEveryMs:a().int().positive(),windowMsActual:a().int().nonnegative()}),dd={name:"audio-metrics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCurrentSnapshot:i(t({deviceId:a()}),Ft.nullable()),getHistory:i(t({deviceId:a(),windowSec:a().int().positive().optional(),sampleEveryMs:a().int().positive().optional()}),wn)},runtimeState:Ft},Ce=t({percentage:a().min(0).max(100),charging:h(["dc","solar","none"]),sleeping:l(),lastUpdated:a()}),cd={name:"battery",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor,C.Button,C.Switch],methods:{},events:{onStatusChanged:{data:t({deviceId:a(),status:Ce})}},status:{schema:Ce,kind:"push"},runtimeState:Ce},Ut=t({percentage:a().min(0).max(100),lastChangedAt:a()}),ld={name:"brightness",scope:"device",mode:"singleton",deviceTypes:[C.Light],methods:{setBrightness:i(t({deviceId:a().int().nonnegative(),percentage:a().min(0).max(100)}),d(),{kind:"mutation",auth:"admin"})},events:{onBrightnessChanged:{data:t({deviceId:a(),percentage:a().min(0).max(100),lastChangedAt:a()})}},status:{schema:Ut,kind:"command-driven"},runtimeState:Ut},_=h(["high","mid","low"]),ud=["high","mid","low"],Da=h(["pull-rtsp","pull-rtmp","pull-http","pull-rfc4571","push-annexb"]),rt=t({width:a().int().positive(),height:a().int().positive()}),Ue=t({camStreamId:e().min(1),deviceId:a().int().nonnegative(),kind:Da,url:e().optional(),codec:e().optional(),resolution:rt.optional(),fps:a().positive().optional(),label:e().optional(),deviceFeatures:r(e()).optional(),autoEligible:l().optional(),metadata:y(e(),v()).optional()}),ue=h(["unassigned","idle","connecting","streaming","error"]),_e=t({deviceId:a().int().nonnegative(),profile:_,brokerId:e(),sourceCamStreamId:e().nullable(),status:ue,resolution:rt.optional(),codec:e().optional(),preBufferSec:a().nonnegative().optional(),errorMessage:e().optional()}),Dn=t({id:e(),label:e(),protocol:h(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:e().optional(),resolution:t({width:a(),height:a()}).readonly().optional(),fps:a().optional(),bitrate:a().optional(),codec:e().optional(),profileHint:h(["high","mid","low"]).optional()}),md=t({type:e(),url:e(),videoCodec:e().optional(),audioCodec:e().optional(),metadata:y(e(),v()).readonly().optional()}),Mn=t({type:h(["video","audio"]),data:w(Uint8Array),pts:a(),dts:a(),keyframe:l(),codec:e()}),En=t({data:w(Uint8Array),width:a(),height:a(),format:h(["jpeg","rgb","bgr","yuv420","gray"]),timestamp:a()}),qn=h(["idle","connecting","streaming","error","stopped"]),Tn=t({status:qn,inputFps:a(),decodeFps:a(),encodedSubscribers:a(),decodedSubscribers:a(),uptimeMs:a(),bitrateKbps:a(),idrIntervalMs:a(),codec:e().optional(),totalBytes:a(),packetCount:a(),rtspClients:a(),pipeClients:a(),preBufferSec:a(),preBufferMs:a(),preBufferPackets:a(),decoderNodeId:e().nullable(),audio:t({codec:e(),sampleRate:a(),channels:a(),supported:l()}).nullable().optional()}),dt=h(["webrtc","hls","mjpeg","rtsp"]),Rn=t({streamId:e(),format:dt,url:e().nullable(),active:l()}),pd={name:"streaming-engine",scope:"system",mode:"singleton",internal:!0,methods:{registerStream:i(t({streamId:e(),sourceUrl:e(),codec:e().optional()}),d(),{kind:"mutation"}),unregisterStream:i(t({streamId:e()}),d(),{kind:"mutation"}),getStreamUrl:i(t({streamId:e(),format:dt}),e().nullable()),listStreams:i(d(),r(Rn))}},He=t({brokerId:e(),url:e(),mutedUrl:e(),enabled:l()}),Bn=t({sessionId:e(),remoteAddr:e(),playing:l(),muted:l(),connectedAt:a(),lastRtpAt:a(),bytesSent:a()}),xn=t({tag:e(),subscribedAt:a(),maxFps:a(),framesDelivered:a(),framesDropped:a()}),Ln=t({tag:e(),subscribedAt:a(),chunksDelivered:a()}),On=t({rtsp:r(Bn).readonly(),decoded:r(xn).readonly(),audio:r(Ln).readonly(),pipeClients:a(),encodedSubscribers:a()}),gd=h(["reconnecting","sleeping","offline","disabled","waking"]),hd={name:"stream-broker",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{publishCameraStream:i(t({deviceId:a().int().nonnegative(),camStreamId:e().min(1),kind:Da,url:e().optional(),codec:e().optional(),resolution:rt.optional(),fps:a().positive().optional(),label:e().optional(),deviceFeatures:r(e()).optional(),autoEligible:l().optional(),metadata:y(e(),v()).optional()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),retractCameraStream:i(t({deviceId:a().int().nonnegative(),camStreamId:e().min(1)}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),assignProfile:i(t({deviceId:a().int().nonnegative(),profile:_,camStreamId:e().min(1)}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),unassignProfile:i(t({deviceId:a().int().nonnegative(),profile:_}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),listAllCameraStreams:i(d(),r(Ue).readonly()),listAllProfileSlots:i(d(),r(_e).readonly()),getBrokerStats:i(t({brokerId:e()}),Tn),listClients:i(t({brokerId:e()}),On),killClient:i(t({brokerId:e(),channel:h(["rtsp","decoded","audio"]),handle:e()}),t({killed:l()}),{kind:"mutation",auth:"admin"}),restartProfile:i(t({deviceId:a().int().nonnegative(),profile:_}),t({success:l()}),{kind:"mutation",auth:"admin"}),getStreamUrl:i(t({streamId:e(),format:dt}),t({url:e()})),getBroker:i(t({brokerId:e()}),R()),setPreBufferDuration:i(t({brokerId:e(),seconds:a().min(0).max(30)}),d(),{kind:"mutation",auth:"admin"}),getPreBufferInfo:i(t({brokerId:e()}),t({configuredSec:a(),bufferedMs:a(),packetCount:a()})),getRtspPort:i(d(),a()),getAllRtspEntries:i(t({hostname:e().optional()}),r(He).readonly()),getRtspEntry:i(t({brokerId:e(),hostname:e().optional()}),He.nullable()),regenerateRtspToken:i(t({brokerId:e()}),e().nullable(),{kind:"mutation",auth:"admin"}),setRtspEnabled:i(t({brokerId:e(),enabled:l()}),d(),{kind:"mutation",auth:"admin"}),isRtspEnabled:i(t({brokerId:e()}),l())},events:{onCamStreamDemand:G(t({deviceId:a().int().nonnegative(),camStreamId:e(),profile:_})),onCamStreamIdle:G(t({deviceId:a().int().nonnegative(),camStreamId:e()})),onRequestStreamSourceRefresh:G(t({deviceId:a().int().nonnegative(),camStreamId:e(),brokerId:e()}))}},vd={name:"camera-streams",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCameraStreams:i(t({deviceId:a().int().nonnegative()}),r(Ue).readonly()),getBrokerStreams:i(t({deviceId:a().int().nonnegative()}),r(_e).readonly()),getRtspEntries:i(t({deviceId:a().int().nonnegative(),hostname:e().optional()}),r(He).readonly())},events:{onCamStreamsChanged:G(t({deviceId:a().int().nonnegative(),camStreams:r(Ue).readonly()})),onProfileSlotsChanged:G(t({deviceId:a().int().nonnegative(),profileSlots:r(_e).readonly()}))},runtimeState:t({online:l(),slotStatuses:t({high:ue.optional(),mid:ue.optional(),low:ue.optional()}),slotErrors:t({high:e().optional(),mid:e().optional(),low:e().optional()}),lastChangedAt:a()})},zn=h(["online","sleeping","offline","unknown"]),We=t({childNativeId:e(),name:e(),type:h(C),status:zn,metadata:t({model:e().optional(),serialNumber:e().optional(),uid:e().optional(),rtspChannel:a().int().nonnegative().optional(),isBattery:l().optional(),isDoorbell:l().optional(),isMultifocal:l().optional()}).default({}),alreadyAdopted:l(),adoptedDeviceId:a().int().nonnegative().nullable()}),_t=t({discovered:r(We),lastDiscoveryAt:a().int().nonnegative().nullable(),lastError:e().nullable()}),yd={name:"device-discovery",scope:"device",mode:"singleton",deviceTypes:[C.Hub],status:{schema:_t,kind:"poll"},runtimeState:_t.extend({lastFetchedAt:a().int().nonnegative()}),methods:{listDiscovered:i(t({deviceId:a().int().nonnegative()}),r(We).readonly()),refreshDiscovery:i(t({deviceId:a().int().nonnegative()}),r(We).readonly(),{kind:"mutation",auth:"admin"}),adoptDevice:i(t({deviceId:a().int().nonnegative(),childNativeId:e(),name:e().optional()}),t({deviceId:a().int().nonnegative(),stableId:e()}),{kind:"mutation",auth:"admin"}),releaseDevice:i(t({deviceId:a().int().nonnegative(),childDeviceId:a().int().nonnegative()}),d(),{kind:"mutation",auth:"admin"})}},Ht=t({lastPressedAt:a().nullable(),pressCountSinceStart:a()}),Nn=t({deviceId:a(),timestamp:a()}),Sd={name:"doorbell",scope:"device",mode:"singleton",deviceTypes:[C.Button],methods:{},events:{onPressed:{data:Nn}},status:{schema:Ht,kind:"push"},runtimeState:Ht},Fn=h(["jpeg","rgb","bgr","yuv420","gray"]),me=t({data:R(),format:Fn,width:a(),height:a(),timestamp:a()}),Z=t({x:a(),y:a(),w:a(),h:a()}),Un=t({class:e(),originalClass:e(),score:a(),bbox:Z}),Wt=t({data:w(Float32Array),sampleRate:a(),channels:a(),timestamp:a(),deviceId:a().optional()}),_n=t({rms:a(),dbfs:a()}),Ge=t({className:e(),originalClass:e().optional(),score:a()}),he=t({bbox:Z,pixelCount:a(),intensity:a()}),Hn=t({detected:l(),regionCount:a(),regions:r(he).readonly(),rawRegions:r(he).readonly(),frameWidth:a(),frameHeight:a(),analysisMs:a()}),bd={name:"motion-detection",scope:"device",mode:"singleton",exposesDeviceSettings:!0,methods:{analyze:i(t({deviceId:a(),frame:me}),Hn,{kind:"mutation"}),removeCamera:i(t({deviceId:a()}),d(),{kind:"mutation"}),reset:i(d(),d(),{kind:"mutation"})},events:{onMotion:{data:t({deviceId:a(),detected:l(),regionCount:a()})}}},fd=t({activeCameras:a(),throttledCameras:a(),avgInferenceTimeMs:a(),queueDepth:a()}),ct=t({detectionMode:h(["disabled","always-on","on-motion"]),configuredFps:a(),actualFps:a(),queueDepth:a(),avgInferenceTimeMs:a(),droppedFrames:a(),phase:h(["idle","watching","active"])}),Wn=ct.extend({deviceId:a()}),Ve=h(["onnx","coreml","openvino","tflite","pt"]),ne=h(["detector","cropper","classifier","refiner","audio-classifier"]),M=t({runtime:h(["node","python"]),backend:e(),format:Ve,device:e().optional()}),Gn=t({id:e(),label:e(),description:e().optional()}),Vn=t({engine:M,devices:r(Gn).readonly(),defaultDevice:e()}),je=ot(()=>t({addonId:e(),addonName:e(),slot:ne,inputClasses:r(e()).readonly(),outputClasses:r(e()).readonly(),enabled:l(),modelId:e(),children:r(je).readonly(),engine:M.optional(),group:e().optional(),settings:y(e(),v()).optional()})),ve=ot(()=>t({addonId:e(),enabled:l(),modelId:e(),children:r(ve).readonly(),settings:y(e(),v()).optional()})),Ae=t({id:e(),name:e(),createdAt:e(),updatedAt:e(),engine:M,steps:r(ve).readonly()}),jn=t({id:e(),name:e(),formats:y(e(),t({downloaded:l(),sizeMB:a()}))}),Kn=R(),$n=t({id:e(),name:e(),slot:ne,inputClasses:r(e()).readonly(),outputClasses:r(e()).readonly(),childSlots:r(ne).readonly(),models:r(jn).readonly(),defaultModelId:e(),defaultModelIdByFormat:y(e(),e()).optional(),enabledByDefault:l().optional(),defaultConfidence:a(),group:e().optional(),configSchema:r(Kn).readonly().optional()}),Zn=t({id:ne,label:e(),priority:a(),parentSlot:ne.nullable(),addons:r($n).readonly()}),Qn=t({availableEngines:r(Vn).readonly(),selectedEngine:M,slots:r(Zn).readonly()}),Yn=t({detections:r(Un).readonly(),inferenceMs:a(),modelId:e()}),$=ot(()=>t({addonId:e(),modelId:e(),enabled:l().default(!0),children:r($).optional(),settings:y(e(),v()).optional()})),Jn=t({filename:e(),stepIds:r(e()).readonly().optional()}),Xn=t({base64:e(),filename:e()}),ei=t({filename:e(),sizeKb:a()}),ti=t({base64:e()}),ai=t({id:e(),name:e(),description:e(),available:l(),rawLabels:r(e()).readonly().optional()}),ni=t({activeBackend:e(),availableBackends:r(ai).readonly(),sampleRate:a(),chunkDurationMs:a()}),ii=t({filePath:e(),sizeMB:a(),durationMs:a()}),oi=t({success:l(),error:e().optional(),frame:R().optional()}),si=R(),ri=R(),di=R(),ci=R(),li=R(),Gt=R(),Id={name:"pipeline-executor",scope:"system",mode:"singleton",methods:{getAvailableEngines:i(d(),r(M)),getSelectedEngine:i(d(),M),getDefaultSteps:i(M,r(je)),reprobeEngine:i(d(),M,{kind:"mutation",auth:"admin"}),getVideoPipelineSteps:i(d(),y(e(),t({modelId:e(),settings:y(e(),v()).readonly()}))),setVideoPipelineSteps:i(t({steps:y(e(),t({modelId:e(),settings:y(e(),v()).readonly()}))}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getSchema:i(d(),Qn),getGlobalSteps:i(d(),r(je).readonly().nullable()),getGlobalPipelineConfig:i(d(),si),getOrchestratorConfigSchema:i(d(),ri),listTemplates:i(d(),r(Ae).readonly()),saveTemplate:i(t({name:e(),steps:r(ve).readonly(),engine:M}),Ae,{kind:"mutation"}),updateTemplate:i(t({id:e(),name:e().optional(),steps:r(ve).readonly().optional()}),Ae,{kind:"mutation"}),deleteTemplate:i(t({id:e()}),d(),{kind:"mutation"}),getCapabilities:i(d(),ci),getAddonModels:i(t({addonId:e()}),li),downloadModel:i(t({addonId:e(),modelId:e(),format:Ve}),ii,{kind:"mutation"}),deleteModel:i(t({addonId:e(),modelId:e(),format:Ve}),t({success:b(!0)}),{kind:"mutation"}),detect:i(t({addonId:e(),frame:me,config:y(e(),v()).optional()}),Yn),runPipeline:i(t({engine:M.optional(),steps:r($).min(1),frame:me.optional(),imageBase64:e().optional(),image:w(Uint8Array).optional(),referenceImage:e().optional(),deviceId:a().optional(),sessionId:e().optional()}),Gt,{kind:"mutation"}),runPipelineBatch:i(t({engine:M.optional(),steps:r($).min(1),frames:r(me).min(1).max(255),deviceId:a().optional(),sessionId:e().optional()}),t({results:r(Gt).readonly()}),{kind:"mutation"}),cacheFrameInPool:i(t({data:w(Uint8Array),width:a().int().positive(),height:a().int().positive(),format:h(["rgb","bgr","gray"])}),t({frameId:a(),width:a(),height:a()}),{kind:"mutation"}),inferCached:i(t({stepId:e(),frameId:a().int()}),y(e(),v()),{kind:"mutation"}),uncacheFrame:i(t({frameId:a().int()}),d(),{kind:"mutation"}),getEffectiveTuning:i(d(),t({batchMode:e(),windowMs:a(),maxBatchSize:a(),concurrency:a()})),listLoadedEngines:i(d(),r(t({engineKey:e(),engine:M,modelsLoaded:r(e()).readonly(),inUseByCameras:r(a()).readonly(),kind:h(["runtime","warm-override"]),poolPid:a().nullable(),idleMs:a().nullable(),idleTtlMs:a().nullable()})).readonly()),spinEngine:i(t({engine:M}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),killEngine:i(t({engine:M,force:l().optional()}),t({success:l(),reason:e().optional()}),{kind:"mutation",auth:"admin"}),listReferenceImages:i(d(),r(Jn).readonly()),getReferenceImage:i(t({filename:e()}),Xn.nullable()),getReferenceAudioFiles:i(d(),r(ei).readonly()),getReferenceAudio:i(t({filename:e()}),ti.nullable()),getAudioCapabilities:i(d(),ni),runAudioTest:i(t({addonId:e(),modelId:e(),filename:e().optional(),settings:y(e(),v()).optional()}),oi,{kind:"mutation"}),getDetectionConfigSchema:i(d(),di)}},ui=h(["polygon","tripwire"]),mi=t({x:a(),y:a()}),te=t({id:e(),name:e(),kind:ui.default("polygon"),polygon:r(mi).readonly(),color:e().default("#3b82f6")}),kd={name:"zones",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listZones:i(t({deviceId:a()}),r(te).readonly()),addZone:i(t({deviceId:a(),zone:te}),d(),{kind:"mutation",auth:"admin"}),removeZone:i(t({deviceId:a(),zoneId:e()}),d(),{kind:"mutation",auth:"admin"}),updateZone:i(t({deviceId:a(),zone:te}),d(),{kind:"mutation",auth:"admin"})},runtimeState:t({zones:r(te).readonly()})},V={min:0,max:6e4,default:3e4,step:500},H={min:1,max:30,default:4,step:1},W={min:1,max:30,default:10,step:1},lt=h(["onboard","analyzer"]),pi=r(lt),gi=t({deviceId:a(),detected:l(),source:lt.default("analyzer"),regions:r(he).readonly().optional()}),hi=t({deviceId:a(),detectionMode:h(["disabled","always-on","on-motion"]).default("on-motion"),audioMode:h(["disabled","always-on","on-motion"]).default("always-on"),motionCooldownMs:a().min(V.min).default(V.default),motionFps:a().min(H.min).max(H.max).default(H.default),detectionFps:a().min(W.min).max(W.max).default(W.default),motionStreamId:e(),detectionStreamId:e(),motionSources:pi.default(["analyzer"]),pipelineEnabled:l().default(!0),engine:M.optional(),steps:r($).readonly().optional(),audio:t({engine:M,modelId:e(),enabled:l()}).nullable().optional(),zones:r(te).readonly().default([])}),Cd=[{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:H.min,max:H.max,step:H.step,default:H.default,showValue:!0,unit:"fps",showWhen:{field:"motionSources",includes:"analyzer"}},{key:"detectionFps",type:"slider",label:"Detection FPS",min:W.min,max:W.max,step:W.step,default:W.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:V.min,max:V.max,step:V.step,default:V.default,showValue:!0,unit:"s",displayScale:1e3}],Ma=t({nodeId:e(),attachedCameras:a(),activeCameras:a(),avgInferenceFps:a(),avgInferenceTimeMs:a(),queueDepthTotal:a(),hardware:t({hasGpu:l(),inferenceBackend:e().optional(),cpuCores:a().optional()})}),vi=t({nodeId:e(),activeCameras:a(),throttledCameras:a(),avgInferenceTimeMs:a(),queueDepth:a()}),Ad={name:"pipeline-runner",scope:"system",mode:"singleton",methods:{attachCamera:i(hi,t({success:b(!0)}),{kind:"mutation"}),detachCamera:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation"}),reportMotion:i(gi,t({success:b(!0)}),{kind:"mutation"}),getLocalLoad:i(d(),Ma),getLocalMetrics:i(d(),vi),getCameraMetrics:i(t({deviceId:a()}),ct.nullable()),getAllCameraMetrics:i(d(),r(Wn).readonly()),getLocalCameras:i(d(),r(a()).readonly())}},Vt=t({detected:l(),lastDetectedAt:a().nullable(),autoClearAfterMs:a().nullable()}),yi=t({deviceId:a(),detected:l(),timestamp:a(),source:lt,regions:r(he).readonly().optional()}),Pd={name:"motion",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor],methods:{isDetected:i(t({deviceId:a()}),l())},events:{onMotionChanged:{data:yi}},status:{schema:Vt,kind:"push"},runtimeState:Vt},Ea=t({enabled:l(),lastChangedAt:a()}),Si=Ea.extend({lastFetchedAt:a()}),wd={name:"motion-trigger",scope:"device",mode:"singleton",deviceTypes:[C.Light,C.Siren,C.Switch],methods:{setMotionTrigger:i(t({deviceId:a().int().nonnegative(),enabled:l()}),d(),{kind:"mutation",auth:"admin"})},events:{onMotionTriggerChanged:{data:t({deviceId:a(),enabled:l(),lastChangedAt:a()})}},status:{schema:Ea,kind:"command-driven"},runtimeState:Si},bi=e().describe("Vendor target string (people/vehicle/pet); empty = camera default"),Ke=t({targetType:bi,stopDelaySeconds:a().int().min(0).max(300),disappearDelaySeconds:a().int().min(0).max(300)}),fi=t({value:e(),label:e()}),pe=t({enabled:l(),lastChangedAt:a(),currentSettings:Ke.nullable(),supportedTargetTypes:r(fi)}),Ii=pe.extend({lastFetchedAt:a()}),Dd={name:"ptz-autotrack",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getStatus:i(t({deviceId:a()}),pe),setEnabled:i(t({deviceId:a(),enabled:l()}),d(),{kind:"mutation"}),getSettings:i(t({deviceId:a()}),Ke.nullable()),setSettings:i(t({deviceId:a(),settings:Ke.partial()}),d(),{kind:"mutation"})},events:{onStatusChanged:{data:t({deviceId:a(),status:pe})}},status:{schema:pe,kind:"command-driven"},runtimeState:Ii},jt=t({on:l(),lastChangedAt:a()}),Md={name:"switch",scope:"device",mode:"singleton",deviceTypes:[C.Switch,C.Siren,C.Light],methods:{setState:i(t({deviceId:a(),on:l()}),d(),{kind:"mutation",auth:"admin"})},events:{onStateChanged:{data:t({deviceId:a(),on:l(),lastChangedAt:a()})}},status:{schema:jt,kind:"command-driven"},runtimeState:jt,settings:{bindings:[{kind:"scalar",statusPath:"on",method:"setState",valueArg:"on",field:{label:"On",kind:"boolean"}}]}},$e=t({totalObjects:a().int().nonnegative(),byClass:y(e(),a().int().nonnegative())}),ki=$e.extend({zoneId:e(),zoneName:e(),trackIds:r(e()).readonly()}),Kt=t({ts:a().int(),frameWidth:a().int().nonnegative(),frameHeight:a().int().nonnegative(),zones:r(ki).readonly(),frame:$e,unzoned:$e}),Ci=h(["minute","5min","hour"]),Pe=t({from:a().int(),to:a().int(),resolution:Ci}),we=t({ts:a().int(),count:a().int().nonnegative()}),Ed={name:"zone-analytics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCurrentSnapshot:i(t({deviceId:a()}),Kt.nullable()),getZoneHistory:i(t({deviceId:a(),zoneId:e(),className:e().optional()}).extend(Pe.shape),r(we).readonly()),getCameraHistory:i(t({deviceId:a(),className:e().optional()}).extend(Pe.shape),r(we).readonly()),getUnzonedHistory:i(t({deviceId:a(),className:e().optional()}).extend(Pe.shape),r(we).readonly())},runtimeState:Kt},Ai=h(["include","exclude"]),ae=t({id:e(),name:e().optional(),zoneIds:r(e()).min(1).readonly(),mode:Ai,classFilter:r(e()).readonly().optional(),overlapThreshold:a().min(0).max(1).optional(),bboxInclusionPct:a().min(0).max(100).optional(),preferMask:l().optional(),enabled:l().default(!0)}),qd=r(ae).readonly(),$t=h(["motion","detection"]),Td={name:"zone-rules",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listRules:i(t({deviceId:a(),stage:$t}),r(ae).readonly()),setRules:i(t({deviceId:a(),stage:$t,rules:r(ae).readonly()}),d(),{kind:"mutation",auth:"admin"})},runtimeState:t({motion:r(ae).readonly(),detection:r(ae).readonly()})},Pi=t({connected:l(),deviceCount:a(),error:e().optional()}),Rd=t({externalId:e(),name:e(),type:e(),metadata:y(e(),v()).optional()}),ye=t({stableId:e(),type:h(C),suggestedName:e(),prefilledConfig:y(e(),v())}),Se=t({id:a(),stableId:e(),addonId:e(),type:e(),name:e(),parentDeviceId:a().nullable(),online:l(),features:r(e()),config:y(e(),v())}),Ze=t({status:h(["ok","error"]),labels:r(e()).optional(),error:e().optional()}),wi=v(),Bd={name:"device-provider",scope:"system",mode:"collection",methods:{start:i(d(),d(),{kind:"mutation"}),stop:i(d(),d(),{kind:"mutation"}),getStatus:i(d(),Pi),getDevices:i(d(),r(t({id:e(),name:e(),type:e()}))),supportsDiscovery:i(t({}),l()),discoverDevices:i(t({}),r(ye),{kind:"mutation",auth:"admin"}),adoptDiscoveredDevice:i(t({candidate:ye}),Se,{kind:"mutation",auth:"admin"}),supportsManualCreation:i(t({}),l()),getChildCreationSchema:i(t({type:h(C)}),wi),createDevice:i(t({type:h(C),config:y(e(),v())}),Se,{kind:"mutation",auth:"admin"}),testCreationField:i(t({type:h(C),key:e(),value:v(),formValues:y(e(),v()).optional()}),Ze,{kind:"mutation",auth:"admin"})}},Di="device.state-changed";function qa(m){const c=new Map,o=new Map;let g=null;const S=(u,p)=>`${u}:${p}`,f=()=>{g||m.live?.onEvent&&(g=m.live.onEvent.subscribe({category:Di},{onData:u=>{const p=u.data;if(!p||typeof p.deviceId!="number"||typeof p.capName!="string")return;const k=S(p.deviceId,p.capName);c.set(k,p.slice);const P=o.get(k);if(P)for(const A of P)try{A(p.slice)}catch{}}}))},I=()=>{g&&(o.size>0||(g.unsubscribe(),g=null))};return{read(u,p){return c.get(S(u,p))},async refresh(u,p){const k=await m.deviceState.getCapSlice.query({deviceId:u,capName:p}),P=S(u,p);c.set(P,k??void 0);const A=o.get(P);if(A)for(const D of A)try{D(k??void 0)}catch{}},watch(u,p,k){const P=S(u,p);let A=o.get(P);return A||(A=new Set,o.set(P,A)),A.add(k),f(),()=>{A.delete(k),A.size===0&&o.delete(P),I()}},async write(u,p,k){await m.deviceState.setCapSlice.mutate({deviceId:u,capName:p,slice:k})}}}function Mi(m,c,o){const g=(S,f)=>`${S}:${f}`;return{read(S,f){return m.get(S)?.get(f)},async refresh(){},watch(S,f,I){const u=g(S,f);let p=c.get(u);return p||(p=new Set,c.set(u,p)),p.add(I),()=>{p.delete(I),p.size===0&&c.delete(u)}},async write(S,f,I){if(!o)throw new Error("createMirrorSource: write requires an api reference — pass it as the third argument when constructing the source");await o.deviceState.setCapSlice.mutate({deviceId:S,capName:f,slice:I})}}}function q(m,c,o){const g=Ei(m)?m:qa(m);return{get value(){return g.read(c,o)},refresh(){return g.refresh(c,o)},subscribe(S){const f=g.watch(c,o,I=>{try{S(I)}catch{}});try{S(g.read(c,o))}catch{}return g.read(c,o)===void 0&&g.refresh(c,o).catch(()=>{}),f},async set(S){await g.write(c,o,S)},async patch(S){const I={...g.read(c,o)??{},...S};await g.write(c,o,I)}}}function Ei(m){return typeof m.read=="function"&&typeof m.watch=="function"}function qi(m,c,o){const g=m,S=o?.stateSource??qa(m);function f(s,x){const L=typeof s=="object"&&s!==null?s:{};return x!==void 0?{...L,deviceId:c.deviceId,nodeId:x}:{...L,deviceId:c.deviceId}}function I(s,x,L,U,J){const de=g[s]?.[x];if(!de)throw new Error(`DeviceProxy: api has no '${s}.${x}'`);const X=de;return L==="mutation"?X.mutate(U):L==="subscription"?X.subscribe(U,J):X.query(U)}function u(s,x,L,U,J,de){const X=c.entries.find(nn=>nn.capName===s);return I(x,L,U,f(J,X?.providerNodeId),de)}function p(s,x,L,U,J){return I(s,x,L,f(U,void 0),J)}const k={getStatus:s=>u("accessories","accessories","getStatus","query",s)},P={resolveDeviceSettings:s=>u("audio-analysis","audioAnalysis","resolveDeviceSettings","query",s),getDeviceSettingsContribution:s=>u("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",s)},A={getCurrentSnapshot:s=>u("audio-metrics","audioMetrics","getCurrentSnapshot","query",s),getHistory:s=>u("audio-metrics","audioMetrics","getHistory","query",s)},D={getStatus:s=>u("battery","battery","getStatus","query",s)},B={setBrightness:s=>u("brightness","brightness","setBrightness","mutation",s),getStatus:s=>u("brightness","brightness","getStatus","query",s)},pt={getCredentials:s=>u("camera-credentials","cameraCredentials","getCredentials","query",s),getStatus:s=>u("camera-credentials","cameraCredentials","getStatus","query",s)},gt={getCameraStreams:s=>u("camera-streams","cameraStreams","getCameraStreams","query",s),getBrokerStreams:s=>u("camera-streams","cameraStreams","getBrokerStreams","query",s),getRtspEntries:s=>u("camera-streams","cameraStreams","getRtspEntries","query",s)},ht={getDeviceSettingsContribution:s=>u("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",s)},vt={listDiscovered:s=>u("device-discovery","deviceDiscovery","listDiscovered","query",s),refreshDiscovery:s=>u("device-discovery","deviceDiscovery","refreshDiscovery","mutation",s),adoptDevice:s=>u("device-discovery","deviceDiscovery","adoptDevice","mutation",s),releaseDevice:s=>u("device-discovery","deviceDiscovery","releaseDevice","mutation",s),getStatus:s=>u("device-discovery","deviceDiscovery","getStatus","query",s)},yt={getStreamSources:s=>u("device-ops","deviceOps","getStreamSources","query",s),getConfigEntries:s=>u("device-ops","deviceOps","getConfigEntries","query",s),setConfig:s=>u("device-ops","deviceOps","setConfig","mutation",s),removeDevice:s=>u("device-ops","deviceOps","removeDevice","mutation",s),getSettingsSchema:s=>u("device-ops","deviceOps","getSettingsSchema","query",s)},St={getStatus:s=>u("device-status","deviceStatus","getStatus","query",s)},bt={getStatus:s=>u("doorbell","doorbell","getStatus","query",s)},ft={getEvents:s=>u("events","events","getEvents","query",s),getEventThumbnail:s=>u("events","events","getEventThumbnail","query",s),getEventClipUrl:s=>u("events","events","getEventClipUrl","query",s)},It={getStatus:s=>u("feature-probe","featureProbe","getStatus","query",s)},kt={startSession:s=>u("intercom","intercom","startSession","mutation",s),handleAnswer:s=>u("intercom","intercom","handleAnswer","mutation",s),stopSession:s=>u("intercom","intercom","stopSession","mutation",s),getStatus:s=>u("intercom","intercom","getStatus","query",s)},Ct={isDetected:s=>u("motion","motion","isDetected","query",s),getStatus:s=>u("motion","motion","getStatus","query",s)},At={analyze:s=>u("motion-detection","motionDetection","analyze","mutation",s),removeCamera:s=>u("motion-detection","motionDetection","removeCamera","mutation",s),reset:s=>u("motion-detection","motionDetection","reset","mutation",s),getDeviceSettingsContribution:s=>u("motion-detection","motionDetection","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("motion-detection","motionDetection","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",s)},Pt={setMotionTrigger:s=>u("motion-trigger","motionTrigger","setMotionTrigger","mutation",s),getStatus:s=>u("motion-trigger","motionTrigger","getStatus","query",s)},wt={getStatus:s=>u("native-object-detection","nativeObjectDetection","getStatus","query",s)},Dt={setOverlay:s=>u("osd","osd","setOverlay","mutation",s),getStatus:s=>u("osd","osd","getStatus","query",s)},Mt={getActiveTracks:s=>u("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",s),getTrack:s=>u("pipeline-analytics","pipelineAnalytics","getTrack","query",s),listTracks:s=>u("pipeline-analytics","pipelineAnalytics","listTracks","query",s),clearTracks:s=>u("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",s),getMotionEvents:s=>u("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",s),getObjectEvents:s=>u("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",s),getAudioEvents:s=>u("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",s),getEventMedia:s=>u("pipeline-analytics","pipelineAnalytics","getEventMedia","query",s),getTrackMedia:s=>u("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",s),getDeviceSettingsContribution:s=>u("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",s)},Et={move:s=>u("ptz","ptz","move","mutation",s),continuousMove:s=>u("ptz","ptz","continuousMove","mutation",s),stop:s=>u("ptz","ptz","stop","mutation",s),getPresets:s=>u("ptz","ptz","getPresets","query",s),goToPreset:s=>u("ptz","ptz","goToPreset","mutation",s),goHome:s=>u("ptz","ptz","goHome","mutation",s),getPosition:s=>u("ptz","ptz","getPosition","query",s),getStatus:s=>u("ptz","ptz","getStatus","query",s)},qt={getStatus:s=>u("ptz-autotrack","ptzAutotrack","getStatus","query",s),setEnabled:s=>u("ptz-autotrack","ptzAutotrack","setEnabled","mutation",s),getSettings:s=>u("ptz-autotrack","ptzAutotrack","getSettings","query",s),setSettings:s=>u("ptz-autotrack","ptzAutotrack","setSettings","mutation",s)},Tt={reboot:s=>u("reboot","reboot","reboot","mutation",s)},Rt={getSegments:s=>u("recording","recording","getSegments","query",s),getPlaybackUrl:s=>u("recording","recording","getPlaybackUrl","query",s),getThumbnailAt:s=>u("recording","recording","getThumbnailAt","query",s)},Bt={getSnapshot:s=>u("snapshot","snapshot","getSnapshot","query",s),invalidateCache:s=>u("snapshot","snapshot","invalidateCache","mutation",s),getStatus:s=>u("snapshot","snapshot","getStatus","query",s),getDeviceSettingsContribution:s=>u("snapshot","snapshot","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("snapshot","snapshot","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("snapshot","snapshot","applyDeviceSettingsPatch","mutation",s)},xt={setState:s=>u("switch","switch","setState","mutation",s),getStatus:s=>u("switch","switch","getStatus","query",s)},Lt={listStreams:s=>u("webrtc-session","webrtcSession","listStreams","query",s),createSession:s=>u("webrtc-session","webrtcSession","createSession","mutation",s),handleAnswer:s=>u("webrtc-session","webrtcSession","handleAnswer","mutation",s),closeSession:s=>u("webrtc-session","webrtcSession","closeSession","mutation",s),hasAdaptiveBitrate:s=>u("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",s)},Ot={getCurrentSnapshot:s=>u("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",s),getZoneHistory:s=>u("zone-analytics","zoneAnalytics","getZoneHistory","query",s),getCameraHistory:s=>u("zone-analytics","zoneAnalytics","getCameraHistory","query",s),getUnzonedHistory:s=>u("zone-analytics","zoneAnalytics","getUnzonedHistory","query",s)},n={listRules:s=>u("zone-rules","zoneRules","listRules","query",s),setRules:s=>u("zone-rules","zoneRules","setRules","mutation",s)},N={listZones:s=>u("zones","zones","listZones","query",s),addZone:s=>u("zones","zones","addZone","mutation",s),removeZone:s=>u("zones","zones","removeZone","mutation",s),updateZone:s=>u("zones","zones","updateZone","mutation",s)},se={getDeviceSettings:s=>p("addonSettings","getDeviceSettings","query",s),updateDeviceSettings:s=>p("addonSettings","updateDeviceSettings","mutation",s)},Q={loadConfig:s=>p("deviceManager","loadConfig","query",s),loadRuntimeState:s=>p("deviceManager","loadRuntimeState","query",s),loadMeta:s=>p("deviceManager","loadMeta","query",s),setName:s=>p("deviceManager","setName","mutation",s),setLocation:s=>p("deviceManager","setLocation","mutation",s),setMetadata:s=>p("deviceManager","setMetadata","mutation",s),setDisabled:s=>p("deviceManager","setDisabled","mutation",s),getDevice:s=>p("deviceManager","getDevice","query",s),getStreamSources:s=>p("deviceManager","getStreamSources","query",s),getConfigSchema:s=>p("deviceManager","getConfigSchema","query",s),getSettingsSchema:s=>p("deviceManager","getSettingsSchema","query",s),updateConfig:s=>p("deviceManager","updateConfig","mutation",s),enable:s=>p("deviceManager","enable","mutation",s),disable:s=>p("deviceManager","disable","mutation",s),remove:s=>p("deviceManager","remove","mutation",s),getStreamProfileMap:s=>p("deviceManager","getStreamProfileMap","query",s),setStreamProfileMap:s=>p("deviceManager","setStreamProfileMap","mutation",s),probeStreams:s=>p("deviceManager","probeStreams","mutation",s),getBindings:s=>p("deviceManager","getBindings","query",s),getAllBindings:s=>p("deviceManager","getAllBindings","query",s),setWrapperActive:s=>p("deviceManager","setWrapperActive","mutation",s),getDeviceSettingsAggregate:s=>p("deviceManager","getDeviceSettingsAggregate","query",s),getDeviceLiveInfoAggregate:s=>p("deviceManager","getDeviceLiveInfoAggregate","query",s),getDeviceAggregate:s=>p("deviceManager","getDeviceAggregate","query",s),updateDeviceField:s=>p("deviceManager","updateDeviceField","mutation",s),updateDeviceFieldsBatch:s=>p("deviceManager","updateDeviceFieldsBatch","mutation",s),testField:s=>p("deviceManager","testField","mutation",s),getDeviceStatusAggregate:s=>p("deviceManager","getDeviceStatusAggregate","query",s)},fe={getSnapshot:s=>p("deviceState","getSnapshot","query",s),getCapSlice:s=>p("deviceState","getCapSlice","query",s),setCapSlice:s=>p("deviceState","setCapSlice","mutation",s)},re={getDeviceStats:s=>p("networkQuality","getDeviceStats","query",s),reportClientStats:s=>p("networkQuality","reportClientStats","mutation",s)},Y={runPipeline:s=>p("pipelineExecutor","runPipeline","mutation",s),runPipelineBatch:s=>p("pipelineExecutor","runPipelineBatch","mutation",s)},Ja={assignPipeline:s=>p("pipelineOrchestrator","assignPipeline","mutation",s),unassignPipeline:s=>p("pipelineOrchestrator","unassignPipeline","mutation",s),getPipelineAssignment:s=>p("pipelineOrchestrator","getPipelineAssignment","query",s),getCameraMetrics:s=>p("pipelineOrchestrator","getCameraMetrics","query",s),assignDecoder:s=>p("pipelineOrchestrator","assignDecoder","mutation",s),unassignDecoder:s=>p("pipelineOrchestrator","unassignDecoder","mutation",s),assignAudio:s=>p("pipelineOrchestrator","assignAudio","mutation",s),unassignAudio:s=>p("pipelineOrchestrator","unassignAudio","mutation",s),getAudioAssignment:s=>p("pipelineOrchestrator","getAudioAssignment","query",s),getAudioAssignments:s=>p("pipelineOrchestrator","getAudioAssignments","query",s),getDecoderAssignment:s=>p("pipelineOrchestrator","getDecoderAssignment","query",s),getCameraSettings:s=>p("pipelineOrchestrator","getCameraSettings","query",s),setCameraStepToggle:s=>p("pipelineOrchestrator","setCameraStepToggle","mutation",s),getCameraStepOverrides:s=>p("pipelineOrchestrator","getCameraStepOverrides","query",s),setCameraStepOverride:s=>p("pipelineOrchestrator","setCameraStepOverride","mutation",s),setCameraPipelineForAgent:s=>p("pipelineOrchestrator","setCameraPipelineForAgent","mutation",s),resolvePipeline:s=>p("pipelineOrchestrator","resolvePipeline","query",s),getDeviceSettingsContribution:s=>p("pipelineOrchestrator","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>p("pipelineOrchestrator","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>p("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",s)},Xa={detachCamera:s=>p("pipelineRunner","detachCamera","mutation",s),getCameraMetrics:s=>p("pipelineRunner","getCameraMetrics","query",s)},en={getPolicyStatus:s=>p("recordingEngine","getPolicyStatus","query",s)},tn={supportsDevice:s=>p("snapshotProvider","supportsDevice","query",s),getSnapshot:s=>p("snapshotProvider","getSnapshot","query",s)},an={publishCameraStream:s=>p("streamBroker","publishCameraStream","mutation",s),retractCameraStream:s=>p("streamBroker","retractCameraStream","mutation",s),assignProfile:s=>p("streamBroker","assignProfile","mutation",s),unassignProfile:s=>p("streamBroker","unassignProfile","mutation",s),restartProfile:s=>p("streamBroker","restartProfile","mutation",s),getDeviceSettingsContribution:s=>p("streamBroker","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>p("streamBroker","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>p("streamBroker","applyDeviceSettingsPatch","mutation",s)};return{deviceId:c.deviceId,binding:c,state:{audioMetrics:q(S,c.deviceId,"audio-metrics"),battery:q(S,c.deviceId,"battery"),brightness:q(S,c.deviceId,"brightness"),cameraStreams:q(S,c.deviceId,"camera-streams"),deviceDiscovery:q(S,c.deviceId,"device-discovery"),deviceStatus:q(S,c.deviceId,"device-status"),doorbell:q(S,c.deviceId,"doorbell"),featureProbe:q(S,c.deviceId,"feature-probe"),motion:q(S,c.deviceId,"motion"),motionTrigger:q(S,c.deviceId,"motion-trigger"),ptzAutotrack:q(S,c.deviceId,"ptz-autotrack"),switch:q(S,c.deviceId,"switch"),zoneAnalytics:q(S,c.deviceId,"zone-analytics"),zoneRules:q(S,c.deviceId,"zone-rules"),zones:q(S,c.deviceId,"zones")},accessories:k,audioAnalysis:P,audioMetrics:A,battery:D,brightness:B,cameraCredentials:pt,cameraStreams:gt,detectionPipeline:ht,deviceDiscovery:vt,deviceOps:yt,deviceStatus:St,doorbell:bt,events:ft,featureProbe:It,intercom:kt,motion:Ct,motionDetection:At,motionTrigger:Pt,nativeObjectDetection:wt,osd:Dt,pipelineAnalytics:Mt,ptz:Et,ptzAutotrack:qt,reboot:Tt,recording:Rt,snapshot:Bt,switch:xt,webrtcSession:Lt,zoneAnalytics:Ot,zoneRules:n,zones:N,addonSettings:se,deviceManager:Q,deviceState:fe,networkQuality:re,pipelineExecutor:Y,pipelineOrchestrator:Ja,pipelineRunner:Xa,recordingEngine:en,snapshotProvider:tn,streamBroker:an}}function xd(m){const c=m;function o(n,N,se,Q,fe){const re=c[n]?.[N];if(!re)throw new Error(`SystemProxy: api has no '${n}.${N}'`);const Y=re;return se==="mutation"?Y.mutate(Q):se==="subscription"?Y.subscribe(Q,fe):Y.query(Q)}return{addonPages:{listPages:n=>o("addonPages","listPages","query",n)},addons:{list:n=>o("addons","list","query",n),getLogs:n=>o("addons","getLogs","query",n),listPackages:n=>o("addons","listPackages","query",n),installPackage:n=>o("addons","installPackage","mutation",n),installFromWorkspace:n=>o("addons","installFromWorkspace","mutation",n),isWorkspaceAvailable:n=>o("addons","isWorkspaceAvailable","query",n),listWorkspacePackages:n=>o("addons","listWorkspacePackages","query",n),uninstallPackage:n=>o("addons","uninstallPackage","mutation",n),reloadPackages:n=>o("addons","reloadPackages","mutation",n),searchAvailable:n=>o("addons","searchAvailable","query",n),listUpdates:n=>o("addons","listUpdates","query",n),updatePackage:n=>o("addons","updatePackage","mutation",n),rollbackPackage:n=>o("addons","rollbackPackage","mutation",n),forceRefresh:n=>o("addons","forceRefresh","mutation",n),restartServer:n=>o("addons","restartServer","mutation",n),getVersions:n=>o("addons","getVersions","query",n),restartAddon:n=>o("addons","restartAddon","mutation",n),retryLoad:n=>o("addons","retryLoad","mutation",n),getAutoUpdateSettings:n=>o("addons","getAutoUpdateSettings","query",n),setAutoUpdateSettings:n=>o("addons","setAutoUpdateSettings","mutation",n),getAddonAutoUpdate:n=>o("addons","getAddonAutoUpdate","query",n),setAddonAutoUpdate:n=>o("addons","setAddonAutoUpdate","mutation",n),applyAutoUpdateToAll:n=>o("addons","applyAutoUpdateToAll","mutation",n),custom:n=>o("addons","custom","mutation",n),onAddonLogs:(n,N)=>o("addons","onAddonLogs","subscription",n,N)},addonSettings:{getGlobalSettings:n=>o("addonSettings","getGlobalSettings","query",n),updateGlobalSettings:n=>o("addonSettings","updateGlobalSettings","mutation",n)},addonWidgets:{listWidgets:n=>o("addonWidgets","listWidgets","query",n)},alerts:{emit:n=>o("alerts","emit","mutation",n),update:n=>o("alerts","update","mutation",n),list:n=>o("alerts","list","query",n),getUnreadCount:n=>o("alerts","getUnreadCount","query",n),markRead:n=>o("alerts","markRead","mutation",n),markAllRead:n=>o("alerts","markAllRead","mutation",n),dismiss:n=>o("alerts","dismiss","mutation",n)},audioAnalyzer:{analyseChunk:n=>o("audioAnalyzer","analyseChunk","mutation",n),classify:n=>o("audioAnalyzer","classify","query",n),isReady:n=>o("audioAnalyzer","isReady","query",n),dispose:n=>o("audioAnalyzer","dispose","mutation",n),reprobeAudioEngine:n=>o("audioAnalyzer","reprobeAudioEngine","mutation",n)},audioCodec:{listSupportedCodecs:n=>o("audioCodec","listSupportedCodecs","query",n),canHandle:n=>o("audioCodec","canHandle","query",n),createDecodeSession:n=>o("audioCodec","createDecodeSession","mutation",n),createEncodeSession:n=>o("audioCodec","createEncodeSession","mutation",n),closeSession:n=>o("audioCodec","closeSession","mutation",n),pushEncodedFrame:n=>o("audioCodec","pushEncodedFrame","mutation",n),pullPcm:n=>o("audioCodec","pullPcm","query",n),pushPcm:n=>o("audioCodec","pushPcm","mutation",n),pullEncoded:n=>o("audioCodec","pullEncoded","query",n),flushEncode:n=>o("audioCodec","flushEncode","mutation",n),listActiveSessions:n=>o("audioCodec","listActiveSessions","query",n)},authentication:{listProviders:n=>o("authentication","listProviders","query",n),setProviderEnabled:n=>o("authentication","setProviderEnabled","mutation",n)},backup:{listDestinations:n=>o("backup","listDestinations","query",n),trigger:n=>o("backup","trigger","mutation",n),list:n=>o("backup","list","query",n),listLocations:n=>o("backup","listLocations","query",n),getEntries:n=>o("backup","getEntries","query",n),restore:n=>o("backup","restore","mutation",n),delete:n=>o("backup","delete","mutation",n),listArchives:n=>o("backup","listArchives","query",n),upsertDestinationPolicy:n=>o("backup","upsertDestinationPolicy","mutation",n),previewSchedule:n=>o("backup","previewSchedule","query",n)},decoder:{supportsCodec:n=>o("decoder","supportsCodec","query",n),getInfo:n=>o("decoder","getInfo","query",n),createSession:n=>o("decoder","createSession","query",n),destroySession:n=>o("decoder","destroySession","query",n),pushPacket:n=>o("decoder","pushPacket","query",n),openStream:n=>o("decoder","openStream","query",n),pullFrames:n=>o("decoder","pullFrames","query",n),updateConfig:n=>o("decoder","updateConfig","query",n),getStats:n=>o("decoder","getStats","query",n),listActiveSessions:n=>o("decoder","listActiveSessions","query",n),reprobeHwaccel:n=>o("decoder","reprobeHwaccel","mutation",n)},deviceManager:{allocateDeviceId:n=>o("deviceManager","allocateDeviceId","mutation",n),registerDevice:n=>o("deviceManager","registerDevice","mutation",n),removeDevice:n=>o("deviceManager","removeDevice","mutation",n),persistConfig:n=>o("deviceManager","persistConfig","mutation",n),listLocations:n=>o("deviceManager","listLocations","query",n),addLocation:n=>o("deviceManager","addLocation","mutation",n),removeLocation:n=>o("deviceManager","removeLocation","mutation",n),listPersistedByAddon:n=>o("deviceManager","listPersistedByAddon","query",n),listAll:n=>o("deviceManager","listAll","query",n),getChildren:n=>o("deviceManager","getChildren","query",n),listWrappersForCap:n=>o("deviceManager","listWrappersForCap","query",n),listBindableCapsForDeviceType:n=>o("deviceManager","listBindableCapsForDeviceType","query",n),discoverDevices:n=>o("deviceManager","discoverDevices","mutation",n),adoptDevice:n=>o("deviceManager","adoptDevice","mutation",n),getCreationSchema:n=>o("deviceManager","getCreationSchema","query",n),createDevice:n=>o("deviceManager","createDevice","mutation",n),testCreationField:n=>o("deviceManager","testCreationField","mutation",n)},deviceProvider:{start:n=>o("deviceProvider","start","mutation",n),stop:n=>o("deviceProvider","stop","mutation",n),getStatus:n=>o("deviceProvider","getStatus","query",n),getDevices:n=>o("deviceProvider","getDevices","query",n),supportsDiscovery:n=>o("deviceProvider","supportsDiscovery","query",n),discoverDevices:n=>o("deviceProvider","discoverDevices","mutation",n),adoptDiscoveredDevice:n=>o("deviceProvider","adoptDiscoveredDevice","mutation",n),supportsManualCreation:n=>o("deviceProvider","supportsManualCreation","query",n),getChildCreationSchema:n=>o("deviceProvider","getChildCreationSchema","query",n),createDevice:n=>o("deviceProvider","createDevice","mutation",n),testCreationField:n=>o("deviceProvider","testCreationField","mutation",n)},deviceState:{getAllSnapshots:n=>o("deviceState","getAllSnapshots","query",n)},integrations:{list:n=>o("integrations","list","query",n),get:n=>o("integrations","get","query",n),getByAddonId:n=>o("integrations","getByAddonId","query",n),create:n=>o("integrations","create","mutation",n),update:n=>o("integrations","update","mutation",n),delete:n=>o("integrations","delete","mutation",n),getSettings:n=>o("integrations","getSettings","query",n),setSettings:n=>o("integrations","setSettings","mutation",n),getAvailableTypes:n=>o("integrations","getAvailableTypes","query",n),testConnection:n=>o("integrations","testConnection","mutation",n)},localNetwork:{list:n=>o("localNetwork","list","query",n),getPreferred:n=>o("localNetwork","getPreferred","query",n),getConnectionEndpoints:n=>o("localNetwork","getConnectionEndpoints","query",n),getAllowedAddresses:n=>o("localNetwork","getAllowedAddresses","query",n),setAllowedAddresses:n=>o("localNetwork","setAllowedAddresses","mutation",n),resetAllowlistToBestMatch:n=>o("localNetwork","resetAllowlistToBestMatch","mutation",n)},meshNetwork:{getStatus:n=>o("meshNetwork","getStatus","query",n),join:n=>o("meshNetwork","join","mutation",n),leave:n=>o("meshNetwork","leave","mutation",n),listPeers:n=>o("meshNetwork","listPeers","query",n),setPublicIngress:n=>o("meshNetwork","setPublicIngress","mutation",n),setMeshIngress:n=>o("meshNetwork","setMeshIngress","mutation",n)},meshOrchestrator:{listProviders:n=>o("meshOrchestrator","listProviders","query",n),joinProvider:n=>o("meshOrchestrator","joinProvider","mutation",n),leaveProvider:n=>o("meshOrchestrator","leaveProvider","mutation",n)},metricsProvider:{collectSnapshot:n=>o("metricsProvider","collectSnapshot","query",n),getCached:n=>o("metricsProvider","getCached","query",n),getCurrent:n=>o("metricsProvider","getCurrent","query",n),getDiskSpace:n=>o("metricsProvider","getDiskSpace","query",n),getGpuInfo:n=>o("metricsProvider","getGpuInfo","query",n),getCpuTemperature:n=>o("metricsProvider","getCpuTemperature","query",n),getProcessStats:n=>o("metricsProvider","getProcessStats","query",n),listAddonInstances:n=>o("metricsProvider","listAddonInstances","query",n),getAddonStats:n=>o("metricsProvider","getAddonStats","query",n),listNodeProcesses:n=>o("metricsProvider","listNodeProcesses","query",n),killProcess:n=>o("metricsProvider","killProcess","mutation",n)},networkQuality:{getAllStats:n=>o("networkQuality","getAllStats","query",n)},nodes:{topology:n=>o("nodes","topology","query",n),deployAddon:n=>o("nodes","deployAddon","mutation",n),undeployAddon:n=>o("nodes","undeployAddon","mutation",n),restartAddon:n=>o("nodes","restartAddon","mutation",n),restartProcess:n=>o("nodes","restartProcess","mutation",n),restartNode:n=>o("nodes","restartNode","mutation",n),shutdownNode:n=>o("nodes","shutdownNode","mutation",n),renameNode:n=>o("nodes","renameNode","mutation",n),clusterAddonStatus:n=>o("nodes","clusterAddonStatus","query",n),setProcessLogLevel:n=>o("nodes","setProcessLogLevel","mutation",n),executeQuery:n=>o("nodes","executeQuery","mutation",n)},notificationOutput:{send:n=>o("notificationOutput","send","mutation",n),sendTest:n=>o("notificationOutput","sendTest","mutation",n)},pipelineExecutor:{getAvailableEngines:n=>o("pipelineExecutor","getAvailableEngines","query",n),getSelectedEngine:n=>o("pipelineExecutor","getSelectedEngine","query",n),getDefaultSteps:n=>o("pipelineExecutor","getDefaultSteps","query",n),reprobeEngine:n=>o("pipelineExecutor","reprobeEngine","mutation",n),getVideoPipelineSteps:n=>o("pipelineExecutor","getVideoPipelineSteps","query",n),setVideoPipelineSteps:n=>o("pipelineExecutor","setVideoPipelineSteps","mutation",n),getSchema:n=>o("pipelineExecutor","getSchema","query",n),getGlobalSteps:n=>o("pipelineExecutor","getGlobalSteps","query",n),getGlobalPipelineConfig:n=>o("pipelineExecutor","getGlobalPipelineConfig","query",n),getOrchestratorConfigSchema:n=>o("pipelineExecutor","getOrchestratorConfigSchema","query",n),listTemplates:n=>o("pipelineExecutor","listTemplates","query",n),saveTemplate:n=>o("pipelineExecutor","saveTemplate","mutation",n),updateTemplate:n=>o("pipelineExecutor","updateTemplate","mutation",n),deleteTemplate:n=>o("pipelineExecutor","deleteTemplate","mutation",n),getCapabilities:n=>o("pipelineExecutor","getCapabilities","query",n),getAddonModels:n=>o("pipelineExecutor","getAddonModels","query",n),downloadModel:n=>o("pipelineExecutor","downloadModel","mutation",n),deleteModel:n=>o("pipelineExecutor","deleteModel","mutation",n),detect:n=>o("pipelineExecutor","detect","query",n),cacheFrameInPool:n=>o("pipelineExecutor","cacheFrameInPool","mutation",n),inferCached:n=>o("pipelineExecutor","inferCached","mutation",n),uncacheFrame:n=>o("pipelineExecutor","uncacheFrame","mutation",n),getEffectiveTuning:n=>o("pipelineExecutor","getEffectiveTuning","query",n),listLoadedEngines:n=>o("pipelineExecutor","listLoadedEngines","query",n),spinEngine:n=>o("pipelineExecutor","spinEngine","mutation",n),killEngine:n=>o("pipelineExecutor","killEngine","mutation",n),listReferenceImages:n=>o("pipelineExecutor","listReferenceImages","query",n),getReferenceImage:n=>o("pipelineExecutor","getReferenceImage","query",n),getReferenceAudioFiles:n=>o("pipelineExecutor","getReferenceAudioFiles","query",n),getReferenceAudio:n=>o("pipelineExecutor","getReferenceAudio","query",n),getAudioCapabilities:n=>o("pipelineExecutor","getAudioCapabilities","query",n),runAudioTest:n=>o("pipelineExecutor","runAudioTest","mutation",n),getDetectionConfigSchema:n=>o("pipelineExecutor","getDetectionConfigSchema","query",n)},pipelineOrchestrator:{rebalance:n=>o("pipelineOrchestrator","rebalance","mutation",n),getPipelineAssignments:n=>o("pipelineOrchestrator","getPipelineAssignments","query",n),getAgentLoad:n=>o("pipelineOrchestrator","getAgentLoad","query",n),getGlobalMetrics:n=>o("pipelineOrchestrator","getGlobalMetrics","query",n),getCapabilityBindings:n=>o("pipelineOrchestrator","getCapabilityBindings","query",n),setCapabilityBinding:n=>o("pipelineOrchestrator","setCapabilityBinding","mutation",n),getDecoderAssignments:n=>o("pipelineOrchestrator","getDecoderAssignments","query",n),getAudioNodeLoad:n=>o("pipelineOrchestrator","getAudioNodeLoad","query",n),getAgentSettings:n=>o("pipelineOrchestrator","getAgentSettings","query",n),listAgentSettings:n=>o("pipelineOrchestrator","listAgentSettings","query",n),setAgentAddonDefaults:n=>o("pipelineOrchestrator","setAgentAddonDefaults","mutation",n),removeAgentSettings:n=>o("pipelineOrchestrator","removeAgentSettings","mutation",n),listTemplates:n=>o("pipelineOrchestrator","listTemplates","query",n),saveTemplate:n=>o("pipelineOrchestrator","saveTemplate","mutation",n),updateTemplate:n=>o("pipelineOrchestrator","updateTemplate","mutation",n),deleteTemplate:n=>o("pipelineOrchestrator","deleteTemplate","mutation",n)},pipelineRunner:{attachCamera:n=>o("pipelineRunner","attachCamera","mutation",n),reportMotion:n=>o("pipelineRunner","reportMotion","mutation",n),getLocalLoad:n=>o("pipelineRunner","getLocalLoad","query",n),getLocalMetrics:n=>o("pipelineRunner","getLocalMetrics","query",n),getAllCameraMetrics:n=>o("pipelineRunner","getAllCameraMetrics","query",n),getLocalCameras:n=>o("pipelineRunner","getLocalCameras","query",n)},platformProbe:{getCapabilities:n=>o("platformProbe","getCapabilities","query",n),getHardware:n=>o("platformProbe","getHardware","query",n),resolveInferenceConfig:n=>o("platformProbe","resolveInferenceConfig","query",n),resolveHwAccel:n=>o("platformProbe","resolveHwAccel","query",n)},recordingEngine:{getStatus:n=>o("recordingEngine","getStatus","query",n),enable:n=>o("recordingEngine","enable","mutation",n),disable:n=>o("recordingEngine","disable","mutation",n),getConfig:n=>o("recordingEngine","getConfig","query",n),updateConfig:n=>o("recordingEngine","updateConfig","mutation",n),getPlaylist:n=>o("recordingEngine","getPlaylist","query",n),getThumbnail:n=>o("recordingEngine","getThumbnail","query",n),getSegments:n=>o("recordingEngine","getSegments","query",n),getAvailability:n=>o("recordingEngine","getAvailability","query",n),estimateStorage:n=>o("recordingEngine","estimateStorage","query",n),estimateGlobalStorage:n=>o("recordingEngine","estimateGlobalStorage","query",n),getStorageUsage:n=>o("recordingEngine","getStorageUsage","query",n),setPolicy:n=>o("recordingEngine","setPolicy","mutation",n),getPolicy:n=>o("recordingEngine","getPolicy","query",n),getRetentionConfig:n=>o("recordingEngine","getRetentionConfig","query",n),updateRetentionConfig:n=>o("recordingEngine","updateRetentionConfig","mutation",n),getMotionStats:n=>o("recordingEngine","getMotionStats","query",n)},remoteAccess:{listProviders:n=>o("remoteAccess","listProviders","query",n),startProvider:n=>o("remoteAccess","startProvider","mutation",n),stopProvider:n=>o("remoteAccess","stopProvider","mutation",n)},settingsStore:{get:n=>o("settingsStore","get","query",n),set:n=>o("settingsStore","set","mutation",n),query:n=>o("settingsStore","query","query",n),insert:n=>o("settingsStore","insert","mutation",n),update:n=>o("settingsStore","update","mutation",n),delete:n=>o("settingsStore","delete","mutation",n),count:n=>o("settingsStore","count","query",n),isEmpty:n=>o("settingsStore","isEmpty","query",n),declareCollection:n=>o("settingsStore","declareCollection","mutation",n)},storage:{resolve:n=>o("storage","resolve","query",n),write:n=>o("storage","write","mutation",n),read:n=>o("storage","read","query",n),exists:n=>o("storage","exists","query",n),list:n=>o("storage","list","query",n),delete:n=>o("storage","delete","mutation",n),getAvailableSpace:n=>o("storage","getAvailableSpace","query",n),beginUpload:n=>o("storage","beginUpload","mutation",n),writeChunk:n=>o("storage","writeChunk","mutation",n),finalizeUpload:n=>o("storage","finalizeUpload","mutation",n),abortUpload:n=>o("storage","abortUpload","mutation",n),beginDownload:n=>o("storage","beginDownload","mutation",n),readChunk:n=>o("storage","readChunk","query",n),endDownload:n=>o("storage","endDownload","mutation",n),listLocations:n=>o("storage","listLocations","query",n),getDefaultLocation:n=>o("storage","getDefaultLocation","query",n),upsertLocation:n=>o("storage","upsertLocation","mutation",n),deleteLocation:n=>o("storage","deleteLocation","mutation",n),testLocation:n=>o("storage","testLocation","query",n),listProviders:n=>o("storage","listProviders","query",n),testConfig:n=>o("storage","testConfig","query",n)},streamBroker:{listAllCameraStreams:n=>o("streamBroker","listAllCameraStreams","query",n),listAllProfileSlots:n=>o("streamBroker","listAllProfileSlots","query",n),getBrokerStats:n=>o("streamBroker","getBrokerStats","query",n),listClients:n=>o("streamBroker","listClients","query",n),killClient:n=>o("streamBroker","killClient","mutation",n),getStreamUrl:n=>o("streamBroker","getStreamUrl","query",n),getBroker:n=>o("streamBroker","getBroker","query",n),setPreBufferDuration:n=>o("streamBroker","setPreBufferDuration","mutation",n),getPreBufferInfo:n=>o("streamBroker","getPreBufferInfo","query",n),getRtspPort:n=>o("streamBroker","getRtspPort","query",n),getAllRtspEntries:n=>o("streamBroker","getAllRtspEntries","query",n),getRtspEntry:n=>o("streamBroker","getRtspEntry","query",n),regenerateRtspToken:n=>o("streamBroker","regenerateRtspToken","mutation",n),setRtspEnabled:n=>o("streamBroker","setRtspEnabled","mutation",n),isRtspEnabled:n=>o("streamBroker","isRtspEnabled","query",n)},system:{info:n=>o("system","info","query",n),health:n=>o("system","health","query",n),featureFlags:n=>o("system","featureFlags","query",n),networkAddresses:n=>o("system","networkAddresses","query",n),getRetentionConfig:n=>o("system","getRetentionConfig","query",n),setRetentionConfig:n=>o("system","setRetentionConfig","mutation",n),forceRetentionCleanup:n=>o("system","forceRetentionCleanup","mutation",n)},toast:{onToast:(n,N)=>o("toast","onToast","subscription",n,N)},turnOrchestrator:{listProviders:n=>o("turnOrchestrator","listProviders","query",n),getAllServers:n=>o("turnOrchestrator","getAllServers","query",n),setProviderEnabled:n=>o("turnOrchestrator","setProviderEnabled","mutation",n)},turnProvider:{getTurnServers:n=>o("turnProvider","getTurnServers","query",n)},userManagement:{listUsers:n=>o("userManagement","listUsers","query",n),createUser:n=>o("userManagement","createUser","mutation",n),updateUser:n=>o("userManagement","updateUser","mutation",n),deleteUser:n=>o("userManagement","deleteUser","mutation",n),resetPassword:n=>o("userManagement","resetPassword","mutation",n),validateCredentials:n=>o("userManagement","validateCredentials","mutation",n),listApiKeys:n=>o("userManagement","listApiKeys","query",n),createApiKey:n=>o("userManagement","createApiKey","mutation",n),revokeApiKey:n=>o("userManagement","revokeApiKey","mutation",n),validateApiKey:n=>o("userManagement","validateApiKey","mutation",n),createScopedToken:n=>o("userManagement","createScopedToken","mutation",n),revokeScopedToken:n=>o("userManagement","revokeScopedToken","mutation",n),validateScopedToken:n=>o("userManagement","validateScopedToken","query",n),listScopedTokens:n=>o("userManagement","listScopedTokens","query",n)}}}const Ti="device.state-changed",Ri="capability.binding-changed",Bi="device.registered",xi="device.unregistered",Li="device.updated";class Ld{constructor(c){this.api=c,this.stateSource=Mi(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(c=15e3){if(!this.initialized){if(this.initPromise)return this.initPromise;this.initPromise=(async()=>{const o=(I,u)=>Number.isFinite(c)?new Promise((p,k)=>{const P=setTimeout(()=>k(new Error(`SystemMirror.init: '${u}' timed out after ${c}ms`)),c);I.then(A=>{clearTimeout(P),p(A)},A=>{clearTimeout(P),k(A)})}):I,[g,S,f]=await Promise.all([o(this.api.deviceManager.getAllBindings.query({}),"deviceManager.getAllBindings"),o(this.api.deviceState.getAllSnapshots.query({}),"deviceState.getAllSnapshots"),o(this.api.deviceManager.listAll.query({}),"deviceManager.listAll")]);for(const I of g)this.bindings.set(I.deviceId,I);for(const[I,u]of Object.entries(S)){const p=Number(I);if(!Number.isFinite(p))continue;const k=new Map;for(const[P,A]of Object.entries(u))k.set(P,A);this.stateMirror.set(p,k)}for(const I of f)this.devices.set(I.id,I);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 c of this.bridges)try{c.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(c){const o=this.bindings.get(c);return o?qi(this.api,o,{stateSource:this.stateSource}):null}getDeviceByName(c){for(const o of this.devices.values())if(o.name===c)return this.getDeviceById(o.id);return null}getDeviceByStableId(c){for(const o of this.devices.values())if(o.stableId===c)return this.getDeviceById(o.id);return null}getDevicesByAddon(c){return this.query({addonId:c})}getDevicesByType(c){return this.query({type:c})}getDeviceInfo(c){return this.devices.get(c)??null}getAllDevices(){const c=[];for(const o of this.bindings.keys()){const g=this.getDeviceById(o);g&&c.push(g)}return c}filterByCap(c){return this.query({caps:c})}query(c={}){const o=[];for(const[g,S]of this.bindings){const f=this.devices.get(g);if(c.id!==void 0&&!ce(g,c.id)||c.stableId!==void 0&&(!f||!ce(f.stableId,c.stableId))||c.addonId!==void 0&&(!f||!ce(f.addonId,c.addonId))||c.type!==void 0&&(!f||!ce(f.type,c.type)))continue;if(c.caps!==void 0){const u=De(c.caps),p=new Set(S.entries.map(k=>k.capName));if(!u.every(k=>p.has(k)))continue}if(c.anyCap!==void 0){const u=De(c.anyCap),p=new Set(S.entries.map(k=>k.capName));if(!u.some(k=>p.has(k)))continue}if(c.name!==void 0&&(!f||!Oi(f.name,c.name))||c.online!==void 0&&(!f||f.online!==c.online))continue;if(c.parentDeviceId!==void 0){if(!f)continue;const u=c.parentDeviceId;if((f.parentDeviceId??null)!==u)continue}if(c.feature!==void 0&&(!f||!De(c.feature).every(p=>f.features.includes(p)))||c.isCamera!==void 0&&(!f||f.isCamera!==c.isCamera))continue;const I=this.getDeviceById(g);if(I){if(c.where&&f){if(!c.where(f,I))continue}else if(c.where&&!f)continue;o.push(I)}}return o}whereState(c,o){const g=[];for(const[S,f]of this.stateMirror){const I=f.get(c);if(!I||!o(I,S))continue;const u=this.getDeviceById(S);u&&g.push(u)}return g}mapState(c,o){const g=[];for(const[S,f]of this.stateMirror){const I=f.get(c);I&&g.push(o(I,S))}return g}findState(c,o){for(const[g,S]of this.stateMirror){const f=S.get(c);if(f&&o(f,g))return this.getDeviceById(g)}return null}countByCap(c){let o=0;for(const g of this.bindings.values())g.entries.some(S=>S.capName===c)&&o++;return o}countByState(c,o){let g=0;for(const[S,f]of this.stateMirror){const I=f.get(c);I&&o(I,S)&&g++}return g}listen(c){return this.globalStateListeners.add(c),()=>{this.globalStateListeners.delete(c)}}listenCap(c,o){let g=this.capListeners.get(c);return g||(g=new Set,this.capListeners.set(c,g)),g.add(o),()=>{g.delete(o),g.size===0&&this.capListeners.delete(c)}}listenDevice(c,o){let g=this.deviceListeners.get(c);return g||(g=new Set,this.deviceListeners.set(c,g)),g.add(o),()=>{g.delete(o),g.size===0&&this.deviceListeners.delete(c)}}onDeviceAdded(c){return this.addedListeners.add(c),()=>{this.addedListeners.delete(c)}}onDeviceRemoved(c){return this.removedListeners.add(c),()=>{this.removedListeners.delete(c)}}waitForState(c,o,g,S=3e4){return new Promise((f,I)=>{const p=(()=>{const A=this.stateMirror.get(c)?.get(o);return A&&g(A)?A:null})();if(p){f(p);return}let k=null;const P=this.listenDevice(c,(A,D,B)=>{D===o&&B&&g(B)&&(k&&clearTimeout(k),P(),f(B))});Number.isFinite(S)&&(k=setTimeout(()=>{P(),I(new Error(`waitForState timed out after ${S}ms (deviceId=${c}, capName=${o})`))},S))})}waitForDevice(c,o=3e4){return new Promise((g,S)=>{const f=this.getDeviceById(c);if(f){g(f);return}let I=null;const u=this.onDeviceAdded(p=>{if(p!==c)return;const k=this.getDeviceById(p);k&&(I&&clearTimeout(I),u(),g(k))});Number.isFinite(o)&&(I=setTimeout(()=>{u(),S(new Error(`waitForDevice timed out after ${o}ms (deviceId=${c})`))},o))})}async forEachCap(c,o){for(const g of this.filterByCap(c))await o(g)}async invokeCap(c,o,g,S={}){const f=this.filterByCap(c),I=Math.max(1,S.parallelism??f.length),u=[];for(let p=0;p<f.length;p+=I){const k=f.slice(p,p+I),P=await Promise.allSettled(k.map(async A=>{const D=A[c];if(!D||typeof D[o]!="function")throw new Error(`device '${A.deviceId}' does not expose '${c}.${o}'`);return await D[o](g)}));for(let A=0;A<P.length;A++){const D=k[A],B=P[A];B.status==="fulfilled"?u.push({deviceId:D.deviceId,ok:!0,result:B.value}):u.push({deviceId:D.deviceId,ok:!1,error:B.reason})}}return u}summary(){const c={},o={},g={};let S=0,f=0;for(const I of this.bindings.values())for(const u of I.entries)c[u.capName]=(c[u.capName]??0)+1;for(const I of this.devices.values())o[I.addonId]=(o[I.addonId]??0)+1,g[I.type]=(g[I.type]??0)+1,I.online?S++:f++;return{totalDevices:this.bindings.size,online:S,offline:f,byCap:c,byAddon:o,byType:g,statedDevices:this.stateMirror.size}}dump(c){const o=S=>{const f=this.devices.get(S)??null,I=this.bindings.get(S)??null,u={},p=this.stateMirror.get(S);if(p)for(const[k,P]of p)u[k]={...P};return{deviceId:S,info:f,binding:I?{...I,entries:I.entries.map(k=>({...k}))}:null,state:u}};if(c!==void 0)return o(c);const g=[];for(const S of this.bindings.keys())g.push(o(S));return g}getRawMirror(){return this.stateMirror}getSystemState(){const c=new Map;for(const[o,g]of this.stateMirror){const S=new Map;for(const[f,I]of g)S.set(f,{...I});c.set(o,S)}return c}subscribeBus(){if(!this.api.live?.onEvent)return;const c=this.api.live.onEvent;this.bridges.push(c.subscribe({category:Ti},{onData:o=>{const g=o.data;!g||typeof g.deviceId!="number"||typeof g.capName!="string"||this.applyStateUpdate(g.deviceId,g.capName,g.slice)}})),this.bridges.push(c.subscribe({category:Ri},{onData:o=>{const g=o.data,S=typeof g?.deviceId=="number"?g.deviceId:g?.source?.type==="device"&&typeof g.source.id=="number"?g.source.id:null;S!==null&&this.refreshBinding(S)}})),this.bridges.push(c.subscribe({category:Bi},{onData:o=>{const g=o.data;typeof g?.deviceId=="number"&&this.refreshDeviceMetadata(g.deviceId,"added")}})),this.bridges.push(c.subscribe({category:xi},{onData:o=>{const g=o.data;typeof g?.deviceId=="number"&&this.applyDeviceRemoval(g.deviceId)}})),this.bridges.push(c.subscribe({category:Li},{onData:o=>{const g=o.data;typeof g?.deviceId=="number"&&this.refreshDeviceMetadata(g.deviceId,"updated")}}))}applyStateUpdate(c,o,g){let S=this.stateMirror.get(c);S||(S=new Map,this.stateMirror.set(c,S)),g===void 0?S.delete(o):S.set(o,g);const f=`${c}:${o}`,I=this.handleListeners.get(f);if(I)for(const k of I)try{k(g)}catch{}for(const k of this.globalStateListeners)try{k(c,o,g)}catch{}const u=this.capListeners.get(o);if(u)for(const k of u)try{k(c,g)}catch{}const p=this.deviceListeners.get(c);if(p)for(const k of p)try{k(c,o,g)}catch{}}applyDeviceRemoval(c){const o=this.devices.get(c)??null;this.bindings.delete(c),this.devices.delete(c),this.stateMirror.delete(c);for(const g of this.removedListeners)try{g(c,o)}catch{}}async refreshBinding(c){try{const g=(await this.api.deviceManager.getAllBindings.query({})).find(S=>S.deviceId===c);g?this.bindings.set(c,g):this.applyDeviceRemoval(c)}catch{}}async refreshDeviceMetadata(c,o){try{const S=(await this.api.deviceManager.listAll.query({})).find(I=>I.id===c);if(!S)return;const f=!this.devices.has(c);if(this.devices.set(c,S),o==="added"&&f){await this.refreshBinding(c);for(const I of this.addedListeners)try{I(c,S)}catch{}}}catch{}}}function ce(m,c){return Array.isArray(c)?c.includes(m):m===c}function De(m){return Array.isArray(m)?m:[m]}function Oi(m,c){return typeof c=="string"?m===c:c instanceof RegExp?c.test(m):"exact"in c?m===c.exact:"contains"in c?m.toLowerCase().includes(c.contains.toLowerCase()):!1}const zi=t({id:e(),label:e(),icon:e(),order:a().optional()}),Ni=t({id:e(),title:e(),description:e().optional(),style:h(["card","accordion"]).optional(),defaultCollapsed:l().optional(),columns:E([b(1),b(2),b(3),b(4)]).optional(),tab:e().optional(),location:h(["settings","top-tab"]).optional(),order:a().optional(),fields:r(Aa())}),j=t({tabs:r(zi).optional(),sections:r(Ni)}),Zt=y(e(),v()),Qt=t({success:b(!0)}),Od={name:"addon-settings",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{getGlobalSettings:i(t({addonId:e(),nodeId:e().optional(),overlay:y(e(),v()).optional()}),j.nullable()),updateGlobalSettings:i(t({addonId:e(),nodeId:e().optional(),patch:Zt}),Qt,{kind:"mutation",auth:"admin"}),getDeviceSettings:i(t({addonId:e(),deviceId:a(),nodeId:e().optional()}),j.nullable()),updateDeviceSettings:i(t({addonId:e(),deviceId:a(),nodeId:e().optional(),patch:Zt}),Qt,{kind:"mutation",auth:"admin"})}},Fi=h(["info","success","warning","error"]),Ui=h(["active","in-progress","completed","failed","dismissed"]),_i=t({type:e(),id:e()}),Me=t({id:e(),category:e(),severity:Fi,title:e(),message:e(),status:Ui,progress:a().optional(),read:l(),createdAt:a(),updatedAt:a(),source:_i.optional(),metadata:y(e(),v()).optional()}),zd={name:"alerts",scope:"system",mode:"singleton",methods:{emit:i(Me,d(),{kind:"mutation"}),update:i(t({alertId:e(),patch:Me.partial()}),d(),{kind:"mutation"}),list:i(t({unreadOnly:l().optional(),limit:a().optional()}).optional(),r(Me).readonly()),getUnreadCount:i(d(),a()),markRead:i(t({alertId:e()}),d(),{kind:"mutation"}),markAllRead:i(d(),d(),{kind:"mutation"}),dismiss:i(t({alertId:e()}),d(),{kind:"mutation"})}},Nd={name:"storage",scope:"system",mode:"singleton",methods:{resolve:i(t({location:O,relativePath:e()}),e()),write:i(t({location:O,relativePath:e(),data:w(Uint8Array)}),d(),{kind:"mutation"}),read:i(t({location:O,relativePath:e()}),w(Uint8Array)),exists:i(t({location:O,relativePath:e()}),l()),list:i(t({location:O,prefix:e().optional()}),r(e()).readonly()),delete:i(t({location:O,relativePath:e()}),d(),{kind:"mutation"}),getAvailableSpace:i(t({location:O}),a().nullable()),beginUpload:i(t({location:O,relativePath:e(),sizeBytes:a().optional()}),t({uploadId:e()}),{kind:"mutation"}),writeChunk:i(t({uploadId:e(),offset:a(),data:w(Uint8Array)}),d(),{kind:"mutation"}),finalizeUpload:i(t({uploadId:e()}),d(),{kind:"mutation"}),abortUpload:i(t({uploadId:e()}),d(),{kind:"mutation"}),beginDownload:i(t({location:O,relativePath:e()}),t({downloadId:e(),sizeBytes:a()}),{kind:"mutation"}),readChunk:i(t({downloadId:e(),offset:a(),length:a()}),w(Uint8Array)),endDownload:i(t({downloadId:e()}),d(),{kind:"mutation"}),listLocations:i(t({type:K.optional()}),r(T).readonly()),getDefaultLocation:i(t({type:K}),T.nullable()),upsertLocation:i(T.omit({createdAt:!0,updatedAt:!0}),T,{kind:"mutation",auth:"superAdmin"}),deleteLocation:i(t({id:e()}),d(),{kind:"mutation",auth:"superAdmin"}),testLocation:i(t({id:e()}),t({ok:l(),error:e().optional()}),{auth:"superAdmin"}),listProviders:i(d(),r(t({providerId:e(),displayName:e(),supportedLocationTypes:r(K).readonly(),configSchema:v()})).readonly()),testConfig:i(t({providerId:e(),config:y(e(),v())}),t({ok:l(),error:e().optional()}),{auth:"superAdmin"})}},Hi=t({providerId:e().min(1),displayName:e().min(1),supportedLocationTypes:r(K).readonly(),configSchema:v()}),Wi=t({ok:l(),error:e().optional()}),Gi=t({location:T,relativePath:e(),sizeBytes:a().optional()}),Vi=t({uploadId:e()}),ji=t({uploadId:e(),offset:a(),data:w(Uint8Array)}),Ki=t({uploadId:e()}),$i=t({uploadId:e()}),Zi=t({location:T,relativePath:e()}),Qi=t({downloadId:e(),sizeBytes:a()}),Yi=t({downloadId:e(),offset:a(),length:a()}),Ji=t({downloadId:e()}),Fd={name:"storage-provider",scope:"system",mode:"collection",internal:!0,methods:{getProviderInfo:i(d(),Hi),testLocation:i(t({config:y(e(),v())}),Wi,{auth:"superAdmin"}),resolve:i(t({location:T,relativePath:e()}),e()),write:i(t({location:T,relativePath:e(),data:w(Uint8Array)}),d(),{kind:"mutation"}),read:i(t({location:T,relativePath:e()}),w(Uint8Array)),exists:i(t({location:T,relativePath:e()}),l()),list:i(t({location:T,prefix:e().optional()}),r(e()).readonly()),delete:i(t({location:T,relativePath:e()}),d(),{kind:"mutation"}),getAvailableSpace:i(t({location:T}),a().nullable()),beginUpload:i(Gi,Vi,{kind:"mutation"}),writeChunk:i(ji,d(),{kind:"mutation"}),finalizeUpload:i(Ki,d(),{kind:"mutation"}),abortUpload:i($i,d(),{kind:"mutation"}),beginDownload:i(Zi,Qi,{kind:"mutation"}),readChunk:i(Yi,w(Uint8Array)),endDownload:i(Ji,d(),{kind:"mutation"})}},Xi=t({subId:e(),displayName:e(),description:e().optional(),kind:e(),triggerSupported:l(),restoreSupported:l()}),eo=Xi.extend({id:e(),addonId:e(),enabled:l(),retentionCount:a(),label:e().optional(),lastSuccessAt:a().optional(),lastSuccessSizeBytes:a().optional(),cron:e().optional(),nextRunAt:a().optional(),lastRunAt:a().optional()}),to=t({id:e(),filename:e(),createdAt:a(),sizeBytes:a(),label:e().optional(),locations:r(e()).readonly()}),Yt=t({id:e(),destinationId:e().optional(),label:e().optional(),createdAt:a(),sizeBytes:a(),locations:r(e()).optional()}),ao=t({path:e(),kind:h(["file","dir","symlink"]),sizeBytes:a(),mtime:a()}),no=t({archiveVersion:b(1),createdAt:a(),dataDir:e(),locations:r(e()),entries:r(ao),totalBytes:a(),totalFiles:a()}),io=t({name:e(),sizeBytes:a(),fileCount:a(),present:l()}),Ud={name:"backup",scope:"system",mode:"singleton",methods:{listDestinations:i(d(),r(eo).readonly(),{auth:"superAdmin"}),trigger:i(t({destinations:r(e()).optional(),locations:r(e()).optional(),label:e().optional()}).optional(),r(Yt).readonly(),{kind:"mutation",auth:"superAdmin"}),list:i(d(),r(Yt).readonly(),{auth:"superAdmin"}),listLocations:i(d(),r(io).readonly(),{auth:"superAdmin"}),getEntries:i(t({destinationId:e(),backupId:e()}),no.nullable(),{auth:"superAdmin"}),restore:i(t({destinationId:e(),backupId:e(),locations:r(e()).optional()}),d(),{kind:"mutation",auth:"superAdmin"}),delete:i(t({destinationId:e(),backupId:e()}),d(),{kind:"mutation",auth:"superAdmin"}),listArchives:i(t({destinationId:e()}),r(to).readonly(),{auth:"superAdmin"}),upsertDestinationPolicy:i(t({locationId:e(),enabled:l(),retentionCount:a().int().min(1).max(1e3),label:e().optional(),cron:e().optional()}),d(),{kind:"mutation",auth:"superAdmin"}),previewSchedule:i(t({cron:e(),count:a().int().min(1).max(20).optional()}),t({ok:l(),error:e().optional(),nextRuns:r(a()).readonly()}))}},Jt=t({where:y(e(),v()).optional(),whereIn:y(e(),r(v())).optional(),whereBetween:y(e(),Pa([v(),v()])).optional(),orderBy:t({field:e(),direction:h(["asc","desc"])}).optional(),limit:a().optional(),offset:a().optional()}),Xt=t({id:e(),data:y(e(),v())}),oo=t({name:e(),type:h(["TEXT","INTEGER","REAL","JSON"]),primaryKey:l().optional(),notNull:l().optional(),unique:l().optional()}),so=t({name:e(),columns:r(e()).readonly(),unique:l().optional()}),_d={name:"settings-store",scope:"system",mode:"singleton",methods:{get:i(t({namespace:e().optional(),collection:e(),key:e()}),v()),set:i(t({namespace:e().optional(),collection:e(),key:e(),value:v()}),d(),{kind:"mutation"}),query:i(t({namespace:e().optional(),collection:e(),filter:Jt.optional()}),r(Xt).readonly()),insert:i(t({namespace:e().optional(),collection:e(),record:Xt}),d(),{kind:"mutation"}),update:i(t({namespace:e().optional(),collection:e(),id:e(),data:y(e(),v())}),d(),{kind:"mutation"}),delete:i(t({namespace:e().optional(),collection:e(),key:e()}),d(),{kind:"mutation"}),count:i(t({namespace:e().optional(),collection:e(),filter:Jt.optional()}),a()),isEmpty:i(t({namespace:e().optional(),collection:e()}),l()),declareCollection:i(t({namespace:e().optional(),collection:e(),columns:r(oo).readonly(),indexes:r(so).readonly().optional()}),d(),{kind:"mutation"})}},Ta=h(["debug","info","warn","error"]),ea=t({timestamp:Ne(),level:Ta,scope:r(e()),message:e(),meta:y(e(),v()).optional(),tags:y(e(),e()).optional()}),Hd={name:"log-destination",scope:"system",mode:"collection",internal:!0,methods:{write:i(ea,d(),{kind:"mutation"}),query:i(t({scope:r(e()).optional(),level:Ta.optional(),since:Ne().optional(),until:Ne().optional(),limit:a().optional(),tags:y(e(),e()).optional()}),r(ea).readonly())}},Wd={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:i(d(),e()),getVersion:i(d(),e())}},ro=t({id:e(),label:e(),icon:e(),path:e(),remoteName:e(),bundle:e()}),co=t({addonId:e(),page:ro,bundleUrl:e()}),Gd={name:"addon-pages",scope:"system",mode:"singleton",methods:{listPages:i(d(),r(co).readonly())}},lo=t({id:e(),label:e(),icon:e(),path:e(),remoteName:e(),bundle:e()}),Vd={name:"addon-pages-source",scope:"system",mode:"collection",internal:!0,methods:{listPages:i(d(),r(lo).readonly())}},uo=h(["device-tab","dashboard","integration-detail"]),ta=h(["xs","sm","md","lg","xl"]),Ra=t({stableId:e(),label:e(),description:e().optional(),icon:e().optional(),remoteName:e(),bundle:e(),hosts:r(uo).readonly(),requires:t({deviceContext:l().default(!1),integrationContext:l().default(!1)}),defaultSize:ta.default("md"),allowedSizes:r(ta).readonly().default(["sm","md","lg"]),defaultColumns:a().int().min(1).max(12).default(6),defaultRows:a().int().min(1).max(12).default(1)}),jd={name:"addon-widgets-source",scope:"system",mode:"collection",internal:!0,methods:{listWidgets:i(d(),r(Ra).readonly())}},mo=Ra.extend({addonId:e(),bundleUrl:e()}),Kd={name:"addon-widgets",scope:"system",mode:"singleton",methods:{listWidgets:i(d(),r(mo).readonly())}},po=t({method:h(["GET","POST","PUT","DELETE","PATCH"]),path:e()}),$d={name:"addon-routes",scope:"system",mode:"collection",internal:!0,methods:{getRoutes:i(d(),r(po))}},Zd=[{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)"}],Qd={hwaccel:"auto",probedBestHwaccel:""},Yd={name:"decoder",scope:"system",mode:"singleton",methods:{supportsCodec:i(t({codec:e()}),l()),getInfo:i(d(),t({id:e(),name:e(),isPullMode:l().optional(),priority:a().optional()})),createSession:i(zt,t({sessionId:e(),nodeId:e()})),destroySession:i(t({sessionId:e()}),d()),pushPacket:i(t({sessionId:e(),packet:Mn}),d()),openStream:i(t({sessionId:e(),url:e()}),d()),pullFrames:i(t({sessionId:e(),maxCount:a().default(1)}),r(En)),updateConfig:i(t({sessionId:e(),config:zt.partial()}),d()),getStats:i(t({sessionId:e()}),un),listActiveSessions:i(d(),r(t({sessionId:e(),codec:e(),outputFormat:e(),createdAtMs:a()})).readonly()),reprobeHwaccel:i(d(),t({backend:e()}),{kind:"mutation",auth:"admin"})}},go=t({streamId:e(),label:e().optional(),codec:e(),type:h(["video","audio"]),sourceUrl:e()}),ho=t({streamId:e(),format:e(),value:e()}),Jd={name:"restreamer",scope:"system",mode:"collection",internal:!0,methods:{registerDevice:i(t({deviceId:a(),streams:r(go).readonly()}),d(),{kind:"mutation"}),unregisterDevice:i(t({deviceId:a()}),d(),{kind:"mutation"}),getExposedResources:i(t({deviceId:a()}),r(ho).readonly())}},Ba=t({viewportWidth:a().int().positive().optional(),viewportHeight:a().int().positive().optional(),devicePixelRatio:a().positive().optional(),downlinkMbps:a().nonnegative().optional(),prefersTier:e().optional()}).partial(),Xd={name:"webrtc",scope:"system",mode:"collection",internal:!0,methods:{handleOffer:i(t({streamId:e(),sdpOffer:e()}),e(),{kind:"mutation"}),supportsStream:i(t({streamId:e()}),l()),registerStream:i(t({streamId:e(),codec:e()}),d(),{kind:"mutation"}),unregisterStream:i(t({streamId:e()}),d(),{kind:"mutation"}),createSession:i(t({streamId:e(),hints:Ba.optional()}),t({sessionId:e(),sdpOffer:e()}),{kind:"mutation"}),handleAnswer:i(t({sessionId:e(),sdpAnswer:e()}),d(),{kind:"mutation"}),closeSession:i(t({sessionId:e()}),d(),{kind:"mutation"}),hasAdaptiveBitrate:i(t({streamId:e()}),l())}},xa=on("kind",[t({kind:b("adaptive")}),t({kind:b("profile"),profile:_}),t({kind:b("cam-stream"),camStreamId:e().min(1)})]),vo=t({id:e(),label:e(),target:xa,codec:e().nullable(),resolution:t({width:a(),height:a()}).nullable(),status:h(["idle","connecting","streaming","error","stopped"]).nullable(),inputFps:a().nullable(),decodeFps:a().nullable(),bitrateKbps:a().nullable()}),ec={name:"webrtc-session",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listStreams:i(t({deviceId:a().int().nonnegative()}),r(vo)),createSession:i(t({deviceId:a().int().nonnegative(),target:xa,hints:Ba.optional()}),t({sessionId:e(),sdpOffer:e()}),{kind:"mutation"}),handleAnswer:i(t({deviceId:a().int().nonnegative(),sessionId:e(),sdpAnswer:e()}),d(),{kind:"mutation"}),closeSession:i(t({deviceId:a().int().nonnegative(),sessionId:e()}),d(),{kind:"mutation"}),hasAdaptiveBitrate:i(t({deviceId:a().int().nonnegative(),profile:_}),l())}},ge=t({engine:M,steps:r($).readonly(),audio:t({engine:M,modelId:e(),enabled:l(),settings:y(e(),v()).readonly().optional()}).nullable().optional()}),Ee=t({id:e(),name:e(),description:e().optional(),config:ge,createdAt:e(),updatedAt:e()}),La=t({enabled:l(),modelId:e(),settings:y(e(),v()).readonly()}),aa=t({addonDefaults:y(e(),La).readonly()}),Oa=t({steps:r($).readonly(),audio:t({modelId:e(),enabled:l()}).nullable()}),Qe=t({enabled:l().optional(),modelId:e().optional(),settings:y(e(),v()).readonly().optional()}),yo=t({pinnedAgentNodeId:e().optional(),stepToggles:y(e(),l()).optional(),stepOverridesByAgent:y(e(),y(e(),Qe)).optional(),pipelineByAgent:y(e(),Oa).optional()}),na=t({deviceId:a(),agentNodeId:e(),pinned:l(),reason:h(["manual","capacity","hardware-affinity","failover","rebalance"]),assignedAt:a()}),ia=t({deviceId:a(),decoderNodeId:e(),pinned:l(),reason:h(["manual","co-located","capacity","hardware-affinity"])}),So=t({nodeId:e(),online:l(),load:Ma,score:a()}),bo=t({totalAgents:a(),onlineAgents:a(),totalCameras:a(),attachedCameras:a(),activeCameras:a(),avgInferenceTimeMs:a(),queueDepth:a()}),fo=y(e(),e()),tc={name:"pipeline-orchestrator",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{assignPipeline:i(t({deviceId:a(),agentNodeId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),unassignPipeline:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),rebalance:i(d(),t({migrated:a()}),{kind:"mutation",auth:"admin"}),getPipelineAssignments:i(d(),r(na).readonly()),getPipelineAssignment:i(t({deviceId:a()}),na.nullable()),getAgentLoad:i(d(),r(So).readonly()),getGlobalMetrics:i(d(),bo),getCameraMetrics:i(t({deviceId:a()}),ct.nullable()),getCapabilityBindings:i(t({nodeId:e()}),fo),setCapabilityBinding:i(t({nodeId:e(),capName:e(),addonId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),assignDecoder:i(t({deviceId:a(),nodeId:e()}),d(),{kind:"mutation",auth:"admin"}),unassignDecoder:i(t({deviceId:a()}),d(),{kind:"mutation",auth:"admin"}),getDecoderAssignments:i(d(),r(ia).readonly()),assignAudio:i(t({deviceId:a(),nodeId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),unassignAudio:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getAudioAssignment:i(t({deviceId:a()}),t({nodeId:e(),pinned:l(),assignedAt:a()}).nullable()),getAudioNodeLoad:i(d(),r(t({nodeId:e(),deviceCount:a()}))),getAudioAssignments:i(d(),r(t({deviceId:a(),nodeId:e(),pinned:l(),assignedAt:a()}))),getDecoderAssignment:i(t({deviceId:a(),pipelineNodeId:e().optional()}),ia),getAgentSettings:i(t({agentNodeId:e()}),aa.nullable()),listAgentSettings:i(d(),r(t({nodeId:e(),settings:aa})).readonly()),setAgentAddonDefaults:i(t({agentNodeId:e(),defaults:y(e(),La)}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),removeAgentSettings:i(t({agentNodeId:e()}),t({success:l(),removed:l()}),{kind:"mutation",auth:"admin"}),getCameraSettings:i(t({deviceId:a()}),yo.nullable()),setCameraStepToggle:i(t({deviceId:a(),addonId:e(),enabled:l().nullable()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getCameraStepOverrides:i(t({deviceId:a()}),y(e(),y(e(),Qe)).nullable()),setCameraStepOverride:i(t({deviceId:a(),agentNodeId:e(),addonId:e(),patch:Qe.nullable()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),setCameraPipelineForAgent:i(t({deviceId:a(),agentNodeId:e(),pipeline:Oa.nullable()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),resolvePipeline:i(t({deviceId:a(),agentNodeId:e().optional()}),ge),listTemplates:i(d(),r(Ee).readonly()),saveTemplate:i(t({name:e(),description:e().optional(),config:ge}),Ee,{kind:"mutation",auth:"admin"}),updateTemplate:i(t({id:e(),name:e().optional(),description:e().optional(),config:ge.optional()}),Ee,{kind:"mutation",auth:"admin"}),deleteTemplate:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"})}},Io=t({level:_n,classification:t({labels:r(Ge).readonly(),inferenceMs:a()}).optional(),timestamp:a()}),ko=t({minConfidence:a().min(0).max(1).default(.3),allowedClasses:r(e()).default([])}),Co=t({labels:r(Ge).readonly(),rawLabels:r(Ge).readonly().optional(),inferenceMs:a()}),ac=[{value:"auto",label:"Auto (platform default)"},{value:"apple-soundanalysis",label:"Apple SoundAnalysis (macOS 12+)"},{value:"yamnet-onnx",label:"YAMNet ONNX (cross-platform)"}],nc={audioBackend:"auto",probedBestAudioBackend:"",selectedAudioModel:""},ic={name:"audio-analyzer",scope:"system",mode:"singleton",methods:{analyseChunk:i(t({chunk:Wt,settings:ko}),Io.nullable(),{kind:"mutation"}),classify:i(Wt,Co,{timeoutMs:3e4}),isReady:i(d(),l()),dispose:i(d(),d(),{kind:"mutation"}),reprobeAudioEngine:i(d(),t({backend:e()}),{kind:"mutation",auth:"admin"})}},oc={name:"audio-analysis",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{resolveDeviceSettings:i(t({deviceId:a()}),R())},events:{onAudioLevel:G(t({deviceId:a(),rms:a(),dbfs:a()}))}},be=h(["f32le","s16le"]),Ao=t({codec:e(),canDecode:l(),canEncode:l(),label:e().optional()}),Po=t({codec:e(),sourceSampleRate:a().int().positive(),sourceChannels:a().int().positive(),extraData:w(Uint8Array).optional(),targetSampleRate:a().int().positive(),targetChannels:a().int().positive(),targetFormat:be.optional(),idleMs:a().int().positive().optional(),tag:e().optional()}),wo=t({codec:e(),sourceSampleRate:a().int().positive(),sourceChannels:a().int().positive(),sourceFormat:be.optional(),targetSampleRate:a().int().positive(),targetChannels:a().int().positive(),bitrateKbps:a().int().positive().optional(),idleMs:a().int().positive().optional(),tag:e().optional()}),Do=t({data:w(Uint8Array),sampleRate:a().int().positive(),channels:a().int().positive(),format:be,pts:a()}),oa=t({data:w(Uint8Array),codec:e(),pts:a(),frameComplete:l()}),Mo=t({sessionId:e(),kind:h(["decode","encode"]),codec:e(),sourceSampleRate:a(),sourceChannels:a(),targetSampleRate:a(),targetChannels:a(),format:be,tag:e().optional(),createdAtMs:a(),lastActivityMs:a(),framesIn:a(),framesOut:a()}),sc={name:"audio-codec",scope:"system",mode:"singleton",methods:{listSupportedCodecs:i(d(),r(Ao).readonly()),canHandle:i(t({codec:e(),kind:h(["decode","encode"])}),l()),createDecodeSession:i(Po,t({sessionId:e(),nodeId:e()}),{kind:"mutation"}),createEncodeSession:i(wo,t({sessionId:e(),nodeId:e()}),{kind:"mutation"}),closeSession:i(t({sessionId:e(),nodeId:e().optional()}),d(),{kind:"mutation"}),pushEncodedFrame:i(t({sessionId:e(),nodeId:e().optional(),data:w(Uint8Array),pts:a().optional()}),d(),{kind:"mutation"}),pullPcm:i(t({sessionId:e(),nodeId:e().optional(),maxCount:a().int().positive().default(8)}),r(Do)),pushPcm:i(t({sessionId:e(),nodeId:e().optional(),data:w(Uint8Array),pts:a().optional()}),d(),{kind:"mutation"}),pullEncoded:i(t({sessionId:e(),nodeId:e().optional(),maxCount:a().int().positive().default(8)}),r(oa)),flushEncode:i(t({sessionId:e(),nodeId:e().optional()}),r(oa),{kind:"mutation"}),listActiveSessions:i(d(),r(Mo).readonly())}},sa=t({embedding:r(a()),dimensions:a()}),Eo=t({modelId:e(),dimensions:a(),inputSize:a()}),rc={name:"embedding-encoder",scope:"system",mode:"collection",internal:!0,methods:{encode:i(t({crop:w(Uint8Array),width:a(),height:a()}),sa),encodeText:i(t({text:e()}),sa),getInfo:i(d(),Eo)}},qe=t({id:a(),stableId:e(),addonId:e(),type:h(C),name:e(),location:e().nullable(),disabled:l(),parentDeviceId:a().nullable(),role:e().nullable().optional(),online:l(),features:r(e()),isCamera:l(),config:y(e(),v()),metadata:y(e(),v()).nullable().optional()}),qo=t({key:e(),value:v(),description:e().optional()}),To=t({id:a(),stableId:e(),type:e(),name:e(),location:e().nullable(),disabled:l(),parentDeviceId:a().nullable(),role:e().nullable().optional()}),Ro=t({id:a(),stableId:e(),addonId:e(),type:e(),name:e(),location:e().nullable(),disabled:l(),parentDeviceId:a().nullable(),metadata:y(e(),v()).nullable().optional()}),Bo=v().nullable(),xo=t({streamId:e(),width:a().optional(),height:a().optional(),codec:e().optional(),fps:a().optional(),bitrateKbps:a().optional()}),Lo=t({addonId:e(),stableId:e(),id:a(),type:e(),name:e(),location:e().nullable().optional(),disabled:l().optional(),parentDeviceId:a().nullable(),role:e().nullable().optional(),features:r(e()).optional(),config:y(e(),v())}),Oo=t({deviceId:a()}),zo=t({deviceId:a(),data:y(e(),v())}),dc={name:"device-manager",scope:"system",mode:"singleton",methods:{allocateDeviceId:i(t({addonId:e(),stableId:e()}),t({id:a()}),{kind:"mutation"}),registerDevice:i(Lo,d(),{kind:"mutation"}),removeDevice:i(Oo,d(),{kind:"mutation"}),persistConfig:i(zo,d(),{kind:"mutation"}),loadConfig:i(t({deviceId:a()}),y(e(),v())),loadRuntimeState:i(t({deviceId:a()}),y(e(),v())),loadMeta:i(t({deviceId:a()}),Ro.nullable()),setName:i(t({deviceId:a(),name:e()}),d(),{kind:"mutation",auth:"admin"}),setLocation:i(t({deviceId:a(),location:e().nullable()}),d(),{kind:"mutation",auth:"admin"}),setMetadata:i(t({deviceId:a(),patch:y(e(),v())}),d(),{kind:"mutation",auth:"admin"}),listLocations:i(d(),r(e())),addLocation:i(t({name:e()}),d(),{kind:"mutation",auth:"admin"}),removeLocation:i(t({name:e(),cascade:l().optional()}),d(),{kind:"mutation",auth:"admin"}),setDisabled:i(t({deviceId:a(),disabled:l()}),d(),{kind:"mutation",auth:"admin"}),listPersistedByAddon:i(t({addonId:e()}),r(To)),listAll:i(t({addonId:e().optional()}),r(qe)),getDevice:i(t({deviceId:a()}),qe.nullable()),getChildren:i(t({parentDeviceId:a()}),r(qe)),getStreamSources:i(t({deviceId:a()}),r(Dn)),getConfigSchema:i(t({deviceId:a()}),r(qo)),getSettingsSchema:i(t({deviceId:a()}),Bo),updateConfig:i(t({deviceId:a(),values:y(e(),v())}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),enable:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),disable:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),remove:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getStreamProfileMap:i(t({deviceId:a()}),y(e(),e().nullable())),setStreamProfileMap:i(t({deviceId:a(),profileMap:y(e(),e().nullable())}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),probeStreams:i(t({deviceId:a()}),r(xo),{kind:"mutation",auth:"admin"}),getBindings:i(t({deviceId:a()}),t({deviceId:a(),entries:r(t({capName:e(),kind:h(["native","wrapped"]),providerAddonId:e(),providerNodeId:e(),nativeAddonId:e()}))})),getAllBindings:i(t({}),r(t({deviceId:a(),entries:r(t({capName:e(),kind:h(["native","wrapped"]),providerAddonId:e(),providerNodeId:e(),nativeAddonId:e()}))}))),setWrapperActive:i(t({deviceId:a(),capName:e(),wrapperAddonId:e(),active:l()}),d(),{kind:"mutation",auth:"admin"}),listWrappersForCap:i(t({capName:e()}),r(e())),listBindableCapsForDeviceType:i(t({deviceType:e()}),r(t({capName:e(),wrappers:r(e())}))),getDeviceSettingsAggregate:i(t({deviceId:a()}),j.nullable()),getDeviceLiveInfoAggregate:i(t({deviceId:a()}),j.nullable()),getDeviceAggregate:i(t({deviceId:a()}),t({settings:j.nullable(),live:j.nullable()})),updateDeviceField:i(t({deviceId:a(),writerCapName:e(),writerAddonId:e(),key:e(),value:v()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),updateDeviceFieldsBatch:i(t({deviceId:a(),changes:r(t({writerCapName:e(),writerAddonId:e(),key:e(),value:v()}))}),t({success:b(!0),failures:r(t({writerCapName:e(),writerAddonId:e(),error:e()}))}),{kind:"mutation",auth:"admin"}),discoverDevices:i(t({addonId:e()}),r(ye),{kind:"mutation",auth:"admin"}),adoptDevice:i(t({addonId:e(),candidate:ye}),Se,{kind:"mutation",auth:"admin"}),getCreationSchema:i(t({addonId:e(),type:h(C)}),v().nullable()),createDevice:i(t({addonId:e(),type:h(C),config:y(e(),v())}),Se,{kind:"mutation",auth:"admin"}),testCreationField:i(t({addonId:e(),type:h(C),key:e(),value:v(),formValues:y(e(),v()).optional()}),Ze,{kind:"mutation",auth:"admin"}),testField:i(t({deviceId:a(),key:e(),value:v()}),Ze,{kind:"mutation",auth:"admin"}),getDeviceStatusAggregate:i(t({deviceId:a(),caps:r(e()).readonly().optional()}),y(e(),v().nullable()))}},cc={name:"device-state",scope:"system",mode:"singleton",methods:{getSnapshot:i(t({deviceId:a()}),y(e(),y(e(),v()))),getCapSlice:i(t({deviceId:a(),capName:e()}),y(e(),v()).nullable()),getAllSnapshots:i(t({}),y(e(),y(e(),y(e(),v())))),setCapSlice:i(t({deviceId:a(),capName:e(),slice:y(e(),v())}),d(),{kind:"mutation"})},events:{onChanged:G(t({deviceId:a(),capName:e(),slice:y(e(),v())}))}},Te=t({userId:e(),username:e(),email:e().optional(),displayName:e().optional(),roles:r(e()).optional()}),lc={name:"auth-provider",scope:"system",mode:"collection",internal:!0,methods:{validateCredentials:i(t({username:e(),password:e()}),Te.nullable(),{kind:"mutation"}),getLoginUrl:i(t({state:e()}),e()),handleCallback:i(y(e(),e()),Te,{kind:"mutation"}),validateToken:i(t({token:e()}),Te.nullable())}},No=t({addonId:e(),displayName:e(),kind:h(["local","oidc","saml","ldap","other"]),icon:e().optional(),hasRedirectFlow:l(),hasCredentialFlow:l(),status:e().optional(),enabled:l()}),uc={name:"authentication",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(No).readonly()),setProviderEnabled:i(t({addonId:e(),enabled:l()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"})}},Ye=t({url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),Fo=t({connected:l(),endpoint:Ye.nullable(),error:e().optional()}),mc={name:"network-access",scope:"system",mode:"collection",internal:!0,methods:{start:i(d(),Ye,{kind:"mutation"}),stop:i(d(),d(),{kind:"mutation"}),getEndpoint:i(d(),Ye.nullable()),getStatus:i(d(),Fo)}},za=t({url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),Uo=t({addonId:e(),displayName:e(),kind:h(["cloudflare-tunnel","ngrok","tailscale","other"]),enabled:l(),connected:l(),endpoint:za.nullable(),error:e().optional()}),pc={name:"remote-access",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(Uo).readonly()),startProvider:i(t({addonId:e()}),za,{kind:"mutation",auth:"superAdmin"}),stopProvider:i(t({addonId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"})}},Na=t({urls:E([e(),r(e())]),username:e().optional(),credential:e().optional()}),gc={name:"turn-provider",scope:"system",mode:"collection",methods:{getTurnServers:i(d(),r(Na).readonly())}},_o=t({addonId:e(),displayName:e(),kind:h(["cloudflare","coturn","twilio","other"]),enabled:l(),serverCount:a(),error:e().optional()}),hc={name:"turn-orchestrator",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(_o).readonly()),getAllServers:i(d(),r(Na).readonly()),setProviderEnabled:i(t({addonId:e(),enabled:l()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"})}},Fa=t({base64:e(),contentType:e()}),Ho=t({lastCapturedAt:a().nullable(),cacheAgeMs:a().nullable(),lastBytes:a().nullable(),lastStreamId:e().nullable()}),vc={name:"snapshot",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{getSnapshot:i(t({deviceId:a(),streamId:e().optional(),force:l().optional()}),Fa.nullable()),invalidateCache:i(t({deviceId:a()}),d(),{kind:"mutation",auth:"admin"})},status:{schema:Ho,kind:"poll"}},yc={name:"snapshot-provider",scope:"system",mode:"collection",methods:{supportsDevice:i(t({deviceId:a()}),l()),getSnapshot:i(t({deviceId:a(),streamId:e().optional()}),Fa.nullable())}},Wo=t({title:e(),body:e(),imageUrl:e().optional(),deviceId:a().optional(),eventId:e().optional(),priority:h(["low","normal","high","critical"]).default("normal"),metadata:y(e(),v()).optional()}),Sc={name:"notification-output",scope:"system",mode:"collection",methods:{send:i(Wo,d(),{kind:"mutation"}),sendTest:i(d(),t({success:l(),error:e().optional()}),{kind:"mutation"})}},ra=t({id:e(),name:e(),enabled:l(),conditions:y(e(),v()),actions:r(y(e(),v()))}),Go=t({id:e(),ruleId:e(),timestamp:a(),deviceId:a().optional(),success:l(),error:e().optional()}),bc={name:"advanced-notifier",scope:"system",mode:"singleton",internal:!0,methods:{getRules:i(d(),r(ra).readonly()),upsertRule:i(ra,d(),{kind:"mutation"}),deleteRule:i(t({ruleId:e()}),d(),{kind:"mutation"}),testRule:i(t({ruleId:e(),lookbackMinutes:a()}),r(y(e(),v())),{kind:"mutation"}),getHistory:i(t({ruleId:e().optional(),limit:a().optional()}),r(Go))}},Ua=h(["continuous","motion","scheduled","composite"]),Vo=t({streamId:e(),mode:h(["always","inherit"])}),jo=t({days:r(a()).readonly(),startTime:e(),endTime:e(),mode:h(["continuous","motion"])}),ie=t({deviceId:a(),mode:Ua,streams:r(Vo).readonly(),enabled:l(),preBufferSec:a(),postBufferSec:a(),scheduleRules:r(jo).readonly().optional()}),_a=h(["recording:main","recording:mid","recording:sub","thumbnail:scrub","thumbnail:event"]),Je=t({deviceId:a(),dataCategory:_a,storageName:e(),subDirectory:e(),retentionDays:a().nullable(),retentionGb:a().nullable()}),Ko=t({id:e(),deviceId:a(),streamId:e(),startTime:a(),endTime:a(),duration:a(),path:e(),storageName:e(),subDirectory:e(),sizeBytes:a(),codec:h(["h264","h265"]),hasAudio:l()}),$o=t({deviceId:a(),timestamp:a(),path:e(),storageName:e(),subDirectory:e(),sizeBytes:a(),category:h(["scrub","event"])}),Zo=t({startTime:a(),endTime:a(),streams:r(e()).readonly()}),Qo=t({totalBytes:a(),segmentCount:a()}),Yo=t({bitrateKbps:a(),retentionDays:a().nullable(),retentionGb:a().nullable(),estimatedGb:a(),estimatedDaysAtCapacity:a().nullable()}),da=t({perStream:y(e(),Yo),thumbnails:t({estimatedGb:a()}),totalEstimatedGb:a(),motionEstimate:t({avgEventsPerDay:a(),avgDurationSec:a(),dutyCyclePercent:a()}).optional()}),Jo=t({totalEvents:a(),avgDurationSec:a(),avgEventsPerDay:a(),dutyCyclePercent:a()}),le=t({deviceId:a()}),Xo=t({deviceId:a(),policy:ie.omit({deviceId:!0}),storageOverrides:r(Je.omit({deviceId:!0})).readonly().optional(),ffmpegOverrides:y(e(),v()).optional()}),ca=t({deviceId:a(),startTime:a(),endTime:a()}),es=t({deviceId:a(),streamId:e(),startTime:a(),endTime:a()}),ts=t({deviceId:a(),streamId:e(),startTime:a(),endTime:a(),live:l().optional()}),as=t({deviceId:a(),timestamp:a(),category:e().optional()}),ns=t({deviceId:a(),streamId:e()}),is=t({deviceId:a(),motionInput:t({avgEventsPerDay:a(),avgDurationSec:a()}).optional()}),os=t({deviceId:a(),dataCategory:_a}),ss=t({deviceId:a(),policy:ie.omit({deviceId:!0})}),rs=t({deviceId:a(),policy:ie.omit({deviceId:!0}),ffmpegOverrides:y(e(),v()).optional()}),fc={name:"recording-engine",scope:"system",mode:"singleton",methods:{getStatus:i(d(),t({activeRecordings:a(),totalSegments:a(),totalSizeMB:a()})),enable:i(Xo,d(),{kind:"mutation",auth:"admin"}),disable:i(le,d(),{kind:"mutation",auth:"admin"}),getConfig:i(le,ie.nullable()),updateConfig:i(rs,d(),{kind:"mutation",auth:"admin"}),getPlaylist:i(ts,e()),getThumbnail:i(as,$o.nullable()),getSegments:i(es,r(Ko).readonly()),getAvailability:i(ca,r(Zo).readonly()),estimateStorage:i(is,da),estimateGlobalStorage:i(d(),da),getStorageUsage:i(ns,Qo),setPolicy:i(ss,d(),{kind:"mutation",auth:"admin"}),getPolicy:i(le,ie.nullable()),getPolicyStatus:i(le,t({deviceId:a(),enabled:l(),mode:Ua,activeStreams:a()}).nullable()),getRetentionConfig:i(os,Je.nullable()),updateRetentionConfig:i(Je,d(),{kind:"mutation",auth:"admin"}),getMotionStats:i(ca,Jo)}},Ic={name:"detection-pipeline",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{}},ut=h(["new","entered","left","moving","idle"]),ds=h(["motion","object","audio"]),Ha=t({x:a(),y:a(),timestamp:a(),bbox:Z}),cs=t({timestamp:a(),position:Ha,mediaKey:e()}),Re=t({trackId:e(),deviceId:a(),className:e(),label:e().optional(),firstSeen:a(),lastSeen:a(),positions:r(Ha).readonly(),snapshots:r(cs).readonly(),zonesVisited:r(e()).readonly(),totalDistance:a(),state:ut,active:l()}),mt={id:e(),deviceId:a(),timestamp:a()},ls=t({...mt,kind:b("motion"),regionCount:a(),regions:r(t({bbox:Z,pixelCount:a(),intensity:a()})).readonly(),frameWidth:a(),frameHeight:a()}),us=t({...mt,kind:b("object"),trackId:e(),className:e(),label:e().optional(),confidence:a(),bbox:Z,zones:r(e()).readonly(),state:ut,mediaKey:e().optional()}),ms=t({...mt,kind:b("audio"),rms:a(),dbfs:a(),classification:t({className:e(),originalClass:e().optional(),score:a()}).optional()}),la=t({key:e(),kind:h(["crop","thumbnail","snapshot"]),base64:e(),sizeBytes:a(),timestamp:a()}),ps=1e3,gs=5e3,Xe=t({deviceId:a(),since:a().optional(),until:a().optional(),limit:a().int().min(1).max(gs).default(ps)}),hs=Xe.extend({classFilter:e().optional()}),vs=t({trackId:e(),className:e(),confidence:a(),bbox:Z,zones:r(e()).readonly(),state:ut}),kc={name:"pipeline-analytics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{getActiveTracks:i(t({deviceId:a()}),r(Re).readonly()),getTrack:i(t({deviceId:a(),trackId:e()}),Re.nullable()),listTracks:i(t({deviceId:a(),since:a().optional(),until:a().optional(),limit:a().optional()}),r(Re).readonly()),clearTracks:i(t({deviceId:a()}),d(),{kind:"mutation",auth:"admin"}),getMotionEvents:i(Xe,r(ls).readonly()),getObjectEvents:i(hs,r(us).readonly()),getAudioEvents:i(Xe,r(ms).readonly()),getEventMedia:i(t({eventId:e()}),r(la).readonly()),getTrackMedia:i(t({trackId:e()}),r(la).readonly())},events:{onFrameTracked:{data:t({deviceId:a(),timestamp:a(),frameWidth:a(),frameHeight:a(),detections:r(vs).readonly()})},onTrackStarted:{data:t({deviceId:a(),trackId:e(),className:e()})},onTrackEnded:{data:t({deviceId:a(),trackId:e(),className:e(),durationMs:a()})},onDetectionEvent:{data:t({deviceId:a(),kind:ds,eventId:e(),timestamp:a()})}}},ys=t({total:a(),user:a(),system:a(),irq:a(),nice:a(),loadAvg:Pa([a(),a(),a()]),cores:a()}),Ss=t({percent:a(),totalBytes:a(),usedBytes:a(),availableBytes:a(),swapUsedBytes:a(),swapTotalBytes:a()}),bs=t({readBytes:a(),writeBytes:a(),readOps:a(),writeOps:a(),timestampMs:a()}),fs=t({rxBytes:a(),txBytes:a(),rxPackets:a(),txPackets:a(),rxErrors:a(),txErrors:a(),timestampMs:a()}),Wa=t({utilization:a(),model:e(),memoryUsedBytes:a(),memoryTotalBytes:a(),temperature:a().nullable()}),Is=t({openFds:a(),threadCount:a(),activeHandles:a(),activeRequests:a()}),ua=t({avg10:a(),avg60:a(),avg300:a()}),Be=t({some:ua,full:ua.nullable()}),ma=t({cpu:ys,memory:Ss,gpu:Wa.nullable(),network:fs,disk:bs,pressure:t({cpu:Be.nullable(),memory:Be.nullable(),io:Be.nullable()}),process:Is,cpuTemperature:a().nullable(),timestampMs:a()}),ks=t({path:e(),totalBytes:a(),usedBytes:a(),availableBytes:a(),percent:a()}),pa=t({pid:a(),cpu:a(),memory:a()}),Cs=t({addonId:e(),nodeId:e(),role:h(["hub","worker"]),pid:a(),state:h(["starting","running","stopping","stopped","crashed"]),uptimeSec:a()}),As=t({pid:a(),ppid:a(),pgid:a(),classification:h(["root","managed","system","ghost"]),addonId:e().nullable(),nodeId:e().nullable(),command:e(),cpuPercent:a(),memoryRssBytes:a(),uptimeSec:a(),orphaned:l()}),Ps=t({pid:a(),force:l().optional()}),ws=t({success:l(),reason:e().optional(),signal:h(["SIGTERM","SIGKILL"]).optional()}),Ds=t({cpuPercent:a(),memoryPercent:a(),memoryUsedMB:a(),memoryTotalMB:a(),diskPercent:a().optional(),temperature:a().optional(),gpuPercent:a().optional(),gpuMemoryPercent:a().optional()}),Cc={name:"metrics-provider",scope:"system",mode:"singleton",methods:{collectSnapshot:i(d(),ma),getCached:i(d(),ma.nullable()),getCurrent:i(d(),Ds),getDiskSpace:i(t({dirPath:e()}),ks),getGpuInfo:i(d(),Wa.nullable()),getCpuTemperature:i(d(),a().nullable()),getProcessStats:i(t({pids:r(a())}),r(pa)),listAddonInstances:i(d(),r(Cs).readonly()),getAddonStats:i(t({addonId:e()}),pa.nullable()),listNodeProcesses:i(d(),r(As).readonly()),killProcess:i(Ps,ws,{kind:"mutation",auth:"admin"})}},Ms=t({id:e(),name:e()}),ga=t({pan:a(),tilt:a(),zoom:a()}),ha=t({pan:a().optional(),tilt:a().optional(),zoom:a().optional(),speed:a().optional()}),Ac={name:"ptz",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{move:i(ha.extend({deviceId:a()}),d(),{kind:"mutation"}),continuousMove:i(ha.extend({deviceId:a()}),d(),{kind:"mutation"}),stop:i(t({deviceId:a()}),d(),{kind:"mutation"}),getPresets:i(t({deviceId:a()}),r(Ms)),goToPreset:i(t({deviceId:a(),presetId:e()}),d(),{kind:"mutation"}),goHome:i(t({deviceId:a()}),d(),{kind:"mutation"}),getPosition:i(t({deviceId:a()}),ga)},status:{schema:ga,kind:"command-driven"}},Es=t({id:e(),type:e(),timestamp:a(),label:e().optional(),thumbnailUrl:e().optional(),clipUrl:e().optional(),metadata:y(e(),v()).optional()}),Pc={name:"events",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getEvents:i(t({deviceId:a(),from:a().optional(),to:a().optional(),limit:a().optional()}),r(Es)),getEventThumbnail:i(t({deviceId:a(),eventId:e()}),t({base64:e(),contentType:e()}).nullable()),getEventClipUrl:i(t({deviceId:a(),eventId:e()}),e().nullable())}},qs=t({id:e(),startTs:a(),endTs:a(),durationSec:a(),sizeBytes:a().optional()}),wc={name:"recording",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getSegments:i(t({deviceId:a(),from:a().optional(),to:a().optional()}),r(qs)),getPlaybackUrl:i(t({deviceId:a(),segmentId:e()}),e().nullable()),getThumbnailAt:i(t({deviceId:a(),timestamp:a()}),t({base64:e(),contentType:e()}).nullable())}},Ts=t({id:e(),label:e(),protocol:h(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:e().optional(),resolution:t({width:a(),height:a()}).optional(),fps:a().optional(),bitrate:a().optional(),codec:e().optional(),profileHint:h(["high","mid","low"]).optional(),sdp:e().optional()}),Rs=t({key:e(),value:v()}),Dc={name:"device-ops",scope:"device",mode:"singleton",methods:{getStreamSources:i(t({deviceId:a()}),r(Ts)),getConfigEntries:i(t({deviceId:a()}),r(Rs)),setConfig:i(t({deviceId:a(),values:y(e(),v())}),d(),{kind:"mutation"}),removeDevice:i(t({deviceId:a()}),d(),{kind:"mutation"}),getSettingsSchema:i(t({deviceId:a()}),v().nullable())}},Bs=t({host:e(),port:a().int().positive().optional(),onvifPort:a().int().positive().optional(),rtspPort:a().int().positive().optional(),https:l().optional(),username:e().optional(),password:e().optional(),onvifProfile:e().optional()}),xs=t({host:e(),port:a().int().positive().nullable(),onvifPort:a().int().positive().nullable(),rtspPort:a().int().positive().nullable(),https:l().nullable(),hasUsername:l(),hasPassword:l(),onvifProfile:e().nullable()}),Mc={name:"camera-credentials",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCredentials:i(t({deviceId:a()}),Bs.nullable(),{kind:"query",auth:"admin"})},status:{schema:xs,kind:"command-driven"}},Ec={name:"reboot",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor,C.Switch],methods:{reboot:i(t({deviceId:a().int().nonnegative()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"})}},Ls=h(["text","timestamp","watermark"]),et=h(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right","custom"]),Os=t({id:e(),kind:Ls,enabled:l(),text:e().optional(),position:et.optional(),availablePositions:r(et).readonly(),readOnly:l().optional()}),va=t({overlays:r(Os).readonly()}),zs=t({enabled:l().optional(),text:e().optional(),position:et.optional()}).partial(),qc={name:"osd",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{setOverlay:i(t({deviceId:a(),overlayId:e(),patch:zs}),d(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:t({deviceId:a(),status:va})}},status:{schema:va,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:m=>`${String(m.id)} enabled`,kind:"boolean"},text:{label:m=>`${String(m.id)} text`,kind:"text",when:m=>m.kind!=="timestamp"&&!m.readOnly},position:{label:m=>`${String(m.id)} position`,kind:"select",options:m=>m.availablePositions??[],when:m=>Array.isArray(m.availablePositions)&&m.availablePositions.length>0}}}]}},Ns=t({childDeviceIds:r(a()).readonly()}),Tc={name:"accessories",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Hub],methods:{},events:{onAccessoriesChanged:{data:t({deviceId:a(),childDeviceIds:r(a()).readonly()})}},status:{schema:Ns,kind:"command-driven"}},Fs=t({codecs:r(e()),sampleRate:a(),duplex:h(["half","full"]),maxBacklogMs:a()}),ya=t({talking:l(),lastSessionAt:a().nullable(),ability:Fs.nullable()}),Rc={name:"intercom",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{startSession:i(t({deviceId:a()}),t({sessionId:e(),sdpOffer:e()}),{kind:"mutation",auth:"admin"}),handleAnswer:i(t({deviceId:a(),sessionId:e(),sdpAnswer:e()}),d(),{kind:"mutation",auth:"admin"}),stopSession:i(t({deviceId:a(),sessionId:e()}),d(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:t({deviceId:a(),status:ya})}},status:{schema:ya,kind:"command-driven"}},tt=h(["person","vehicle","animal","face","package","other"]),Ga=t({class:tt,timestamp:a(),confidence:a().min(0).max(1).optional()}),Us=t({lastByClass:y(tt,Ga.nullable()),supportedClasses:r(tt).readonly()}),Bc={name:"native-object-detection",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{},events:{onDetected:{data:t({deviceId:a(),detection:Ga})}},status:{schema:Us,kind:"push"}},_s=h(rn),Hs=h(["videotoolbox","cuda","nvdec","vaapi","qsv","d3d11va","dxva2","amf","vdpau","drm","coreml","tensorrt","openvino","directml","webgpu","none"]).nullable().optional(),Ws=t({preferred:r(e()).readonly()}),Gs=h(["darwin","linux","win32"]),Vs=h(["arm64","x64"]),js=t({type:h(["nvidia","amd","intel","apple"]),name:e(),memoryMB:a().optional()}),Ks=t({type:h(["apple-ane","intel-npu"])}),Va=t({platform:Gs,arch:Vs,cpuModel:e(),cpuCores:a(),totalRAM_MB:a(),availableRAM_MB:a(),gpu:js.nullable(),npu:Ks.nullable()}),Sa=t({runtime:h(["node","python"]),backend:e(),format:h(["onnx","coreml","openvino"]),score:a(),reason:e(),available:l()}),$s=t({hardware:Va,scores:r(Sa).readonly(),bestScore:Sa,pythonPath:e().nullable()}),Zs=t({modelId:e(),name:e(),minRAM_MB:a(),accuracyScore:a(),formats:r(e()).readonly()}),Qs=t({modelId:e(),runtime:h(["node","python"]),backend:e(),format:_s,reason:e()}),xc={name:"platform-probe",scope:"system",mode:"singleton",methods:{getCapabilities:i(d(),$s),getHardware:i(d(),Va),resolveInferenceConfig:i(t({requirements:r(Zs).readonly()}),Qs),resolveHwAccel:i(t({prefer:Hs,nodeId:e().optional()}),Ws)}},Ys=h(["lan","wifi","docker","vpn","loopback","other"]),ja=t({name:e(),family:h(["IPv4","IPv6"]),address:e(),cidr:e(),netmask:e(),internal:l(),mac:e(),kind:Ys,preferred:l(),plausible:l(),plausibleReason:e()}),Js=t({interfaces:r(ja).readonly(),probedAt:a()}),Xs=ja.nullable(),er=t({label:e(),baseUrl:e(),kind:h(["lan-ipv4","lan-ipv6","public","loopback"]),interfaceKind:h(["lan","wifi","docker","vpn","other","loopback","public"]),plausible:l(),plausibleReason:e(),priority:a()}),tr=t({endpoints:r(er).readonly()}),xe=t({addresses:r(e()).readonly()}),Lc={name:"local-network",scope:"system",mode:"singleton",methods:{list:i(d(),Js),getPreferred:i(d(),Xs),getConnectionEndpoints:i(t({port:a().int().min(1).max(65535),includeLoopback:l().optional(),ipv4Only:l().optional(),scheme:h(["http","https"]).optional()}),tr),getAllowedAddresses:i(d(),xe),setAllowedAddresses:i(xe,t({success:b(!0)}),{kind:"mutation"}),resetAllowlistToBestMatch:i(d(),xe,{kind:"mutation"})}},ar=t({id:e(),label:e(),scope:h(["mesh","public"]),url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),nr=t({id:e(),hostname:e(),addresses:r(e()).readonly(),os:e().optional(),online:l(),lastSeenMs:a(),isSelf:l()}),ir=t({joined:l(),meshIp:e(),magicDnsHostname:e(),peerCount:a(),endpoints:r(ar).readonly(),error:e().optional()}),or=t({enabled:l(),port:a().int().min(1).max(65535).optional()}),sr=t({enabled:l(),port:a().int().min(1).max(65535).optional()}),Oc={name:"mesh-network",scope:"system",mode:"collection",methods:{getStatus:i(d(),ir),join:i(t({authKey:e().min(8),hostname:e().optional()}),t({joined:b(!0)}),{kind:"mutation"}),leave:i(d(),t({left:b(!0)}),{kind:"mutation"}),listPeers:i(d(),t({peers:r(nr).readonly()})),setPublicIngress:i(or,t({success:b(!0)}),{kind:"mutation"}),setMeshIngress:i(sr,t({success:b(!0)}),{kind:"mutation"})}},rr=t({id:e(),label:e(),scope:h(["mesh","public"]),url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),dr=t({addonId:e(),displayName:e(),kind:h(["tailscale","headscale","zerotier","other"]),joined:l(),meshIp:e(),magicDnsHostname:e(),peerCount:a(),endpoints:r(rr).readonly(),error:e().optional()}),zc={name:"mesh-orchestrator",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(dr).readonly()),joinProvider:i(t({addonId:e(),authKey:e().min(8),hostname:e().optional()}),t({joined:b(!0)}),{kind:"mutation"}),leaveProvider:i(t({addonId:e()}),t({success:b(!0)}),{kind:"mutation"})}},oe=h(["super_admin","admin","viewer","agent"]),Le=t({id:e(),username:e(),role:oe,allowedProviders:E([r(e()),b("*")]),allowedDevices:y(e(),E([r(e()),b("*")])),createdAt:a(),updatedAt:a()}),cr=t({username:e(),password:e().min(6),role:oe,allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional()}),lr=t({id:e(),role:oe.optional(),allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional()}),at=t({id:e(),label:e(),role:oe,allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional(),tokenPrefix:e(),createdAt:a(),lastUsedAt:a().optional()}),ur=t({label:e(),role:oe,allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional()}),mr=t({token:e(),record:at}),Ka=t({type:h(["addon","route-prefix","capability"]),target:e()}),nt=t({id:e(),userId:e(),name:e(),tokenPrefix:e(),scopes:r(Ka),expiresAt:a().optional(),lastUsedAt:a().optional(),createdAt:a()}),pr=t({name:e(),scopes:r(Ka),expiresAt:a().optional()}),gr=t({token:e(),record:nt}),Nc={name:"user-management",scope:"system",mode:"singleton",methods:{listUsers:i(d(),r(Le),{auth:"admin"}),createUser:i(cr,Le,{kind:"mutation",auth:"superAdmin"}),updateUser:i(lr,t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),deleteUser:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),resetPassword:i(t({id:e(),newPassword:e().min(6)}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),validateCredentials:i(t({username:e(),password:e()}),Le.extend({passwordHash:e()}).nullable(),{kind:"mutation"}),listApiKeys:i(d(),r(at),{auth:"admin"}),createApiKey:i(ur,mr,{kind:"mutation",auth:"admin"}),revokeApiKey:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),validateApiKey:i(t({token:e()}),at.nullable(),{kind:"mutation"}),createScopedToken:i(pr,gr,{kind:"mutation",auth:"admin"}),revokeScopedToken:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),validateScopedToken:i(t({token:e()}),nt.nullable()),listScopedTokens:i(t({userId:e()}),r(nt),{auth:"admin"})}},ba=t({streaming:l(),notifications:l(),objectDetection:l(),remoteAccess:l(),agentCluster:l(),smartHome:l(),recordings:l(),backup:l(),repl:l()}),hr=t({status:b("ok"),uptime:a()}),vr=t({name:e(),address:e(),family:e(),internal:l()}),Fc={name:"system",scope:"system",mode:"singleton",methods:{info:i(d(),ba),health:i(d(),hr),featureFlags:i(d(),ba),networkAddresses:i(d(),r(vr).readonly()),getRetentionConfig:i(d(),v().nullable(),{auth:"admin"}),setRetentionConfig:i(y(e(),v()),sn(),{kind:"mutation",auth:"superAdmin"}),forceRetentionCleanup:i(d(),d(),{kind:"mutation",auth:"superAdmin"})}},yr=t({nominalBitrateKbps:a(),observedBitrateKbps:a(),peakBitrateKbps:a(),packetLossPercent:a(),lastUpdated:a()}),Sr=t({rttMs:a(),jitterMs:a(),estimatedBandwidthKbps:a(),lastUpdated:a()}),fa=t({deviceId:a(),streams:y(e(),yr),client:Sr.optional()}),Uc={name:"network-quality",scope:"system",mode:"singleton",methods:{getDeviceStats:i(t({deviceId:a()}),fa.nullable()),getAllStats:i(d(),r(fa).readonly()),reportClientStats:i(t({deviceId:a(),rttMs:a().min(0).max(6e4),jitterMs:a().min(0).max(1e4),estimatedBandwidthKbps:a().min(0).max(1e6)}),d(),{kind:"mutation"})}},br=t({title:e(),message:e(),severity:h(["info","warning","critical"]),duration:a().optional(),action:t({label:e(),url:e()}).optional()}),_c={name:"toast",scope:"system",mode:"singleton",methods:{onToast:i(d(),br,{kind:"subscription"})}},fr=t({addonId:e(),capabilities:r(e()).readonly(),status:e()}),Ir=t({pid:a(),name:e(),state:e(),cpuPercent:a(),memoryRss:a(),uptimeSeconds:a(),services:r(fr).readonly(),groupId:e().optional()}),kr=t({id:e(),name:e(),hostname:e(),platform:e(),arch:e(),cpuModel:e().nullable(),cpuCores:a(),memoryMB:a(),engines:r(e()).readonly(),isHub:l(),isOnline:l(),cpuPercent:a(),memoryPercent:a(),uptime:a(),lastSeen:e(),localIps:r(e()).readonly(),addons:r(t({id:e(),capabilities:r(e()).readonly(),status:e()})).readonly(),processes:r(Ir).readonly()}),Cr=t({nodeId:e(),name:e(),version:e(),status:e(),synced:l()}),Ar=t({hubVersion:e(),nodes:r(Cr)}),Oe=t({nodeId:e(),addonId:e()}),ee=t({success:l()}),Pr=t({success:l(),reason:e().optional()}),wr=t({restarted:r(e()).readonly(),failed:r(e()).readonly()}),Dr=t({nodeId:e(),name:e()}),Hc={name:"nodes",scope:"system",mode:"singleton",methods:{topology:i(d(),r(kr).readonly(),{auth:"admin"}),deployAddon:i(Oe,ee,{kind:"mutation",auth:"superAdmin"}),undeployAddon:i(Oe,ee,{kind:"mutation",auth:"superAdmin"}),restartAddon:i(Oe,ee,{kind:"mutation",auth:"superAdmin"}),restartProcess:i(t({nodeId:e(),processName:e()}),Pr,{kind:"mutation",auth:"superAdmin"}),restartNode:i(t({nodeId:e()}),wr,{kind:"mutation",auth:"superAdmin"}),shutdownNode:i(t({nodeId:e()}),ee,{kind:"mutation",auth:"superAdmin"}),renameNode:i(t({nodeId:e(),name:e().min(1).max(64)}),Dr,{kind:"mutation",auth:"superAdmin"}),clusterAddonStatus:i(d(),y(e(),Ar),{auth:"superAdmin"}),setProcessLogLevel:i(t({nodeId:e(),level:e()}),ee,{kind:"mutation",auth:"superAdmin"}),executeQuery:i(t({nodeId:e(),addonId:e(),queryName:e(),params:y(e(),v()).optional()}),v(),{kind:"mutation",auth:"superAdmin"})}},Ia=t({id:e(),addonId:e(),name:e(),enabled:l(),info:y(e(),v()).readonly(),createdAt:a(),updatedAt:a(),processState:e()}),ze=t({id:e(),addonId:e(),name:e(),enabled:l(),info:y(e(),v()).readonly(),createdAt:a(),updatedAt:a()}),Mr=t({addonId:e(),name:e(),description:e(),iconUrl:e().nullable(),color:e(),instanceMode:e(),discoveryMode:e(),existingInstances:r(t({id:e(),name:e()})),canAdd:l()}),Er=t({success:l(),error:e().optional()}),qr=t({addonId:e(),name:e(),enabled:l().optional(),info:y(e(),v()).optional(),settings:y(e(),v()).optional(),skipRestart:l().optional()}),Tr=t({id:e(),name:e().optional(),enabled:l().optional(),info:y(e(),v()).optional()}),Rr=t({success:l(),deletedId:e()}),Wc={name:"integrations",scope:"system",mode:"singleton",methods:{list:i(d(),r(Ia)),get:i(t({id:e()}),Ia),getByAddonId:i(t({addonId:e()}),ze.nullable()),create:i(qr,ze,{kind:"mutation",auth:"admin"}),update:i(Tr,ze,{kind:"mutation",auth:"superAdmin"}),delete:i(t({id:e()}),Rr,{kind:"mutation",auth:"superAdmin"}),getSettings:i(t({id:e()}),y(e(),v()),{auth:"admin"}),setSettings:i(t({id:e(),settings:y(e(),v())}),t({success:l()}),{kind:"mutation",auth:"superAdmin"}),getAvailableTypes:i(d(),r(Mr),{auth:"admin"}),testConnection:i(t({addonId:e(),settings:y(e(),v())}),Er,{kind:"mutation",auth:"admin"})}},ka=h(["debug","info","warn","error"]),it=h(["off","latest","beta"]),$a=h(["off","latest","beta","inherit"]),Br=t({id:e(),name:e().optional(),version:e().optional(),description:e().optional(),icon:e().optional(),color:e().optional(),capabilities:r(v()).readonly().optional(),packageName:e(),packageVersion:e(),packageDisplayName:e().optional(),bundle:t({displayName:e(),description:e().optional(),icon:e().optional()}).optional(),protected:l().optional(),removable:l().optional()}),xr=t({pid:a().optional(),mode:e(),state:e()}),Lr=t({phase:h(["pending","healthy","failed"]),retryCount:a(),firstFailureAt:a().nullable(),lastAttemptAt:a().nullable(),lastError:t({message:e(),stack:e().optional()}).nullable(),nextRetryAt:a().nullable(),alertEmitted:l(),retrying:l(),inGracePeriod:l()}),Or=t({manifest:Br,declaration:v().optional(),source:e(),installSource:e().optional(),process:xr.optional(),hasBackup:l().optional(),health:Lr.nullable().optional()}),zr=t({name:e(),version:e(),dir:e(),installSource:e().optional()}),Nr=t({name:e(),currentVersion:e(),latestVersion:e(),category:h(["addon","core"]),requiresRestart:l()}),Fr=t({version:e(),publishedAt:e(),deprecated:e().optional(),distTags:r(e()).readonly()}),Ur=t({name:e(),version:e(),description:e(),keywords:r(e()).readonly(),publishedAt:e(),author:e(),installed:l(),installedVersion:e().optional()}),_r=t({channel:it,intervalSeconds:a()}),Hr=$a,Wr=v(),Ca=v(),Gr=v(),Vr=t({timestamp:e(),level:e(),message:e(),scope:e().optional()}),jr=v(),Kr=t({addonId:e().min(1),action:e().min(1),input:v()}),Gc={name:"addons",scope:"system",mode:"singleton",methods:{list:i(d(),r(Or).readonly()),getLogs:i(t({addonId:e(),limit:a().min(1).max(500).default(100),level:ka.optional()}),r(jr),{auth:"admin"}),listPackages:i(d(),r(zr).readonly()),installPackage:i(t({packageName:e(),version:e().optional()}),Ca,{kind:"mutation",auth:"superAdmin"}),installFromWorkspace:i(t({packageName:e()}),Ca,{kind:"mutation",auth:"admin"}),isWorkspaceAvailable:i(d(),l()),listWorkspacePackages:i(d(),r(v()).readonly()),uninstallPackage:i(t({packageName:e()}),v(),{kind:"mutation",auth:"superAdmin"}),reloadPackages:i(d(),Gr,{kind:"mutation",auth:"admin"}),searchAvailable:i(t({query:e().optional()}),r(Ur)),listUpdates:i(d(),r(Nr).readonly(),{auth:"admin"}),updatePackage:i(t({name:e().min(1),version:e().optional()}),v(),{kind:"mutation",auth:"superAdmin"}),rollbackPackage:i(t({name:e().min(1)}),t({rolledBackTo:e().nullable()}),{kind:"mutation",auth:"superAdmin"}),forceRefresh:i(d(),v(),{kind:"mutation",auth:"admin"}),restartServer:i(t({confirm:b(!0)}),v(),{kind:"mutation",auth:"superAdmin"}),getVersions:i(t({name:e()}),r(Fr).readonly()),restartAddon:i(t({addonId:e()}),Wr,{kind:"mutation",auth:"superAdmin"}),retryLoad:i(t({packageName:e()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),getAutoUpdateSettings:i(d(),_r,{auth:"admin"}),setAutoUpdateSettings:i(t({channel:it,intervalSeconds:a().min(300).max(86400).optional()}),v(),{kind:"mutation",auth:"superAdmin"}),getAddonAutoUpdate:i(t({addonId:e()}),Hr,{auth:"admin"}),setAddonAutoUpdate:i(t({addonId:e(),channel:$a}),v(),{kind:"mutation",auth:"admin"}),applyAutoUpdateToAll:i(t({channel:it}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),custom:i(Kr,v(),{kind:"mutation"}),onAddonLogs:i(t({addonId:e(),level:ka.optional()}),Vr,{kind:"subscription"})}},$r=["decoder","motion-detection","pipeline-executor","audio-analyzer","pipeline-analytics","notification-output"],Vc=[...$r,"pipeline-orchestrator","pipeline-runner"],Za=h(["super_admin","admin","viewer","agent"]),Qa=E([b("*"),r(e())]),Ya=y(e(),E([b("*"),r(e())])),jc=t({id:e(),username:e(),passwordHash:e(),role:Za,allowedProviders:Qa,allowedDevices:Ya,createdAt:a(),updatedAt:a()}),Kc=t({id:e(),label:e(),role:Za,allowedProviders:Qa,allowedDevices:Ya,tokenHash:e(),tokenPrefix:e(),createdAt:a(),lastUsedAt:a().optional()}),Zr=t({type:h(["addon","route-prefix","capability"]),target:e()}),$c=t({id:e(),userId:e(),name:e(),tokenHash:e(),tokenPrefix:e(),scopes:r(Zr),expiresAt:a().optional(),lastUsedAt:a().optional(),createdAt:a()});export{oa as $,ad as A,Hr as B,Or as C,wa as D,lo as E,co as F,So as G,Me as H,Fi as I,_i as J,Ui as K,Kc as L,rn as M,at as N,ao as O,no as P,Io as Q,ko as R,Xr as S,Wt as T,An as U,Ge as V,Yr as W,Co as X,Ao as Y,Po as Z,wo as _,C as a,Ie as a$,ms as a0,_n as a1,Pn as a2,wn as a3,Ft as a4,Do as a5,No as a6,Te as a7,_r as a8,Mr as a9,oo as aA,so as aB,qo as aC,Ni as aD,zi as aE,ur as aF,mr as aG,qr as aH,pr as aI,gr as aJ,cr as aK,Kr as aL,nc as aM,Qd as aN,Sn as aO,kn as aP,Cn as aQ,En as aR,ia as aS,zt as aT,un as aU,Rr as aV,Yn as aW,_t as aX,qe as aY,fa as aZ,z as a_,yn as aa,eo as ab,Yt as ac,Ce as ad,Z as ae,Ut as af,Ln as ag,On as ah,xn as ai,Bn as aj,Tn as ak,qn as al,ud as am,_ as an,Da as ao,rt as ap,Bs as aq,xs as ar,ct as as,Wn as at,Ue as au,fo as av,hn as aw,Sr as ax,Cr as ay,Ar as az,xd as b,M as b$,We as b0,zn as b1,Rd as b2,Nn as b3,Ht as b4,Eo as b5,sa as b6,Mn as b7,mo as b8,Es as b9,Vt as bA,Si as bB,Ea as bC,Ga as bD,tt as bE,Us as bF,Fo as bG,vr as bH,Ye as bI,Go as bJ,ra as bK,Wo as bL,us as bM,fd as bN,Ls as bO,zs as bP,Os as bQ,et as bR,va as bS,$r as bT,Vc as bU,Nr as bV,Fr as bW,be as bX,$e as bY,na as bZ,je as b_,ds as ba,ho as bb,ba as bc,ke as bd,me as be,bo as bf,Zd as bg,hr as bh,we as bi,Ci as bj,zr as bk,ze as bl,Ia as bm,Fs as bn,ya as bo,io as bp,ea as bq,Ta as br,Vr as bs,la as bt,Hn as bu,ls as bv,yi as bw,he as bx,lt as by,pi as bz,qi as c,vs as c$,Gt as c0,$ as c1,gd as c2,mi as c3,_e as c4,ue as c5,Pi as c6,Ii as c7,Ke as c8,pe as c9,Qi as cA,Gi as cB,Vi as cC,Ji as cD,Ki as cE,O as cF,T as cG,K as cH,Hi as cI,Yi as cJ,Wi as cK,ji as cL,dt as cM,Rn as cN,yr as cO,Dn as cP,md as cQ,jt as cR,Ds as cS,Er as cT,br as cU,Zr as cV,kr as cW,Ir as cX,fr as cY,Re as cZ,ut as c_,fi as ca,ha as cb,ga as cc,Ms as cd,Jt as ce,go as cf,za as cg,Uo as ch,gi as ci,He as cj,hi as ck,Cd as cl,Ma as cm,vi as cn,$c as co,nt as cp,Ur as cq,qs as cr,Zt as cs,Xt as ct,j as cu,Qt as cv,Fa as cw,Un as cx,$i as cy,Zi as cz,Ld as d,Cc as d$,_o as d0,Na as d1,Tr as d2,lr as d3,jc as d4,Za as d5,Le as d6,dn as d7,vo as d8,xa as d9,sc as dA,lc as dB,uc as dC,Ud as dD,Mc as dE,qa as dF,Mi as dG,q as dH,Yd as dI,Ic as dJ,dc as dK,vn as dL,Dc as dM,cc as dN,rc as dO,G as dP,Pc as dQ,rd as dR,td as dS,Wc as dT,Rc as dU,Lc as dV,Hd as dW,ed as dX,Oc as dY,zc as dZ,i as d_,uo as da,Ra as db,ta as dc,pn as dd,ui as de,Ai as df,ae as dg,$t as dh,qd as di,te as dj,ki as dk,Tc as dl,nd as dm,Gd as dn,Vd as dp,$d as dq,Od as dr,Kd as ds,jd as dt,Gc as du,Wd as dv,bc as dw,zd as dx,oc as dy,ic as dz,Td as e,bd as e0,Bc as e1,mc as e2,Uc as e3,Hc as e4,Sc as e5,qc as e6,kc as e7,Id as e8,tc as e9,Ad as ea,xc as eb,Ac as ec,Ec as ed,wc as ee,fc as ef,pc as eg,id as eh,Jd as ei,_d as ej,vc as ek,yc as el,Nd as em,Fd as en,hd as eo,pd as ep,Fc as eq,_c as er,hc as es,gc as et,Nc as eu,Xd as ev,Ba as ew,ec as ex,Ed as f,Pd as g,Jr as h,sd as i,Sd as j,od as k,yd as l,wd as m,vd as n,ld as o,Dd as p,cd as q,dd as r,Md as s,Bd as t,gn as u,ac as v,mn as w,Ns as x,F as y,kd as z};
1
+ import{d as h,o as t,n as a,b as l,r as y,u as v,s as e,f as E,a as r,j as Aa,l as b,_ as d,c as w,h as R,g as ot,t as Pa,e as Ne,i as on,k as sn}from"./schemas-XgIEoUz3.js";const rn=["onnx","coreml","openvino","tflite","pt"],dn=[{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}],Yr=Object.fromEntries(dn.map(m=>[m.id,m]));function cn(m){return m.type==="separator"||m.type==="info"||m.type==="button"||m.type==="object-array"||m.type==="widget"||m.type==="addon-action-button"}function Jr(m,c){return{...m.tabs?{tabs:[...m.tabs]}:{},sections:m.sections.map(o=>({...o,fields:o.fields.map(g=>Fe(g,c))}))}}function Fe(m,c){if(cn(m))return m;if(m.type==="group"){const p=m.fields.map(P=>Fe(P,c));return{...m,fields:p}}if(m.type==="sub-tabs"){const p=m.tabs.map(P=>({...P,fields:P.fields.map(A=>Fe(A,c))}));return{...m,tabs:p}}const o=m.key,g=Object.prototype.hasOwnProperty.call(c,o)?c[o]:void 0,S=m.default;if(m.multiple){const p=Array.isArray(g)?g:g!=null?[g]:[],k=m.multiple.itemDefault!==void 0?m.multiple.itemDefault:S!==void 0?S:ln(m)==="string"?"":null,P=Math.max(m.multiple.min,p.length),A=[];for(let D=0;D<P;D++)A.push(D<p.length?p[D]:k);return{...m,value:A}}const f=g!==void 0?g:S!==void 0?S:null,I=m.type==="textarea"&&m.isJson&&f!==null&&typeof f=="object"?JSON.stringify(f,null,2):f;return{...m,value:I}}function ln(m){switch(m.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 K=h(["data","media","recordings","recordings-high","recordings-low","recordings-clips","event-images","models","cache","logs","addons-data","backups"]),Xr={data:"singleton",media:"singleton",cache:"singleton",logs:"singleton","addons-data":"singleton",models:"singleton","event-images":"singleton",recordings:"multi","recordings-high":"multi","recordings-low":"multi","recordings-clips":"multi",backups:"multi"},T=t({id:e().regex(/^[a-z][a-z0-9-]*:[a-z0-9-]+$/),type:K,displayName:e().min(1),providerId:e().min(1),config:y(e(),v()),isDefault:l().default(!1),isSystem:l().default(!1),createdAt:a(),updatedAt:a()}),O=E([K,e().regex(/^[a-z][a-z0-9-]*:[a-z0-9-]+$/)]),un=t({inputFps:a(),outputFps:a(),avgDecodeTimeMs:a(),droppedFrames:a()}),zt=t({codec:e(),maxFps:a().default(0),outputFormat:h(["jpeg","rgb","bgr","yuv420","gray"]).default("jpeg"),scale:a().default(1),width:a().optional(),height:a().optional(),deviceId:a().int().nonnegative().optional(),tag:e().optional()}),mn=[{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:"🤫"}],pn={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},gn={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},st=new Map;for(const[m,c]of Object.entries(pn.mapping))st.set(m.toLowerCase(),c);for(const[m,c]of Object.entries(gn.mapping))st.set(m.toLowerCase(),c);function ed(m){return st.get(m.toLowerCase())??null}function td(){return mn.map(m=>m.id)}var C=(m=>(m.Camera="camera",m.Hub="hub",m.Light="light",m.Siren="siren",m.Switch="switch",m.Sensor="sensor",m.Thermostat="thermostat",m.Button="button",m.Generic="generic",m))(C||{}),wa=(m=>(m.BatteryOperated="battery-operated",m.Rebootable="rebootable",m.NativeSnapshot="native-snapshot",m.DoorbellButton="doorbell-button",m.TwoWayAudio="two-way-audio",m.PanTiltZoom="pan-tilt-zoom",m.PtzAutotrack="ptz-autotrack",m.MotionTrigger="motion-trigger",m))(wa||{}),hn=(m=>(m.ChargingDC="charging-dc",m.ChargingSolar="charging-solar",m.NotCharging="not-charging",m))(hn||{}),z=(m=>(m.Siren="siren",m.Floodlight="floodlight",m.Spotlight="spotlight",m.PirSensor="pir-sensor",m.Chime="chime",m.Autotrack="autotrack",m.Nightvision="nightvision",m.PrivacyMask="privacy-mask",m.Doorbell="doorbell",m))(z||{});const F={Siren:z.Siren,Floodlight:z.Floodlight,Spotlight:z.Spotlight,PirSensor:z.PirSensor,Chime:z.Chime,Autotrack:z.Autotrack,Nightvision:z.Nightvision,PrivacyMask:z.PrivacyMask},ad={[F.Siren]:"Siren",[F.Floodlight]:"Floodlight",[F.Spotlight]:"Spotlight",[F.PirSensor]:"PIR",[F.Chime]:"Chime",[F.Autotrack]:"Autotracking",[F.Nightvision]:"Night Vision",[F.PrivacyMask]:"Privacy Mask"};function nd(m,c,o){const g=`${m}:${c}`;return typeof o=="number"?`${g}:${o}`:g}function vn(m,c){return!m||m.length===0?!1:m.includes(c.when.hasFeature)}const yn={id:"battery",label:"Battery-operated camera",when:{hasFeature:wa.BatteryOperated},defaults:{audioMode:"disabled",detectionMode:"on-motion"},settings:{"snapshot.minRefreshIntervalSec":3600,"streamBroker.preBufferEnabled":!1}},Sn=[yn];function id(m){for(const c of Sn)if(vn(m,c))return c;return null}const Ie=t({online:l(),lastChangedAt:a()}),od={name:"device-status",scope:"device",mode:"singleton",methods:{},events:{onStatusChanged:{data:t({deviceId:a(),status:Ie})}},status:{schema:Ie,kind:"push"},runtimeState:Ie},ke=t({flags:y(e(),v()),deviceType:e().nullable(),model:e().nullable(),channelCount:a().nullable(),lastProbedAt:a(),lastFetchedAt:a()}),sd={name:"feature-probe",scope:"device",mode:"singleton",methods:{},events:{onProbeChanged:{data:t({deviceId:a(),status:ke})}},status:{schema:ke,kind:"push"},runtimeState:ke},bn=t({id:e(),title:e(),description:e().optional(),style:h(["card","accordion"]).optional(),defaultCollapsed:l().optional(),columns:E([b(1),b(2),b(3),b(4)]).optional(),tab:e().optional(),location:h(["settings","top-tab"]).optional(),order:a().optional(),fields:r(Aa())}),fn=t({id:e(),label:e(),icon:e(),order:a().optional()}),In=t({tabs:r(fn).optional(),sections:r(bn)}),Nt=In.nullable(),kn={getDeviceSettingsContribution:{input:t({deviceId:a()}),output:Nt,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:t({deviceId:a()}),output:Nt,kind:"query",auth:"protected"},applyDeviceSettingsPatch:{input:t({deviceId:a(),patch:y(e(),v())}),output:t({success:b(!0)}),kind:"mutation",auth:"admin"}},Cn={getStatus:{input:t({deviceId:a()}),output:v().nullable(),kind:"query",auth:"protected"}};function rd(m){let c=m.methods;return m.exposesDeviceSettings&&(c={...kn,...c}),m.status&&(c={...Cn,...c}),c}function i(m,c,o){return{input:m,output:c,kind:o?.kind??"query",auth:o?.auth??"protected",timeoutMs:o?.timeoutMs}}function G(m){return{data:m}}const An=t({className:e(),hits:a().int().nonnegative(),avgScore:a().min(0).max(1),peakScore:a().min(0).max(1)}),Ft=t({ts:a().int(),windowSec:a().int().positive(),level:t({rms:a(),dbfs:a()}),peakDbfs:a(),avgDbfs:a(),current:t({className:e(),score:a().min(0).max(1),timestamp:a().int()}).nullable(),byClass:r(An).readonly()}),Pn=t({ts:a().int(),dbfs:a().nullable(),peakDbfs:a(),avgDbfs:a(),topClass:e().nullable(),topScore:a().min(0).max(1).nullable()}),wn=t({points:r(Pn).readonly(),effectiveSampleEveryMs:a().int().positive(),windowMsActual:a().int().nonnegative()}),dd={name:"audio-metrics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCurrentSnapshot:i(t({deviceId:a()}),Ft.nullable()),getHistory:i(t({deviceId:a(),windowSec:a().int().positive().optional(),sampleEveryMs:a().int().positive().optional()}),wn)},runtimeState:Ft},Ce=t({percentage:a().min(0).max(100),charging:h(["dc","solar","none"]),sleeping:l(),lastUpdated:a()}),cd={name:"battery",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor,C.Button,C.Switch],methods:{},events:{onStatusChanged:{data:t({deviceId:a(),status:Ce})}},status:{schema:Ce,kind:"push"},runtimeState:Ce},Ut=t({percentage:a().min(0).max(100),lastChangedAt:a()}),ld={name:"brightness",scope:"device",mode:"singleton",deviceTypes:[C.Light],methods:{setBrightness:i(t({deviceId:a().int().nonnegative(),percentage:a().min(0).max(100)}),d(),{kind:"mutation",auth:"admin"})},events:{onBrightnessChanged:{data:t({deviceId:a(),percentage:a().min(0).max(100),lastChangedAt:a()})}},status:{schema:Ut,kind:"command-driven"},runtimeState:Ut},_=h(["high","mid","low"]),ud=["high","mid","low"],Da=h(["pull-rtsp","pull-rtmp","pull-http","pull-rfc4571","push-annexb"]),rt=t({width:a().int().positive(),height:a().int().positive()}),Ue=t({camStreamId:e().min(1),deviceId:a().int().nonnegative(),kind:Da,url:e().optional(),codec:e().optional(),resolution:rt.optional(),fps:a().positive().optional(),label:e().optional(),deviceFeatures:r(e()).optional(),autoEligible:l().optional(),metadata:y(e(),v()).optional()}),ue=h(["unassigned","idle","connecting","streaming","error"]),_e=t({deviceId:a().int().nonnegative(),profile:_,brokerId:e(),sourceCamStreamId:e().nullable(),status:ue,resolution:rt.optional(),codec:e().optional(),preBufferSec:a().nonnegative().optional(),errorMessage:e().optional()}),Dn=t({id:e(),label:e(),protocol:h(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:e().optional(),resolution:t({width:a(),height:a()}).readonly().optional(),fps:a().optional(),bitrate:a().optional(),codec:e().optional(),profileHint:h(["high","mid","low"]).optional()}),md=t({type:e(),url:e(),videoCodec:e().optional(),audioCodec:e().optional(),metadata:y(e(),v()).readonly().optional()}),Mn=t({type:h(["video","audio"]),data:w(Uint8Array),pts:a(),dts:a(),keyframe:l(),codec:e()}),En=t({data:w(Uint8Array),width:a(),height:a(),format:h(["jpeg","rgb","bgr","yuv420","gray"]),timestamp:a()}),qn=h(["idle","connecting","streaming","error","stopped"]),Tn=t({status:qn,inputFps:a(),decodeFps:a(),encodedSubscribers:a(),decodedSubscribers:a(),uptimeMs:a(),bitrateKbps:a(),idrIntervalMs:a(),codec:e().optional(),totalBytes:a(),packetCount:a(),rtspClients:a(),pipeClients:a(),preBufferSec:a(),preBufferMs:a(),preBufferPackets:a(),decoderNodeId:e().nullable(),audio:t({codec:e(),sampleRate:a(),channels:a(),supported:l()}).nullable().optional()}),dt=h(["webrtc","hls","mjpeg","rtsp"]),Rn=t({streamId:e(),format:dt,url:e().nullable(),active:l()}),pd={name:"streaming-engine",scope:"system",mode:"singleton",internal:!0,methods:{registerStream:i(t({streamId:e(),sourceUrl:e(),codec:e().optional()}),d(),{kind:"mutation"}),unregisterStream:i(t({streamId:e()}),d(),{kind:"mutation"}),getStreamUrl:i(t({streamId:e(),format:dt}),e().nullable()),listStreams:i(d(),r(Rn))}},He=t({brokerId:e(),url:e(),mutedUrl:e(),enabled:l()}),Bn=t({sessionId:e(),remoteAddr:e(),playing:l(),muted:l(),connectedAt:a(),lastRtpAt:a(),bytesSent:a()}),xn=t({tag:e(),subscribedAt:a(),maxFps:a(),framesDelivered:a(),framesDropped:a()}),Ln=t({tag:e(),subscribedAt:a(),chunksDelivered:a()}),On=t({rtsp:r(Bn).readonly(),decoded:r(xn).readonly(),audio:r(Ln).readonly(),pipeClients:a(),encodedSubscribers:a()}),gd=h(["reconnecting","sleeping","offline","disabled","waking"]),hd={name:"stream-broker",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{publishCameraStream:i(t({deviceId:a().int().nonnegative(),camStreamId:e().min(1),kind:Da,url:e().optional(),codec:e().optional(),resolution:rt.optional(),fps:a().positive().optional(),label:e().optional(),deviceFeatures:r(e()).optional(),autoEligible:l().optional(),metadata:y(e(),v()).optional()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),retractCameraStream:i(t({deviceId:a().int().nonnegative(),camStreamId:e().min(1)}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),assignProfile:i(t({deviceId:a().int().nonnegative(),profile:_,camStreamId:e().min(1)}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),unassignProfile:i(t({deviceId:a().int().nonnegative(),profile:_}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),listAllCameraStreams:i(d(),r(Ue).readonly()),listAllProfileSlots:i(d(),r(_e).readonly()),getBrokerStats:i(t({brokerId:e()}),Tn),listClients:i(t({brokerId:e()}),On),killClient:i(t({brokerId:e(),channel:h(["rtsp","decoded","audio"]),handle:e()}),t({killed:l()}),{kind:"mutation",auth:"admin"}),restartProfile:i(t({deviceId:a().int().nonnegative(),profile:_}),t({success:l()}),{kind:"mutation",auth:"admin"}),getStreamUrl:i(t({streamId:e(),format:dt}),t({url:e()})),getBroker:i(t({brokerId:e()}),R()),setPreBufferDuration:i(t({brokerId:e(),seconds:a().min(0).max(30)}),d(),{kind:"mutation",auth:"admin"}),getPreBufferInfo:i(t({brokerId:e()}),t({configuredSec:a(),bufferedMs:a(),packetCount:a()})),getRtspPort:i(d(),a()),getAllRtspEntries:i(t({hostname:e().optional()}),r(He).readonly()),getRtspEntry:i(t({brokerId:e(),hostname:e().optional()}),He.nullable()),regenerateRtspToken:i(t({brokerId:e()}),e().nullable(),{kind:"mutation",auth:"admin"}),setRtspEnabled:i(t({brokerId:e(),enabled:l()}),d(),{kind:"mutation",auth:"admin"}),isRtspEnabled:i(t({brokerId:e()}),l())},events:{onCamStreamDemand:G(t({deviceId:a().int().nonnegative(),camStreamId:e(),profile:_})),onCamStreamIdle:G(t({deviceId:a().int().nonnegative(),camStreamId:e()})),onRequestStreamSourceRefresh:G(t({deviceId:a().int().nonnegative(),camStreamId:e(),brokerId:e()}))}},vd={name:"camera-streams",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCameraStreams:i(t({deviceId:a().int().nonnegative()}),r(Ue).readonly()),getBrokerStreams:i(t({deviceId:a().int().nonnegative()}),r(_e).readonly()),getRtspEntries:i(t({deviceId:a().int().nonnegative(),hostname:e().optional()}),r(He).readonly())},events:{onCamStreamsChanged:G(t({deviceId:a().int().nonnegative(),camStreams:r(Ue).readonly()})),onProfileSlotsChanged:G(t({deviceId:a().int().nonnegative(),profileSlots:r(_e).readonly()}))},runtimeState:t({online:l(),slotStatuses:t({high:ue.optional(),mid:ue.optional(),low:ue.optional()}),slotErrors:t({high:e().optional(),mid:e().optional(),low:e().optional()}),lastChangedAt:a()})},zn=h(["online","sleeping","offline","unknown"]),We=t({childNativeId:e(),name:e(),type:h(C),status:zn,metadata:t({model:e().optional(),serialNumber:e().optional(),uid:e().optional(),rtspChannel:a().int().nonnegative().optional(),isBattery:l().optional(),isDoorbell:l().optional(),isMultifocal:l().optional()}).default({}),alreadyAdopted:l(),adoptedDeviceId:a().int().nonnegative().nullable()}),_t=t({discovered:r(We),lastDiscoveryAt:a().int().nonnegative().nullable(),lastError:e().nullable()}),yd={name:"device-discovery",scope:"device",mode:"singleton",deviceTypes:[C.Hub],status:{schema:_t,kind:"poll"},runtimeState:_t.extend({lastFetchedAt:a().int().nonnegative()}),methods:{listDiscovered:i(t({deviceId:a().int().nonnegative()}),r(We).readonly()),refreshDiscovery:i(t({deviceId:a().int().nonnegative()}),r(We).readonly(),{kind:"mutation",auth:"admin"}),adoptDevice:i(t({deviceId:a().int().nonnegative(),childNativeId:e(),name:e().optional()}),t({deviceId:a().int().nonnegative(),stableId:e()}),{kind:"mutation",auth:"admin"}),releaseDevice:i(t({deviceId:a().int().nonnegative(),childDeviceId:a().int().nonnegative()}),d(),{kind:"mutation",auth:"admin"})}},Ht=t({lastPressedAt:a().nullable(),pressCountSinceStart:a()}),Nn=t({deviceId:a(),timestamp:a()}),Sd={name:"doorbell",scope:"device",mode:"singleton",deviceTypes:[C.Button],methods:{},events:{onPressed:{data:Nn}},status:{schema:Ht,kind:"push"},runtimeState:Ht},Fn=h(["jpeg","rgb","bgr","yuv420","gray"]),me=t({data:R(),format:Fn,width:a(),height:a(),timestamp:a()}),Z=t({x:a(),y:a(),w:a(),h:a()}),Un=t({class:e(),originalClass:e(),score:a(),bbox:Z}),Wt=t({data:w(Float32Array),sampleRate:a(),channels:a(),timestamp:a(),deviceId:a().optional()}),_n=t({rms:a(),dbfs:a()}),Ge=t({className:e(),originalClass:e().optional(),score:a()}),he=t({bbox:Z,pixelCount:a(),intensity:a()}),Hn=t({detected:l(),regionCount:a(),regions:r(he).readonly(),rawRegions:r(he).readonly(),frameWidth:a(),frameHeight:a(),analysisMs:a()}),bd={name:"motion-detection",scope:"device",mode:"singleton",exposesDeviceSettings:!0,methods:{analyze:i(t({deviceId:a(),frame:me}),Hn,{kind:"mutation"}),removeCamera:i(t({deviceId:a()}),d(),{kind:"mutation"}),reset:i(d(),d(),{kind:"mutation"})},events:{onMotion:{data:t({deviceId:a(),detected:l(),regionCount:a()})}}},fd=t({activeCameras:a(),throttledCameras:a(),avgInferenceTimeMs:a(),queueDepth:a()}),ct=t({detectionMode:h(["disabled","always-on","on-motion"]),configuredFps:a(),actualFps:a(),queueDepth:a(),avgInferenceTimeMs:a(),droppedFrames:a(),phase:h(["idle","watching","active"])}),Wn=ct.extend({deviceId:a()}),Ve=h(["onnx","coreml","openvino","tflite","pt"]),ne=h(["detector","cropper","classifier","refiner","audio-classifier"]),M=t({runtime:h(["node","python"]),backend:e(),format:Ve,device:e().optional()}),Gn=t({id:e(),label:e(),description:e().optional()}),Vn=t({engine:M,devices:r(Gn).readonly(),defaultDevice:e()}),je=ot(()=>t({addonId:e(),addonName:e(),slot:ne,inputClasses:r(e()).readonly(),outputClasses:r(e()).readonly(),enabled:l(),modelId:e(),children:r(je).readonly(),engine:M.optional(),group:e().optional(),settings:y(e(),v()).optional()})),ve=ot(()=>t({addonId:e(),enabled:l(),modelId:e(),children:r(ve).readonly(),settings:y(e(),v()).optional()})),Ae=t({id:e(),name:e(),createdAt:e(),updatedAt:e(),engine:M,steps:r(ve).readonly()}),jn=t({id:e(),name:e(),formats:y(e(),t({downloaded:l(),sizeMB:a()}))}),Kn=R(),$n=t({id:e(),name:e(),slot:ne,inputClasses:r(e()).readonly(),outputClasses:r(e()).readonly(),childSlots:r(ne).readonly(),models:r(jn).readonly(),defaultModelId:e(),defaultModelIdByFormat:y(e(),e()).optional(),enabledByDefault:l().optional(),defaultConfidence:a(),group:e().optional(),configSchema:r(Kn).readonly().optional()}),Zn=t({id:ne,label:e(),priority:a(),parentSlot:ne.nullable(),addons:r($n).readonly()}),Qn=t({availableEngines:r(Vn).readonly(),selectedEngine:M,slots:r(Zn).readonly()}),Yn=t({detections:r(Un).readonly(),inferenceMs:a(),modelId:e()}),$=ot(()=>t({addonId:e(),modelId:e(),enabled:l().default(!0),children:r($).optional(),settings:y(e(),v()).optional()})),Jn=t({filename:e(),stepIds:r(e()).readonly().optional()}),Xn=t({base64:e(),filename:e()}),ei=t({filename:e(),sizeKb:a()}),ti=t({base64:e()}),ai=t({id:e(),name:e(),description:e(),available:l(),rawLabels:r(e()).readonly().optional()}),ni=t({activeBackend:e(),availableBackends:r(ai).readonly(),sampleRate:a(),chunkDurationMs:a()}),ii=t({filePath:e(),sizeMB:a(),durationMs:a()}),oi=t({success:l(),error:e().optional(),frame:R().optional()}),si=R(),ri=R(),di=R(),ci=R(),li=R(),Gt=R(),Id={name:"pipeline-executor",scope:"system",mode:"singleton",methods:{getAvailableEngines:i(d(),r(M)),getSelectedEngine:i(d(),M),getDefaultSteps:i(M,r(je)),reprobeEngine:i(d(),M,{kind:"mutation",auth:"admin"}),getVideoPipelineSteps:i(d(),y(e(),t({modelId:e(),settings:y(e(),v()).readonly()}))),setVideoPipelineSteps:i(t({steps:y(e(),t({modelId:e(),settings:y(e(),v()).readonly()}))}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getSchema:i(d(),Qn),getGlobalSteps:i(d(),r(je).readonly().nullable()),getGlobalPipelineConfig:i(d(),si),getOrchestratorConfigSchema:i(d(),ri),listTemplates:i(d(),r(Ae).readonly()),saveTemplate:i(t({name:e(),steps:r(ve).readonly(),engine:M}),Ae,{kind:"mutation"}),updateTemplate:i(t({id:e(),name:e().optional(),steps:r(ve).readonly().optional()}),Ae,{kind:"mutation"}),deleteTemplate:i(t({id:e()}),d(),{kind:"mutation"}),getCapabilities:i(d(),ci),getAddonModels:i(t({addonId:e()}),li),downloadModel:i(t({addonId:e(),modelId:e(),format:Ve}),ii,{kind:"mutation"}),deleteModel:i(t({addonId:e(),modelId:e(),format:Ve}),t({success:b(!0)}),{kind:"mutation"}),detect:i(t({addonId:e(),frame:me,config:y(e(),v()).optional()}),Yn),runPipeline:i(t({engine:M.optional(),steps:r($).min(1),frame:me.optional(),imageBase64:e().optional(),image:w(Uint8Array).optional(),referenceImage:e().optional(),deviceId:a().optional(),sessionId:e().optional()}),Gt,{kind:"mutation"}),runPipelineBatch:i(t({engine:M.optional(),steps:r($).min(1),frames:r(me).min(1).max(255),deviceId:a().optional(),sessionId:e().optional()}),t({results:r(Gt).readonly()}),{kind:"mutation"}),cacheFrameInPool:i(t({data:w(Uint8Array),width:a().int().positive(),height:a().int().positive(),format:h(["rgb","bgr","gray"])}),t({frameId:a(),width:a(),height:a()}),{kind:"mutation"}),inferCached:i(t({stepId:e(),frameId:a().int()}),y(e(),v()),{kind:"mutation"}),uncacheFrame:i(t({frameId:a().int()}),d(),{kind:"mutation"}),getEffectiveTuning:i(d(),t({batchMode:e(),windowMs:a(),maxBatchSize:a(),concurrency:a()})),listLoadedEngines:i(d(),r(t({engineKey:e(),engine:M,modelsLoaded:r(e()).readonly(),inUseByCameras:r(a()).readonly(),kind:h(["runtime","warm-override"]),poolPid:a().nullable(),idleMs:a().nullable(),idleTtlMs:a().nullable()})).readonly()),spinEngine:i(t({engine:M}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),killEngine:i(t({engine:M,force:l().optional()}),t({success:l(),reason:e().optional()}),{kind:"mutation",auth:"admin"}),listReferenceImages:i(d(),r(Jn).readonly()),getReferenceImage:i(t({filename:e()}),Xn.nullable()),getReferenceAudioFiles:i(d(),r(ei).readonly()),getReferenceAudio:i(t({filename:e()}),ti.nullable()),getAudioCapabilities:i(d(),ni),runAudioTest:i(t({addonId:e(),modelId:e(),filename:e().optional(),settings:y(e(),v()).optional()}),oi,{kind:"mutation"}),getDetectionConfigSchema:i(d(),di)}},ui=h(["polygon","tripwire"]),mi=t({x:a(),y:a()}),te=t({id:e(),name:e(),kind:ui.default("polygon"),polygon:r(mi).readonly(),color:e().default("#3b82f6")}),kd={name:"zones",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listZones:i(t({deviceId:a()}),r(te).readonly()),addZone:i(t({deviceId:a(),zone:te}),d(),{kind:"mutation",auth:"admin"}),removeZone:i(t({deviceId:a(),zoneId:e()}),d(),{kind:"mutation",auth:"admin"}),updateZone:i(t({deviceId:a(),zone:te}),d(),{kind:"mutation",auth:"admin"})},runtimeState:t({zones:r(te).readonly()})},V={min:0,max:6e4,default:3e4,step:500},H={min:1,max:30,default:4,step:1},W={min:1,max:30,default:10,step:1},lt=h(["onboard","analyzer"]),pi=r(lt),gi=t({deviceId:a(),detected:l(),source:lt.default("analyzer"),regions:r(he).readonly().optional()}),hi=t({deviceId:a(),detectionMode:h(["disabled","always-on","on-motion"]).default("on-motion"),audioMode:h(["disabled","always-on","on-motion"]).default("always-on"),motionCooldownMs:a().min(V.min).default(V.default),motionFps:a().min(H.min).max(H.max).default(H.default),detectionFps:a().min(W.min).max(W.max).default(W.default),motionStreamId:e(),detectionStreamId:e(),motionSources:pi.default(["analyzer"]),pipelineEnabled:l().default(!0),engine:M.optional(),steps:r($).readonly().optional(),audio:t({engine:M,modelId:e(),enabled:l()}).nullable().optional(),zones:r(te).readonly().default([])}),Cd=[{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:H.min,max:H.max,step:H.step,default:H.default,showValue:!0,unit:"fps",showWhen:{field:"motionSources",includes:"analyzer"}},{key:"detectionFps",type:"slider",label:"Detection FPS",min:W.min,max:W.max,step:W.step,default:W.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:V.min,max:V.max,step:V.step,default:V.default,showValue:!0,unit:"s",displayScale:1e3}],Ma=t({nodeId:e(),attachedCameras:a(),activeCameras:a(),avgInferenceFps:a(),avgInferenceTimeMs:a(),queueDepthTotal:a(),hardware:t({hasGpu:l(),inferenceBackend:e().optional(),cpuCores:a().optional()})}),vi=t({nodeId:e(),activeCameras:a(),throttledCameras:a(),avgInferenceTimeMs:a(),queueDepth:a()}),Ad={name:"pipeline-runner",scope:"system",mode:"singleton",methods:{attachCamera:i(hi,t({success:b(!0)}),{kind:"mutation"}),detachCamera:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation"}),reportMotion:i(gi,t({success:b(!0)}),{kind:"mutation"}),getLocalLoad:i(d(),Ma),getLocalMetrics:i(d(),vi),getCameraMetrics:i(t({deviceId:a()}),ct.nullable()),getAllCameraMetrics:i(d(),r(Wn).readonly()),getLocalCameras:i(d(),r(a()).readonly())}},Vt=t({detected:l(),lastDetectedAt:a().nullable(),autoClearAfterMs:a().nullable()}),yi=t({deviceId:a(),detected:l(),timestamp:a(),source:lt,regions:r(he).readonly().optional()}),Pd={name:"motion",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor],methods:{isDetected:i(t({deviceId:a()}),l())},events:{onMotionChanged:{data:yi}},status:{schema:Vt,kind:"push"},runtimeState:Vt},Ea=t({enabled:l(),lastChangedAt:a()}),Si=Ea.extend({lastFetchedAt:a()}),wd={name:"motion-trigger",scope:"device",mode:"singleton",deviceTypes:[C.Light,C.Siren,C.Switch],methods:{setMotionTrigger:i(t({deviceId:a().int().nonnegative(),enabled:l()}),d(),{kind:"mutation",auth:"admin"})},events:{onMotionTriggerChanged:{data:t({deviceId:a(),enabled:l(),lastChangedAt:a()})}},status:{schema:Ea,kind:"command-driven"},runtimeState:Si},bi=e().describe("Vendor target string (people/vehicle/pet); empty = camera default"),Ke=t({targetType:bi,stopDelaySeconds:a().int().min(0).max(300),disappearDelaySeconds:a().int().min(0).max(300)}),fi=t({value:e(),label:e()}),pe=t({enabled:l(),lastChangedAt:a(),currentSettings:Ke.nullable(),supportedTargetTypes:r(fi)}),Ii=pe.extend({lastFetchedAt:a()}),Dd={name:"ptz-autotrack",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getStatus:i(t({deviceId:a()}),pe),setEnabled:i(t({deviceId:a(),enabled:l()}),d(),{kind:"mutation"}),getSettings:i(t({deviceId:a()}),Ke.nullable()),setSettings:i(t({deviceId:a(),settings:Ke.partial()}),d(),{kind:"mutation"})},events:{onStatusChanged:{data:t({deviceId:a(),status:pe})}},status:{schema:pe,kind:"command-driven"},runtimeState:Ii},jt=t({on:l(),lastChangedAt:a()}),Md={name:"switch",scope:"device",mode:"singleton",deviceTypes:[C.Switch,C.Siren,C.Light],methods:{setState:i(t({deviceId:a(),on:l()}),d(),{kind:"mutation",auth:"admin"})},events:{onStateChanged:{data:t({deviceId:a(),on:l(),lastChangedAt:a()})}},status:{schema:jt,kind:"command-driven"},runtimeState:jt,settings:{bindings:[{kind:"scalar",statusPath:"on",method:"setState",valueArg:"on",field:{label:"On",kind:"boolean"}}]}},$e=t({totalObjects:a().int().nonnegative(),byClass:y(e(),a().int().nonnegative())}),ki=$e.extend({zoneId:e(),zoneName:e(),trackIds:r(e()).readonly()}),Kt=t({ts:a().int(),frameWidth:a().int().nonnegative(),frameHeight:a().int().nonnegative(),zones:r(ki).readonly(),frame:$e,unzoned:$e}),Ci=h(["minute","5min","hour"]),Pe=t({from:a().int(),to:a().int(),resolution:Ci}),we=t({ts:a().int(),count:a().int().nonnegative()}),Ed={name:"zone-analytics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCurrentSnapshot:i(t({deviceId:a()}),Kt.nullable()),getZoneHistory:i(t({deviceId:a(),zoneId:e(),className:e().optional()}).extend(Pe.shape),r(we).readonly()),getCameraHistory:i(t({deviceId:a(),className:e().optional()}).extend(Pe.shape),r(we).readonly()),getUnzonedHistory:i(t({deviceId:a(),className:e().optional()}).extend(Pe.shape),r(we).readonly())},runtimeState:Kt},Ai=h(["include","exclude"]),ae=t({id:e(),name:e().optional(),zoneIds:r(e()).min(1).readonly(),mode:Ai,classFilter:r(e()).readonly().optional(),overlapThreshold:a().min(0).max(1).optional(),bboxInclusionPct:a().min(0).max(100).optional(),preferMask:l().optional(),enabled:l().default(!0)}),qd=r(ae).readonly(),$t=h(["motion","detection"]),Td={name:"zone-rules",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listRules:i(t({deviceId:a(),stage:$t}),r(ae).readonly()),setRules:i(t({deviceId:a(),stage:$t,rules:r(ae).readonly()}),d(),{kind:"mutation",auth:"admin"})},runtimeState:t({motion:r(ae).readonly(),detection:r(ae).readonly()})},Pi=t({connected:l(),deviceCount:a(),error:e().optional()}),Rd=t({externalId:e(),name:e(),type:e(),metadata:y(e(),v()).optional()}),ye=t({stableId:e(),type:h(C),suggestedName:e(),prefilledConfig:y(e(),v())}),Se=t({id:a(),stableId:e(),addonId:e(),type:e(),name:e(),parentDeviceId:a().nullable(),online:l(),features:r(e()),config:y(e(),v())}),Ze=t({status:h(["ok","error"]),labels:r(e()).optional(),error:e().optional()}),wi=v(),Bd={name:"device-provider",scope:"system",mode:"collection",methods:{start:i(d(),d(),{kind:"mutation"}),stop:i(d(),d(),{kind:"mutation"}),getStatus:i(d(),Pi),getDevices:i(d(),r(t({id:e(),name:e(),type:e()}))),supportsDiscovery:i(t({}),l()),discoverDevices:i(t({}),r(ye),{kind:"mutation",auth:"admin"}),adoptDiscoveredDevice:i(t({candidate:ye}),Se,{kind:"mutation",auth:"admin"}),supportsManualCreation:i(t({}),l()),getChildCreationSchema:i(t({type:h(C)}),wi),createDevice:i(t({type:h(C),config:y(e(),v())}),Se,{kind:"mutation",auth:"admin"}),testCreationField:i(t({type:h(C),key:e(),value:v(),formValues:y(e(),v()).optional()}),Ze,{kind:"mutation",auth:"admin"})}},Di="device.state-changed";function qa(m){const c=new Map,o=new Map;let g=null;const S=(u,p)=>`${u}:${p}`,f=()=>{g||m.live?.onEvent&&(g=m.live.onEvent.subscribe({category:Di},{onData:u=>{const p=u.data;if(!p||typeof p.deviceId!="number"||typeof p.capName!="string")return;const k=S(p.deviceId,p.capName);c.set(k,p.slice);const P=o.get(k);if(P)for(const A of P)try{A(p.slice)}catch{}}}))},I=()=>{g&&(o.size>0||(g.unsubscribe(),g=null))};return{read(u,p){return c.get(S(u,p))},async refresh(u,p){const k=await m.deviceState.getCapSlice.query({deviceId:u,capName:p}),P=S(u,p);c.set(P,k??void 0);const A=o.get(P);if(A)for(const D of A)try{D(k??void 0)}catch{}},watch(u,p,k){const P=S(u,p);let A=o.get(P);return A||(A=new Set,o.set(P,A)),A.add(k),f(),()=>{A.delete(k),A.size===0&&o.delete(P),I()}},async write(u,p,k){await m.deviceState.setCapSlice.mutate({deviceId:u,capName:p,slice:k})}}}function Mi(m,c,o){const g=(S,f)=>`${S}:${f}`;return{read(S,f){return m.get(S)?.get(f)},async refresh(){},watch(S,f,I){const u=g(S,f);let p=c.get(u);return p||(p=new Set,c.set(u,p)),p.add(I),()=>{p.delete(I),p.size===0&&c.delete(u)}},async write(S,f,I){if(!o)throw new Error("createMirrorSource: write requires an api reference — pass it as the third argument when constructing the source");await o.deviceState.setCapSlice.mutate({deviceId:S,capName:f,slice:I})}}}function q(m,c,o){const g=Ei(m)?m:qa(m);return{get value(){return g.read(c,o)},refresh(){return g.refresh(c,o)},subscribe(S){const f=g.watch(c,o,I=>{try{S(I)}catch{}});try{S(g.read(c,o))}catch{}return g.read(c,o)===void 0&&g.refresh(c,o).catch(()=>{}),f},async set(S){await g.write(c,o,S)},async patch(S){const I={...g.read(c,o)??{},...S};await g.write(c,o,I)}}}function Ei(m){return typeof m.read=="function"&&typeof m.watch=="function"}function qi(m,c,o){const g=m,S=o?.stateSource??qa(m);function f(s,x){const L=typeof s=="object"&&s!==null?s:{};return x!==void 0?{...L,deviceId:c.deviceId,nodeId:x}:{...L,deviceId:c.deviceId}}function I(s,x,L,U,J){const de=g[s]?.[x];if(!de)throw new Error(`DeviceProxy: api has no '${s}.${x}'`);const X=de;return L==="mutation"?X.mutate(U):L==="subscription"?X.subscribe(U,J):X.query(U)}function u(s,x,L,U,J,de){const X=c.entries.find(nn=>nn.capName===s);return I(x,L,U,f(J,X?.providerNodeId),de)}function p(s,x,L,U,J){return I(s,x,L,f(U,void 0),J)}const k={getStatus:s=>u("accessories","accessories","getStatus","query",s)},P={resolveDeviceSettings:s=>u("audio-analysis","audioAnalysis","resolveDeviceSettings","query",s),getDeviceSettingsContribution:s=>u("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",s)},A={getCurrentSnapshot:s=>u("audio-metrics","audioMetrics","getCurrentSnapshot","query",s),getHistory:s=>u("audio-metrics","audioMetrics","getHistory","query",s)},D={getStatus:s=>u("battery","battery","getStatus","query",s)},B={setBrightness:s=>u("brightness","brightness","setBrightness","mutation",s),getStatus:s=>u("brightness","brightness","getStatus","query",s)},pt={getCredentials:s=>u("camera-credentials","cameraCredentials","getCredentials","query",s),getStatus:s=>u("camera-credentials","cameraCredentials","getStatus","query",s)},gt={getCameraStreams:s=>u("camera-streams","cameraStreams","getCameraStreams","query",s),getBrokerStreams:s=>u("camera-streams","cameraStreams","getBrokerStreams","query",s),getRtspEntries:s=>u("camera-streams","cameraStreams","getRtspEntries","query",s)},ht={getDeviceSettingsContribution:s=>u("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",s)},vt={listDiscovered:s=>u("device-discovery","deviceDiscovery","listDiscovered","query",s),refreshDiscovery:s=>u("device-discovery","deviceDiscovery","refreshDiscovery","mutation",s),adoptDevice:s=>u("device-discovery","deviceDiscovery","adoptDevice","mutation",s),releaseDevice:s=>u("device-discovery","deviceDiscovery","releaseDevice","mutation",s),getStatus:s=>u("device-discovery","deviceDiscovery","getStatus","query",s)},yt={getStreamSources:s=>u("device-ops","deviceOps","getStreamSources","query",s),getConfigEntries:s=>u("device-ops","deviceOps","getConfigEntries","query",s),setConfig:s=>u("device-ops","deviceOps","setConfig","mutation",s),removeDevice:s=>u("device-ops","deviceOps","removeDevice","mutation",s),getSettingsSchema:s=>u("device-ops","deviceOps","getSettingsSchema","query",s)},St={getStatus:s=>u("device-status","deviceStatus","getStatus","query",s)},bt={getStatus:s=>u("doorbell","doorbell","getStatus","query",s)},ft={getEvents:s=>u("events","events","getEvents","query",s),getEventThumbnail:s=>u("events","events","getEventThumbnail","query",s),getEventClipUrl:s=>u("events","events","getEventClipUrl","query",s)},It={getStatus:s=>u("feature-probe","featureProbe","getStatus","query",s)},kt={startSession:s=>u("intercom","intercom","startSession","mutation",s),handleAnswer:s=>u("intercom","intercom","handleAnswer","mutation",s),stopSession:s=>u("intercom","intercom","stopSession","mutation",s),getStatus:s=>u("intercom","intercom","getStatus","query",s)},Ct={isDetected:s=>u("motion","motion","isDetected","query",s),getStatus:s=>u("motion","motion","getStatus","query",s)},At={analyze:s=>u("motion-detection","motionDetection","analyze","mutation",s),removeCamera:s=>u("motion-detection","motionDetection","removeCamera","mutation",s),reset:s=>u("motion-detection","motionDetection","reset","mutation",s),getDeviceSettingsContribution:s=>u("motion-detection","motionDetection","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("motion-detection","motionDetection","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",s)},Pt={setMotionTrigger:s=>u("motion-trigger","motionTrigger","setMotionTrigger","mutation",s),getStatus:s=>u("motion-trigger","motionTrigger","getStatus","query",s)},wt={getStatus:s=>u("native-object-detection","nativeObjectDetection","getStatus","query",s)},Dt={setOverlay:s=>u("osd","osd","setOverlay","mutation",s),getStatus:s=>u("osd","osd","getStatus","query",s)},Mt={getActiveTracks:s=>u("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",s),getTrack:s=>u("pipeline-analytics","pipelineAnalytics","getTrack","query",s),listTracks:s=>u("pipeline-analytics","pipelineAnalytics","listTracks","query",s),clearTracks:s=>u("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",s),getMotionEvents:s=>u("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",s),getObjectEvents:s=>u("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",s),getAudioEvents:s=>u("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",s),getEventMedia:s=>u("pipeline-analytics","pipelineAnalytics","getEventMedia","query",s),getTrackMedia:s=>u("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",s),getDeviceSettingsContribution:s=>u("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",s)},Et={move:s=>u("ptz","ptz","move","mutation",s),continuousMove:s=>u("ptz","ptz","continuousMove","mutation",s),stop:s=>u("ptz","ptz","stop","mutation",s),getPresets:s=>u("ptz","ptz","getPresets","query",s),goToPreset:s=>u("ptz","ptz","goToPreset","mutation",s),goHome:s=>u("ptz","ptz","goHome","mutation",s),getPosition:s=>u("ptz","ptz","getPosition","query",s),getStatus:s=>u("ptz","ptz","getStatus","query",s)},qt={getStatus:s=>u("ptz-autotrack","ptzAutotrack","getStatus","query",s),setEnabled:s=>u("ptz-autotrack","ptzAutotrack","setEnabled","mutation",s),getSettings:s=>u("ptz-autotrack","ptzAutotrack","getSettings","query",s),setSettings:s=>u("ptz-autotrack","ptzAutotrack","setSettings","mutation",s)},Tt={reboot:s=>u("reboot","reboot","reboot","mutation",s)},Rt={getSegments:s=>u("recording","recording","getSegments","query",s),getPlaybackUrl:s=>u("recording","recording","getPlaybackUrl","query",s),getThumbnailAt:s=>u("recording","recording","getThumbnailAt","query",s)},Bt={getSnapshot:s=>u("snapshot","snapshot","getSnapshot","query",s),invalidateCache:s=>u("snapshot","snapshot","invalidateCache","mutation",s),getStatus:s=>u("snapshot","snapshot","getStatus","query",s),getDeviceSettingsContribution:s=>u("snapshot","snapshot","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("snapshot","snapshot","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("snapshot","snapshot","applyDeviceSettingsPatch","mutation",s)},xt={setState:s=>u("switch","switch","setState","mutation",s),getStatus:s=>u("switch","switch","getStatus","query",s)},Lt={listStreams:s=>u("webrtc-session","webrtcSession","listStreams","query",s),createSession:s=>u("webrtc-session","webrtcSession","createSession","mutation",s),handleAnswer:s=>u("webrtc-session","webrtcSession","handleAnswer","mutation",s),closeSession:s=>u("webrtc-session","webrtcSession","closeSession","mutation",s),hasAdaptiveBitrate:s=>u("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",s)},Ot={getCurrentSnapshot:s=>u("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",s),getZoneHistory:s=>u("zone-analytics","zoneAnalytics","getZoneHistory","query",s),getCameraHistory:s=>u("zone-analytics","zoneAnalytics","getCameraHistory","query",s),getUnzonedHistory:s=>u("zone-analytics","zoneAnalytics","getUnzonedHistory","query",s)},n={listRules:s=>u("zone-rules","zoneRules","listRules","query",s),setRules:s=>u("zone-rules","zoneRules","setRules","mutation",s)},N={listZones:s=>u("zones","zones","listZones","query",s),addZone:s=>u("zones","zones","addZone","mutation",s),removeZone:s=>u("zones","zones","removeZone","mutation",s),updateZone:s=>u("zones","zones","updateZone","mutation",s)},se={getDeviceSettings:s=>p("addonSettings","getDeviceSettings","query",s),updateDeviceSettings:s=>p("addonSettings","updateDeviceSettings","mutation",s)},Q={loadConfig:s=>p("deviceManager","loadConfig","query",s),loadRuntimeState:s=>p("deviceManager","loadRuntimeState","query",s),loadMeta:s=>p("deviceManager","loadMeta","query",s),setName:s=>p("deviceManager","setName","mutation",s),setLocation:s=>p("deviceManager","setLocation","mutation",s),setMetadata:s=>p("deviceManager","setMetadata","mutation",s),setDisabled:s=>p("deviceManager","setDisabled","mutation",s),getDevice:s=>p("deviceManager","getDevice","query",s),getStreamSources:s=>p("deviceManager","getStreamSources","query",s),getConfigSchema:s=>p("deviceManager","getConfigSchema","query",s),getSettingsSchema:s=>p("deviceManager","getSettingsSchema","query",s),updateConfig:s=>p("deviceManager","updateConfig","mutation",s),enable:s=>p("deviceManager","enable","mutation",s),disable:s=>p("deviceManager","disable","mutation",s),remove:s=>p("deviceManager","remove","mutation",s),getStreamProfileMap:s=>p("deviceManager","getStreamProfileMap","query",s),setStreamProfileMap:s=>p("deviceManager","setStreamProfileMap","mutation",s),probeStreams:s=>p("deviceManager","probeStreams","mutation",s),getBindings:s=>p("deviceManager","getBindings","query",s),getAllBindings:s=>p("deviceManager","getAllBindings","query",s),setWrapperActive:s=>p("deviceManager","setWrapperActive","mutation",s),getDeviceSettingsAggregate:s=>p("deviceManager","getDeviceSettingsAggregate","query",s),getDeviceLiveInfoAggregate:s=>p("deviceManager","getDeviceLiveInfoAggregate","query",s),getDeviceAggregate:s=>p("deviceManager","getDeviceAggregate","query",s),updateDeviceField:s=>p("deviceManager","updateDeviceField","mutation",s),updateDeviceFieldsBatch:s=>p("deviceManager","updateDeviceFieldsBatch","mutation",s),testField:s=>p("deviceManager","testField","mutation",s),getDeviceStatusAggregate:s=>p("deviceManager","getDeviceStatusAggregate","query",s)},fe={getSnapshot:s=>p("deviceState","getSnapshot","query",s),getCapSlice:s=>p("deviceState","getCapSlice","query",s),setCapSlice:s=>p("deviceState","setCapSlice","mutation",s)},re={getDeviceStats:s=>p("networkQuality","getDeviceStats","query",s),reportClientStats:s=>p("networkQuality","reportClientStats","mutation",s)},Y={runPipeline:s=>p("pipelineExecutor","runPipeline","mutation",s),runPipelineBatch:s=>p("pipelineExecutor","runPipelineBatch","mutation",s)},Ja={assignPipeline:s=>p("pipelineOrchestrator","assignPipeline","mutation",s),unassignPipeline:s=>p("pipelineOrchestrator","unassignPipeline","mutation",s),getPipelineAssignment:s=>p("pipelineOrchestrator","getPipelineAssignment","query",s),getCameraMetrics:s=>p("pipelineOrchestrator","getCameraMetrics","query",s),assignDecoder:s=>p("pipelineOrchestrator","assignDecoder","mutation",s),unassignDecoder:s=>p("pipelineOrchestrator","unassignDecoder","mutation",s),assignAudio:s=>p("pipelineOrchestrator","assignAudio","mutation",s),unassignAudio:s=>p("pipelineOrchestrator","unassignAudio","mutation",s),getAudioAssignment:s=>p("pipelineOrchestrator","getAudioAssignment","query",s),getAudioAssignments:s=>p("pipelineOrchestrator","getAudioAssignments","query",s),getDecoderAssignment:s=>p("pipelineOrchestrator","getDecoderAssignment","query",s),getCameraSettings:s=>p("pipelineOrchestrator","getCameraSettings","query",s),setCameraStepToggle:s=>p("pipelineOrchestrator","setCameraStepToggle","mutation",s),getCameraStepOverrides:s=>p("pipelineOrchestrator","getCameraStepOverrides","query",s),setCameraStepOverride:s=>p("pipelineOrchestrator","setCameraStepOverride","mutation",s),setCameraPipelineForAgent:s=>p("pipelineOrchestrator","setCameraPipelineForAgent","mutation",s),resolvePipeline:s=>p("pipelineOrchestrator","resolvePipeline","query",s),getDeviceSettingsContribution:s=>p("pipelineOrchestrator","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>p("pipelineOrchestrator","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>p("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",s)},Xa={detachCamera:s=>p("pipelineRunner","detachCamera","mutation",s),getCameraMetrics:s=>p("pipelineRunner","getCameraMetrics","query",s)},en={getPolicyStatus:s=>p("recordingEngine","getPolicyStatus","query",s)},tn={supportsDevice:s=>p("snapshotProvider","supportsDevice","query",s),getSnapshot:s=>p("snapshotProvider","getSnapshot","query",s)},an={publishCameraStream:s=>p("streamBroker","publishCameraStream","mutation",s),retractCameraStream:s=>p("streamBroker","retractCameraStream","mutation",s),assignProfile:s=>p("streamBroker","assignProfile","mutation",s),unassignProfile:s=>p("streamBroker","unassignProfile","mutation",s),restartProfile:s=>p("streamBroker","restartProfile","mutation",s),getDeviceSettingsContribution:s=>p("streamBroker","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>p("streamBroker","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>p("streamBroker","applyDeviceSettingsPatch","mutation",s)};return{deviceId:c.deviceId,binding:c,state:{audioMetrics:q(S,c.deviceId,"audio-metrics"),battery:q(S,c.deviceId,"battery"),brightness:q(S,c.deviceId,"brightness"),cameraStreams:q(S,c.deviceId,"camera-streams"),deviceDiscovery:q(S,c.deviceId,"device-discovery"),deviceStatus:q(S,c.deviceId,"device-status"),doorbell:q(S,c.deviceId,"doorbell"),featureProbe:q(S,c.deviceId,"feature-probe"),motion:q(S,c.deviceId,"motion"),motionTrigger:q(S,c.deviceId,"motion-trigger"),ptzAutotrack:q(S,c.deviceId,"ptz-autotrack"),switch:q(S,c.deviceId,"switch"),zoneAnalytics:q(S,c.deviceId,"zone-analytics"),zoneRules:q(S,c.deviceId,"zone-rules"),zones:q(S,c.deviceId,"zones")},accessories:k,audioAnalysis:P,audioMetrics:A,battery:D,brightness:B,cameraCredentials:pt,cameraStreams:gt,detectionPipeline:ht,deviceDiscovery:vt,deviceOps:yt,deviceStatus:St,doorbell:bt,events:ft,featureProbe:It,intercom:kt,motion:Ct,motionDetection:At,motionTrigger:Pt,nativeObjectDetection:wt,osd:Dt,pipelineAnalytics:Mt,ptz:Et,ptzAutotrack:qt,reboot:Tt,recording:Rt,snapshot:Bt,switch:xt,webrtcSession:Lt,zoneAnalytics:Ot,zoneRules:n,zones:N,addonSettings:se,deviceManager:Q,deviceState:fe,networkQuality:re,pipelineExecutor:Y,pipelineOrchestrator:Ja,pipelineRunner:Xa,recordingEngine:en,snapshotProvider:tn,streamBroker:an}}function xd(m){const c=m;function o(n,N,se,Q,fe){const re=c[n]?.[N];if(!re)throw new Error(`SystemProxy: api has no '${n}.${N}'`);const Y=re;return se==="mutation"?Y.mutate(Q):se==="subscription"?Y.subscribe(Q,fe):Y.query(Q)}return{addonPages:{listPages:n=>o("addonPages","listPages","query",n)},addons:{list:n=>o("addons","list","query",n),getLogs:n=>o("addons","getLogs","query",n),listPackages:n=>o("addons","listPackages","query",n),installPackage:n=>o("addons","installPackage","mutation",n),installFromWorkspace:n=>o("addons","installFromWorkspace","mutation",n),isWorkspaceAvailable:n=>o("addons","isWorkspaceAvailable","query",n),listWorkspacePackages:n=>o("addons","listWorkspacePackages","query",n),uninstallPackage:n=>o("addons","uninstallPackage","mutation",n),reloadPackages:n=>o("addons","reloadPackages","mutation",n),searchAvailable:n=>o("addons","searchAvailable","query",n),listUpdates:n=>o("addons","listUpdates","query",n),updatePackage:n=>o("addons","updatePackage","mutation",n),rollbackPackage:n=>o("addons","rollbackPackage","mutation",n),forceRefresh:n=>o("addons","forceRefresh","mutation",n),restartServer:n=>o("addons","restartServer","mutation",n),getVersions:n=>o("addons","getVersions","query",n),restartAddon:n=>o("addons","restartAddon","mutation",n),retryLoad:n=>o("addons","retryLoad","mutation",n),getAutoUpdateSettings:n=>o("addons","getAutoUpdateSettings","query",n),setAutoUpdateSettings:n=>o("addons","setAutoUpdateSettings","mutation",n),getAddonAutoUpdate:n=>o("addons","getAddonAutoUpdate","query",n),setAddonAutoUpdate:n=>o("addons","setAddonAutoUpdate","mutation",n),applyAutoUpdateToAll:n=>o("addons","applyAutoUpdateToAll","mutation",n),custom:n=>o("addons","custom","mutation",n),onAddonLogs:(n,N)=>o("addons","onAddonLogs","subscription",n,N)},addonSettings:{getGlobalSettings:n=>o("addonSettings","getGlobalSettings","query",n),updateGlobalSettings:n=>o("addonSettings","updateGlobalSettings","mutation",n)},addonWidgets:{listWidgets:n=>o("addonWidgets","listWidgets","query",n)},alerts:{emit:n=>o("alerts","emit","mutation",n),update:n=>o("alerts","update","mutation",n),list:n=>o("alerts","list","query",n),getUnreadCount:n=>o("alerts","getUnreadCount","query",n),markRead:n=>o("alerts","markRead","mutation",n),markAllRead:n=>o("alerts","markAllRead","mutation",n),dismiss:n=>o("alerts","dismiss","mutation",n)},audioAnalyzer:{analyseChunk:n=>o("audioAnalyzer","analyseChunk","mutation",n),classify:n=>o("audioAnalyzer","classify","query",n),isReady:n=>o("audioAnalyzer","isReady","query",n),dispose:n=>o("audioAnalyzer","dispose","mutation",n),reprobeAudioEngine:n=>o("audioAnalyzer","reprobeAudioEngine","mutation",n)},audioCodec:{listSupportedCodecs:n=>o("audioCodec","listSupportedCodecs","query",n),canHandle:n=>o("audioCodec","canHandle","query",n),createDecodeSession:n=>o("audioCodec","createDecodeSession","mutation",n),createEncodeSession:n=>o("audioCodec","createEncodeSession","mutation",n),closeSession:n=>o("audioCodec","closeSession","mutation",n),pushEncodedFrame:n=>o("audioCodec","pushEncodedFrame","mutation",n),pullPcm:n=>o("audioCodec","pullPcm","query",n),pushPcm:n=>o("audioCodec","pushPcm","mutation",n),pullEncoded:n=>o("audioCodec","pullEncoded","query",n),flushEncode:n=>o("audioCodec","flushEncode","mutation",n),listActiveSessions:n=>o("audioCodec","listActiveSessions","query",n)},authentication:{listProviders:n=>o("authentication","listProviders","query",n),setProviderEnabled:n=>o("authentication","setProviderEnabled","mutation",n)},backup:{listDestinations:n=>o("backup","listDestinations","query",n),trigger:n=>o("backup","trigger","mutation",n),list:n=>o("backup","list","query",n),listLocations:n=>o("backup","listLocations","query",n),getEntries:n=>o("backup","getEntries","query",n),restore:n=>o("backup","restore","mutation",n),delete:n=>o("backup","delete","mutation",n),listArchives:n=>o("backup","listArchives","query",n),upsertDestinationPolicy:n=>o("backup","upsertDestinationPolicy","mutation",n),previewSchedule:n=>o("backup","previewSchedule","query",n)},decoder:{supportsCodec:n=>o("decoder","supportsCodec","query",n),getInfo:n=>o("decoder","getInfo","query",n),createSession:n=>o("decoder","createSession","query",n),destroySession:n=>o("decoder","destroySession","query",n),pushPacket:n=>o("decoder","pushPacket","query",n),openStream:n=>o("decoder","openStream","query",n),pullFrames:n=>o("decoder","pullFrames","query",n),updateConfig:n=>o("decoder","updateConfig","query",n),getStats:n=>o("decoder","getStats","query",n),listActiveSessions:n=>o("decoder","listActiveSessions","query",n),reprobeHwaccel:n=>o("decoder","reprobeHwaccel","mutation",n)},deviceManager:{allocateDeviceId:n=>o("deviceManager","allocateDeviceId","mutation",n),registerDevice:n=>o("deviceManager","registerDevice","mutation",n),removeDevice:n=>o("deviceManager","removeDevice","mutation",n),persistConfig:n=>o("deviceManager","persistConfig","mutation",n),listLocations:n=>o("deviceManager","listLocations","query",n),addLocation:n=>o("deviceManager","addLocation","mutation",n),removeLocation:n=>o("deviceManager","removeLocation","mutation",n),listPersistedByAddon:n=>o("deviceManager","listPersistedByAddon","query",n),listAll:n=>o("deviceManager","listAll","query",n),getChildren:n=>o("deviceManager","getChildren","query",n),listWrappersForCap:n=>o("deviceManager","listWrappersForCap","query",n),listBindableCapsForDeviceType:n=>o("deviceManager","listBindableCapsForDeviceType","query",n),discoverDevices:n=>o("deviceManager","discoverDevices","mutation",n),adoptDevice:n=>o("deviceManager","adoptDevice","mutation",n),getCreationSchema:n=>o("deviceManager","getCreationSchema","query",n),createDevice:n=>o("deviceManager","createDevice","mutation",n),testCreationField:n=>o("deviceManager","testCreationField","mutation",n)},deviceProvider:{start:n=>o("deviceProvider","start","mutation",n),stop:n=>o("deviceProvider","stop","mutation",n),getStatus:n=>o("deviceProvider","getStatus","query",n),getDevices:n=>o("deviceProvider","getDevices","query",n),supportsDiscovery:n=>o("deviceProvider","supportsDiscovery","query",n),discoverDevices:n=>o("deviceProvider","discoverDevices","mutation",n),adoptDiscoveredDevice:n=>o("deviceProvider","adoptDiscoveredDevice","mutation",n),supportsManualCreation:n=>o("deviceProvider","supportsManualCreation","query",n),getChildCreationSchema:n=>o("deviceProvider","getChildCreationSchema","query",n),createDevice:n=>o("deviceProvider","createDevice","mutation",n),testCreationField:n=>o("deviceProvider","testCreationField","mutation",n)},deviceState:{getAllSnapshots:n=>o("deviceState","getAllSnapshots","query",n)},integrations:{list:n=>o("integrations","list","query",n),get:n=>o("integrations","get","query",n),getByAddonId:n=>o("integrations","getByAddonId","query",n),create:n=>o("integrations","create","mutation",n),update:n=>o("integrations","update","mutation",n),delete:n=>o("integrations","delete","mutation",n),getSettings:n=>o("integrations","getSettings","query",n),setSettings:n=>o("integrations","setSettings","mutation",n),getAvailableTypes:n=>o("integrations","getAvailableTypes","query",n),testConnection:n=>o("integrations","testConnection","mutation",n)},localNetwork:{list:n=>o("localNetwork","list","query",n),getPreferred:n=>o("localNetwork","getPreferred","query",n),getConnectionEndpoints:n=>o("localNetwork","getConnectionEndpoints","query",n),getAllowedAddresses:n=>o("localNetwork","getAllowedAddresses","query",n),setAllowedAddresses:n=>o("localNetwork","setAllowedAddresses","mutation",n),resetAllowlistToBestMatch:n=>o("localNetwork","resetAllowlistToBestMatch","mutation",n)},meshNetwork:{getStatus:n=>o("meshNetwork","getStatus","query",n),join:n=>o("meshNetwork","join","mutation",n),leave:n=>o("meshNetwork","leave","mutation",n),listPeers:n=>o("meshNetwork","listPeers","query",n),setPublicIngress:n=>o("meshNetwork","setPublicIngress","mutation",n),setMeshIngress:n=>o("meshNetwork","setMeshIngress","mutation",n)},meshOrchestrator:{listProviders:n=>o("meshOrchestrator","listProviders","query",n),joinProvider:n=>o("meshOrchestrator","joinProvider","mutation",n),leaveProvider:n=>o("meshOrchestrator","leaveProvider","mutation",n)},metricsProvider:{collectSnapshot:n=>o("metricsProvider","collectSnapshot","query",n),getCached:n=>o("metricsProvider","getCached","query",n),getCurrent:n=>o("metricsProvider","getCurrent","query",n),getDiskSpace:n=>o("metricsProvider","getDiskSpace","query",n),getGpuInfo:n=>o("metricsProvider","getGpuInfo","query",n),getCpuTemperature:n=>o("metricsProvider","getCpuTemperature","query",n),getProcessStats:n=>o("metricsProvider","getProcessStats","query",n),listAddonInstances:n=>o("metricsProvider","listAddonInstances","query",n),getAddonStats:n=>o("metricsProvider","getAddonStats","query",n),listNodeProcesses:n=>o("metricsProvider","listNodeProcesses","query",n),killProcess:n=>o("metricsProvider","killProcess","mutation",n)},networkQuality:{getAllStats:n=>o("networkQuality","getAllStats","query",n)},nodes:{topology:n=>o("nodes","topology","query",n),deployAddon:n=>o("nodes","deployAddon","mutation",n),undeployAddon:n=>o("nodes","undeployAddon","mutation",n),restartAddon:n=>o("nodes","restartAddon","mutation",n),restartProcess:n=>o("nodes","restartProcess","mutation",n),restartNode:n=>o("nodes","restartNode","mutation",n),shutdownNode:n=>o("nodes","shutdownNode","mutation",n),renameNode:n=>o("nodes","renameNode","mutation",n),clusterAddonStatus:n=>o("nodes","clusterAddonStatus","query",n),setProcessLogLevel:n=>o("nodes","setProcessLogLevel","mutation",n),executeQuery:n=>o("nodes","executeQuery","mutation",n)},notificationOutput:{send:n=>o("notificationOutput","send","mutation",n),sendTest:n=>o("notificationOutput","sendTest","mutation",n)},pipelineExecutor:{getAvailableEngines:n=>o("pipelineExecutor","getAvailableEngines","query",n),getSelectedEngine:n=>o("pipelineExecutor","getSelectedEngine","query",n),getDefaultSteps:n=>o("pipelineExecutor","getDefaultSteps","query",n),reprobeEngine:n=>o("pipelineExecutor","reprobeEngine","mutation",n),getVideoPipelineSteps:n=>o("pipelineExecutor","getVideoPipelineSteps","query",n),setVideoPipelineSteps:n=>o("pipelineExecutor","setVideoPipelineSteps","mutation",n),getSchema:n=>o("pipelineExecutor","getSchema","query",n),getGlobalSteps:n=>o("pipelineExecutor","getGlobalSteps","query",n),getGlobalPipelineConfig:n=>o("pipelineExecutor","getGlobalPipelineConfig","query",n),getOrchestratorConfigSchema:n=>o("pipelineExecutor","getOrchestratorConfigSchema","query",n),listTemplates:n=>o("pipelineExecutor","listTemplates","query",n),saveTemplate:n=>o("pipelineExecutor","saveTemplate","mutation",n),updateTemplate:n=>o("pipelineExecutor","updateTemplate","mutation",n),deleteTemplate:n=>o("pipelineExecutor","deleteTemplate","mutation",n),getCapabilities:n=>o("pipelineExecutor","getCapabilities","query",n),getAddonModels:n=>o("pipelineExecutor","getAddonModels","query",n),downloadModel:n=>o("pipelineExecutor","downloadModel","mutation",n),deleteModel:n=>o("pipelineExecutor","deleteModel","mutation",n),detect:n=>o("pipelineExecutor","detect","query",n),cacheFrameInPool:n=>o("pipelineExecutor","cacheFrameInPool","mutation",n),inferCached:n=>o("pipelineExecutor","inferCached","mutation",n),uncacheFrame:n=>o("pipelineExecutor","uncacheFrame","mutation",n),getEffectiveTuning:n=>o("pipelineExecutor","getEffectiveTuning","query",n),listLoadedEngines:n=>o("pipelineExecutor","listLoadedEngines","query",n),spinEngine:n=>o("pipelineExecutor","spinEngine","mutation",n),killEngine:n=>o("pipelineExecutor","killEngine","mutation",n),listReferenceImages:n=>o("pipelineExecutor","listReferenceImages","query",n),getReferenceImage:n=>o("pipelineExecutor","getReferenceImage","query",n),getReferenceAudioFiles:n=>o("pipelineExecutor","getReferenceAudioFiles","query",n),getReferenceAudio:n=>o("pipelineExecutor","getReferenceAudio","query",n),getAudioCapabilities:n=>o("pipelineExecutor","getAudioCapabilities","query",n),runAudioTest:n=>o("pipelineExecutor","runAudioTest","mutation",n),getDetectionConfigSchema:n=>o("pipelineExecutor","getDetectionConfigSchema","query",n)},pipelineOrchestrator:{rebalance:n=>o("pipelineOrchestrator","rebalance","mutation",n),getPipelineAssignments:n=>o("pipelineOrchestrator","getPipelineAssignments","query",n),getAgentLoad:n=>o("pipelineOrchestrator","getAgentLoad","query",n),getGlobalMetrics:n=>o("pipelineOrchestrator","getGlobalMetrics","query",n),getCapabilityBindings:n=>o("pipelineOrchestrator","getCapabilityBindings","query",n),setCapabilityBinding:n=>o("pipelineOrchestrator","setCapabilityBinding","mutation",n),getDecoderAssignments:n=>o("pipelineOrchestrator","getDecoderAssignments","query",n),getAudioNodeLoad:n=>o("pipelineOrchestrator","getAudioNodeLoad","query",n),getAgentSettings:n=>o("pipelineOrchestrator","getAgentSettings","query",n),listAgentSettings:n=>o("pipelineOrchestrator","listAgentSettings","query",n),setAgentAddonDefaults:n=>o("pipelineOrchestrator","setAgentAddonDefaults","mutation",n),removeAgentSettings:n=>o("pipelineOrchestrator","removeAgentSettings","mutation",n),listTemplates:n=>o("pipelineOrchestrator","listTemplates","query",n),saveTemplate:n=>o("pipelineOrchestrator","saveTemplate","mutation",n),updateTemplate:n=>o("pipelineOrchestrator","updateTemplate","mutation",n),deleteTemplate:n=>o("pipelineOrchestrator","deleteTemplate","mutation",n)},pipelineRunner:{attachCamera:n=>o("pipelineRunner","attachCamera","mutation",n),reportMotion:n=>o("pipelineRunner","reportMotion","mutation",n),getLocalLoad:n=>o("pipelineRunner","getLocalLoad","query",n),getLocalMetrics:n=>o("pipelineRunner","getLocalMetrics","query",n),getAllCameraMetrics:n=>o("pipelineRunner","getAllCameraMetrics","query",n),getLocalCameras:n=>o("pipelineRunner","getLocalCameras","query",n)},platformProbe:{getCapabilities:n=>o("platformProbe","getCapabilities","query",n),getHardware:n=>o("platformProbe","getHardware","query",n),resolveInferenceConfig:n=>o("platformProbe","resolveInferenceConfig","query",n),resolveHwAccel:n=>o("platformProbe","resolveHwAccel","query",n)},recordingEngine:{getStatus:n=>o("recordingEngine","getStatus","query",n),enable:n=>o("recordingEngine","enable","mutation",n),disable:n=>o("recordingEngine","disable","mutation",n),getConfig:n=>o("recordingEngine","getConfig","query",n),updateConfig:n=>o("recordingEngine","updateConfig","mutation",n),getPlaylist:n=>o("recordingEngine","getPlaylist","query",n),getThumbnail:n=>o("recordingEngine","getThumbnail","query",n),getSegments:n=>o("recordingEngine","getSegments","query",n),getAvailability:n=>o("recordingEngine","getAvailability","query",n),estimateStorage:n=>o("recordingEngine","estimateStorage","query",n),estimateGlobalStorage:n=>o("recordingEngine","estimateGlobalStorage","query",n),getStorageUsage:n=>o("recordingEngine","getStorageUsage","query",n),setPolicy:n=>o("recordingEngine","setPolicy","mutation",n),getPolicy:n=>o("recordingEngine","getPolicy","query",n),getRetentionConfig:n=>o("recordingEngine","getRetentionConfig","query",n),updateRetentionConfig:n=>o("recordingEngine","updateRetentionConfig","mutation",n),getMotionStats:n=>o("recordingEngine","getMotionStats","query",n)},remoteAccess:{listProviders:n=>o("remoteAccess","listProviders","query",n),startProvider:n=>o("remoteAccess","startProvider","mutation",n),stopProvider:n=>o("remoteAccess","stopProvider","mutation",n)},settingsStore:{get:n=>o("settingsStore","get","query",n),set:n=>o("settingsStore","set","mutation",n),query:n=>o("settingsStore","query","query",n),insert:n=>o("settingsStore","insert","mutation",n),update:n=>o("settingsStore","update","mutation",n),delete:n=>o("settingsStore","delete","mutation",n),count:n=>o("settingsStore","count","query",n),isEmpty:n=>o("settingsStore","isEmpty","query",n),declareCollection:n=>o("settingsStore","declareCollection","mutation",n)},storage:{resolve:n=>o("storage","resolve","query",n),write:n=>o("storage","write","mutation",n),read:n=>o("storage","read","query",n),exists:n=>o("storage","exists","query",n),list:n=>o("storage","list","query",n),delete:n=>o("storage","delete","mutation",n),getAvailableSpace:n=>o("storage","getAvailableSpace","query",n),beginUpload:n=>o("storage","beginUpload","mutation",n),writeChunk:n=>o("storage","writeChunk","mutation",n),finalizeUpload:n=>o("storage","finalizeUpload","mutation",n),abortUpload:n=>o("storage","abortUpload","mutation",n),beginDownload:n=>o("storage","beginDownload","mutation",n),readChunk:n=>o("storage","readChunk","query",n),endDownload:n=>o("storage","endDownload","mutation",n),listLocations:n=>o("storage","listLocations","query",n),getDefaultLocation:n=>o("storage","getDefaultLocation","query",n),upsertLocation:n=>o("storage","upsertLocation","mutation",n),deleteLocation:n=>o("storage","deleteLocation","mutation",n),testLocation:n=>o("storage","testLocation","query",n),listProviders:n=>o("storage","listProviders","query",n),testConfig:n=>o("storage","testConfig","query",n)},streamBroker:{listAllCameraStreams:n=>o("streamBroker","listAllCameraStreams","query",n),listAllProfileSlots:n=>o("streamBroker","listAllProfileSlots","query",n),getBrokerStats:n=>o("streamBroker","getBrokerStats","query",n),listClients:n=>o("streamBroker","listClients","query",n),killClient:n=>o("streamBroker","killClient","mutation",n),getStreamUrl:n=>o("streamBroker","getStreamUrl","query",n),getBroker:n=>o("streamBroker","getBroker","query",n),setPreBufferDuration:n=>o("streamBroker","setPreBufferDuration","mutation",n),getPreBufferInfo:n=>o("streamBroker","getPreBufferInfo","query",n),getRtspPort:n=>o("streamBroker","getRtspPort","query",n),getAllRtspEntries:n=>o("streamBroker","getAllRtspEntries","query",n),getRtspEntry:n=>o("streamBroker","getRtspEntry","query",n),regenerateRtspToken:n=>o("streamBroker","regenerateRtspToken","mutation",n),setRtspEnabled:n=>o("streamBroker","setRtspEnabled","mutation",n),isRtspEnabled:n=>o("streamBroker","isRtspEnabled","query",n)},system:{info:n=>o("system","info","query",n),health:n=>o("system","health","query",n),featureFlags:n=>o("system","featureFlags","query",n),networkAddresses:n=>o("system","networkAddresses","query",n),getRetentionConfig:n=>o("system","getRetentionConfig","query",n),setRetentionConfig:n=>o("system","setRetentionConfig","mutation",n),forceRetentionCleanup:n=>o("system","forceRetentionCleanup","mutation",n)},toast:{onToast:(n,N)=>o("toast","onToast","subscription",n,N)},turnOrchestrator:{listProviders:n=>o("turnOrchestrator","listProviders","query",n),getAllServers:n=>o("turnOrchestrator","getAllServers","query",n),setProviderEnabled:n=>o("turnOrchestrator","setProviderEnabled","mutation",n)},turnProvider:{getTurnServers:n=>o("turnProvider","getTurnServers","query",n)},userManagement:{listUsers:n=>o("userManagement","listUsers","query",n),createUser:n=>o("userManagement","createUser","mutation",n),updateUser:n=>o("userManagement","updateUser","mutation",n),deleteUser:n=>o("userManagement","deleteUser","mutation",n),resetPassword:n=>o("userManagement","resetPassword","mutation",n),validateCredentials:n=>o("userManagement","validateCredentials","mutation",n),listApiKeys:n=>o("userManagement","listApiKeys","query",n),createApiKey:n=>o("userManagement","createApiKey","mutation",n),revokeApiKey:n=>o("userManagement","revokeApiKey","mutation",n),validateApiKey:n=>o("userManagement","validateApiKey","mutation",n),createScopedToken:n=>o("userManagement","createScopedToken","mutation",n),revokeScopedToken:n=>o("userManagement","revokeScopedToken","mutation",n),validateScopedToken:n=>o("userManagement","validateScopedToken","query",n),listScopedTokens:n=>o("userManagement","listScopedTokens","query",n)}}}const Ti="device.state-changed",Ri="capability.binding-changed",Bi="device.registered",xi="device.unregistered",Li="device.updated";class Ld{constructor(c){this.api=c,this.stateSource=Mi(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(c=15e3){if(!this.initialized){if(this.initPromise)return this.initPromise;this.initPromise=(async()=>{const o=(I,u)=>Number.isFinite(c)?new Promise((p,k)=>{const P=setTimeout(()=>k(new Error(`SystemMirror.init: '${u}' timed out after ${c}ms`)),c);I.then(A=>{clearTimeout(P),p(A)},A=>{clearTimeout(P),k(A)})}):I,[g,S,f]=await Promise.all([o(this.api.deviceManager.getAllBindings.query({}),"deviceManager.getAllBindings"),o(this.api.deviceState.getAllSnapshots.query({}),"deviceState.getAllSnapshots"),o(this.api.deviceManager.listAll.query({}),"deviceManager.listAll")]);for(const I of g)this.bindings.set(I.deviceId,I);for(const[I,u]of Object.entries(S)){const p=Number(I);if(!Number.isFinite(p))continue;const k=new Map;for(const[P,A]of Object.entries(u))k.set(P,A);this.stateMirror.set(p,k)}for(const I of f)this.devices.set(I.id,I);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 c of this.bridges)try{c.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(c){const o=this.bindings.get(c);return o?qi(this.api,o,{stateSource:this.stateSource}):null}getDeviceByName(c){for(const o of this.devices.values())if(o.name===c)return this.getDeviceById(o.id);return null}getDeviceByStableId(c){for(const o of this.devices.values())if(o.stableId===c)return this.getDeviceById(o.id);return null}getDevicesByAddon(c){return this.query({addonId:c})}getDevicesByType(c){return this.query({type:c})}getDeviceInfo(c){return this.devices.get(c)??null}getAllDevices(){const c=[];for(const o of this.bindings.keys()){const g=this.getDeviceById(o);g&&c.push(g)}return c}filterByCap(c){return this.query({caps:c})}query(c={}){const o=[];for(const[g,S]of this.bindings){const f=this.devices.get(g);if(c.id!==void 0&&!ce(g,c.id)||c.stableId!==void 0&&(!f||!ce(f.stableId,c.stableId))||c.addonId!==void 0&&(!f||!ce(f.addonId,c.addonId))||c.type!==void 0&&(!f||!ce(f.type,c.type)))continue;if(c.caps!==void 0){const u=De(c.caps),p=new Set(S.entries.map(k=>k.capName));if(!u.every(k=>p.has(k)))continue}if(c.anyCap!==void 0){const u=De(c.anyCap),p=new Set(S.entries.map(k=>k.capName));if(!u.some(k=>p.has(k)))continue}if(c.name!==void 0&&(!f||!Oi(f.name,c.name))||c.online!==void 0&&(!f||f.online!==c.online))continue;if(c.parentDeviceId!==void 0){if(!f)continue;const u=c.parentDeviceId;if((f.parentDeviceId??null)!==u)continue}if(c.feature!==void 0&&(!f||!De(c.feature).every(p=>f.features.includes(p)))||c.isCamera!==void 0&&(!f||f.isCamera!==c.isCamera))continue;const I=this.getDeviceById(g);if(I){if(c.where&&f){if(!c.where(f,I))continue}else if(c.where&&!f)continue;o.push(I)}}return o}whereState(c,o){const g=[];for(const[S,f]of this.stateMirror){const I=f.get(c);if(!I||!o(I,S))continue;const u=this.getDeviceById(S);u&&g.push(u)}return g}mapState(c,o){const g=[];for(const[S,f]of this.stateMirror){const I=f.get(c);I&&g.push(o(I,S))}return g}findState(c,o){for(const[g,S]of this.stateMirror){const f=S.get(c);if(f&&o(f,g))return this.getDeviceById(g)}return null}countByCap(c){let o=0;for(const g of this.bindings.values())g.entries.some(S=>S.capName===c)&&o++;return o}countByState(c,o){let g=0;for(const[S,f]of this.stateMirror){const I=f.get(c);I&&o(I,S)&&g++}return g}listen(c){return this.globalStateListeners.add(c),()=>{this.globalStateListeners.delete(c)}}listenCap(c,o){let g=this.capListeners.get(c);return g||(g=new Set,this.capListeners.set(c,g)),g.add(o),()=>{g.delete(o),g.size===0&&this.capListeners.delete(c)}}listenDevice(c,o){let g=this.deviceListeners.get(c);return g||(g=new Set,this.deviceListeners.set(c,g)),g.add(o),()=>{g.delete(o),g.size===0&&this.deviceListeners.delete(c)}}onDeviceAdded(c){return this.addedListeners.add(c),()=>{this.addedListeners.delete(c)}}onDeviceRemoved(c){return this.removedListeners.add(c),()=>{this.removedListeners.delete(c)}}waitForState(c,o,g,S=3e4){return new Promise((f,I)=>{const p=(()=>{const A=this.stateMirror.get(c)?.get(o);return A&&g(A)?A:null})();if(p){f(p);return}let k=null;const P=this.listenDevice(c,(A,D,B)=>{D===o&&B&&g(B)&&(k&&clearTimeout(k),P(),f(B))});Number.isFinite(S)&&(k=setTimeout(()=>{P(),I(new Error(`waitForState timed out after ${S}ms (deviceId=${c}, capName=${o})`))},S))})}waitForDevice(c,o=3e4){return new Promise((g,S)=>{const f=this.getDeviceById(c);if(f){g(f);return}let I=null;const u=this.onDeviceAdded(p=>{if(p!==c)return;const k=this.getDeviceById(p);k&&(I&&clearTimeout(I),u(),g(k))});Number.isFinite(o)&&(I=setTimeout(()=>{u(),S(new Error(`waitForDevice timed out after ${o}ms (deviceId=${c})`))},o))})}async forEachCap(c,o){for(const g of this.filterByCap(c))await o(g)}async invokeCap(c,o,g,S={}){const f=this.filterByCap(c),I=Math.max(1,S.parallelism??f.length),u=[];for(let p=0;p<f.length;p+=I){const k=f.slice(p,p+I),P=await Promise.allSettled(k.map(async A=>{const D=A[c];if(!D||typeof D[o]!="function")throw new Error(`device '${A.deviceId}' does not expose '${c}.${o}'`);return await D[o](g)}));for(let A=0;A<P.length;A++){const D=k[A],B=P[A];B.status==="fulfilled"?u.push({deviceId:D.deviceId,ok:!0,result:B.value}):u.push({deviceId:D.deviceId,ok:!1,error:B.reason})}}return u}summary(){const c={},o={},g={};let S=0,f=0;for(const I of this.bindings.values())for(const u of I.entries)c[u.capName]=(c[u.capName]??0)+1;for(const I of this.devices.values())o[I.addonId]=(o[I.addonId]??0)+1,g[I.type]=(g[I.type]??0)+1,I.online?S++:f++;return{totalDevices:this.bindings.size,online:S,offline:f,byCap:c,byAddon:o,byType:g,statedDevices:this.stateMirror.size}}dump(c){const o=S=>{const f=this.devices.get(S)??null,I=this.bindings.get(S)??null,u={},p=this.stateMirror.get(S);if(p)for(const[k,P]of p)u[k]={...P};return{deviceId:S,info:f,binding:I?{...I,entries:I.entries.map(k=>({...k}))}:null,state:u}};if(c!==void 0)return o(c);const g=[];for(const S of this.bindings.keys())g.push(o(S));return g}getRawMirror(){return this.stateMirror}getSystemState(){const c=new Map;for(const[o,g]of this.stateMirror){const S=new Map;for(const[f,I]of g)S.set(f,{...I});c.set(o,S)}return c}subscribeBus(){if(!this.api.live?.onEvent)return;const c=this.api.live.onEvent;this.bridges.push(c.subscribe({category:Ti},{onData:o=>{const g=o.data;!g||typeof g.deviceId!="number"||typeof g.capName!="string"||this.applyStateUpdate(g.deviceId,g.capName,g.slice)}})),this.bridges.push(c.subscribe({category:Ri},{onData:o=>{const g=o.data,S=typeof g?.deviceId=="number"?g.deviceId:g?.source?.type==="device"&&typeof g.source.id=="number"?g.source.id:null;S!==null&&this.refreshBinding(S)}})),this.bridges.push(c.subscribe({category:Bi},{onData:o=>{const g=o.data;typeof g?.deviceId=="number"&&this.refreshDeviceMetadata(g.deviceId,"added")}})),this.bridges.push(c.subscribe({category:xi},{onData:o=>{const g=o.data;typeof g?.deviceId=="number"&&this.applyDeviceRemoval(g.deviceId)}})),this.bridges.push(c.subscribe({category:Li},{onData:o=>{const g=o.data;typeof g?.deviceId=="number"&&this.refreshDeviceMetadata(g.deviceId,"updated")}}))}applyStateUpdate(c,o,g){let S=this.stateMirror.get(c);S||(S=new Map,this.stateMirror.set(c,S)),g===void 0?S.delete(o):S.set(o,g);const f=`${c}:${o}`,I=this.handleListeners.get(f);if(I)for(const k of I)try{k(g)}catch{}for(const k of this.globalStateListeners)try{k(c,o,g)}catch{}const u=this.capListeners.get(o);if(u)for(const k of u)try{k(c,g)}catch{}const p=this.deviceListeners.get(c);if(p)for(const k of p)try{k(c,o,g)}catch{}}applyDeviceRemoval(c){const o=this.devices.get(c)??null;this.bindings.delete(c),this.devices.delete(c),this.stateMirror.delete(c);for(const g of this.removedListeners)try{g(c,o)}catch{}}async refreshBinding(c){try{const g=(await this.api.deviceManager.getAllBindings.query({})).find(S=>S.deviceId===c);g?this.bindings.set(c,g):this.applyDeviceRemoval(c)}catch{}}async refreshDeviceMetadata(c,o){try{const S=(await this.api.deviceManager.listAll.query({})).find(I=>I.id===c);if(!S)return;const f=!this.devices.has(c);if(this.devices.set(c,S),o==="added"&&f){await this.refreshBinding(c);for(const I of this.addedListeners)try{I(c,S)}catch{}}}catch{}}}function ce(m,c){return Array.isArray(c)?c.includes(m):m===c}function De(m){return Array.isArray(m)?m:[m]}function Oi(m,c){return typeof c=="string"?m===c:c instanceof RegExp?c.test(m):"exact"in c?m===c.exact:"contains"in c?m.toLowerCase().includes(c.contains.toLowerCase()):!1}const zi=t({id:e(),label:e(),icon:e(),order:a().optional()}),Ni=t({id:e(),title:e(),description:e().optional(),style:h(["card","accordion"]).optional(),defaultCollapsed:l().optional(),columns:E([b(1),b(2),b(3),b(4)]).optional(),tab:e().optional(),location:h(["settings","top-tab"]).optional(),order:a().optional(),fields:r(Aa())}),j=t({tabs:r(zi).optional(),sections:r(Ni)}),Zt=y(e(),v()),Qt=t({success:b(!0)}),Od={name:"addon-settings",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{getGlobalSettings:i(t({addonId:e(),nodeId:e().optional(),overlay:y(e(),v()).optional()}),j.nullable()),updateGlobalSettings:i(t({addonId:e(),nodeId:e().optional(),patch:Zt}),Qt,{kind:"mutation",auth:"admin"}),getDeviceSettings:i(t({addonId:e(),deviceId:a(),nodeId:e().optional()}),j.nullable()),updateDeviceSettings:i(t({addonId:e(),deviceId:a(),nodeId:e().optional(),patch:Zt}),Qt,{kind:"mutation",auth:"admin"})}},Fi=h(["info","success","warning","error"]),Ui=h(["active","in-progress","completed","failed","dismissed"]),_i=t({type:e(),id:e()}),Me=t({id:e(),category:e(),severity:Fi,title:e(),message:e(),status:Ui,progress:a().optional(),read:l(),createdAt:a(),updatedAt:a(),source:_i.optional(),metadata:y(e(),v()).optional()}),zd={name:"alerts",scope:"system",mode:"singleton",methods:{emit:i(Me,d(),{kind:"mutation"}),update:i(t({alertId:e(),patch:Me.partial()}),d(),{kind:"mutation"}),list:i(t({unreadOnly:l().optional(),limit:a().optional()}).optional(),r(Me).readonly()),getUnreadCount:i(d(),a()),markRead:i(t({alertId:e()}),d(),{kind:"mutation"}),markAllRead:i(d(),d(),{kind:"mutation"}),dismiss:i(t({alertId:e()}),d(),{kind:"mutation"})}},Nd={name:"storage",scope:"system",mode:"singleton",methods:{resolve:i(t({location:O,relativePath:e()}),e()),write:i(t({location:O,relativePath:e(),data:w(Uint8Array)}),d(),{kind:"mutation"}),read:i(t({location:O,relativePath:e()}),w(Uint8Array)),exists:i(t({location:O,relativePath:e()}),l()),list:i(t({location:O,prefix:e().optional()}),r(e()).readonly()),delete:i(t({location:O,relativePath:e()}),d(),{kind:"mutation"}),getAvailableSpace:i(t({location:O}),a().nullable()),beginUpload:i(t({location:O,relativePath:e(),sizeBytes:a().optional()}),t({uploadId:e()}),{kind:"mutation"}),writeChunk:i(t({uploadId:e(),offset:a(),data:w(Uint8Array)}),d(),{kind:"mutation"}),finalizeUpload:i(t({uploadId:e()}),d(),{kind:"mutation"}),abortUpload:i(t({uploadId:e()}),d(),{kind:"mutation"}),beginDownload:i(t({location:O,relativePath:e()}),t({downloadId:e(),sizeBytes:a()}),{kind:"mutation"}),readChunk:i(t({downloadId:e(),offset:a(),length:a()}),w(Uint8Array)),endDownload:i(t({downloadId:e()}),d(),{kind:"mutation"}),listLocations:i(t({type:K.optional()}),r(T).readonly()),getDefaultLocation:i(t({type:K}),T.nullable()),upsertLocation:i(T.omit({createdAt:!0,updatedAt:!0}),T,{kind:"mutation",auth:"superAdmin"}),deleteLocation:i(t({id:e()}),d(),{kind:"mutation",auth:"superAdmin"}),testLocation:i(t({id:e()}),t({ok:l(),error:e().optional()}),{auth:"superAdmin"}),listProviders:i(d(),r(t({providerId:e(),displayName:e(),supportedLocationTypes:r(K).readonly(),configSchema:v()})).readonly()),testConfig:i(t({providerId:e(),config:y(e(),v())}),t({ok:l(),error:e().optional()}),{auth:"superAdmin"})}},Hi=t({providerId:e().min(1),displayName:e().min(1),supportedLocationTypes:r(K).readonly(),configSchema:v()}),Wi=t({ok:l(),error:e().optional()}),Gi=t({location:T,relativePath:e(),sizeBytes:a().optional()}),Vi=t({uploadId:e()}),ji=t({uploadId:e(),offset:a(),data:w(Uint8Array)}),Ki=t({uploadId:e()}),$i=t({uploadId:e()}),Zi=t({location:T,relativePath:e()}),Qi=t({downloadId:e(),sizeBytes:a()}),Yi=t({downloadId:e(),offset:a(),length:a()}),Ji=t({downloadId:e()}),Fd={name:"storage-provider",scope:"system",mode:"collection",internal:!0,methods:{getProviderInfo:i(d(),Hi),testLocation:i(t({config:y(e(),v())}),Wi,{auth:"superAdmin"}),resolve:i(t({location:T,relativePath:e()}),e()),write:i(t({location:T,relativePath:e(),data:w(Uint8Array)}),d(),{kind:"mutation"}),read:i(t({location:T,relativePath:e()}),w(Uint8Array)),exists:i(t({location:T,relativePath:e()}),l()),list:i(t({location:T,prefix:e().optional()}),r(e()).readonly()),delete:i(t({location:T,relativePath:e()}),d(),{kind:"mutation"}),getAvailableSpace:i(t({location:T}),a().nullable()),beginUpload:i(Gi,Vi,{kind:"mutation"}),writeChunk:i(ji,d(),{kind:"mutation"}),finalizeUpload:i(Ki,d(),{kind:"mutation"}),abortUpload:i($i,d(),{kind:"mutation"}),beginDownload:i(Zi,Qi,{kind:"mutation"}),readChunk:i(Yi,w(Uint8Array)),endDownload:i(Ji,d(),{kind:"mutation"})}},Xi=t({subId:e(),displayName:e(),description:e().optional(),kind:e(),triggerSupported:l(),restoreSupported:l()}),eo=Xi.extend({id:e(),addonId:e(),enabled:l(),retentionCount:a(),label:e().optional(),lastSuccessAt:a().optional(),lastSuccessSizeBytes:a().optional(),cron:e().optional(),nextRunAt:a().optional(),lastRunAt:a().optional()}),to=t({id:e(),filename:e(),createdAt:a(),sizeBytes:a(),label:e().optional(),locations:r(e()).readonly()}),Yt=t({id:e(),destinationId:e().optional(),label:e().optional(),createdAt:a(),sizeBytes:a(),locations:r(e()).optional()}),ao=t({path:e(),kind:h(["file","dir","symlink"]),sizeBytes:a(),mtime:a()}),no=t({archiveVersion:b(1),createdAt:a(),dataDir:e(),locations:r(e()),entries:r(ao),totalBytes:a(),totalFiles:a()}),io=t({name:e(),sizeBytes:a(),fileCount:a(),present:l()}),Ud={name:"backup",scope:"system",mode:"singleton",methods:{listDestinations:i(d(),r(eo).readonly(),{auth:"superAdmin"}),trigger:i(t({destinations:r(e()).optional(),locations:r(e()).optional(),label:e().optional()}).optional(),r(Yt).readonly(),{kind:"mutation",auth:"superAdmin"}),list:i(d(),r(Yt).readonly(),{auth:"superAdmin"}),listLocations:i(d(),r(io).readonly(),{auth:"superAdmin"}),getEntries:i(t({destinationId:e(),backupId:e()}),no.nullable(),{auth:"superAdmin"}),restore:i(t({destinationId:e(),backupId:e(),locations:r(e()).optional()}),d(),{kind:"mutation",auth:"superAdmin"}),delete:i(t({destinationId:e(),backupId:e()}),d(),{kind:"mutation",auth:"superAdmin"}),listArchives:i(t({destinationId:e()}),r(to).readonly(),{auth:"superAdmin"}),upsertDestinationPolicy:i(t({locationId:e(),enabled:l(),retentionCount:a().int().min(1).max(1e3),label:e().optional(),cron:e().optional()}),d(),{kind:"mutation",auth:"superAdmin"}),previewSchedule:i(t({cron:e(),count:a().int().min(1).max(20).optional()}),t({ok:l(),error:e().optional(),nextRuns:r(a()).readonly()}))}},Jt=t({where:y(e(),v()).optional(),whereIn:y(e(),r(v())).optional(),whereBetween:y(e(),Pa([v(),v()])).optional(),orderBy:t({field:e(),direction:h(["asc","desc"])}).optional(),limit:a().optional(),offset:a().optional()}),Xt=t({id:e(),data:y(e(),v())}),oo=t({name:e(),type:h(["TEXT","INTEGER","REAL","JSON"]),primaryKey:l().optional(),notNull:l().optional(),unique:l().optional()}),so=t({name:e(),columns:r(e()).readonly(),unique:l().optional()}),_d={name:"settings-store",scope:"system",mode:"singleton",methods:{get:i(t({namespace:e().optional(),collection:e(),key:e()}),v()),set:i(t({namespace:e().optional(),collection:e(),key:e(),value:v()}),d(),{kind:"mutation"}),query:i(t({namespace:e().optional(),collection:e(),filter:Jt.optional()}),r(Xt).readonly()),insert:i(t({namespace:e().optional(),collection:e(),record:Xt}),d(),{kind:"mutation"}),update:i(t({namespace:e().optional(),collection:e(),id:e(),data:y(e(),v())}),d(),{kind:"mutation"}),delete:i(t({namespace:e().optional(),collection:e(),key:e()}),d(),{kind:"mutation"}),count:i(t({namespace:e().optional(),collection:e(),filter:Jt.optional()}),a()),isEmpty:i(t({namespace:e().optional(),collection:e()}),l()),declareCollection:i(t({namespace:e().optional(),collection:e(),columns:r(oo).readonly(),indexes:r(so).readonly().optional()}),d(),{kind:"mutation"})}},Ta=h(["debug","info","warn","error"]),ea=t({timestamp:Ne(),level:Ta,scope:r(e()),message:e(),meta:y(e(),v()).optional(),tags:y(e(),e()).optional()}),Hd={name:"log-destination",scope:"system",mode:"collection",internal:!0,methods:{write:i(ea,d(),{kind:"mutation"}),query:i(t({scope:r(e()).optional(),level:Ta.optional(),since:Ne().optional(),until:Ne().optional(),limit:a().optional(),tags:y(e(),e()).optional()}),r(ea).readonly())}},Wd={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:i(d(),e()),getVersion:i(d(),e())}},ro=t({id:e(),label:e(),icon:e(),path:e(),remoteName:e(),bundle:e()}),co=t({addonId:e(),page:ro,bundleUrl:e()}),Gd={name:"addon-pages",scope:"system",mode:"singleton",methods:{listPages:i(d(),r(co).readonly())}},lo=t({id:e(),label:e(),icon:e(),path:e(),remoteName:e(),bundle:e()}),Vd={name:"addon-pages-source",scope:"system",mode:"collection",internal:!0,methods:{listPages:i(d(),r(lo).readonly())}},uo=h(["device-tab","dashboard","integration-detail"]),ta=h(["xs","sm","md","lg","xl"]),Ra=t({stableId:e(),label:e(),description:e().optional(),icon:e().optional(),remoteName:e(),bundle:e(),hosts:r(uo).readonly(),requires:t({deviceContext:l().default(!1),integrationContext:l().default(!1)}),defaultSize:ta.default("md"),allowedSizes:r(ta).readonly().default(["sm","md","lg"]),defaultColumns:a().int().min(1).max(12).default(6),defaultRows:a().int().min(1).max(12).default(1)}),jd={name:"addon-widgets-source",scope:"system",mode:"collection",internal:!0,methods:{listWidgets:i(d(),r(Ra).readonly())}},mo=Ra.extend({addonId:e(),bundleUrl:e()}),Kd={name:"addon-widgets",scope:"system",mode:"singleton",methods:{listWidgets:i(d(),r(mo).readonly())}},po=t({method:h(["GET","POST","PUT","DELETE","PATCH"]),path:e()}),$d={name:"addon-routes",scope:"system",mode:"collection",internal:!0,methods:{getRoutes:i(d(),r(po))}},Zd=[{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)"}],Qd={hwaccel:"auto",probedBestHwaccel:""},Yd={name:"decoder",scope:"system",mode:"singleton",methods:{supportsCodec:i(t({codec:e()}),l()),getInfo:i(d(),t({id:e(),name:e(),isPullMode:l().optional(),priority:a().optional()})),createSession:i(zt,t({sessionId:e(),nodeId:e()})),destroySession:i(t({sessionId:e()}),d()),pushPacket:i(t({sessionId:e(),packet:Mn}),d()),openStream:i(t({sessionId:e(),url:e()}),d()),pullFrames:i(t({sessionId:e(),maxCount:a().default(1)}),r(En)),updateConfig:i(t({sessionId:e(),config:zt.partial()}),d()),getStats:i(t({sessionId:e()}),un),listActiveSessions:i(d(),r(t({sessionId:e(),codec:e(),outputFormat:e(),createdAtMs:a()})).readonly()),reprobeHwaccel:i(d(),t({backend:e()}),{kind:"mutation",auth:"admin"})}},go=t({streamId:e(),label:e().optional(),codec:e(),type:h(["video","audio"]),sourceUrl:e()}),ho=t({streamId:e(),format:e(),value:e()}),Jd={name:"restreamer",scope:"system",mode:"collection",internal:!0,methods:{registerDevice:i(t({deviceId:a(),streams:r(go).readonly()}),d(),{kind:"mutation"}),unregisterDevice:i(t({deviceId:a()}),d(),{kind:"mutation"}),getExposedResources:i(t({deviceId:a()}),r(ho).readonly())}},Ba=t({viewportWidth:a().int().positive().optional(),viewportHeight:a().int().positive().optional(),devicePixelRatio:a().positive().optional(),downlinkMbps:a().nonnegative().optional(),prefersTier:e().optional()}).partial(),Xd={name:"webrtc",scope:"system",mode:"collection",internal:!0,methods:{handleOffer:i(t({streamId:e(),sdpOffer:e()}),e(),{kind:"mutation"}),supportsStream:i(t({streamId:e()}),l()),registerStream:i(t({streamId:e(),codec:e()}),d(),{kind:"mutation"}),unregisterStream:i(t({streamId:e()}),d(),{kind:"mutation"}),createSession:i(t({streamId:e(),hints:Ba.optional()}),t({sessionId:e(),sdpOffer:e()}),{kind:"mutation"}),handleAnswer:i(t({sessionId:e(),sdpAnswer:e()}),d(),{kind:"mutation"}),closeSession:i(t({sessionId:e()}),d(),{kind:"mutation"}),hasAdaptiveBitrate:i(t({streamId:e()}),l())}},xa=on("kind",[t({kind:b("adaptive")}),t({kind:b("profile"),profile:_}),t({kind:b("cam-stream"),camStreamId:e().min(1)})]),vo=t({id:e(),label:e(),target:xa,codec:e().nullable(),resolution:t({width:a(),height:a()}).nullable(),status:h(["idle","connecting","streaming","error","stopped"]).nullable(),inputFps:a().nullable(),decodeFps:a().nullable(),bitrateKbps:a().nullable()}),ec={name:"webrtc-session",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{listStreams:i(t({deviceId:a().int().nonnegative()}),r(vo)),createSession:i(t({deviceId:a().int().nonnegative(),target:xa,hints:Ba.optional()}),t({sessionId:e(),sdpOffer:e()}),{kind:"mutation"}),handleAnswer:i(t({deviceId:a().int().nonnegative(),sessionId:e(),sdpAnswer:e()}),d(),{kind:"mutation"}),closeSession:i(t({deviceId:a().int().nonnegative(),sessionId:e()}),d(),{kind:"mutation"}),hasAdaptiveBitrate:i(t({deviceId:a().int().nonnegative(),profile:_}),l())}},ge=t({engine:M,steps:r($).readonly(),audio:t({engine:M,modelId:e(),enabled:l(),settings:y(e(),v()).readonly().optional()}).nullable().optional()}),Ee=t({id:e(),name:e(),description:e().optional(),config:ge,createdAt:e(),updatedAt:e()}),La=t({enabled:l(),modelId:e(),settings:y(e(),v()).readonly()}),aa=t({addonDefaults:y(e(),La).readonly()}),Oa=t({steps:r($).readonly(),audio:t({modelId:e(),enabled:l()}).nullable()}),Qe=t({enabled:l().optional(),modelId:e().optional(),settings:y(e(),v()).readonly().optional()}),yo=t({pinnedAgentNodeId:e().optional(),stepToggles:y(e(),l()).optional(),stepOverridesByAgent:y(e(),y(e(),Qe)).optional(),pipelineByAgent:y(e(),Oa).optional()}),na=t({deviceId:a(),agentNodeId:e(),pinned:l(),reason:h(["manual","capacity","hardware-affinity","failover","rebalance"]),assignedAt:a()}),ia=t({deviceId:a(),decoderNodeId:e(),pinned:l(),reason:h(["manual","co-located","capacity","hardware-affinity"])}),So=t({nodeId:e(),online:l(),load:Ma,score:a()}),bo=t({totalAgents:a(),onlineAgents:a(),totalCameras:a(),attachedCameras:a(),activeCameras:a(),avgInferenceTimeMs:a(),queueDepth:a()}),fo=y(e(),e()),tc={name:"pipeline-orchestrator",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{assignPipeline:i(t({deviceId:a(),agentNodeId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),unassignPipeline:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),rebalance:i(d(),t({migrated:a()}),{kind:"mutation",auth:"admin"}),getPipelineAssignments:i(d(),r(na).readonly()),getPipelineAssignment:i(t({deviceId:a()}),na.nullable()),getAgentLoad:i(d(),r(So).readonly()),getGlobalMetrics:i(d(),bo),getCameraMetrics:i(t({deviceId:a()}),ct.nullable()),getCapabilityBindings:i(t({nodeId:e()}),fo),setCapabilityBinding:i(t({nodeId:e(),capName:e(),addonId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),assignDecoder:i(t({deviceId:a(),nodeId:e()}),d(),{kind:"mutation",auth:"admin"}),unassignDecoder:i(t({deviceId:a()}),d(),{kind:"mutation",auth:"admin"}),getDecoderAssignments:i(d(),r(ia).readonly()),assignAudio:i(t({deviceId:a(),nodeId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),unassignAudio:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getAudioAssignment:i(t({deviceId:a()}),t({nodeId:e(),pinned:l(),assignedAt:a()}).nullable()),getAudioNodeLoad:i(d(),r(t({nodeId:e(),deviceCount:a()}))),getAudioAssignments:i(d(),r(t({deviceId:a(),nodeId:e(),pinned:l(),assignedAt:a()}))),getDecoderAssignment:i(t({deviceId:a(),pipelineNodeId:e().optional()}),ia),getAgentSettings:i(t({agentNodeId:e()}),aa.nullable()),listAgentSettings:i(d(),r(t({nodeId:e(),settings:aa})).readonly()),setAgentAddonDefaults:i(t({agentNodeId:e(),defaults:y(e(),La)}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),removeAgentSettings:i(t({agentNodeId:e()}),t({success:l(),removed:l()}),{kind:"mutation",auth:"admin"}),getCameraSettings:i(t({deviceId:a()}),yo.nullable()),setCameraStepToggle:i(t({deviceId:a(),addonId:e(),enabled:l().nullable()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getCameraStepOverrides:i(t({deviceId:a()}),y(e(),y(e(),Qe)).nullable()),setCameraStepOverride:i(t({deviceId:a(),agentNodeId:e(),addonId:e(),patch:Qe.nullable()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),setCameraPipelineForAgent:i(t({deviceId:a(),agentNodeId:e(),pipeline:Oa.nullable()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),resolvePipeline:i(t({deviceId:a(),agentNodeId:e().optional()}),ge),listTemplates:i(d(),r(Ee).readonly()),saveTemplate:i(t({name:e(),description:e().optional(),config:ge}),Ee,{kind:"mutation",auth:"admin"}),updateTemplate:i(t({id:e(),name:e().optional(),description:e().optional(),config:ge.optional()}),Ee,{kind:"mutation",auth:"admin"}),deleteTemplate:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"})}},Io=t({level:_n,classification:t({labels:r(Ge).readonly(),inferenceMs:a()}).optional(),timestamp:a()}),ko=t({minConfidence:a().min(0).max(1).default(.3),allowedClasses:r(e()).default([])}),Co=t({labels:r(Ge).readonly(),rawLabels:r(Ge).readonly().optional(),inferenceMs:a()}),ac=[{value:"auto",label:"Auto (platform default)"},{value:"apple-soundanalysis",label:"Apple SoundAnalysis (macOS 12+)"},{value:"yamnet-onnx",label:"YAMNet ONNX (cross-platform)"}],nc={audioBackend:"auto",probedBestAudioBackend:"",selectedAudioModel:""},ic={name:"audio-analyzer",scope:"system",mode:"singleton",methods:{analyseChunk:i(t({chunk:Wt,settings:ko}),Io.nullable(),{kind:"mutation"}),classify:i(Wt,Co,{timeoutMs:3e4}),isReady:i(d(),l()),dispose:i(d(),d(),{kind:"mutation"}),reprobeAudioEngine:i(d(),t({backend:e()}),{kind:"mutation",auth:"admin"})}},oc={name:"audio-analysis",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{resolveDeviceSettings:i(t({deviceId:a()}),R())},events:{onAudioLevel:G(t({deviceId:a(),rms:a(),dbfs:a()}))}},be=h(["f32le","s16le"]),Ao=t({codec:e(),canDecode:l(),canEncode:l(),label:e().optional()}),Po=t({codec:e(),sourceSampleRate:a().int().positive(),sourceChannels:a().int().positive(),extraData:w(Uint8Array).optional(),targetSampleRate:a().int().positive(),targetChannels:a().int().positive(),targetFormat:be.optional(),idleMs:a().int().positive().optional(),tag:e().optional()}),wo=t({codec:e(),sourceSampleRate:a().int().positive(),sourceChannels:a().int().positive(),sourceFormat:be.optional(),targetSampleRate:a().int().positive(),targetChannels:a().int().positive(),bitrateKbps:a().int().positive().optional(),idleMs:a().int().positive().optional(),tag:e().optional()}),Do=t({data:w(Uint8Array),sampleRate:a().int().positive(),channels:a().int().positive(),format:be,pts:a()}),oa=t({data:w(Uint8Array),codec:e(),pts:a(),frameComplete:l()}),Mo=t({sessionId:e(),kind:h(["decode","encode"]),codec:e(),sourceSampleRate:a(),sourceChannels:a(),targetSampleRate:a(),targetChannels:a(),format:be,tag:e().optional(),createdAtMs:a(),lastActivityMs:a(),framesIn:a(),framesOut:a()}),sc={name:"audio-codec",scope:"system",mode:"singleton",methods:{listSupportedCodecs:i(d(),r(Ao).readonly()),canHandle:i(t({codec:e(),kind:h(["decode","encode"])}),l()),createDecodeSession:i(Po,t({sessionId:e(),nodeId:e()}),{kind:"mutation"}),createEncodeSession:i(wo,t({sessionId:e(),nodeId:e()}),{kind:"mutation"}),closeSession:i(t({sessionId:e(),nodeId:e().optional()}),d(),{kind:"mutation"}),pushEncodedFrame:i(t({sessionId:e(),nodeId:e().optional(),data:w(Uint8Array),pts:a().optional()}),d(),{kind:"mutation"}),pullPcm:i(t({sessionId:e(),nodeId:e().optional(),maxCount:a().int().positive().default(8)}),r(Do)),pushPcm:i(t({sessionId:e(),nodeId:e().optional(),data:w(Uint8Array),pts:a().optional()}),d(),{kind:"mutation"}),pullEncoded:i(t({sessionId:e(),nodeId:e().optional(),maxCount:a().int().positive().default(8)}),r(oa)),flushEncode:i(t({sessionId:e(),nodeId:e().optional()}),r(oa),{kind:"mutation"}),listActiveSessions:i(d(),r(Mo).readonly())}},sa=t({embedding:r(a()),dimensions:a()}),Eo=t({modelId:e(),dimensions:a(),inputSize:a()}),rc={name:"embedding-encoder",scope:"system",mode:"collection",internal:!0,methods:{encode:i(t({crop:w(Uint8Array),width:a(),height:a()}),sa),encodeText:i(t({text:e()}),sa),getInfo:i(d(),Eo)}},qe=t({id:a(),stableId:e(),addonId:e(),type:h(C),name:e(),location:e().nullable(),disabled:l(),parentDeviceId:a().nullable(),role:e().nullable().optional(),online:l(),features:r(e()),isCamera:l(),config:y(e(),v()),metadata:y(e(),v()).nullable().optional()}),qo=t({key:e(),value:v(),description:e().optional()}),To=t({id:a(),stableId:e(),type:e(),name:e(),location:e().nullable(),disabled:l(),parentDeviceId:a().nullable(),role:e().nullable().optional()}),Ro=t({id:a(),stableId:e(),addonId:e(),type:e(),name:e(),location:e().nullable(),disabled:l(),parentDeviceId:a().nullable(),metadata:y(e(),v()).nullable().optional()}),Bo=v().nullable(),xo=t({streamId:e(),width:a().optional(),height:a().optional(),codec:e().optional(),fps:a().optional(),bitrateKbps:a().optional()}),Lo=t({addonId:e(),stableId:e(),id:a(),type:e(),name:e(),location:e().nullable().optional(),disabled:l().optional(),parentDeviceId:a().nullable(),role:e().nullable().optional(),features:r(e()).optional(),config:y(e(),v())}),Oo=t({deviceId:a()}),zo=t({deviceId:a(),data:y(e(),v())}),dc={name:"device-manager",scope:"system",mode:"singleton",methods:{allocateDeviceId:i(t({addonId:e(),stableId:e()}),t({id:a()}),{kind:"mutation"}),registerDevice:i(Lo,d(),{kind:"mutation"}),removeDevice:i(Oo,d(),{kind:"mutation"}),persistConfig:i(zo,d(),{kind:"mutation"}),loadConfig:i(t({deviceId:a()}),y(e(),v())),loadRuntimeState:i(t({deviceId:a()}),y(e(),v())),loadMeta:i(t({deviceId:a()}),Ro.nullable()),setName:i(t({deviceId:a(),name:e()}),d(),{kind:"mutation",auth:"admin"}),setLocation:i(t({deviceId:a(),location:e().nullable()}),d(),{kind:"mutation",auth:"admin"}),setMetadata:i(t({deviceId:a(),patch:y(e(),v())}),d(),{kind:"mutation",auth:"admin"}),listLocations:i(d(),r(e())),addLocation:i(t({name:e()}),d(),{kind:"mutation",auth:"admin"}),removeLocation:i(t({name:e(),cascade:l().optional()}),d(),{kind:"mutation",auth:"admin"}),setDisabled:i(t({deviceId:a(),disabled:l()}),d(),{kind:"mutation",auth:"admin"}),listPersistedByAddon:i(t({addonId:e()}),r(To)),listAll:i(t({addonId:e().optional()}),r(qe)),getDevice:i(t({deviceId:a()}),qe.nullable()),getChildren:i(t({parentDeviceId:a()}),r(qe)),getStreamSources:i(t({deviceId:a()}),r(Dn)),getConfigSchema:i(t({deviceId:a()}),r(qo)),getSettingsSchema:i(t({deviceId:a()}),Bo),updateConfig:i(t({deviceId:a(),values:y(e(),v())}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),enable:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),disable:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),remove:i(t({deviceId:a()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),getStreamProfileMap:i(t({deviceId:a()}),y(e(),e().nullable())),setStreamProfileMap:i(t({deviceId:a(),profileMap:y(e(),e().nullable())}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),probeStreams:i(t({deviceId:a()}),r(xo),{kind:"mutation",auth:"admin"}),getBindings:i(t({deviceId:a()}),t({deviceId:a(),entries:r(t({capName:e(),kind:h(["native","wrapped"]),providerAddonId:e(),providerNodeId:e(),nativeAddonId:e()}))})),getAllBindings:i(t({}),r(t({deviceId:a(),entries:r(t({capName:e(),kind:h(["native","wrapped"]),providerAddonId:e(),providerNodeId:e(),nativeAddonId:e()}))}))),setWrapperActive:i(t({deviceId:a(),capName:e(),wrapperAddonId:e(),active:l()}),d(),{kind:"mutation",auth:"admin"}),listWrappersForCap:i(t({capName:e()}),r(e())),listBindableCapsForDeviceType:i(t({deviceType:e()}),r(t({capName:e(),wrappers:r(e())}))),getDeviceSettingsAggregate:i(t({deviceId:a()}),j.nullable()),getDeviceLiveInfoAggregate:i(t({deviceId:a()}),j.nullable()),getDeviceAggregate:i(t({deviceId:a()}),t({settings:j.nullable(),live:j.nullable()})),updateDeviceField:i(t({deviceId:a(),writerCapName:e(),writerAddonId:e(),key:e(),value:v()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),updateDeviceFieldsBatch:i(t({deviceId:a(),changes:r(t({writerCapName:e(),writerAddonId:e(),key:e(),value:v()}))}),t({success:b(!0),failures:r(t({writerCapName:e(),writerAddonId:e(),error:e()}))}),{kind:"mutation",auth:"admin"}),discoverDevices:i(t({addonId:e()}),r(ye),{kind:"mutation",auth:"admin"}),adoptDevice:i(t({addonId:e(),candidate:ye}),Se,{kind:"mutation",auth:"admin"}),getCreationSchema:i(t({addonId:e(),type:h(C)}),v().nullable()),createDevice:i(t({addonId:e(),type:h(C),config:y(e(),v())}),Se,{kind:"mutation",auth:"admin"}),testCreationField:i(t({addonId:e(),type:h(C),key:e(),value:v(),formValues:y(e(),v()).optional()}),Ze,{kind:"mutation",auth:"admin"}),testField:i(t({deviceId:a(),key:e(),value:v()}),Ze,{kind:"mutation",auth:"admin"}),getDeviceStatusAggregate:i(t({deviceId:a(),caps:r(e()).readonly().optional()}),y(e(),v().nullable()))}},cc={name:"device-state",scope:"system",mode:"singleton",methods:{getSnapshot:i(t({deviceId:a()}),y(e(),y(e(),v()))),getCapSlice:i(t({deviceId:a(),capName:e()}),y(e(),v()).nullable()),getAllSnapshots:i(t({}),y(e(),y(e(),y(e(),v())))),setCapSlice:i(t({deviceId:a(),capName:e(),slice:y(e(),v())}),d(),{kind:"mutation"})},events:{onChanged:G(t({deviceId:a(),capName:e(),slice:y(e(),v())}))}},Te=t({userId:e(),username:e(),email:e().optional(),displayName:e().optional(),roles:r(e()).optional()}),lc={name:"auth-provider",scope:"system",mode:"collection",internal:!0,methods:{validateCredentials:i(t({username:e(),password:e()}),Te.nullable(),{kind:"mutation"}),getLoginUrl:i(t({state:e()}),e()),handleCallback:i(y(e(),e()),Te,{kind:"mutation"}),validateToken:i(t({token:e()}),Te.nullable())}},No=t({addonId:e(),displayName:e(),kind:h(["local","oidc","saml","ldap","other"]),icon:e().optional(),hasRedirectFlow:l(),hasCredentialFlow:l(),status:e().optional(),enabled:l()}),uc={name:"authentication",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(No).readonly()),setProviderEnabled:i(t({addonId:e(),enabled:l()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"})}},Ye=t({url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),Fo=t({connected:l(),endpoint:Ye.nullable(),error:e().optional()}),mc={name:"network-access",scope:"system",mode:"collection",internal:!0,methods:{start:i(d(),Ye,{kind:"mutation"}),stop:i(d(),d(),{kind:"mutation"}),getEndpoint:i(d(),Ye.nullable()),getStatus:i(d(),Fo)}},za=t({url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),Uo=t({addonId:e(),displayName:e(),kind:h(["cloudflare-tunnel","ngrok","tailscale","other"]),enabled:l(),connected:l(),endpoint:za.nullable(),error:e().optional()}),pc={name:"remote-access",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(Uo).readonly()),startProvider:i(t({addonId:e()}),za,{kind:"mutation",auth:"superAdmin"}),stopProvider:i(t({addonId:e()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"})}},Na=t({urls:E([e(),r(e())]),username:e().optional(),credential:e().optional()}),gc={name:"turn-provider",scope:"system",mode:"collection",methods:{getTurnServers:i(d(),r(Na).readonly())}},_o=t({addonId:e(),displayName:e(),kind:h(["cloudflare","coturn","twilio","other"]),enabled:l(),serverCount:a(),urls:r(e()).readonly(),error:e().optional()}),hc={name:"turn-orchestrator",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(_o).readonly()),getAllServers:i(d(),r(Na).readonly()),setProviderEnabled:i(t({addonId:e(),enabled:l()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"})}},Fa=t({base64:e(),contentType:e()}),Ho=t({lastCapturedAt:a().nullable(),cacheAgeMs:a().nullable(),lastBytes:a().nullable(),lastStreamId:e().nullable()}),vc={name:"snapshot",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{getSnapshot:i(t({deviceId:a(),streamId:e().optional(),force:l().optional()}),Fa.nullable()),invalidateCache:i(t({deviceId:a()}),d(),{kind:"mutation",auth:"admin"})},status:{schema:Ho,kind:"poll"}},yc={name:"snapshot-provider",scope:"system",mode:"collection",methods:{supportsDevice:i(t({deviceId:a()}),l()),getSnapshot:i(t({deviceId:a(),streamId:e().optional()}),Fa.nullable())}},Wo=t({title:e(),body:e(),imageUrl:e().optional(),deviceId:a().optional(),eventId:e().optional(),priority:h(["low","normal","high","critical"]).default("normal"),metadata:y(e(),v()).optional()}),Sc={name:"notification-output",scope:"system",mode:"collection",methods:{send:i(Wo,d(),{kind:"mutation"}),sendTest:i(d(),t({success:l(),error:e().optional()}),{kind:"mutation"})}},ra=t({id:e(),name:e(),enabled:l(),conditions:y(e(),v()),actions:r(y(e(),v()))}),Go=t({id:e(),ruleId:e(),timestamp:a(),deviceId:a().optional(),success:l(),error:e().optional()}),bc={name:"advanced-notifier",scope:"system",mode:"singleton",internal:!0,methods:{getRules:i(d(),r(ra).readonly()),upsertRule:i(ra,d(),{kind:"mutation"}),deleteRule:i(t({ruleId:e()}),d(),{kind:"mutation"}),testRule:i(t({ruleId:e(),lookbackMinutes:a()}),r(y(e(),v())),{kind:"mutation"}),getHistory:i(t({ruleId:e().optional(),limit:a().optional()}),r(Go))}},Ua=h(["continuous","motion","scheduled","composite"]),Vo=t({streamId:e(),mode:h(["always","inherit"])}),jo=t({days:r(a()).readonly(),startTime:e(),endTime:e(),mode:h(["continuous","motion"])}),ie=t({deviceId:a(),mode:Ua,streams:r(Vo).readonly(),enabled:l(),preBufferSec:a(),postBufferSec:a(),scheduleRules:r(jo).readonly().optional()}),_a=h(["recording:main","recording:mid","recording:sub","thumbnail:scrub","thumbnail:event"]),Je=t({deviceId:a(),dataCategory:_a,storageName:e(),subDirectory:e(),retentionDays:a().nullable(),retentionGb:a().nullable()}),Ko=t({id:e(),deviceId:a(),streamId:e(),startTime:a(),endTime:a(),duration:a(),path:e(),storageName:e(),subDirectory:e(),sizeBytes:a(),codec:h(["h264","h265"]),hasAudio:l()}),$o=t({deviceId:a(),timestamp:a(),path:e(),storageName:e(),subDirectory:e(),sizeBytes:a(),category:h(["scrub","event"])}),Zo=t({startTime:a(),endTime:a(),streams:r(e()).readonly()}),Qo=t({totalBytes:a(),segmentCount:a()}),Yo=t({bitrateKbps:a(),retentionDays:a().nullable(),retentionGb:a().nullable(),estimatedGb:a(),estimatedDaysAtCapacity:a().nullable()}),da=t({perStream:y(e(),Yo),thumbnails:t({estimatedGb:a()}),totalEstimatedGb:a(),motionEstimate:t({avgEventsPerDay:a(),avgDurationSec:a(),dutyCyclePercent:a()}).optional()}),Jo=t({totalEvents:a(),avgDurationSec:a(),avgEventsPerDay:a(),dutyCyclePercent:a()}),le=t({deviceId:a()}),Xo=t({deviceId:a(),policy:ie.omit({deviceId:!0}),storageOverrides:r(Je.omit({deviceId:!0})).readonly().optional(),ffmpegOverrides:y(e(),v()).optional()}),ca=t({deviceId:a(),startTime:a(),endTime:a()}),es=t({deviceId:a(),streamId:e(),startTime:a(),endTime:a()}),ts=t({deviceId:a(),streamId:e(),startTime:a(),endTime:a(),live:l().optional()}),as=t({deviceId:a(),timestamp:a(),category:e().optional()}),ns=t({deviceId:a(),streamId:e()}),is=t({deviceId:a(),motionInput:t({avgEventsPerDay:a(),avgDurationSec:a()}).optional()}),os=t({deviceId:a(),dataCategory:_a}),ss=t({deviceId:a(),policy:ie.omit({deviceId:!0})}),rs=t({deviceId:a(),policy:ie.omit({deviceId:!0}),ffmpegOverrides:y(e(),v()).optional()}),fc={name:"recording-engine",scope:"system",mode:"singleton",methods:{getStatus:i(d(),t({activeRecordings:a(),totalSegments:a(),totalSizeMB:a()})),enable:i(Xo,d(),{kind:"mutation",auth:"admin"}),disable:i(le,d(),{kind:"mutation",auth:"admin"}),getConfig:i(le,ie.nullable()),updateConfig:i(rs,d(),{kind:"mutation",auth:"admin"}),getPlaylist:i(ts,e()),getThumbnail:i(as,$o.nullable()),getSegments:i(es,r(Ko).readonly()),getAvailability:i(ca,r(Zo).readonly()),estimateStorage:i(is,da),estimateGlobalStorage:i(d(),da),getStorageUsage:i(ns,Qo),setPolicy:i(ss,d(),{kind:"mutation",auth:"admin"}),getPolicy:i(le,ie.nullable()),getPolicyStatus:i(le,t({deviceId:a(),enabled:l(),mode:Ua,activeStreams:a()}).nullable()),getRetentionConfig:i(os,Je.nullable()),updateRetentionConfig:i(Je,d(),{kind:"mutation",auth:"admin"}),getMotionStats:i(ca,Jo)}},Ic={name:"detection-pipeline",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{}},ut=h(["new","entered","left","moving","idle"]),ds=h(["motion","object","audio"]),Ha=t({x:a(),y:a(),timestamp:a(),bbox:Z}),cs=t({timestamp:a(),position:Ha,mediaKey:e()}),Re=t({trackId:e(),deviceId:a(),className:e(),label:e().optional(),firstSeen:a(),lastSeen:a(),positions:r(Ha).readonly(),snapshots:r(cs).readonly(),zonesVisited:r(e()).readonly(),totalDistance:a(),state:ut,active:l()}),mt={id:e(),deviceId:a(),timestamp:a()},ls=t({...mt,kind:b("motion"),regionCount:a(),regions:r(t({bbox:Z,pixelCount:a(),intensity:a()})).readonly(),frameWidth:a(),frameHeight:a()}),us=t({...mt,kind:b("object"),trackId:e(),className:e(),label:e().optional(),confidence:a(),bbox:Z,zones:r(e()).readonly(),state:ut,mediaKey:e().optional()}),ms=t({...mt,kind:b("audio"),rms:a(),dbfs:a(),classification:t({className:e(),originalClass:e().optional(),score:a()}).optional()}),la=t({key:e(),kind:h(["crop","thumbnail","snapshot"]),base64:e(),sizeBytes:a(),timestamp:a()}),ps=1e3,gs=5e3,Xe=t({deviceId:a(),since:a().optional(),until:a().optional(),limit:a().int().min(1).max(gs).default(ps)}),hs=Xe.extend({classFilter:e().optional()}),vs=t({trackId:e(),className:e(),confidence:a(),bbox:Z,zones:r(e()).readonly(),state:ut}),kc={name:"pipeline-analytics",scope:"device",mode:"singleton",deviceTypes:[C.Camera],exposesDeviceSettings:!0,methods:{getActiveTracks:i(t({deviceId:a()}),r(Re).readonly()),getTrack:i(t({deviceId:a(),trackId:e()}),Re.nullable()),listTracks:i(t({deviceId:a(),since:a().optional(),until:a().optional(),limit:a().optional()}),r(Re).readonly()),clearTracks:i(t({deviceId:a()}),d(),{kind:"mutation",auth:"admin"}),getMotionEvents:i(Xe,r(ls).readonly()),getObjectEvents:i(hs,r(us).readonly()),getAudioEvents:i(Xe,r(ms).readonly()),getEventMedia:i(t({eventId:e()}),r(la).readonly()),getTrackMedia:i(t({trackId:e()}),r(la).readonly())},events:{onFrameTracked:{data:t({deviceId:a(),timestamp:a(),frameWidth:a(),frameHeight:a(),detections:r(vs).readonly()})},onTrackStarted:{data:t({deviceId:a(),trackId:e(),className:e()})},onTrackEnded:{data:t({deviceId:a(),trackId:e(),className:e(),durationMs:a()})},onDetectionEvent:{data:t({deviceId:a(),kind:ds,eventId:e(),timestamp:a()})}}},ys=t({total:a(),user:a(),system:a(),irq:a(),nice:a(),loadAvg:Pa([a(),a(),a()]),cores:a()}),Ss=t({percent:a(),totalBytes:a(),usedBytes:a(),availableBytes:a(),swapUsedBytes:a(),swapTotalBytes:a()}),bs=t({readBytes:a(),writeBytes:a(),readOps:a(),writeOps:a(),timestampMs:a()}),fs=t({rxBytes:a(),txBytes:a(),rxPackets:a(),txPackets:a(),rxErrors:a(),txErrors:a(),timestampMs:a()}),Wa=t({utilization:a(),model:e(),memoryUsedBytes:a(),memoryTotalBytes:a(),temperature:a().nullable()}),Is=t({openFds:a(),threadCount:a(),activeHandles:a(),activeRequests:a()}),ua=t({avg10:a(),avg60:a(),avg300:a()}),Be=t({some:ua,full:ua.nullable()}),ma=t({cpu:ys,memory:Ss,gpu:Wa.nullable(),network:fs,disk:bs,pressure:t({cpu:Be.nullable(),memory:Be.nullable(),io:Be.nullable()}),process:Is,cpuTemperature:a().nullable(),timestampMs:a()}),ks=t({path:e(),totalBytes:a(),usedBytes:a(),availableBytes:a(),percent:a()}),pa=t({pid:a(),cpu:a(),memory:a()}),Cs=t({addonId:e(),nodeId:e(),role:h(["hub","worker"]),pid:a(),state:h(["starting","running","stopping","stopped","crashed"]),uptimeSec:a()}),As=t({pid:a(),ppid:a(),pgid:a(),classification:h(["root","managed","system","ghost"]),addonId:e().nullable(),nodeId:e().nullable(),command:e(),cpuPercent:a(),memoryRssBytes:a(),uptimeSec:a(),orphaned:l()}),Ps=t({pid:a(),force:l().optional()}),ws=t({success:l(),reason:e().optional(),signal:h(["SIGTERM","SIGKILL"]).optional()}),Ds=t({cpuPercent:a(),memoryPercent:a(),memoryUsedMB:a(),memoryTotalMB:a(),diskPercent:a().optional(),temperature:a().optional(),gpuPercent:a().optional(),gpuMemoryPercent:a().optional()}),Cc={name:"metrics-provider",scope:"system",mode:"singleton",methods:{collectSnapshot:i(d(),ma),getCached:i(d(),ma.nullable()),getCurrent:i(d(),Ds),getDiskSpace:i(t({dirPath:e()}),ks),getGpuInfo:i(d(),Wa.nullable()),getCpuTemperature:i(d(),a().nullable()),getProcessStats:i(t({pids:r(a())}),r(pa)),listAddonInstances:i(d(),r(Cs).readonly()),getAddonStats:i(t({addonId:e()}),pa.nullable()),listNodeProcesses:i(d(),r(As).readonly()),killProcess:i(Ps,ws,{kind:"mutation",auth:"admin"})}},Ms=t({id:e(),name:e()}),ga=t({pan:a(),tilt:a(),zoom:a()}),ha=t({pan:a().optional(),tilt:a().optional(),zoom:a().optional(),speed:a().optional()}),Ac={name:"ptz",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{move:i(ha.extend({deviceId:a()}),d(),{kind:"mutation"}),continuousMove:i(ha.extend({deviceId:a()}),d(),{kind:"mutation"}),stop:i(t({deviceId:a()}),d(),{kind:"mutation"}),getPresets:i(t({deviceId:a()}),r(Ms)),goToPreset:i(t({deviceId:a(),presetId:e()}),d(),{kind:"mutation"}),goHome:i(t({deviceId:a()}),d(),{kind:"mutation"}),getPosition:i(t({deviceId:a()}),ga)},status:{schema:ga,kind:"command-driven"}},Es=t({id:e(),type:e(),timestamp:a(),label:e().optional(),thumbnailUrl:e().optional(),clipUrl:e().optional(),metadata:y(e(),v()).optional()}),Pc={name:"events",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getEvents:i(t({deviceId:a(),from:a().optional(),to:a().optional(),limit:a().optional()}),r(Es)),getEventThumbnail:i(t({deviceId:a(),eventId:e()}),t({base64:e(),contentType:e()}).nullable()),getEventClipUrl:i(t({deviceId:a(),eventId:e()}),e().nullable())}},qs=t({id:e(),startTs:a(),endTs:a(),durationSec:a(),sizeBytes:a().optional()}),wc={name:"recording",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getSegments:i(t({deviceId:a(),from:a().optional(),to:a().optional()}),r(qs)),getPlaybackUrl:i(t({deviceId:a(),segmentId:e()}),e().nullable()),getThumbnailAt:i(t({deviceId:a(),timestamp:a()}),t({base64:e(),contentType:e()}).nullable())}},Ts=t({id:e(),label:e(),protocol:h(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:e().optional(),resolution:t({width:a(),height:a()}).optional(),fps:a().optional(),bitrate:a().optional(),codec:e().optional(),profileHint:h(["high","mid","low"]).optional(),sdp:e().optional()}),Rs=t({key:e(),value:v()}),Dc={name:"device-ops",scope:"device",mode:"singleton",methods:{getStreamSources:i(t({deviceId:a()}),r(Ts)),getConfigEntries:i(t({deviceId:a()}),r(Rs)),setConfig:i(t({deviceId:a(),values:y(e(),v())}),d(),{kind:"mutation"}),removeDevice:i(t({deviceId:a()}),d(),{kind:"mutation"}),getSettingsSchema:i(t({deviceId:a()}),v().nullable())}},Bs=t({host:e(),port:a().int().positive().optional(),onvifPort:a().int().positive().optional(),rtspPort:a().int().positive().optional(),https:l().optional(),username:e().optional(),password:e().optional(),onvifProfile:e().optional()}),xs=t({host:e(),port:a().int().positive().nullable(),onvifPort:a().int().positive().nullable(),rtspPort:a().int().positive().nullable(),https:l().nullable(),hasUsername:l(),hasPassword:l(),onvifProfile:e().nullable()}),Mc={name:"camera-credentials",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{getCredentials:i(t({deviceId:a()}),Bs.nullable(),{kind:"query",auth:"admin"})},status:{schema:xs,kind:"command-driven"}},Ec={name:"reboot",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Sensor,C.Switch],methods:{reboot:i(t({deviceId:a().int().nonnegative()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"})}},Ls=h(["text","timestamp","watermark"]),et=h(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right","custom"]),Os=t({id:e(),kind:Ls,enabled:l(),text:e().optional(),position:et.optional(),availablePositions:r(et).readonly(),readOnly:l().optional()}),va=t({overlays:r(Os).readonly()}),zs=t({enabled:l().optional(),text:e().optional(),position:et.optional()}).partial(),qc={name:"osd",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{setOverlay:i(t({deviceId:a(),overlayId:e(),patch:zs}),d(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:t({deviceId:a(),status:va})}},status:{schema:va,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:m=>`${String(m.id)} enabled`,kind:"boolean"},text:{label:m=>`${String(m.id)} text`,kind:"text",when:m=>m.kind!=="timestamp"&&!m.readOnly},position:{label:m=>`${String(m.id)} position`,kind:"select",options:m=>m.availablePositions??[],when:m=>Array.isArray(m.availablePositions)&&m.availablePositions.length>0}}}]}},Ns=t({childDeviceIds:r(a()).readonly()}),Tc={name:"accessories",scope:"device",mode:"singleton",deviceTypes:[C.Camera,C.Hub],methods:{},events:{onAccessoriesChanged:{data:t({deviceId:a(),childDeviceIds:r(a()).readonly()})}},status:{schema:Ns,kind:"command-driven"}},Fs=t({codecs:r(e()),sampleRate:a(),duplex:h(["half","full"]),maxBacklogMs:a()}),ya=t({talking:l(),lastSessionAt:a().nullable(),ability:Fs.nullable()}),Rc={name:"intercom",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{startSession:i(t({deviceId:a()}),t({sessionId:e(),sdpOffer:e()}),{kind:"mutation",auth:"admin"}),handleAnswer:i(t({deviceId:a(),sessionId:e(),sdpAnswer:e()}),d(),{kind:"mutation",auth:"admin"}),stopSession:i(t({deviceId:a(),sessionId:e()}),d(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:t({deviceId:a(),status:ya})}},status:{schema:ya,kind:"command-driven"}},tt=h(["person","vehicle","animal","face","package","other"]),Ga=t({class:tt,timestamp:a(),confidence:a().min(0).max(1).optional()}),Us=t({lastByClass:y(tt,Ga.nullable()),supportedClasses:r(tt).readonly()}),Bc={name:"native-object-detection",scope:"device",mode:"singleton",deviceTypes:[C.Camera],methods:{},events:{onDetected:{data:t({deviceId:a(),detection:Ga})}},status:{schema:Us,kind:"push"}},_s=h(rn),Hs=h(["videotoolbox","cuda","nvdec","vaapi","qsv","d3d11va","dxva2","amf","vdpau","drm","coreml","tensorrt","openvino","directml","webgpu","none"]).nullable().optional(),Ws=t({preferred:r(e()).readonly()}),Gs=h(["darwin","linux","win32"]),Vs=h(["arm64","x64"]),js=t({type:h(["nvidia","amd","intel","apple"]),name:e(),memoryMB:a().optional()}),Ks=t({type:h(["apple-ane","intel-npu"])}),Va=t({platform:Gs,arch:Vs,cpuModel:e(),cpuCores:a(),totalRAM_MB:a(),availableRAM_MB:a(),gpu:js.nullable(),npu:Ks.nullable()}),Sa=t({runtime:h(["node","python"]),backend:e(),format:h(["onnx","coreml","openvino"]),score:a(),reason:e(),available:l()}),$s=t({hardware:Va,scores:r(Sa).readonly(),bestScore:Sa,pythonPath:e().nullable()}),Zs=t({modelId:e(),name:e(),minRAM_MB:a(),accuracyScore:a(),formats:r(e()).readonly()}),Qs=t({modelId:e(),runtime:h(["node","python"]),backend:e(),format:_s,reason:e()}),xc={name:"platform-probe",scope:"system",mode:"singleton",methods:{getCapabilities:i(d(),$s),getHardware:i(d(),Va),resolveInferenceConfig:i(t({requirements:r(Zs).readonly()}),Qs),resolveHwAccel:i(t({prefer:Hs,nodeId:e().optional()}),Ws)}},Ys=h(["lan","wifi","docker","vpn","loopback","other"]),ja=t({name:e(),family:h(["IPv4","IPv6"]),address:e(),cidr:e(),netmask:e(),internal:l(),mac:e(),kind:Ys,preferred:l(),plausible:l(),plausibleReason:e()}),Js=t({interfaces:r(ja).readonly(),probedAt:a()}),Xs=ja.nullable(),er=t({label:e(),baseUrl:e(),kind:h(["lan-ipv4","lan-ipv6","public","loopback"]),interfaceKind:h(["lan","wifi","docker","vpn","other","loopback","public"]),plausible:l(),plausibleReason:e(),priority:a()}),tr=t({endpoints:r(er).readonly()}),xe=t({addresses:r(e()).readonly()}),Lc={name:"local-network",scope:"system",mode:"singleton",methods:{list:i(d(),Js),getPreferred:i(d(),Xs),getConnectionEndpoints:i(t({port:a().int().min(1).max(65535),includeLoopback:l().optional(),ipv4Only:l().optional(),scheme:h(["http","https"]).optional()}),tr),getAllowedAddresses:i(d(),xe),setAllowedAddresses:i(xe,t({success:b(!0)}),{kind:"mutation"}),resetAllowlistToBestMatch:i(d(),xe,{kind:"mutation"})}},ar=t({id:e(),label:e(),scope:h(["mesh","public"]),url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),nr=t({id:e(),hostname:e(),addresses:r(e()).readonly(),os:e().optional(),online:l(),lastSeenMs:a(),isSelf:l()}),ir=t({joined:l(),meshIp:e(),magicDnsHostname:e(),peerCount:a(),endpoints:r(ar).readonly(),error:e().optional()}),or=t({enabled:l(),port:a().int().min(1).max(65535).optional()}),sr=t({enabled:l(),port:a().int().min(1).max(65535).optional()}),Oc={name:"mesh-network",scope:"system",mode:"collection",methods:{getStatus:i(d(),ir),join:i(t({authKey:e().min(8),hostname:e().optional()}),t({joined:b(!0)}),{kind:"mutation"}),leave:i(d(),t({left:b(!0)}),{kind:"mutation"}),listPeers:i(d(),t({peers:r(nr).readonly()})),setPublicIngress:i(or,t({success:b(!0)}),{kind:"mutation"}),setMeshIngress:i(sr,t({success:b(!0)}),{kind:"mutation"})}},rr=t({id:e(),label:e(),scope:h(["mesh","public"]),url:e(),hostname:e(),port:a(),protocol:h(["http","https"])}),dr=t({addonId:e(),displayName:e(),kind:h(["tailscale","headscale","zerotier","other"]),joined:l(),meshIp:e(),magicDnsHostname:e(),peerCount:a(),endpoints:r(rr).readonly(),error:e().optional()}),zc={name:"mesh-orchestrator",scope:"system",mode:"singleton",methods:{listProviders:i(d(),r(dr).readonly()),joinProvider:i(t({addonId:e(),authKey:e().min(8),hostname:e().optional()}),t({joined:b(!0)}),{kind:"mutation"}),leaveProvider:i(t({addonId:e()}),t({success:b(!0)}),{kind:"mutation"})}},oe=h(["super_admin","admin","viewer","agent"]),Le=t({id:e(),username:e(),role:oe,allowedProviders:E([r(e()),b("*")]),allowedDevices:y(e(),E([r(e()),b("*")])),createdAt:a(),updatedAt:a()}),cr=t({username:e(),password:e().min(6),role:oe,allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional()}),lr=t({id:e(),role:oe.optional(),allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional()}),at=t({id:e(),label:e(),role:oe,allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional(),tokenPrefix:e(),createdAt:a(),lastUsedAt:a().optional()}),ur=t({label:e(),role:oe,allowedProviders:E([r(e()),b("*")]).optional(),allowedDevices:y(e(),E([r(e()),b("*")])).optional()}),mr=t({token:e(),record:at}),Ka=t({type:h(["addon","route-prefix","capability"]),target:e()}),nt=t({id:e(),userId:e(),name:e(),tokenPrefix:e(),scopes:r(Ka),expiresAt:a().optional(),lastUsedAt:a().optional(),createdAt:a()}),pr=t({name:e(),scopes:r(Ka),expiresAt:a().optional()}),gr=t({token:e(),record:nt}),Nc={name:"user-management",scope:"system",mode:"singleton",methods:{listUsers:i(d(),r(Le),{auth:"admin"}),createUser:i(cr,Le,{kind:"mutation",auth:"superAdmin"}),updateUser:i(lr,t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),deleteUser:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),resetPassword:i(t({id:e(),newPassword:e().min(6)}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),validateCredentials:i(t({username:e(),password:e()}),Le.extend({passwordHash:e()}).nullable(),{kind:"mutation"}),listApiKeys:i(d(),r(at),{auth:"admin"}),createApiKey:i(ur,mr,{kind:"mutation",auth:"admin"}),revokeApiKey:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),validateApiKey:i(t({token:e()}),at.nullable(),{kind:"mutation"}),createScopedToken:i(pr,gr,{kind:"mutation",auth:"admin"}),revokeScopedToken:i(t({id:e()}),t({success:b(!0)}),{kind:"mutation",auth:"admin"}),validateScopedToken:i(t({token:e()}),nt.nullable()),listScopedTokens:i(t({userId:e()}),r(nt),{auth:"admin"})}},ba=t({streaming:l(),notifications:l(),objectDetection:l(),remoteAccess:l(),agentCluster:l(),smartHome:l(),recordings:l(),backup:l(),repl:l()}),hr=t({status:b("ok"),uptime:a()}),vr=t({name:e(),address:e(),family:e(),internal:l()}),Fc={name:"system",scope:"system",mode:"singleton",methods:{info:i(d(),ba),health:i(d(),hr),featureFlags:i(d(),ba),networkAddresses:i(d(),r(vr).readonly()),getRetentionConfig:i(d(),v().nullable(),{auth:"admin"}),setRetentionConfig:i(y(e(),v()),sn(),{kind:"mutation",auth:"superAdmin"}),forceRetentionCleanup:i(d(),d(),{kind:"mutation",auth:"superAdmin"})}},yr=t({nominalBitrateKbps:a(),observedBitrateKbps:a(),peakBitrateKbps:a(),packetLossPercent:a(),lastUpdated:a()}),Sr=t({rttMs:a(),jitterMs:a(),estimatedBandwidthKbps:a(),lastUpdated:a()}),fa=t({deviceId:a(),streams:y(e(),yr),client:Sr.optional()}),Uc={name:"network-quality",scope:"system",mode:"singleton",methods:{getDeviceStats:i(t({deviceId:a()}),fa.nullable()),getAllStats:i(d(),r(fa).readonly()),reportClientStats:i(t({deviceId:a(),rttMs:a().min(0).max(6e4),jitterMs:a().min(0).max(1e4),estimatedBandwidthKbps:a().min(0).max(1e6)}),d(),{kind:"mutation"})}},br=t({title:e(),message:e(),severity:h(["info","warning","critical"]),duration:a().optional(),action:t({label:e(),url:e()}).optional()}),_c={name:"toast",scope:"system",mode:"singleton",methods:{onToast:i(d(),br,{kind:"subscription"})}},fr=t({addonId:e(),capabilities:r(e()).readonly(),status:e()}),Ir=t({pid:a(),name:e(),state:e(),cpuPercent:a(),memoryRss:a(),uptimeSeconds:a(),services:r(fr).readonly(),groupId:e().optional()}),kr=t({id:e(),name:e(),hostname:e(),platform:e(),arch:e(),cpuModel:e().nullable(),cpuCores:a(),memoryMB:a(),engines:r(e()).readonly(),isHub:l(),isOnline:l(),cpuPercent:a(),memoryPercent:a(),uptime:a(),lastSeen:e(),localIps:r(e()).readonly(),addons:r(t({id:e(),capabilities:r(e()).readonly(),status:e()})).readonly(),processes:r(Ir).readonly()}),Cr=t({nodeId:e(),name:e(),version:e(),status:e(),synced:l()}),Ar=t({hubVersion:e(),nodes:r(Cr)}),Oe=t({nodeId:e(),addonId:e()}),ee=t({success:l()}),Pr=t({success:l(),reason:e().optional()}),wr=t({restarted:r(e()).readonly(),failed:r(e()).readonly()}),Dr=t({nodeId:e(),name:e()}),Hc={name:"nodes",scope:"system",mode:"singleton",methods:{topology:i(d(),r(kr).readonly(),{auth:"admin"}),deployAddon:i(Oe,ee,{kind:"mutation",auth:"superAdmin"}),undeployAddon:i(Oe,ee,{kind:"mutation",auth:"superAdmin"}),restartAddon:i(Oe,ee,{kind:"mutation",auth:"superAdmin"}),restartProcess:i(t({nodeId:e(),processName:e()}),Pr,{kind:"mutation",auth:"superAdmin"}),restartNode:i(t({nodeId:e()}),wr,{kind:"mutation",auth:"superAdmin"}),shutdownNode:i(t({nodeId:e()}),ee,{kind:"mutation",auth:"superAdmin"}),renameNode:i(t({nodeId:e(),name:e().min(1).max(64)}),Dr,{kind:"mutation",auth:"superAdmin"}),clusterAddonStatus:i(d(),y(e(),Ar),{auth:"superAdmin"}),setProcessLogLevel:i(t({nodeId:e(),level:e()}),ee,{kind:"mutation",auth:"superAdmin"}),executeQuery:i(t({nodeId:e(),addonId:e(),queryName:e(),params:y(e(),v()).optional()}),v(),{kind:"mutation",auth:"superAdmin"})}},Ia=t({id:e(),addonId:e(),name:e(),enabled:l(),info:y(e(),v()).readonly(),createdAt:a(),updatedAt:a(),processState:e()}),ze=t({id:e(),addonId:e(),name:e(),enabled:l(),info:y(e(),v()).readonly(),createdAt:a(),updatedAt:a()}),Mr=t({addonId:e(),name:e(),description:e(),iconUrl:e().nullable(),color:e(),instanceMode:e(),discoveryMode:e(),existingInstances:r(t({id:e(),name:e()})),canAdd:l()}),Er=t({success:l(),error:e().optional()}),qr=t({addonId:e(),name:e(),enabled:l().optional(),info:y(e(),v()).optional(),settings:y(e(),v()).optional(),skipRestart:l().optional()}),Tr=t({id:e(),name:e().optional(),enabled:l().optional(),info:y(e(),v()).optional()}),Rr=t({success:l(),deletedId:e()}),Wc={name:"integrations",scope:"system",mode:"singleton",methods:{list:i(d(),r(Ia)),get:i(t({id:e()}),Ia),getByAddonId:i(t({addonId:e()}),ze.nullable()),create:i(qr,ze,{kind:"mutation",auth:"admin"}),update:i(Tr,ze,{kind:"mutation",auth:"superAdmin"}),delete:i(t({id:e()}),Rr,{kind:"mutation",auth:"superAdmin"}),getSettings:i(t({id:e()}),y(e(),v()),{auth:"admin"}),setSettings:i(t({id:e(),settings:y(e(),v())}),t({success:l()}),{kind:"mutation",auth:"superAdmin"}),getAvailableTypes:i(d(),r(Mr),{auth:"admin"}),testConnection:i(t({addonId:e(),settings:y(e(),v())}),Er,{kind:"mutation",auth:"admin"})}},ka=h(["debug","info","warn","error"]),it=h(["off","latest","beta"]),$a=h(["off","latest","beta","inherit"]),Br=t({id:e(),name:e().optional(),version:e().optional(),description:e().optional(),icon:e().optional(),color:e().optional(),capabilities:r(v()).readonly().optional(),packageName:e(),packageVersion:e(),packageDisplayName:e().optional(),bundle:t({displayName:e(),description:e().optional(),icon:e().optional()}).optional(),protected:l().optional(),removable:l().optional()}),xr=t({pid:a().optional(),mode:e(),state:e()}),Lr=t({phase:h(["pending","healthy","failed"]),retryCount:a(),firstFailureAt:a().nullable(),lastAttemptAt:a().nullable(),lastError:t({message:e(),stack:e().optional()}).nullable(),nextRetryAt:a().nullable(),alertEmitted:l(),retrying:l(),inGracePeriod:l()}),Or=t({manifest:Br,declaration:v().optional(),source:e(),installSource:e().optional(),process:xr.optional(),hasBackup:l().optional(),health:Lr.nullable().optional()}),zr=t({name:e(),version:e(),dir:e(),installSource:e().optional()}),Nr=t({name:e(),currentVersion:e(),latestVersion:e(),category:h(["addon","core"]),requiresRestart:l()}),Fr=t({version:e(),publishedAt:e(),deprecated:e().optional(),distTags:r(e()).readonly()}),Ur=t({name:e(),version:e(),description:e(),keywords:r(e()).readonly(),publishedAt:e(),author:e(),installed:l(),installedVersion:e().optional()}),_r=t({channel:it,intervalSeconds:a()}),Hr=$a,Wr=v(),Ca=v(),Gr=v(),Vr=t({timestamp:e(),level:e(),message:e(),scope:e().optional()}),jr=v(),Kr=t({addonId:e().min(1),action:e().min(1),input:v()}),Gc={name:"addons",scope:"system",mode:"singleton",methods:{list:i(d(),r(Or).readonly()),getLogs:i(t({addonId:e(),limit:a().min(1).max(500).default(100),level:ka.optional()}),r(jr),{auth:"admin"}),listPackages:i(d(),r(zr).readonly()),installPackage:i(t({packageName:e(),version:e().optional()}),Ca,{kind:"mutation",auth:"superAdmin"}),installFromWorkspace:i(t({packageName:e()}),Ca,{kind:"mutation",auth:"admin"}),isWorkspaceAvailable:i(d(),l()),listWorkspacePackages:i(d(),r(v()).readonly()),uninstallPackage:i(t({packageName:e()}),v(),{kind:"mutation",auth:"superAdmin"}),reloadPackages:i(d(),Gr,{kind:"mutation",auth:"admin"}),searchAvailable:i(t({query:e().optional()}),r(Ur)),listUpdates:i(d(),r(Nr).readonly(),{auth:"admin"}),updatePackage:i(t({name:e().min(1),version:e().optional()}),v(),{kind:"mutation",auth:"superAdmin"}),rollbackPackage:i(t({name:e().min(1)}),t({rolledBackTo:e().nullable()}),{kind:"mutation",auth:"superAdmin"}),forceRefresh:i(d(),v(),{kind:"mutation",auth:"admin"}),restartServer:i(t({confirm:b(!0)}),v(),{kind:"mutation",auth:"superAdmin"}),getVersions:i(t({name:e()}),r(Fr).readonly()),restartAddon:i(t({addonId:e()}),Wr,{kind:"mutation",auth:"superAdmin"}),retryLoad:i(t({packageName:e()}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),getAutoUpdateSettings:i(d(),_r,{auth:"admin"}),setAutoUpdateSettings:i(t({channel:it,intervalSeconds:a().min(300).max(86400).optional()}),v(),{kind:"mutation",auth:"superAdmin"}),getAddonAutoUpdate:i(t({addonId:e()}),Hr,{auth:"admin"}),setAddonAutoUpdate:i(t({addonId:e(),channel:$a}),v(),{kind:"mutation",auth:"admin"}),applyAutoUpdateToAll:i(t({channel:it}),t({success:b(!0)}),{kind:"mutation",auth:"superAdmin"}),custom:i(Kr,v(),{kind:"mutation"}),onAddonLogs:i(t({addonId:e(),level:ka.optional()}),Vr,{kind:"subscription"})}},$r=["decoder","motion-detection","pipeline-executor","audio-analyzer","pipeline-analytics","notification-output"],Vc=[...$r,"pipeline-orchestrator","pipeline-runner"],Za=h(["super_admin","admin","viewer","agent"]),Qa=E([b("*"),r(e())]),Ya=y(e(),E([b("*"),r(e())])),jc=t({id:e(),username:e(),passwordHash:e(),role:Za,allowedProviders:Qa,allowedDevices:Ya,createdAt:a(),updatedAt:a()}),Kc=t({id:e(),label:e(),role:Za,allowedProviders:Qa,allowedDevices:Ya,tokenHash:e(),tokenPrefix:e(),createdAt:a(),lastUsedAt:a().optional()}),Zr=t({type:h(["addon","route-prefix","capability"]),target:e()}),$c=t({id:e(),userId:e(),name:e(),tokenHash:e(),tokenPrefix:e(),scopes:r(Zr),expiresAt:a().optional(),lastUsedAt:a().optional(),createdAt:a()});export{oa as $,ad as A,Hr as B,Or as C,wa as D,lo as E,co as F,So as G,Me as H,Fi as I,_i as J,Ui as K,Kc as L,rn as M,at as N,ao as O,no as P,Io as Q,ko as R,Xr as S,Wt as T,An as U,Ge as V,Yr as W,Co as X,Ao as Y,Po as Z,wo as _,C as a,Ie as a$,ms as a0,_n as a1,Pn as a2,wn as a3,Ft as a4,Do as a5,No as a6,Te as a7,_r as a8,Mr as a9,oo as aA,so as aB,qo as aC,Ni as aD,zi as aE,ur as aF,mr as aG,qr as aH,pr as aI,gr as aJ,cr as aK,Kr as aL,nc as aM,Qd as aN,Sn as aO,kn as aP,Cn as aQ,En as aR,ia as aS,zt as aT,un as aU,Rr as aV,Yn as aW,_t as aX,qe as aY,fa as aZ,z as a_,yn as aa,eo as ab,Yt as ac,Ce as ad,Z as ae,Ut as af,Ln as ag,On as ah,xn as ai,Bn as aj,Tn as ak,qn as al,ud as am,_ as an,Da as ao,rt as ap,Bs as aq,xs as ar,ct as as,Wn as at,Ue as au,fo as av,hn as aw,Sr as ax,Cr as ay,Ar as az,xd as b,M as b$,We as b0,zn as b1,Rd as b2,Nn as b3,Ht as b4,Eo as b5,sa as b6,Mn as b7,mo as b8,Es as b9,Vt as bA,Si as bB,Ea as bC,Ga as bD,tt as bE,Us as bF,Fo as bG,vr as bH,Ye as bI,Go as bJ,ra as bK,Wo as bL,us as bM,fd as bN,Ls as bO,zs as bP,Os as bQ,et as bR,va as bS,$r as bT,Vc as bU,Nr as bV,Fr as bW,be as bX,$e as bY,na as bZ,je as b_,ds as ba,ho as bb,ba as bc,ke as bd,me as be,bo as bf,Zd as bg,hr as bh,we as bi,Ci as bj,zr as bk,ze as bl,Ia as bm,Fs as bn,ya as bo,io as bp,ea as bq,Ta as br,Vr as bs,la as bt,Hn as bu,ls as bv,yi as bw,he as bx,lt as by,pi as bz,qi as c,vs as c$,Gt as c0,$ as c1,gd as c2,mi as c3,_e as c4,ue as c5,Pi as c6,Ii as c7,Ke as c8,pe as c9,Qi as cA,Gi as cB,Vi as cC,Ji as cD,Ki as cE,O as cF,T as cG,K as cH,Hi as cI,Yi as cJ,Wi as cK,ji as cL,dt as cM,Rn as cN,yr as cO,Dn as cP,md as cQ,jt as cR,Ds as cS,Er as cT,br as cU,Zr as cV,kr as cW,Ir as cX,fr as cY,Re as cZ,ut as c_,fi as ca,ha as cb,ga as cc,Ms as cd,Jt as ce,go as cf,za as cg,Uo as ch,gi as ci,He as cj,hi as ck,Cd as cl,Ma as cm,vi as cn,$c as co,nt as cp,Ur as cq,qs as cr,Zt as cs,Xt as ct,j as cu,Qt as cv,Fa as cw,Un as cx,$i as cy,Zi as cz,Ld as d,Cc as d$,_o as d0,Na as d1,Tr as d2,lr as d3,jc as d4,Za as d5,Le as d6,dn as d7,vo as d8,xa as d9,sc as dA,lc as dB,uc as dC,Ud as dD,Mc as dE,qa as dF,Mi as dG,q as dH,Yd as dI,Ic as dJ,dc as dK,vn as dL,Dc as dM,cc as dN,rc as dO,G as dP,Pc as dQ,rd as dR,td as dS,Wc as dT,Rc as dU,Lc as dV,Hd as dW,ed as dX,Oc as dY,zc as dZ,i as d_,uo as da,Ra as db,ta as dc,pn as dd,ui as de,Ai as df,ae as dg,$t as dh,qd as di,te as dj,ki as dk,Tc as dl,nd as dm,Gd as dn,Vd as dp,$d as dq,Od as dr,Kd as ds,jd as dt,Gc as du,Wd as dv,bc as dw,zd as dx,oc as dy,ic as dz,Td as e,bd as e0,Bc as e1,mc as e2,Uc as e3,Hc as e4,Sc as e5,qc as e6,kc as e7,Id as e8,tc as e9,Ad as ea,xc as eb,Ac as ec,Ec as ed,wc as ee,fc as ef,pc as eg,id as eh,Jd as ei,_d as ej,vc as ek,yc as el,Nd as em,Fd as en,hd as eo,pd as ep,Fc as eq,_c as er,hc as es,gc as et,Nc as eu,Xd as ev,Ba as ew,ec as ex,Ed as f,Pd as g,Jr as h,sd as i,Sd as j,od as k,yd as l,wd as m,vd as n,ld as o,Dd as p,cd as q,dd as r,Md as s,Bd as t,gn as u,ac as v,mn as w,Ns as x,F as y,kd as z};