@camstack/addon-admin-ui 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CKfGBI-Z.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CeLhKMin.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-CykPKLuU.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-DXPQtD9p.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-xMlwAAY4.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-OcRSBqRe.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-Clpxla3F.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-GvBGLFI2.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-B_akQFxJ.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-Dl4u0xYE.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-BZBxNMgx.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-CSyOECfO.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-CCRqQaXq.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-CzO_Esxm.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-B5D3mvYP.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-xw6c6JeS.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-CRHuTm5p.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-DNpf5SLz.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-XIS4Ck9-.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-BEKtiDI3.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-D4TBsvIB.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-CziSE-Do.js} +1 -1
- package/dist/assets/auth-records-BEfan3dC.js +1 -0
- package/dist/assets/capability-router-map-B3jHfbHt.js +1 -0
- package/dist/assets/devices-BfsgGvwu.js +1 -0
- package/dist/assets/{hostInit-DpSCsYyA.js → hostInit-7yPTCcmg.js} +1 -1
- package/dist/assets/index-BlKJSHE9.js +80 -0
- package/dist/assets/index-ByDDdVKJ.css +1 -0
- package/dist/assets/index-C-M4yvxf.js +1 -0
- package/dist/assets/index-DculG9Gi.js +1098 -0
- package/dist/assets/index-DfH297U6.js +1 -0
- package/dist/assets/index-Dvmk3HcY.js +1 -0
- package/dist/assets/index-K1-f6oQr.js +1 -0
- package/dist/assets/index-X-IEwb-L.js +80 -0
- package/dist/assets/index-cfq-Npln.js +1 -0
- package/dist/assets/index-iCcWZGKs.js +1 -0
- package/dist/assets/index-ptcmLXsE.js +1 -0
- package/dist/assets/{remoteEntry-0zDoMSWf.js → remoteEntry-Da_G1gka.js} +1 -1
- package/dist/assets/{schemas-BOzikgNT.js → schemas-XgIEoUz3.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-BnGk9xo_.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-kSAHDLPS.js} +2 -2
- package/dist/index.html +7 -8
- package/dist/mf-entry-bootstrap-0.js +2 -2
- package/dist/server/addon.js +11 -25
- package/dist/server/addon.js.map +1 -1
- package/dist/sw.js +1 -1
- package/package.json +4 -3
- package/dist/assets/capability-router-map-Bqwnkkax.js +0 -1
- package/dist/assets/devices-CFL4MLSo.js +0 -511
- package/dist/assets/index-BP0PcGIN.js +0 -1
- package/dist/assets/index-BQVATbZy.js +0 -5
- package/dist/assets/index-BZhZ3Jvf.js +0 -1
- package/dist/assets/index-BfdtdylV.js +0 -533
- package/dist/assets/index-BkJ1uzOh.js +0 -8420
- package/dist/assets/index-BuajxCgS.js +0 -1
- package/dist/assets/index-CKMQgnc3.js +0 -1
- package/dist/assets/index-DAq7g5_U.js +0 -1
- package/dist/assets/index-DRebE_bu.js +0 -22
- package/dist/assets/index-DUjRaULz.js +0 -1
- package/dist/assets/index-OcuNiGT5.js +0 -34
- package/dist/assets/index-R6tzT59K.css +0 -1
- package/dist/assets/index-pmj5N6Ix.js +0 -5
- package/dist/server/addon.d.ts +0 -12
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var Rc=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports);var zm=Rc((pm,Sc)=>{var li=Object.defineProperty,_c=Object.getOwnPropertyDescriptor,qc=Object.getOwnPropertyNames,Oc=Object.prototype.hasOwnProperty,Bc=(e,i)=>{for(var t in i)li(e,t,{get:i[t],enumerable:!0})},xc=(e,i,t,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let d of qc(i))!Oc.call(e,d)&&d!==t&&li(e,d,{get:()=>i[d],enumerable:!(s=_c(i,d))||s.enumerable});return e},Nc=e=>xc(li({},"__esModule",{value:!0}),e),pa={};Bc(pa,{ACCESSORY_LABEL:()=>_d,ALL_CAPABILITY_DEFINITIONS:()=>rm,APPLE_SA_TO_MACRO:()=>xa,AUDIO_BACKEND_CHOICES:()=>Vl,AUDIO_MACRO_LABELS:()=>Oa,AccessoriesStatusSchema:()=>Is,AccessoryKind:()=>qe,AddonAutoUpdateSchema:()=>mc,AddonListItemSchema:()=>oc,AddonPageDeclarationSchema:()=>to,AddonPageInfoSchema:()=>Xr,AgentLoadSummarySchema:()=>vo,AlertSchema:()=>Lt,AlertSeveritySchema:()=>Ur,AlertSourceSchema:()=>Wr,AlertStatusSchema:()=>Hr,ApiKeyRecordSchema:()=>cm,ApiKeySummarySchema:()=>dn,AudioAnalysisResultSchema:()=>ko,AudioAnalysisSettingsSchema:()=>Io,AudioChunkInputSchema:()=>_n,AudioClassSummarySchema:()=>Ya,AudioClassificationLabelSchema:()=>Qt,AudioClassificationResultSchema:()=>Ao,AudioCodecInfoSchema:()=>wo,AudioDecodeSessionConfigSchema:()=>Po,AudioEncodeSessionConfigSchema:()=>Do,AudioEncodedChunkSchema:()=>Yn,AudioEventSchema:()=>ns,AudioLevelSchema:()=>gr,AudioMetricsHistoryPointSchema:()=>Qa,AudioMetricsHistorySchema:()=>Ja,AudioMetricsSnapshotSchema:()=>Mn,AudioPcmChunkSchema:()=>Mo,AuthResultSchema:()=>Ht,AutoUpdateSettingsSchema:()=>uc,AvailableIntegrationTypeSchema:()=>Xs,BACKEND_TO_FORMAT:()=>zi,BATTERY_DEVICE_PROFILE:()=>Ha,BaseAddon:()=>ka,BaseDevice:()=>vl,BaseDeviceProvider:()=>fl,BatteryStatusSchema:()=>Bt,BoundingBoxSchema:()=>Xe,BrightnessStatusSchema:()=>Tn,BrokerAudioClientSchema:()=>cr,BrokerClientsSchema:()=>dr,BrokerDecodedClientSchema:()=>sr,BrokerRtspClientSchema:()=>or,BrokerStatsSchema:()=>ir,BrokerStatusSchema:()=>nr,CAM_PROFILE_ORDER:()=>Hd,CAPABILITY_NAMES:()=>im,CAPABILITY_ROUTER_KEYS:()=>am,CAP_NAMES_WITH_STATUS:()=>om,COCO_80_LABELS:()=>Pd,COCO_TO_MACRO:()=>Md,CamProfileSchema:()=>Ue,CamStreamKindSchema:()=>vi,CamStreamResolutionSchema:()=>zn,CameraCredentialsSchema:()=>ps,CameraCredentialsStatusSchema:()=>bs,CameraMetricsSchema:()=>pn,CameraMetricsWithDeviceIdSchema:()=>hr,CameraStreamSchema:()=>Kt,CapabilityBindingsSchema:()=>So,ChargingStatus:()=>La,ClientNetworkStatsSchema:()=>Hs,ClusterAddonNodeDeploymentSchema:()=>Ys,ClusterAddonStatusEntrySchema:()=>Qs,CollectionColumnSchema:()=>Vr,CollectionIndexSchema:()=>Zr,ConfigEntrySchema:()=>_o,ConfigSectionWithValuesSchema:()=>Lr,ConfigTabDeclarationSchema:()=>Nr,CreateApiKeyInputSchema:()=>Rs,CreateApiKeyResultSchema:()=>_s,CreateIntegrationInputSchema:()=>tc,CreateScopedTokenInputSchema:()=>Os,CreateScopedTokenResultSchema:()=>Bs,CreateUserInputSchema:()=>Ts,CustomActionInputSchema:()=>gc,DEFAULT_ADDON_GROUP:()=>ha,DEFAULT_ADDON_PLACEMENT:()=>va,DEFAULT_AUDIO_ANALYZER_CONFIG:()=>Zl,DEFAULT_DECODER_HWACCEL_CONFIG:()=>Gl,DEFAULT_FEATURES:()=>ad,DEFAULT_RETENTION:()=>sd,DEVICE_PROFILES:()=>Wa,DEVICE_SETTINGS_CONTRIBUTION_METHODS:()=>Va,DEVICE_STATUS_METHOD:()=>Za,DEVICE_TYPE_INFO:()=>Rd,DecodedFrameSchema:()=>tr,DecoderAssignmentSchema:()=>Zn,DecoderSessionConfigSchema:()=>Dn,DecoderStatsSchema:()=>Pa,DeleteIntegrationResultSchema:()=>ic,DetectorOutputSchema:()=>vr,DeviceConfig:()=>$a,DeviceDiscoveryStatusSchema:()=>En,DeviceFeature:()=>Na,DeviceInfoSchema:()=>Ut,DeviceNetworkStatsSchema:()=>si,DeviceRole:()=>Fa,DeviceRuntimeState:()=>Ga,DeviceStatusSchema:()=>qt,DeviceType:()=>De,DiscoveredChildDeviceSchema:()=>Yt,DiscoveredChildStatusSchema:()=>ur,DiscoveredDeviceSchema:()=>yl,DoorbellPressEventSchema:()=>mr,DoorbellStatusSchema:()=>Rn,ElementConfigStore:()=>vd,EmbeddingInfoSchema:()=>Eo,EmbeddingResultSchema:()=>Qn,EncodedPacketSchema:()=>er,EnrichedWidgetMetadataSchema:()=>ro,EventCategory:()=>ya,EventItemSchema:()=>ls,EventKindSchema:()=>Jo,EventSourceType:()=>Da,ExposedResourceSchema:()=>uo,FeatureManifestSchema:()=>oi,FeatureProbeStatusSchema:()=>Ot,FrameInputSchema:()=>pt,GlobalMetricsSchema:()=>yo,HF_BASE_URL:()=>cd,HF_REPO:()=>Ma,HWACCEL_OPTIONS:()=>$l,HealthStatusSchema:()=>Ns,HistoryPointSchema:()=>xt,HistoryResolutionEnum:()=>Er,InstalledPackageSchema:()=>sc,IntegrationLiteSchema:()=>Gt,IntegrationWithStateSchema:()=>ci,IntercomAbilitySchema:()=>Cs,IntercomStatusSchema:()=>ri,LogEntrySchema:()=>$n,LogLevelSchema:()=>Ri,LogStreamEntrySchema:()=>zc,MACRO_LABELS:()=>Dd,MODEL_FORMATS:()=>ba,MediaFileSchema:()=>ei,MotionAnalysisResultSchema:()=>pr,MotionEventSchema:()=>es,MotionOnMotionChangedDataSchema:()=>wr,MotionRegionSchema:()=>yt,MotionSourceEnum:()=>bn,MotionSourcesSchema:()=>kr,MotionStatusSchema:()=>Bn,MotionTriggerRuntimeStateSchema:()=>Pr,MotionTriggerStatusSchema:()=>Ci,NativeDetectionSchema:()=>Ni,NativeObjectClassEnum:()=>cn,NativeObjectDetectionStatusSchema:()=>ws,NetworkAccessStatusSchema:()=>xo,NetworkAddressSchema:()=>Ls,NetworkEndpointSchema:()=>on,NotificationHistoryEntrySchema:()=>Go,NotificationRuleSchema:()=>Jn,NotificationSchema:()=>Wo,ObjectEventSchema:()=>ts,OrchestratorMetricsSchema:()=>Kd,OsdOverlayKindEnum:()=>ys,OsdOverlayPatchSchema:()=>fs,OsdOverlaySchema:()=>Ss,OsdPositionEnum:()=>sn,OsdStatusSchema:()=>ai,PIPELINE_FLOW_CAPABILITY_NAMES:()=>bc,PIPELINE_OWNER_CAPABILITY_NAMES:()=>nm,PYTHON_SCRIPT:()=>Ra,PackageUpdateSchema:()=>cc,PackageVersionInfoSchema:()=>dc,PcmSampleFormatSchema:()=>It,PerScopeBreakdownSchema:()=>tn,PipelineAssignmentSchema:()=>Vn,PipelineDefaultStepSchema:()=>Jt,PipelineEngineChoiceSchema:()=>de,PipelineRunResultBridge:()=>On,PipelineStepInputSchema:()=>Je,PlaceholderReasonSchema:()=>$d,PolygonPointSchema:()=>fr,ProfileSlotSchema:()=>Vt,ProfileSlotStatusSchema:()=>gt,ProviderStatusSchema:()=>_r,PtzAutotrackRuntimeStateSchema:()=>Mr,PtzAutotrackSettingsSchema:()=>en,PtzAutotrackStatusSchema:()=>bt,PtzAutotrackTargetOptionSchema:()=>Dr,PtzMoveCommandSchema:()=>ii,PtzPositionSchema:()=>ni,PtzPresetSchema:()=>cs,QueryFilterSchema:()=>Hn,RECOGNITION_TYPES:()=>od,RUNTIME_DEFAULTS:()=>dd,RUNTIME_TO_FORMAT:()=>Ea,ReadinessRegistry:()=>Vc,ReadinessTimeoutError:()=>Aa,RegisteredStreamSchema:()=>lo,ReportMotionInputSchema:()=>Ir,RingBuffer:()=>um,RtspRestreamEntrySchema:()=>Zt,RunnerCameraConfigSchema:()=>Ar,RunnerCameraDeviceUIFields:()=>gl,RunnerLocalLoadSchema:()=>Ii,RunnerLocalMetricsSchema:()=>Cr,STREAM_QUALITY_LABELS:()=>Ca,SUB_DETECTION_TYPES:()=>rd,ScopedTokenSchema:()=>dm,ScopedTokenSummarySchema:()=>ln,SearchResultSchema:()=>lc,SegmentSchema:()=>ms,SettingsPatchSchema:()=>Fn,SettingsRecordSchema:()=>Wn,SettingsSchemaWithValuesSchema:()=>Ye,SettingsUpdateResultSchema:()=>Un,SnapshotImageSchema:()=>Bi,SpatialDetectionSchema:()=>zr,StorageLocationTypeSchema:()=>Fe,StreamFormatSchema:()=>gn,StreamInfoSchema:()=>ar,StreamNetworkStatsSchema:()=>Us,StreamSourceEntrySchema:()=>Xa,StreamSourceSchema:()=>Wd,SwitchStatusSchema:()=>xn,SystemMetricsSchema:()=>os,SystemMirror:()=>Nl,TestConnectionResultSchema:()=>ec,ToastSchema:()=>$s,TokenScopeSchema:()=>yc,TopologyNodeSchema:()=>Zs,TopologyProcessSchema:()=>Vs,TopologyServiceSchema:()=>Ks,TrackSchema:()=>Wt,TrackStateSchema:()=>hn,TrackedDetectionSchema:()=>is,TurnServerSchema:()=>Lo,UpdateIntegrationInputSchema:()=>nc,UpdateUserInputSchema:()=>Es,UserRecordSchema:()=>sm,UserRoleSchema:()=>Li,UserSummarySchema:()=>$t,WELL_KNOWN_TABS:()=>Sa,WELL_KNOWN_TAB_MAP:()=>Wc,WebrtcStreamChoiceSchema:()=>go,WebrtcStreamTargetSchema:()=>Oi,WidgetHostEnum:()=>io,WidgetMetadataSchema:()=>_i,WidgetSizeEnum:()=>Gn,YAMNET_TO_MACRO:()=>Ba,ZoneKindEnum:()=>Sr,ZoneRuleModeEnum:()=>Rr,ZoneRuleSchema:()=>at,ZoneRuleStageEnum:()=>Nn,ZoneRulesArraySchema:()=>bl,ZoneSchema:()=>nt,ZoneScopeBreakdownSchema:()=>Tr,accessoriesCapability:()=>As,accessoryStableId:()=>qd,addonPagesCapability:()=>eo,addonPagesSourceCapability:()=>no,addonRoutesCapability:()=>so,addonSettingsCapability:()=>Fr,addonWidgetsCapability:()=>oo,addonWidgetsSourceCapability:()=>ao,addonsCapability:()=>pc,adminUiCapability:()=>Jr,advancedNotifierCapability:()=>Ko,alertsCapability:()=>$r,asBoolean:()=>zd,asJsonArray:()=>ld,asJsonObject:()=>Ta,asNumber:()=>md,asString:()=>ud,audioAnalysisCapability:()=>jo,audioAnalyzerCapability:()=>Co,audioCodecCapability:()=>To,audioMetricsCapability:()=>pi,authProviderCapability:()=>Bo,autoAssignProfiles:()=>id,backupCapability:()=>Kr,batteryCapability:()=>bi,bindAddonActions:()=>mm,brightnessCapability:()=>hi,cameraCredentialsCapability:()=>hs,cameraStreamsCapability:()=>yi,classifyStream:()=>Jc,classifyStreams:()=>wa,cosineSimilarity:()=>hd,createDeviceProxy:()=>xr,createEvent:()=>ui,createLazyTrpcSource:()=>Ei,createMirrorSource:()=>Br,createRuntimeStateBridge:()=>xd,createSliceHandle:()=>ge,createSystemProxy:()=>Rl,customAction:()=>Ul,decoderCapability:()=>co,defineCustomActions:()=>Fl,detectionPipelineCapability:()=>Qo,deviceDiscoveryCapability:()=>Si,deviceManagerCapability:()=>qo,deviceMatchesProfile:()=>Ua,deviceOpsCapability:()=>gs,deviceProviderCapability:()=>Ti,deviceStateCapability:()=>Oo,deviceStatusCapability:()=>un,doorbellCapability:()=>fi,embeddingEncoderCapability:()=>Ro,emitDownForOwnedCaps:()=>Yc,emitReadiness:()=>fa,errMsg:()=>qa,evaluateZoneRules:()=>Tl,event:()=>He,eventsCapability:()=>us,expandCapMethods:()=>Ud,featureProbeCapability:()=>mn,formatForBackend:()=>kd,formatForRuntime:()=>Id,getAudioMacroClassIds:()=>Ed,hfModelUrl:()=>bd,hydrateSchema:()=>wn,integrationsCapability:()=>ac,intercomCapability:()=>js,isAgentOnlyPlacement:()=>Fc,isDeployableToAgent:()=>Lc,isEvent:()=>Kc,logDestinationCapability:()=>Qr,mapAudioLabelToMacro:()=>Td,maskUrlCredentials:()=>lm,method:()=>a,metricsProviderCapability:()=>ss,motionCapability:()=>Ai,motionDetectionCapability:()=>br,motionTriggerCapability:()=>ji,nativeObjectDetectionCapability:()=>Ps,networkAccessCapability:()=>No,networkQualityCapability:()=>Ws,nodesCapability:()=>Js,normalizeAddonInitResult:()=>Ia,notificationOutputCapability:()=>$o,osdCapability:()=>ks,parseCameraStreamConfig:()=>nd,parseJsonArray:()=>pd,parseJsonObject:()=>gd,parseJsonUnknown:()=>mi,pipelineAnalyticsCapability:()=>as,pipelineExecutorCapability:()=>yr,pipelineOrchestratorCapability:()=>fo,pipelineRunnerCapability:()=>jr,platformProbeCapability:()=>Ms,ptzAutotrackCapability:()=>wi,ptzCapability:()=>ds,pythonScriptForBackend:()=>Ad,readinessKey:()=>Rt,rebootCapability:()=>vs,recordingCapability:()=>zs,recordingEngineCapability:()=>Yo,requiresPython:()=>Cd,resolveAddonExecution:()=>kt,resolveAddonGroup:()=>Uc,resolveAddonPlacement:()=>Hc,resolveAddonRuntime:()=>fd,resolveDetectionRuntime:()=>_a,resolveDeviceProfile:()=>Od,resolveModelFormat:()=>Sd,restreamerCapability:()=>mo,runInferenceStep:()=>jd,scopeKey:()=>rt,settingsStoreCapability:()=>Yr,snapshotCapability:()=>Uo,snapshotProviderCapability:()=>Ho,storageCapability:()=>Gr,streamBrokerCapability:()=>lr,streamPixels:()=>ja,streamQualityLabel:()=>Qc,streamingEngineCapability:()=>rr,switchCapability:()=>Pi,systemCapability:()=>Fs,toDeviceSummary:()=>qr,toStreamSourceEntry:()=>Xc,toastCapability:()=>Gs,turnProviderCapability:()=>Fo,userManagementCapability:()=>xs,webrtcCapability:()=>zo,webrtcClientHintsSchema:()=>qi,webrtcSessionCapability:()=>po,zodEntriesToConfigUI:()=>kl,zoneAnalyticsCapability:()=>Di,zoneRulesCapability:()=>Mi,zonesCapability:()=>ki});Sc.exports=Nc(pa);var ba=["onnx","coreml","openvino","tflite","pt"],ha="main-group",va="hub-only";function kt(e){return{placement:e.execution?.placement??va,group:e.execution?.group??ha}}function Lc(e){const i=kt(e).placement;return i==="any-node"||i==="agent-only"}function Fc(e){return kt(e).placement==="agent-only"}function Uc(e){return kt(e).group}function Hc(e){return kt(e).placement}var ya=(e=>(e.SystemBoot="system.boot",e.SystemAddonsReady="system.addons-ready",e.SystemRestarting="system.restarting",e.SystemReadyState="system.ready-state",e.AddonStarted="addon.started",e.AddonStopped="addon.stopped",e.AddonRestarted="addon.restarted",e.AddonUpdated="addon.updated",e.AddonInstalled="addon.installed",e.AddonUninstalled="addon.uninstalled",e.AddonCrashed="addon.crashed",e.AddonError="addon.error",e.AddonPageReady="addon.page-ready",e.AddonWidgetReady="addon.widget-ready",e.DeviceRegistered="device.registered",e.DeviceUnregistered="device.unregistered",e.DeviceEnabled="device.enabled",e.DeviceDisabled="device.disabled",e.DeviceSettingsUpdated="device.settings-updated",e.DeviceBindingsChanged="device.bindings-changed",e.DeviceMetaChanged="device.meta-changed",e.DeviceStreamsRegistered="device.streams-registered",e.IntegrationEnabled="integration.enabled",e.IntegrationDisabled="integration.disabled",e.IntegrationDeleted="integration.deleted",e.ProviderStarted="provider.started",e.ProviderStopped="provider.stopped",e.ProcessCrashed="process.crashed",e.ProcessRestartScheduled="process.restart_scheduled",e.ProcessRestarted="process.restarted",e.RecordingStarted="recording.started",e.RecordingStopped="recording.stopped",e.RecordingError="recording.error",e.RecordingHealthDegraded="recording.health.degraded",e.RecordingStorageCritical="recording.storage.critical",e.RecordingSegmentWritten="recording.segment.written",e.RecordingPolicyFallback="recording.policy.fallback",e.RecordingRetentionCompleted="recording.retention.completed",e.DetectionEvent="detection.event",e.SessionTrackNew="session.track.new",e.SessionTrackExpired="session.track.expired",e.BenchmarkProgress="benchmark.progress",e.PlatformProbePhase="platform-probe.phase",e.PipelineProgress="pipeline.progress",e.PipelineTrace="pipeline.trace",e.PipelineInferenceResult="pipeline.inference-result",e.PipelineCameraAssigned="pipeline.camera-assigned",e.PipelineCameraUnassigned="pipeline.camera-unassigned",e.PipelineCameraUpdated="pipeline.camera-updated",e.PipelineRunnerLoadSnapshot="pipeline.runner-load-snapshot",e.PipelineCameraMetricsSnapshot="pipeline.camera-metrics-snapshot",e.StreamBrokerMetricsSnapshot="stream-broker.metrics-snapshot",e.StreamBrokerOnCamStreamDemand="stream-broker.onCamStreamDemand",e.StreamBrokerOnCamStreamIdle="stream-broker.onCamStreamIdle",e.StreamBrokerOnRequestStreamSourceRefresh="stream-broker.onRequestStreamSourceRefresh",e.DeviceStateChanged="device.state-changed",e.BatteryOnStatusChanged="battery.onStatusChanged",e.DoorbellOnPressed="doorbell.onPressed",e.PipelineEngineMetricsSnapshot="pipeline.engine-metrics-snapshot",e.ClusterTopologySnapshot="cluster.topology-snapshot",e.MetricsNodeResourcesSnapshot="metrics.node-resources-snapshot",e.MetricsNodeProcessesSnapshot="metrics.node-processes-snapshot",e.CapabilityBindingChanged="capability.binding-changed",e.ModelDownloadProgress="model.download.progress",e.AgentRegistered="agent.registered",e.AgentUnregistered="agent.unregistered",e.AgentOnline="agent.online",e.AgentOffline="agent.offline",e.WorkerOnline="worker.online",e.WorkerOffline="worker.offline",e.AgentTaskDispatched="agent.task.dispatched",e.AgentTaskAssigned="agent.task.assigned",e.AgentTrpcConnected="agent.trpc.connected",e.AgentWsConnected="agent.ws.connected",e.AgentWsDisconnected="agent.ws.disconnected",e.AgentBackupActivated="agent.backup.activated",e.OrchestrationSettingsUpdated="orchestration.settings-updated",e.PipelineAgentHwaccelChanged="pipeline.agent-hwaccel-changed",e.MotionAnalysis="detection.motion-analysis",e.MotionZonesRaw="detection.motion-zones-raw",e.MotionOnMotionChanged="motion.on-motion-changed",e.DetectionResult="detection.result",e.DetectionRaw="detection.raw",e.DetectionCameraNative="detection.camera-native",e.PipelineAudioInferenceResult="pipeline.audio-inference-result",e.DetectionPhaseTransition="detection.phase-transition",e.ProviderMotion="provider.motion",e.ProviderDetection="provider.detection",e.EnrichmentEmbeddingStored="enrichment.embedding.stored",e.EnrichmentSceneStateChanged="enrichment.scene.state-changed",e.EnrichmentActivitySummary="enrichment.activity.summary",e.PipelineAnalyticsTrackStarted="pipeline-analytics.track-started",e.PipelineAnalyticsTrackEnded="pipeline-analytics.track-ended",e.PipelineAnalyticsDetectionEvent="pipeline-analytics.detection-event",e.PipelineAnalyticsFrameTracked="pipeline-analytics.frame-tracked",e.FrigateLiveEvent="frigate.live-event",e.CameraStreamsProfileSlotsChanged="camera-streams.onProfileSlotsChanged",e.StreamOnline="stream.online",e.StreamOffline="stream.offline",e.NetworkTunnelStarted="network.tunnel.started",e.NetworkTunnelStopped="network.tunnel.stopped",e.BackupCompleted="backup.completed",e.BackupRestored="backup.restored",e.NotificationDispatched="notification.dispatched",e.NotificationFailed="notification.failed",e.DeviceUpdated="device.updated",e.DeviceOnline="device.online",e.DeviceOffline="device.offline",e.DeviceAwake="device.awake",e.DeviceSleeping="device.sleeping",e.RetentionCleanup="retention.cleanup",e))(ya||{}),Sa=[{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}],Wc=Object.fromEntries(Sa.map(e=>[e.id,e]));function $c(e){return e.type==="separator"||e.type==="info"||e.type==="button"||e.type==="object-array"||e.type==="widget"}function wn(e,i){return{...e.tabs?{tabs:[...e.tabs]}:{},sections:e.sections.map(t=>({...t,fields:t.fields.map(s=>Pn(s,i))}))}}function Pn(e,i){if($c(e))return e;if(e.type==="group"){const m=e.fields.map(w=>Pn(w,i));return{...e,fields:m}}if(e.type==="sub-tabs"){const m=e.tabs.map(w=>({...w,fields:w.fields.map(E=>Pn(E,i))}));return{...e,tabs:m}}const t=e.key,s=Object.prototype.hasOwnProperty.call(i,t)?i[t]:void 0,d=e.default;if(e.multiple){const m=Array.isArray(s)?s:s!=null?[s]:[],D=e.multiple.itemDefault!==void 0?e.multiple.itemDefault:d!==void 0?d:Gc(e)==="string"?"":null,w=Math.max(e.multiple.min,m.length),E=[];for(let q=0;q<w;q++)E.push(q<m.length?m[q]:D);return{...e,value:E}}const z=s!==void 0?s:d!==void 0?d:null,p=e.type==="textarea"&&e.isJson&&z!==null&&typeof z=="object"?JSON.stringify(z,null,2):z;return{...e,value:p}}function Gc(e){switch(e.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"}}function Kc(e,i){return e.category===i}function ui(e,i,t){return{id:typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2),timestamp:new Date,source:i,category:e,data:t}}function fa(e,i){const t=i.ts??Date.now();e.emit(ui("system.ready-state",{type:"capability",id:i.capName,nodeId:i.sourceNodeId},{capName:i.capName,scope:i.scope,state:i.state,generation:i.generation,sourceNodeId:i.sourceNodeId,ts:t}))}var ka=class{_ctx=null;_config;_readinessGeneration=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14);_registeredCapNames=[];defaults;constructor(e){this.defaults=e,this._config={...e}}get autoEmitReadiness(){return!0}get ctx(){if(!this._ctx)throw new Error(`${this.constructor.name}: ctx accessed before initialize()`);return this._ctx}get ctxIfReady(){return this._ctx}get config(){return this._config}async initialize(e){this._ctx=e,await this.resolveConfig();const i=await this.onInitialize();this.emitLifecycle("addon.started");const t=Ia(i),s=t&&"providers"in t&&t.providers?t.providers:[];return this._registeredCapNames=s.map(d=>d.capability.name),t}postBrokerStart(){this.autoEmitReadiness&&this._registeredCapNames.length>0&&this.emitReadinessForProviders("ready")}async onHubReachable(){}async shutdown(){this.emitLifecycle("addon.stopped"),this.autoEmitReadiness&&this.emitReadinessForProviders("down"),await this.onShutdown();for(const e of this._subscriptions)e();this._subscriptions=[],this._ctx=null}async onShutdown(){}async onConfigChanged(){}field(e){return e}schema(e){return e}globalSettingsSchema(){return null}deviceSettingsSchema(){return null}async getGlobalSettings(e){const i=this.globalSettingsSchema();if(!i)return{sections:[]};const t=await this._ctx?.settings?.readAddonStore()??{};return wn(i,e?{...t,...e}:t)}async updateGlobalSettings(e){await this._ctx?.settings?.writeAddonStore(e),await this.resolveConfig(),await this.onConfigChanged(),this.emitLifecycle("addon.updated",{level:"global"}),this.maybeAutoRestart(e,this.globalSettingsSchema())}maybeAutoRestart(e,i){if(!i)return;const t=new Set;for(const p of i.sections)for(const l of p.fields)l.type==="separator"||l.type==="info"||l.requiresRestart&&t.add(l.key);if(t.size===0||!Object.keys(e).some(p=>t.has(p)))return;const d=this._ctx;if(!d)return;const z=d.id;setImmediate(()=>{d.api.addons?.restartAddon?.mutate({addonId:z}).then(()=>{d.logger.info("addon auto-restart triggered by restart-required setting change",{meta:{changedFields:Object.keys(e).filter(l=>t.has(l))}})}).catch(l=>{d.logger.error("addon auto-restart failed",{meta:{error:l instanceof Error?l.message:String(l)}})})})}async getDeviceSettings(e){const i=this.deviceSettingsSchema();if(!i)return{sections:[]};const t=await this._ctx?.settings?.readDeviceStore(e)??{};return wn(i,t)}async updateDeviceSettings(e,i){await this._ctx?.settings?.writeDeviceStore(e,i)}_subscriptions=[];watchCapability(e,i){const t=Array.isArray(e)?e:[e],s=new Set(t);this.subscribe({category:"system.ready-state"},d=>{const z=d.data;if(typeof z.capName!="string"||!s.has(z.capName)||z.scope?.type!=="node")return;const p=z.scope.nodeId;if(typeof p!="string"||p.length===0)return;const l=z.capName;z.state==="down"?i.onDown?.(p,l):z.state==="ready"&&i.onReady?.(p,l)})}subscribe(e,i){const t=this.ctx.eventBus.subscribe(e,i);this._subscriptions.push(t)}emitLifecycle(e,i){try{this._ctx?.eventBus.emit({id:`${this._ctx.id}-${Date.now()}`,timestamp:new Date,source:{type:"addon",id:this._ctx.id,nodeId:this._ctx.kernel.localNodeId??"hub"},category:e,data:i??{}})}catch{}}emitReadinessForProviders(e){const i=this._ctx;if(!i||this._registeredCapNames.length===0)return;const t=i.kernel?.localNodeId??"hub",s=t.includes("/")?t.split("/")[0]:t;for(const d of this._registeredCapNames)try{fa(i.eventBus,{capName:d,scope:{type:"node",nodeId:s},state:e,generation:this._readinessGeneration,sourceNodeId:s})}catch{}}async resolveModelsDir(){return this.ctx.api.storage.resolve.query({location:"models",relativePath:""}).catch(()=>"camstack-data/models")}get capabilities(){return this.ctx.capabilities??null}async resolveConfig(){const e=await this._ctx?.settings?.readAddonStore()??{},i={...this.defaults};for(const t of Object.keys(this.defaults)){const s=e[t];if(s!=null){const d=typeof this.defaults[t];typeof s===d&&(i[t]=s)}}this._config=i}};function Ia(e){if(e!=null)return Array.isArray(e)?{providers:e}:e}var Aa=class extends Error{capName;scope;waitedMs;constructor(e,i,t){super(`Timed out waiting for ${e} (${rt(i)}) to become ready after ${t}ms`),this.name="ReadinessTimeoutError",this.capName=e,this.scope=i,this.waitedMs=t}};function Rt(e,i){return`${e}|${rt(i)}`}function rt(e){switch(e.type){case"global":return"global";case"node":return`node:${e.nodeId}`;case"device":return`device:${e.deviceId}`}}function yn(e,i){return e.type!==i.type?!1:e.type==="global"||i.type==="global"?!0:e.type==="node"&&i.type==="node"?e.nodeId===i.nodeId:e.type==="device"&&i.type==="device"?e.deviceId===i.deviceId:!1}var Vc=class{bus;sourceNodeId;logger;now;generation;snapshot=new Map;subscriptions=new Set;unsubscribeBus;unsubscribeAgentOffline;constructor(e){if(this.bus=e.eventBus,this.sourceNodeId=e.sourceNodeId,this.logger=e.logger,this.now=e.now??(()=>Date.now()),this.generation=e.generation??Zc(),this.unsubscribeBus=this.bus.subscribe({category:"system.ready-state"},i=>this.ingest(i.data)),this.unsubscribeAgentOffline=this.bus.subscribe({category:"agent.offline"},i=>this.synthesizeDownForNode(i.data.agentId)),typeof this.bus.getRecent=="function")try{const i=this.bus.getRecent({category:"system.ready-state"});for(const t of i)this.ingest(t.data)}catch{}}close(){this.unsubscribeBus(),this.unsubscribeAgentOffline(),this.subscriptions.clear()}get(e,i){return this.snapshot.get(Rt(e,i))??null}getSnapshotForTransport(){return Array.from(this.snapshot.values())}hydrate(e){const i=this.now();for(const t of e){const s=Rt(t.capName,t.scope);if(this.snapshot.has(s))continue;const d={capName:t.capName,scope:t.scope,state:t.state,generation:t.generation,epoch:1,lastChange:i,sourceNodeId:t.sourceNodeId};this.snapshot.set(s,d),this.logger&&this.logger.debug(`readiness: ${t.capName} (${rt(t.scope)}) → ${t.state} (hydrated, gen=${t.generation.slice(0,6)})`);const z={capName:t.capName,scope:t.scope,state:t.state,epoch:1,generation:t.generation,sourceNodeId:"hydrated",ts:i,durationInPrevState:0};for(const p of this.subscriptions)if(p.capName===t.capName&&yn(p.scope,t.scope))try{p.handler(z)}catch(l){this.logger?.warn(`readiness hydrate handler threw for ${t.capName}: ${l.message??String(l)}`)}}}getAll(){return new Map(this.snapshot)}emitReady(e,i){this.emitTransition(e,i,"ready")}emitStarting(e,i){this.emitTransition(e,i,"starting")}emitDown(e,i){this.emitTransition(e,i,"down")}awaitReady(e,i,t={}){const s=t.timeoutMs??Number.POSITIVE_INFINITY,d=this.now();return this.get(e,i)?.state==="ready"?Promise.resolve():t.signal?.aborted?Promise.reject(t.signal.reason??new Error("aborted")):new Promise((p,l)=>{let m=!1;const D=this.onReadyState(e,i,We=>{We.state==="ready"&&(m||(m=!0,Ee(),p()))}),E=!Number.isFinite(s)?null:setTimeout(()=>{m||(m=!0,Ee(),l(new Aa(e,i,this.now()-d)))},s),q=()=>{m||(m=!0,Ee(),l(t.signal?.reason??new Error("aborted")))};t.signal?.addEventListener("abort",q,{once:!0});function Ee(){D(),E!==null&&clearTimeout(E),t.signal?.removeEventListener("abort",q)}})}onReadyState(e,i,t){const s={capName:e,scope:i,handler:t};this.subscriptions.add(s);const d=this.get(e,i);return d!==null&&queueMicrotask(()=>{this.subscriptions.has(s)&&t({capName:e,scope:i,state:d.state,epoch:d.epoch,generation:d.generation,sourceNodeId:this.sourceNodeId,ts:d.lastChange,durationInPrevState:0})}),()=>{this.subscriptions.delete(s)}}emitTransition(e,i,t){const s=this.now();this.bus.emit(ui("system.ready-state",{type:"capability",id:e,nodeId:this.sourceNodeId},{capName:e,scope:i,state:t,generation:this.generation,sourceNodeId:this.sourceNodeId,ts:s}))}ingest(e){if(typeof e?.capName!="string"||e.state!=="ready"&&e.state!=="starting"&&e.state!=="down"||typeof e.generation!="string"||e.scope?.type!=="global"&&e.scope?.type!=="node"&&e.scope?.type!=="device")return;const i=Rt(e.capName,e.scope),t=this.snapshot.get(i)??null,s=this.now();let d;if(t===null?d=e.state==="ready"?1:0:t.generation!==e.generation&&e.state==="ready"?d=t.epoch+1:d=t.epoch,t!==null&&t.generation===e.generation&&t.state===e.state)return;const z=t===null?0:Math.max(0,s-t.lastChange),p={capName:e.capName,scope:e.scope,state:e.state,generation:e.generation,epoch:d,lastChange:s,sourceNodeId:e.sourceNodeId};this.snapshot.set(i,p);const l={capName:e.capName,scope:e.scope,state:e.state,epoch:d,generation:e.generation,sourceNodeId:e.sourceNodeId,ts:e.ts,durationInPrevState:z};this.logger&&this.logger.debug(`readiness: ${e.capName} (${rt(e.scope)}) → ${e.state} epoch=${d} gen=${e.generation.slice(0,6)} (prev ${z}ms)`);for(const m of this.subscriptions)if(m.capName===e.capName&&yn(m.scope,e.scope))try{m.handler(l)}catch(D){this.logger?.warn(`readiness handler threw for ${e.capName}: ${D.message??String(D)}`)}}synthesizeDownForNode(e){const i=this.now();for(const[t,s]of this.snapshot){if(s.state==="down"||!(s.scope.type==="node"&&s.scope.nodeId===e||s.scope.type==="device"&&s.sourceNodeId===e))continue;const z=Math.max(0,i-s.lastChange),p={...s,state:"down",lastChange:i};this.snapshot.set(t,p);const l={capName:s.capName,scope:s.scope,state:"down",epoch:s.epoch,generation:s.generation,sourceNodeId:this.sourceNodeId,ts:i,durationInPrevState:z};this.logger&&this.logger.debug(`readiness: ${s.capName} (${rt(s.scope)}) → down (synthesized from agent.offline ${e})`);for(const m of this.subscriptions)if(m.capName===s.capName&&yn(m.scope,s.scope))try{m.handler(l)}catch(D){this.logger?.warn(`readiness handler threw during agent.offline demux for ${s.capName}: ${D.message??String(D)}`)}}}};function Zc(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14)}function Yc(e,i){for(const{capName:t,scope:s}of i)e.emitDown(t,s)}var Ca={high:"High",mid:"Mid",low:"Low"};function Qc(e){return Ca[e]??e.charAt(0).toUpperCase()+e.slice(1)}function ja(e){return(e.width??0)*(e.height??0)}function wa(e){if(e.length===0)return[];const i=e.map((s,d)=>({s,i:d,px:ja(s.metadata??{})})).sort((s,d)=>d.px-s.px),t=Array.from({length:e.length});for(let s=0;s<i.length;s++){const{s:d,i:z}=i[s];let p;s===0?p="high":s===i.length-1?p="low":p="mid",t[z]={...d,quality:p}}return t}function Jc(e){const i=e.height??0,t=e.width??0;return i>=1080||t>=1920?"high":i>=480||t>=640?"mid":"low"}function Xc(e){const i=e.protocols.find(d=>d.type==="rtsp"&&d.url)??e.protocols.find(d=>d.url),t=i?.type,s=t==="rtsp"?"rtsp":t==="http"||t==="flv"?"http-mjpeg":"custom";return{id:e.id,label:e.label??e.id,protocol:s,url:i?.url,profileHint:e.quality}}function Me(e){return typeof e=="string"}function ed(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function td(e){return Me(e)&&e.trim()?{url:e}:ed(e)&&Me(e.url)&&e.url.trim()?{url:e.url,label:Me(e.label)?e.label:void 0}:null}function nd(e){const i=Me(e.snapshot_url)?e.snapshot_url:void 0;if(Array.isArray(e.streams)){const p=[];for(const l of e.streams){const m=td(l);m&&p.push(m)}return{streams:p,snapshot_url:i}}const t=[],s=Me(e.main_stream_url)?e.main_stream_url:void 0;s&&t.push({url:s,label:Me(e.main_stream_name)?e.main_stream_name:void 0});const d=Me(e.sub_stream_url)?e.sub_stream_url:void 0;d&&t.push({url:d,label:Me(e.sub_stream_name)?e.sub_stream_name:void 0});const z=Me(e.third_stream_url)?e.third_stream_url:void 0;return z&&t.push({url:z,label:Me(e.third_stream_name)?e.third_stream_name:void 0}),{streams:t,snapshot_url:i}}function id(e){if(e.length===0)return{};const i=wa(e),t={},s=i.find(l=>l.quality==="high"),d=i.find(l=>l.quality==="mid"),z=i.find(l=>l.quality==="low");s&&(t.high=s.id),d&&(t.mid=d.id),z&&(t.low=z.id);const p=s??d??z??i[0];return p&&(t.high||(t.high=p.id),t.mid||(t.mid=p.id),t.low||(t.low=p.id)),t}var ad={streaming:!0,notifications:!0,objectDetection:!1,remoteAccess:!0,agentCluster:!1,smartHome:!0,recordings:!0,backup:!0,repl:!0},rd=["face","plate"],od=["face","plate","clip","custom"],ve=require("zod"),Pa=ve.z.object({inputFps:ve.z.number(),outputFps:ve.z.number(),avgDecodeTimeMs:ve.z.number(),droppedFrames:ve.z.number()}),Dn=ve.z.object({codec:ve.z.string(),maxFps:ve.z.number().default(0),outputFormat:ve.z.enum(["jpeg","rgb","bgr","yuv420","gray"]).default("jpeg"),scale:ve.z.number().default(1),width:ve.z.number().optional(),height:ve.z.number().optional(),deviceId:ve.z.number().int().nonnegative().optional(),tag:ve.z.string().optional()}),sd={cleanupIntervalMs:3600*1e3,detectionEventsDays:30,audioLevelsDays:7,snapshotsDays:14},Da=(e=>(e.Addon="addon",e.Core="core",e.Device="device",e.Provider="provider",e.System="system",e))(Da||{}),Ma="camstack/camstack-models",cd=`https://huggingface.co/${Ma}/resolve/main`,dd={"features.streaming":!0,"features.notifications":!0,"features.objectDetection":!1,"features.remoteAccess":!0,"features.agentCluster":!1,"features.smartHome":!0,"features.recordings":!0,"features.backup":!0,"features.repl":!0,"retention.detectionEventsDays":30,"retention.audioLevelsDays":7,"logging.level":"info","logging.retentionDays":30,"eventBus.ringBufferSize":1e4,"storage.provider":"sqlite-storage","storage.locations":{data:"camstack-data/data",media:"camstack-data/media",recordings:"camstack-data/recordings",cache:"/tmp/camstack-cache",logs:"camstack-data/logs",models:"camstack-data/models"},providers:[],"recording.segmentDurationSeconds":4,"recording.defaultRetentionDays":30,"ffmpeg.binaryPath":"ffmpeg","ffmpeg.hwAccel":"auto","ffmpeg.threadCount":0,"auth.tokenExpiry":"24h"};function mi(e){return JSON.parse(e)}function Ta(e){return e===null||typeof e!="object"||Array.isArray(e)?null:{...e}}function ld(e){return Array.isArray(e)?e:[]}function ud(e,i=""){return typeof e=="string"?e:i}function md(e,i=0){return typeof e=="number"?e:i}function zd(e,i=!1){return typeof e=="boolean"?e:i}function gd(e){try{return Ta(mi(e))}catch{return null}}function pd(e){try{const i=mi(e);return Array.isArray(i)?i:null}catch{return null}}function bd(e,i){return`https://huggingface.co/${e}/resolve/main/${i}`}function hd(e,i){if(e.length!==i.length)return 0;let t=0,s=0,d=0;for(let p=0;p<e.length;p++)t+=e[p]*i[p],s+=e[p]*e[p],d+=i[p]*i[p];const z=Math.sqrt(s)*Math.sqrt(d);return z===0?0:t/z}var vd=class{constructor(e,i){this.elementId=e,this.getBackend=typeof i=="function"?i:()=>i}elementId;cache={};listeners=new Set;loaded=!1;getBackend;async ensureLoaded(){if(this.loaded)return;const e=this.getBackend();if(!e)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available`);const i=await e.query({collection:"config",filter:{where:{id:this.elementId},limit:1}});i.length>0&&(this.cache=i[0].data??{}),this.loaded=!0}getAll(){return{...this.cache}}get(e){const i=e.split(".");let t=this.cache;for(const s of i){if(t===null||typeof t!="object"||Array.isArray(t))return;t=Reflect.get(t,s)}return t}async set(e,i){await this.ensureLoaded(),yd(this.cache,e,i),await this.persist(),this.notifyListeners()}async setAll(e){await this.ensureLoaded(),this.cache={...e},await this.persist(),this.notifyListeners()}onChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async load(){await this.ensureLoaded()}async loadDefaults(e){await this.ensureLoaded(),Object.keys(this.cache).length===0&&(this.cache={...e},await this.persist())}async persist(){const e=this.getBackend();if(!e)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available — cannot persist config`);await e.set({collection:"config",key:this.elementId,value:this.cache})}notifyListeners(){const e=this.getAll();for(const i of this.listeners)try{i(e)}catch{}}};function yd(e,i,t){const s=i.split(".");let d=e;for(let z=0;z<s.length-1;z++){const p=s[z],l=d[p];if(l===null||typeof l!="object"||Array.isArray(l)){const m={};d[p]=m,d=m}else d=l}d[s[s.length-1]]=t}var zi={cpu:"onnx",coreml:"onnx",cuda:"onnx",tensorrt:"onnx","onnx-py":"onnx",pytorch:"pt",openvino:"openvino"},Ea={onnx:"onnx",coreml:"coreml",openvino:"openvino",tflite:"tflite",pytorch:"pt"},Ra={coreml:"coreml_inference.py",pytorch:"pytorch_inference.py",openvino:"openvino_inference.py"};function _a(e,i){return e==="node"?"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pytorch","onnx-py":"onnx",cpu:"onnx"}[i]??i}function Sd(e,i){return e==="node"?zi[i]??"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pt","onnx-py":"onnx",cpu:"onnx"}[i]??"onnx"}function fd(e,i){return!e||e==="auto"?"auto":_a(e,i??"cpu")}function kd(e){return zi[e]??"onnx"}function Id(e){return Ea[e]}function Ad(e){return Ra[e]}function Cd(e){return e==="coreml"||e==="pytorch"||e==="openvino"}function qa(e){return e instanceof Error?e.message:typeof e=="string"?e:String(e)}async function jd(e,i){const t=performance.now();try{return{output:i!==void 0?await wd(e(),i):await e(),durationMs:ta(performance.now()-t),ok:!0}}catch(s){return{output:void 0,durationMs:ta(performance.now()-t),ok:!1,error:qa(s)}}}function ta(e){return Math.round(e*100)/100}function wd(e,i){return new Promise((t,s)=>{const d=setTimeout(()=>s(new Error(`Inference timeout after ${i}ms`)),i);e.then(z=>{clearTimeout(d),t(z)}).catch(z=>{clearTimeout(d),s(z)})})}var Pd=[{id:"person",name:"Person"},{id:"bicycle",name:"Bicycle"},{id:"car",name:"Car"},{id:"motorcycle",name:"Motorcycle"},{id:"airplane",name:"Airplane"},{id:"bus",name:"Bus"},{id:"train",name:"Train"},{id:"truck",name:"Truck"},{id:"boat",name:"Boat"},{id:"traffic light",name:"Traffic Light"},{id:"fire hydrant",name:"Fire Hydrant"},{id:"stop sign",name:"Stop Sign"},{id:"parking meter",name:"Parking Meter"},{id:"bench",name:"Bench"},{id:"bird",name:"Bird"},{id:"cat",name:"Cat"},{id:"dog",name:"Dog"},{id:"horse",name:"Horse"},{id:"sheep",name:"Sheep"},{id:"cow",name:"Cow"},{id:"elephant",name:"Elephant"},{id:"bear",name:"Bear"},{id:"zebra",name:"Zebra"},{id:"giraffe",name:"Giraffe"},{id:"backpack",name:"Backpack"},{id:"umbrella",name:"Umbrella"},{id:"handbag",name:"Handbag"},{id:"tie",name:"Tie"},{id:"suitcase",name:"Suitcase"},{id:"frisbee",name:"Frisbee"},{id:"skis",name:"Skis"},{id:"snowboard",name:"Snowboard"},{id:"sports ball",name:"Sports Ball"},{id:"kite",name:"Kite"},{id:"baseball bat",name:"Baseball Bat"},{id:"baseball glove",name:"Baseball Glove"},{id:"skateboard",name:"Skateboard"},{id:"surfboard",name:"Surfboard"},{id:"tennis racket",name:"Tennis Racket"},{id:"bottle",name:"Bottle"},{id:"wine glass",name:"Wine Glass"},{id:"cup",name:"Cup"},{id:"fork",name:"Fork"},{id:"knife",name:"Knife"},{id:"spoon",name:"Spoon"},{id:"bowl",name:"Bowl"},{id:"banana",name:"Banana"},{id:"apple",name:"Apple"},{id:"sandwich",name:"Sandwich"},{id:"orange",name:"Orange"},{id:"broccoli",name:"Broccoli"},{id:"carrot",name:"Carrot"},{id:"hot dog",name:"Hot Dog"},{id:"pizza",name:"Pizza"},{id:"donut",name:"Donut"},{id:"cake",name:"Cake"},{id:"chair",name:"Chair"},{id:"couch",name:"Couch"},{id:"potted plant",name:"Potted Plant"},{id:"bed",name:"Bed"},{id:"dining table",name:"Dining Table"},{id:"toilet",name:"Toilet"},{id:"tv",name:"TV"},{id:"laptop",name:"Laptop"},{id:"mouse",name:"Mouse"},{id:"remote",name:"Remote"},{id:"keyboard",name:"Keyboard"},{id:"cell phone",name:"Cell Phone"},{id:"microwave",name:"Microwave"},{id:"oven",name:"Oven"},{id:"toaster",name:"Toaster"},{id:"sink",name:"Sink"},{id:"refrigerator",name:"Refrigerator"},{id:"book",name:"Book"},{id:"clock",name:"Clock"},{id:"vase",name:"Vase"},{id:"scissors",name:"Scissors"},{id:"teddy bear",name:"Teddy Bear"},{id:"hair drier",name:"Hair Drier"},{id:"toothbrush",name:"Toothbrush"}],Dd=[{id:"person",name:"Person"},{id:"vehicle",name:"Vehicle"},{id:"animal",name:"Animal"}],Md={mapping:{person:"person",bicycle:"vehicle",car:"vehicle",motorcycle:"vehicle",airplane:"vehicle",bus:"vehicle",train:"vehicle",truck:"vehicle",boat:"vehicle",bird:"animal",cat:"animal",dog:"animal",horse:"animal",sheep:"animal",cow:"animal",elephant:"animal",bear:"animal",zebra:"animal",giraffe:"animal"},preserveOriginal:!1},Oa=[{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:"🤫"}],Ba={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},xa={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},gi=new Map;for(const[e,i]of Object.entries(Ba.mapping))gi.set(e.toLowerCase(),i);for(const[e,i]of Object.entries(xa.mapping))gi.set(e.toLowerCase(),i);function Td(e){return gi.get(e.toLowerCase())??null}function Ed(){return Oa.map(e=>e.id)}var Rd={camera:{type:"camera",label:"Camera",icon:"camera"}},De=(e=>(e.Camera="camera",e.Hub="hub",e.Light="light",e.Siren="siren",e.Switch="switch",e.Sensor="sensor",e.Thermostat="thermostat",e.Button="button",e.Generic="generic",e))(De||{}),Na=(e=>(e.BatteryOperated="battery-operated",e.Rebootable="rebootable",e.NativeSnapshot="native-snapshot",e.DoorbellButton="doorbell-button",e.TwoWayAudio="two-way-audio",e.PanTiltZoom="pan-tilt-zoom",e.PtzAutotrack="ptz-autotrack",e.MotionTrigger="motion-trigger",e))(Na||{}),La=(e=>(e.ChargingDC="charging-dc",e.ChargingSolar="charging-solar",e.NotCharging="not-charging",e))(La||{}),Fa=(e=>(e.Siren="siren",e.Floodlight="floodlight",e.Spotlight="spotlight",e.PirSensor="pir-sensor",e.Chime="chime",e.Autotrack="autotrack",e.Nightvision="nightvision",e.PrivacyMask="privacy-mask",e.Doorbell="doorbell",e))(Fa||{}),qe={Siren:"siren",Floodlight:"floodlight",Spotlight:"spotlight",PirSensor:"pir-sensor",Chime:"chime",Autotrack:"autotrack",Nightvision:"nightvision",PrivacyMask:"privacy-mask"},_d={[qe.Siren]:"Siren",[qe.Floodlight]:"Floodlight",[qe.Spotlight]:"Spotlight",[qe.PirSensor]:"PIR",[qe.Chime]:"Chime",[qe.Autotrack]:"Autotracking",[qe.Nightvision]:"Night Vision",[qe.PrivacyMask]:"Privacy Mask"};function qd(e,i,t){const s=`${e}:${i}`;return typeof t=="number"?`${s}:${t}`:s}function Ua(e,i){return!e||e.length===0?!1:e.includes(i.when.hasFeature)}var Ha={id:"battery",label:"Battery-operated camera",when:{hasFeature:"battery-operated"},defaults:{audioMode:"disabled",detectionMode:"on-motion"},settings:{"snapshot.minRefreshIntervalSec":3600,"streamBroker.preBufferEnabled":!1}},Wa=[Ha];function Od(e){for(const i of Wa)if(Ua(e,i))return i;return null}var $a=class _t{schema;data;persistFn;constructor(i,t,s){this.schema=i,this.data=t,this.persistFn=s}static fromSchema(i,t,s={},d){const z=i.safeParse(s);if(z.success)return new _t(i,z.data,t);const p=new Set;for(const w of z.error.issues){const E=w.path[0];typeof E=="string"&&p.add(E)}const l={...s};for(const w of p)delete l[w];const m=i.safeParse(l);if(d?.({droppedKeys:[...p],issues:z.error.issues}),m.success)return t(m.data).catch(()=>{}),new _t(i,m.data,t);const D=i.parse({});return new _t(i,D,t)}get values(){return this.data}get(i){return this.data[i]}async set(i,t){const s=this.schema.parse({...this.data,[i]:t});this.data=s,await this.persistFn(this.data)}async setAll(i){const t=this.schema.parse({...this.data,...i});this.data=t,await this.persistFn(this.data)}async deleteKey(i){const{[i]:t,...s}=this.data,d=this.schema.parse(s);this.data=d,await this.persistFn(this.data)}entries(){const i=this.schema.shape;return Object.entries(i).map(([t,s])=>({key:t,schema:s,value:this.data[t],description:s.description}))}},Ga=class Ka{writer;pendingWrites=new Set;slices;schemas=new Map;listeners=new Set;capListeners=new Map;constructor(i,t){this.writer=t,this.slices=new Map;for(const[s,d]of Object.entries(i))d&&typeof d=="object"&&!Array.isArray(d)&&this.slices.set(s,{...d})}static fromInitial(i,t){return new Ka(i,t)}installCapSchema(i,t){const s=this.schemas.get(i);if(s){if(s!==t)throw new Error(`[DeviceRuntimeState] capability "${i}" registered a different runtime-state schema; each cap must declare ONE shape across every provider`);return}this.schemas.set(i,t);const d=this.slices.get(i);if(d){const z=t.safeParse(d);z.success?this.slices.set(i,z.data):this.slices.delete(i)}}getCapState(i){const t=this.slices.get(i);if(t)return Object.freeze({...t})}getCapField(i,t){return this.slices.get(i)?.[t]}setCapState(i,t){this.applyCapWrite(i,t,!1)}patchCapState(i,t){this.applyCapWrite(i,t,!0)}applyCapWrite(i,t,s){const d=this.schemas.get(i);if(!d)throw new Error(`[DeviceRuntimeState] no schema registered for cap "${i}" — did the device register it via ctx.registerNativeCap before writing?`);const z=this.slices.get(i)??{},p=s?{...z,...t}:{...t},l=d.parse(p);if(Bd(z,l))return;this.slices.set(i,l),this.fireListeners([i]);const m=this.writer(i,{...l}).catch(()=>{});this.pendingWrites.add(m),m.finally(()=>{this.pendingWrites.delete(m)})}fireListeners(i){const t=this.snapshot();for(const s of this.listeners)try{s(i,t)}catch{}for(const s of i){const d=this.capListeners.get(s);if(!d)continue;const z=this.getCapState(s);for(const p of d)try{p(z)}catch{}}}subscribe(i){return this.listeners.add(i),()=>{this.listeners.delete(i)}}subscribeCap(i,t){let s=this.capListeners.get(i);s||(s=new Set,this.capListeners.set(i,s));const d=z=>{t(z)};return s.add(d),()=>{const z=this.capListeners.get(i);z&&(z.delete(d),z.size===0&&this.capListeners.delete(i))}}snapshot(){const i={};for(const[t,s]of this.slices)i[t]=Object.freeze({...s});return Object.freeze(i)}async flush(){if(this.pendingWrites.size===0)return;const i=[...this.pendingWrites];await Promise.allSettled(i)}};function Bd(e,i){const t=Object.keys(e),s=Object.keys(i);if(t.length!==s.length)return!1;for(const d of t)if(e[d]!==i[d])return!1;return!0}var Sn="lastFetchedAt";function xd(e){const{runtimeState:i,cap:t,ownDeviceId:s,refresh:d,staleMs:z,empty:p}=e,l=async()=>{const w=i.getCapState(t.name),E=typeof w?.[Sn]=="number"?w[Sn]:0;(!w||Date.now()-E>z)&&await d()},m=()=>{const w=i.getCapState(t.name);if(!w)return p();const{[Sn]:E,...q}=w;return q};return{ensureFresh:l,getStatus:async({deviceId:w})=>{if(w!==s)throw new Error(`${t.name}: deviceId mismatch, expected ${s}, got ${w}`);return await l(),m()}}}var zt=require("zod"),qt=zt.z.object({online:zt.z.boolean(),lastChangedAt:zt.z.number()}),un={name:"device-status",scope:"device",mode:"singleton",methods:{},events:{onStatusChanged:{data:zt.z.object({deviceId:zt.z.number(),status:qt})}},status:{schema:qt,kind:"push"},runtimeState:qt},je=require("zod"),Ot=je.z.object({flags:je.z.record(je.z.string(),je.z.unknown()),deviceType:je.z.string().nullable(),model:je.z.string().nullable(),channelCount:je.z.number().nullable(),lastProbedAt:je.z.number(),lastFetchedAt:je.z.number()}),mn={name:"feature-probe",scope:"device",mode:"singleton",methods:{},events:{onProbeChanged:{data:je.z.object({deviceId:je.z.number(),status:Ot})}},status:{schema:Ot,kind:"push"},runtimeState:Ot},H=require("zod"),O=require("zod"),Nd=O.z.object({id:O.z.string(),title:O.z.string(),description:O.z.string().optional(),style:O.z.enum(["card","accordion"]).optional(),defaultCollapsed:O.z.boolean().optional(),columns:O.z.union([O.z.literal(1),O.z.literal(2),O.z.literal(3),O.z.literal(4)]).optional(),tab:O.z.string().optional(),location:O.z.enum(["settings","top-tab"]).optional(),order:O.z.number().optional(),fields:O.z.array(O.z.any())}),Ld=O.z.object({id:O.z.string(),label:O.z.string(),icon:O.z.string(),order:O.z.number().optional()}),Fd=O.z.object({tabs:O.z.array(Ld).optional(),sections:O.z.array(Nd)}),na=Fd.nullable(),Va={getDeviceSettingsContribution:{input:O.z.object({deviceId:O.z.number()}),output:na,kind:"query",auth:"protected"},getDeviceLiveContribution:{input:O.z.object({deviceId:O.z.number()}),output:na,kind:"query",auth:"protected"},applyDeviceSettingsPatch:{input:O.z.object({deviceId:O.z.number(),patch:O.z.record(O.z.string(),O.z.unknown())}),output:O.z.object({success:O.z.literal(!0)}),kind:"mutation",auth:"admin"}},Za={getStatus:{input:O.z.object({deviceId:O.z.number()}),output:O.z.unknown().nullable(),kind:"query",auth:"protected"}};function Ud(e){let i=e.methods;return e.exposesDeviceSettings&&(i={...Va,...i}),e.status&&(i={...Za,...i}),i}function a(e,i,t){return{input:e,output:i,kind:t?.kind??"query",auth:t?.auth??"protected",timeoutMs:t?.timeoutMs}}function He(e){return{data:e}}var Ya=H.z.object({className:H.z.string(),hits:H.z.number().int().nonnegative(),avgScore:H.z.number().min(0).max(1),peakScore:H.z.number().min(0).max(1)}),Mn=H.z.object({ts:H.z.number().int(),windowSec:H.z.number().int().positive(),level:H.z.object({rms:H.z.number(),dbfs:H.z.number()}),peakDbfs:H.z.number(),avgDbfs:H.z.number(),current:H.z.object({className:H.z.string(),score:H.z.number().min(0).max(1),timestamp:H.z.number().int()}).nullable(),byClass:H.z.array(Ya).readonly()}),Qa=H.z.object({ts:H.z.number().int(),dbfs:H.z.number().nullable(),peakDbfs:H.z.number(),avgDbfs:H.z.number(),topClass:H.z.string().nullable(),topScore:H.z.number().min(0).max(1).nullable()}),Ja=H.z.object({points:H.z.array(Qa).readonly(),effectiveSampleEveryMs:H.z.number().int().positive(),windowMsActual:H.z.number().int().nonnegative()}),pi={name:"audio-metrics",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getCurrentSnapshot:a(H.z.object({deviceId:H.z.number()}),Mn.nullable()),getHistory:a(H.z.object({deviceId:H.z.number(),windowSec:H.z.number().int().positive().optional(),sampleEveryMs:H.z.number().int().positive().optional()}),Ja)},runtimeState:Mn},Ke=require("zod"),Bt=Ke.z.object({percentage:Ke.z.number().min(0).max(100),charging:Ke.z.enum(["dc","solar","none"]),sleeping:Ke.z.boolean(),lastUpdated:Ke.z.number()}),bi={name:"battery",scope:"device",mode:"singleton",deviceTypes:["camera","sensor","button","switch"],methods:{},events:{onStatusChanged:{data:Ke.z.object({deviceId:Ke.z.number(),status:Bt})}},status:{schema:Bt,kind:"push"},runtimeState:Bt},we=require("zod"),Tn=we.z.object({percentage:we.z.number().min(0).max(100),lastChangedAt:we.z.number()}),hi={name:"brightness",scope:"device",mode:"singleton",deviceTypes:["light"],methods:{setBrightness:a(we.z.object({deviceId:we.z.number().int().nonnegative(),percentage:we.z.number().min(0).max(100)}),we.z.void(),{kind:"mutation",auth:"admin"})},events:{onBrightnessChanged:{data:we.z.object({deviceId:we.z.number(),percentage:we.z.number().min(0).max(100),lastChangedAt:we.z.number()})}},status:{schema:Tn,kind:"command-driven"},runtimeState:Tn},X=require("zod"),A=require("zod"),Ue=A.z.enum(["high","mid","low"]),Hd=["high","mid","low"],vi=A.z.enum(["pull-rtsp","pull-rtmp","pull-http","pull-rfc4571","push-annexb"]),zn=A.z.object({width:A.z.number().int().positive(),height:A.z.number().int().positive()}),Kt=A.z.object({camStreamId:A.z.string().min(1),deviceId:A.z.number().int().nonnegative(),kind:vi,url:A.z.string().optional(),codec:A.z.string().optional(),resolution:zn.optional(),fps:A.z.number().positive().optional(),label:A.z.string().optional(),deviceFeatures:A.z.array(A.z.string()).optional(),autoEligible:A.z.boolean().optional(),metadata:A.z.record(A.z.string(),A.z.unknown()).optional()}),gt=A.z.enum(["unassigned","idle","connecting","streaming","error"]),Vt=A.z.object({deviceId:A.z.number().int().nonnegative(),profile:Ue,brokerId:A.z.string(),sourceCamStreamId:A.z.string().nullable(),status:gt,resolution:zn.optional(),codec:A.z.string().optional(),preBufferSec:A.z.number().nonnegative().optional(),errorMessage:A.z.string().optional()}),Xa=A.z.object({id:A.z.string(),label:A.z.string(),protocol:A.z.enum(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:A.z.string().optional(),resolution:A.z.object({width:A.z.number(),height:A.z.number()}).readonly().optional(),fps:A.z.number().optional(),bitrate:A.z.number().optional(),codec:A.z.string().optional(),profileHint:A.z.enum(["high","mid","low"]).optional()}),Wd=A.z.object({type:A.z.string(),url:A.z.string(),videoCodec:A.z.string().optional(),audioCodec:A.z.string().optional(),metadata:A.z.record(A.z.string(),A.z.unknown()).readonly().optional()}),er=A.z.object({type:A.z.enum(["video","audio"]),data:A.z.instanceof(Uint8Array),pts:A.z.number(),dts:A.z.number(),keyframe:A.z.boolean(),codec:A.z.string()}),tr=A.z.object({data:A.z.instanceof(Uint8Array),width:A.z.number(),height:A.z.number(),format:A.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),timestamp:A.z.number()}),nr=A.z.enum(["idle","connecting","streaming","error","stopped"]),ir=A.z.object({status:nr,inputFps:A.z.number(),decodeFps:A.z.number(),encodedSubscribers:A.z.number(),decodedSubscribers:A.z.number(),uptimeMs:A.z.number(),bitrateKbps:A.z.number(),idrIntervalMs:A.z.number(),codec:A.z.string().optional(),totalBytes:A.z.number(),packetCount:A.z.number(),rtspClients:A.z.number(),pipeClients:A.z.number(),preBufferSec:A.z.number(),preBufferMs:A.z.number(),preBufferPackets:A.z.number(),decoderNodeId:A.z.string().nullable(),audio:A.z.object({codec:A.z.string(),sampleRate:A.z.number(),channels:A.z.number(),supported:A.z.boolean()}).nullable().optional()}),v=require("zod"),me=require("zod"),gn=me.z.enum(["webrtc","hls","mjpeg","rtsp"]),ar=me.z.object({streamId:me.z.string(),format:gn,url:me.z.string().nullable(),active:me.z.boolean()}),rr={name:"streaming-engine",scope:"system",mode:"singleton",internal:!0,methods:{registerStream:a(me.z.object({streamId:me.z.string(),sourceUrl:me.z.string(),codec:me.z.string().optional()}),me.z.void(),{kind:"mutation"}),unregisterStream:a(me.z.object({streamId:me.z.string()}),me.z.void(),{kind:"mutation"}),getStreamUrl:a(me.z.object({streamId:me.z.string(),format:gn}),me.z.string().nullable()),listStreams:a(me.z.void(),me.z.array(ar))}},Zt=v.z.object({brokerId:v.z.string(),url:v.z.string(),mutedUrl:v.z.string(),enabled:v.z.boolean()}),or=v.z.object({sessionId:v.z.string(),remoteAddr:v.z.string(),playing:v.z.boolean(),muted:v.z.boolean(),connectedAt:v.z.number(),lastRtpAt:v.z.number(),bytesSent:v.z.number()}),sr=v.z.object({tag:v.z.string(),subscribedAt:v.z.number(),maxFps:v.z.number(),framesDelivered:v.z.number(),framesDropped:v.z.number()}),cr=v.z.object({tag:v.z.string(),subscribedAt:v.z.number(),chunksDelivered:v.z.number()}),dr=v.z.object({rtsp:v.z.array(or).readonly(),decoded:v.z.array(sr).readonly(),audio:v.z.array(cr).readonly(),pipeClients:v.z.number(),encodedSubscribers:v.z.number()}),$d=v.z.enum(["reconnecting","sleeping","offline","disabled","waking"]),lr={name:"stream-broker",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{publishCameraStream:a(v.z.object({deviceId:v.z.number().int().nonnegative(),camStreamId:v.z.string().min(1),kind:vi,url:v.z.string().optional(),codec:v.z.string().optional(),resolution:zn.optional(),fps:v.z.number().positive().optional(),label:v.z.string().optional(),deviceFeatures:v.z.array(v.z.string()).optional(),autoEligible:v.z.boolean().optional(),metadata:v.z.record(v.z.string(),v.z.unknown()).optional()}),v.z.object({success:v.z.literal(!0)}),{kind:"mutation",auth:"admin"}),retractCameraStream:a(v.z.object({deviceId:v.z.number().int().nonnegative(),camStreamId:v.z.string().min(1)}),v.z.object({success:v.z.literal(!0)}),{kind:"mutation",auth:"admin"}),assignProfile:a(v.z.object({deviceId:v.z.number().int().nonnegative(),profile:Ue,camStreamId:v.z.string().min(1)}),v.z.object({success:v.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignProfile:a(v.z.object({deviceId:v.z.number().int().nonnegative(),profile:Ue}),v.z.object({success:v.z.literal(!0)}),{kind:"mutation",auth:"admin"}),listAllCameraStreams:a(v.z.void(),v.z.array(Kt).readonly()),listAllProfileSlots:a(v.z.void(),v.z.array(Vt).readonly()),getBrokerStats:a(v.z.object({brokerId:v.z.string()}),ir),listClients:a(v.z.object({brokerId:v.z.string()}),dr),killClient:a(v.z.object({brokerId:v.z.string(),channel:v.z.enum(["rtsp","decoded","audio"]),handle:v.z.string()}),v.z.object({killed:v.z.boolean()}),{kind:"mutation",auth:"admin"}),restartProfile:a(v.z.object({deviceId:v.z.number().int().nonnegative(),profile:Ue}),v.z.object({success:v.z.boolean()}),{kind:"mutation",auth:"admin"}),getStreamUrl:a(v.z.object({streamId:v.z.string(),format:gn}),v.z.object({url:v.z.string()})),getBroker:a(v.z.object({brokerId:v.z.string()}),v.z.custom()),setPreBufferDuration:a(v.z.object({brokerId:v.z.string(),seconds:v.z.number().min(0).max(30)}),v.z.void(),{kind:"mutation",auth:"admin"}),getPreBufferInfo:a(v.z.object({brokerId:v.z.string()}),v.z.object({configuredSec:v.z.number(),bufferedMs:v.z.number(),packetCount:v.z.number()})),getRtspPort:a(v.z.void(),v.z.number()),getAllRtspEntries:a(v.z.object({hostname:v.z.string().optional()}),v.z.array(Zt).readonly()),getRtspEntry:a(v.z.object({brokerId:v.z.string(),hostname:v.z.string().optional()}),Zt.nullable()),regenerateRtspToken:a(v.z.object({brokerId:v.z.string()}),v.z.string().nullable(),{kind:"mutation",auth:"admin"}),setRtspEnabled:a(v.z.object({brokerId:v.z.string(),enabled:v.z.boolean()}),v.z.void(),{kind:"mutation",auth:"admin"}),isRtspEnabled:a(v.z.object({brokerId:v.z.string()}),v.z.boolean())},events:{onCamStreamDemand:He(v.z.object({deviceId:v.z.number().int().nonnegative(),camStreamId:v.z.string(),profile:Ue})),onCamStreamIdle:He(v.z.object({deviceId:v.z.number().int().nonnegative(),camStreamId:v.z.string()})),onRequestStreamSourceRefresh:He(v.z.object({deviceId:v.z.number().int().nonnegative(),camStreamId:v.z.string(),brokerId:v.z.string()}))}},yi={name:"camera-streams",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getCameraStreams:a(X.z.object({deviceId:X.z.number().int().nonnegative()}),X.z.array(Kt).readonly()),getBrokerStreams:a(X.z.object({deviceId:X.z.number().int().nonnegative()}),X.z.array(Vt).readonly()),getRtspEntries:a(X.z.object({deviceId:X.z.number().int().nonnegative(),hostname:X.z.string().optional()}),X.z.array(Zt).readonly())},events:{onCamStreamsChanged:He(X.z.object({deviceId:X.z.number().int().nonnegative(),camStreams:X.z.array(Kt).readonly()})),onProfileSlotsChanged:He(X.z.object({deviceId:X.z.number().int().nonnegative(),profileSlots:X.z.array(Vt).readonly()}))},runtimeState:X.z.object({online:X.z.boolean(),slotStatuses:X.z.object({high:gt.optional(),mid:gt.optional(),low:gt.optional()}),slotErrors:X.z.object({high:X.z.string().optional(),mid:X.z.string().optional(),low:X.z.string().optional()}),lastChangedAt:X.z.number()})},B=require("zod"),ur=B.z.enum(["online","sleeping","offline","unknown"]),Yt=B.z.object({childNativeId:B.z.string(),name:B.z.string(),type:B.z.enum(De),status:ur,metadata:B.z.object({model:B.z.string().optional(),serialNumber:B.z.string().optional(),uid:B.z.string().optional(),rtspChannel:B.z.number().int().nonnegative().optional(),isBattery:B.z.boolean().optional(),isDoorbell:B.z.boolean().optional(),isMultifocal:B.z.boolean().optional()}).default({}),alreadyAdopted:B.z.boolean(),adoptedDeviceId:B.z.number().int().nonnegative().nullable()}),En=B.z.object({discovered:B.z.array(Yt),lastDiscoveryAt:B.z.number().int().nonnegative().nullable(),lastError:B.z.string().nullable()}),Si={name:"device-discovery",scope:"device",mode:"singleton",deviceTypes:["hub"],status:{schema:En,kind:"poll"},runtimeState:En.extend({lastFetchedAt:B.z.number().int().nonnegative()}),methods:{listDiscovered:a(B.z.object({deviceId:B.z.number().int().nonnegative()}),B.z.array(Yt).readonly()),refreshDiscovery:a(B.z.object({deviceId:B.z.number().int().nonnegative()}),B.z.array(Yt).readonly(),{kind:"mutation",auth:"admin"}),adoptDevice:a(B.z.object({deviceId:B.z.number().int().nonnegative(),childNativeId:B.z.string(),name:B.z.string().optional()}),B.z.object({deviceId:B.z.number().int().nonnegative(),stableId:B.z.string()}),{kind:"mutation",auth:"admin"}),releaseDevice:a(B.z.object({deviceId:B.z.number().int().nonnegative(),childDeviceId:B.z.number().int().nonnegative()}),B.z.void(),{kind:"mutation",auth:"admin"})}},ot=require("zod"),Rn=ot.z.object({lastPressedAt:ot.z.number().nullable(),pressCountSinceStart:ot.z.number()}),mr=ot.z.object({deviceId:ot.z.number(),timestamp:ot.z.number()}),fi={name:"doorbell",scope:"device",mode:"singleton",deviceTypes:["button"],methods:{},events:{onPressed:{data:mr}},status:{schema:Rn,kind:"push"},runtimeState:Rn},Ae=require("zod"),ie=require("zod"),V=require("zod"),Gd=V.z.enum(["jpeg","rgb","bgr","yuv420","gray"]),pt=V.z.object({data:V.z.custom(),format:Gd,width:V.z.number(),height:V.z.number(),timestamp:V.z.number()}),Xe=V.z.object({x:V.z.number(),y:V.z.number(),w:V.z.number(),h:V.z.number()}),zr=V.z.object({class:V.z.string(),originalClass:V.z.string(),score:V.z.number(),bbox:Xe}),_n=V.z.object({data:V.z.instanceof(Float32Array),sampleRate:V.z.number(),channels:V.z.number(),timestamp:V.z.number(),deviceId:V.z.number().optional()}),gr=V.z.object({rms:V.z.number(),dbfs:V.z.number()}),Qt=V.z.object({className:V.z.string(),originalClass:V.z.string().optional(),score:V.z.number()}),yt=ie.z.object({bbox:Xe,pixelCount:ie.z.number(),intensity:ie.z.number()}),pr=ie.z.object({detected:ie.z.boolean(),regionCount:ie.z.number(),regions:ie.z.array(yt).readonly(),rawRegions:ie.z.array(yt).readonly(),frameWidth:ie.z.number(),frameHeight:ie.z.number(),analysisMs:ie.z.number()}),br={name:"motion-detection",scope:"device",mode:"singleton",exposesDeviceSettings:!0,methods:{analyze:a(ie.z.object({deviceId:ie.z.number(),frame:pt}),pr,{kind:"mutation"}),removeCamera:a(ie.z.object({deviceId:ie.z.number()}),ie.z.void(),{kind:"mutation"}),reset:a(ie.z.void(),ie.z.void(),{kind:"mutation"})},events:{onMotion:{data:ie.z.object({deviceId:ie.z.number(),detected:ie.z.boolean(),regionCount:ie.z.number()})}}},P=require("zod"),ye=require("zod"),Kd=ye.z.object({activeCameras:ye.z.number(),throttledCameras:ye.z.number(),avgInferenceTimeMs:ye.z.number(),queueDepth:ye.z.number()}),pn=ye.z.object({detectionMode:ye.z.enum(["disabled","always-on","on-motion"]),configuredFps:ye.z.number(),actualFps:ye.z.number(),queueDepth:ye.z.number(),avgInferenceTimeMs:ye.z.number(),droppedFrames:ye.z.number(),phase:ye.z.enum(["idle","watching","active"])}),hr=pn.extend({deviceId:ye.z.number()}),c=require("zod"),qn=c.z.enum(["onnx","coreml","openvino","tflite","pt"]),St=c.z.enum(["detector","cropper","classifier","refiner","audio-classifier"]),de=c.z.object({runtime:c.z.enum(["node","python"]),backend:c.z.string(),format:qn,device:c.z.string().optional()}),Vd=c.z.object({id:c.z.string(),label:c.z.string(),description:c.z.string().optional()}),Zd=c.z.object({engine:de,devices:c.z.array(Vd).readonly(),defaultDevice:c.z.string()}),Jt=c.z.lazy(()=>c.z.object({addonId:c.z.string(),addonName:c.z.string(),slot:St,inputClasses:c.z.array(c.z.string()).readonly(),outputClasses:c.z.array(c.z.string()).readonly(),enabled:c.z.boolean(),modelId:c.z.string(),children:c.z.array(Jt).readonly(),engine:de.optional(),group:c.z.string().optional(),settings:c.z.record(c.z.string(),c.z.unknown()).optional()})),Xt=c.z.lazy(()=>c.z.object({addonId:c.z.string(),enabled:c.z.boolean(),modelId:c.z.string(),children:c.z.array(Xt).readonly(),settings:c.z.record(c.z.string(),c.z.unknown()).optional()})),fn=c.z.object({id:c.z.string(),name:c.z.string(),createdAt:c.z.string(),updatedAt:c.z.string(),engine:de,steps:c.z.array(Xt).readonly()}),Yd=c.z.object({id:c.z.string(),name:c.z.string(),formats:c.z.record(c.z.string(),c.z.object({downloaded:c.z.boolean(),sizeMB:c.z.number()}))}),Qd=c.z.custom(),Jd=c.z.object({id:c.z.string(),name:c.z.string(),slot:St,inputClasses:c.z.array(c.z.string()).readonly(),outputClasses:c.z.array(c.z.string()).readonly(),childSlots:c.z.array(St).readonly(),models:c.z.array(Yd).readonly(),defaultModelId:c.z.string(),defaultModelIdByFormat:c.z.record(c.z.string(),c.z.string()).optional(),enabledByDefault:c.z.boolean().optional(),defaultConfidence:c.z.number(),group:c.z.string().optional(),configSchema:c.z.array(Qd).readonly().optional()}),Xd=c.z.object({id:St,label:c.z.string(),priority:c.z.number(),parentSlot:St.nullable(),addons:c.z.array(Jd).readonly()}),el=c.z.object({availableEngines:c.z.array(Zd).readonly(),selectedEngine:de,slots:c.z.array(Xd).readonly()}),vr=c.z.object({detections:c.z.array(zr).readonly(),inferenceMs:c.z.number(),modelId:c.z.string()}),Je=c.z.lazy(()=>c.z.object({addonId:c.z.string(),modelId:c.z.string(),enabled:c.z.boolean().default(!0),children:c.z.array(Je).optional(),settings:c.z.record(c.z.string(),c.z.unknown()).optional()})),tl=c.z.object({filename:c.z.string(),stepIds:c.z.array(c.z.string()).readonly().optional()}),nl=c.z.object({base64:c.z.string(),filename:c.z.string()}),il=c.z.object({filename:c.z.string(),sizeKb:c.z.number()}),al=c.z.object({base64:c.z.string()}),rl=c.z.object({id:c.z.string(),name:c.z.string(),description:c.z.string(),available:c.z.boolean(),rawLabels:c.z.array(c.z.string()).readonly().optional()}),ol=c.z.object({activeBackend:c.z.string(),availableBackends:c.z.array(rl).readonly(),sampleRate:c.z.number(),chunkDurationMs:c.z.number()}),sl=c.z.object({filePath:c.z.string(),sizeMB:c.z.number(),durationMs:c.z.number()}),cl=c.z.object({success:c.z.boolean(),error:c.z.string().optional(),frame:c.z.custom().optional()}),dl=c.z.custom(),ll=c.z.custom(),ul=c.z.custom(),ml=c.z.custom(),zl=c.z.custom(),On=c.z.custom(),yr={name:"pipeline-executor",scope:"system",mode:"singleton",methods:{getAvailableEngines:a(c.z.void(),c.z.array(de)),getSelectedEngine:a(c.z.void(),de),getDefaultSteps:a(de,c.z.array(Jt)),reprobeEngine:a(c.z.void(),de,{kind:"mutation",auth:"admin"}),getVideoPipelineSteps:a(c.z.void(),c.z.record(c.z.string(),c.z.object({modelId:c.z.string(),settings:c.z.record(c.z.string(),c.z.unknown()).readonly()}))),setVideoPipelineSteps:a(c.z.object({steps:c.z.record(c.z.string(),c.z.object({modelId:c.z.string(),settings:c.z.record(c.z.string(),c.z.unknown()).readonly()}))}),c.z.object({success:c.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getSchema:a(c.z.void(),el),getGlobalSteps:a(c.z.void(),c.z.array(Jt).readonly().nullable()),getGlobalPipelineConfig:a(c.z.void(),dl),getOrchestratorConfigSchema:a(c.z.void(),ll),listTemplates:a(c.z.void(),c.z.array(fn).readonly()),saveTemplate:a(c.z.object({name:c.z.string(),steps:c.z.array(Xt).readonly(),engine:de}),fn,{kind:"mutation"}),updateTemplate:a(c.z.object({id:c.z.string(),name:c.z.string().optional(),steps:c.z.array(Xt).readonly().optional()}),fn,{kind:"mutation"}),deleteTemplate:a(c.z.object({id:c.z.string()}),c.z.void(),{kind:"mutation"}),getCapabilities:a(c.z.void(),ml),getAddonModels:a(c.z.object({addonId:c.z.string()}),zl),downloadModel:a(c.z.object({addonId:c.z.string(),modelId:c.z.string(),format:qn}),sl,{kind:"mutation"}),deleteModel:a(c.z.object({addonId:c.z.string(),modelId:c.z.string(),format:qn}),c.z.object({success:c.z.literal(!0)}),{kind:"mutation"}),detect:a(c.z.object({addonId:c.z.string(),frame:pt,config:c.z.record(c.z.string(),c.z.unknown()).optional()}),vr),runPipeline:a(c.z.object({engine:de.optional(),steps:c.z.array(Je).min(1),frame:pt.optional(),imageBase64:c.z.string().optional(),image:c.z.instanceof(Uint8Array).optional(),referenceImage:c.z.string().optional(),deviceId:c.z.number().optional(),sessionId:c.z.string().optional()}),On,{kind:"mutation"}),runPipelineBatch:a(c.z.object({engine:de.optional(),steps:c.z.array(Je).min(1),frames:c.z.array(pt).min(1).max(255),deviceId:c.z.number().optional(),sessionId:c.z.string().optional()}),c.z.object({results:c.z.array(On).readonly()}),{kind:"mutation"}),cacheFrameInPool:a(c.z.object({data:c.z.instanceof(Uint8Array),width:c.z.number().int().positive(),height:c.z.number().int().positive(),format:c.z.enum(["rgb","bgr","gray"])}),c.z.object({frameId:c.z.number(),width:c.z.number(),height:c.z.number()}),{kind:"mutation"}),inferCached:a(c.z.object({stepId:c.z.string(),frameId:c.z.number().int()}),c.z.record(c.z.string(),c.z.unknown()),{kind:"mutation"}),uncacheFrame:a(c.z.object({frameId:c.z.number().int()}),c.z.void(),{kind:"mutation"}),getEffectiveTuning:a(c.z.void(),c.z.object({batchMode:c.z.string(),windowMs:c.z.number(),maxBatchSize:c.z.number(),concurrency:c.z.number()})),listLoadedEngines:a(c.z.void(),c.z.array(c.z.object({engineKey:c.z.string(),engine:de,modelsLoaded:c.z.array(c.z.string()).readonly(),inUseByCameras:c.z.array(c.z.number()).readonly(),kind:c.z.enum(["runtime","warm-override"]),poolPid:c.z.number().nullable(),idleMs:c.z.number().nullable(),idleTtlMs:c.z.number().nullable()})).readonly()),spinEngine:a(c.z.object({engine:de}),c.z.object({success:c.z.literal(!0)}),{kind:"mutation",auth:"admin"}),killEngine:a(c.z.object({engine:de,force:c.z.boolean().optional()}),c.z.object({success:c.z.boolean(),reason:c.z.string().optional()}),{kind:"mutation",auth:"admin"}),listReferenceImages:a(c.z.void(),c.z.array(tl).readonly()),getReferenceImage:a(c.z.object({filename:c.z.string()}),nl.nullable()),getReferenceAudioFiles:a(c.z.void(),c.z.array(il).readonly()),getReferenceAudio:a(c.z.object({filename:c.z.string()}),al.nullable()),getAudioCapabilities:a(c.z.void(),ol),runAudioTest:a(c.z.object({addonId:c.z.string(),modelId:c.z.string(),filename:c.z.string().optional(),settings:c.z.record(c.z.string(),c.z.unknown()).optional()}),cl,{kind:"mutation"}),getDetectionConfigSchema:a(c.z.void(),ul)}},ee=require("zod"),Sr=ee.z.enum(["polygon","tripwire"]),fr=ee.z.object({x:ee.z.number(),y:ee.z.number()}),nt=ee.z.object({id:ee.z.string(),name:ee.z.string(),kind:Sr.default("polygon"),polygon:ee.z.array(fr).readonly(),color:ee.z.string().default("#3b82f6")}),ki={name:"zones",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{listZones:a(ee.z.object({deviceId:ee.z.number()}),ee.z.array(nt).readonly()),addZone:a(ee.z.object({deviceId:ee.z.number(),zone:nt}),ee.z.void(),{kind:"mutation",auth:"admin"}),removeZone:a(ee.z.object({deviceId:ee.z.number(),zoneId:ee.z.string()}),ee.z.void(),{kind:"mutation",auth:"admin"}),updateZone:a(ee.z.object({deviceId:ee.z.number(),zone:nt}),ee.z.void(),{kind:"mutation",auth:"admin"})},runtimeState:ee.z.object({zones:ee.z.array(nt).readonly()})},it={min:0,max:6e4,default:3e4,step:500},Ve={min:1,max:30,default:4,step:1},Ze={min:1,max:30,default:10,step:1},bn=P.z.enum(["onboard","analyzer"]),kr=P.z.array(bn),Ir=P.z.object({deviceId:P.z.number(),detected:P.z.boolean(),source:bn.default("analyzer"),regions:P.z.array(yt).readonly().optional()}),Ar=P.z.object({deviceId:P.z.number(),detectionMode:P.z.enum(["disabled","always-on","on-motion"]).default("on-motion"),audioMode:P.z.enum(["disabled","always-on","on-motion"]).default("always-on"),motionCooldownMs:P.z.number().min(it.min).default(it.default),motionFps:P.z.number().min(Ve.min).max(Ve.max).default(Ve.default),detectionFps:P.z.number().min(Ze.min).max(Ze.max).default(Ze.default),motionStreamId:P.z.string(),detectionStreamId:P.z.string(),motionSources:kr.default(["analyzer"]),pipelineEnabled:P.z.boolean().default(!0),engine:de.optional(),steps:P.z.array(Je).readonly().optional(),audio:P.z.object({engine:de,modelId:P.z.string(),enabled:P.z.boolean()}).nullable().optional(),zones:P.z.array(nt).readonly().default([])}),gl=[{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:Ve.min,max:Ve.max,step:Ve.step,default:Ve.default,showValue:!0,unit:"fps",showWhen:{field:"motionSources",includes:"analyzer"}},{key:"detectionFps",type:"slider",label:"Detection FPS",min:Ze.min,max:Ze.max,step:Ze.step,default:Ze.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:it.min,max:it.max,step:it.step,default:it.default,showValue:!0,unit:"s",displayScale:1e3}],Ii=P.z.object({nodeId:P.z.string(),attachedCameras:P.z.number(),activeCameras:P.z.number(),avgInferenceFps:P.z.number(),avgInferenceTimeMs:P.z.number(),queueDepthTotal:P.z.number(),hardware:P.z.object({hasGpu:P.z.boolean(),inferenceBackend:P.z.string().optional(),cpuCores:P.z.number().optional()})}),Cr=P.z.object({nodeId:P.z.string(),activeCameras:P.z.number(),throttledCameras:P.z.number(),avgInferenceTimeMs:P.z.number(),queueDepth:P.z.number()}),jr={name:"pipeline-runner",scope:"system",mode:"singleton",methods:{attachCamera:a(Ar,P.z.object({success:P.z.literal(!0)}),{kind:"mutation"}),detachCamera:a(P.z.object({deviceId:P.z.number()}),P.z.object({success:P.z.literal(!0)}),{kind:"mutation"}),reportMotion:a(Ir,P.z.object({success:P.z.literal(!0)}),{kind:"mutation"}),getLocalLoad:a(P.z.void(),Ii),getLocalMetrics:a(P.z.void(),Cr),getCameraMetrics:a(P.z.object({deviceId:P.z.number()}),pn.nullable()),getAllCameraMetrics:a(P.z.void(),P.z.array(hr).readonly()),getLocalCameras:a(P.z.void(),P.z.array(P.z.number()).readonly())}},Bn=Ae.z.object({detected:Ae.z.boolean(),lastDetectedAt:Ae.z.number().nullable(),autoClearAfterMs:Ae.z.number().nullable()}),wr=Ae.z.object({deviceId:Ae.z.number(),detected:Ae.z.boolean(),timestamp:Ae.z.number(),source:bn,regions:Ae.z.array(yt).readonly().optional()}),Ai={name:"motion",scope:"device",mode:"singleton",deviceTypes:["camera","sensor"],methods:{isDetected:a(Ae.z.object({deviceId:Ae.z.number()}),Ae.z.boolean())},events:{onMotionChanged:{data:wr}},status:{schema:Bn,kind:"push"},runtimeState:Bn},ke=require("zod"),Ci=ke.z.object({enabled:ke.z.boolean(),lastChangedAt:ke.z.number()}),Pr=Ci.extend({lastFetchedAt:ke.z.number()}),ji={name:"motion-trigger",scope:"device",mode:"singleton",deviceTypes:["light","siren","switch"],methods:{setMotionTrigger:a(ke.z.object({deviceId:ke.z.number().int().nonnegative(),enabled:ke.z.boolean()}),ke.z.void(),{kind:"mutation",auth:"admin"})},events:{onMotionTriggerChanged:{data:ke.z.object({deviceId:ke.z.number(),enabled:ke.z.boolean(),lastChangedAt:ke.z.number()})}},status:{schema:Ci,kind:"command-driven"},runtimeState:Pr},Q=require("zod"),pl=Q.z.string().describe("Vendor target string (people/vehicle/pet); empty = camera default"),en=Q.z.object({targetType:pl,stopDelaySeconds:Q.z.number().int().min(0).max(300),disappearDelaySeconds:Q.z.number().int().min(0).max(300)}),Dr=Q.z.object({value:Q.z.string(),label:Q.z.string()}),bt=Q.z.object({enabled:Q.z.boolean(),lastChangedAt:Q.z.number(),currentSettings:en.nullable(),supportedTargetTypes:Q.z.array(Dr)}),Mr=bt.extend({lastFetchedAt:Q.z.number()}),wi={name:"ptz-autotrack",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getStatus:a(Q.z.object({deviceId:Q.z.number()}),bt),setEnabled:a(Q.z.object({deviceId:Q.z.number(),enabled:Q.z.boolean()}),Q.z.void(),{kind:"mutation"}),getSettings:a(Q.z.object({deviceId:Q.z.number()}),en.nullable()),setSettings:a(Q.z.object({deviceId:Q.z.number(),settings:en.partial()}),Q.z.void(),{kind:"mutation"})},events:{onStatusChanged:{data:Q.z.object({deviceId:Q.z.number(),status:bt})}},status:{schema:bt,kind:"command-driven"},runtimeState:Mr},Pe=require("zod"),xn=Pe.z.object({on:Pe.z.boolean(),lastChangedAt:Pe.z.number()}),Pi={name:"switch",scope:"device",mode:"singleton",deviceTypes:["switch","siren","light"],methods:{setState:a(Pe.z.object({deviceId:Pe.z.number(),on:Pe.z.boolean()}),Pe.z.void(),{kind:"mutation",auth:"admin"})},events:{onStateChanged:{data:Pe.z.object({deviceId:Pe.z.number(),on:Pe.z.boolean(),lastChangedAt:Pe.z.number()})}},status:{schema:xn,kind:"command-driven"},runtimeState:xn,settings:{bindings:[{kind:"scalar",statusPath:"on",method:"setState",valueArg:"on",field:{label:"On",kind:"boolean"}}]}},N=require("zod"),tn=N.z.object({totalObjects:N.z.number().int().nonnegative(),byClass:N.z.record(N.z.string(),N.z.number().int().nonnegative())}),Tr=tn.extend({zoneId:N.z.string(),zoneName:N.z.string(),trackIds:N.z.array(N.z.string()).readonly()}),ia=N.z.object({ts:N.z.number().int(),frameWidth:N.z.number().int().nonnegative(),frameHeight:N.z.number().int().nonnegative(),zones:N.z.array(Tr).readonly(),frame:tn,unzoned:tn}),Er=N.z.enum(["minute","5min","hour"]),kn=N.z.object({from:N.z.number().int(),to:N.z.number().int(),resolution:Er}),xt=N.z.object({ts:N.z.number().int(),count:N.z.number().int().nonnegative()}),Di={name:"zone-analytics",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getCurrentSnapshot:a(N.z.object({deviceId:N.z.number()}),ia.nullable()),getZoneHistory:a(N.z.object({deviceId:N.z.number(),zoneId:N.z.string(),className:N.z.string().optional()}).extend(kn.shape),N.z.array(xt).readonly()),getCameraHistory:a(N.z.object({deviceId:N.z.number(),className:N.z.string().optional()}).extend(kn.shape),N.z.array(xt).readonly()),getUnzonedHistory:a(N.z.object({deviceId:N.z.number(),className:N.z.string().optional()}).extend(kn.shape),N.z.array(xt).readonly())},runtimeState:ia},Ce=require("zod"),Se=require("zod"),Rr=Se.z.enum(["include","exclude"]),at=Se.z.object({id:Se.z.string(),name:Se.z.string().optional(),zoneIds:Se.z.array(Se.z.string()).min(1).readonly(),mode:Rr,classFilter:Se.z.array(Se.z.string()).readonly().optional(),overlapThreshold:Se.z.number().min(0).max(1).optional(),bboxInclusionPct:Se.z.number().min(0).max(100).optional(),preferMask:Se.z.boolean().optional(),enabled:Se.z.boolean().default(!0)}),bl=Se.z.array(at).readonly(),Nn=Ce.z.enum(["motion","detection"]),Mi={name:"zone-rules",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{listRules:a(Ce.z.object({deviceId:Ce.z.number(),stage:Nn}),Ce.z.array(at).readonly()),setRules:a(Ce.z.object({deviceId:Ce.z.number(),stage:Nn,rules:Ce.z.array(at).readonly()}),Ce.z.void(),{kind:"mutation",auth:"admin"})},runtimeState:Ce.z.object({motion:Ce.z.array(at).readonly(),detection:Ce.z.array(at).readonly()})},hl={audioMetrics:pi,battery:bi,brightness:hi,cameraStreams:yi,deviceDiscovery:Si,deviceStatus:un,doorbell:fi,featureProbe:mn,motion:Ai,motionTrigger:ji,ptzAutotrack:wi,switch:Pi,zoneAnalytics:Di,zoneRules:Mi,zones:ki},vl=class{id;stableId;type;name;parentDeviceId;role;get online(){return this.runtimeState.getCapState("device-status")?.online??!1}set online(e){this.markOnline(e)}get state(){if(!this._stateProxyCache){const e={},i={get:(t,s)=>{const d=s;if(d in e)return e[d];const z=hl[d];if(!z)return;const p=this.sliceProxy(z);return e[d]=p,p}};this._stateProxyCache=new Proxy(e,i)}return this._stateProxyCache}_stateProxyCache;config;runtimeState;ctx;location;disabled;constructor(e,i,t){if(this.ctx=e,this.id=e.id,this.stableId=e.stableId,this.type=t.type,!e.deviceMeta)throw new Error(`BaseDevice constructor: ctx.deviceMeta is required (id=${e.id} stableId=${e.stableId})`);this.name=e.deviceMeta.name,this.location=e.deviceMeta.location,this.disabled=e.deviceMeta.disabled,this.role=t.role,this.parentDeviceId=e.parentDeviceId;const s=e.persistedConfig??{};this.config=$a.fromSchema(i,D=>e.persistConfig(D),s,({droppedKeys:D,issues:w})=>{e.logger.warn("Device config recovery: dropping invalid persisted fields",{tags:{deviceId:e.id,stableId:e.stableId},meta:{droppedKeys:[...D],firstIssue:w[0]?.message??null}})});let d=null;const z=async(D,w)=>{d||(d=e.fetchDevice(e.id)),await(await d).deviceState.setCapSlice({capName:D,slice:w})},p=e.initialRuntimeState??{};this.runtimeState=Ga.fromInitial(p,z),e.bindRuntimeState?.(this.runtimeState),e.registerNativeCap?.(un,{});const l={online:!1,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",l),e.registerNativeCap?.(mn,{});const m={flags:{},deviceType:null,model:null,channelCount:null,lastProbedAt:0,lastFetchedAt:0};this.runtimeState.setCapState("feature-probe",m)}async removeDevice(){}markOnline(e){if(this.online===e)return;const i={online:e,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",i)}async refreshFeatures(){const i=this.ctx.api?.deviceManager?.registerDevice;if(i)try{await i.mutate({addonId:this.ctx.deviceMeta.addonId,stableId:this.stableId,id:this.id,type:this.type,name:this.name,parentDeviceId:this.parentDeviceId,features:[...this.features],config:{}})}catch{}}getCapSlice(e){return this.runtimeState.getCapState(e.name)??null}setCapSlice(e,i){this.runtimeState.setCapState(e.name,i)}sliceProxy(e){const i={},t={get:(s,d)=>this.runtimeState.getCapState(e.name)?.[d],set:(s,d,z)=>(this.runtimeState.patchCapState(e.name,{[d]:z}),!0),has:(s,d)=>{const z=this.runtimeState.getCapState(e.name);return z?d in z:!1},ownKeys:()=>{const s=this.runtimeState.getCapState(e.name);return s?Object.keys(s):[]},getOwnPropertyDescriptor:(s,d)=>{const z=this.runtimeState.getCapState(e.name);if(!(!z||!(d in z)))return{configurable:!0,enumerable:!0,value:z[d]}}};return new Proxy(i,t)}getSettingsUISchema(){return{sections:[]}}async applySettingsPatch(e){await this.config.setAll(e)}async onProbe(){}async onActivate(){}async reprobe(){this._kernelReprobe?await this._kernelReprobe():await this.onProbe()}_kernelReprobe;getAccessoryChildren(){return[]}getProbeFlags(){return this.runtimeState.getCapState("feature-probe")?.flags??{}}hasProbed(){return(this.runtimeState.getCapState("feature-probe")?.lastProbedAt??0)>0}},j=require("zod"),_r=j.z.object({connected:j.z.boolean(),deviceCount:j.z.number(),error:j.z.string().optional()}),yl=j.z.object({externalId:j.z.string(),name:j.z.string(),type:j.z.string(),metadata:j.z.record(j.z.string(),j.z.unknown()).optional()}),nn=j.z.object({stableId:j.z.string(),type:j.z.enum(De),suggestedName:j.z.string(),prefilledConfig:j.z.record(j.z.string(),j.z.unknown())}),an=j.z.object({id:j.z.number(),stableId:j.z.string(),addonId:j.z.string(),type:j.z.string(),name:j.z.string(),parentDeviceId:j.z.number().nullable(),online:j.z.boolean(),features:j.z.array(j.z.string()),config:j.z.record(j.z.string(),j.z.unknown())}),Ln=j.z.object({status:j.z.enum(["ok","error"]),labels:j.z.array(j.z.string()).optional(),error:j.z.string().optional()}),Sl=j.z.unknown(),Ti={name:"device-provider",scope:"system",mode:"collection",methods:{start:a(j.z.void(),j.z.void(),{kind:"mutation"}),stop:a(j.z.void(),j.z.void(),{kind:"mutation"}),getStatus:a(j.z.void(),_r),getDevices:a(j.z.void(),j.z.array(j.z.object({id:j.z.string(),name:j.z.string(),type:j.z.string()}))),supportsDiscovery:a(j.z.object({}),j.z.boolean()),discoverDevices:a(j.z.object({}),j.z.array(nn),{kind:"mutation",auth:"admin"}),adoptDiscoveredDevice:a(j.z.object({candidate:nn}),an,{kind:"mutation",auth:"admin"}),supportsManualCreation:a(j.z.object({}),j.z.boolean()),getChildCreationSchema:a(j.z.object({type:j.z.enum(De)}),Sl),createDevice:a(j.z.object({type:j.z.enum(De),config:j.z.record(j.z.string(),j.z.unknown())}),an,{kind:"mutation",auth:"admin"}),testCreationField:a(j.z.object({type:j.z.enum(De),key:j.z.string(),value:j.z.unknown(),formValues:j.z.record(j.z.string(),j.z.unknown()).optional()}),Ln,{kind:"mutation",auth:"admin"})}};function qr(e,i){const t={};for(const s of e.config.entries())t[s.key]=s.value;return{id:e.id,stableId:e.stableId,addonId:i,type:String(e.type),name:e.name,parentDeviceId:e.parentDeviceId,online:e.online,features:[...e.features],config:t}}var fl=class extends ka{async onInitialize(){return this.ctx.logger.info(`${this.providerName} Provider initialized`),[{capability:Ti,provider:this}]}async onShutdown(){const e=await this.ctx.kernel.devices?.getAll()??[];for(const i of e)try{await this.ctx.kernel.devices?.decommission(i.id)}catch(t){this.ctx.logger.warn(`${this.providerName}: decommission failed`,{tags:{deviceId:i.id,stableId:i.stableId},meta:{error:t instanceof Error?t.message:String(t)}})}this.ctx.logger.info(`${this.providerName} Provider shut down`,{meta:{decommissionedCount:e.length}})}async start(){}async stop(){}async getStatus(){return{connected:!0,deviceCount:(await this.ctx.kernel.devices?.getAll()??[]).length}}async getDevices(){return(await this.ctx.kernel.devices?.getAll()??[]).map(i=>({id:i.stableId,name:i.name,type:String(i.type)}))}async supportsDiscovery(){return!1}async discoverDevices(){return[]}async adoptDiscoveredDevice(e){throw new Error(`${this.providerName} provider does not support discovery-based adoption`)}async supportsManualCreation(){return!0}async getChildCreationSchema(e){return this.onGetCreationSchema(e.type)}async createDevice(e){const i=await this.onCreateDevice(e.type,e.config),t=this.deviceClasses[i.meta.type];if(!t)throw new Error(`${this.providerName} provider: no device class registered for type "${i.meta.type}" — add it to the deviceClasses map`);const s=this.generateStableId(i.meta.type,i.config),d=await this.ctx.kernel.devices.create(s,t,i.config,null,i.meta);if(i.onAfterCreate)try{await i.onAfterCreate(d)}catch(z){this.ctx.logger.warn("createDevice: onAfterCreate hook threw — device is already registered",{tags:{deviceId:d.id,stableId:s},meta:{error:z instanceof Error?z.message:String(z)}})}return this.toSummary(d)}generateStableId(e,i){return`${this.addonId}-${Date.now()}`}async testCreationField(e){return{status:"ok",labels:["probe not implemented"]}}async restoreDevices(e){await this.onRestoreDevices(e),e.length>0&&this.ctx.logger.info(`Restored ${e.length} ${this.providerName} device(s)`)}async onRestoreDevices(e){const i=new Set;for(const s of e){if(s.parentDeviceId!==null)continue;const d=this.deviceClasses[s.type];if(!d){this.ctx.logger.warn("No device class registered for restored type — skipping",{tags:{stableId:s.stableId},meta:{type:s.type}});continue}try{await this.ctx.kernel.devices.create(s.stableId,d,{}),i.add(s.id)}catch(z){this.ctx.logger.warn("Failed to restore device",{tags:{stableId:s.stableId},meta:{type:s.type,error:z instanceof Error?z.message:String(z)}})}}const t=e.filter(s=>s.parentDeviceId!==null);for(const s of t){const d=this.deviceClasses[s.type];if(d&&s.parentDeviceId!==null&&i.has(s.parentDeviceId))try{await this.ctx.kernel.devices.create(s.stableId,d,{},s.parentDeviceId),i.add(s.id)}catch(z){this.ctx.logger.warn("Failed to restore hub-adopted child",{tags:{stableId:s.stableId,parentDeviceId:s.parentDeviceId},meta:{type:s.type,error:z instanceof Error?z.message:String(z)}})}}}toSummary(e){return qr(e,this.addonId)}},Te=require("zod");function ht(e){return e.def}function kl(e,i="Configuration",t="main"){const s=e.map(d=>Il(d.key,d.schema,d.description));return{sections:[{id:t,title:i,fields:s}]}}function Il(e,i,t){const s=Nt(i),d=Pl(i),z=t??Or(e),p={key:e,label:z,description:t,default:d};return s instanceof Te.z.ZodString?Al(e,p):s instanceof Te.z.ZodNumber?Cl(s,p):s instanceof Te.z.ZodBoolean?{...p,type:"boolean"}:s instanceof Te.z.ZodEnum?wl(s,p):s instanceof Te.z.ZodArray||s instanceof Te.z.ZodObject?{...p,type:"textarea",rows:6,isJson:!0}:{...p,type:"text"}}function Al(e,i){const t=e.toLowerCase();return t.includes("password")||t.includes("secret")||t.includes("token")||t.includes("apikey")||t.includes("api_key")?{...i,type:"password",showToggle:!0}:{...i,type:"text"}}function Cl(e,i){const t=e,s=t.minValue,d=t.maxValue,z=s!=null&&isFinite(s)?s:void 0,p=d!=null&&isFinite(d)?d:void 0,l=jl(e);return{...i,type:"number",...z!==void 0?{min:z}:{},...p!==void 0?{max:p}:{},...l!==void 0?{step:l}:{}}}function jl(e){const t=ht(e).checks??[];for(const s of t)if(s._zod?.def?.check==="multiple_of"&&s._zod.def.value!==void 0)return s._zod.def.value}function wl(e,i){const t=e.options.map(d=>String(d));return{...i,type:"select",options:t.map(d=>({label:Or(d),value:d}))}}function Nt(e){return e instanceof Te.z.ZodDefault||e instanceof Te.z.ZodOptional||e instanceof Te.z.ZodNullable?Nt(ht(e).innerType):e}function Pl(e){if(e instanceof Te.z.ZodDefault)return ht(e).defaultValue}function Or(e){return e.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/^\w/,i=>i.toUpperCase()).trim()}var Dl="device.state-changed";function Ei(e){const i=new Map,t=new Map;let s=null;const d=(l,m)=>`${l}:${m}`,z=()=>{s||e.live?.onEvent&&(s=e.live.onEvent.subscribe({category:Dl},{onData:l=>{const m=l.data;if(!m||typeof m.deviceId!="number"||typeof m.capName!="string")return;const D=d(m.deviceId,m.capName);i.set(D,m.slice);const w=t.get(D);if(w)for(const E of w)try{E(m.slice)}catch{}}}))},p=()=>{s&&(t.size>0||(s.unsubscribe(),s=null))};return{read(l,m){return i.get(d(l,m))},async refresh(l,m){const D=await e.deviceState.getCapSlice.query({deviceId:l,capName:m}),w=d(l,m);i.set(w,D??void 0);const E=t.get(w);if(E)for(const q of E)try{q(D??void 0)}catch{}},watch(l,m,D){const w=d(l,m);let E=t.get(w);return E||(E=new Set,t.set(w,E)),E.add(D),z(),()=>{E.delete(D),E.size===0&&t.delete(w),p()}},async write(l,m,D){await e.deviceState.setCapSlice.mutate({deviceId:l,capName:m,slice:D})}}}function Br(e,i,t){const s=(d,z)=>`${d}:${z}`;return{read(d,z){return e.get(d)?.get(z)},async refresh(){},watch(d,z,p){const l=s(d,z);let m=i.get(l);return m||(m=new Set,i.set(l,m)),m.add(p),()=>{m.delete(p),m.size===0&&i.delete(l)}},async write(d,z,p){if(!t)throw new Error("createMirrorSource: write requires an api reference — pass it as the third argument when constructing the source");await t.deviceState.setCapSlice.mutate({deviceId:d,capName:z,slice:p})}}}function ge(e,i,t){const s=Ml(e)?e:Ei(e);return{get value(){return s.read(i,t)},refresh(){return s.refresh(i,t)},subscribe(d){const z=s.watch(i,t,p=>{try{d(p)}catch{}});try{d(s.read(i,t))}catch{}return s.read(i,t)===void 0&&s.refresh(i,t).catch(()=>{}),z},async set(d){await s.write(i,t,d)},async patch(d){const p={...s.read(i,t)??{},...d};await s.write(i,t,p)}}}function Ml(e){return typeof e.read=="function"&&typeof e.watch=="function"}function xr(e,i,t){const s=e,d=t?.stateSource??Ei(e);function z(r,Re){const _e=typeof r=="object"&&r!==null?r:{};return Re!==void 0?{..._e,deviceId:i.deviceId,nodeId:Re}:{..._e,deviceId:i.deviceId}}function p(r,Re,_e,$e,lt){const Pt=s[r]?.[Re];if(!Pt)throw new Error(`DeviceProxy: api has no '${r}.${Re}'`);const ut=Pt;return _e==="mutation"?ut.mutate($e):_e==="subscription"?ut.subscribe($e,lt):ut.query($e)}function l(r,Re,_e,$e,lt,Pt){const ut=i.entries.find(Ec=>Ec.capName===r);return p(Re,_e,$e,z(lt,ut?.providerNodeId),Pt)}function m(r,Re,_e,$e,lt){return p(r,Re,_e,z($e,void 0),lt)}const D={getStatus:r=>l("accessories","accessories","getStatus","query",r)},w={resolveDeviceSettings:r=>l("audio-analysis","audioAnalysis","resolveDeviceSettings","query",r),getDeviceSettingsContribution:r=>l("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>l("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>l("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",r)},E={getCurrentSnapshot:r=>l("audio-metrics","audioMetrics","getCurrentSnapshot","query",r),getHistory:r=>l("audio-metrics","audioMetrics","getHistory","query",r)},q={getStatus:r=>l("battery","battery","getStatus","query",r)},Ee={setBrightness:r=>l("brightness","brightness","setBrightness","mutation",r),getStatus:r=>l("brightness","brightness","getStatus","query",r)},We={getCredentials:r=>l("camera-credentials","cameraCredentials","getCredentials","query",r),getStatus:r=>l("camera-credentials","cameraCredentials","getStatus","query",r)},Ct={getCameraStreams:r=>l("camera-streams","cameraStreams","getCameraStreams","query",r),getBrokerStreams:r=>l("camera-streams","cameraStreams","getBrokerStreams","query",r),getRtspEntries:r=>l("camera-streams","cameraStreams","getRtspEntries","query",r)},st={getDeviceSettingsContribution:r=>l("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>l("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>l("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",r)},et={listDiscovered:r=>l("device-discovery","deviceDiscovery","listDiscovered","query",r),refreshDiscovery:r=>l("device-discovery","deviceDiscovery","refreshDiscovery","mutation",r),adoptDevice:r=>l("device-discovery","deviceDiscovery","adoptDevice","mutation",r),releaseDevice:r=>l("device-discovery","deviceDiscovery","releaseDevice","mutation",r),getStatus:r=>l("device-discovery","deviceDiscovery","getStatus","query",r)},Fi={getStreamSources:r=>l("device-ops","deviceOps","getStreamSources","query",r),getConfigEntries:r=>l("device-ops","deviceOps","getConfigEntries","query",r),setConfig:r=>l("device-ops","deviceOps","setConfig","mutation",r),removeDevice:r=>l("device-ops","deviceOps","removeDevice","mutation",r),getSettingsSchema:r=>l("device-ops","deviceOps","getSettingsSchema","query",r)},Ui={getStatus:r=>l("device-status","deviceStatus","getStatus","query",r)},Hi={getStatus:r=>l("doorbell","doorbell","getStatus","query",r)},Wi={getEvents:r=>l("events","events","getEvents","query",r),getEventThumbnail:r=>l("events","events","getEventThumbnail","query",r),getEventClipUrl:r=>l("events","events","getEventClipUrl","query",r)},$i={getStatus:r=>l("feature-probe","featureProbe","getStatus","query",r)},Gi={startSession:r=>l("intercom","intercom","startSession","mutation",r),handleAnswer:r=>l("intercom","intercom","handleAnswer","mutation",r),stopSession:r=>l("intercom","intercom","stopSession","mutation",r),getStatus:r=>l("intercom","intercom","getStatus","query",r)},Ki={isDetected:r=>l("motion","motion","isDetected","query",r),getStatus:r=>l("motion","motion","getStatus","query",r)},Vi={analyze:r=>l("motion-detection","motionDetection","analyze","mutation",r),removeCamera:r=>l("motion-detection","motionDetection","removeCamera","mutation",r),reset:r=>l("motion-detection","motionDetection","reset","mutation",r),getDeviceSettingsContribution:r=>l("motion-detection","motionDetection","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>l("motion-detection","motionDetection","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>l("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",r)},Zi={setMotionTrigger:r=>l("motion-trigger","motionTrigger","setMotionTrigger","mutation",r),getStatus:r=>l("motion-trigger","motionTrigger","getStatus","query",r)},Yi={getStatus:r=>l("native-object-detection","nativeObjectDetection","getStatus","query",r)},Qi={setOverlay:r=>l("osd","osd","setOverlay","mutation",r),getStatus:r=>l("osd","osd","getStatus","query",r)},Ji={getActiveTracks:r=>l("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",r),getTrack:r=>l("pipeline-analytics","pipelineAnalytics","getTrack","query",r),listTracks:r=>l("pipeline-analytics","pipelineAnalytics","listTracks","query",r),clearTracks:r=>l("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",r),getMotionEvents:r=>l("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",r),getObjectEvents:r=>l("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",r),getAudioEvents:r=>l("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",r),getEventMedia:r=>l("pipeline-analytics","pipelineAnalytics","getEventMedia","query",r),getTrackMedia:r=>l("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",r),getDeviceSettingsContribution:r=>l("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>l("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>l("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",r)},Xi={move:r=>l("ptz","ptz","move","mutation",r),continuousMove:r=>l("ptz","ptz","continuousMove","mutation",r),stop:r=>l("ptz","ptz","stop","mutation",r),getPresets:r=>l("ptz","ptz","getPresets","query",r),goToPreset:r=>l("ptz","ptz","goToPreset","mutation",r),goHome:r=>l("ptz","ptz","goHome","mutation",r),getPosition:r=>l("ptz","ptz","getPosition","query",r),getStatus:r=>l("ptz","ptz","getStatus","query",r)},ea={getStatus:r=>l("ptz-autotrack","ptzAutotrack","getStatus","query",r),setEnabled:r=>l("ptz-autotrack","ptzAutotrack","setEnabled","mutation",r),getSettings:r=>l("ptz-autotrack","ptzAutotrack","getSettings","query",r),setSettings:r=>l("ptz-autotrack","ptzAutotrack","setSettings","mutation",r)},n={reboot:r=>l("reboot","reboot","reboot","mutation",r)},Le={getSegments:r=>l("recording","recording","getSegments","query",r),getPlaybackUrl:r=>l("recording","recording","getPlaybackUrl","query",r),getThumbnailAt:r=>l("recording","recording","getThumbnailAt","query",r)},jt={getSnapshot:r=>l("snapshot","snapshot","getSnapshot","query",r),invalidateCache:r=>l("snapshot","snapshot","invalidateCache","mutation",r),getStatus:r=>l("snapshot","snapshot","getStatus","query",r),getDeviceSettingsContribution:r=>l("snapshot","snapshot","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>l("snapshot","snapshot","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>l("snapshot","snapshot","applyDeviceSettingsPatch","mutation",r)},ct={setState:r=>l("switch","switch","setState","mutation",r),getStatus:r=>l("switch","switch","getStatus","query",r)},vn={listStreams:r=>l("webrtc-session","webrtcSession","listStreams","query",r),createSession:r=>l("webrtc-session","webrtcSession","createSession","mutation",r),handleAnswer:r=>l("webrtc-session","webrtcSession","handleAnswer","mutation",r),closeSession:r=>l("webrtc-session","webrtcSession","closeSession","mutation",r),hasAdaptiveBitrate:r=>l("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",r)},wt={getCurrentSnapshot:r=>l("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",r),getZoneHistory:r=>l("zone-analytics","zoneAnalytics","getZoneHistory","query",r),getCameraHistory:r=>l("zone-analytics","zoneAnalytics","getCameraHistory","query",r),getUnzonedHistory:r=>l("zone-analytics","zoneAnalytics","getUnzonedHistory","query",r)},dt={listRules:r=>l("zone-rules","zoneRules","listRules","query",r),setRules:r=>l("zone-rules","zoneRules","setRules","mutation",r)},fc={listZones:r=>l("zones","zones","listZones","query",r),addZone:r=>l("zones","zones","addZone","mutation",r),removeZone:r=>l("zones","zones","removeZone","mutation",r),updateZone:r=>l("zones","zones","updateZone","mutation",r)},kc={getDeviceSettings:r=>m("addonSettings","getDeviceSettings","query",r),updateDeviceSettings:r=>m("addonSettings","updateDeviceSettings","mutation",r)},Ic={loadConfig:r=>m("deviceManager","loadConfig","query",r),loadRuntimeState:r=>m("deviceManager","loadRuntimeState","query",r),loadMeta:r=>m("deviceManager","loadMeta","query",r),setName:r=>m("deviceManager","setName","mutation",r),setLocation:r=>m("deviceManager","setLocation","mutation",r),setMetadata:r=>m("deviceManager","setMetadata","mutation",r),setDisabled:r=>m("deviceManager","setDisabled","mutation",r),getDevice:r=>m("deviceManager","getDevice","query",r),getStreamSources:r=>m("deviceManager","getStreamSources","query",r),getConfigSchema:r=>m("deviceManager","getConfigSchema","query",r),getSettingsSchema:r=>m("deviceManager","getSettingsSchema","query",r),updateConfig:r=>m("deviceManager","updateConfig","mutation",r),enable:r=>m("deviceManager","enable","mutation",r),disable:r=>m("deviceManager","disable","mutation",r),remove:r=>m("deviceManager","remove","mutation",r),getStreamProfileMap:r=>m("deviceManager","getStreamProfileMap","query",r),setStreamProfileMap:r=>m("deviceManager","setStreamProfileMap","mutation",r),probeStreams:r=>m("deviceManager","probeStreams","mutation",r),getBindings:r=>m("deviceManager","getBindings","query",r),getAllBindings:r=>m("deviceManager","getAllBindings","query",r),setWrapperActive:r=>m("deviceManager","setWrapperActive","mutation",r),getDeviceSettingsAggregate:r=>m("deviceManager","getDeviceSettingsAggregate","query",r),getDeviceLiveInfoAggregate:r=>m("deviceManager","getDeviceLiveInfoAggregate","query",r),getDeviceAggregate:r=>m("deviceManager","getDeviceAggregate","query",r),updateDeviceField:r=>m("deviceManager","updateDeviceField","mutation",r),updateDeviceFieldsBatch:r=>m("deviceManager","updateDeviceFieldsBatch","mutation",r),testField:r=>m("deviceManager","testField","mutation",r),getDeviceStatusAggregate:r=>m("deviceManager","getDeviceStatusAggregate","query",r)},Ac={getSnapshot:r=>m("deviceState","getSnapshot","query",r),getCapSlice:r=>m("deviceState","getCapSlice","query",r),setCapSlice:r=>m("deviceState","setCapSlice","mutation",r)},Cc={getDeviceStats:r=>m("networkQuality","getDeviceStats","query",r),reportClientStats:r=>m("networkQuality","reportClientStats","mutation",r)},jc={runPipeline:r=>m("pipelineExecutor","runPipeline","mutation",r),runPipelineBatch:r=>m("pipelineExecutor","runPipelineBatch","mutation",r)},wc={assignPipeline:r=>m("pipelineOrchestrator","assignPipeline","mutation",r),unassignPipeline:r=>m("pipelineOrchestrator","unassignPipeline","mutation",r),getPipelineAssignment:r=>m("pipelineOrchestrator","getPipelineAssignment","query",r),getCameraMetrics:r=>m("pipelineOrchestrator","getCameraMetrics","query",r),assignDecoder:r=>m("pipelineOrchestrator","assignDecoder","mutation",r),unassignDecoder:r=>m("pipelineOrchestrator","unassignDecoder","mutation",r),assignAudio:r=>m("pipelineOrchestrator","assignAudio","mutation",r),unassignAudio:r=>m("pipelineOrchestrator","unassignAudio","mutation",r),getAudioAssignment:r=>m("pipelineOrchestrator","getAudioAssignment","query",r),getAudioAssignments:r=>m("pipelineOrchestrator","getAudioAssignments","query",r),getDecoderAssignment:r=>m("pipelineOrchestrator","getDecoderAssignment","query",r),getCameraSettings:r=>m("pipelineOrchestrator","getCameraSettings","query",r),setCameraStepToggle:r=>m("pipelineOrchestrator","setCameraStepToggle","mutation",r),getCameraStepOverrides:r=>m("pipelineOrchestrator","getCameraStepOverrides","query",r),setCameraStepOverride:r=>m("pipelineOrchestrator","setCameraStepOverride","mutation",r),setCameraPipelineForAgent:r=>m("pipelineOrchestrator","setCameraPipelineForAgent","mutation",r),resolvePipeline:r=>m("pipelineOrchestrator","resolvePipeline","query",r),getDeviceSettingsContribution:r=>m("pipelineOrchestrator","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>m("pipelineOrchestrator","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>m("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",r)},Pc={detachCamera:r=>m("pipelineRunner","detachCamera","mutation",r),getCameraMetrics:r=>m("pipelineRunner","getCameraMetrics","query",r)},Dc={getPolicyStatus:r=>m("recordingEngine","getPolicyStatus","query",r)},Mc={supportsDevice:r=>m("snapshotProvider","supportsDevice","query",r),getSnapshot:r=>m("snapshotProvider","getSnapshot","query",r)},Tc={publishCameraStream:r=>m("streamBroker","publishCameraStream","mutation",r),retractCameraStream:r=>m("streamBroker","retractCameraStream","mutation",r),assignProfile:r=>m("streamBroker","assignProfile","mutation",r),unassignProfile:r=>m("streamBroker","unassignProfile","mutation",r),restartProfile:r=>m("streamBroker","restartProfile","mutation",r),getDeviceSettingsContribution:r=>m("streamBroker","getDeviceSettingsContribution","query",r),getDeviceLiveContribution:r=>m("streamBroker","getDeviceLiveContribution","query",r),applyDeviceSettingsPatch:r=>m("streamBroker","applyDeviceSettingsPatch","mutation",r)};return{deviceId:i.deviceId,binding:i,state:{audioMetrics:ge(d,i.deviceId,"audio-metrics"),battery:ge(d,i.deviceId,"battery"),brightness:ge(d,i.deviceId,"brightness"),cameraStreams:ge(d,i.deviceId,"camera-streams"),deviceDiscovery:ge(d,i.deviceId,"device-discovery"),deviceStatus:ge(d,i.deviceId,"device-status"),doorbell:ge(d,i.deviceId,"doorbell"),featureProbe:ge(d,i.deviceId,"feature-probe"),motion:ge(d,i.deviceId,"motion"),motionTrigger:ge(d,i.deviceId,"motion-trigger"),ptzAutotrack:ge(d,i.deviceId,"ptz-autotrack"),switch:ge(d,i.deviceId,"switch"),zoneAnalytics:ge(d,i.deviceId,"zone-analytics"),zoneRules:ge(d,i.deviceId,"zone-rules"),zones:ge(d,i.deviceId,"zones")},accessories:D,audioAnalysis:w,audioMetrics:E,battery:q,brightness:Ee,cameraCredentials:We,cameraStreams:Ct,detectionPipeline:st,deviceDiscovery:et,deviceOps:Fi,deviceStatus:Ui,doorbell:Hi,events:Wi,featureProbe:$i,intercom:Gi,motion:Ki,motionDetection:Vi,motionTrigger:Zi,nativeObjectDetection:Yi,osd:Qi,pipelineAnalytics:Ji,ptz:Xi,ptzAutotrack:ea,reboot:n,recording:Le,snapshot:jt,switch:ct,webrtcSession:vn,zoneAnalytics:wt,zoneRules:dt,zones:fc,addonSettings:kc,deviceManager:Ic,deviceState:Ac,networkQuality:Cc,pipelineExecutor:jc,pipelineOrchestrator:wc,pipelineRunner:Pc,recordingEngine:Dc,snapshotProvider:Mc,streamBroker:Tc}}function Tl(e,i,t,s,d){if(t.length===0||i.length===0)return{passed:e,excluded:[]};const z=t.filter(q=>q.enabled!==!1),p=z.filter(q=>q.mode==="include"),l=z.filter(q=>q.mode==="exclude"),m=p.length>0,D=new Map(i.map(q=>[q.id,q])),w=[],E=[];for(const q of e){const Ee=s(q),We=d?.(q),Ct=p.some(et=>aa(et,Ee,We,D)),st=l.some(et=>aa(et,Ee,We,D));m?Ct&&!st?w.push(q):E.push(q):st?E.push(q):w.push(q)}return{passed:w,excluded:E}}function aa(e,i,t,s){if(e.classFilter&&e.classFilter.length>0&&t!==void 0&&!e.classFilter.includes(t))return!1;for(const d of e.zoneIds){const z=s.get(d);if(z&&El(i,z.polygon))return!0}return!1}function El(e,i){if(i.length<3)return!1;let t=!1;const{x:s,y:d}=e;for(let z=0,p=i.length-1;z<i.length;p=z++){const l=i[z],m=i[p];l.y>d!=m.y>d&&s<(m.x-l.x)*(d-l.y)/(m.y-l.y||Number.EPSILON)+l.x&&(t=!t)}return t}function Rl(e){const i=e;function t(n,Le,jt,ct,vn){const wt=i[n]?.[Le];if(!wt)throw new Error(`SystemProxy: api has no '${n}.${Le}'`);const dt=wt;return jt==="mutation"?dt.mutate(ct):jt==="subscription"?dt.subscribe(ct,vn):dt.query(ct)}return{addonPages:{listPages:n=>t("addonPages","listPages","query",n)},addons:{list:n=>t("addons","list","query",n),getLogs:n=>t("addons","getLogs","query",n),listPackages:n=>t("addons","listPackages","query",n),installPackage:n=>t("addons","installPackage","mutation",n),installFromWorkspace:n=>t("addons","installFromWorkspace","mutation",n),isWorkspaceAvailable:n=>t("addons","isWorkspaceAvailable","query",n),listWorkspacePackages:n=>t("addons","listWorkspacePackages","query",n),uninstallPackage:n=>t("addons","uninstallPackage","mutation",n),reloadPackages:n=>t("addons","reloadPackages","mutation",n),searchAvailable:n=>t("addons","searchAvailable","query",n),listUpdates:n=>t("addons","listUpdates","query",n),updatePackage:n=>t("addons","updatePackage","mutation",n),forceRefresh:n=>t("addons","forceRefresh","mutation",n),restartServer:n=>t("addons","restartServer","mutation",n),getVersions:n=>t("addons","getVersions","query",n),restartAddon:n=>t("addons","restartAddon","mutation",n),getAutoUpdateSettings:n=>t("addons","getAutoUpdateSettings","query",n),setAutoUpdateSettings:n=>t("addons","setAutoUpdateSettings","mutation",n),getAddonAutoUpdate:n=>t("addons","getAddonAutoUpdate","query",n),setAddonAutoUpdate:n=>t("addons","setAddonAutoUpdate","mutation",n),applyAutoUpdateToAll:n=>t("addons","applyAutoUpdateToAll","mutation",n),custom:n=>t("addons","custom","mutation",n),onAddonLogs:(n,Le)=>t("addons","onAddonLogs","subscription",n,Le)},addonSettings:{getGlobalSettings:n=>t("addonSettings","getGlobalSettings","query",n),updateGlobalSettings:n=>t("addonSettings","updateGlobalSettings","mutation",n)},addonWidgets:{listWidgets:n=>t("addonWidgets","listWidgets","query",n)},alerts:{emit:n=>t("alerts","emit","mutation",n),update:n=>t("alerts","update","mutation",n),list:n=>t("alerts","list","query",n),getUnreadCount:n=>t("alerts","getUnreadCount","query",n),markRead:n=>t("alerts","markRead","mutation",n),markAllRead:n=>t("alerts","markAllRead","mutation",n),dismiss:n=>t("alerts","dismiss","mutation",n)},audioAnalyzer:{analyseChunk:n=>t("audioAnalyzer","analyseChunk","mutation",n),classify:n=>t("audioAnalyzer","classify","query",n),isReady:n=>t("audioAnalyzer","isReady","query",n),dispose:n=>t("audioAnalyzer","dispose","mutation",n),reprobeAudioEngine:n=>t("audioAnalyzer","reprobeAudioEngine","mutation",n)},audioCodec:{listSupportedCodecs:n=>t("audioCodec","listSupportedCodecs","query",n),canHandle:n=>t("audioCodec","canHandle","query",n),createDecodeSession:n=>t("audioCodec","createDecodeSession","mutation",n),createEncodeSession:n=>t("audioCodec","createEncodeSession","mutation",n),closeSession:n=>t("audioCodec","closeSession","mutation",n),pushEncodedFrame:n=>t("audioCodec","pushEncodedFrame","mutation",n),pullPcm:n=>t("audioCodec","pullPcm","query",n),pushPcm:n=>t("audioCodec","pushPcm","mutation",n),pullEncoded:n=>t("audioCodec","pullEncoded","query",n),flushEncode:n=>t("audioCodec","flushEncode","mutation",n),listActiveSessions:n=>t("audioCodec","listActiveSessions","query",n)},backup:{trigger:n=>t("backup","trigger","mutation",n),list:n=>t("backup","list","query",n),restore:n=>t("backup","restore","mutation",n),delete:n=>t("backup","delete","mutation",n)},decoder:{supportsCodec:n=>t("decoder","supportsCodec","query",n),getInfo:n=>t("decoder","getInfo","query",n),createSession:n=>t("decoder","createSession","query",n),destroySession:n=>t("decoder","destroySession","query",n),pushPacket:n=>t("decoder","pushPacket","query",n),openStream:n=>t("decoder","openStream","query",n),pullFrames:n=>t("decoder","pullFrames","query",n),updateConfig:n=>t("decoder","updateConfig","query",n),getStats:n=>t("decoder","getStats","query",n),listActiveSessions:n=>t("decoder","listActiveSessions","query",n),reprobeHwaccel:n=>t("decoder","reprobeHwaccel","mutation",n)},deviceManager:{allocateDeviceId:n=>t("deviceManager","allocateDeviceId","mutation",n),registerDevice:n=>t("deviceManager","registerDevice","mutation",n),removeDevice:n=>t("deviceManager","removeDevice","mutation",n),persistConfig:n=>t("deviceManager","persistConfig","mutation",n),listLocations:n=>t("deviceManager","listLocations","query",n),addLocation:n=>t("deviceManager","addLocation","mutation",n),removeLocation:n=>t("deviceManager","removeLocation","mutation",n),listPersistedByAddon:n=>t("deviceManager","listPersistedByAddon","query",n),listAll:n=>t("deviceManager","listAll","query",n),getChildren:n=>t("deviceManager","getChildren","query",n),listWrappersForCap:n=>t("deviceManager","listWrappersForCap","query",n),listBindableCapsForDeviceType:n=>t("deviceManager","listBindableCapsForDeviceType","query",n),discoverDevices:n=>t("deviceManager","discoverDevices","mutation",n),adoptDevice:n=>t("deviceManager","adoptDevice","mutation",n),getCreationSchema:n=>t("deviceManager","getCreationSchema","query",n),createDevice:n=>t("deviceManager","createDevice","mutation",n),testCreationField:n=>t("deviceManager","testCreationField","mutation",n)},deviceProvider:{start:n=>t("deviceProvider","start","mutation",n),stop:n=>t("deviceProvider","stop","mutation",n),getStatus:n=>t("deviceProvider","getStatus","query",n),getDevices:n=>t("deviceProvider","getDevices","query",n),supportsDiscovery:n=>t("deviceProvider","supportsDiscovery","query",n),discoverDevices:n=>t("deviceProvider","discoverDevices","mutation",n),adoptDiscoveredDevice:n=>t("deviceProvider","adoptDiscoveredDevice","mutation",n),supportsManualCreation:n=>t("deviceProvider","supportsManualCreation","query",n),getChildCreationSchema:n=>t("deviceProvider","getChildCreationSchema","query",n),createDevice:n=>t("deviceProvider","createDevice","mutation",n),testCreationField:n=>t("deviceProvider","testCreationField","mutation",n)},deviceState:{getAllSnapshots:n=>t("deviceState","getAllSnapshots","query",n)},integrations:{list:n=>t("integrations","list","query",n),get:n=>t("integrations","get","query",n),getByAddonId:n=>t("integrations","getByAddonId","query",n),create:n=>t("integrations","create","mutation",n),update:n=>t("integrations","update","mutation",n),delete:n=>t("integrations","delete","mutation",n),getSettings:n=>t("integrations","getSettings","query",n),setSettings:n=>t("integrations","setSettings","mutation",n),getAvailableTypes:n=>t("integrations","getAvailableTypes","query",n),testConnection:n=>t("integrations","testConnection","mutation",n)},metricsProvider:{collectSnapshot:n=>t("metricsProvider","collectSnapshot","query",n),getCached:n=>t("metricsProvider","getCached","query",n),getCurrent:n=>t("metricsProvider","getCurrent","query",n),getDiskSpace:n=>t("metricsProvider","getDiskSpace","query",n),getGpuInfo:n=>t("metricsProvider","getGpuInfo","query",n),getCpuTemperature:n=>t("metricsProvider","getCpuTemperature","query",n),getProcessStats:n=>t("metricsProvider","getProcessStats","query",n),listAddonInstances:n=>t("metricsProvider","listAddonInstances","query",n),getAddonStats:n=>t("metricsProvider","getAddonStats","query",n),listNodeProcesses:n=>t("metricsProvider","listNodeProcesses","query",n),killProcess:n=>t("metricsProvider","killProcess","mutation",n)},networkQuality:{getAllStats:n=>t("networkQuality","getAllStats","query",n)},nodes:{topology:n=>t("nodes","topology","query",n),deployAddon:n=>t("nodes","deployAddon","mutation",n),undeployAddon:n=>t("nodes","undeployAddon","mutation",n),restartAddon:n=>t("nodes","restartAddon","mutation",n),restartProcess:n=>t("nodes","restartProcess","mutation",n),restartNode:n=>t("nodes","restartNode","mutation",n),shutdownNode:n=>t("nodes","shutdownNode","mutation",n),renameNode:n=>t("nodes","renameNode","mutation",n),clusterAddonStatus:n=>t("nodes","clusterAddonStatus","query",n),setProcessLogLevel:n=>t("nodes","setProcessLogLevel","mutation",n),executeQuery:n=>t("nodes","executeQuery","mutation",n)},notificationOutput:{send:n=>t("notificationOutput","send","mutation",n),sendTest:n=>t("notificationOutput","sendTest","mutation",n)},pipelineExecutor:{getAvailableEngines:n=>t("pipelineExecutor","getAvailableEngines","query",n),getSelectedEngine:n=>t("pipelineExecutor","getSelectedEngine","query",n),getDefaultSteps:n=>t("pipelineExecutor","getDefaultSteps","query",n),reprobeEngine:n=>t("pipelineExecutor","reprobeEngine","mutation",n),getVideoPipelineSteps:n=>t("pipelineExecutor","getVideoPipelineSteps","query",n),setVideoPipelineSteps:n=>t("pipelineExecutor","setVideoPipelineSteps","mutation",n),getSchema:n=>t("pipelineExecutor","getSchema","query",n),getGlobalSteps:n=>t("pipelineExecutor","getGlobalSteps","query",n),getGlobalPipelineConfig:n=>t("pipelineExecutor","getGlobalPipelineConfig","query",n),getOrchestratorConfigSchema:n=>t("pipelineExecutor","getOrchestratorConfigSchema","query",n),listTemplates:n=>t("pipelineExecutor","listTemplates","query",n),saveTemplate:n=>t("pipelineExecutor","saveTemplate","mutation",n),updateTemplate:n=>t("pipelineExecutor","updateTemplate","mutation",n),deleteTemplate:n=>t("pipelineExecutor","deleteTemplate","mutation",n),getCapabilities:n=>t("pipelineExecutor","getCapabilities","query",n),getAddonModels:n=>t("pipelineExecutor","getAddonModels","query",n),downloadModel:n=>t("pipelineExecutor","downloadModel","mutation",n),deleteModel:n=>t("pipelineExecutor","deleteModel","mutation",n),detect:n=>t("pipelineExecutor","detect","query",n),cacheFrameInPool:n=>t("pipelineExecutor","cacheFrameInPool","mutation",n),inferCached:n=>t("pipelineExecutor","inferCached","mutation",n),uncacheFrame:n=>t("pipelineExecutor","uncacheFrame","mutation",n),getEffectiveTuning:n=>t("pipelineExecutor","getEffectiveTuning","query",n),listLoadedEngines:n=>t("pipelineExecutor","listLoadedEngines","query",n),spinEngine:n=>t("pipelineExecutor","spinEngine","mutation",n),killEngine:n=>t("pipelineExecutor","killEngine","mutation",n),listReferenceImages:n=>t("pipelineExecutor","listReferenceImages","query",n),getReferenceImage:n=>t("pipelineExecutor","getReferenceImage","query",n),getReferenceAudioFiles:n=>t("pipelineExecutor","getReferenceAudioFiles","query",n),getReferenceAudio:n=>t("pipelineExecutor","getReferenceAudio","query",n),getAudioCapabilities:n=>t("pipelineExecutor","getAudioCapabilities","query",n),runAudioTest:n=>t("pipelineExecutor","runAudioTest","mutation",n),getDetectionConfigSchema:n=>t("pipelineExecutor","getDetectionConfigSchema","query",n)},pipelineOrchestrator:{rebalance:n=>t("pipelineOrchestrator","rebalance","mutation",n),getPipelineAssignments:n=>t("pipelineOrchestrator","getPipelineAssignments","query",n),getAgentLoad:n=>t("pipelineOrchestrator","getAgentLoad","query",n),getGlobalMetrics:n=>t("pipelineOrchestrator","getGlobalMetrics","query",n),getCapabilityBindings:n=>t("pipelineOrchestrator","getCapabilityBindings","query",n),setCapabilityBinding:n=>t("pipelineOrchestrator","setCapabilityBinding","mutation",n),getDecoderAssignments:n=>t("pipelineOrchestrator","getDecoderAssignments","query",n),getAudioNodeLoad:n=>t("pipelineOrchestrator","getAudioNodeLoad","query",n),getAgentSettings:n=>t("pipelineOrchestrator","getAgentSettings","query",n),listAgentSettings:n=>t("pipelineOrchestrator","listAgentSettings","query",n),setAgentAddonDefaults:n=>t("pipelineOrchestrator","setAgentAddonDefaults","mutation",n),removeAgentSettings:n=>t("pipelineOrchestrator","removeAgentSettings","mutation",n),listTemplates:n=>t("pipelineOrchestrator","listTemplates","query",n),saveTemplate:n=>t("pipelineOrchestrator","saveTemplate","mutation",n),updateTemplate:n=>t("pipelineOrchestrator","updateTemplate","mutation",n),deleteTemplate:n=>t("pipelineOrchestrator","deleteTemplate","mutation",n)},pipelineRunner:{attachCamera:n=>t("pipelineRunner","attachCamera","mutation",n),reportMotion:n=>t("pipelineRunner","reportMotion","mutation",n),getLocalLoad:n=>t("pipelineRunner","getLocalLoad","query",n),getLocalMetrics:n=>t("pipelineRunner","getLocalMetrics","query",n),getAllCameraMetrics:n=>t("pipelineRunner","getAllCameraMetrics","query",n),getLocalCameras:n=>t("pipelineRunner","getLocalCameras","query",n)},platformProbe:{getCapabilities:n=>t("platformProbe","getCapabilities","query",n),getHardware:n=>t("platformProbe","getHardware","query",n),resolveInferenceConfig:n=>t("platformProbe","resolveInferenceConfig","query",n),resolveHwAccel:n=>t("platformProbe","resolveHwAccel","query",n)},recordingEngine:{getStatus:n=>t("recordingEngine","getStatus","query",n),enable:n=>t("recordingEngine","enable","mutation",n),disable:n=>t("recordingEngine","disable","mutation",n),getConfig:n=>t("recordingEngine","getConfig","query",n),updateConfig:n=>t("recordingEngine","updateConfig","mutation",n),getPlaylist:n=>t("recordingEngine","getPlaylist","query",n),getThumbnail:n=>t("recordingEngine","getThumbnail","query",n),getSegments:n=>t("recordingEngine","getSegments","query",n),getAvailability:n=>t("recordingEngine","getAvailability","query",n),estimateStorage:n=>t("recordingEngine","estimateStorage","query",n),estimateGlobalStorage:n=>t("recordingEngine","estimateGlobalStorage","query",n),getStorageUsage:n=>t("recordingEngine","getStorageUsage","query",n),setPolicy:n=>t("recordingEngine","setPolicy","mutation",n),getPolicy:n=>t("recordingEngine","getPolicy","query",n),getRetentionConfig:n=>t("recordingEngine","getRetentionConfig","query",n),updateRetentionConfig:n=>t("recordingEngine","updateRetentionConfig","mutation",n),getMotionStats:n=>t("recordingEngine","getMotionStats","query",n)},settingsStore:{get:n=>t("settingsStore","get","query",n),set:n=>t("settingsStore","set","mutation",n),query:n=>t("settingsStore","query","query",n),insert:n=>t("settingsStore","insert","mutation",n),update:n=>t("settingsStore","update","mutation",n),delete:n=>t("settingsStore","delete","mutation",n),count:n=>t("settingsStore","count","query",n),isEmpty:n=>t("settingsStore","isEmpty","query",n),declareCollection:n=>t("settingsStore","declareCollection","mutation",n)},storage:{resolve:n=>t("storage","resolve","query",n),write:n=>t("storage","write","mutation",n),read:n=>t("storage","read","query",n),exists:n=>t("storage","exists","query",n),list:n=>t("storage","list","query",n),delete:n=>t("storage","delete","mutation",n),getAvailableSpace:n=>t("storage","getAvailableSpace","query",n)},streamBroker:{listAllCameraStreams:n=>t("streamBroker","listAllCameraStreams","query",n),listAllProfileSlots:n=>t("streamBroker","listAllProfileSlots","query",n),getBrokerStats:n=>t("streamBroker","getBrokerStats","query",n),listClients:n=>t("streamBroker","listClients","query",n),killClient:n=>t("streamBroker","killClient","mutation",n),getStreamUrl:n=>t("streamBroker","getStreamUrl","query",n),getBroker:n=>t("streamBroker","getBroker","query",n),setPreBufferDuration:n=>t("streamBroker","setPreBufferDuration","mutation",n),getPreBufferInfo:n=>t("streamBroker","getPreBufferInfo","query",n),getRtspPort:n=>t("streamBroker","getRtspPort","query",n),getAllRtspEntries:n=>t("streamBroker","getAllRtspEntries","query",n),getRtspEntry:n=>t("streamBroker","getRtspEntry","query",n),regenerateRtspToken:n=>t("streamBroker","regenerateRtspToken","mutation",n),setRtspEnabled:n=>t("streamBroker","setRtspEnabled","mutation",n),isRtspEnabled:n=>t("streamBroker","isRtspEnabled","query",n)},system:{info:n=>t("system","info","query",n),health:n=>t("system","health","query",n),featureFlags:n=>t("system","featureFlags","query",n),networkAddresses:n=>t("system","networkAddresses","query",n),getRetentionConfig:n=>t("system","getRetentionConfig","query",n),setRetentionConfig:n=>t("system","setRetentionConfig","mutation",n),forceRetentionCleanup:n=>t("system","forceRetentionCleanup","mutation",n)},toast:{onToast:(n,Le)=>t("toast","onToast","subscription",n,Le)},turnProvider:{getTurnServers:n=>t("turnProvider","getTurnServers","query",n)},userManagement:{listUsers:n=>t("userManagement","listUsers","query",n),createUser:n=>t("userManagement","createUser","mutation",n),updateUser:n=>t("userManagement","updateUser","mutation",n),deleteUser:n=>t("userManagement","deleteUser","mutation",n),resetPassword:n=>t("userManagement","resetPassword","mutation",n),validateCredentials:n=>t("userManagement","validateCredentials","mutation",n),listApiKeys:n=>t("userManagement","listApiKeys","query",n),createApiKey:n=>t("userManagement","createApiKey","mutation",n),revokeApiKey:n=>t("userManagement","revokeApiKey","mutation",n),validateApiKey:n=>t("userManagement","validateApiKey","mutation",n),createScopedToken:n=>t("userManagement","createScopedToken","mutation",n),revokeScopedToken:n=>t("userManagement","revokeScopedToken","mutation",n),validateScopedToken:n=>t("userManagement","validateScopedToken","query",n),listScopedTokens:n=>t("userManagement","listScopedTokens","query",n)}}}var _l="device.state-changed",ql="capability.binding-changed",Ol="device.registered",Bl="device.unregistered",xl="device.updated",Nl=class{constructor(e){this.api=e,this.stateSource=Br(this.stateMirror,this.handleListeners,this.api)}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(e=15e3){if(!this.initialized){if(this.initPromise)return this.initPromise;this.initPromise=(async()=>{const i=(z,p)=>Number.isFinite(e)?new Promise((l,m)=>{const D=setTimeout(()=>m(new Error(`SystemMirror.init: '${p}' timed out after ${e}ms`)),e);z.then(w=>{clearTimeout(D),l(w)},w=>{clearTimeout(D),m(w)})}):z,[t,s,d]=await Promise.all([i(this.api.deviceManager.getAllBindings.query({}),"deviceManager.getAllBindings"),i(this.api.deviceState.getAllSnapshots.query({}),"deviceState.getAllSnapshots"),i(this.api.deviceManager.listAll.query({}),"deviceManager.listAll")]);for(const z of t)this.bindings.set(z.deviceId,z);for(const[z,p]of Object.entries(s)){const l=Number(z);if(!Number.isFinite(l))continue;const m=new Map;for(const[D,w]of Object.entries(p))m.set(D,w);this.stateMirror.set(l,m)}for(const z of d)this.devices.set(z.id,z);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 e of this.bridges)try{e.unsubscribe()}catch{}this.bridges=[],this.handleListeners.clear(),this.globalStateListeners.clear(),this.capListeners.clear(),this.deviceListeners.clear(),this.addedListeners.clear(),this.removedListeners.clear(),this.pendingWaits.clear(),this.initialized=!1}getDeviceById(e){const i=this.bindings.get(e);return i?xr(this.api,i,{stateSource:this.stateSource}):null}getDeviceByName(e){for(const i of this.devices.values())if(i.name===e)return this.getDeviceById(i.id);return null}getDeviceByStableId(e){for(const i of this.devices.values())if(i.stableId===e)return this.getDeviceById(i.id);return null}getDevicesByAddon(e){return this.query({addonId:e})}getDevicesByType(e){return this.query({type:e})}getDeviceInfo(e){return this.devices.get(e)??null}getAllDevices(){const e=[];for(const i of this.bindings.keys()){const t=this.getDeviceById(i);t&&e.push(t)}return e}filterByCap(e){return this.query({caps:e})}query(e={}){const i=[];for(const[t,s]of this.bindings){const d=this.devices.get(t);if(e.id!==void 0&&!Dt(t,e.id)||e.stableId!==void 0&&(!d||!Dt(d.stableId,e.stableId))||e.addonId!==void 0&&(!d||!Dt(d.addonId,e.addonId))||e.type!==void 0&&(!d||!Dt(d.type,e.type)))continue;if(e.caps!==void 0){const p=In(e.caps),l=new Set(s.entries.map(m=>m.capName));if(!p.every(m=>l.has(m)))continue}if(e.anyCap!==void 0){const p=In(e.anyCap),l=new Set(s.entries.map(m=>m.capName));if(!p.some(m=>l.has(m)))continue}if(e.name!==void 0&&(!d||!Ll(d.name,e.name))||e.online!==void 0&&(!d||d.online!==e.online))continue;if(e.parentDeviceId!==void 0){if(!d)continue;const p=e.parentDeviceId;if((d.parentDeviceId??null)!==p)continue}if(e.feature!==void 0&&(!d||!In(e.feature).every(l=>d.features.includes(l)))||e.isCamera!==void 0&&(!d||d.isCamera!==e.isCamera))continue;const z=this.getDeviceById(t);if(z){if(e.where&&d){if(!e.where(d,z))continue}else if(e.where&&!d)continue;i.push(z)}}return i}whereState(e,i){const t=[];for(const[s,d]of this.stateMirror){const z=d.get(e);if(!z||!i(z,s))continue;const p=this.getDeviceById(s);p&&t.push(p)}return t}mapState(e,i){const t=[];for(const[s,d]of this.stateMirror){const z=d.get(e);z&&t.push(i(z,s))}return t}findState(e,i){for(const[t,s]of this.stateMirror){const d=s.get(e);if(d&&i(d,t))return this.getDeviceById(t)}return null}countByCap(e){let i=0;for(const t of this.bindings.values())t.entries.some(s=>s.capName===e)&&i++;return i}countByState(e,i){let t=0;for(const[s,d]of this.stateMirror){const z=d.get(e);z&&i(z,s)&&t++}return t}listen(e){return this.globalStateListeners.add(e),()=>{this.globalStateListeners.delete(e)}}listenCap(e,i){let t=this.capListeners.get(e);return t||(t=new Set,this.capListeners.set(e,t)),t.add(i),()=>{t.delete(i),t.size===0&&this.capListeners.delete(e)}}listenDevice(e,i){let t=this.deviceListeners.get(e);return t||(t=new Set,this.deviceListeners.set(e,t)),t.add(i),()=>{t.delete(i),t.size===0&&this.deviceListeners.delete(e)}}onDeviceAdded(e){return this.addedListeners.add(e),()=>{this.addedListeners.delete(e)}}onDeviceRemoved(e){return this.removedListeners.add(e),()=>{this.removedListeners.delete(e)}}waitForState(e,i,t,s=3e4){return new Promise((d,z)=>{const l=(()=>{const w=this.stateMirror.get(e)?.get(i);return w&&t(w)?w:null})();if(l){d(l);return}let m=null;const D=this.listenDevice(e,(w,E,q)=>{E===i&&q&&t(q)&&(m&&clearTimeout(m),D(),d(q))});Number.isFinite(s)&&(m=setTimeout(()=>{D(),z(new Error(`waitForState timed out after ${s}ms (deviceId=${e}, capName=${i})`))},s))})}waitForDevice(e,i=3e4){return new Promise((t,s)=>{const d=this.getDeviceById(e);if(d){t(d);return}let z=null;const p=this.onDeviceAdded(l=>{if(l!==e)return;const m=this.getDeviceById(l);m&&(z&&clearTimeout(z),p(),t(m))});Number.isFinite(i)&&(z=setTimeout(()=>{p(),s(new Error(`waitForDevice timed out after ${i}ms (deviceId=${e})`))},i))})}async forEachCap(e,i){for(const t of this.filterByCap(e))await i(t)}async invokeCap(e,i,t,s={}){const d=this.filterByCap(e),z=Math.max(1,s.parallelism??d.length),p=[];for(let l=0;l<d.length;l+=z){const m=d.slice(l,l+z),D=await Promise.allSettled(m.map(async w=>{const E=w[e];if(!E||typeof E[i]!="function")throw new Error(`device '${w.deviceId}' does not expose '${e}.${i}'`);return await E[i](t)}));for(let w=0;w<D.length;w++){const E=m[w],q=D[w];q.status==="fulfilled"?p.push({deviceId:E.deviceId,ok:!0,result:q.value}):p.push({deviceId:E.deviceId,ok:!1,error:q.reason})}}return p}summary(){const e={},i={},t={};let s=0,d=0;for(const z of this.bindings.values())for(const p of z.entries)e[p.capName]=(e[p.capName]??0)+1;for(const z of this.devices.values())i[z.addonId]=(i[z.addonId]??0)+1,t[z.type]=(t[z.type]??0)+1,z.online?s++:d++;return{totalDevices:this.bindings.size,online:s,offline:d,byCap:e,byAddon:i,byType:t,statedDevices:this.stateMirror.size}}dump(e){const i=s=>{const d=this.devices.get(s)??null,z=this.bindings.get(s)??null,p={},l=this.stateMirror.get(s);if(l)for(const[m,D]of l)p[m]={...D};return{deviceId:s,info:d,binding:z?{...z,entries:z.entries.map(m=>({...m}))}:null,state:p}};if(e!==void 0)return i(e);const t=[];for(const s of this.bindings.keys())t.push(i(s));return t}getRawMirror(){return this.stateMirror}getSystemState(){const e=new Map;for(const[i,t]of this.stateMirror){const s=new Map;for(const[d,z]of t)s.set(d,{...z});e.set(i,s)}return e}subscribeBus(){if(!this.api.live?.onEvent)return;const e=this.api.live.onEvent;this.bridges.push(e.subscribe({category:_l},{onData:i=>{const t=i.data;!t||typeof t.deviceId!="number"||typeof t.capName!="string"||this.applyStateUpdate(t.deviceId,t.capName,t.slice)}})),this.bridges.push(e.subscribe({category:ql},{onData:i=>{const t=i.data,s=typeof t?.deviceId=="number"?t.deviceId:t?.source?.type==="device"&&typeof t.source.id=="number"?t.source.id:null;s!==null&&this.refreshBinding(s)}})),this.bridges.push(e.subscribe({category:Ol},{onData:i=>{const t=i.data;typeof t?.deviceId=="number"&&this.refreshDeviceMetadata(t.deviceId,"added")}})),this.bridges.push(e.subscribe({category:Bl},{onData:i=>{const t=i.data;typeof t?.deviceId=="number"&&this.applyDeviceRemoval(t.deviceId)}})),this.bridges.push(e.subscribe({category:xl},{onData:i=>{const t=i.data;typeof t?.deviceId=="number"&&this.refreshDeviceMetadata(t.deviceId,"updated")}}))}applyStateUpdate(e,i,t){let s=this.stateMirror.get(e);s||(s=new Map,this.stateMirror.set(e,s)),t===void 0?s.delete(i):s.set(i,t);const d=`${e}:${i}`,z=this.handleListeners.get(d);if(z)for(const m of z)try{m(t)}catch{}for(const m of this.globalStateListeners)try{m(e,i,t)}catch{}const p=this.capListeners.get(i);if(p)for(const m of p)try{m(e,t)}catch{}const l=this.deviceListeners.get(e);if(l)for(const m of l)try{m(e,i,t)}catch{}}applyDeviceRemoval(e){const i=this.devices.get(e)??null;this.bindings.delete(e),this.devices.delete(e),this.stateMirror.delete(e);for(const t of this.removedListeners)try{t(e,i)}catch{}}async refreshBinding(e){try{const t=(await this.api.deviceManager.getAllBindings.query({})).find(s=>s.deviceId===e);t?this.bindings.set(e,t):this.applyDeviceRemoval(e)}catch{}}async refreshDeviceMetadata(e,i){try{const s=(await this.api.deviceManager.listAll.query({})).find(z=>z.id===e);if(!s)return;const d=!this.devices.has(e);if(this.devices.set(e,s),i==="added"&&d){await this.refreshBinding(e);for(const z of this.addedListeners)try{z(e,s)}catch{}}}catch{}}};function Dt(e,i){return Array.isArray(i)?i.includes(e):e===i}function In(e){return Array.isArray(e)?e:[e]}function Ll(e,i){return typeof i=="string"?e===i:i instanceof RegExp?i.test(e):"exact"in i?e===i.exact:"contains"in i?e.toLowerCase().includes(i.contains.toLowerCase()):!1}function Fl(e){return e}function Ul(e,i,t){return{input:e,output:i,kind:t?.kind??"query",auth:t?.auth??"protected",scope:t?.scope??{kind:"system"}}}var M=require("zod"),Nr=M.z.object({id:M.z.string(),label:M.z.string(),icon:M.z.string(),order:M.z.number().optional()}),Lr=M.z.object({id:M.z.string(),title:M.z.string(),description:M.z.string().optional(),style:M.z.enum(["card","accordion"]).optional(),defaultCollapsed:M.z.boolean().optional(),columns:M.z.union([M.z.literal(1),M.z.literal(2),M.z.literal(3),M.z.literal(4)]).optional(),tab:M.z.string().optional(),location:M.z.enum(["settings","top-tab"]).optional(),order:M.z.number().optional(),fields:M.z.array(M.z.any())}),Ye=M.z.object({tabs:M.z.array(Nr).optional(),sections:M.z.array(Lr)}),Fn=M.z.record(M.z.string(),M.z.unknown()),Un=M.z.object({success:M.z.literal(!0)}),Fr={name:"addon-settings",scope:"system",mode:"singleton",nodeIdMode:"data",methods:{getGlobalSettings:a(M.z.object({addonId:M.z.string(),nodeId:M.z.string().optional(),overlay:M.z.record(M.z.string(),M.z.unknown()).optional()}),Ye.nullable()),updateGlobalSettings:a(M.z.object({addonId:M.z.string(),nodeId:M.z.string().optional(),patch:Fn}),Un,{kind:"mutation",auth:"admin"}),getDeviceSettings:a(M.z.object({addonId:M.z.string(),deviceId:M.z.number(),nodeId:M.z.string().optional()}),Ye.nullable()),updateDeviceSettings:a(M.z.object({addonId:M.z.string(),deviceId:M.z.number(),nodeId:M.z.string().optional(),patch:Fn}),Un,{kind:"mutation",auth:"admin"})}},F=require("zod"),Ur=F.z.enum(["info","success","warning","error"]),Hr=F.z.enum(["active","in-progress","completed","failed","dismissed"]),Wr=F.z.object({type:F.z.string(),id:F.z.string()}),Lt=F.z.object({id:F.z.string(),category:F.z.string(),severity:Ur,title:F.z.string(),message:F.z.string(),status:Hr,progress:F.z.number().optional(),read:F.z.boolean(),createdAt:F.z.number(),updatedAt:F.z.number(),source:Wr.optional(),metadata:F.z.record(F.z.string(),F.z.unknown()).optional()}),$r={name:"alerts",scope:"system",mode:"singleton",methods:{emit:a(Lt,F.z.void(),{kind:"mutation"}),update:a(F.z.object({alertId:F.z.string(),patch:Lt.partial()}),F.z.void(),{kind:"mutation"}),list:a(F.z.object({unreadOnly:F.z.boolean().optional(),limit:F.z.number().optional()}).optional(),F.z.array(Lt).readonly()),getUnreadCount:a(F.z.void(),F.z.number()),markRead:a(F.z.object({alertId:F.z.string()}),F.z.void(),{kind:"mutation"}),markAllRead:a(F.z.void(),F.z.void(),{kind:"mutation"}),dismiss:a(F.z.object({alertId:F.z.string()}),F.z.void(),{kind:"mutation"})}},ne=require("zod"),Fe=ne.z.enum(["data","media","recordings","models","cache","logs","addons-data"]),Gr={name:"storage",scope:"system",mode:"collection",methods:{resolve:a(ne.z.object({location:Fe,relativePath:ne.z.string()}),ne.z.string()),write:a(ne.z.object({location:Fe,relativePath:ne.z.string()}),ne.z.void(),{kind:"mutation"}),read:a(ne.z.object({location:Fe,relativePath:ne.z.string()}),ne.z.instanceof(Uint8Array)),exists:a(ne.z.object({location:Fe,relativePath:ne.z.string()}),ne.z.boolean()),list:a(ne.z.object({location:Fe,prefix:ne.z.string().optional()}),ne.z.array(ne.z.string()).readonly()),delete:a(ne.z.object({location:Fe,relativePath:ne.z.string()}),ne.z.void(),{kind:"mutation"}),getAvailableSpace:a(ne.z.object({location:Fe}),ne.z.number().nullable())}},ce=require("zod"),ra=ce.z.object({id:ce.z.string(),label:ce.z.string().optional(),createdAt:ce.z.number(),sizeBytes:ce.z.number(),locations:ce.z.array(ce.z.string()).optional()}),Kr={name:"backup",scope:"system",mode:"singleton",methods:{trigger:a(ce.z.object({locations:ce.z.array(ce.z.string()).optional(),label:ce.z.string().optional()}).optional(),ra,{kind:"mutation",auth:"superAdmin"}),list:a(ce.z.void(),ce.z.array(ra).readonly(),{auth:"superAdmin"}),restore:a(ce.z.object({backupId:ce.z.string()}),ce.z.void(),{kind:"mutation",auth:"superAdmin"}),delete:a(ce.z.object({backupId:ce.z.string()}),ce.z.void(),{kind:"mutation",auth:"superAdmin"})}},C=require("zod"),Hn=C.z.object({where:C.z.record(C.z.string(),C.z.unknown()).optional(),whereIn:C.z.record(C.z.string(),C.z.array(C.z.unknown())).optional(),whereBetween:C.z.record(C.z.string(),C.z.tuple([C.z.unknown(),C.z.unknown()])).optional(),orderBy:C.z.object({field:C.z.string(),direction:C.z.enum(["asc","desc"])}).optional(),limit:C.z.number().optional(),offset:C.z.number().optional()}),Wn=C.z.object({id:C.z.string(),data:C.z.record(C.z.string(),C.z.unknown())}),Vr=C.z.object({name:C.z.string(),type:C.z.enum(["TEXT","INTEGER","REAL","JSON"]),primaryKey:C.z.boolean().optional(),notNull:C.z.boolean().optional(),unique:C.z.boolean().optional()}),Zr=C.z.object({name:C.z.string(),columns:C.z.array(C.z.string()).readonly(),unique:C.z.boolean().optional()}),Yr={name:"settings-store",scope:"system",mode:"singleton",methods:{get:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),key:C.z.string()}),C.z.unknown()),set:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),key:C.z.string(),value:C.z.unknown()}),C.z.void(),{kind:"mutation"}),query:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),filter:Hn.optional()}),C.z.array(Wn).readonly()),insert:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),record:Wn}),C.z.void(),{kind:"mutation"}),update:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),id:C.z.string(),data:C.z.record(C.z.string(),C.z.unknown())}),C.z.void(),{kind:"mutation"}),delete:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),key:C.z.string()}),C.z.void(),{kind:"mutation"}),count:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),filter:Hn.optional()}),C.z.number()),isEmpty:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string()}),C.z.boolean()),declareCollection:a(C.z.object({namespace:C.z.string().optional(),collection:C.z.string(),columns:C.z.array(Vr).readonly(),indexes:C.z.array(Zr).readonly().optional()}),C.z.void(),{kind:"mutation"})}},te=require("zod"),Ri=te.z.enum(["debug","info","warn","error"]),$n=te.z.object({timestamp:te.z.date(),level:Ri,scope:te.z.array(te.z.string()),message:te.z.string(),meta:te.z.record(te.z.string(),te.z.unknown()).optional(),tags:te.z.record(te.z.string(),te.z.string()).optional()}),Qr={name:"log-destination",scope:"system",mode:"collection",internal:!0,methods:{write:a($n,te.z.void(),{kind:"mutation"}),query:a(te.z.object({scope:te.z.array(te.z.string()).optional(),level:Ri.optional(),since:te.z.date().optional(),until:te.z.date().optional(),limit:te.z.number().optional(),tags:te.z.record(te.z.string(),te.z.string()).optional()}),te.z.array($n).readonly())}},Mt=require("zod"),Jr={name:"admin-ui",scope:"system",mode:"singleton",internal:!0,methods:{getStaticDir:a(Mt.z.void(),Mt.z.string()),getVersion:a(Mt.z.void(),Mt.z.string())}},Ie=require("zod"),Hl=Ie.z.object({id:Ie.z.string(),label:Ie.z.string(),icon:Ie.z.string(),path:Ie.z.string(),remoteName:Ie.z.string(),bundle:Ie.z.string()}),Xr=Ie.z.object({addonId:Ie.z.string(),page:Hl,bundleUrl:Ie.z.string()}),eo={name:"addon-pages",scope:"system",mode:"singleton",methods:{listPages:a(Ie.z.void(),Ie.z.array(Xr).readonly())}},Be=require("zod"),to=Be.z.object({id:Be.z.string(),label:Be.z.string(),icon:Be.z.string(),path:Be.z.string(),remoteName:Be.z.string(),bundle:Be.z.string()}),no={name:"addon-pages-source",scope:"system",mode:"collection",internal:!0,methods:{listPages:a(Be.z.void(),Be.z.array(to).readonly())}},rn=require("zod"),ue=require("zod"),io=ue.z.enum(["device-tab","dashboard","integration-detail"]),Gn=ue.z.enum(["xs","sm","md","lg","xl"]),_i=ue.z.object({stableId:ue.z.string(),label:ue.z.string(),description:ue.z.string().optional(),icon:ue.z.string().optional(),remoteName:ue.z.string(),bundle:ue.z.string(),hosts:ue.z.array(io).readonly(),requires:ue.z.object({deviceContext:ue.z.boolean().default(!1),integrationContext:ue.z.boolean().default(!1)}),defaultSize:Gn.default("md"),allowedSizes:ue.z.array(Gn).readonly().default(["sm","md","lg"]),defaultColumns:ue.z.number().int().min(1).max(12).default(6),defaultRows:ue.z.number().int().min(1).max(12).default(1)}),ao={name:"addon-widgets-source",scope:"system",mode:"collection",internal:!0,methods:{listWidgets:a(ue.z.void(),ue.z.array(_i).readonly())}},ro=_i.extend({addonId:rn.z.string(),bundleUrl:rn.z.string()}),oo={name:"addon-widgets",scope:"system",mode:"singleton",methods:{listWidgets:a(rn.z.void(),rn.z.array(ro).readonly())}},vt=require("zod"),Wl=vt.z.object({method:vt.z.enum(["GET","POST","PUT","DELETE","PATCH"]),path:vt.z.string()}),so={name:"addon-routes",scope:"system",mode:"collection",internal:!0,methods:{getRoutes:a(vt.z.void(),vt.z.array(Wl))}},R=require("zod"),$l=[{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)"}],Gl={hwaccel:"auto",probedBestHwaccel:""},co={name:"decoder",scope:"system",mode:"singleton",methods:{supportsCodec:a(R.z.object({codec:R.z.string()}),R.z.boolean()),getInfo:a(R.z.void(),R.z.object({id:R.z.string(),name:R.z.string(),isPullMode:R.z.boolean().optional(),priority:R.z.number().optional()})),createSession:a(Dn,R.z.object({sessionId:R.z.string(),nodeId:R.z.string()})),destroySession:a(R.z.object({sessionId:R.z.string()}),R.z.void()),pushPacket:a(R.z.object({sessionId:R.z.string(),packet:er}),R.z.void()),openStream:a(R.z.object({sessionId:R.z.string(),url:R.z.string()}),R.z.void()),pullFrames:a(R.z.object({sessionId:R.z.string(),maxCount:R.z.number().default(1)}),R.z.array(tr)),updateConfig:a(R.z.object({sessionId:R.z.string(),config:Dn.partial()}),R.z.void()),getStats:a(R.z.object({sessionId:R.z.string()}),Pa),listActiveSessions:a(R.z.void(),R.z.array(R.z.object({sessionId:R.z.string(),codec:R.z.string(),outputFormat:R.z.string(),createdAtMs:R.z.number()})).readonly()),reprobeHwaccel:a(R.z.void(),R.z.object({backend:R.z.string()}),{kind:"mutation",auth:"admin"})}},oe=require("zod"),lo=oe.z.object({streamId:oe.z.string(),label:oe.z.string().optional(),codec:oe.z.string(),type:oe.z.enum(["video","audio"]),sourceUrl:oe.z.string()}),uo=oe.z.object({streamId:oe.z.string(),format:oe.z.string(),value:oe.z.string()}),mo={name:"restreamer",scope:"system",mode:"collection",internal:!0,methods:{registerDevice:a(oe.z.object({deviceId:oe.z.number(),streams:oe.z.array(lo).readonly()}),oe.z.void(),{kind:"mutation"}),unregisterDevice:a(oe.z.object({deviceId:oe.z.number()}),oe.z.void(),{kind:"mutation"}),getExposedResources:a(oe.z.object({deviceId:oe.z.number()}),oe.z.array(uo).readonly())}},L=require("zod"),qi=L.z.object({viewportWidth:L.z.number().int().positive().optional(),viewportHeight:L.z.number().int().positive().optional(),devicePixelRatio:L.z.number().positive().optional(),downlinkMbps:L.z.number().nonnegative().optional(),prefersTier:L.z.string().optional()}).partial(),zo={name:"webrtc",scope:"system",mode:"collection",internal:!0,methods:{handleOffer:a(L.z.object({streamId:L.z.string(),sdpOffer:L.z.string()}),L.z.string(),{kind:"mutation"}),supportsStream:a(L.z.object({streamId:L.z.string()}),L.z.boolean()),registerStream:a(L.z.object({streamId:L.z.string(),codec:L.z.string()}),L.z.void(),{kind:"mutation"}),unregisterStream:a(L.z.object({streamId:L.z.string()}),L.z.void(),{kind:"mutation"}),createSession:a(L.z.object({streamId:L.z.string(),hints:qi.optional()}),L.z.object({sessionId:L.z.string(),sdpOffer:L.z.string()}),{kind:"mutation"}),handleAnswer:a(L.z.object({sessionId:L.z.string(),sdpAnswer:L.z.string()}),L.z.void(),{kind:"mutation"}),closeSession:a(L.z.object({sessionId:L.z.string()}),L.z.void(),{kind:"mutation"}),hasAdaptiveBitrate:a(L.z.object({streamId:L.z.string()}),L.z.boolean())}},_=require("zod"),Oi=_.z.discriminatedUnion("kind",[_.z.object({kind:_.z.literal("adaptive")}),_.z.object({kind:_.z.literal("profile"),profile:Ue}),_.z.object({kind:_.z.literal("cam-stream"),camStreamId:_.z.string().min(1)})]),go=_.z.object({id:_.z.string(),label:_.z.string(),target:Oi,codec:_.z.string().nullable(),resolution:_.z.object({width:_.z.number(),height:_.z.number()}).nullable(),status:_.z.enum(["idle","connecting","streaming","error","stopped"]).nullable(),inputFps:_.z.number().nullable(),decodeFps:_.z.number().nullable(),bitrateKbps:_.z.number().nullable()}),po={name:"webrtc-session",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{listStreams:a(_.z.object({deviceId:_.z.number().int().nonnegative()}),_.z.array(go)),createSession:a(_.z.object({deviceId:_.z.number().int().nonnegative(),target:Oi,hints:qi.optional()}),_.z.object({sessionId:_.z.string(),sdpOffer:_.z.string()}),{kind:"mutation"}),handleAnswer:a(_.z.object({deviceId:_.z.number().int().nonnegative(),sessionId:_.z.string(),sdpAnswer:_.z.string()}),_.z.void(),{kind:"mutation"}),closeSession:a(_.z.object({deviceId:_.z.number().int().nonnegative(),sessionId:_.z.string()}),_.z.void(),{kind:"mutation"}),hasAdaptiveBitrate:a(_.z.object({deviceId:_.z.number().int().nonnegative(),profile:Ue}),_.z.boolean())}},u=require("zod"),Ft=u.z.object({engine:de,steps:u.z.array(Je).readonly(),audio:u.z.object({engine:de,modelId:u.z.string(),enabled:u.z.boolean(),settings:u.z.record(u.z.string(),u.z.unknown()).readonly().optional()}).nullable().optional()}),An=u.z.object({id:u.z.string(),name:u.z.string(),description:u.z.string().optional(),config:Ft,createdAt:u.z.string(),updatedAt:u.z.string()}),bo=u.z.object({enabled:u.z.boolean(),modelId:u.z.string(),settings:u.z.record(u.z.string(),u.z.unknown()).readonly()}),oa=u.z.object({addonDefaults:u.z.record(u.z.string(),bo).readonly()}),ho=u.z.object({steps:u.z.array(Je).readonly(),audio:u.z.object({modelId:u.z.string(),enabled:u.z.boolean()}).nullable()}),Kn=u.z.object({enabled:u.z.boolean().optional(),modelId:u.z.string().optional(),settings:u.z.record(u.z.string(),u.z.unknown()).readonly().optional()}),Kl=u.z.object({pinnedAgentNodeId:u.z.string().optional(),stepToggles:u.z.record(u.z.string(),u.z.boolean()).optional(),stepOverridesByAgent:u.z.record(u.z.string(),u.z.record(u.z.string(),Kn)).optional(),pipelineByAgent:u.z.record(u.z.string(),ho).optional()}),Vn=u.z.object({deviceId:u.z.number(),agentNodeId:u.z.string(),pinned:u.z.boolean(),reason:u.z.enum(["manual","capacity","hardware-affinity","failover","rebalance"]),assignedAt:u.z.number()}),Zn=u.z.object({deviceId:u.z.number(),decoderNodeId:u.z.string(),pinned:u.z.boolean(),reason:u.z.enum(["manual","co-located","capacity","hardware-affinity"])}),vo=u.z.object({nodeId:u.z.string(),online:u.z.boolean(),load:Ii,score:u.z.number()}),yo=u.z.object({totalAgents:u.z.number(),onlineAgents:u.z.number(),totalCameras:u.z.number(),attachedCameras:u.z.number(),activeCameras:u.z.number(),avgInferenceTimeMs:u.z.number(),queueDepth:u.z.number()}),So=u.z.record(u.z.string(),u.z.string()),fo={name:"pipeline-orchestrator",scope:"system",mode:"singleton",exposesDeviceSettings:!0,methods:{assignPipeline:a(u.z.object({deviceId:u.z.number(),agentNodeId:u.z.string()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignPipeline:a(u.z.object({deviceId:u.z.number()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),rebalance:a(u.z.void(),u.z.object({migrated:u.z.number()}),{kind:"mutation",auth:"admin"}),getPipelineAssignments:a(u.z.void(),u.z.array(Vn).readonly()),getPipelineAssignment:a(u.z.object({deviceId:u.z.number()}),Vn.nullable()),getAgentLoad:a(u.z.void(),u.z.array(vo).readonly()),getGlobalMetrics:a(u.z.void(),yo),getCameraMetrics:a(u.z.object({deviceId:u.z.number()}),pn.nullable()),getCapabilityBindings:a(u.z.object({nodeId:u.z.string()}),So),setCapabilityBinding:a(u.z.object({nodeId:u.z.string(),capName:u.z.string(),addonId:u.z.string()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),assignDecoder:a(u.z.object({deviceId:u.z.number(),nodeId:u.z.string()}),u.z.void(),{kind:"mutation",auth:"admin"}),unassignDecoder:a(u.z.object({deviceId:u.z.number()}),u.z.void(),{kind:"mutation",auth:"admin"}),getDecoderAssignments:a(u.z.void(),u.z.array(Zn).readonly()),assignAudio:a(u.z.object({deviceId:u.z.number(),nodeId:u.z.string()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),unassignAudio:a(u.z.object({deviceId:u.z.number()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getAudioAssignment:a(u.z.object({deviceId:u.z.number()}),u.z.object({nodeId:u.z.string(),pinned:u.z.boolean(),assignedAt:u.z.number()}).nullable()),getAudioNodeLoad:a(u.z.void(),u.z.array(u.z.object({nodeId:u.z.string(),deviceCount:u.z.number()}))),getAudioAssignments:a(u.z.void(),u.z.array(u.z.object({deviceId:u.z.number(),nodeId:u.z.string(),pinned:u.z.boolean(),assignedAt:u.z.number()}))),getDecoderAssignment:a(u.z.object({deviceId:u.z.number(),pipelineNodeId:u.z.string().optional()}),Zn),getAgentSettings:a(u.z.object({agentNodeId:u.z.string()}),oa.nullable()),listAgentSettings:a(u.z.void(),u.z.array(u.z.object({nodeId:u.z.string(),settings:oa})).readonly()),setAgentAddonDefaults:a(u.z.object({agentNodeId:u.z.string(),defaults:u.z.record(u.z.string(),bo)}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),removeAgentSettings:a(u.z.object({agentNodeId:u.z.string()}),u.z.object({success:u.z.boolean(),removed:u.z.boolean()}),{kind:"mutation",auth:"admin"}),getCameraSettings:a(u.z.object({deviceId:u.z.number()}),Kl.nullable()),setCameraStepToggle:a(u.z.object({deviceId:u.z.number(),addonId:u.z.string(),enabled:u.z.boolean().nullable()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getCameraStepOverrides:a(u.z.object({deviceId:u.z.number()}),u.z.record(u.z.string(),u.z.record(u.z.string(),Kn)).nullable()),setCameraStepOverride:a(u.z.object({deviceId:u.z.number(),agentNodeId:u.z.string(),addonId:u.z.string(),patch:Kn.nullable()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),setCameraPipelineForAgent:a(u.z.object({deviceId:u.z.number(),agentNodeId:u.z.string(),pipeline:ho.nullable()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"}),resolvePipeline:a(u.z.object({deviceId:u.z.number(),agentNodeId:u.z.string().optional()}),Ft),listTemplates:a(u.z.void(),u.z.array(An).readonly()),saveTemplate:a(u.z.object({name:u.z.string(),description:u.z.string().optional(),config:Ft}),An,{kind:"mutation",auth:"admin"}),updateTemplate:a(u.z.object({id:u.z.string(),name:u.z.string().optional(),description:u.z.string().optional(),config:Ft.optional()}),An,{kind:"mutation",auth:"admin"}),deleteTemplate:a(u.z.object({id:u.z.string()}),u.z.object({success:u.z.literal(!0)}),{kind:"mutation",auth:"admin"})}},re=require("zod"),ko=re.z.object({level:gr,classification:re.z.object({labels:re.z.array(Qt).readonly(),inferenceMs:re.z.number()}).optional(),timestamp:re.z.number()}),Io=re.z.object({minConfidence:re.z.number().min(0).max(1).default(.3),allowedClasses:re.z.array(re.z.string()).default([])}),Ao=re.z.object({labels:re.z.array(Qt).readonly(),rawLabels:re.z.array(Qt).readonly().optional(),inferenceMs:re.z.number()}),Vl=[{value:"auto",label:"Auto (platform default)"},{value:"apple-soundanalysis",label:"Apple SoundAnalysis (macOS 12+)"},{value:"yamnet-onnx",label:"YAMNet ONNX (cross-platform)"}],Zl={audioBackend:"auto",probedBestAudioBackend:"",selectedAudioModel:""},Co={name:"audio-analyzer",scope:"system",mode:"singleton",methods:{analyseChunk:a(re.z.object({chunk:_n,settings:Io}),ko.nullable(),{kind:"mutation"}),classify:a(_n,Ao,{timeoutMs:3e4}),isReady:a(re.z.void(),re.z.boolean()),dispose:a(re.z.void(),re.z.void(),{kind:"mutation"}),reprobeAudioEngine:a(re.z.void(),re.z.object({backend:re.z.string()}),{kind:"mutation",auth:"admin"})}},Ge=require("zod"),jo={name:"audio-analysis",scope:"device",mode:"singleton",deviceTypes:["camera"],exposesDeviceSettings:!0,methods:{resolveDeviceSettings:a(Ge.z.object({deviceId:Ge.z.number()}),Ge.z.custom())},events:{onAudioLevel:He(Ge.z.object({deviceId:Ge.z.number(),rms:Ge.z.number(),dbfs:Ge.z.number()}))}},f=require("zod"),It=f.z.enum(["f32le","s16le"]),wo=f.z.object({codec:f.z.string(),canDecode:f.z.boolean(),canEncode:f.z.boolean(),label:f.z.string().optional()}),Po=f.z.object({codec:f.z.string(),sourceSampleRate:f.z.number().int().positive(),sourceChannels:f.z.number().int().positive(),extraData:f.z.instanceof(Uint8Array).optional(),targetSampleRate:f.z.number().int().positive(),targetChannels:f.z.number().int().positive(),targetFormat:It.optional(),idleMs:f.z.number().int().positive().optional(),tag:f.z.string().optional()}),Do=f.z.object({codec:f.z.string(),sourceSampleRate:f.z.number().int().positive(),sourceChannels:f.z.number().int().positive(),sourceFormat:It.optional(),targetSampleRate:f.z.number().int().positive(),targetChannels:f.z.number().int().positive(),bitrateKbps:f.z.number().int().positive().optional(),idleMs:f.z.number().int().positive().optional(),tag:f.z.string().optional()}),Mo=f.z.object({data:f.z.instanceof(Uint8Array),sampleRate:f.z.number().int().positive(),channels:f.z.number().int().positive(),format:It,pts:f.z.number()}),Yn=f.z.object({data:f.z.instanceof(Uint8Array),codec:f.z.string(),pts:f.z.number(),frameComplete:f.z.boolean()}),Yl=f.z.object({sessionId:f.z.string(),kind:f.z.enum(["decode","encode"]),codec:f.z.string(),sourceSampleRate:f.z.number(),sourceChannels:f.z.number(),targetSampleRate:f.z.number(),targetChannels:f.z.number(),format:It,tag:f.z.string().optional(),createdAtMs:f.z.number(),lastActivityMs:f.z.number(),framesIn:f.z.number(),framesOut:f.z.number()}),To={name:"audio-codec",scope:"system",mode:"singleton",methods:{listSupportedCodecs:a(f.z.void(),f.z.array(wo).readonly()),canHandle:a(f.z.object({codec:f.z.string(),kind:f.z.enum(["decode","encode"])}),f.z.boolean()),createDecodeSession:a(Po,f.z.object({sessionId:f.z.string(),nodeId:f.z.string()}),{kind:"mutation"}),createEncodeSession:a(Do,f.z.object({sessionId:f.z.string(),nodeId:f.z.string()}),{kind:"mutation"}),closeSession:a(f.z.object({sessionId:f.z.string(),nodeId:f.z.string().optional()}),f.z.void(),{kind:"mutation"}),pushEncodedFrame:a(f.z.object({sessionId:f.z.string(),nodeId:f.z.string().optional(),data:f.z.instanceof(Uint8Array),pts:f.z.number().optional()}),f.z.void(),{kind:"mutation"}),pullPcm:a(f.z.object({sessionId:f.z.string(),nodeId:f.z.string().optional(),maxCount:f.z.number().int().positive().default(8)}),f.z.array(Mo)),pushPcm:a(f.z.object({sessionId:f.z.string(),nodeId:f.z.string().optional(),data:f.z.instanceof(Uint8Array),pts:f.z.number().optional()}),f.z.void(),{kind:"mutation"}),pullEncoded:a(f.z.object({sessionId:f.z.string(),nodeId:f.z.string().optional(),maxCount:f.z.number().int().positive().default(8)}),f.z.array(Yn)),flushEncode:a(f.z.object({sessionId:f.z.string(),nodeId:f.z.string().optional()}),f.z.array(Yn),{kind:"mutation"}),listActiveSessions:a(f.z.void(),f.z.array(Yl).readonly())}},be=require("zod"),Qn=be.z.object({embedding:be.z.array(be.z.number()),dimensions:be.z.number()}),Eo=be.z.object({modelId:be.z.string(),dimensions:be.z.number(),inputSize:be.z.number()}),Ro={name:"embedding-encoder",scope:"system",mode:"collection",internal:!0,methods:{encode:a(be.z.object({crop:be.z.instanceof(Uint8Array),width:be.z.number(),height:be.z.number()}),Qn),encodeText:a(be.z.object({text:be.z.string()}),Qn),getInfo:a(be.z.void(),Eo)}},o=require("zod"),Ut=o.z.object({id:o.z.number(),stableId:o.z.string(),addonId:o.z.string(),type:o.z.enum(De),name:o.z.string(),location:o.z.string().nullable(),disabled:o.z.boolean(),parentDeviceId:o.z.number().nullable(),role:o.z.string().nullable().optional(),online:o.z.boolean(),features:o.z.array(o.z.string()),isCamera:o.z.boolean(),config:o.z.record(o.z.string(),o.z.unknown()),metadata:o.z.record(o.z.string(),o.z.unknown()).nullable().optional()}),_o=o.z.object({key:o.z.string(),value:o.z.unknown(),description:o.z.string().optional()}),Ql=o.z.object({id:o.z.number(),stableId:o.z.string(),type:o.z.string(),name:o.z.string(),location:o.z.string().nullable(),disabled:o.z.boolean(),parentDeviceId:o.z.number().nullable(),role:o.z.string().nullable().optional()}),Jl=o.z.object({id:o.z.number(),stableId:o.z.string(),addonId:o.z.string(),type:o.z.string(),name:o.z.string(),location:o.z.string().nullable(),disabled:o.z.boolean(),parentDeviceId:o.z.number().nullable(),metadata:o.z.record(o.z.string(),o.z.unknown()).nullable().optional()}),Xl=o.z.unknown().nullable(),eu=o.z.object({streamId:o.z.string(),width:o.z.number().optional(),height:o.z.number().optional(),codec:o.z.string().optional(),fps:o.z.number().optional(),bitrateKbps:o.z.number().optional()}),tu=o.z.object({addonId:o.z.string(),stableId:o.z.string(),id:o.z.number(),type:o.z.string(),name:o.z.string(),location:o.z.string().nullable().optional(),disabled:o.z.boolean().optional(),parentDeviceId:o.z.number().nullable(),role:o.z.string().nullable().optional(),features:o.z.array(o.z.string()).optional(),config:o.z.record(o.z.string(),o.z.unknown())}),nu=o.z.object({deviceId:o.z.number()}),iu=o.z.object({deviceId:o.z.number(),data:o.z.record(o.z.string(),o.z.unknown())}),qo={name:"device-manager",scope:"system",mode:"singleton",methods:{allocateDeviceId:a(o.z.object({addonId:o.z.string(),stableId:o.z.string()}),o.z.object({id:o.z.number()}),{kind:"mutation"}),registerDevice:a(tu,o.z.void(),{kind:"mutation"}),removeDevice:a(nu,o.z.void(),{kind:"mutation"}),persistConfig:a(iu,o.z.void(),{kind:"mutation"}),loadConfig:a(o.z.object({deviceId:o.z.number()}),o.z.record(o.z.string(),o.z.unknown())),loadRuntimeState:a(o.z.object({deviceId:o.z.number()}),o.z.record(o.z.string(),o.z.unknown())),loadMeta:a(o.z.object({deviceId:o.z.number()}),Jl.nullable()),setName:a(o.z.object({deviceId:o.z.number(),name:o.z.string()}),o.z.void(),{kind:"mutation",auth:"admin"}),setLocation:a(o.z.object({deviceId:o.z.number(),location:o.z.string().nullable()}),o.z.void(),{kind:"mutation",auth:"admin"}),setMetadata:a(o.z.object({deviceId:o.z.number(),patch:o.z.record(o.z.string(),o.z.unknown())}),o.z.void(),{kind:"mutation",auth:"admin"}),listLocations:a(o.z.void(),o.z.array(o.z.string())),addLocation:a(o.z.object({name:o.z.string()}),o.z.void(),{kind:"mutation",auth:"admin"}),removeLocation:a(o.z.object({name:o.z.string(),cascade:o.z.boolean().optional()}),o.z.void(),{kind:"mutation",auth:"admin"}),setDisabled:a(o.z.object({deviceId:o.z.number(),disabled:o.z.boolean()}),o.z.void(),{kind:"mutation",auth:"admin"}),listPersistedByAddon:a(o.z.object({addonId:o.z.string()}),o.z.array(Ql)),listAll:a(o.z.object({addonId:o.z.string().optional()}),o.z.array(Ut)),getDevice:a(o.z.object({deviceId:o.z.number()}),Ut.nullable()),getChildren:a(o.z.object({parentDeviceId:o.z.number()}),o.z.array(Ut)),getStreamSources:a(o.z.object({deviceId:o.z.number()}),o.z.array(Xa)),getConfigSchema:a(o.z.object({deviceId:o.z.number()}),o.z.array(_o)),getSettingsSchema:a(o.z.object({deviceId:o.z.number()}),Xl),updateConfig:a(o.z.object({deviceId:o.z.number(),values:o.z.record(o.z.string(),o.z.unknown())}),o.z.object({success:o.z.literal(!0)}),{kind:"mutation",auth:"admin"}),enable:a(o.z.object({deviceId:o.z.number()}),o.z.object({success:o.z.literal(!0)}),{kind:"mutation",auth:"admin"}),disable:a(o.z.object({deviceId:o.z.number()}),o.z.object({success:o.z.literal(!0)}),{kind:"mutation",auth:"admin"}),remove:a(o.z.object({deviceId:o.z.number()}),o.z.object({success:o.z.literal(!0)}),{kind:"mutation",auth:"admin"}),getStreamProfileMap:a(o.z.object({deviceId:o.z.number()}),o.z.record(o.z.string(),o.z.string().nullable())),setStreamProfileMap:a(o.z.object({deviceId:o.z.number(),profileMap:o.z.record(o.z.string(),o.z.string().nullable())}),o.z.object({success:o.z.literal(!0)}),{kind:"mutation",auth:"admin"}),probeStreams:a(o.z.object({deviceId:o.z.number()}),o.z.array(eu),{kind:"mutation",auth:"admin"}),getBindings:a(o.z.object({deviceId:o.z.number()}),o.z.object({deviceId:o.z.number(),entries:o.z.array(o.z.object({capName:o.z.string(),kind:o.z.enum(["native","wrapped"]),providerAddonId:o.z.string(),providerNodeId:o.z.string(),nativeAddonId:o.z.string()}))})),getAllBindings:a(o.z.object({}),o.z.array(o.z.object({deviceId:o.z.number(),entries:o.z.array(o.z.object({capName:o.z.string(),kind:o.z.enum(["native","wrapped"]),providerAddonId:o.z.string(),providerNodeId:o.z.string(),nativeAddonId:o.z.string()}))}))),setWrapperActive:a(o.z.object({deviceId:o.z.number(),capName:o.z.string(),wrapperAddonId:o.z.string(),active:o.z.boolean()}),o.z.void(),{kind:"mutation",auth:"admin"}),listWrappersForCap:a(o.z.object({capName:o.z.string()}),o.z.array(o.z.string())),listBindableCapsForDeviceType:a(o.z.object({deviceType:o.z.string()}),o.z.array(o.z.object({capName:o.z.string(),wrappers:o.z.array(o.z.string())}))),getDeviceSettingsAggregate:a(o.z.object({deviceId:o.z.number()}),Ye.nullable()),getDeviceLiveInfoAggregate:a(o.z.object({deviceId:o.z.number()}),Ye.nullable()),getDeviceAggregate:a(o.z.object({deviceId:o.z.number()}),o.z.object({settings:Ye.nullable(),live:Ye.nullable()})),updateDeviceField:a(o.z.object({deviceId:o.z.number(),writerCapName:o.z.string(),writerAddonId:o.z.string(),key:o.z.string(),value:o.z.unknown()}),o.z.object({success:o.z.literal(!0)}),{kind:"mutation",auth:"admin"}),updateDeviceFieldsBatch:a(o.z.object({deviceId:o.z.number(),changes:o.z.array(o.z.object({writerCapName:o.z.string(),writerAddonId:o.z.string(),key:o.z.string(),value:o.z.unknown()}))}),o.z.object({success:o.z.literal(!0),failures:o.z.array(o.z.object({writerCapName:o.z.string(),writerAddonId:o.z.string(),error:o.z.string()}))}),{kind:"mutation",auth:"admin"}),discoverDevices:a(o.z.object({addonId:o.z.string()}),o.z.array(nn),{kind:"mutation",auth:"admin"}),adoptDevice:a(o.z.object({addonId:o.z.string(),candidate:nn}),an,{kind:"mutation",auth:"admin"}),getCreationSchema:a(o.z.object({addonId:o.z.string(),type:o.z.enum(De)}),o.z.unknown().nullable()),createDevice:a(o.z.object({addonId:o.z.string(),type:o.z.enum(De),config:o.z.record(o.z.string(),o.z.unknown())}),an,{kind:"mutation",auth:"admin"}),testCreationField:a(o.z.object({addonId:o.z.string(),type:o.z.enum(De),key:o.z.string(),value:o.z.unknown(),formValues:o.z.record(o.z.string(),o.z.unknown()).optional()}),Ln,{kind:"mutation",auth:"admin"}),testField:a(o.z.object({deviceId:o.z.number(),key:o.z.string(),value:o.z.unknown()}),Ln,{kind:"mutation",auth:"admin"}),getDeviceStatusAggregate:a(o.z.object({deviceId:o.z.number(),caps:o.z.array(o.z.string()).readonly().optional()}),o.z.record(o.z.string(),o.z.unknown().nullable()))}},W=require("zod"),Oo={name:"device-state",scope:"system",mode:"singleton",methods:{getSnapshot:a(W.z.object({deviceId:W.z.number()}),W.z.record(W.z.string(),W.z.record(W.z.string(),W.z.unknown()))),getCapSlice:a(W.z.object({deviceId:W.z.number(),capName:W.z.string()}),W.z.record(W.z.string(),W.z.unknown()).nullable()),getAllSnapshots:a(W.z.object({}),W.z.record(W.z.string(),W.z.record(W.z.string(),W.z.record(W.z.string(),W.z.unknown())))),setCapSlice:a(W.z.object({deviceId:W.z.number(),capName:W.z.string(),slice:W.z.record(W.z.string(),W.z.unknown())}),W.z.void(),{kind:"mutation"})},events:{onChanged:He(W.z.object({deviceId:W.z.number(),capName:W.z.string(),slice:W.z.record(W.z.string(),W.z.unknown())}))}},ze=require("zod"),Ht=ze.z.object({userId:ze.z.string(),username:ze.z.string(),email:ze.z.string().optional(),displayName:ze.z.string().optional(),roles:ze.z.array(ze.z.string()).optional()}),Bo={name:"auth-provider",scope:"system",mode:"collection",internal:!0,methods:{validateCredentials:a(ze.z.object({username:ze.z.string(),password:ze.z.string()}),Ht.nullable(),{kind:"mutation"}),getLoginUrl:a(ze.z.object({state:ze.z.string()}),ze.z.string()),handleCallback:a(ze.z.record(ze.z.string(),ze.z.string()),Ht,{kind:"mutation"}),validateToken:a(ze.z.object({token:ze.z.string()}),Ht.nullable())}},fe=require("zod"),on=fe.z.object({url:fe.z.string(),hostname:fe.z.string(),port:fe.z.number(),protocol:fe.z.enum(["http","https"])}),xo=fe.z.object({connected:fe.z.boolean(),endpoint:on.nullable(),error:fe.z.string().optional()}),No={name:"network-access",scope:"system",mode:"collection",internal:!0,methods:{start:a(fe.z.void(),on,{kind:"mutation"}),stop:a(fe.z.void(),fe.z.void(),{kind:"mutation"}),getEndpoint:a(fe.z.void(),on.nullable()),getStatus:a(fe.z.void(),xo)}},xe=require("zod"),Lo=xe.z.object({urls:xe.z.union([xe.z.string(),xe.z.array(xe.z.string())]),username:xe.z.string().optional(),credential:xe.z.string().optional()}),Fo={name:"turn-provider",scope:"system",mode:"collection",methods:{getTurnServers:a(xe.z.void(),xe.z.array(Lo).readonly())}},he=require("zod"),Bi=he.z.object({base64:he.z.string(),contentType:he.z.string()}),au=he.z.object({lastCapturedAt:he.z.number().nullable(),cacheAgeMs:he.z.number().nullable(),lastBytes:he.z.number().nullable(),lastStreamId:he.z.string().nullable()}),Uo={name:"snapshot",scope:"device",mode:"singleton",deviceTypes:["camera"],exposesDeviceSettings:!0,methods:{getSnapshot:a(he.z.object({deviceId:he.z.number(),streamId:he.z.string().optional(),force:he.z.boolean().optional()}),Bi.nullable()),invalidateCache:a(he.z.object({deviceId:he.z.number()}),he.z.void(),{kind:"mutation",auth:"admin"})},status:{schema:au,kind:"poll"}},tt=require("zod"),Ho={name:"snapshot-provider",scope:"system",mode:"collection",methods:{supportsDevice:a(tt.z.object({deviceId:tt.z.number()}),tt.z.boolean()),getSnapshot:a(tt.z.object({deviceId:tt.z.number(),streamId:tt.z.string().optional()}),Bi.nullable())}},pe=require("zod"),Wo=pe.z.object({title:pe.z.string(),body:pe.z.string(),imageUrl:pe.z.string().optional(),deviceId:pe.z.number().optional(),eventId:pe.z.string().optional(),priority:pe.z.enum(["low","normal","high","critical"]).default("normal"),metadata:pe.z.record(pe.z.string(),pe.z.unknown()).optional()}),$o={name:"notification-output",scope:"system",mode:"collection",methods:{send:a(Wo,pe.z.void(),{kind:"mutation"}),sendTest:a(pe.z.void(),pe.z.object({success:pe.z.boolean(),error:pe.z.string().optional()}),{kind:"mutation"})}},U=require("zod"),Jn=U.z.object({id:U.z.string(),name:U.z.string(),enabled:U.z.boolean(),conditions:U.z.record(U.z.string(),U.z.unknown()),actions:U.z.array(U.z.record(U.z.string(),U.z.unknown()))}),Go=U.z.object({id:U.z.string(),ruleId:U.z.string(),timestamp:U.z.number(),deviceId:U.z.number().optional(),success:U.z.boolean(),error:U.z.string().optional()}),Ko={name:"advanced-notifier",scope:"system",mode:"singleton",internal:!0,methods:{getRules:a(U.z.void(),U.z.array(Jn).readonly()),upsertRule:a(Jn,U.z.void(),{kind:"mutation"}),deleteRule:a(U.z.object({ruleId:U.z.string()}),U.z.void(),{kind:"mutation"}),testRule:a(U.z.object({ruleId:U.z.string(),lookbackMinutes:U.z.number()}),U.z.array(U.z.record(U.z.string(),U.z.unknown())),{kind:"mutation"}),getHistory:a(U.z.object({ruleId:U.z.string().optional(),limit:U.z.number().optional()}),U.z.array(Go))}},g=require("zod"),Vo=g.z.enum(["continuous","motion","scheduled","composite"]),ru=g.z.object({streamId:g.z.string(),mode:g.z.enum(["always","inherit"])}),ou=g.z.object({days:g.z.array(g.z.number()).readonly(),startTime:g.z.string(),endTime:g.z.string(),mode:g.z.enum(["continuous","motion"])}),ft=g.z.object({deviceId:g.z.number(),mode:Vo,streams:g.z.array(ru).readonly(),enabled:g.z.boolean(),preBufferSec:g.z.number(),postBufferSec:g.z.number(),scheduleRules:g.z.array(ou).readonly().optional()}),Zo=g.z.enum(["recording:main","recording:mid","recording:sub","thumbnail:scrub","thumbnail:event"]),Xn=g.z.object({deviceId:g.z.number(),dataCategory:Zo,storageName:g.z.string(),subDirectory:g.z.string(),retentionDays:g.z.number().nullable(),retentionGb:g.z.number().nullable()}),su=g.z.object({id:g.z.string(),deviceId:g.z.number(),streamId:g.z.string(),startTime:g.z.number(),endTime:g.z.number(),duration:g.z.number(),path:g.z.string(),storageName:g.z.string(),subDirectory:g.z.string(),sizeBytes:g.z.number(),codec:g.z.enum(["h264","h265"]),hasAudio:g.z.boolean()}),cu=g.z.object({deviceId:g.z.number(),timestamp:g.z.number(),path:g.z.string(),storageName:g.z.string(),subDirectory:g.z.string(),sizeBytes:g.z.number(),category:g.z.enum(["scrub","event"])}),du=g.z.object({startTime:g.z.number(),endTime:g.z.number(),streams:g.z.array(g.z.string()).readonly()}),lu=g.z.object({totalBytes:g.z.number(),segmentCount:g.z.number()}),uu=g.z.object({bitrateKbps:g.z.number(),retentionDays:g.z.number().nullable(),retentionGb:g.z.number().nullable(),estimatedGb:g.z.number(),estimatedDaysAtCapacity:g.z.number().nullable()}),sa=g.z.object({perStream:g.z.record(g.z.string(),uu),thumbnails:g.z.object({estimatedGb:g.z.number()}),totalEstimatedGb:g.z.number(),motionEstimate:g.z.object({avgEventsPerDay:g.z.number(),avgDurationSec:g.z.number(),dutyCyclePercent:g.z.number()}).optional()}),mu=g.z.object({totalEvents:g.z.number(),avgDurationSec:g.z.number(),avgEventsPerDay:g.z.number(),dutyCyclePercent:g.z.number()}),Tt=g.z.object({deviceId:g.z.number()}),zu=g.z.object({deviceId:g.z.number(),policy:ft.omit({deviceId:!0}),storageOverrides:g.z.array(Xn.omit({deviceId:!0})).readonly().optional(),ffmpegOverrides:g.z.record(g.z.string(),g.z.unknown()).optional()}),ca=g.z.object({deviceId:g.z.number(),startTime:g.z.number(),endTime:g.z.number()}),gu=g.z.object({deviceId:g.z.number(),streamId:g.z.string(),startTime:g.z.number(),endTime:g.z.number()}),pu=g.z.object({deviceId:g.z.number(),streamId:g.z.string(),startTime:g.z.number(),endTime:g.z.number(),live:g.z.boolean().optional()}),bu=g.z.object({deviceId:g.z.number(),timestamp:g.z.number(),category:g.z.string().optional()}),hu=g.z.object({deviceId:g.z.number(),streamId:g.z.string()}),vu=g.z.object({deviceId:g.z.number(),motionInput:g.z.object({avgEventsPerDay:g.z.number(),avgDurationSec:g.z.number()}).optional()}),yu=g.z.object({deviceId:g.z.number(),dataCategory:Zo}),Su=g.z.object({deviceId:g.z.number(),policy:ft.omit({deviceId:!0})}),fu=g.z.object({deviceId:g.z.number(),policy:ft.omit({deviceId:!0}),ffmpegOverrides:g.z.record(g.z.string(),g.z.unknown()).optional()}),Yo={name:"recording-engine",scope:"system",mode:"singleton",methods:{getStatus:a(g.z.void(),g.z.object({activeRecordings:g.z.number(),totalSegments:g.z.number(),totalSizeMB:g.z.number()})),enable:a(zu,g.z.void(),{kind:"mutation",auth:"admin"}),disable:a(Tt,g.z.void(),{kind:"mutation",auth:"admin"}),getConfig:a(Tt,ft.nullable()),updateConfig:a(fu,g.z.void(),{kind:"mutation",auth:"admin"}),getPlaylist:a(pu,g.z.string()),getThumbnail:a(bu,cu.nullable()),getSegments:a(gu,g.z.array(su).readonly()),getAvailability:a(ca,g.z.array(du).readonly()),estimateStorage:a(vu,sa),estimateGlobalStorage:a(g.z.void(),sa),getStorageUsage:a(hu,lu),setPolicy:a(Su,g.z.void(),{kind:"mutation",auth:"admin"}),getPolicy:a(Tt,ft.nullable()),getPolicyStatus:a(Tt,g.z.object({deviceId:g.z.number(),enabled:g.z.boolean(),mode:Vo,activeStreams:g.z.number()}).nullable()),getRetentionConfig:a(yu,Xn.nullable()),updateRetentionConfig:a(Xn,g.z.void(),{kind:"mutation",auth:"admin"}),getMotionStats:a(ca,mu)}},Qo={name:"detection-pipeline",scope:"device",mode:"singleton",deviceTypes:["camera"],exposesDeviceSettings:!0,methods:{}},S=require("zod"),hn=S.z.enum(["new","entered","left","moving","idle"]),Jo=S.z.enum(["motion","object","audio"]),Xo=S.z.object({x:S.z.number(),y:S.z.number(),timestamp:S.z.number(),bbox:Xe}),ku=S.z.object({timestamp:S.z.number(),position:Xo,mediaKey:S.z.string()}),Wt=S.z.object({trackId:S.z.string(),deviceId:S.z.number(),className:S.z.string(),label:S.z.string().optional(),firstSeen:S.z.number(),lastSeen:S.z.number(),positions:S.z.array(Xo).readonly(),snapshots:S.z.array(ku).readonly(),zonesVisited:S.z.array(S.z.string()).readonly(),totalDistance:S.z.number(),state:hn,active:S.z.boolean()}),xi={id:S.z.string(),deviceId:S.z.number(),timestamp:S.z.number()},es=S.z.object({...xi,kind:S.z.literal("motion"),regionCount:S.z.number(),regions:S.z.array(S.z.object({bbox:Xe,pixelCount:S.z.number(),intensity:S.z.number()})).readonly(),frameWidth:S.z.number(),frameHeight:S.z.number()}),ts=S.z.object({...xi,kind:S.z.literal("object"),trackId:S.z.string(),className:S.z.string(),label:S.z.string().optional(),confidence:S.z.number(),bbox:Xe,zones:S.z.array(S.z.string()).readonly(),state:hn,mediaKey:S.z.string().optional()}),ns=S.z.object({...xi,kind:S.z.literal("audio"),rms:S.z.number(),dbfs:S.z.number(),classification:S.z.object({className:S.z.string(),originalClass:S.z.string().optional(),score:S.z.number()}).optional()}),ei=S.z.object({key:S.z.string(),kind:S.z.enum(["crop","thumbnail","snapshot"]),base64:S.z.string(),sizeBytes:S.z.number(),timestamp:S.z.number()}),Iu=1e3,Au=5e3,ti=S.z.object({deviceId:S.z.number(),since:S.z.number().optional(),until:S.z.number().optional(),limit:S.z.number().int().min(1).max(Au).default(Iu)}),Cu=ti.extend({classFilter:S.z.string().optional()}),is=S.z.object({trackId:S.z.string(),className:S.z.string(),confidence:S.z.number(),bbox:Xe,zones:S.z.array(S.z.string()).readonly(),state:hn}),as={name:"pipeline-analytics",scope:"device",mode:"singleton",deviceTypes:["camera"],exposesDeviceSettings:!0,methods:{getActiveTracks:a(S.z.object({deviceId:S.z.number()}),S.z.array(Wt).readonly()),getTrack:a(S.z.object({deviceId:S.z.number(),trackId:S.z.string()}),Wt.nullable()),listTracks:a(S.z.object({deviceId:S.z.number(),since:S.z.number().optional(),until:S.z.number().optional(),limit:S.z.number().optional()}),S.z.array(Wt).readonly()),clearTracks:a(S.z.object({deviceId:S.z.number()}),S.z.void(),{kind:"mutation",auth:"admin"}),getMotionEvents:a(ti,S.z.array(es).readonly()),getObjectEvents:a(Cu,S.z.array(ts).readonly()),getAudioEvents:a(ti,S.z.array(ns).readonly()),getEventMedia:a(S.z.object({eventId:S.z.string()}),S.z.array(ei).readonly()),getTrackMedia:a(S.z.object({trackId:S.z.string()}),S.z.array(ei).readonly())},events:{onFrameTracked:{data:S.z.object({deviceId:S.z.number(),timestamp:S.z.number(),frameWidth:S.z.number(),frameHeight:S.z.number(),detections:S.z.array(is).readonly()})},onTrackStarted:{data:S.z.object({deviceId:S.z.number(),trackId:S.z.string(),className:S.z.string()})},onTrackEnded:{data:S.z.object({deviceId:S.z.number(),trackId:S.z.string(),className:S.z.string(),durationMs:S.z.number()})},onDetectionEvent:{data:S.z.object({deviceId:S.z.number(),kind:Jo,eventId:S.z.string(),timestamp:S.z.number()})}}},y=require("zod"),ju=y.z.object({total:y.z.number(),user:y.z.number(),system:y.z.number(),irq:y.z.number(),nice:y.z.number(),loadAvg:y.z.tuple([y.z.number(),y.z.number(),y.z.number()]),cores:y.z.number()}),wu=y.z.object({percent:y.z.number(),totalBytes:y.z.number(),usedBytes:y.z.number(),availableBytes:y.z.number(),swapUsedBytes:y.z.number(),swapTotalBytes:y.z.number()}),Pu=y.z.object({readBytes:y.z.number(),writeBytes:y.z.number(),readOps:y.z.number(),writeOps:y.z.number(),timestampMs:y.z.number()}),Du=y.z.object({rxBytes:y.z.number(),txBytes:y.z.number(),rxPackets:y.z.number(),txPackets:y.z.number(),rxErrors:y.z.number(),txErrors:y.z.number(),timestampMs:y.z.number()}),rs=y.z.object({utilization:y.z.number(),model:y.z.string(),memoryUsedBytes:y.z.number(),memoryTotalBytes:y.z.number(),temperature:y.z.number().nullable()}),Mu=y.z.object({openFds:y.z.number(),threadCount:y.z.number(),activeHandles:y.z.number(),activeRequests:y.z.number()}),da=y.z.object({avg10:y.z.number(),avg60:y.z.number(),avg300:y.z.number()}),Cn=y.z.object({some:da,full:da.nullable()}),la=y.z.object({cpu:ju,memory:wu,gpu:rs.nullable(),network:Du,disk:Pu,pressure:y.z.object({cpu:Cn.nullable(),memory:Cn.nullable(),io:Cn.nullable()}),process:Mu,cpuTemperature:y.z.number().nullable(),timestampMs:y.z.number()}),Tu=y.z.object({path:y.z.string(),totalBytes:y.z.number(),usedBytes:y.z.number(),availableBytes:y.z.number(),percent:y.z.number()}),ua=y.z.object({pid:y.z.number(),cpu:y.z.number(),memory:y.z.number()}),Eu=y.z.object({addonId:y.z.string(),nodeId:y.z.string(),role:y.z.enum(["hub","worker"]),pid:y.z.number(),state:y.z.enum(["starting","running","stopping","stopped","crashed"]),uptimeSec:y.z.number()}),Ru=y.z.object({pid:y.z.number(),ppid:y.z.number(),pgid:y.z.number(),classification:y.z.enum(["root","managed","system","ghost"]),addonId:y.z.string().nullable(),nodeId:y.z.string().nullable(),command:y.z.string(),cpuPercent:y.z.number(),memoryRssBytes:y.z.number(),uptimeSec:y.z.number(),orphaned:y.z.boolean()}),_u=y.z.object({pid:y.z.number(),force:y.z.boolean().optional()}),qu=y.z.object({success:y.z.boolean(),reason:y.z.string().optional(),signal:y.z.enum(["SIGTERM","SIGKILL"]).optional()}),os=y.z.object({cpuPercent:y.z.number(),memoryPercent:y.z.number(),memoryUsedMB:y.z.number(),memoryTotalMB:y.z.number(),diskPercent:y.z.number().optional(),temperature:y.z.number().optional(),gpuPercent:y.z.number().optional(),gpuMemoryPercent:y.z.number().optional()}),ss={name:"metrics-provider",scope:"system",mode:"singleton",methods:{collectSnapshot:a(y.z.void(),la),getCached:a(y.z.void(),la.nullable()),getCurrent:a(y.z.void(),os),getDiskSpace:a(y.z.object({dirPath:y.z.string()}),Tu),getGpuInfo:a(y.z.void(),rs.nullable()),getCpuTemperature:a(y.z.void(),y.z.number().nullable()),getProcessStats:a(y.z.object({pids:y.z.array(y.z.number())}),y.z.array(ua)),listAddonInstances:a(y.z.void(),y.z.array(Eu).readonly()),getAddonStats:a(y.z.object({addonId:y.z.string()}),ua.nullable()),listNodeProcesses:a(y.z.void(),y.z.array(Ru).readonly()),killProcess:a(_u,qu,{kind:"mutation",auth:"admin"})}},G=require("zod"),cs=G.z.object({id:G.z.string(),name:G.z.string()}),ni=G.z.object({pan:G.z.number(),tilt:G.z.number(),zoom:G.z.number()}),ii=G.z.object({pan:G.z.number().optional(),tilt:G.z.number().optional(),zoom:G.z.number().optional(),speed:G.z.number().optional()}),ds={name:"ptz",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{move:a(ii.extend({deviceId:G.z.number()}),G.z.void(),{kind:"mutation"}),continuousMove:a(ii.extend({deviceId:G.z.number()}),G.z.void(),{kind:"mutation"}),stop:a(G.z.object({deviceId:G.z.number()}),G.z.void(),{kind:"mutation"}),getPresets:a(G.z.object({deviceId:G.z.number()}),G.z.array(cs)),goToPreset:a(G.z.object({deviceId:G.z.number(),presetId:G.z.string()}),G.z.void(),{kind:"mutation"}),goHome:a(G.z.object({deviceId:G.z.number()}),G.z.void(),{kind:"mutation"}),getPosition:a(G.z.object({deviceId:G.z.number()}),ni)},status:{schema:ni,kind:"command-driven"}},Z=require("zod"),ls=Z.z.object({id:Z.z.string(),type:Z.z.string(),timestamp:Z.z.number(),label:Z.z.string().optional(),thumbnailUrl:Z.z.string().optional(),clipUrl:Z.z.string().optional(),metadata:Z.z.record(Z.z.string(),Z.z.unknown()).optional()}),us={name:"events",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getEvents:a(Z.z.object({deviceId:Z.z.number(),from:Z.z.number().optional(),to:Z.z.number().optional(),limit:Z.z.number().optional()}),Z.z.array(ls)),getEventThumbnail:a(Z.z.object({deviceId:Z.z.number(),eventId:Z.z.string()}),Z.z.object({base64:Z.z.string(),contentType:Z.z.string()}).nullable()),getEventClipUrl:a(Z.z.object({deviceId:Z.z.number(),eventId:Z.z.string()}),Z.z.string().nullable())}},ae=require("zod"),ms=ae.z.object({id:ae.z.string(),startTs:ae.z.number(),endTs:ae.z.number(),durationSec:ae.z.number(),sizeBytes:ae.z.number().optional()}),zs={name:"recording",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getSegments:a(ae.z.object({deviceId:ae.z.number(),from:ae.z.number().optional(),to:ae.z.number().optional()}),ae.z.array(ms)),getPlaybackUrl:a(ae.z.object({deviceId:ae.z.number(),segmentId:ae.z.string()}),ae.z.string().nullable()),getThumbnailAt:a(ae.z.object({deviceId:ae.z.number(),timestamp:ae.z.number()}),ae.z.object({base64:ae.z.string(),contentType:ae.z.string()}).nullable())}},$=require("zod"),Ou=$.z.object({id:$.z.string(),label:$.z.string(),protocol:$.z.enum(["rtsp","rtmp","annexb","http-mjpeg","webrtc","custom"]),url:$.z.string().optional(),resolution:$.z.object({width:$.z.number(),height:$.z.number()}).optional(),fps:$.z.number().optional(),bitrate:$.z.number().optional(),codec:$.z.string().optional(),profileHint:$.z.enum(["high","mid","low"]).optional(),sdp:$.z.string().optional()}),Bu=$.z.object({key:$.z.string(),value:$.z.unknown()}),gs={name:"device-ops",scope:"device",mode:"singleton",methods:{getStreamSources:a($.z.object({deviceId:$.z.number()}),$.z.array(Ou)),getConfigEntries:a($.z.object({deviceId:$.z.number()}),$.z.array(Bu)),setConfig:a($.z.object({deviceId:$.z.number(),values:$.z.record($.z.string(),$.z.unknown())}),$.z.void(),{kind:"mutation"}),removeDevice:a($.z.object({deviceId:$.z.number()}),$.z.void(),{kind:"mutation"}),getSettingsSchema:a($.z.object({deviceId:$.z.number()}),$.z.unknown().nullable())}},se=require("zod"),ps=se.z.object({host:se.z.string(),port:se.z.number().int().positive().optional(),onvifPort:se.z.number().int().positive().optional(),rtspPort:se.z.number().int().positive().optional(),https:se.z.boolean().optional(),username:se.z.string().optional(),password:se.z.string().optional(),onvifProfile:se.z.string().optional()}),bs=se.z.object({host:se.z.string(),port:se.z.number().int().positive().nullable(),onvifPort:se.z.number().int().positive().nullable(),rtspPort:se.z.number().int().positive().nullable(),https:se.z.boolean().nullable(),hasUsername:se.z.boolean(),hasPassword:se.z.boolean(),onvifProfile:se.z.string().nullable()}),hs={name:"camera-credentials",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{getCredentials:a(se.z.object({deviceId:se.z.number()}),ps.nullable(),{kind:"query",auth:"admin"})},status:{schema:bs,kind:"command-driven"}},Et=require("zod"),vs={name:"reboot",scope:"device",mode:"singleton",deviceTypes:["camera","sensor","switch"],methods:{reboot:a(Et.z.object({deviceId:Et.z.number().int().nonnegative()}),Et.z.object({success:Et.z.literal(!0)}),{kind:"mutation",auth:"admin"})}},le=require("zod"),ys=le.z.enum(["text","timestamp","watermark"]),sn=le.z.enum(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right","custom"]),Ss=le.z.object({id:le.z.string(),kind:ys,enabled:le.z.boolean(),text:le.z.string().optional(),position:sn.optional(),availablePositions:le.z.array(sn).readonly(),readOnly:le.z.boolean().optional()}),ai=le.z.object({overlays:le.z.array(Ss).readonly()}),fs=le.z.object({enabled:le.z.boolean().optional(),text:le.z.string().optional(),position:sn.optional()}).partial(),ks={name:"osd",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{setOverlay:a(le.z.object({deviceId:le.z.number(),overlayId:le.z.string(),patch:fs}),le.z.void(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:le.z.object({deviceId:le.z.number(),status:ai})}},status:{schema:ai,kind:"command-driven"},settings:{bindings:[{kind:"array",statusPath:"overlays",idField:"id",method:"setOverlay",idArg:"overlayId",patchArg:"patch",sectionId:"osd",sectionTitle:"Video overlays",itemFields:{enabled:{label:e=>`${String(e.id)} enabled`,kind:"boolean"},text:{label:e=>`${String(e.id)} text`,kind:"text",when:e=>e.kind!=="timestamp"&&!e.readOnly},position:{label:e=>`${String(e.id)} position`,kind:"select",options:e=>e.availablePositions??[],when:e=>Array.isArray(e.availablePositions)&&e.availablePositions.length>0}}}]}},Qe=require("zod"),Is=Qe.z.object({childDeviceIds:Qe.z.array(Qe.z.number()).readonly()}),As={name:"accessories",scope:"device",mode:"singleton",deviceTypes:["camera","hub"],methods:{},events:{onAccessoriesChanged:{data:Qe.z.object({deviceId:Qe.z.number(),childDeviceIds:Qe.z.array(Qe.z.number()).readonly()})}},status:{schema:Is,kind:"command-driven"}},Y=require("zod"),Cs=Y.z.object({codecs:Y.z.array(Y.z.string()),sampleRate:Y.z.number(),duplex:Y.z.enum(["half","full"]),maxBacklogMs:Y.z.number()}),ri=Y.z.object({talking:Y.z.boolean(),lastSessionAt:Y.z.number().nullable(),ability:Cs.nullable()}),js={name:"intercom",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{startSession:a(Y.z.object({deviceId:Y.z.number()}),Y.z.object({sessionId:Y.z.string(),sdpOffer:Y.z.string()}),{kind:"mutation",auth:"admin"}),handleAnswer:a(Y.z.object({deviceId:Y.z.number(),sessionId:Y.z.string(),sdpAnswer:Y.z.string()}),Y.z.void(),{kind:"mutation",auth:"admin"}),stopSession:a(Y.z.object({deviceId:Y.z.number(),sessionId:Y.z.string()}),Y.z.void(),{kind:"mutation",auth:"admin"})},events:{onStatusChanged:{data:Y.z.object({deviceId:Y.z.number(),status:ri})}},status:{schema:ri,kind:"command-driven"}},Ne=require("zod"),cn=Ne.z.enum(["person","vehicle","animal","face","package","other"]),Ni=Ne.z.object({class:cn,timestamp:Ne.z.number(),confidence:Ne.z.number().min(0).max(1).optional()}),ws=Ne.z.object({lastByClass:Ne.z.record(cn,Ni.nullable()),supportedClasses:Ne.z.array(cn).readonly()}),Ps={name:"native-object-detection",scope:"device",mode:"singleton",deviceTypes:["camera"],methods:{},events:{onDetected:{data:Ne.z.object({deviceId:Ne.z.number(),detection:Ni})}},status:{schema:ws,kind:"push"}},T=require("zod"),xu=T.z.enum(ba),Nu=T.z.enum(["videotoolbox","cuda","nvdec","vaapi","qsv","d3d11va","dxva2","amf","vdpau","drm","coreml","tensorrt","openvino","directml","webgpu","none"]).nullable().optional(),Lu=T.z.object({preferred:T.z.array(T.z.string()).readonly()}),Fu=T.z.enum(["darwin","linux","win32"]),Uu=T.z.enum(["arm64","x64"]),Hu=T.z.object({type:T.z.enum(["nvidia","amd","intel","apple"]),name:T.z.string(),memoryMB:T.z.number().optional()}),Wu=T.z.object({type:T.z.enum(["apple-ane","intel-npu"])}),Ds=T.z.object({platform:Fu,arch:Uu,cpuModel:T.z.string(),cpuCores:T.z.number(),totalRAM_MB:T.z.number(),availableRAM_MB:T.z.number(),gpu:Hu.nullable(),npu:Wu.nullable()}),ma=T.z.object({runtime:T.z.enum(["node","python"]),backend:T.z.string(),format:T.z.enum(["onnx","coreml","openvino"]),score:T.z.number(),reason:T.z.string(),available:T.z.boolean()}),$u=T.z.object({hardware:Ds,scores:T.z.array(ma).readonly(),bestScore:ma,pythonPath:T.z.string().nullable()}),Gu=T.z.object({modelId:T.z.string(),name:T.z.string(),minRAM_MB:T.z.number(),accuracyScore:T.z.number(),formats:T.z.array(T.z.string()).readonly()}),Ku=T.z.object({modelId:T.z.string(),runtime:T.z.enum(["node","python"]),backend:T.z.string(),format:xu,reason:T.z.string()}),Ms={name:"platform-probe",scope:"system",mode:"singleton",methods:{getCapabilities:a(T.z.void(),$u),getHardware:a(T.z.void(),Ds),resolveInferenceConfig:a(T.z.object({requirements:T.z.array(Gu).readonly()}),Ku),resolveHwAccel:a(T.z.object({prefer:Nu,nodeId:T.z.string().optional()}),Lu)}},h=require("zod"),At=h.z.enum(["super_admin","admin","viewer","agent"]),$t=h.z.object({id:h.z.string(),username:h.z.string(),role:At,allowedProviders:h.z.union([h.z.array(h.z.string()),h.z.literal("*")]),allowedDevices:h.z.record(h.z.string(),h.z.union([h.z.array(h.z.string()),h.z.literal("*")])),createdAt:h.z.number(),updatedAt:h.z.number()}),Ts=h.z.object({username:h.z.string(),password:h.z.string().min(6),role:At,allowedProviders:h.z.union([h.z.array(h.z.string()),h.z.literal("*")]).optional(),allowedDevices:h.z.record(h.z.string(),h.z.union([h.z.array(h.z.string()),h.z.literal("*")])).optional()}),Es=h.z.object({id:h.z.string(),role:At.optional(),allowedProviders:h.z.union([h.z.array(h.z.string()),h.z.literal("*")]).optional(),allowedDevices:h.z.record(h.z.string(),h.z.union([h.z.array(h.z.string()),h.z.literal("*")])).optional()}),dn=h.z.object({id:h.z.string(),label:h.z.string(),role:At,allowedProviders:h.z.union([h.z.array(h.z.string()),h.z.literal("*")]).optional(),allowedDevices:h.z.record(h.z.string(),h.z.union([h.z.array(h.z.string()),h.z.literal("*")])).optional(),tokenPrefix:h.z.string(),createdAt:h.z.number(),lastUsedAt:h.z.number().optional()}),Rs=h.z.object({label:h.z.string(),role:At,allowedProviders:h.z.union([h.z.array(h.z.string()),h.z.literal("*")]).optional(),allowedDevices:h.z.record(h.z.string(),h.z.union([h.z.array(h.z.string()),h.z.literal("*")])).optional()}),_s=h.z.object({token:h.z.string(),record:dn}),qs=h.z.object({type:h.z.enum(["addon","route-prefix","capability"]),target:h.z.string()}),ln=h.z.object({id:h.z.string(),userId:h.z.string(),name:h.z.string(),tokenPrefix:h.z.string(),scopes:h.z.array(qs),expiresAt:h.z.number().optional(),lastUsedAt:h.z.number().optional(),createdAt:h.z.number()}),Os=h.z.object({name:h.z.string(),scopes:h.z.array(qs),expiresAt:h.z.number().optional()}),Bs=h.z.object({token:h.z.string(),record:ln}),xs={name:"user-management",scope:"system",mode:"singleton",methods:{listUsers:a(h.z.void(),h.z.array($t),{auth:"admin"}),createUser:a(Ts,$t,{kind:"mutation",auth:"superAdmin"}),updateUser:a(Es,h.z.object({success:h.z.literal(!0)}),{kind:"mutation",auth:"superAdmin"}),deleteUser:a(h.z.object({id:h.z.string()}),h.z.object({success:h.z.literal(!0)}),{kind:"mutation",auth:"superAdmin"}),resetPassword:a(h.z.object({id:h.z.string(),newPassword:h.z.string().min(6)}),h.z.object({success:h.z.literal(!0)}),{kind:"mutation",auth:"superAdmin"}),validateCredentials:a(h.z.object({username:h.z.string(),password:h.z.string()}),$t.extend({passwordHash:h.z.string()}).nullable(),{kind:"mutation"}),listApiKeys:a(h.z.void(),h.z.array(dn),{auth:"admin"}),createApiKey:a(Rs,_s,{kind:"mutation",auth:"admin"}),revokeApiKey:a(h.z.object({id:h.z.string()}),h.z.object({success:h.z.literal(!0)}),{kind:"mutation",auth:"admin"}),validateApiKey:a(h.z.object({token:h.z.string()}),dn.nullable(),{kind:"mutation"}),createScopedToken:a(Os,Bs,{kind:"mutation",auth:"admin"}),revokeScopedToken:a(h.z.object({id:h.z.string()}),h.z.object({success:h.z.literal(!0)}),{kind:"mutation",auth:"admin"}),validateScopedToken:a(h.z.object({token:h.z.string()}),ln.nullable()),listScopedTokens:a(h.z.object({userId:h.z.string()}),h.z.array(ln),{auth:"admin"})}},K=require("zod"),oi=K.z.object({streaming:K.z.boolean(),notifications:K.z.boolean(),objectDetection:K.z.boolean(),remoteAccess:K.z.boolean(),agentCluster:K.z.boolean(),smartHome:K.z.boolean(),recordings:K.z.boolean(),backup:K.z.boolean(),repl:K.z.boolean()}),Ns=K.z.object({status:K.z.literal("ok"),uptime:K.z.number()}),Ls=K.z.object({name:K.z.string(),address:K.z.string(),family:K.z.string(),internal:K.z.boolean()}),Fs={name:"system",scope:"system",mode:"singleton",methods:{info:a(K.z.void(),oi),health:a(K.z.void(),Ns),featureFlags:a(K.z.void(),oi),networkAddresses:a(K.z.void(),K.z.array(Ls).readonly()),getRetentionConfig:a(K.z.void(),K.z.unknown().nullable(),{auth:"admin"}),setRetentionConfig:a(K.z.record(K.z.string(),K.z.unknown()),K.z.null(),{kind:"mutation",auth:"superAdmin"}),forceRetentionCleanup:a(K.z.void(),K.z.void(),{kind:"mutation",auth:"superAdmin"})}},J=require("zod"),Us=J.z.object({nominalBitrateKbps:J.z.number(),observedBitrateKbps:J.z.number(),peakBitrateKbps:J.z.number(),packetLossPercent:J.z.number(),lastUpdated:J.z.number()}),Hs=J.z.object({rttMs:J.z.number(),jitterMs:J.z.number(),estimatedBandwidthKbps:J.z.number(),lastUpdated:J.z.number()}),si=J.z.object({deviceId:J.z.number(),streams:J.z.record(J.z.string(),Us),client:Hs.optional()}),Ws={name:"network-quality",scope:"system",mode:"singleton",methods:{getDeviceStats:a(J.z.object({deviceId:J.z.number()}),si.nullable()),getAllStats:a(J.z.void(),J.z.array(si).readonly()),reportClientStats:a(J.z.object({deviceId:J.z.number(),rttMs:J.z.number().min(0).max(6e4),jitterMs:J.z.number().min(0).max(1e4),estimatedBandwidthKbps:J.z.number().min(0).max(1e6)}),J.z.void(),{kind:"mutation"})}},Oe=require("zod"),$s=Oe.z.object({title:Oe.z.string(),message:Oe.z.string(),severity:Oe.z.enum(["info","warning","critical"]),duration:Oe.z.number().optional(),action:Oe.z.object({label:Oe.z.string(),url:Oe.z.string()}).optional()}),Gs={name:"toast",scope:"system",mode:"singleton",methods:{onToast:a(Oe.z.void(),$s,{kind:"subscription"})}},k=require("zod"),Ks=k.z.object({addonId:k.z.string(),capabilities:k.z.array(k.z.string()).readonly(),status:k.z.string()}),Vs=k.z.object({pid:k.z.number(),name:k.z.string(),state:k.z.string(),cpuPercent:k.z.number(),memoryRss:k.z.number(),uptimeSeconds:k.z.number(),services:k.z.array(Ks).readonly(),groupId:k.z.string().optional()}),Zs=k.z.object({id:k.z.string(),name:k.z.string(),hostname:k.z.string(),platform:k.z.string(),arch:k.z.string(),cpuModel:k.z.string().nullable(),cpuCores:k.z.number(),memoryMB:k.z.number(),engines:k.z.array(k.z.string()).readonly(),isHub:k.z.boolean(),isOnline:k.z.boolean(),cpuPercent:k.z.number(),memoryPercent:k.z.number(),uptime:k.z.number(),lastSeen:k.z.string(),localIps:k.z.array(k.z.string()).readonly(),addons:k.z.array(k.z.object({id:k.z.string(),capabilities:k.z.array(k.z.string()).readonly(),status:k.z.string()})).readonly(),processes:k.z.array(Vs).readonly()}),Ys=k.z.object({nodeId:k.z.string(),name:k.z.string(),version:k.z.string(),status:k.z.string(),synced:k.z.boolean()}),Qs=k.z.object({hubVersion:k.z.string(),nodes:k.z.array(Ys)}),jn=k.z.object({nodeId:k.z.string(),addonId:k.z.string()}),mt=k.z.object({success:k.z.boolean()}),Vu=k.z.object({success:k.z.boolean(),reason:k.z.string().optional()}),Zu=k.z.object({restarted:k.z.array(k.z.string()).readonly(),failed:k.z.array(k.z.string()).readonly()}),Yu=k.z.object({nodeId:k.z.string(),name:k.z.string()}),Js={name:"nodes",scope:"system",mode:"singleton",methods:{topology:a(k.z.void(),k.z.array(Zs).readonly(),{auth:"admin"}),deployAddon:a(jn,mt,{kind:"mutation",auth:"superAdmin"}),undeployAddon:a(jn,mt,{kind:"mutation",auth:"superAdmin"}),restartAddon:a(jn,mt,{kind:"mutation",auth:"superAdmin"}),restartProcess:a(k.z.object({nodeId:k.z.string(),processName:k.z.string()}),Vu,{kind:"mutation",auth:"superAdmin"}),restartNode:a(k.z.object({nodeId:k.z.string()}),Zu,{kind:"mutation",auth:"superAdmin"}),shutdownNode:a(k.z.object({nodeId:k.z.string()}),mt,{kind:"mutation",auth:"superAdmin"}),renameNode:a(k.z.object({nodeId:k.z.string(),name:k.z.string().min(1).max(64)}),Yu,{kind:"mutation",auth:"superAdmin"}),clusterAddonStatus:a(k.z.void(),k.z.record(k.z.string(),Qs),{auth:"superAdmin"}),setProcessLogLevel:a(k.z.object({nodeId:k.z.string(),level:k.z.string()}),mt,{kind:"mutation",auth:"superAdmin"}),executeQuery:a(k.z.object({nodeId:k.z.string(),addonId:k.z.string(),queryName:k.z.string(),params:k.z.record(k.z.string(),k.z.unknown()).optional()}),k.z.unknown(),{kind:"mutation",auth:"superAdmin"})}},I=require("zod"),ci=I.z.object({id:I.z.string(),addonId:I.z.string(),name:I.z.string(),enabled:I.z.boolean(),info:I.z.record(I.z.string(),I.z.unknown()).readonly(),createdAt:I.z.number(),updatedAt:I.z.number(),processState:I.z.string()}),Gt=I.z.object({id:I.z.string(),addonId:I.z.string(),name:I.z.string(),enabled:I.z.boolean(),info:I.z.record(I.z.string(),I.z.unknown()).readonly(),createdAt:I.z.number(),updatedAt:I.z.number()}),Xs=I.z.object({addonId:I.z.string(),name:I.z.string(),description:I.z.string(),iconUrl:I.z.string().nullable(),color:I.z.string(),instanceMode:I.z.string(),discoveryMode:I.z.string(),existingInstances:I.z.array(I.z.object({id:I.z.string(),name:I.z.string()})),canAdd:I.z.boolean()}),ec=I.z.object({success:I.z.boolean(),error:I.z.string().optional()}),tc=I.z.object({addonId:I.z.string(),name:I.z.string(),enabled:I.z.boolean().optional(),info:I.z.record(I.z.string(),I.z.unknown()).optional(),settings:I.z.record(I.z.string(),I.z.unknown()).optional(),skipRestart:I.z.boolean().optional()}),nc=I.z.object({id:I.z.string(),name:I.z.string().optional(),enabled:I.z.boolean().optional(),info:I.z.record(I.z.string(),I.z.unknown()).optional()}),ic=I.z.object({success:I.z.boolean(),deletedId:I.z.string()}),ac={name:"integrations",scope:"system",mode:"singleton",methods:{list:a(I.z.void(),I.z.array(ci)),get:a(I.z.object({id:I.z.string()}),ci),getByAddonId:a(I.z.object({addonId:I.z.string()}),Gt.nullable()),create:a(tc,Gt,{kind:"mutation",auth:"admin"}),update:a(nc,Gt,{kind:"mutation",auth:"superAdmin"}),delete:a(I.z.object({id:I.z.string()}),ic,{kind:"mutation",auth:"superAdmin"}),getSettings:a(I.z.object({id:I.z.string()}),I.z.record(I.z.string(),I.z.unknown()),{auth:"admin"}),setSettings:a(I.z.object({id:I.z.string(),settings:I.z.record(I.z.string(),I.z.unknown())}),I.z.object({success:I.z.boolean()}),{kind:"mutation",auth:"superAdmin"}),getAvailableTypes:a(I.z.void(),I.z.array(Xs),{auth:"admin"}),testConnection:a(I.z.object({addonId:I.z.string(),settings:I.z.record(I.z.string(),I.z.unknown())}),ec,{kind:"mutation",auth:"admin"})}},b=require("zod"),za=b.z.enum(["debug","info","warn","error"]),di=b.z.enum(["off","latest","beta"]),rc=b.z.enum(["off","latest","beta","inherit"]),Qu=b.z.object({id:b.z.string(),name:b.z.string().optional(),version:b.z.string().optional(),description:b.z.string().optional(),icon:b.z.string().optional(),color:b.z.string().optional(),capabilities:b.z.array(b.z.unknown()).readonly().optional(),packageName:b.z.string(),packageVersion:b.z.string(),packageDisplayName:b.z.string().optional(),protected:b.z.boolean().optional(),removable:b.z.boolean().optional()}),Ju=b.z.object({pid:b.z.number().optional(),mode:b.z.string(),state:b.z.string()}),oc=b.z.object({manifest:Qu,declaration:b.z.unknown().optional(),source:b.z.string(),installSource:b.z.string().optional(),process:Ju.optional()}),sc=b.z.object({name:b.z.string(),version:b.z.string(),dir:b.z.string(),installSource:b.z.string().optional()}),cc=b.z.object({name:b.z.string(),currentVersion:b.z.string(),latestVersion:b.z.string(),category:b.z.enum(["addon","core"]),requiresRestart:b.z.boolean()}),dc=b.z.object({version:b.z.string(),publishedAt:b.z.string(),deprecated:b.z.string().optional(),distTags:b.z.array(b.z.string()).readonly()}),lc=b.z.object({name:b.z.string(),version:b.z.string(),description:b.z.string(),keywords:b.z.array(b.z.string()).readonly(),publishedAt:b.z.string(),author:b.z.string(),installed:b.z.boolean(),installedVersion:b.z.string().optional()}),uc=b.z.object({channel:di,intervalSeconds:b.z.number()}),mc=rc,Xu=b.z.unknown(),ga=b.z.unknown(),em=b.z.unknown(),zc=b.z.object({timestamp:b.z.string(),level:b.z.string(),message:b.z.string(),scope:b.z.string().optional()}),tm=b.z.unknown(),gc=b.z.object({addonId:b.z.string().min(1),action:b.z.string().min(1),input:b.z.unknown()}),pc={name:"addons",scope:"system",mode:"singleton",methods:{list:a(b.z.void(),b.z.array(oc).readonly()),getLogs:a(b.z.object({addonId:b.z.string(),limit:b.z.number().min(1).max(500).default(100),level:za.optional()}),b.z.array(tm),{auth:"admin"}),listPackages:a(b.z.void(),b.z.array(sc).readonly()),installPackage:a(b.z.object({packageName:b.z.string(),version:b.z.string().optional()}),ga,{kind:"mutation",auth:"superAdmin"}),installFromWorkspace:a(b.z.object({packageName:b.z.string()}),ga,{kind:"mutation",auth:"admin"}),isWorkspaceAvailable:a(b.z.void(),b.z.boolean()),listWorkspacePackages:a(b.z.void(),b.z.array(b.z.unknown()).readonly()),uninstallPackage:a(b.z.object({packageName:b.z.string()}),b.z.unknown(),{kind:"mutation",auth:"superAdmin"}),reloadPackages:a(b.z.void(),em,{kind:"mutation",auth:"admin"}),searchAvailable:a(b.z.object({query:b.z.string().optional()}),b.z.array(lc)),listUpdates:a(b.z.void(),b.z.array(cc).readonly(),{auth:"admin"}),updatePackage:a(b.z.object({name:b.z.string().min(1),version:b.z.string().optional()}),b.z.unknown(),{kind:"mutation",auth:"superAdmin"}),forceRefresh:a(b.z.void(),b.z.unknown(),{kind:"mutation",auth:"admin"}),restartServer:a(b.z.object({confirm:b.z.literal(!0)}),b.z.unknown(),{kind:"mutation",auth:"superAdmin"}),getVersions:a(b.z.object({name:b.z.string()}),b.z.array(dc).readonly()),restartAddon:a(b.z.object({addonId:b.z.string()}),Xu,{kind:"mutation",auth:"superAdmin"}),getAutoUpdateSettings:a(b.z.void(),uc,{auth:"admin"}),setAutoUpdateSettings:a(b.z.object({channel:di,intervalSeconds:b.z.number().min(300).max(86400).optional()}),b.z.unknown(),{kind:"mutation",auth:"superAdmin"}),getAddonAutoUpdate:a(b.z.object({addonId:b.z.string()}),mc,{auth:"admin"}),setAddonAutoUpdate:a(b.z.object({addonId:b.z.string(),channel:rc}),b.z.unknown(),{kind:"mutation",auth:"admin"}),applyAutoUpdateToAll:a(b.z.object({channel:di}),b.z.object({success:b.z.literal(!0)}),{kind:"mutation",auth:"superAdmin"}),custom:a(gc,b.z.unknown(),{kind:"mutation"}),onAddonLogs:a(b.z.object({addonId:b.z.string(),level:za.optional()}),zc,{kind:"subscription"})}},bc=["decoder","motion-detection","pipeline-executor","audio-analyzer","pipeline-analytics","notification-output"],nm=[...bc,"pipeline-orchestrator","pipeline-runner"],im={accessories:"accessories",addonPages:"addon-pages",addonPagesSource:"addon-pages-source",addonRoutes:"addon-routes",addonSettings:"addon-settings",addonWidgets:"addon-widgets",addonWidgetsSource:"addon-widgets-source",addons:"addons",adminUi:"admin-ui",advancedNotifier:"advanced-notifier",alerts:"alerts",audioAnalysis:"audio-analysis",audioAnalyzer:"audio-analyzer",audioCodec:"audio-codec",audioMetrics:"audio-metrics",authProvider:"auth-provider",backup:"backup",battery:"battery",brightness:"brightness",cameraCredentials:"camera-credentials",cameraStreams:"camera-streams",decoder:"decoder",detectionPipeline:"detection-pipeline",deviceDiscovery:"device-discovery",deviceManager:"device-manager",deviceOps:"device-ops",deviceProvider:"device-provider",deviceState:"device-state",deviceStatus:"device-status",doorbell:"doorbell",embeddingEncoder:"embedding-encoder",events:"events",featureProbe:"feature-probe",integrations:"integrations",intercom:"intercom",logDestination:"log-destination",metricsProvider:"metrics-provider",motion:"motion",motionDetection:"motion-detection",motionTrigger:"motion-trigger",nativeObjectDetection:"native-object-detection",networkAccess:"network-access",networkQuality:"network-quality",nodes:"nodes",notificationOutput:"notification-output",osd:"osd",pipelineAnalytics:"pipeline-analytics",pipelineExecutor:"pipeline-executor",pipelineOrchestrator:"pipeline-orchestrator",pipelineRunner:"pipeline-runner",platformProbe:"platform-probe",ptz:"ptz",ptzAutotrack:"ptz-autotrack",reboot:"reboot",recording:"recording",recordingEngine:"recording-engine",restreamer:"restreamer",settingsStore:"settings-store",snapshot:"snapshot",snapshotProvider:"snapshot-provider",storage:"storage",streamBroker:"stream-broker",streamingEngine:"streaming-engine",switch:"switch",system:"system",toast:"toast",turnProvider:"turn-provider",userManagement:"user-management",webrtc:"webrtc",webrtcSession:"webrtc-session",zoneAnalytics:"zone-analytics",zoneRules:"zone-rules",zones:"zones"},am=[{key:"accessories",name:"accessories"},{key:"addonPages",name:"addon-pages"},{key:"addonPagesSource",name:"addon-pages-source"},{key:"addonRoutes",name:"addon-routes"},{key:"addonSettings",name:"addon-settings"},{key:"addonWidgets",name:"addon-widgets"},{key:"addonWidgetsSource",name:"addon-widgets-source"},{key:"addons",name:"addons"},{key:"adminUi",name:"admin-ui"},{key:"advancedNotifier",name:"advanced-notifier"},{key:"alerts",name:"alerts"},{key:"audioAnalysis",name:"audio-analysis"},{key:"audioAnalyzer",name:"audio-analyzer"},{key:"audioCodec",name:"audio-codec"},{key:"audioMetrics",name:"audio-metrics"},{key:"authProvider",name:"auth-provider"},{key:"backup",name:"backup"},{key:"battery",name:"battery"},{key:"brightness",name:"brightness"},{key:"cameraCredentials",name:"camera-credentials"},{key:"cameraStreams",name:"camera-streams"},{key:"decoder",name:"decoder"},{key:"detectionPipeline",name:"detection-pipeline"},{key:"deviceDiscovery",name:"device-discovery"},{key:"deviceManager",name:"device-manager"},{key:"deviceOps",name:"device-ops"},{key:"deviceProvider",name:"device-provider"},{key:"deviceState",name:"device-state"},{key:"deviceStatus",name:"device-status"},{key:"doorbell",name:"doorbell"},{key:"embeddingEncoder",name:"embedding-encoder"},{key:"events",name:"events"},{key:"featureProbe",name:"feature-probe"},{key:"integrations",name:"integrations"},{key:"intercom",name:"intercom"},{key:"logDestination",name:"log-destination"},{key:"metricsProvider",name:"metrics-provider"},{key:"motion",name:"motion"},{key:"motionDetection",name:"motion-detection"},{key:"motionTrigger",name:"motion-trigger"},{key:"nativeObjectDetection",name:"native-object-detection"},{key:"networkAccess",name:"network-access"},{key:"networkQuality",name:"network-quality"},{key:"nodes",name:"nodes"},{key:"notificationOutput",name:"notification-output"},{key:"osd",name:"osd"},{key:"pipelineAnalytics",name:"pipeline-analytics"},{key:"pipelineExecutor",name:"pipeline-executor"},{key:"pipelineOrchestrator",name:"pipeline-orchestrator"},{key:"pipelineRunner",name:"pipeline-runner"},{key:"platformProbe",name:"platform-probe"},{key:"ptz",name:"ptz"},{key:"ptzAutotrack",name:"ptz-autotrack"},{key:"reboot",name:"reboot"},{key:"recording",name:"recording"},{key:"recordingEngine",name:"recording-engine"},{key:"restreamer",name:"restreamer"},{key:"settingsStore",name:"settings-store"},{key:"snapshot",name:"snapshot"},{key:"snapshotProvider",name:"snapshot-provider"},{key:"storage",name:"storage"},{key:"streamBroker",name:"stream-broker"},{key:"streamingEngine",name:"streaming-engine"},{key:"switch",name:"switch"},{key:"system",name:"system"},{key:"toast",name:"toast"},{key:"turnProvider",name:"turn-provider"},{key:"userManagement",name:"user-management"},{key:"webrtc",name:"webrtc"},{key:"webrtcSession",name:"webrtc-session"},{key:"zoneAnalytics",name:"zone-analytics"},{key:"zoneRules",name:"zone-rules"},{key:"zones",name:"zones"}],rm=[As,eo,no,so,Fr,oo,ao,pc,Jr,Ko,$r,jo,Co,To,pi,Bo,Kr,bi,hi,hs,yi,co,Qo,Si,qo,gs,Ti,Oo,un,fi,Ro,us,mn,ac,js,Qr,ss,Ai,br,ji,Ps,No,Ws,Js,$o,ks,as,yr,fo,jr,Ms,ds,wi,vs,zs,Yo,mo,Yr,Uo,Ho,Gr,lr,rr,Pi,Fs,Gs,Fo,xs,zo,po,Di,Mi,ki],om=["accessories","battery","brightness","camera-credentials","device-discovery","device-status","doorbell","feature-probe","intercom","motion","motion-trigger","native-object-detection","osd","ptz","ptz-autotrack","snapshot","switch"],x=require("zod"),Li=x.z.enum(["super_admin","admin","viewer","agent"]),hc=x.z.union([x.z.literal("*"),x.z.array(x.z.string())]),vc=x.z.record(x.z.string(),x.z.union([x.z.literal("*"),x.z.array(x.z.string())])),sm=x.z.object({id:x.z.string(),username:x.z.string(),passwordHash:x.z.string(),role:Li,allowedProviders:hc,allowedDevices:vc,createdAt:x.z.number(),updatedAt:x.z.number()}),cm=x.z.object({id:x.z.string(),label:x.z.string(),role:Li,allowedProviders:hc,allowedDevices:vc,tokenHash:x.z.string(),tokenPrefix:x.z.string(),createdAt:x.z.number(),lastUsedAt:x.z.number().optional()}),yc=x.z.object({type:x.z.enum(["addon","route-prefix","capability"]),target:x.z.string()}),dm=x.z.object({id:x.z.string(),userId:x.z.string(),name:x.z.string(),tokenHash:x.z.string(),tokenPrefix:x.z.string(),scopes:x.z.array(yc),expiresAt:x.z.number().optional(),lastUsedAt:x.z.number().optional(),createdAt:x.z.number()});function lm(e){try{const i=new URL(e);return!i.username&&!i.password?e:(i.username="",i.password="",i.toString())}catch{return e}}var um=class{constructor(e){this.capacity=e,this.items=Array.from({length:e})}capacity;items;head=0;tail=0;count=0;get size(){return this.count}push(e){this.items[this.tail]=e,this.tail=(this.tail+1)%this.capacity,this.count<this.capacity?this.count++:this.head=(this.head+1)%this.capacity}drain(e){const i=[],t=Math.min(e,this.count);for(let s=0;s<t;s++)i.push(this.items[this.head]),this.items[this.head]=void 0,this.head=(this.head+1)%this.capacity;return this.count-=t,i}};function mm(e,i,t){const s={};for(const d of Object.keys(t))s[d]=z=>e.addons.custom.mutate({addonId:i,action:d,input:z});return s}});export default zm();
|