@camera.ui/server 2.2.7 → 2.3.0
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/LICENSE.md +8 -1
- package/dist/interface/assets/404-C0X5UBF4.js +1 -0
- package/dist/interface/assets/About-Ctp_u5qK.js +1 -0
- package/dist/interface/assets/Assistant-Bj2bAUHD.css +1 -0
- package/dist/interface/assets/Assistant-CDrBV_mg.js +1 -0
- package/dist/interface/assets/Automation-Dp6V80Iz.js +3 -0
- package/dist/interface/assets/Automation-R5o9sXYY.css +1 -0
- package/dist/interface/assets/AutomationImport-DKgg7atE.js +2 -0
- package/dist/interface/assets/AutomationStore-CU-m5VC8.js +2 -0
- package/dist/interface/assets/AutomationStoreDetail-CiyIs8Iu.js +2 -0
- package/dist/interface/assets/Automations-Dljh-sWu.js +2 -0
- package/dist/interface/assets/Camera-0p0P_mbp.css +1 -0
- package/dist/interface/assets/Camera-Bvovab-8.js +2 -0
- package/dist/interface/assets/CameraConsole-D_Fv-MAi.js +7 -0
- package/dist/interface/assets/Cameras-Cq7Gw-fk.js +651 -0
- package/dist/interface/assets/Camview-Bs2VvmUS.css +1 -0
- package/dist/interface/assets/Camview-CP6PA20C.js +1 -0
- package/dist/interface/assets/CertificateUpload-DjzNMFc3.js +1 -0
- package/dist/interface/assets/Config-Dl2TlyFe.js +2 -0
- package/dist/interface/assets/ConfigActionAssistant-DCkJ_Iqq.js +1 -0
- package/dist/interface/assets/ConfigActionCameraControl-2pzl59gR.js +1 -0
- package/dist/interface/assets/ConfigActionDelay-BAp1dr0N.js +1 -0
- package/dist/interface/assets/ConfigActionHttp-_kqgEuun.js +1 -0
- package/dist/interface/assets/ConfigActionImageInput-BgtACnCm.js +1 -0
- package/dist/interface/assets/ConfigActionMqtt-z7UzccW5.js +1 -0
- package/dist/interface/assets/ConfigActionNotification-bhbb5AqU.js +1 -0
- package/dist/interface/assets/ConfigActionNotificationControl-BbvX8MFu.js +1 -0
- package/dist/interface/assets/ConfigActionOutput-DdgSg3FU.js +1 -0
- package/dist/interface/assets/ConfigActionPlugin-DGjZd1L0.js +1 -0
- package/dist/interface/assets/ConfigActionSensor-DmImWFAo.js +1 -0
- package/dist/interface/assets/ConfigActionSnapshot-hVHSfdtS.js +1 -0
- package/dist/interface/assets/ConfigActionVariable-BIpruwsx.js +1 -0
- package/dist/interface/assets/ConfigConditionIfElse-DRSpsoR4.js +1 -0
- package/dist/interface/assets/ConfigConditionSensorState-C2SNARH7.js +1 -0
- package/dist/interface/assets/ConfigConditionSwitch-4SbQcU7N.js +1 -0
- package/dist/interface/assets/ConfigConditionTime-ESX3shbg.js +1 -0
- package/dist/interface/assets/ConfigSensorValueInput-CTUdAA-R.js +1 -0
- package/dist/interface/assets/ConfigTriggerDetection-BRr6ixxQ.js +1 -0
- package/dist/interface/assets/ConfigTriggerGeofence-D-xRMGrT.js +1 -0
- package/dist/interface/assets/ConfigTriggerManual-aXD6k1qa.js +1 -0
- package/dist/interface/assets/ConfigTriggerMqtt-pjHW4yOL.js +1 -0
- package/dist/interface/assets/ConfigTriggerSchedule-CYOt57qg.js +1 -0
- package/dist/interface/assets/ConfigTriggerSensor-BwJ_cAqd.js +1 -0
- package/dist/interface/assets/ConfigTriggerSystem-DBXIrjzU.js +1 -0
- package/dist/interface/assets/ConfigTriggerWebhook-CccBmMCb.js +1 -0
- package/dist/interface/assets/Console-DWAaz1C6.js +1 -0
- package/dist/interface/assets/CuiAssistantConversation-B3xEiNNt.js +5 -0
- package/dist/interface/assets/CuiAssistantConversation-C5ca1lgX.css +1 -0
- package/dist/interface/assets/CuiAutomationRunsDialog-CfylVPLI.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-ACN23VLS.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-DEVNeDqa.js +1 -0
- package/dist/interface/assets/CuiCameraPipCard-TYTCfwXf.css +1 -0
- package/dist/interface/assets/CuiCameraPipCard-rR_FW9zq.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CnorhPhf.js +1 -0
- package/dist/interface/assets/CuiCameraShares-BxUgedC_.js +1 -0
- package/dist/interface/assets/CuiCameraTable-C3GB4Q2y.js +2 -0
- package/dist/interface/assets/CuiCameraTable-MHfnZSyK.js +1 -0
- package/dist/interface/assets/CuiChartTable-TAzZgetO.js +1 -0
- package/dist/interface/assets/CuiConsole-Cf5lOCE1.js +5 -0
- package/dist/interface/assets/CuiDataTable-DfjXa0C1.js +1 -0
- package/dist/interface/assets/CuiLightControl-ChK-SvJp.js +1 -0
- package/dist/interface/assets/CuiList-C4fxd9lD.js +1 -0
- package/dist/interface/assets/CuiMarkdownContent-Do04YgHe.js +1 -0
- package/dist/interface/assets/CuiMarkdownContent-qOPm3VEi.js +1 -0
- package/dist/interface/assets/CuiPluginCard-DMpANIQj.js +2 -0
- package/dist/interface/assets/CuiPluginCategoryChip-BKxJMid7.js +1 -0
- package/dist/interface/assets/CuiPluginOAuthButton-DnQ838JJ.js +2 -0
- package/dist/interface/assets/CuiPluginTrustBadge-DyYDUWV6.js +1 -0
- package/dist/interface/assets/CuiQRCode-S9fPi0_l.js +1 -0
- package/dist/interface/assets/CuiSchema-DScmDQsh.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-CT10aAlO.js +1 -0
- package/dist/interface/assets/Faces-Coy-tUVM.js +1 -0
- package/dist/interface/assets/FirstSteps-CrMJC049.js +1 -0
- package/dist/interface/assets/Floorplan-Bj_mVrxp.js +1 -0
- package/dist/interface/assets/Floorplan-CT5TrMSD.css +1 -0
- package/dist/interface/assets/Instances-B_mpKAng.js +1 -0
- package/dist/interface/assets/Logs-fY1dpQk4.js +6 -0
- package/dist/interface/assets/Menu-Bgi-NLdg.js +1 -0
- package/dist/interface/assets/Metrics-DnMeIrkf.css +1 -0
- package/dist/interface/assets/Metrics-k9KACiwh.js +12 -0
- package/dist/interface/assets/OAuthDeviceFlow-xTh83xmc.js +1 -0
- package/dist/interface/assets/Plugin-BB7x7UHw.css +1 -0
- package/dist/interface/assets/Plugin-VWq7sONB.js +1 -0
- package/dist/interface/assets/PluginConsole-LnnDOVBL.js +7 -0
- package/dist/interface/assets/PluginDetail-CKD9sbDx.js +2 -0
- package/dist/interface/assets/PluginSchema-BnB0_6Sk.js +1 -0
- package/dist/interface/assets/PluginSearch-BoBZLLbr.js +1 -0
- package/dist/interface/assets/PluginSearch-kGhweU1J.js +2 -0
- package/dist/interface/assets/PluginUpdateProgress-DMx0QlgE.js +1 -0
- package/dist/interface/assets/Plugins-Ekmr6aVa.js +1 -0
- package/dist/interface/assets/RecentEventsFilter-StLJNuks.js +1 -0
- package/dist/interface/assets/Recordings-8PqxJOI3.css +1 -0
- package/dist/interface/assets/Recordings-Bvkuk_TV.js +1 -0
- package/dist/interface/assets/SensorEdit-CAf9Nb01.js +1 -0
- package/dist/interface/assets/SensorHistory-il8bDErX.js +1 -0
- package/dist/interface/assets/Sensors-sxQ6HLKo.js +2 -0
- package/dist/interface/assets/Settings-Bu0G7Ebx.js +1 -0
- package/dist/interface/assets/Settings-DtCSaLPb.css +1 -0
- package/dist/interface/assets/SettingsAccount-8OZJLQi-.js +1 -0
- package/dist/interface/assets/SettingsAccount-bSfFi9YH.js +1 -0
- package/dist/interface/assets/SettingsAppearance-CnvN_Tzr.js +1 -0
- package/dist/interface/assets/SettingsAppearance-EvPWgF4c.js +1 -0
- package/dist/interface/assets/SettingsAssistant-B6s6pHCx.js +1 -0
- package/dist/interface/assets/SettingsBackup-Dd2FaUcN.js +1 -0
- package/dist/interface/assets/SettingsList-SvCO_gfG.js +1 -0
- package/dist/interface/assets/SettingsMqtt-BXBzHX84.js +1 -0
- package/dist/interface/assets/SettingsNotifications-CV-jJwFV.js +1 -0
- package/dist/interface/assets/SettingsPermissions-GchFaWjz.js +1 -0
- package/dist/interface/assets/SettingsRecordings-C4Ch_jmV.js +1 -0
- package/dist/interface/assets/SettingsRemote-CsIGx-LU.css +1 -0
- package/dist/interface/assets/SettingsRemote-OZHDJKSq.js +2 -0
- package/dist/interface/assets/SettingsSystem-BJlHXwVs.js +2 -0
- package/dist/interface/assets/SettingsUsers-RGOkOzx0.js +1 -0
- package/dist/interface/assets/Terminal-DX-ECC91.js +4 -0
- package/dist/interface/assets/Training-B8my7vka.js +1 -0
- package/dist/interface/assets/Training-D1DDjCCD.css +1 -0
- package/dist/interface/assets/Updates-DmavyhAn.js +2 -0
- package/dist/interface/assets/VariableInput-DQJle67Y.js +1 -0
- package/dist/interface/assets/VariableSuggestions-D8V739dF.js +1 -0
- package/dist/interface/assets/VersionsHandler-B41TJhgY.js +7 -0
- package/dist/interface/assets/VirtualSensorCreate-MfLh-LpH.js +1 -0
- package/dist/interface/assets/Workers-CafDeRhH.js +2 -0
- package/dist/interface/assets/Workers-Dey1snI4.css +1 -0
- package/dist/interface/assets/account-DjBQulDn.js +1 -0
- package/dist/interface/assets/ace-BPAekgyf.js +1 -0
- package/dist/interface/assets/ace.config-CvKE-yp1.js +1 -0
- package/dist/interface/assets/alert-circle-B-JCMbb9.js +1 -0
- package/dist/interface/assets/alert-outline-B4ZZowEj.js +1 -0
- package/dist/interface/assets/api-By0v6EeA.css +2 -0
- package/dist/interface/assets/api-D1iULsSy.js +4 -0
- package/dist/interface/assets/api-DbUdfXO_.js +1 -0
- package/dist/interface/assets/arrow-left-PeaVwpHd.js +1 -0
- package/dist/interface/assets/assistant-7hqP6OpA.js +1 -0
- package/dist/interface/assets/assistantModels-D3ncWWu0.js +1 -0
- package/dist/interface/assets/auth-CDxrn7fe.js +1 -0
- package/dist/interface/assets/automations-CTTQlGCW.js +1 -0
- package/dist/interface/assets/back-filled-CJoz7Gkl.js +1 -0
- package/dist/interface/assets/bell-ring-CBf0Yn3H.js +1 -0
- package/dist/interface/assets/brain-uZ03n3LW.js +1 -0
- package/dist/interface/assets/cameraSources-MOiE_1-W.js +1 -0
- package/dist/interface/assets/cctv-VgKQ-dBV.js +1 -0
- package/dist/interface/assets/check-circle-BU-KNgPB.js +1 -0
- package/dist/interface/assets/check-circle-outline-BsxzAMed.js +1 -0
- package/dist/interface/assets/chevron-down-CxK4Sfjs.js +1 -0
- package/dist/interface/assets/chevron-up-DWfNH8va.js +1 -0
- package/dist/interface/assets/clock-outline-BtWx4GaF.js +1 -0
- package/dist/interface/assets/close-Be7oB7d_.js +1 -0
- package/dist/interface/assets/close-circle-D7Jmhp_7.js +1 -0
- package/dist/interface/assets/cloud-check-zCGJxpWI.js +1 -0
- package/dist/interface/assets/cloudHandoff-CJzFH7CW.js +1 -0
- package/dist/interface/assets/config-6EiGxiYm.js +1 -0
- package/dist/interface/assets/content-copy-BcYlfuFc.js +1 -0
- package/dist/interface/assets/copy-DuY-M96E.js +1 -0
- package/dist/interface/assets/cube-scan-Cae03i_N.js +1 -0
- package/dist/interface/assets/database-refresh-outline-B3OEQFF7.js +1 -0
- package/dist/interface/assets/delete-BWgOAzKl.js +1 -0
- package/dist/interface/assets/dist-DmpuuM9s.js +1 -0
- package/dist/interface/assets/dots-vertical-Kby1GY8_.js +1 -0
- package/dist/interface/assets/download-C291Yq7I.js +1 -0
- package/dist/interface/assets/esm-B2TVBF3B.js +1 -0
- package/dist/interface/assets/esm-BEntuCG7.js +1 -0
- package/dist/interface/assets/esm-BRnyrFH8.js +1 -0
- package/dist/interface/assets/esm-CCwXzd_8.js +1 -0
- package/dist/interface/assets/esm-CEjwTsuD.js +1 -0
- package/dist/interface/assets/esm-CGGV9tC4.js +1 -0
- package/dist/interface/assets/esm-CI2tTOc5.js +1 -0
- package/dist/interface/assets/esm-CgxZmMYv.js +1 -0
- package/dist/interface/assets/esm-Csc6f5Fy.js +1 -0
- package/dist/interface/assets/esm-Qzx3d-Ie.js +1 -0
- package/dist/interface/assets/esm-a_w7mTdx.js +1 -0
- package/dist/interface/assets/esm-iKfsu7-H.js +1 -0
- package/dist/interface/assets/esm-ks5kvk_e.js +1 -0
- package/dist/interface/assets/esm-nJfTguKF.js +1 -0
- package/dist/interface/assets/eventLabels-idFWh3Y_.js +1 -0
- package/dist/interface/assets/eye-off-zGCIHKOK.js +1 -0
- package/dist/interface/assets/flowSchema-Dp_-p9WA.js +1 -0
- package/dist/interface/assets/help-circle-outline-DXFepDAG.js +1 -0
- package/dist/interface/assets/history-D-FlZdKD.js +1 -0
- package/dist/interface/assets/home-DPdzRxcM.js +1 -0
- package/dist/interface/assets/information-outline-ChOM9qgI.js +1 -0
- package/dist/interface/assets/intercomService-BQYzjnAi.js +1 -0
- package/dist/interface/assets/lan-DvYEO83l.js +1 -0
- package/dist/interface/assets/main-0oXl_8v7.js +3 -0
- package/dist/interface/assets/main-CdvAniEp.css +1 -0
- package/dist/interface/assets/microphone-D-T9xga4.js +1 -0
- package/dist/interface/assets/minus-4T4INuO4.js +1 -0
- package/dist/interface/assets/mqtt-ChvXxMhR.js +1 -0
- package/dist/interface/assets/native-CtfXrwj5.js +1 -0
- package/dist/interface/assets/native-JMtkOkIV.js +1 -0
- package/dist/interface/assets/nodeDefinitions-Dp8cnne1.js +1 -0
- package/dist/interface/assets/notifications-CbL-1oMs.js +1 -0
- package/dist/interface/assets/pause-DHqHYA3V.js +1 -0
- package/dist/interface/assets/pencil-outline-D-GmPf8M.js +1 -0
- package/dist/interface/assets/pencil-vACi-JzY.js +1 -0
- package/dist/interface/assets/plugin-Dt5Xetfz.js +1 -0
- package/dist/interface/assets/plugins-lsoAntRQ.js +1 -0
- package/dist/interface/assets/plus-BBUb8_uL.js +1 -0
- package/dist/interface/assets/plus-BJb7U4bN.js +1 -0
- package/dist/interface/assets/power-Dm_aNIz-.js +1 -0
- package/dist/interface/assets/radar-Dcvdz--e.js +1 -0
- package/dist/interface/assets/refresh-CO4F18Je.js +1 -0
- package/dist/interface/assets/restore-xRBt3Grb.js +1 -0
- package/dist/interface/assets/rooms-P8WrRIco.js +1 -0
- package/dist/interface/assets/round-alt-arrow-left-bold-CZHXzGS5.js +1 -0
- package/dist/interface/assets/search-D75YW08B.js +1 -0
- package/dist/interface/assets/sensorIcons-BRTtoaHX.js +1 -0
- package/dist/interface/assets/sensorSlots-BTj-IM7z.js +1 -0
- package/dist/interface/assets/sensors-Dxc7HgjZ.js +1 -0
- package/dist/interface/assets/server-DlK8gUoE.js +1 -0
- package/dist/interface/assets/settings-DDOgc5BX.js +1 -0
- package/dist/interface/assets/source-branch-DVHuYlkZ.js +1 -0
- package/dist/interface/assets/theme-BOppzzar.js +1 -0
- package/dist/interface/assets/trash-2-DDKPtl2x.js +1 -0
- package/dist/interface/assets/trash-can-outline-DVH3zgo0.js +1 -0
- package/dist/interface/assets/trash-fill-C_IJ4Vu2.js +1 -0
- package/dist/interface/assets/trash2-DY0XTaJD.js +1 -0
- package/dist/interface/assets/types-CeruGCb8.js +1 -0
- package/dist/interface/assets/types-J1Drrxo1.js +1 -0
- package/dist/interface/assets/types-U4AuTNLR.js +1 -0
- package/dist/interface/assets/undo-YRkBYCnf.js +1 -0
- package/dist/interface/assets/ungrouped-ING_JAuK.js +1 -0
- package/dist/interface/assets/updates-DtVp84Y0.js +1 -0
- package/dist/interface/assets/upload-2WcHRjTq.js +1 -0
- package/dist/interface/assets/upload-BiE7VzTj.js +1 -0
- package/dist/interface/assets/useAppVersion-BGgCk5GD.js +1 -0
- package/dist/interface/assets/useAssistantActions-C13O5EHU.js +1 -0
- package/dist/interface/assets/useBackupRestore-vrhmc9i-.js +1 -0
- package/dist/interface/assets/useCameraOptions-CI1baRmm.js +1 -0
- package/dist/interface/assets/useKeyboardInset-CvgJp091.js +1 -0
- package/dist/interface/assets/useLogsSocket-Bf0BI8ET.js +1 -0
- package/dist/interface/assets/useNavLayout-6zM1Y-7B.js +1 -0
- package/dist/interface/assets/usePermissions-DZitFsBQ.js +1 -0
- package/dist/interface/assets/usePluginUpdates-VZdpJ_Ax.js +1 -0
- package/dist/interface/assets/usePushRegistration-vcbMrTxZ.js +2 -0
- package/dist/interface/assets/useServerRestart-DrpuNbIu.js +1 -0
- package/dist/interface/assets/useStreamStatus-l3Pfk1H4.js +1 -0
- package/dist/interface/assets/useTabSwipe-BSpi25WV.js +1 -0
- package/dist/interface/assets/useUpdateChannel-kAl-5UNY.js +1 -0
- package/dist/interface/assets/useUpdatesSocket-CaFz_fEb.js +1 -0
- package/dist/interface/assets/useUserOptions-BKteXnmU.js +1 -0
- package/dist/interface/assets/variable-Cp8o-q8t.js +1 -0
- package/dist/interface/assets/vendor-Df81FCJz.js +29 -0
- package/dist/interface/assets/vendor-ace-QSsGUspX.js +1085 -0
- package/dist/interface/assets/vendor-cameraui-K1Nw4PvF.js +2326 -0
- package/dist/interface/assets/vendor-capacitor-t5EIN1GG.js +2 -0
- package/dist/interface/assets/vendor-chart-BiJYkx5_.js +3 -0
- package/dist/interface/assets/vendor-core-CJdfpB0I.js +1 -0
- package/dist/interface/assets/vendor-dnd-C1kMh9_t.js +2 -0
- package/dist/interface/assets/vendor-draggabilly-Cw1oJ6qc.js +1 -0
- package/dist/interface/assets/vendor-leaflet-OSZlONe5.js +1 -0
- package/dist/interface/assets/vendor-markdown-DTWiWKBj.js +14 -0
- package/dist/interface/assets/vendor-primevue-DoA2Rwcb.js +3942 -0
- package/dist/interface/assets/vendor-vueflow-DWU_IzGe.js +26 -0
- package/dist/interface/assets/walk-B8FNhXuj.js +1 -0
- package/dist/interface/assets/web-B98ahwoP.js +1 -0
- package/dist/interface/assets/web-BSsSrRZf.js +1 -0
- package/dist/interface/assets/web-BiNRDta4.js +1 -0
- package/dist/interface/assets/web-BjKL51lK-CZKmYhby.js +1 -0
- package/dist/interface/assets/web-BjtOcquy.js +1 -0
- package/dist/interface/assets/web-CkTE9nCG.js +1 -0
- package/dist/interface/assets/web-Cvogq5S5.js +1 -0
- package/dist/interface/assets/web-D-A4EBKj.js +1 -0
- package/dist/interface/assets/web-DVGMBduz.js +1 -0
- package/dist/interface/assets/web-SpWB7I6X.js +1 -0
- package/dist/interface/assets/web-k0ihT_qK.js +1 -0
- package/dist/interface/assets/web-ovBpm7Dl.js +1 -0
- package/dist/interface/assets/web-z5Xz9tOQ.js +1 -0
- package/dist/interface/assets/web-zfhkFevT.js +1 -0
- package/dist/interface/assets/webhook-DIjChTrs.js +1 -0
- package/dist/interface/assets/workbox-window.prod.es5-DRKojI0e.js +1 -0
- package/dist/interface/assets/zoom-in-rMB152Uz.js +1 -0
- package/dist/interface/ha/404-RtgPpD9N.js +60 -0
- package/dist/interface/ha/About-0PRv9bU0.js +55 -0
- package/dist/interface/ha/Assistant-DbwxVfpl.js +9853 -0
- package/dist/interface/ha/Automation-D3HomdH7.js +2029 -0
- package/dist/interface/ha/AutomationImport-nQUUvZcv.js +206 -0
- package/dist/interface/ha/AutomationStore-BXDD92wZ.js +336 -0
- package/dist/interface/ha/AutomationStoreDetail-BYeq7FID.js +122 -0
- package/dist/interface/ha/Automations-CJlGqmSP.js +424 -0
- package/dist/interface/ha/Camera-Ai4BxVh_.js +747 -0
- package/dist/interface/ha/CameraConsole-UMNOX3dE.js +52 -0
- package/dist/interface/ha/Cameras-BW-AEXYi.js +1971 -0
- package/dist/interface/ha/Camview-jikpVEE0.js +1336 -0
- package/dist/interface/ha/Config-BOxwBH2D.js +356 -0
- package/dist/interface/ha/ConfigActionAssistant--3iWk9sq.js +182 -0
- package/dist/interface/ha/ConfigActionCameraControl-DbVXWTeA.js +152 -0
- package/dist/interface/ha/ConfigActionHttp-Du3n2Yj0.js +134 -0
- package/dist/interface/ha/ConfigActionImageInput-BrJrTZTY.js +171 -0
- package/dist/interface/ha/ConfigActionMqtt-DZd1BNUt.js +81 -0
- package/dist/interface/ha/ConfigActionNotification-CJWW10gt.js +199 -0
- package/dist/interface/ha/ConfigActionNotificationControl-Bl41AVv1.js +111 -0
- package/dist/interface/ha/ConfigActionOutput-OTj7Lwgq.js +98 -0
- package/dist/interface/ha/ConfigActionPlugin-B790PEk0.js +172 -0
- package/dist/interface/ha/ConfigActionSensor-BG3jZxge.js +139 -0
- package/dist/interface/ha/ConfigActionSnapshot-fGmLl6jb.js +48 -0
- package/dist/interface/ha/ConfigActionVariable-CK3vYDsr.js +88 -0
- package/dist/interface/ha/ConfigConditionIfElse-DyFLGg3y.js +124 -0
- package/dist/interface/ha/ConfigConditionSensorState-BUTfeFO2.js +192 -0
- package/dist/interface/ha/ConfigConditionSwitch-iDG_ubif.js +128 -0
- package/dist/interface/ha/ConfigSensorValueInput-BmRIGUKB.js +170 -0
- package/dist/interface/ha/ConfigTriggerDetection-DyPQGt9M.js +241 -0
- package/dist/interface/ha/ConfigTriggerGeofence-CGE-bH_t.js +4888 -0
- package/dist/interface/ha/ConfigTriggerMqtt-CM3KZqBc.js +134 -0
- package/dist/interface/ha/ConfigTriggerSensor-DoHMcwP4.js +73 -0
- package/dist/interface/ha/ConfigTriggerSystem-BYKbW4Zr.js +192 -0
- package/dist/interface/ha/ConfigTriggerWebhook-5PBAadG8.js +94 -0
- package/dist/interface/ha/Console-BEXzl4p1.js +348 -0
- package/dist/interface/ha/CuiAutomationRunsDialog-DkK_ar5G.js +130 -0
- package/dist/interface/ha/CuiBottomSheet-CYNvQV4T.js +270 -0
- package/dist/interface/ha/CuiCameraRecordings-DYjecmE_.js +533 -0
- package/dist/interface/ha/CuiCameraShares-C0H60nZS.js +121 -0
- package/dist/interface/ha/CuiCameraTable-CQNMyBaq.js +169 -0
- package/dist/interface/ha/CuiChartTable-Bhv1p9zj.js +6801 -0
- package/dist/interface/ha/CuiConsole-DtXorGF5.js +244 -0
- package/dist/interface/ha/CuiDataTable-Cy8EjCk9.js +8732 -0
- package/dist/interface/ha/CuiList-DnW6Q5m2.js +57 -0
- package/dist/interface/ha/CuiPluginCard-B4SCUblV.js +769 -0
- package/dist/interface/ha/CuiPluginOAuthButton-BKg9SftQ.js +79 -0
- package/dist/interface/ha/CuiPluginTrustBadge-CEtUJhCJ.js +123 -0
- package/dist/interface/ha/CuiQRCode-gp-9hqyk.js +86 -0
- package/dist/interface/ha/CuiSchema-CYpr_dD7.js +963 -0
- package/dist/interface/ha/CuiTopNavbarItem-CM-1oPxf.js +140 -0
- package/dist/interface/ha/Faces-pa60ySng.js +1575 -0
- package/dist/interface/ha/FirstSteps-D42yZm7R.js +251 -0
- package/dist/interface/ha/Floorplan-BvE546pE.js +3657 -0
- package/dist/interface/ha/Instances-CAGCyfbB.js +680 -0
- package/dist/interface/ha/Logs-RB3Ba8WM.js +418 -0
- package/dist/interface/ha/Menu-hAnHu_jq.js +156 -0
- package/dist/interface/ha/Metrics-ChYTebkX.js +1448 -0
- package/dist/interface/ha/OAuthDeviceFlow-C05pH-9o.js +112 -0
- package/dist/interface/ha/Plugin-D7XwcXkW.js +1752 -0
- package/dist/interface/ha/PluginConsole-DphEIOlL.js +56 -0
- package/dist/interface/ha/PluginDetail-DfMl-yCl.js +805 -0
- package/dist/interface/ha/PluginSearch-BPN4Opg5.js +462 -0
- package/dist/interface/ha/PluginUpdateProgress-ByJ0R5sW.js +34 -0
- package/dist/interface/ha/Plugins-BhKmjjNn.js +692 -0
- package/dist/interface/ha/RecentEventsFilter-BkLMlGVJ.js +78 -0
- package/dist/interface/ha/Recordings-BaU7M1OW.js +1836 -0
- package/dist/interface/ha/SensorEdit-DWxcCJ0F.js +1462 -0
- package/dist/interface/ha/SensorHistory-DuA9E9wT.js +54 -0
- package/dist/interface/ha/Sensors-CVpIHcgG.js +1402 -0
- package/dist/interface/ha/Settings-BO2eBGEn.js +218 -0
- package/dist/interface/ha/SettingsAccount-BQZZfoSM.js +971 -0
- package/dist/interface/ha/SettingsAppearance-B_yGl89u.js +220 -0
- package/dist/interface/ha/SettingsAssistant-kMOixl9g.js +2025 -0
- package/dist/interface/ha/SettingsBackup-BpG-W4j-.js +556 -0
- package/dist/interface/ha/SettingsList-Btnkzu94.js +40 -0
- package/dist/interface/ha/SettingsMqtt-C4DX9cNC.js +526 -0
- package/dist/interface/ha/SettingsNotifications-DI6ImggH.js +529 -0
- package/dist/interface/ha/SettingsPermissions-BCDyCFcb.js +84 -0
- package/dist/interface/ha/SettingsRecordings-Bq5NkJhd.js +152 -0
- package/dist/interface/ha/SettingsRemote-CtncaPIA.js +1813 -0
- package/dist/interface/ha/SettingsSystem-BJXuA7xA.js +376 -0
- package/dist/interface/ha/SettingsUsers-BF0rDluv.js +379 -0
- package/dist/interface/ha/Terminal-kTCe2jP3.js +612 -0
- package/dist/interface/ha/Training-BM2Xb8Ef.js +1754 -0
- package/dist/interface/ha/Updates-Cv1EY_T0.js +343 -0
- package/dist/interface/ha/VariableInput-BO2zZu4N.js +52 -0
- package/dist/interface/ha/VersionsHandler-CRnT9-K7.js +216 -0
- package/dist/interface/ha/VirtualSensorCreate-6dVRxPjw.js +101 -0
- package/dist/interface/ha/Workers-MHia86lu.js +814 -0
- package/dist/interface/ha/ace-C9MtBQVV.js +13236 -0
- package/dist/interface/ha/ace.config-CSXnaIzV.js +1429 -0
- package/dist/interface/ha/api-CH_Y8Hee.js +65411 -0
- package/dist/interface/ha/api-DylRa66V.js +29 -0
- package/dist/interface/ha/assistant-smRQYA6p.js +349 -0
- package/dist/interface/ha/auth-BXj5Fm6s.js +271 -0
- package/dist/interface/ha/automationBlueprint-DGjftXFC.js +250 -0
- package/dist/interface/ha/cameraui-cards.js +1 -1
- package/dist/interface/ha/cards-E0zw1UVg.js +13477 -0
- package/dist/interface/ha/config-dG_DA6XL.js +116 -0
- package/dist/interface/ha/dist-BQf9ANPx.js +3257 -0
- package/dist/interface/ha/dist-euRmladF.js +287 -0
- package/dist/interface/ha/eventLabels-B5GrM5jO.js +734 -0
- package/dist/interface/ha/intercomService-BtJ_zUNd.js +1400 -0
- package/dist/interface/ha/mqtt-CP3vVkRJ.js +56 -0
- package/dist/interface/ha/notifications-CZNwSXTg.js +159 -0
- package/dist/interface/ha/pinia-CVnHHb-s.js +7696 -0
- package/dist/interface/ha/plugins--eatOIaI.js +592 -0
- package/dist/interface/ha/protocol-BB4jdtUC-BhEwymva.js +789 -0
- package/dist/interface/ha/rooms-D5E6K75d.js +45 -0
- package/dist/interface/ha/server-D1BqEY7i.js +239 -0
- package/dist/interface/ha/types-CWogEoya.js +1073 -0
- package/dist/interface/ha/ungrouped-Ch4UX4dy.js +58 -0
- package/dist/interface/ha/updates-B48Owi1w.js +341 -0
- package/dist/interface/ha/useAppVersion-D95sKTJR.js +22 -0
- package/dist/interface/ha/useAssistantActions-kDwiO-u5.js +29 -0
- package/dist/interface/ha/useKeyboardInset-C2R51vsC.js +27 -0
- package/dist/interface/ha/useLogsSocket-BzNWa2y2.js +59 -0
- package/dist/interface/ha/useNavLayout-228cwwqA.js +125 -0
- package/dist/interface/ha/usePermissions-CfA5x7Df.js +72 -0
- package/dist/interface/ha/useServerRestart-B0c40zs5.js +23 -0
- package/dist/interface/ha/useTabSwipe-CfZg5hWj.js +45 -0
- package/dist/interface/ha/useUpdateChannel-DQxI7FrD.js +22 -0
- package/dist/interface/ha/useUpdatesSocket-B8LqBBd3.js +34 -0
- package/dist/interface/ha/useUserOptions-dZf6ejlz.js +15 -0
- package/dist/interface/ha/walk-CsSXaeJw.js +33 -0
- package/dist/interface/index.html +71 -72
- package/dist/interface/sw.js +1 -1
- package/dist/interface/workbox-5f52ac45.js +1 -0
- package/dist/server/package.json +23 -23
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +22 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +12 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +5 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +5 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +2 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +6 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +92 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +16 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +1 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +3 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/person_embedder.py +65 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/segmenter.py +81 -0
- package/dist/server/src/api/controllers/plugins.controller.js +1 -0
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/api/controllers/workers.controller.d.ts +2 -2
- package/dist/server/src/api/controllers/workers.controller.js +8 -2
- package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +2 -1
- package/dist/server/src/api/database/index.js +31 -7
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-2-9.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-2-9.js +28 -0
- package/dist/server/src/api/database/migrations/v2-2-9.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +4 -1
- package/dist/server/src/api/database/record-schemas.js +1 -0
- package/dist/server/src/api/database/record-schemas.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +21 -1
- package/dist/server/src/api/routes/workers.routes.js +4 -4
- package/dist/server/src/api/routes/workers.routes.js.map +1 -1
- package/dist/server/src/api/schemas/assistant.schema.d.ts +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +178 -76
- package/dist/server/src/api/schemas/cameras.schema.js +26 -2
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/training.schema.d.ts +15 -3
- package/dist/server/src/api/schemas/training.schema.js +4 -1
- package/dist/server/src/api/schemas/training.schema.js.map +1 -1
- package/dist/server/src/api/schemas/users.schema.d.ts +12 -0
- package/dist/server/src/api/schemas/users.schema.js +4 -0
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/schemas/workers.schema.d.ts +5 -4
- package/dist/server/src/api/schemas/workers.schema.js +6 -3
- package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.d.ts +3 -0
- package/dist/server/src/api/services/cameras.service.js +47 -2
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.d.ts +1 -0
- package/dist/server/src/api/services/plugins.service.js +5 -1
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/workers.service.d.ts +2 -0
- package/dist/server/src/api/services/workers.service.js +15 -0
- package/dist/server/src/api/services/workers.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +3 -2
- package/dist/server/src/api/websocket/nsp/worker-perf.js +2 -0
- package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +1 -0
- package/dist/server/src/assistant/pricing.js +39 -10
- package/dist/server/src/assistant/pricing.js.map +1 -1
- package/dist/server/src/assistant/providers.js +9 -1
- package/dist/server/src/assistant/providers.js.map +1 -1
- package/dist/server/src/assistant/search.d.ts +17 -0
- package/dist/server/src/assistant/search.js +10 -2
- package/dist/server/src/assistant/search.js.map +1 -1
- package/dist/server/src/assistant/tools/plugins.js +7 -3
- package/dist/server/src/assistant/tools/plugins.js.map +1 -1
- package/dist/server/src/assistant/types.d.ts +2 -0
- package/dist/server/src/automations/actions/plugin.js +5 -9
- package/dist/server/src/automations/actions/plugin.js.map +1 -1
- package/dist/server/src/automations/pluginMethodRegistry.d.ts +6 -0
- package/dist/server/src/automations/pluginMethodRegistry.js +39 -0
- package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
- package/dist/server/src/automations/segment-picture.d.ts +16 -0
- package/dist/server/src/automations/segment-picture.js +152 -0
- package/dist/server/src/automations/segment-picture.js.map +1 -0
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -2
- package/dist/server/src/camera/decoder/detection-coordinator.js +45 -22
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +30 -2
- package/dist/server/src/camera/decoder/detection-pipeline.js +81 -21
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/event-manager.d.ts +13 -4
- package/dist/server/src/camera/decoder/event-manager.js +108 -128
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
- package/dist/server/src/camera/decoder/event-trace.d.ts +41 -1
- package/dist/server/src/camera/decoder/event-trace.js +63 -8
- package/dist/server/src/camera/decoder/event-trace.js.map +1 -1
- package/dist/server/src/camera/decoder/face-tracks.d.ts +26 -0
- package/dist/server/src/camera/decoder/face-tracks.js +199 -0
- package/dist/server/src/camera/decoder/face-tracks.js.map +1 -0
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +3 -1
- package/dist/server/src/camera/decoder/frame-scaler.js +36 -8
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.d.ts +6 -0
- package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
- package/dist/server/src/camera/decoder/perf-tracker.d.ts +2 -0
- package/dist/server/src/camera/decoder/perf-tracker.js +4 -0
- package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.d.ts +6 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.js +107 -25
- package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +10 -8
- package/dist/server/src/camera/decoder/secondary-stage.js +145 -125
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/training-sink.d.ts +5 -2
- package/dist/server/src/camera/decoder/training-sink.js +30 -6
- package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
- package/dist/server/src/camera/decoder/types.d.ts +6 -2
- package/dist/server/src/camera/decoder/types.js +4 -2
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/manager/coreManager.d.ts +2 -1
- package/dist/server/src/manager/coreManager.js +9 -2
- package/dist/server/src/manager/coreManager.js.map +1 -1
- package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -1
- package/dist/server/src/manager/trainingCandidateManager.js +25 -3
- package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
- package/dist/server/src/manager/trainingSubmission.d.ts +5 -0
- package/dist/server/src/manager/trainingSubmission.js +73 -0
- package/dist/server/src/manager/trainingSubmission.js.map +1 -0
- package/dist/server/src/manager/types.d.ts +8 -2
- package/dist/server/src/manager/types.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +3 -0
- package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -0
- package/dist/server/src/plugins/runtime/python/rpc/typings.py +1 -1
- package/dist/server/src/remote/api/routes/train.d.ts +44 -3
- package/dist/server/src/remote/api/routes/train.js +2 -2
- package/dist/server/src/remote/api/routes/train.js.map +1 -1
- package/dist/server/src/rpc/interfaces/core.d.ts +7 -3
- package/dist/server/src/rpc/interfaces/detection.d.ts +20 -3
- package/dist/server/src/rpc/server.d.ts +2 -0
- package/dist/server/src/rpc/server.js +8 -5
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.d.ts +3 -0
- package/dist/server/src/sensors/registry.js +44 -11
- package/dist/server/src/sensors/registry.js.map +1 -1
- package/dist/server/src/sensors/types.d.ts +1 -0
- package/dist/server/src/sensors/types.js +3 -0
- package/dist/server/src/sensors/types.js.map +1 -1
- package/dist/server/src/services/config/index.d.ts +1 -0
- package/dist/server/src/services/config/index.js +2 -0
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/utils/image.d.ts +6 -0
- package/dist/server/src/utils/image.js +58 -22
- package/dist/server/src/utils/image.js.map +1 -1
- package/dist/server/src/workers/agent.js +2 -0
- package/dist/server/src/workers/agent.js.map +1 -1
- package/dist/server/src/workers/manager.d.ts +1 -0
- package/dist/server/src/workers/manager.js +22 -0
- package/dist/server/src/workers/manager.js.map +1 -1
- package/dist/server/src/workers/types.d.ts +5 -0
- package/dist/server/src/workers/types.js.map +1 -1
- package/npm-shrinkwrap.json +212 -171
- package/package.json +23 -23
- package/dist/interface/assets/404-C8EoOtBl.js +0 -1
- package/dist/interface/assets/About-Q7ZmOGgl.js +0 -1
- package/dist/interface/assets/Assistant-BQ6Ld-bt.css +0 -1
- package/dist/interface/assets/Assistant-DFLgklVe.js +0 -1
- package/dist/interface/assets/Automation-BSicfOGF.css +0 -1
- package/dist/interface/assets/Automation-D__qvx8c.js +0 -3
- package/dist/interface/assets/AutomationImport-CLQSdqg9.js +0 -2
- package/dist/interface/assets/AutomationStore-Dt6yTQDb.js +0 -2
- package/dist/interface/assets/AutomationStoreDetail-DqBrBhUI.js +0 -2
- package/dist/interface/assets/Automations-BH_7lYR7.js +0 -2
- package/dist/interface/assets/Camera-BW9ikKqh.css +0 -1
- package/dist/interface/assets/Camera-aquPHFwb.js +0 -2
- package/dist/interface/assets/CameraConsole-rhle_cfW.js +0 -7
- package/dist/interface/assets/Cameras-Bzy3P0xN.js +0 -651
- package/dist/interface/assets/Camview-Bri_T7Tq.css +0 -1
- package/dist/interface/assets/Camview-CjcQbtTl.js +0 -1
- package/dist/interface/assets/CertificateUpload-CWVu_52v.js +0 -1
- package/dist/interface/assets/Config-Dc1zKIPq.js +0 -2
- package/dist/interface/assets/ConfigActionAssistant-AfQfSqHZ.js +0 -1
- package/dist/interface/assets/ConfigActionCameraControl-BKQdHxqe.js +0 -1
- package/dist/interface/assets/ConfigActionDelay-B52HeJGb.js +0 -1
- package/dist/interface/assets/ConfigActionHttp-BP5gvpQc.js +0 -1
- package/dist/interface/assets/ConfigActionImageInput-DE2mSost.js +0 -1
- package/dist/interface/assets/ConfigActionMqtt-CYgnZjAE.js +0 -1
- package/dist/interface/assets/ConfigActionNotification-C3q53I4n.js +0 -1
- package/dist/interface/assets/ConfigActionNotificationControl-eDJ8r5ao.js +0 -1
- package/dist/interface/assets/ConfigActionOutput-DgYSYvy-.js +0 -1
- package/dist/interface/assets/ConfigActionPlugin-utolgAXk.js +0 -1
- package/dist/interface/assets/ConfigActionSensor-CmEKQPqs.js +0 -1
- package/dist/interface/assets/ConfigActionSnapshot-D7XucxVV.js +0 -1
- package/dist/interface/assets/ConfigActionVariable-C-Mjm3gr.js +0 -1
- package/dist/interface/assets/ConfigConditionIfElse-B24Rqb8y.js +0 -1
- package/dist/interface/assets/ConfigConditionSensorState-42-yFDmK.js +0 -1
- package/dist/interface/assets/ConfigConditionSwitch-DezH_nwm.js +0 -1
- package/dist/interface/assets/ConfigConditionTime-Cg2Lwznd.js +0 -1
- package/dist/interface/assets/ConfigSensorValueInput-YHBDCTZm.js +0 -1
- package/dist/interface/assets/ConfigTriggerDetection-DxEpodjG.js +0 -1
- package/dist/interface/assets/ConfigTriggerGeofence-Bye8syxc.js +0 -1
- package/dist/interface/assets/ConfigTriggerManual-s_lEDTV9.js +0 -1
- package/dist/interface/assets/ConfigTriggerMqtt-DqdZj7TU.js +0 -1
- package/dist/interface/assets/ConfigTriggerSchedule-Q559hn6g.js +0 -1
- package/dist/interface/assets/ConfigTriggerSensor-DIKkdbTF.js +0 -1
- package/dist/interface/assets/ConfigTriggerSystem-CwNZ4xEg.js +0 -1
- package/dist/interface/assets/ConfigTriggerWebhook-9ZC6X4mK.js +0 -1
- package/dist/interface/assets/Console-BqIDZ5vq.js +0 -1
- package/dist/interface/assets/CuiAssistantConversation-BmBhwrNh.css +0 -1
- package/dist/interface/assets/CuiAssistantConversation-CM7KdaX2.js +0 -5
- package/dist/interface/assets/CuiAutomationRunsDialog-CVjCLiVW.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-CFohFiO2.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-D75L0Zny.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-BQKk4fxY.css +0 -1
- package/dist/interface/assets/CuiCameraPipCard-eiJjYZ5W.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-DdEWkJrO.js +0 -1
- package/dist/interface/assets/CuiCameraShares-8mtgFsQ_.js +0 -1
- package/dist/interface/assets/CuiCameraTable-CmCT-XQF.js +0 -2
- package/dist/interface/assets/CuiCameraTable-DHrKoD9s.js +0 -1
- package/dist/interface/assets/CuiChartTable-v8sGY6PD.js +0 -1
- package/dist/interface/assets/CuiConsole-DYV-FUE0.js +0 -5
- package/dist/interface/assets/CuiDataTable-C0gsYYpg.js +0 -1
- package/dist/interface/assets/CuiLightControl-CFIwBj3C.js +0 -1
- package/dist/interface/assets/CuiList-9TVV8SB6.js +0 -1
- package/dist/interface/assets/CuiMarkdownContent-BYBQX_aF.js +0 -1
- package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +0 -1
- package/dist/interface/assets/CuiPluginCard-DEfqwUhQ.js +0 -2
- package/dist/interface/assets/CuiPluginCategoryChip-DhnIBJHa.js +0 -1
- package/dist/interface/assets/CuiPluginOAuthButton-DAuzNRAA.js +0 -2
- package/dist/interface/assets/CuiPluginTrustBadge-Bz710WwC.js +0 -1
- package/dist/interface/assets/CuiQRCode-B8-4GHSY.js +0 -1
- package/dist/interface/assets/CuiSchema-C_CHuKuf.js +0 -1
- package/dist/interface/assets/CuiTopNavbarItem-CNEnOPSh.js +0 -1
- package/dist/interface/assets/Faces-DRHMrrxh.js +0 -1
- package/dist/interface/assets/FirstSteps-Ci2Iqbe2.js +0 -1
- package/dist/interface/assets/Floorplan-Ci63Zd8W.css +0 -1
- package/dist/interface/assets/Floorplan-CqWIbDbh.js +0 -1
- package/dist/interface/assets/Instances-gzKFKB1l.js +0 -1
- package/dist/interface/assets/Logs-DL1yw_Pe.js +0 -6
- package/dist/interface/assets/Menu-C0GQ63aj.js +0 -1
- package/dist/interface/assets/Metrics-BYnnb7M0.js +0 -12
- package/dist/interface/assets/Metrics-DsHBab6t.css +0 -1
- package/dist/interface/assets/OAuthDeviceFlow-Zd6r9IHU.js +0 -1
- package/dist/interface/assets/Plugin-DJIrYUnZ.js +0 -1
- package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +0 -1
- package/dist/interface/assets/PluginConsole-ag0jPZQ_.js +0 -7
- package/dist/interface/assets/PluginDetail-DmElwUuV.js +0 -2
- package/dist/interface/assets/PluginSchema-CxUujnVs.js +0 -1
- package/dist/interface/assets/PluginSearch-B-2zH2Xy.js +0 -1
- package/dist/interface/assets/PluginSearch-BqzngVRL.js +0 -2
- package/dist/interface/assets/PluginUpdateProgress-CFut0RAe.js +0 -1
- package/dist/interface/assets/Plugins-ZFcB_j6v.js +0 -1
- package/dist/interface/assets/RecentEventsFilter-CqeHhECT.js +0 -1
- package/dist/interface/assets/Recordings-BEKAn6QK.css +0 -1
- package/dist/interface/assets/Recordings-BJrtW9eG.js +0 -1
- package/dist/interface/assets/SensorEdit-Bi0gg-CL.js +0 -1
- package/dist/interface/assets/SensorHistory-q0UR3qMG.js +0 -1
- package/dist/interface/assets/Sensors-C_InhcHA.js +0 -2
- package/dist/interface/assets/Settings-Cv38rGWn.js +0 -1
- package/dist/interface/assets/Settings-D7495zbV.css +0 -1
- package/dist/interface/assets/SettingsAccount-B05739dn.js +0 -1
- package/dist/interface/assets/SettingsAccount-gm28wtbl.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DdyYUgmV.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DwUknDPV.js +0 -1
- package/dist/interface/assets/SettingsAssistant-ChHfkUKk.js +0 -1
- package/dist/interface/assets/SettingsBackup-DKwlPQhD.js +0 -1
- package/dist/interface/assets/SettingsList-D6hqnvUo.js +0 -1
- package/dist/interface/assets/SettingsMqtt-C01fgLY0.js +0 -1
- package/dist/interface/assets/SettingsNotifications-D47cIquQ.js +0 -1
- package/dist/interface/assets/SettingsPermissions-BeTCTrAf.js +0 -1
- package/dist/interface/assets/SettingsRecordings-mwL6Dalr.js +0 -1
- package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +0 -1
- package/dist/interface/assets/SettingsRemote-MhaShPIf.js +0 -2
- package/dist/interface/assets/SettingsSystem-BXnzXgqm.js +0 -2
- package/dist/interface/assets/SettingsUsers-D2mVlJin.js +0 -1
- package/dist/interface/assets/Terminal-C1UoXDRK.js +0 -4
- package/dist/interface/assets/Training-A5ynOv_l.js +0 -1
- package/dist/interface/assets/Training-C-ToeAl4.css +0 -1
- package/dist/interface/assets/Updates-kS_Tm8HD.js +0 -2
- package/dist/interface/assets/VariableInput-D9PfI8Ut.js +0 -1
- package/dist/interface/assets/VariableSuggestions-DArWzQuE.js +0 -1
- package/dist/interface/assets/VersionsHandler-BZVMpB2v.js +0 -7
- package/dist/interface/assets/VirtualSensorCreate-Cz-QFo4R.js +0 -1
- package/dist/interface/assets/Workers-2sc4VMi9.js +0 -2
- package/dist/interface/assets/Workers-DH59zE1C.css +0 -1
- package/dist/interface/assets/account-DwW7pBOb.js +0 -1
- package/dist/interface/assets/ace-DzzM-RlW.js +0 -1
- package/dist/interface/assets/ace.config-CCyX_Ohk.js +0 -1
- package/dist/interface/assets/alert-circle-BdUVAt1B.js +0 -1
- package/dist/interface/assets/alert-outline-IRxYbw0j.js +0 -1
- package/dist/interface/assets/api-CGfJbsTz.css +0 -2
- package/dist/interface/assets/api-CzwdnGAH.js +0 -1
- package/dist/interface/assets/api-DOpXVpef.js +0 -4
- package/dist/interface/assets/arrow-left-Bk-ZrOVr.js +0 -1
- package/dist/interface/assets/assistant-hGCAgv-f.js +0 -1
- package/dist/interface/assets/assistantModels-BsSgRsws.js +0 -1
- package/dist/interface/assets/auth-By-S-WEr.js +0 -1
- package/dist/interface/assets/automations-vwIwb2PQ.js +0 -1
- package/dist/interface/assets/back-filled-D-X19YMO.js +0 -1
- package/dist/interface/assets/bell-ring-DreEHgoT.js +0 -1
- package/dist/interface/assets/brain-DuDAg544.js +0 -1
- package/dist/interface/assets/cameraSources-BMhXvtFt.js +0 -1
- package/dist/interface/assets/cctv-DM-C_8_6.js +0 -1
- package/dist/interface/assets/check-circle-Bevuw8-0.js +0 -1
- package/dist/interface/assets/check-circle-outline-aMxkvksr.js +0 -1
- package/dist/interface/assets/chevron-down-CCFn9Z56.js +0 -1
- package/dist/interface/assets/chevron-up-CSImUM3_.js +0 -1
- package/dist/interface/assets/clock-outline-DH3WIEJt.js +0 -1
- package/dist/interface/assets/close-CMxyM4v9.js +0 -1
- package/dist/interface/assets/close-circle-CfgJCZ9A.js +0 -1
- package/dist/interface/assets/cloud-check-CbdFLIdR.js +0 -1
- package/dist/interface/assets/cloudHandoff-BnzjCpJ2.js +0 -1
- package/dist/interface/assets/config-BQxEwrK6.js +0 -1
- package/dist/interface/assets/content-copy-Bz49QPOI.js +0 -1
- package/dist/interface/assets/copy-DA6QQHRt.js +0 -1
- package/dist/interface/assets/cube-scan-IiH8zwm2.js +0 -1
- package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +0 -1
- package/dist/interface/assets/delete-Btu-UVx9.js +0 -1
- package/dist/interface/assets/dist-D_qWDAKp.js +0 -1
- package/dist/interface/assets/dots-vertical-D496SIss.js +0 -1
- package/dist/interface/assets/download-BSC7lwq_.js +0 -1
- package/dist/interface/assets/esm-Bn9gXwX4.js +0 -1
- package/dist/interface/assets/esm-BzM6y2-F.js +0 -1
- package/dist/interface/assets/esm-CP3JWrtj.js +0 -1
- package/dist/interface/assets/esm-CjAXkqCf.js +0 -1
- package/dist/interface/assets/esm-Cqxk-j1S.js +0 -1
- package/dist/interface/assets/esm-DFHd3JNU.js +0 -1
- package/dist/interface/assets/esm-DfMLJtug.js +0 -1
- package/dist/interface/assets/esm-DhDrpq7a.js +0 -1
- package/dist/interface/assets/esm-DvhM-SOd.js +0 -1
- package/dist/interface/assets/esm-G63bqygQ.js +0 -1
- package/dist/interface/assets/esm-Gn-Y59hU.js +0 -1
- package/dist/interface/assets/esm-KJSOz2vj.js +0 -1
- package/dist/interface/assets/esm-Ryfc94Tm.js +0 -1
- package/dist/interface/assets/esm-rSfI5Poy.js +0 -1
- package/dist/interface/assets/eventIcons-UQutPG3p.js +0 -1
- package/dist/interface/assets/eventLabels-BsPoPWS9.js +0 -1
- package/dist/interface/assets/eye-off-CSU0U8g7.js +0 -1
- package/dist/interface/assets/eye-off-outline-DCxLRGo_.js +0 -1
- package/dist/interface/assets/flowSchema-BPq6iHks.js +0 -1
- package/dist/interface/assets/help-circle-outline-Cr_yNhPi.js +0 -1
- package/dist/interface/assets/history-anuCbp1T.js +0 -1
- package/dist/interface/assets/home-N3bDR1vX.js +0 -1
- package/dist/interface/assets/information-outline-CMWIvLNB.js +0 -1
- package/dist/interface/assets/intercomService-CXcjcPa9.js +0 -1
- package/dist/interface/assets/lan-CYXjdk7L.js +0 -1
- package/dist/interface/assets/main-By4L33Im.js +0 -3
- package/dist/interface/assets/main-DVa5U7UB.css +0 -1
- package/dist/interface/assets/microphone-BB2pATI_.js +0 -1
- package/dist/interface/assets/minus-BCp3ZNKO.js +0 -1
- package/dist/interface/assets/mqtt-DE1KQ8Td.js +0 -1
- package/dist/interface/assets/native-CZJE8bTs.js +0 -1
- package/dist/interface/assets/native-DKZwialB.js +0 -1
- package/dist/interface/assets/nodeDefinitions-ByrqsENY.js +0 -1
- package/dist/interface/assets/notifications-BCyiD-TP.js +0 -1
- package/dist/interface/assets/pause-BQlxwAW2.js +0 -1
- package/dist/interface/assets/pencil-CDsNnEXi.js +0 -1
- package/dist/interface/assets/pencil-outline-CIQL5Kui.js +0 -1
- package/dist/interface/assets/plugin-DSEMkqaK.js +0 -1
- package/dist/interface/assets/plugins-BJPCV1YL.js +0 -1
- package/dist/interface/assets/plus-Bp4q9G7S.js +0 -1
- package/dist/interface/assets/plus-CySoovdr.js +0 -1
- package/dist/interface/assets/power-WmBLDR0-.js +0 -1
- package/dist/interface/assets/radar-CyYAmume.js +0 -1
- package/dist/interface/assets/refresh-CHTA3jVN.js +0 -1
- package/dist/interface/assets/restore-C8RNM5yX.js +0 -1
- package/dist/interface/assets/rooms-Dr4yiakO.js +0 -1
- package/dist/interface/assets/round-alt-arrow-left-bold-Gh5mi_yR.js +0 -1
- package/dist/interface/assets/search-BajCVmOI.js +0 -1
- package/dist/interface/assets/sensorIcons-DofElQ3w.js +0 -1
- package/dist/interface/assets/sensorSlots-D2KJGvPw.js +0 -1
- package/dist/interface/assets/sensors-3llrL7s3.js +0 -1
- package/dist/interface/assets/server-Dw5DD473.js +0 -1
- package/dist/interface/assets/settings-DnksaK7m.js +0 -1
- package/dist/interface/assets/source-branch-CzqIPffP.js +0 -1
- package/dist/interface/assets/theme-C85LJhOY.js +0 -1
- package/dist/interface/assets/trash-2-DJeEhHf4.js +0 -1
- package/dist/interface/assets/trash-can-outline-DrT6iw7I.js +0 -1
- package/dist/interface/assets/trash-fill-Bb_-UicM.js +0 -1
- package/dist/interface/assets/trash2-Dsl8gfxq.js +0 -1
- package/dist/interface/assets/types-CPhy0Ovw.js +0 -1
- package/dist/interface/assets/types-DYKmSGl4.js +0 -1
- package/dist/interface/assets/types-i1kTodPP.js +0 -1
- package/dist/interface/assets/undo-DoqJW-k7.js +0 -1
- package/dist/interface/assets/ungrouped-BlheTJCh.css +0 -1
- package/dist/interface/assets/ungrouped-C2CWO39a.js +0 -1
- package/dist/interface/assets/updates-C2LhMkNR.js +0 -1
- package/dist/interface/assets/upload-C3w1XH-o.js +0 -1
- package/dist/interface/assets/upload-DtIcwiNC.js +0 -1
- package/dist/interface/assets/useAppVersion-DkazK9Vu.js +0 -1
- package/dist/interface/assets/useAssistantActions-BZP6NL18.js +0 -1
- package/dist/interface/assets/useBackupRestore-DMQW_CVC.js +0 -1
- package/dist/interface/assets/useCameraOptions-DnI0xLrX.js +0 -1
- package/dist/interface/assets/useKeyboardInset-Cr7SxKGN.js +0 -1
- package/dist/interface/assets/useLogsSocket-C3Y8S0Ar.js +0 -1
- package/dist/interface/assets/useNavLayout-C9pcDuVP.js +0 -1
- package/dist/interface/assets/usePermissions-CCTxwXF0.js +0 -1
- package/dist/interface/assets/usePluginUpdates-DBhLWAua.js +0 -1
- package/dist/interface/assets/usePushRegistration-CPRVdLAx.js +0 -2
- package/dist/interface/assets/useServerRestart-bScBLJ9r.js +0 -1
- package/dist/interface/assets/useStreamStatus-Bfh-WmLH.js +0 -1
- package/dist/interface/assets/useTabSwipe-C_QOrvSW.js +0 -1
- package/dist/interface/assets/useUpdateChannel-g0h_4c55.js +0 -1
- package/dist/interface/assets/useUpdatesSocket-CxrLRETs.js +0 -1
- package/dist/interface/assets/useUserOptions-DN0t3gBr.js +0 -1
- package/dist/interface/assets/variable-ywTlRfo5.js +0 -1
- package/dist/interface/assets/vendor-ace-CvEoip98.js +0 -1085
- package/dist/interface/assets/vendor-cameraui-B28aGJJD.js +0 -2326
- package/dist/interface/assets/vendor-capacitor-Bs_WzL0Q.js +0 -2
- package/dist/interface/assets/vendor-chart-DBK083Hu.js +0 -3
- package/dist/interface/assets/vendor-core-DIa0tPNH.js +0 -1
- package/dist/interface/assets/vendor-dnd-DGQLvX6Y.js +0 -2
- package/dist/interface/assets/vendor-draggabilly-D8CK6M-y.js +0 -1
- package/dist/interface/assets/vendor-gFkr2qsZ.js +0 -23
- package/dist/interface/assets/vendor-leaflet-DkAk6mAj.js +0 -1
- package/dist/interface/assets/vendor-markdown-qHIinIUE.js +0 -14
- package/dist/interface/assets/vendor-primevue-CZKUAkMA.js +0 -3942
- package/dist/interface/assets/vendor-vueflow-bSwRZ9X8.js +0 -26
- package/dist/interface/assets/web-BDNQnMmA.js +0 -1
- package/dist/interface/assets/web-B_9Qyt8E.js +0 -1
- package/dist/interface/assets/web-BhJykCtq.js +0 -1
- package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +0 -1
- package/dist/interface/assets/web-C7nJwIOa.js +0 -1
- package/dist/interface/assets/web-CGJsJQDb.js +0 -1
- package/dist/interface/assets/web-CJwASxrl.js +0 -1
- package/dist/interface/assets/web-CLe0L31Y.js +0 -1
- package/dist/interface/assets/web-DEv1hAn1.js +0 -1
- package/dist/interface/assets/web-DaeQvsXT.js +0 -1
- package/dist/interface/assets/web-H3-wNunW.js +0 -1
- package/dist/interface/assets/web-LCdyqJq1.js +0 -1
- package/dist/interface/assets/web-XZWYTK65.js +0 -1
- package/dist/interface/assets/web-rU5hlxxW.js +0 -1
- package/dist/interface/assets/webhook-CWKf2Qxu.js +0 -1
- package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +0 -1
- package/dist/interface/assets/zoom-in-CHkXAWHy.js +0 -1
- package/dist/interface/ha/404-tl2VQ3qy.js +0 -60
- package/dist/interface/ha/About-Cn7KOblU.js +0 -55
- package/dist/interface/ha/Assistant-DG2GGda0.js +0 -9361
- package/dist/interface/ha/Automation-D0_WpXx4.js +0 -2025
- package/dist/interface/ha/AutomationImport-DdC3dEaC.js +0 -206
- package/dist/interface/ha/AutomationStore-BrLn4oBx.js +0 -336
- package/dist/interface/ha/AutomationStoreDetail-DoppNsNc.js +0 -122
- package/dist/interface/ha/Automations-BaUJ9pVq.js +0 -424
- package/dist/interface/ha/Camera-Cj5ImvZG.js +0 -657
- package/dist/interface/ha/CameraConsole-7MhlS2VK.js +0 -52
- package/dist/interface/ha/Cameras-vHYz8uSO.js +0 -1969
- package/dist/interface/ha/Camview-BEglAx26.js +0 -1331
- package/dist/interface/ha/Config-CHiK--zP.js +0 -356
- package/dist/interface/ha/ConfigActionAssistant-DynduZYV.js +0 -182
- package/dist/interface/ha/ConfigActionCameraControl-BEYePssz.js +0 -152
- package/dist/interface/ha/ConfigActionHttp-h0vRWqZ5.js +0 -134
- package/dist/interface/ha/ConfigActionImageInput-B9GMZYAR.js +0 -171
- package/dist/interface/ha/ConfigActionMqtt-BEQpHBgf.js +0 -81
- package/dist/interface/ha/ConfigActionNotification-BYsz8_aS.js +0 -199
- package/dist/interface/ha/ConfigActionNotificationControl-BxmIWVE8.js +0 -111
- package/dist/interface/ha/ConfigActionOutput-DTOQSa1S.js +0 -98
- package/dist/interface/ha/ConfigActionPlugin-NOsUs3QI.js +0 -172
- package/dist/interface/ha/ConfigActionSensor-YWnsH_LV.js +0 -139
- package/dist/interface/ha/ConfigActionSnapshot-DHJnTvin.js +0 -48
- package/dist/interface/ha/ConfigActionVariable-C7UFnvW0.js +0 -88
- package/dist/interface/ha/ConfigConditionIfElse-CAHbuhH3.js +0 -124
- package/dist/interface/ha/ConfigConditionSensorState-CE6okUeb.js +0 -192
- package/dist/interface/ha/ConfigConditionSwitch-D5FULaTy.js +0 -128
- package/dist/interface/ha/ConfigSensorValueInput-mo6Gs_aZ.js +0 -170
- package/dist/interface/ha/ConfigTriggerDetection-Bt-OhHtM.js +0 -241
- package/dist/interface/ha/ConfigTriggerGeofence-Cw3jV5qD.js +0 -4888
- package/dist/interface/ha/ConfigTriggerMqtt-BXeV82UG.js +0 -134
- package/dist/interface/ha/ConfigTriggerSensor-Baqq--nJ.js +0 -73
- package/dist/interface/ha/ConfigTriggerSystem-braUVGzW.js +0 -192
- package/dist/interface/ha/ConfigTriggerWebhook-Dm45r-1C.js +0 -94
- package/dist/interface/ha/Console-q3TCsxYo.js +0 -348
- package/dist/interface/ha/CuiAutomationRunsDialog-DO6h5Tc4.js +0 -130
- package/dist/interface/ha/CuiBottomSheet-B7ldz0xi.js +0 -270
- package/dist/interface/ha/CuiCameraRecordings-Dq1Vh3qA.js +0 -551
- package/dist/interface/ha/CuiCameraShares-DBqcpevG.js +0 -121
- package/dist/interface/ha/CuiCameraTable-kL8rK-Uv.js +0 -169
- package/dist/interface/ha/CuiChartTable-BrFyiSt_.js +0 -6801
- package/dist/interface/ha/CuiConsole-DpeXZmJd.js +0 -244
- package/dist/interface/ha/CuiDataTable-BtqzIz0o.js +0 -8732
- package/dist/interface/ha/CuiList-CU2NJ1K6.js +0 -57
- package/dist/interface/ha/CuiPluginCard-lBLypaN4.js +0 -769
- package/dist/interface/ha/CuiPluginOAuthButton-CuGauZJA.js +0 -79
- package/dist/interface/ha/CuiPluginTrustBadge-BofBmRYc.js +0 -123
- package/dist/interface/ha/CuiQRCode-CdK9bwKb.js +0 -86
- package/dist/interface/ha/CuiSchema-DqkCLv9Y.js +0 -963
- package/dist/interface/ha/CuiTopNavbarItem-C2VZB7WV.js +0 -140
- package/dist/interface/ha/Faces-Crfi-75Z.js +0 -1441
- package/dist/interface/ha/FirstSteps-CKVG86pf.js +0 -251
- package/dist/interface/ha/Floorplan-CH9_-6hk.js +0 -3657
- package/dist/interface/ha/Instances-5gZdPPDA.js +0 -680
- package/dist/interface/ha/Logs-BkzEM70F.js +0 -418
- package/dist/interface/ha/Menu-BuT3_Ggx.js +0 -156
- package/dist/interface/ha/Metrics-BGrzu0bu.js +0 -1447
- package/dist/interface/ha/OAuthDeviceFlow-BEJtegqy.js +0 -112
- package/dist/interface/ha/Plugin-Bnp2jiC2.js +0 -1544
- package/dist/interface/ha/PluginConsole-CmsuPVMz.js +0 -56
- package/dist/interface/ha/PluginDetail-BCNx7vHr.js +0 -805
- package/dist/interface/ha/PluginSearch-DOdhuxgM.js +0 -462
- package/dist/interface/ha/PluginUpdateProgress-CwkKc8Tr.js +0 -34
- package/dist/interface/ha/Plugins-BrFowCdC.js +0 -692
- package/dist/interface/ha/RecentEventsFilter-9ZkDHD1g.js +0 -79
- package/dist/interface/ha/Recordings-BZhf39pJ.js +0 -1539
- package/dist/interface/ha/SensorEdit-Ds6WbN4A.js +0 -1462
- package/dist/interface/ha/SensorHistory-CoTIYTJx.js +0 -54
- package/dist/interface/ha/Sensors-DZ2MKdlh.js +0 -1400
- package/dist/interface/ha/Settings-D3JKr430.js +0 -218
- package/dist/interface/ha/SettingsAccount-cvtlSKZw.js +0 -971
- package/dist/interface/ha/SettingsAppearance-CaKuOHRu.js +0 -220
- package/dist/interface/ha/SettingsAssistant-vWVjAUqQ.js +0 -2025
- package/dist/interface/ha/SettingsBackup-CvzL_bVf.js +0 -556
- package/dist/interface/ha/SettingsList-C0Ec8x-H.js +0 -40
- package/dist/interface/ha/SettingsMqtt-COnq-QM5.js +0 -526
- package/dist/interface/ha/SettingsNotifications-BZ68bQzO.js +0 -529
- package/dist/interface/ha/SettingsPermissions-Jh0FuIF7.js +0 -84
- package/dist/interface/ha/SettingsRecordings-BPtNNpDa.js +0 -152
- package/dist/interface/ha/SettingsRemote-BXG8IYjf.js +0 -1810
- package/dist/interface/ha/SettingsSystem-_jHBUhws.js +0 -376
- package/dist/interface/ha/SettingsUsers-CzGj_RJN.js +0 -379
- package/dist/interface/ha/Terminal-BP3b8IBP.js +0 -612
- package/dist/interface/ha/Training-C2-6DgY0.js +0 -1699
- package/dist/interface/ha/Updates-BMZsEhmy.js +0 -343
- package/dist/interface/ha/VariableInput-DmI7skCD.js +0 -52
- package/dist/interface/ha/VersionsHandler-DJd4NqtD.js +0 -216
- package/dist/interface/ha/VirtualSensorCreate-DmtGYvAn.js +0 -101
- package/dist/interface/ha/Workers-2HTPHgKV.js +0 -765
- package/dist/interface/ha/ace-B3bPzJu9.js +0 -13236
- package/dist/interface/ha/ace.config-Dt55Nqby.js +0 -1429
- package/dist/interface/ha/api-BelbnLQO.js +0 -62346
- package/dist/interface/ha/api-sy4rqV2N.js +0 -29
- package/dist/interface/ha/assistant-C6KYXJfi.js +0 -349
- package/dist/interface/ha/auth-Da66mVEd.js +0 -271
- package/dist/interface/ha/automationBlueprint-hlqqM17r.js +0 -250
- package/dist/interface/ha/cards-BFRRfuM7.js +0 -13436
- package/dist/interface/ha/config-Cd7JNMpD.js +0 -116
- package/dist/interface/ha/dist-BIngHzHx.js +0 -287
- package/dist/interface/ha/dist-BybVYMVs.js +0 -3248
- package/dist/interface/ha/eventIcons-BFNUgeGr.js +0 -676
- package/dist/interface/ha/eventLabels-B4C1_4vT.js +0 -42
- package/dist/interface/ha/eye-off-outline-ACbzsGuK.js +0 -19
- package/dist/interface/ha/intercomService-B7HkLs6z.js +0 -1414
- package/dist/interface/ha/mqtt-UZfptWJl.js +0 -56
- package/dist/interface/ha/notifications-DTHM8fS-.js +0 -159
- package/dist/interface/ha/pinia-BokSpDzj.js +0 -7656
- package/dist/interface/ha/plugins-Bwp_GfaX.js +0 -592
- package/dist/interface/ha/protocol-BB4jdtUC-DW3jl2tV.js +0 -708
- package/dist/interface/ha/rooms-BvaD0r0q.js +0 -45
- package/dist/interface/ha/server-OWdtITVa.js +0 -239
- package/dist/interface/ha/types-BFJjyMZe.js +0 -1073
- package/dist/interface/ha/ungrouped-x00DHNHO.js +0 -1311
- package/dist/interface/ha/updates-C03Qf3Il.js +0 -341
- package/dist/interface/ha/useAppVersion-CrMd9CC9.js +0 -22
- package/dist/interface/ha/useAssistantActions-S1FrNe9b.js +0 -29
- package/dist/interface/ha/useKeyboardInset-DwUQCWHC.js +0 -27
- package/dist/interface/ha/useLogsSocket-C6k217mW.js +0 -59
- package/dist/interface/ha/useNavLayout-DhuQE024.js +0 -125
- package/dist/interface/ha/usePermissions-DaE_wFch.js +0 -72
- package/dist/interface/ha/useServerRestart-CYaen2r6.js +0 -23
- package/dist/interface/ha/useTabSwipe-DAmCFlgg.js +0 -45
- package/dist/interface/ha/useUpdateChannel-Dr1EoU2X.js +0 -22
- package/dist/interface/ha/useUpdatesSocket-C8Gmhemh.js +0 -34
- package/dist/interface/ha/useUserOptions-BB5wk3Bq.js +0 -15
- package/dist/interface/workbox-778a14ff.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
define(["exports"],function(t){"use strict";try{self["workbox:core:7.4.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.4.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class r{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class i extends r{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=i&&i.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:r})}catch(t){a=Promise.reject(t)}const h=i&&i.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch(async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:r})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n})),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const r=this.t.get(s.method)||[];for(const i of r){let r;const o=i.match({url:t,sameOrigin:e,request:s,event:n});if(o)return r=o,(Array.isArray(r)&&0===r.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(r=void 0),{route:i,params:r}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new r(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)o=new i(t,e,n);else if("function"==typeof t)o=new r(t,e,n);else{if(!(t instanceof r))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter(t=>t&&t.length>0).join("-"),f=t=>{(t=>{for(const e of Object.keys(u))t(e)})(e=>{"string"==typeof t[e]&&(u[e]=t[e])})},w=t=>t||l(u.precache),d=t=>t||l(u.runtime);function p(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.4.0"]&&_()}catch(t){}function y(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const r=new URL(n,location.href),i=new URL(n,location.href);return r.searchParams.set("__WB_REVISION__",e),{cacheKey:r.href,url:i.href}}class g{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class R{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let m;async function v(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const r=t.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},o=function(){if(void 0===m){const t=new Response("");if("body"in t)try{new Response(t.body),m=!0}catch(t){m=!1}m=!1}return m}()?r.body:await r.blob();return new Response(o,i)}function q(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class U{constructor(){this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}}const b=new Set;function L(t){return new Promise(e=>setTimeout(e,t))}try{self["workbox:strategies:7.4.0"]&&_()}catch(t){}function E(t){return"string"==typeof t?new Request(t):t}class C{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new U,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=E(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const r=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const i=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:i,response:t});return t}catch(t){throw r&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:r.clone(),request:i.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=E(t);let s;const{cacheName:n,matchOptions:r}=this.l,i=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},r),{cacheName:n});s=await caches.match(i,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:r,cachedResponse:s,request:i,event:this.event})||void 0;return s}async cachePut(t,e){const n=E(t);await L(0);const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(i=r.url,new URL(String(i),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var i;const o=await this.q(e);if(!o)return!1;const{cacheName:c,matchOptions:a}=this.l,h=await self.caches.open(c),u=this.hasCallback("cacheDidUpdate"),l=u?await async function(t,e,s,n){const r=q(e.url,s);if(e.url===r)return t.match(e,n);const i=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,i);for(const e of o)if(r===q(e.url,s))return t.match(e,n)}(h,r.clone(),["__WB_REVISION__"],a):null;try{await h.put(r,u?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of b)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:l,newResponse:o.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=E(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const r=Object.assign(Object.assign({},n),{state:s});return e[t](r)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){for(;this.R.length;){const t=this.R.splice(0),e=(await Promise.allSettled(t)).find(t=>"rejected"===t.status);if(e)throw e.reason}}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class O{constructor(t={}){this.cacheName=d(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,r=new C(this,{event:e,request:s,params:n}),i=this.U(r,s,e);return[i,this.L(i,r,s,e)]}async U(t,e,n){let r;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(r=await this._(e,t),!r||"error"===r.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const i of t.iterateCallbacks("handlerDidError"))if(r=await i({error:s,event:n,request:e}),r)break;if(!r)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))r=await s({event:n,request:e,response:r});return r}async L(t,e,s,n){let r,i;try{r=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:r}),await e.doneWaiting()}catch(t){t instanceof Error&&(i=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:r,error:i}),e.destroy(),i)throw i}}class x extends O{constructor(t={}){t.cacheName=w(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(x.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const r=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=r.integrity,i=t.integrity,o=!i||i===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.k(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.k();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}k(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==x.copyRedirectedCacheableResponsesPlugin&&(n===x.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(x.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}x.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},x.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await v(t):t};class N{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.P=new Map,this.j=new Map,this.T=new Map,this.l=new x({cacheName:w(t),plugins:[...e,new R({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.K||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.K=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:r}=y(n),i="string"!=typeof n&&n.revision?"reload":"default";if(this.P.has(r)&&this.P.get(r)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.P.get(r),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.T.has(t)&&this.T.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:r});this.T.set(t,n.integrity)}if(this.P.set(r,t),this.j.set(r,i),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return p(t,async()=>{const e=new g;this.strategy.plugins.push(e);for(const[e,s]of this.P){const n=this.T.get(s),r=this.j.get(e),i=new Request(e,{integrity:n,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:i,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}})}activate(t){return p(t,async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.P.values()),n=[];for(const r of e)s.has(r.url)||(await t.delete(r),n.push(r.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this.P}getCachedURLs(){return[...this.P.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.P.get(e.href)}getIntegrityForCacheKey(t){return this.T.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let k;const P=()=>(k||(k=new N),k);class j extends r{constructor(t,e){super(({request:s})=>{const n=t.getURLsToCacheKeys();for(const r of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(i,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(r){const t=r({url:i});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(r);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}},t.strategy)}}t.NetworkOnly=class extends O{constructor(t={}){super(t),this.W=t.networkTimeoutSeconds||0}async _(t,e){let n,r;try{const s=[e.fetch(t)];if(this.W){const t=L(1e3*this.W);s.push(t)}if(r=await Promise.race(s),!r)throw new Error(`Timed out the network response after ${this.W} seconds.`)}catch(t){t instanceof Error&&(n=t)}if(!r)throw new s("no-response",{url:t.url,error:n});return r}},t.PrecacheFallbackPlugin=class{constructor({fallbackURL:t,precacheController:e}){this.handlerDidError=()=>this.h.matchPrecache(this.M),this.M=t,this.h=e||P()}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",t=>{const e=w();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter(s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t);return await Promise.all(s.map(t=>self.caches.delete(t))),s})(e).then(t=>{}))})},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.precacheAndRoute=function(t,e){!function(t){P().precache(t)}(t),function(t){const e=P();h(new j(e,t))}(e)},t.registerRoute=h,t.setCacheNameDetails=function(t){f(t)}});
|
package/dist/server/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/server",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "camera.ui server",
|
|
5
5
|
"author": "seydx (https://github.com/cameraui/camera.ui)",
|
|
6
6
|
"type": "module",
|
|
@@ -38,20 +38,20 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@bjia56/portable-python": "^0.1.166",
|
|
40
40
|
"@camera.ui/cloudflared": "^2026.9.1-cui.1",
|
|
41
|
-
"@camera.ui/common": "~0.0.58
|
|
42
|
-
"@camera.ui/go2rtc": "^1.9.14-cui.
|
|
41
|
+
"@camera.ui/common": "~0.0.58",
|
|
42
|
+
"@camera.ui/go2rtc": "^1.9.14-cui.47",
|
|
43
43
|
"@camera.ui/nats": "^2.15.0",
|
|
44
44
|
"@camera.ui/rpc": "^1.0.12",
|
|
45
45
|
"@camera.ui/rust-detector": "~0.0.12",
|
|
46
|
-
"@camera.ui/rust-postprocessor": "~0.1.
|
|
47
|
-
"@camera.ui/sdk": "~1.
|
|
46
|
+
"@camera.ui/rust-postprocessor": "~0.1.13",
|
|
47
|
+
"@camera.ui/sdk": "~1.4.0",
|
|
48
48
|
"@camera.ui/tunnel": "^1.0.7",
|
|
49
49
|
"@eneris/push-receiver": "^4.4.0",
|
|
50
50
|
"@fastify/cors": "^11.3.0",
|
|
51
51
|
"@fastify/helmet": "^13.1.1",
|
|
52
|
-
"@fastify/http-proxy": "^11.6.
|
|
52
|
+
"@fastify/http-proxy": "^11.6.3",
|
|
53
53
|
"@fastify/multipart": "^10.1.2",
|
|
54
|
-
"@fastify/static": "^10.1.
|
|
54
|
+
"@fastify/static": "^10.1.5",
|
|
55
55
|
"@fastify/swagger": "^9.9.0",
|
|
56
56
|
"@fastify/swagger-ui": "^6.1.1",
|
|
57
57
|
"@homebridge/ciao": "npm:@seydx/ciao@1.3.10",
|
|
@@ -60,16 +60,16 @@
|
|
|
60
60
|
"@peculiar/asn1-x509": "^2.9.5",
|
|
61
61
|
"@peculiar/x509": "1.14.3",
|
|
62
62
|
"@scrypted/node-pty": "^1.0.25",
|
|
63
|
-
"@tanstack/ai": "^0.
|
|
64
|
-
"@tanstack/ai-anthropic": "^0.
|
|
65
|
-
"@tanstack/ai-compaction": "^0.1.
|
|
66
|
-
"@tanstack/ai-gemini": "^0.
|
|
67
|
-
"@tanstack/ai-memory": "^0.2.
|
|
68
|
-
"@tanstack/ai-ollama": "^0.11.
|
|
69
|
-
"@tanstack/ai-openai": "^0.
|
|
70
|
-
"@tanstack/ai-openrouter": "^0.19.
|
|
71
|
-
"@tanstack/ai-persistence": "^0.6.
|
|
72
|
-
"@tanstack/ai-skills": "^0.1.
|
|
63
|
+
"@tanstack/ai": "^0.61.0",
|
|
64
|
+
"@tanstack/ai-anthropic": "^0.19.1",
|
|
65
|
+
"@tanstack/ai-compaction": "^0.1.9",
|
|
66
|
+
"@tanstack/ai-gemini": "^0.33.1",
|
|
67
|
+
"@tanstack/ai-memory": "^0.2.6",
|
|
68
|
+
"@tanstack/ai-ollama": "^0.11.9",
|
|
69
|
+
"@tanstack/ai-openai": "^0.24.1",
|
|
70
|
+
"@tanstack/ai-openrouter": "^0.19.20",
|
|
71
|
+
"@tanstack/ai-persistence": "^0.6.7",
|
|
72
|
+
"@tanstack/ai-skills": "^0.1.11",
|
|
73
73
|
"adm-zip": "^0.6.1",
|
|
74
74
|
"aedes": "^1.2.0",
|
|
75
75
|
"croner": "^10.0.1",
|
|
@@ -86,13 +86,13 @@
|
|
|
86
86
|
"qs": "^6.16.0",
|
|
87
87
|
"reflect-metadata": "^0.2.2",
|
|
88
88
|
"semver": "^7.8.5",
|
|
89
|
-
"socket.io": "^4.8.
|
|
89
|
+
"socket.io": "^4.8.4",
|
|
90
90
|
"systeminformation": "^5.33.13",
|
|
91
91
|
"tar": "^7.5.22",
|
|
92
92
|
"tsyringe": "^4.10.0",
|
|
93
|
-
"undici": "^8.11.
|
|
93
|
+
"undici": "^8.11.2",
|
|
94
94
|
"werift": "^0.24.4",
|
|
95
|
-
"ws": "^8.
|
|
95
|
+
"ws": "^8.22.0",
|
|
96
96
|
"zod": "4.6.5"
|
|
97
97
|
},
|
|
98
98
|
"devDependencies": {
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"@types/adm-zip": "^0.5.8",
|
|
103
103
|
"@types/fs-extra": "^11.0.4",
|
|
104
104
|
"@types/jsonwebtoken": "^9.0.10",
|
|
105
|
-
"@types/node": "26.6.
|
|
105
|
+
"@types/node": "26.6.3",
|
|
106
106
|
"@types/node-forge": "^1.3.14",
|
|
107
107
|
"@types/npm-registry-fetch": "^8.0.9",
|
|
108
108
|
"@types/pacote": "^11.1.8",
|
|
@@ -127,8 +127,8 @@
|
|
|
127
127
|
"tail": "^2.2.6",
|
|
128
128
|
"typescript": "5.9.3",
|
|
129
129
|
"typescript-eslint": "^8.70.1",
|
|
130
|
-
"updates": "^19.0.
|
|
131
|
-
"vitest": "^5.0.
|
|
130
|
+
"updates": "^19.0.3",
|
|
131
|
+
"vitest": "^5.0.2"
|
|
132
132
|
},
|
|
133
133
|
"overrides": {
|
|
134
134
|
"@shinyoshiaki/binary-data": "npm:@seydx/binary-data@0.6.2",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
camera-ui-sdk==1.
|
|
1
|
+
camera-ui-sdk==1.4.0
|
|
2
2
|
camera-ui-common==1.0.24
|
|
3
3
|
camera-ui-rpc==1.0.10
|
|
4
4
|
certifi==2026.7.22
|
|
5
5
|
deepdiff==9.1.0
|
|
6
6
|
msgpack==1.2.2
|
|
7
|
-
virtualenv==21.
|
|
7
|
+
virtualenv==21.13.0
|
|
8
8
|
setproctitle==1.3.7
|
|
9
9
|
ormsgpack==1.12.2
|
|
10
10
|
truststore==0.10.4
|
|
@@ -176,6 +176,8 @@ from .plugin import (
|
|
|
176
176
|
OAuthStatus,
|
|
177
177
|
ObjectDetectionInterface,
|
|
178
178
|
ObjectDetectionPluginResponse,
|
|
179
|
+
PersonEmbeddingInterface,
|
|
180
|
+
PersonEmbeddingPluginResponse,
|
|
179
181
|
PluginAPI,
|
|
180
182
|
PluginCapability,
|
|
181
183
|
PluginContract,
|
|
@@ -184,6 +186,9 @@ from .plugin import (
|
|
|
184
186
|
PluginInterfaces,
|
|
185
187
|
PluginRole,
|
|
186
188
|
PythonVersion,
|
|
189
|
+
SegmentationImage,
|
|
190
|
+
SegmentationInterface,
|
|
191
|
+
SegmentationPluginResponse,
|
|
187
192
|
SensorDiscoveryProvider,
|
|
188
193
|
ServicePlugin,
|
|
189
194
|
Severity,
|
|
@@ -256,10 +261,13 @@ from .sensor import (
|
|
|
256
261
|
MotionSensor,
|
|
257
262
|
ObjectDetectionLabel,
|
|
258
263
|
ObjectDetectorSensor,
|
|
264
|
+
ObjectMask,
|
|
259
265
|
ObjectModelSpec,
|
|
260
266
|
ObjectResult,
|
|
261
267
|
ObjectSensor,
|
|
262
268
|
OccupancySensor,
|
|
269
|
+
PersonEmbedderSensor,
|
|
270
|
+
PersonEmbeddingResult,
|
|
263
271
|
PowerSensor,
|
|
264
272
|
ProblemSensor,
|
|
265
273
|
PTZCapability,
|
|
@@ -269,6 +277,9 @@ from .sensor import (
|
|
|
269
277
|
PTZRelativeMove,
|
|
270
278
|
SecuritySystem,
|
|
271
279
|
SecuritySystemState,
|
|
280
|
+
SegmentationFrame,
|
|
281
|
+
SegmentationResult,
|
|
282
|
+
SegmenterSensor,
|
|
272
283
|
Sensor,
|
|
273
284
|
SensorCategory,
|
|
274
285
|
SensorLike,
|
|
@@ -459,6 +470,8 @@ __all__ = [
|
|
|
459
470
|
"FaceSensor",
|
|
460
471
|
"FaceDetectorSensor",
|
|
461
472
|
"FaceEmbedderSensor",
|
|
473
|
+
"PersonEmbedderSensor",
|
|
474
|
+
"SegmenterSensor",
|
|
462
475
|
"LicensePlateSensor",
|
|
463
476
|
"LicensePlateDetectorSensor",
|
|
464
477
|
"ClassifierDetection",
|
|
@@ -578,6 +591,10 @@ __all__ = [
|
|
|
578
591
|
"MotionResult",
|
|
579
592
|
"ObjectResult",
|
|
580
593
|
"FaceEmbeddingResult",
|
|
594
|
+
"PersonEmbeddingResult",
|
|
595
|
+
"SegmentationFrame",
|
|
596
|
+
"SegmentationResult",
|
|
597
|
+
"ObjectMask",
|
|
581
598
|
"FaceResult",
|
|
582
599
|
"AudioResult",
|
|
583
600
|
"LicensePlateResult",
|
|
@@ -594,6 +611,11 @@ __all__ = [
|
|
|
594
611
|
"ClipDetectionPluginResponse",
|
|
595
612
|
"FaceEmbeddingInterface",
|
|
596
613
|
"FaceEmbeddingPluginResponse",
|
|
614
|
+
"PersonEmbeddingInterface",
|
|
615
|
+
"PersonEmbeddingPluginResponse",
|
|
616
|
+
"SegmentationInterface",
|
|
617
|
+
"SegmentationImage",
|
|
618
|
+
"SegmentationPluginResponse",
|
|
597
619
|
"ClipTextEmbeddingResult",
|
|
598
620
|
"PluginAPI",
|
|
599
621
|
"BasePlugin",
|
|
@@ -74,6 +74,10 @@ class CameraInput(TypedDict):
|
|
|
74
74
|
"""Probed talkback audio codec (client to camera). Present only when the probed source has a backchannel."""
|
|
75
75
|
childSourceId: NotRequired[str]
|
|
76
76
|
"""Child source ID (for snapshot fallback)."""
|
|
77
|
+
childCameraId: NotRequired[str]
|
|
78
|
+
"""Camera whose stream shows in the picture-in-picture overlay, instead of a source of this camera."""
|
|
79
|
+
childCameraRole: NotRequired[StreamingRole]
|
|
80
|
+
"""Role of the ``childCameraId`` stream shown in the overlay."""
|
|
77
81
|
|
|
78
82
|
|
|
79
83
|
class CameraConfigInputSettings(TypedDict):
|
|
@@ -99,6 +103,10 @@ class CameraConfigInputSettings(TypedDict):
|
|
|
99
103
|
"""Seconds allowed per RTSP request while connecting. Raise it for cameras that wake slowly. Unset means 5."""
|
|
100
104
|
childSourceId: NotRequired[str]
|
|
101
105
|
"""Child source ID (for snapshot fallback)."""
|
|
106
|
+
childCameraId: NotRequired[str]
|
|
107
|
+
"""Camera whose stream shows in the picture-in-picture overlay, instead of a source of this camera."""
|
|
108
|
+
childCameraRole: NotRequired[StreamingRole]
|
|
109
|
+
"""Role of the ``childCameraId`` stream shown in the overlay."""
|
|
102
110
|
urls: NotRequired[list[str]]
|
|
103
111
|
"""Raw source URLs, the server resolves them into streaming URLs."""
|
|
104
112
|
|
|
@@ -167,6 +175,10 @@ class PluginAssignments(TypedDict, total=False):
|
|
|
167
175
|
"""Face detection plugin."""
|
|
168
176
|
faceEmbedder: AssignedPlugin
|
|
169
177
|
"""Face embedding plugin."""
|
|
178
|
+
personEmbedder: AssignedPlugin
|
|
179
|
+
"""Person embedding plugin."""
|
|
180
|
+
segmenter: AssignedPlugin
|
|
181
|
+
"""Segmentation plugin."""
|
|
170
182
|
licensePlate: AssignedPlugin
|
|
171
183
|
"""License plate detection plugin."""
|
|
172
184
|
ptz: AssignedPlugin
|
|
@@ -20,7 +20,7 @@ from .detection import (
|
|
|
20
20
|
CameraZones,
|
|
21
21
|
PtzAutotrackSettings,
|
|
22
22
|
)
|
|
23
|
-
from .enums import CameraRole, CameraType
|
|
23
|
+
from .enums import CameraRole, CameraType, StreamingRole
|
|
24
24
|
from .events import DetectionEventPayload
|
|
25
25
|
from .frames import CameraFrameWorkerSettings, SnapshotSettings
|
|
26
26
|
from .recording import CameraRecordingSettings
|
|
@@ -55,6 +55,10 @@ class CameraSource(Protocol):
|
|
|
55
55
|
"""Generated streaming URLs."""
|
|
56
56
|
childSourceId: str | None
|
|
57
57
|
"""Child source ID (for snapshot fallback)."""
|
|
58
|
+
childCameraId: str | None
|
|
59
|
+
"""Camera whose stream shows in the picture-in-picture overlay, instead of a source of this camera."""
|
|
60
|
+
childCameraRole: StreamingRole | None
|
|
61
|
+
"""Role of the ``childCameraId`` stream shown in the overlay."""
|
|
58
62
|
|
|
59
63
|
async def snapshot(self, forceNew: bool = False) -> bytes | None:
|
|
60
64
|
"""
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from typing import NotRequired, TypedDict
|
|
4
4
|
|
|
5
5
|
from ..camera.config import CameraConfigInputSettings, CameraInformation
|
|
6
|
-
from ..camera.enums import CameraRole
|
|
6
|
+
from ..camera.enums import CameraRole, StreamingRole
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class CameraInputSettings(TypedDict):
|
|
@@ -27,6 +27,10 @@ class CameraInputSettings(TypedDict):
|
|
|
27
27
|
"""User-provided stream URLs."""
|
|
28
28
|
childSourceId: NotRequired[str]
|
|
29
29
|
"""Child source ID (for snapshot fallback)."""
|
|
30
|
+
childCameraId: NotRequired[str]
|
|
31
|
+
"""Camera whose stream shows in the picture-in-picture overlay, instead of a source of this camera."""
|
|
32
|
+
childCameraRole: NotRequired[StreamingRole]
|
|
33
|
+
"""Role of the ``childCameraId`` stream shown in the overlay."""
|
|
30
34
|
|
|
31
35
|
|
|
32
36
|
class CameraConfigPartial(TypedDict, total=False):
|
|
@@ -176,7 +176,8 @@ class CoreManager(Protocol):
|
|
|
176
176
|
|
|
177
177
|
async def getServerAddresses(self) -> list[str]:
|
|
178
178
|
"""
|
|
179
|
-
Get server addresses (IP addresses the server is listening on).
|
|
179
|
+
Get server addresses (IP addresses the server is listening on). A plugin running on a worker
|
|
180
|
+
gets the addresses selected for that worker, empty when none are selected.
|
|
180
181
|
|
|
181
182
|
Returns:
|
|
182
183
|
List of server addresses
|
|
@@ -76,7 +76,12 @@ from .interfaces import (
|
|
|
76
76
|
MotionDetectionPluginResponse,
|
|
77
77
|
ObjectDetectionInterface,
|
|
78
78
|
ObjectDetectionPluginResponse,
|
|
79
|
+
PersonEmbeddingInterface,
|
|
80
|
+
PersonEmbeddingPluginResponse,
|
|
79
81
|
PluginInterfaces,
|
|
82
|
+
SegmentationImage,
|
|
83
|
+
SegmentationInterface,
|
|
84
|
+
SegmentationPluginResponse,
|
|
80
85
|
SensorDiscoveryProvider,
|
|
81
86
|
ServicePlugin,
|
|
82
87
|
)
|
|
@@ -137,6 +142,11 @@ __all__ = [
|
|
|
137
142
|
"ClipDetectionPluginResponse",
|
|
138
143
|
"FaceEmbeddingInterface",
|
|
139
144
|
"FaceEmbeddingPluginResponse",
|
|
145
|
+
"PersonEmbeddingInterface",
|
|
146
|
+
"PersonEmbeddingPluginResponse",
|
|
147
|
+
"SegmentationImage",
|
|
148
|
+
"SegmentationInterface",
|
|
149
|
+
"SegmentationPluginResponse",
|
|
140
150
|
"ClipTextEmbeddingResult",
|
|
141
151
|
"PluginAPI",
|
|
142
152
|
"BasePlugin",
|
|
@@ -70,6 +70,12 @@ class PluginInterface(StrEnum):
|
|
|
70
70
|
FaceEmbedding = "FaceEmbedding"
|
|
71
71
|
"""Implements FaceEmbeddingInterface (turns a face crop into a vector). Matching against enrolled faces happens in the NVR."""
|
|
72
72
|
|
|
73
|
+
PersonEmbedding = "PersonEmbedding"
|
|
74
|
+
"""Implements PersonEmbeddingInterface (turns the crop of a person into a vector of their appearance). Searching happens in the NVR."""
|
|
75
|
+
|
|
76
|
+
Segmentation = "Segmentation"
|
|
77
|
+
"""Implements SegmentationInterface (outlines the object at a box in a picture)."""
|
|
78
|
+
|
|
73
79
|
DiscoveryProvider = "DiscoveryProvider"
|
|
74
80
|
"""Implements DiscoveryProvider (network scan + adoption). Only valid for camera-controlling roles."""
|
|
75
81
|
|
|
@@ -15,10 +15,11 @@ from typing import (
|
|
|
15
15
|
|
|
16
16
|
from typing_extensions import TypeVar as ExtTypeVar
|
|
17
17
|
|
|
18
|
-
from ..sensor import ClassifierDetection, Detection, FaceDetection, LicensePlateDetection
|
|
18
|
+
from ..sensor import BoundingBox, ClassifierDetection, Detection, FaceDetection, LicensePlateDetection
|
|
19
19
|
from ..sensor.audio import AudioFrameData
|
|
20
20
|
from ..sensor.clip import ClipEmbedding
|
|
21
21
|
from ..sensor.motion import VideoFrameData
|
|
22
|
+
from ..sensor.segmenter import ObjectMask
|
|
22
23
|
from .api import PluginAPI
|
|
23
24
|
from .assistant import AssistantToolProvider
|
|
24
25
|
|
|
@@ -149,6 +150,33 @@ class FaceEmbeddingPluginResponse(TypedDict):
|
|
|
149
150
|
"""How sure the model is that those points sit on a face (0 - 1)."""
|
|
150
151
|
|
|
151
152
|
|
|
153
|
+
class PersonEmbeddingPluginResponse(TypedDict):
|
|
154
|
+
"""Result of a person embedding run on a single image."""
|
|
155
|
+
|
|
156
|
+
embedding: list[float]
|
|
157
|
+
"""Embedding vector for the person, empty when the picture could not be embedded."""
|
|
158
|
+
|
|
159
|
+
embeddingModel: str
|
|
160
|
+
"""Model that produced the embedding; consumers must not mix models."""
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
class SegmentationImage(TypedDict):
|
|
164
|
+
"""A picture to outline an object in, with the object's box."""
|
|
165
|
+
|
|
166
|
+
image: bytes
|
|
167
|
+
"""Encoded image (JPEG/PNG)."""
|
|
168
|
+
|
|
169
|
+
box: BoundingBox
|
|
170
|
+
"""Box of the object to outline, normalized to the image."""
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
class SegmentationPluginResponse(TypedDict):
|
|
174
|
+
"""Result of a segmentation run on a single image."""
|
|
175
|
+
|
|
176
|
+
mask: NotRequired[ObjectMask]
|
|
177
|
+
"""The object's outline, missing when the model found no object at the box."""
|
|
178
|
+
|
|
179
|
+
|
|
152
180
|
class ClipTextEmbeddingResult(TypedDict):
|
|
153
181
|
"""Result of a CLIP text embedding request."""
|
|
154
182
|
|
|
@@ -443,7 +471,10 @@ class ObjectDetectionInterface(Protocol):
|
|
|
443
471
|
async def testObjectDetection(
|
|
444
472
|
self, image_data: bytes, metadata: ImageMetadata, config: dict[str, Any]
|
|
445
473
|
) -> ObjectDetectionPluginResponse | None:
|
|
446
|
-
"""Run detection on a single image captured by the UI test panel; ``metadata`` carries the image dimensions.
|
|
474
|
+
"""Run detection on a single image captured by the UI test panel; ``metadata`` carries the image dimensions.
|
|
475
|
+
|
|
476
|
+
A number in ``config["threshold"]`` is the lowest confidence to return, without it the plugin's default applies.
|
|
477
|
+
"""
|
|
447
478
|
...
|
|
448
479
|
|
|
449
480
|
async def detectObjects(
|
|
@@ -487,7 +518,10 @@ class FaceDetectionInterface(Protocol):
|
|
|
487
518
|
async def testFaceDetection(
|
|
488
519
|
self, image_data: bytes, metadata: ImageMetadata, config: dict[str, Any]
|
|
489
520
|
) -> FaceDetectionPluginResponse | None:
|
|
490
|
-
"""Run face detection on a single image captured by the UI test panel and return the result for preview rendering.
|
|
521
|
+
"""Run face detection on a single image captured by the UI test panel and return the result for preview rendering.
|
|
522
|
+
|
|
523
|
+
A number in ``config["threshold"]`` is the lowest confidence to return, without it the plugin's default applies.
|
|
524
|
+
"""
|
|
491
525
|
...
|
|
492
526
|
|
|
493
527
|
async def detectFaces(
|
|
@@ -501,6 +535,30 @@ class FaceDetectionInterface(Protocol):
|
|
|
501
535
|
...
|
|
502
536
|
|
|
503
537
|
|
|
538
|
+
@runtime_checkable
|
|
539
|
+
class SegmentationInterface(Protocol):
|
|
540
|
+
"""Implemented by plugins that outline objects: a mask that separates an object from its background.
|
|
541
|
+
|
|
542
|
+
The frame-based side is the segmenter sensor.
|
|
543
|
+
"""
|
|
544
|
+
|
|
545
|
+
async def segmentImages(
|
|
546
|
+
self,
|
|
547
|
+
images: list[SegmentationImage],
|
|
548
|
+
config: dict[str, Any] | None = None,
|
|
549
|
+
) -> list[SegmentationPluginResponse | None]:
|
|
550
|
+
"""Outline the object at ``box`` in each picture.
|
|
551
|
+
|
|
552
|
+
One result per input in the same order, None when the plugin could not run
|
|
553
|
+
at all. ``config`` holds the values of the segmentation settings form.
|
|
554
|
+
"""
|
|
555
|
+
...
|
|
556
|
+
|
|
557
|
+
async def segmentationSettings(self) -> list[JsonSchema] | None:
|
|
558
|
+
"""Return the JSON schema for the segmentation settings form in the UI, or None for no schema."""
|
|
559
|
+
...
|
|
560
|
+
|
|
561
|
+
|
|
504
562
|
@runtime_checkable
|
|
505
563
|
class LicensePlateDetectionInterface(Protocol):
|
|
506
564
|
"""Implemented by plugins that locate license plates and run OCR on
|
|
@@ -509,7 +567,10 @@ class LicensePlateDetectionInterface(Protocol):
|
|
|
509
567
|
async def testLicensePlateDetection(
|
|
510
568
|
self, image_data: bytes, metadata: ImageMetadata, config: dict[str, Any]
|
|
511
569
|
) -> LicensePlateDetectionPluginResponse | None:
|
|
512
|
-
"""Run detection on a single image captured by the UI test panel and return the result for preview rendering.
|
|
570
|
+
"""Run detection on a single image captured by the UI test panel and return the result for preview rendering.
|
|
571
|
+
|
|
572
|
+
A number in ``config["threshold"]`` is the lowest confidence to return, without it the plugin's default applies.
|
|
573
|
+
"""
|
|
513
574
|
...
|
|
514
575
|
|
|
515
576
|
async def detectLicensePlates(
|
|
@@ -575,6 +636,31 @@ class FaceEmbeddingInterface(Protocol):
|
|
|
575
636
|
...
|
|
576
637
|
|
|
577
638
|
|
|
639
|
+
@runtime_checkable
|
|
640
|
+
class PersonEmbeddingInterface(Protocol):
|
|
641
|
+
"""Implemented by plugins that turn the crop of a person into a vector of their appearance.
|
|
642
|
+
|
|
643
|
+
The NVR stores and searches the vectors, the plugin only emits them.
|
|
644
|
+
"""
|
|
645
|
+
|
|
646
|
+
async def embedPersonImages(
|
|
647
|
+
self,
|
|
648
|
+
images: list[bytes],
|
|
649
|
+
config: dict[str, Any] | None = None,
|
|
650
|
+
) -> list[PersonEmbeddingPluginResponse | None]:
|
|
651
|
+
"""Embed a batch of encoded images (JPEG/PNG), each showing one person cut tight around their box.
|
|
652
|
+
|
|
653
|
+
One result per input in the same order. An empty ``embedding`` means the
|
|
654
|
+
picture could not be used, None that the plugin could not run at all. Meant for
|
|
655
|
+
searching by a picture the user picked.
|
|
656
|
+
"""
|
|
657
|
+
...
|
|
658
|
+
|
|
659
|
+
async def personEmbeddingSettings(self) -> list[JsonSchema] | None:
|
|
660
|
+
"""Return the JSON schema for the person-embedding settings form in the UI, or None for no schema."""
|
|
661
|
+
...
|
|
662
|
+
|
|
663
|
+
|
|
578
664
|
@runtime_checkable
|
|
579
665
|
class ClipDetectionInterface(Protocol):
|
|
580
666
|
"""Implemented by plugins that generate CLIP image and text embeddings
|
|
@@ -627,6 +713,8 @@ PluginInterfaces = (
|
|
|
627
713
|
| LicensePlateDetectionInterface
|
|
628
714
|
| ClassifierDetectionInterface
|
|
629
715
|
| ClipDetectionInterface
|
|
716
|
+
| PersonEmbeddingInterface
|
|
717
|
+
| SegmentationInterface
|
|
630
718
|
| DiscoveryProvider
|
|
631
719
|
| AssistantToolProvider
|
|
632
720
|
)
|
|
@@ -116,6 +116,10 @@ from .object import (
|
|
|
116
116
|
from .occupancy import (
|
|
117
117
|
OccupancySensor,
|
|
118
118
|
)
|
|
119
|
+
from .person_embedder import (
|
|
120
|
+
PersonEmbedderSensor,
|
|
121
|
+
PersonEmbeddingResult,
|
|
122
|
+
)
|
|
119
123
|
from .power import (
|
|
120
124
|
PowerSensor,
|
|
121
125
|
)
|
|
@@ -133,6 +137,12 @@ from .security_system import (
|
|
|
133
137
|
SecuritySystem,
|
|
134
138
|
SecuritySystemState,
|
|
135
139
|
)
|
|
140
|
+
from .segmenter import (
|
|
141
|
+
ObjectMask,
|
|
142
|
+
SegmentationFrame,
|
|
143
|
+
SegmentationResult,
|
|
144
|
+
SegmenterSensor,
|
|
145
|
+
)
|
|
136
146
|
from .siren import (
|
|
137
147
|
SirenCapability,
|
|
138
148
|
SirenControl,
|
|
@@ -209,6 +219,10 @@ __all__ = [
|
|
|
209
219
|
"ClipEmbedding",
|
|
210
220
|
"ClipResult",
|
|
211
221
|
"FaceEmbeddingResult",
|
|
222
|
+
"PersonEmbeddingResult",
|
|
223
|
+
"ObjectMask",
|
|
224
|
+
"SegmentationFrame",
|
|
225
|
+
"SegmentationResult",
|
|
212
226
|
# Public sensor classes
|
|
213
227
|
"MotionSensor",
|
|
214
228
|
"MotionDetectorSensor",
|
|
@@ -219,6 +233,8 @@ __all__ = [
|
|
|
219
233
|
"FaceSensor",
|
|
220
234
|
"FaceDetectorSensor",
|
|
221
235
|
"FaceEmbedderSensor",
|
|
236
|
+
"PersonEmbedderSensor",
|
|
237
|
+
"SegmenterSensor",
|
|
222
238
|
"LicensePlateSensor",
|
|
223
239
|
"LicensePlateDetectorSensor",
|
|
224
240
|
"ClassifierSensor",
|
|
@@ -54,6 +54,10 @@ class SensorType(StrEnum):
|
|
|
54
54
|
"""Face detection and recognition."""
|
|
55
55
|
FaceEmbedder = "faceEmbedder"
|
|
56
56
|
"""Face embedding generation from a face crop, for recognition against enrolled faces."""
|
|
57
|
+
PersonEmbedder = "personEmbedder"
|
|
58
|
+
"""Appearance embedding of a person crop, to find the same person again without a face."""
|
|
59
|
+
Segmenter = "segmenter"
|
|
60
|
+
"""Outline of an object inside a crop, as a mask over its box."""
|
|
57
61
|
LicensePlate = "licensePlate"
|
|
58
62
|
"""License plate detection and OCR."""
|
|
59
63
|
Classifier = "classifier"
|
|
@@ -22,7 +22,7 @@ class FaceEmbeddingResult(TypedDict):
|
|
|
22
22
|
landmarks: NotRequired[list[Point]]
|
|
23
23
|
"""The five points the face was aligned on, in 0 - 1 of the input image: right eye, left eye, nose, right and left mouth corner."""
|
|
24
24
|
quality: NotRequired[float]
|
|
25
|
-
"""How
|
|
25
|
+
"""How clearly the picture shows a face (0 - 1), also sent with an empty embedding when the face was too unclear; not sent when the landmarks were passed in."""
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
TStorage = TypeVar("TStorage", bound=Mapping[str, Any], default=dict[str, Any])
|
|
@@ -27,7 +27,7 @@ class ObjectProperty(StrEnum):
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class TrackVelocity(TypedDict):
|
|
30
|
-
"""Signed centroid velocity in normalized units per
|
|
30
|
+
"""Signed centroid velocity in normalized units per second. Positive x = moving
|
|
31
31
|
right, positive y = moving down. Prefer this over deriving velocity from
|
|
32
32
|
position deltas.
|
|
33
33
|
"""
|
|
@@ -44,9 +44,9 @@ class TrackedDetection(Detection, total=False):
|
|
|
44
44
|
trackAge: int
|
|
45
45
|
"""Number of frames this object has been continuously tracked."""
|
|
46
46
|
trackSpeed: float
|
|
47
|
-
"""Velocity magnitude in normalized units per
|
|
47
|
+
"""Velocity magnitude in normalized units per second."""
|
|
48
48
|
trackVelocity: TrackVelocity
|
|
49
|
-
"""Signed centroid velocity in normalized units per
|
|
49
|
+
"""Signed centroid velocity in normalized units per second."""
|
|
50
50
|
trackLost: bool
|
|
51
51
|
"""True if the object was not matched in the current frame."""
|
|
52
52
|
stationarySince: float
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from abc import abstractmethod
|
|
4
|
+
from collections.abc import Mapping
|
|
5
|
+
from typing import Any, Generic
|
|
6
|
+
|
|
7
|
+
from typing_extensions import TypedDict, TypeVar
|
|
8
|
+
|
|
9
|
+
from .base import Sensor, SensorCategory, SensorType
|
|
10
|
+
from .detection import VideoFrameData
|
|
11
|
+
from .spec import ModelSpec
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class PersonEmbeddingResult(TypedDict):
|
|
15
|
+
"""Return type for PersonEmbedderSensor.embedPersons()."""
|
|
16
|
+
|
|
17
|
+
embedding: list[float]
|
|
18
|
+
"""Embedding vector for the person in this crop, empty when the crop could not be embedded."""
|
|
19
|
+
embeddingModel: str
|
|
20
|
+
"""Identifier of the embedding model that produced the vector."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
TStorage = TypeVar("TStorage", bound=Mapping[str, Any], default=dict[str, Any])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class PersonEmbedderSensor(Sensor[dict[str, Any], TStorage, str], Generic[TStorage]):
|
|
27
|
+
"""Person embedder that turns the crop of a person into a vector of their
|
|
28
|
+
appearance, to find the same person again when no face is visible.
|
|
29
|
+
|
|
30
|
+
Extend this class and implement ``embedPersons``.
|
|
31
|
+
|
|
32
|
+
The crop is the person's box from the object detector, cut tight from the
|
|
33
|
+
source frame. A vector describes clothing and build, not identity: it finds
|
|
34
|
+
the same person on the same day, not after a change of clothes. Vectors from
|
|
35
|
+
different models are not comparable, which is why every result carries its
|
|
36
|
+
``embeddingModel``.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
_requires_frames = True
|
|
40
|
+
|
|
41
|
+
def __init__(self, name: str = "Person Embedder", *, native_id: str | None = None) -> None:
|
|
42
|
+
super().__init__(name, native_id=native_id)
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def type(self) -> SensorType:
|
|
46
|
+
return SensorType.PersonEmbedder
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def category(self) -> SensorCategory:
|
|
50
|
+
return SensorCategory.Sensor
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
@abstractmethod
|
|
54
|
+
def modelSpec(self) -> ModelSpec: ...
|
|
55
|
+
|
|
56
|
+
@abstractmethod
|
|
57
|
+
async def embedPersons(self, frames: list[VideoFrameData]) -> list[PersonEmbeddingResult]:
|
|
58
|
+
"""Embed persons in batch. Each frame is one person crop, cut tight around the
|
|
59
|
+
detected box and stretched to ``modelSpec['input']``. Must return exactly one
|
|
60
|
+
PersonEmbeddingResult per input frame, in the same order; return an empty
|
|
61
|
+
``embedding`` for a crop the model could not use."""
|
|
62
|
+
...
|
|
63
|
+
|
|
64
|
+
async def updateValue(self, property: str, value: Any) -> None:
|
|
65
|
+
"""Read-only sensor: external writes are ignored."""
|