@camera.ui/server 2.1.8 → 2.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/interface/assets/{404-vRjJVgl4.js → 404-BLNSh-sA.js} +1 -1
- package/dist/interface/assets/{About-CO9cx5Gp.js → About-ZakRzon7.js} +1 -1
- package/dist/interface/assets/Automation-DoVhkuVY.js +3 -0
- package/dist/interface/assets/AutomationImport-DVxK1R1y.js +2 -0
- package/dist/interface/assets/{AutomationStore-NyXuw3tI.js → AutomationStore-DaNO9_9S.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-Dz9Y8j8g.js → AutomationStoreDetail-CTDCEaIz.js} +2 -2
- package/dist/interface/assets/Automations-mdnUitWx.js +2 -0
- package/dist/interface/assets/Camera-B3cv5IVC.js +2 -0
- package/dist/interface/assets/Camera-LSq1bWmA.css +1 -0
- package/dist/interface/assets/{CameraConsole-S9Il0g0K.js → CameraConsole-C32X5I91.js} +2 -2
- package/dist/interface/assets/{Cameras-lDMBkoUW.js → Cameras-Drv48-Eb.js} +23 -23
- package/dist/interface/assets/Camview-Bvy39jSt.js +1 -0
- package/dist/interface/assets/{Camview-CS7PIBMz.css → Camview-Lp3QU0de.css} +1 -1
- package/dist/interface/assets/{Config-B0cy1RIU.js → Config-B-LDdaS6.js} +1 -1
- package/dist/interface/assets/ConfigActionCameraControl-As2qXvnd.js +1 -0
- package/dist/interface/assets/{ConfigActionDelay-DrzMP_7q.js → ConfigActionDelay-Cj3yWfEV.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-BUANm5zh.js → ConfigActionHttp-PlS5vI0v.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CKvnzs_4.js → ConfigActionImageInput-BHflOA-T.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-Cz-fMzXH.js → ConfigActionMqtt-DByOwVPe.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-exxG4m-k.js → ConfigActionNotification-D_8_lp96.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-BMFbm9lJ.js → ConfigActionNotificationControl-ClFMom6m.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-js-UUBci.js → ConfigActionOutput-YTAw-Are.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-B5hrC_B6.js → ConfigActionPlugin-lF2IH2Bo.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-BESCtedA.js → ConfigActionSensor-DQZW_Jxr.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-Uxz9dCqh.js → ConfigActionSnapshot-CHxIQ5J0.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-CsiC6bgF.js → ConfigActionVariable-0VLGuhwP.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-CiScJB42.js → ConfigConditionIfElse-D-Ibn8QL.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-CbDfsuOl.js → ConfigConditionSensorState-BKSGYRdv.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-B7E5DAoC.js → ConfigConditionSwitch-CzkEyWb1.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BmeGYmwH.js → ConfigConditionTime-BFKsDI_t.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-CNTToTaw.js → ConfigSensorValueInput-yTiHhlXG.js} +1 -1
- package/dist/interface/assets/ConfigTriggerDetection-DFTgRaE0.js +1 -0
- package/dist/interface/assets/ConfigTriggerGeofence-B2Cqi5Id.js +1 -0
- package/dist/interface/assets/{ConfigTriggerManual-Z1_1wUUM.js → ConfigTriggerManual-BDK6OYxg.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-BBvD0ow9.js → ConfigTriggerMqtt-BZO14RrW.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-B0rMjsZL.js → ConfigTriggerSchedule-sMkzMLgn.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-B1p15KGD.js → ConfigTriggerSensor-D6W_exDW.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-Du-AkCKy.js → ConfigTriggerSystem-D4cx1GqI.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-Debqt-nw.js → ConfigTriggerWebhook-DxZziGkL.js} +1 -1
- package/dist/interface/assets/Console-DjA3ZPU_.js +1 -0
- package/dist/interface/assets/CuiAutomationRunsDialog-B4ABK72A.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-D1zDWsoK.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-DECWGdrp.js → CuiBottomSheet-N9MHq4yZ.js} +1 -1
- package/dist/interface/assets/CuiCameraPipCard-CnWs2fAC.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CahW-f8_.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-D32cM63m.js → CuiCameraShares-B2RdPWWh.js} +1 -1
- package/dist/interface/assets/CuiCameraTable-4ikGv8QA.js +1 -0
- package/dist/interface/assets/{CuiCameraTable-Bk9N-Oc6.js → CuiCameraTable-BKBvhRDc.js} +2 -2
- package/dist/interface/assets/CuiChartTable-CqKo74Tf.css +1 -0
- package/dist/interface/assets/CuiChartTable-Lvz9Zq0k.js +1 -0
- package/dist/interface/assets/CuiConsole-DUswVhFC.js +5 -0
- package/dist/interface/assets/CuiDataTable-CIP95jVF.js +1 -0
- package/dist/interface/assets/CuiLightControl-CvfWo8mY.js +1 -0
- package/dist/interface/assets/{CuiList-w69dERIq.js → CuiList-CajC6jpE.js} +1 -1
- package/dist/interface/assets/CuiPluginCard-CQS8C87-.js +2 -0
- package/dist/interface/assets/CuiPluginCategoryChip-DCNG8zl1.js +1 -0
- package/dist/interface/assets/{CuiPluginOAuthButton-CNxj7cuf.js → CuiPluginOAuthButton-CvZrOWr8.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-DYsEz6WI.js → CuiPluginTrustBadge-Bc1dQgX8.js} +1 -1
- package/dist/interface/assets/CuiQRCode-CjLcB644.js +1 -0
- package/dist/interface/assets/CuiRecordingsGrid-DrpErbux.js +1 -0
- package/dist/interface/assets/{CuiRecordingsGrid-Q4C3aeLo.css → CuiRecordingsGrid-EAumRo5E.css} +1 -1
- package/dist/interface/assets/CuiSchema-BYYeh269.css +1 -0
- package/dist/interface/assets/CuiSchema-DG8peseE.js +1 -0
- package/dist/interface/assets/{CuiTopNavbarItem-7yu9c68R.js → CuiTopNavbarItem-Dq3Esl1S.js} +1 -1
- package/dist/interface/assets/Faces-D0yRgOMj.js +1 -0
- package/dist/interface/assets/FirstSteps-BW8AVmd4.js +1 -0
- package/dist/interface/assets/{Instances-Bmb-yWM-.js → Instances-BgXJvs0_.js} +1 -1
- package/dist/interface/assets/{Logs-DxHqkMpx.js → Logs-DH3rWnlV.js} +2 -2
- package/dist/interface/assets/Menu-D9FVgjwT.js +1 -0
- package/dist/interface/assets/Metrics-7bYWyGWU.js +9 -0
- package/dist/interface/assets/Metrics-DX59XXDc.css +1 -0
- package/dist/interface/assets/{OAuthDeviceFlow-CLi6l8jS.js → OAuthDeviceFlow-BS0FQbZh.js} +1 -1
- package/dist/interface/assets/Plugin-ZwkTp6C4.js +1 -0
- package/dist/interface/assets/{PluginConsole-xOY_kwz_.js → PluginConsole-Dt39TWaO.js} +2 -2
- package/dist/interface/assets/PluginDetail-D7ZtOG9Y.js +2 -0
- package/dist/interface/assets/{PluginSchema-DG3ou73v.js → PluginSchema-8T7EBq-Z.js} +1 -1
- package/dist/interface/assets/PluginSearch-DN3o0wfs.js +1 -0
- package/dist/interface/assets/PluginSearch-eRDCvu_8.js +2 -0
- package/dist/interface/assets/{PluginUpdateProgress-Bx0MXwAk.js → PluginUpdateProgress-CxjpzkGa.js} +1 -1
- package/dist/interface/assets/Plugins-DVsMpyvr.js +1 -0
- package/dist/interface/assets/Recordings-BKxSEiQo.js +1 -0
- package/dist/interface/assets/Recordings-cR4_6aGN.css +1 -0
- package/dist/interface/assets/SensorEdit-BmaMQKEa.js +1 -0
- package/dist/interface/assets/{SensorHistory-CTIUwIWN.js → SensorHistory-CmOAk-tD.js} +1 -1
- package/dist/interface/assets/Sensors-x08al7Je.js +2 -0
- package/dist/interface/assets/Settings-Cp1lzG1i.js +1 -0
- package/dist/interface/assets/SettingsAccount-BwCNddkW.js +1 -0
- package/dist/interface/assets/SettingsAccount-DC9AxqHe.js +1 -0
- package/dist/interface/assets/SettingsAppearance-CMzzDZCX.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-CoTdsIwM.js → SettingsAppearance-Dr8hJloI.js} +1 -1
- package/dist/interface/assets/SettingsBackup-Dc8pDM3Y.js +1 -0
- package/dist/interface/assets/{SettingsList-W5FvbkXm.js → SettingsList-3peF3gFZ.js} +1 -1
- package/dist/interface/assets/SettingsMqtt-k-cHaOoA.js +1 -0
- package/dist/interface/assets/SettingsNotifications-BJHYlSKX.js +1 -0
- package/dist/interface/assets/SettingsPermissions-CymqvfR9.js +1 -0
- package/dist/interface/assets/{SettingsRecordings-COUi9BQg.js → SettingsRecordings-gWTD_djR.js} +1 -1
- package/dist/interface/assets/SettingsRemote-BWAhI1Gw.js +2 -0
- package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +1 -0
- package/dist/interface/assets/SettingsSystem-BGBUQvjg.js +2 -0
- package/dist/interface/assets/SettingsUsers-B_Ri5OrM.js +1 -0
- package/dist/interface/assets/Terminal-eYxvgFHE.js +4 -0
- package/dist/interface/assets/Updates-CweZekTf.js +2 -0
- package/dist/interface/assets/{VariableInput-DhAhhfsm.js → VariableInput-CM6T3pUW.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-q0Jd1DVI.js → VariableSuggestions-BGxZxS6U.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-XEn3uFy7.js → VersionsHandler-BWIiBPPa.js} +2 -2
- package/dist/interface/assets/{VirtualSensorCreate-_E5E0U7E.js → VirtualSensorCreate-CFQC2-9D.js} +1 -1
- package/dist/interface/assets/Workers-B-sp43t3.js +2 -0
- package/dist/interface/assets/{Workers-7hKMBU4w.css → Workers-DH59zE1C.css} +1 -1
- package/dist/interface/assets/{api-C7Yv5Scr.js → api-CG0j1twy.js} +1 -1
- package/dist/interface/assets/api-CVOj5SYs.css +2 -0
- package/dist/interface/assets/api-C_bOaXk2.js +2 -0
- package/dist/interface/assets/{auth-BixzEnBM.js → auth-BPSOBTDX.js} +1 -1
- package/dist/interface/assets/{automations-K8XPcP3U.js → automations-BrtwUIUz.js} +1 -1
- package/dist/interface/assets/brain-7IVdhMyV.js +1 -0
- package/dist/interface/assets/cameras.schema-CoIOnGzE.js +1 -0
- package/dist/interface/assets/cloudHandoff-BiFzJEYx.js +1 -0
- package/dist/interface/assets/{config-CURuT8_k.js → config-BjldP5A6.js} +1 -1
- package/dist/interface/assets/content-copy-CLkJTA4w.js +1 -0
- package/dist/interface/assets/eventLabels-BsPoPWS9.js +1 -0
- package/dist/interface/assets/{flowSchema-szT9B0sA.js → flowSchema-B_Otn6RU.js} +1 -1
- package/dist/interface/assets/{intercomService-BjB4QQiX.js → intercomService-BpTOoSQi.js} +1 -1
- package/dist/interface/assets/lan-BP0NuDr7.js +1 -0
- package/dist/interface/assets/main-BG-VCb--.js +3 -0
- package/dist/interface/assets/main-CFQGq2Yn.css +1 -0
- package/dist/interface/assets/{mqtt-uItF3Vd7.js → mqtt-DSPPQwxJ.js} +1 -1
- package/dist/interface/assets/{notifications-CuZPzI4-.js → notifications-DEEM2oP2.js} +1 -1
- package/dist/interface/assets/{plugins-QEqfAk0G.js → plugins-DBBFdZKH.js} +1 -1
- package/dist/interface/assets/refresh-Ds2EayhZ.js +1 -0
- package/dist/interface/assets/sensorIcons-CP5EQZ60.js +1 -0
- package/dist/interface/assets/{sensors-BxvL01cB.js → sensors-CKTPsYYH.js} +1 -1
- package/dist/interface/assets/{server-CDm6FwHH.js → server-B_MuqJ5z.js} +1 -1
- package/dist/interface/assets/{theme-CRw47tnu.js → theme-FztlStyg.js} +1 -1
- package/dist/interface/assets/types-BHAzjgi3.js +1 -0
- package/dist/interface/assets/types-G1_espGV.js +1 -0
- package/dist/interface/assets/{types-DtdpTPfZ.js → types-bCt9IrFD.js} +1 -1
- package/dist/interface/assets/updates-CVapvGAI.js +1 -0
- package/dist/interface/assets/{useAppVersion-BxTTVLKg.js → useAppVersion-SrF7tGCe.js} +1 -1
- package/dist/interface/assets/useBackupRestore-Tc23Huvm.js +1 -0
- package/dist/interface/assets/{useCameraOptions-DMC2KjMS.js → useCameraOptions-zsIqf0i9.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CmyalQi8.js → useLogsSocket-DSltWBh4.js} +1 -1
- package/dist/interface/assets/{useNavLayout-BacPxpZv.js → useNavLayout-BhlxDHV7.js} +1 -1
- package/dist/interface/assets/{usePermissions-C2wQBWmH.js → usePermissions-4HqGU99G.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-CyjxFTTi.js → usePluginUpdates-CKH0Hb87.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-BPSfvI_w.js → usePushRegistration-DAE3goyn.js} +1 -1
- package/dist/interface/assets/{useServerRestart-x8p2rFqn.js → useServerRestart-DoLrF47t.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-PMpl519O.js → useStreamStatus-B3QIWjDE.js} +1 -1
- package/dist/interface/assets/useTabSwipe-BYFLQ9EY.js +1 -0
- package/dist/interface/assets/{useUpdateChannel-ChscS5KW.js → useUpdateChannel-DWEw-ZyB.js} +1 -1
- package/dist/interface/assets/useUpdatesSocket-CoxkS7Hr.js +1 -0
- package/dist/interface/assets/{useUserOptions-YiEj2ox6.js → useUserOptions-DCDeuz2p.js} +1 -1
- package/dist/interface/assets/vendor-cameraui-4iwjOYwz.js +2326 -0
- package/dist/interface/assets/vendor-core-gJradu21.js +1 -0
- package/dist/interface/assets/{vendor-primevue-BDu2BpXv.js → vendor-primevue-DMAuiM9b.js} +72 -72
- package/dist/interface/index.html +32 -27
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +13 -12
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +8 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +20 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +8 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +10 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +9 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +24 -10
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/enums.py +6 -7
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/notification.py +28 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +24 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +18 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/detection.py +3 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +6 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/spec.py +27 -3
- package/dist/server/src/api/controllers/auth.controller.js +5 -0
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +14 -0
- package/dist/server/src/api/controllers/frameWorkers.controller.js +96 -0
- package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -1
- package/dist/server/src/api/controllers/remote.controller.d.ts +1 -0
- package/dist/server/src/api/controllers/remote.controller.js +16 -12
- package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
- package/dist/server/src/api/controllers/server.controller.js +6 -2
- package/dist/server/src/api/controllers/server.controller.js.map +1 -1
- package/dist/server/src/api/controllers/updates.controller.d.ts +8 -0
- package/dist/server/src/api/controllers/updates.controller.js +40 -0
- package/dist/server/src/api/controllers/updates.controller.js.map +1 -0
- 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/constants.d.ts +0 -1
- package/dist/server/src/api/database/constants.js +0 -1
- package/dist/server/src/api/database/constants.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +2 -3
- package/dist/server/src/api/database/index.js +3 -6
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-10.js +33 -0
- package/dist/server/src/api/database/migrations/v2-1-10.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-11.js +31 -0
- package/dist/server/src/api/database/migrations/v2-1-11.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-12.js +25 -0
- package/dist/server/src/api/database/migrations/v2-1-12.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-13.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-13.js +51 -0
- package/dist/server/src/api/database/migrations/v2-1-13.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-14.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-14.js +87 -0
- package/dist/server/src/api/database/migrations/v2-1-14.js.map +1 -0
- package/dist/server/src/api/database/migrations/v2-1-6.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-1-9.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-1-9.js +38 -0
- package/dist/server/src/api/database/migrations/v2-1-9.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +18 -13
- package/dist/server/src/api/database/record-schemas.js +3 -3
- package/dist/server/src/api/database/record-schemas.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +3 -11
- package/dist/server/src/api/routes/frameWorkers.routes.js +22 -1
- package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -1
- package/dist/server/src/api/routes/index.js +3 -1
- package/dist/server/src/api/routes/index.js.map +1 -1
- package/dist/server/src/api/routes/updates.routes.d.ts +2 -0
- package/dist/server/src/api/routes/updates.routes.js +47 -0
- package/dist/server/src/api/routes/updates.routes.js.map +1 -0
- package/dist/server/src/api/routes/workers.routes.js +3 -2
- package/dist/server/src/api/routes/workers.routes.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +228 -79
- package/dist/server/src/api/schemas/cameras.schema.js +58 -9
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/frameWorkers.schema.d.ts +6 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js +7 -0
- package/dist/server/src/api/schemas/frameWorkers.schema.js.map +1 -1
- package/dist/server/src/api/schemas/server.schema.d.ts +1 -0
- package/dist/server/src/api/schemas/server.schema.js +4 -0
- package/dist/server/src/api/schemas/server.schema.js.map +1 -1
- package/dist/server/src/api/schemas/users.schema.d.ts +119 -84
- package/dist/server/src/api/schemas/users.schema.js +3 -0
- package/dist/server/src/api/schemas/users.schema.js.map +1 -1
- package/dist/server/src/api/schemas/workers.schema.d.ts +3 -0
- package/dist/server/src/api/schemas/workers.schema.js +5 -0
- package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
- package/dist/server/src/api/services/plugins.service.d.ts +4 -1
- package/dist/server/src/api/services/plugins.service.js +23 -4
- package/dist/server/src/api/services/plugins.service.js.map +1 -1
- package/dist/server/src/api/services/server.service.d.ts +3 -1
- package/dist/server/src/api/services/server.service.js +6 -1
- package/dist/server/src/api/services/server.service.js.map +1 -1
- package/dist/server/src/api/services/updates.service.d.ts +108 -0
- package/dist/server/src/api/services/updates.service.js +476 -0
- package/dist/server/src/api/services/updates.service.js.map +1 -0
- package/dist/server/src/api/types/index.d.ts +6 -0
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/api/websocket/index.js +2 -0
- package/dist/server/src/api/websocket/index.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/metrics.d.ts +3 -1
- package/dist/server/src/api/websocket/nsp/metrics.js +90 -37
- package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/server.js +45 -9
- package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +23 -17
- package/dist/server/src/camera/controller.js +1 -0
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/audio-loop.d.ts +0 -1
- package/dist/server/src/camera/decoder/audio-loop.js +38 -68
- package/dist/server/src/camera/decoder/audio-loop.js.map +1 -1
- package/dist/server/src/camera/decoder/child.d.ts +4 -1
- package/dist/server/src/camera/decoder/child.js +27 -0
- package/dist/server/src/camera/decoder/child.js.map +1 -1
- package/dist/server/src/camera/decoder/debug/detection-record.d.ts +6 -0
- package/dist/server/src/camera/decoder/debug/detection-record.js +21 -0
- package/dist/server/src/camera/decoder/debug/detection-record.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +26 -3
- package/dist/server/src/camera/decoder/detection-coordinator.js +525 -207
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +4 -2
- package/dist/server/src/camera/decoder/detection-pipeline.js +17 -10
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-window.d.ts +17 -0
- package/dist/server/src/camera/decoder/detection-window.js +188 -0
- package/dist/server/src/camera/decoder/detection-window.js.map +1 -0
- package/dist/server/src/camera/decoder/event-manager.d.ts +1 -0
- package/dist/server/src/camera/decoder/event-manager.js +12 -0
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
- package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +3 -3
- package/dist/server/src/camera/decoder/event-thumbnailer.js +2 -2
- package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +14 -1
- package/dist/server/src/camera/decoder/frame-scaler.js +63 -20
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
- package/dist/server/src/camera/decoder/motion-localizer.d.ts +16 -0
- package/dist/server/src/camera/decoder/motion-localizer.js +49 -0
- package/dist/server/src/camera/decoder/motion-localizer.js.map +1 -0
- package/dist/server/src/camera/decoder/perf-tracker.d.ts +29 -8
- package/dist/server/src/camera/decoder/perf-tracker.js +76 -50
- package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
- package/dist/server/src/camera/decoder/plugin-registry.d.ts +1 -0
- package/dist/server/src/camera/decoder/plugin-registry.js +8 -6
- package/dist/server/src/camera/decoder/plugin-registry.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +4 -1
- package/dist/server/src/camera/decoder/secondary-stage.js +26 -3
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/analysis-source.d.ts +15 -1
- package/dist/server/src/camera/decoder/sources/audio-source.d.ts +7 -3
- package/dist/server/src/camera/decoder/sources/audio-source.js +89 -78
- package/dist/server/src/camera/decoder/sources/audio-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +27 -9
- package/dist/server/src/camera/decoder/sources/buffered-source.js +151 -65
- package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/frame-handle.d.ts +13 -0
- package/dist/server/src/camera/decoder/sources/frame-handle.js +106 -0
- package/dist/server/src/camera/decoder/sources/frame-handle.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/frame-source.d.ts +25 -26
- package/dist/server/src/camera/decoder/sources/frame-source.js +213 -268
- package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -1
- package/dist/server/src/camera/decoder/sources/reconnect-loop.d.ts +17 -0
- package/dist/server/src/camera/decoder/sources/reconnect-loop.js +59 -0
- package/dist/server/src/camera/decoder/sources/reconnect-loop.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.d.ts +15 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js +58 -0
- package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/video-input.d.ts +18 -0
- package/dist/server/src/camera/decoder/sources/video-input.js +55 -0
- package/dist/server/src/camera/decoder/sources/video-input.js.map +1 -0
- package/dist/server/src/camera/decoder/types.d.ts +74 -18
- package/dist/server/src/camera/decoder/types.js +2 -0
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/camera/decoder/worker.d.ts +5 -1
- package/dist/server/src/camera/decoder/worker.js +35 -5
- package/dist/server/src/camera/decoder/worker.js.map +1 -1
- package/dist/server/src/camera/index.d.ts +2 -1
- package/dist/server/src/camera/index.js +3 -0
- package/dist/server/src/camera/index.js.map +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js +1 -1
- package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js +1 -1
- package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
- package/dist/server/src/main.js +22 -2
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/manager/types.d.ts +1 -0
- package/dist/server/src/manager/types.js +2 -0
- package/dist/server/src/manager/types.js.map +1 -1
- package/dist/server/src/mqtt/bridge.d.ts +0 -1
- package/dist/server/src/mqtt/bridge.js +0 -33
- package/dist/server/src/mqtt/bridge.js.map +1 -1
- package/dist/server/src/mqtt/ha-discovery.js +0 -1
- package/dist/server/src/mqtt/ha-discovery.js.map +1 -1
- package/dist/server/src/plugins/index.js +0 -2
- package/dist/server/src/plugins/index.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +9 -0
- package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +8 -0
- package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +1 -0
- package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +13 -0
- package/dist/server/src/remote/services/cloudflare-managed.d.ts +2 -0
- package/dist/server/src/remote/services/cloudflare-managed.js +9 -2
- package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
- package/dist/server/src/remote/services/cloudflare.d.ts +3 -0
- package/dist/server/src/remote/services/cloudflare.js +11 -0
- package/dist/server/src/remote/services/cloudflare.js.map +1 -1
- package/dist/server/src/remote/services/index.d.ts +2 -0
- package/dist/server/src/remote/services/index.js +60 -8
- package/dist/server/src/remote/services/index.js.map +1 -1
- package/dist/server/src/remote/services/tunnelConnections.d.ts +9 -0
- package/dist/server/src/remote/services/tunnelConnections.js +45 -0
- package/dist/server/src/remote/services/tunnelConnections.js.map +1 -0
- package/dist/server/src/remote/services/urlReadiness.d.ts +2 -0
- package/dist/server/src/remote/services/urlReadiness.js +7 -4
- package/dist/server/src/remote/services/urlReadiness.js.map +1 -1
- package/dist/server/src/remote/types.d.ts +1 -2
- package/dist/server/src/rpc/interfaces/frameworker.d.ts +4 -1
- package/dist/server/src/rpc/interfaces/sensor.d.ts +1 -0
- package/dist/server/src/rpc/leafConnection.d.ts +12 -0
- package/dist/server/src/rpc/leafConnection.js +60 -0
- package/dist/server/src/rpc/leafConnection.js.map +1 -0
- package/dist/server/src/rpc/server.d.ts +2 -0
- package/dist/server/src/rpc/server.js +7 -1
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.d.ts +2 -0
- package/dist/server/src/sensors/registry.js +16 -0
- package/dist/server/src/sensors/registry.js.map +1 -1
- 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/types.d.ts +10 -1
- package/dist/server/src/utils/ipc.d.ts +9 -0
- package/dist/server/src/utils/ipc.js +31 -5
- package/dist/server/src/utils/ipc.js.map +1 -1
- package/dist/server/src/utils/plugin-registry/index.js +1 -1
- package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
- package/dist/server/src/utils/system-info.d.ts +9 -0
- package/dist/server/src/utils/system-info.js +48 -0
- package/dist/server/src/utils/system-info.js.map +1 -0
- package/dist/server/src/workers/agent.d.ts +3 -0
- package/dist/server/src/workers/agent.js +36 -8
- package/dist/server/src/workers/agent.js.map +1 -1
- package/dist/server/src/workers/capabilities/frame-decoding.d.ts +2 -2
- package/dist/server/src/workers/capabilities/frame-decoding.js +5 -5
- package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
- package/dist/server/src/workers/capabilities/handler.d.ts +2 -2
- package/dist/server/src/workers/capabilities/plugin-host.d.ts +2 -2
- package/dist/server/src/workers/capabilities/plugin-host.js +6 -6
- package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
- package/dist/server/src/workers/manager.d.ts +9 -1
- package/dist/server/src/workers/manager.js +24 -0
- package/dist/server/src/workers/manager.js.map +1 -1
- package/dist/server/src/workers/types.d.ts +14 -0
- package/dist/server/src/workers/types.js.map +1 -1
- package/package.json +13 -12
- package/dist/interface/assets/Automation-DDNhcjDg.js +0 -3
- package/dist/interface/assets/AutomationImport-DAeFd-SZ.js +0 -2
- package/dist/interface/assets/Automations-BeGe7iQE.js +0 -2
- package/dist/interface/assets/Camera-C0sNg85L.js +0 -2
- package/dist/interface/assets/Camera-C5gF7yVN.css +0 -1
- package/dist/interface/assets/Camview-DzMmXQvW.js +0 -1
- package/dist/interface/assets/ConfigActionCameraControl-BMlRbdRM.js +0 -1
- package/dist/interface/assets/ConfigTriggerDetection-ijTkd_SS.js +0 -1
- package/dist/interface/assets/ConfigTriggerGeofence-Q7LQpVoM.js +0 -1
- package/dist/interface/assets/Console-Gu1eu82G.js +0 -1
- package/dist/interface/assets/CuiAutomationRunsDialog-CxcWpqrI.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-BkmkKf1u.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-CuZZZ7Cv.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-BxEA_Vhd.js +0 -1
- package/dist/interface/assets/CuiCameraTable-67Itb7my.js +0 -1
- package/dist/interface/assets/CuiConsole-De9JpSLz.js +0 -5
- package/dist/interface/assets/CuiDataTable-P8bWN0ZK.js +0 -1
- package/dist/interface/assets/CuiLightControl-D5Z1AqWH.js +0 -1
- package/dist/interface/assets/CuiPluginCard-D3x9FPb6.js +0 -2
- package/dist/interface/assets/CuiPluginCategoryChip-CQ2FJafE.js +0 -1
- package/dist/interface/assets/CuiQRCode-CZnspFFw.js +0 -1
- package/dist/interface/assets/CuiRecordingsGrid-wEaU6-3c.js +0 -1
- package/dist/interface/assets/CuiSchema--yMBD996.css +0 -1
- package/dist/interface/assets/CuiSchema-DLV1lIiB.js +0 -1
- package/dist/interface/assets/Faces-BlPQek1-.js +0 -1
- package/dist/interface/assets/FirstSteps-C-DKv_P2.js +0 -1
- package/dist/interface/assets/Menu-DceReBlq.js +0 -1
- package/dist/interface/assets/Metrics-BstlZavQ.css +0 -1
- package/dist/interface/assets/Metrics-Cw_Z_e0C.js +0 -1
- package/dist/interface/assets/Plugin-BBVxbQeT.js +0 -1
- package/dist/interface/assets/PluginDetail-D2RncxpL.js +0 -2
- package/dist/interface/assets/PluginSearch-CBhloRm6.js +0 -1
- package/dist/interface/assets/PluginSearch-RGhSeM1T.js +0 -2
- package/dist/interface/assets/Plugins-COHwVV0A.js +0 -1
- package/dist/interface/assets/Recordings-H5qOm_rD.js +0 -1
- package/dist/interface/assets/Recordings-zdTzwv7C.css +0 -1
- package/dist/interface/assets/SensorEdit-C-H_3ap8.js +0 -1
- package/dist/interface/assets/Sensors-lPcOdHJN.js +0 -2
- package/dist/interface/assets/Settings-BUoXoFiH.js +0 -1
- package/dist/interface/assets/SettingsAccount-CudWgknL.js +0 -1
- package/dist/interface/assets/SettingsAccount-DUy_W02_.js +0 -1
- package/dist/interface/assets/SettingsAppearance-eZsdWWp3.js +0 -1
- package/dist/interface/assets/SettingsBackup-ibb5I5Jv.js +0 -1
- package/dist/interface/assets/SettingsMqtt-Ct42icAW.js +0 -1
- package/dist/interface/assets/SettingsNotifications-B4lyMlLR.js +0 -1
- package/dist/interface/assets/SettingsPermissions-Bsv293ri.js +0 -1
- package/dist/interface/assets/SettingsRemote-DYld6-1F.css +0 -1
- package/dist/interface/assets/SettingsRemote-Dq_BD0fk.js +0 -1
- package/dist/interface/assets/SettingsSystem-C5xROdA0.js +0 -2
- package/dist/interface/assets/SettingsUsers-Cjk6mevW.js +0 -1
- package/dist/interface/assets/Terminal-BIdBrL4g.js +0 -4
- package/dist/interface/assets/Workers-DVABUc39.js +0 -2
- package/dist/interface/assets/api-AVHJeggR.css +0 -2
- package/dist/interface/assets/api-CmdQlVDD.js +0 -2
- package/dist/interface/assets/cameras.schema-A_6JklLs.js +0 -1
- package/dist/interface/assets/cloudHandoff-D0ytFfHK.js +0 -1
- package/dist/interface/assets/deployed-code-update-xHE-blDN.js +0 -1
- package/dist/interface/assets/main-B1ryIyTr.css +0 -1
- package/dist/interface/assets/main-BdIdmDhs.js +0 -3
- package/dist/interface/assets/round-restart-alt-B_7HR24a.js +0 -1
- package/dist/interface/assets/round-restart-alt-CmrjVFat.css +0 -1
- package/dist/interface/assets/sensorIcons-BujySw0j.js +0 -1
- package/dist/interface/assets/types-R10eIequ.js +0 -1
- package/dist/interface/assets/types-p_uC0rfp.js +0 -1
- package/dist/interface/assets/useBackupRestore-DLieDBFC.js +0 -1
- package/dist/interface/assets/vendor-cameraui-Cf0XVNQ7.js +0 -2326
- package/dist/interface/assets/vendor-core-u4xNQ-aF.js +0 -1
- package/dist/server/src/api/database/migrations/v2-0-50.js +0 -45
- package/dist/server/src/api/database/migrations/v2-0-50.js.map +0 -1
- package/dist/server/src/api/database/migrations/v2-0-51.js +0 -43
- package/dist/server/src/api/database/migrations/v2-0-51.js.map +0 -1
- package/dist/server/src/api/database/migrations/v2-1-0.js +0 -72
- package/dist/server/src/api/database/migrations/v2-1-0.js.map +0 -1
- /package/dist/server/src/api/database/migrations/{v2-0-50.d.ts → v2-1-10.d.ts} +0 -0
- /package/dist/server/src/api/database/migrations/{v2-0-51.d.ts → v2-1-11.d.ts} +0 -0
- /package/dist/server/src/api/database/migrations/{v2-1-0.d.ts → v2-1-12.d.ts} +0 -0
|
@@ -16,13 +16,6 @@ Detection zone intersection type.
|
|
|
16
16
|
- `contain`: Trigger only when object is fully inside the zone
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
ZoneFilter = Literal["include", "exclude"]
|
|
20
|
-
"""
|
|
21
|
-
Detection zone filter mode.
|
|
22
|
-
- `include`: Only consider detections inside this zone
|
|
23
|
-
- `exclude`: Only consider detections outside this zone
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
19
|
CameraRole = Literal["high-resolution", "mid-resolution", "low-resolution", "snapshot"]
|
|
27
20
|
"""
|
|
28
21
|
Camera stream resolution role.
|
|
@@ -32,6 +25,12 @@ Used to identify different quality streams from the same camera.
|
|
|
32
25
|
StreamingRole = Literal["high-resolution", "mid-resolution", "low-resolution"]
|
|
33
26
|
"""Streaming roles (excludes snapshot)."""
|
|
34
27
|
|
|
28
|
+
PlaybackSource = Literal["auto", "high", "mid", "low"]
|
|
29
|
+
"""Recorded playback quality selection: a fixed tier, or automatic tier choice from the recorded coverage."""
|
|
30
|
+
|
|
31
|
+
CameraActivityMode = Literal["always-on", "activity", "standby"]
|
|
32
|
+
"""When the live stream runs: continuously, only during activity, or on demand."""
|
|
33
|
+
|
|
35
34
|
MotionResolution = Literal["low", "medium", "high"]
|
|
36
35
|
"""
|
|
37
36
|
Motion detection resolution setting.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Literal, TypedDict
|
|
4
|
+
|
|
5
|
+
NotificationSpeed = Literal["immediate", "balanced", "best"]
|
|
6
|
+
"""
|
|
7
|
+
How long a push waits for a good picture.
|
|
8
|
+
- ``immediate``: send right away, with a picture only if one is ready
|
|
9
|
+
- ``balanced``: wait up to 2 seconds for the best picture
|
|
10
|
+
- ``best``: wait up to 4 seconds for the best picture
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CameraNotificationSettings(TypedDict):
|
|
15
|
+
"""Push notification settings for a camera."""
|
|
16
|
+
|
|
17
|
+
enabled: bool
|
|
18
|
+
"""Whether detections on this camera send a push at all."""
|
|
19
|
+
video: bool
|
|
20
|
+
"""Attach a short clip of the moment. Needs recording, uses the lowest recorded quality."""
|
|
21
|
+
audio: list[str]
|
|
22
|
+
"""Audio events that send a push. ``other`` covers custom audio labels."""
|
|
23
|
+
sensors: list[str]
|
|
24
|
+
"""Sensor triggers that send a push, by sensor type."""
|
|
25
|
+
cooldown: float
|
|
26
|
+
"""Minimum seconds between pushes. Critical alerts bypass it and do not count toward it."""
|
|
27
|
+
speed: NotificationSpeed
|
|
28
|
+
"""How long a push waits for a good picture."""
|
|
@@ -130,6 +130,9 @@ class ClipDetectionPluginResponse(TypedDict):
|
|
|
130
130
|
embeddingModel: str
|
|
131
131
|
"""Model that produced the embeddings; consumers must not mix models."""
|
|
132
132
|
|
|
133
|
+
scoreBand: list[float]
|
|
134
|
+
"""[floor, ceiling] of raw text-image cosine scores for this model; consumers map scores to a 0..1 relevance scale and treat a missing band as score 0."""
|
|
135
|
+
|
|
133
136
|
|
|
134
137
|
class ClipTextEmbeddingResult(TypedDict):
|
|
135
138
|
"""Result of a CLIP text embedding request."""
|
|
@@ -140,6 +143,9 @@ class ClipTextEmbeddingResult(TypedDict):
|
|
|
140
143
|
embeddingModel: str
|
|
141
144
|
"""Model that produced the embedding; consumers must not mix models."""
|
|
142
145
|
|
|
146
|
+
scoreBand: list[float]
|
|
147
|
+
"""[floor, ceiling] of raw text-image cosine scores for this model; consumers map scores to a 0..1 relevance scale and treat a missing band as score 0."""
|
|
148
|
+
|
|
143
149
|
|
|
144
150
|
class BasePlugin(ABC, Generic[StorageT]):
|
|
145
151
|
"""Base class every plugin extends.
|
|
@@ -443,10 +449,28 @@ class ClipDetectionInterface(Protocol):
|
|
|
443
449
|
"""Run the CLIP image branch on a pre-decoded video frame."""
|
|
444
450
|
...
|
|
445
451
|
|
|
452
|
+
async def embedImages(
|
|
453
|
+
self, images: list[bytes], config: dict[str, Any] | None = None
|
|
454
|
+
) -> list[ClipDetectionPluginResponse | None]:
|
|
455
|
+
"""Run the CLIP image branch over a batch of encoded images (JPEG/PNG).
|
|
456
|
+
|
|
457
|
+
One result per input in the same order, None where decoding or embedding
|
|
458
|
+
failed. Meant for re-indexing stored images after an embedding-model change.
|
|
459
|
+
"""
|
|
460
|
+
...
|
|
461
|
+
|
|
446
462
|
async def getTextEmbedding(self, text: str) -> ClipTextEmbeddingResult:
|
|
447
463
|
"""Run the CLIP text branch and return a vector usable for semantic-search queries against stored image embeddings."""
|
|
448
464
|
...
|
|
449
465
|
|
|
466
|
+
async def getTextEmbeddings(self, text: str) -> list[ClipTextEmbeddingResult]:
|
|
467
|
+
"""Run the CLIP text branch once per embedding space the plugin can currently serve.
|
|
468
|
+
|
|
469
|
+
The configured search model comes first. Lets semantic search also cover
|
|
470
|
+
embeddings produced by an older model during a transition.
|
|
471
|
+
"""
|
|
472
|
+
...
|
|
473
|
+
|
|
450
474
|
async def clipSettings(self) -> list[JsonSchema] | None:
|
|
451
475
|
"""Return the JSON schema for the CLIP settings form in the UI, or None for no schema."""
|
|
452
476
|
...
|
|
@@ -138,6 +138,8 @@ from .smoke import (
|
|
|
138
138
|
from .spec import (
|
|
139
139
|
AudioInputSpec,
|
|
140
140
|
AudioModelSpec,
|
|
141
|
+
LoadedModel,
|
|
142
|
+
ModelRuntime,
|
|
141
143
|
ModelSpec,
|
|
142
144
|
ObjectModelSpec,
|
|
143
145
|
VideoInputSpec,
|
|
@@ -165,6 +167,8 @@ __all__ = [
|
|
|
165
167
|
"SensorCategory",
|
|
166
168
|
"SensorPropertyChangeData",
|
|
167
169
|
"VideoInputSpec",
|
|
170
|
+
"LoadedModel",
|
|
171
|
+
"ModelRuntime",
|
|
168
172
|
"ObjectModelSpec",
|
|
169
173
|
"ModelSpec",
|
|
170
174
|
"AudioInputSpec",
|
|
@@ -505,6 +505,24 @@ class Sensor(ABC, Generic[TProperties, TStorage, TCapability]):
|
|
|
505
505
|
"""
|
|
506
506
|
return capability in self._capabilities
|
|
507
507
|
|
|
508
|
+
def updateModelSpec(self) -> None:
|
|
509
|
+
"""Re-announce the model spec, e.g. once the models finished loading.
|
|
510
|
+
|
|
511
|
+
The spec a detector reports at registration is what it knows at that
|
|
512
|
+
moment: models that load in the background are missing from it. Call
|
|
513
|
+
this after loading, the server replaces its copy.
|
|
514
|
+
|
|
515
|
+
Example:
|
|
516
|
+
```python
|
|
517
|
+
async def on_start(self) -> None:
|
|
518
|
+
await self._plugin.get_object_detector(model_name)
|
|
519
|
+
self.updateModelSpec()
|
|
520
|
+
```
|
|
521
|
+
"""
|
|
522
|
+
spec = getattr(self, "modelSpec", None)
|
|
523
|
+
if spec is not None:
|
|
524
|
+
self._write_state({"modelSpec": spec})
|
|
525
|
+
|
|
508
526
|
def _write_state(self, partial: Mapping[str, Any]) -> None:
|
|
509
527
|
"""Write changed properties, fire one batched RPC update and notify listeners.
|
|
510
528
|
|
|
@@ -5,16 +5,16 @@ from typing import Literal, NotRequired
|
|
|
5
5
|
from typing_extensions import TypedDict
|
|
6
6
|
|
|
7
7
|
#: Object-detection labels the detector groups its classes into.
|
|
8
|
-
OBJECT_DETECTION_LABELS = ("person", "vehicle", "animal"
|
|
8
|
+
OBJECT_DETECTION_LABELS = ("person", "vehicle", "animal")
|
|
9
9
|
|
|
10
10
|
#: Union of the object-detection label strings.
|
|
11
|
-
ObjectDetectionLabel = Literal["person", "vehicle", "animal"
|
|
11
|
+
ObjectDetectionLabel = Literal["person", "vehicle", "animal"]
|
|
12
12
|
|
|
13
13
|
#: Built-in detection label types recognized across the system.
|
|
14
14
|
DETECTION_LABELS = ("motion", *OBJECT_DETECTION_LABELS, "audio")
|
|
15
15
|
|
|
16
16
|
#: Union of the built-in detection label strings.
|
|
17
|
-
DetectionLabel = Literal["motion", "person", "vehicle", "animal", "
|
|
17
|
+
DetectionLabel = Literal["motion", "person", "vehicle", "animal", "audio"]
|
|
18
18
|
|
|
19
19
|
#: Detection attribute types used to mark sub-detections (face, license plate, ...).
|
|
20
20
|
DETECTION_ATTRIBUTES = ("face", "license_plate")
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from abc import abstractmethod
|
|
4
4
|
from collections.abc import Mapping
|
|
5
5
|
from enum import StrEnum
|
|
6
|
-
from typing import Any, Generic, Literal, Protocol, overload, runtime_checkable
|
|
6
|
+
from typing import Any, Generic, Literal, NotRequired, Protocol, overload, runtime_checkable
|
|
7
7
|
|
|
8
8
|
from typing_extensions import TypedDict, TypeVar
|
|
9
9
|
|
|
@@ -22,6 +22,8 @@ class ObjectProperty(StrEnum):
|
|
|
22
22
|
"""List of detected objects with labels and bounding boxes."""
|
|
23
23
|
Labels = "labels"
|
|
24
24
|
"""Unique labels of the current detections (auto-derived when reporting detections)."""
|
|
25
|
+
StaticDetections = "staticDetections"
|
|
26
|
+
"""Settled objects hidden from events, kept visible for overlays. Written by the backend."""
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
class TrackVelocity(TypedDict):
|
|
@@ -47,6 +49,8 @@ class TrackedDetection(Detection, total=False):
|
|
|
47
49
|
"""Signed centroid velocity in normalized units per frame."""
|
|
48
50
|
trackLost: bool
|
|
49
51
|
"""True if the object was not matched in the current frame."""
|
|
52
|
+
stationarySince: float
|
|
53
|
+
"""Epoch ms since the object has been still. Only present while it is settled."""
|
|
50
54
|
|
|
51
55
|
|
|
52
56
|
class ObjectSensorProperties(TypedDict):
|
|
@@ -55,6 +59,7 @@ class ObjectSensorProperties(TypedDict):
|
|
|
55
59
|
detected: bool
|
|
56
60
|
detections: list[TrackedDetection]
|
|
57
61
|
labels: list[DetectionLabel]
|
|
62
|
+
staticDetections: NotRequired[list[TrackedDetection]]
|
|
58
63
|
|
|
59
64
|
|
|
60
65
|
class ObjectPropertyChangeData(TypedDict):
|
|
@@ -16,7 +16,31 @@ class VideoInputSpec(TypedDict):
|
|
|
16
16
|
"""Pixel format: rgb=3 bytes/pixel, gray=1 byte/pixel, nv12=YUV semi-planar."""
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
class
|
|
19
|
+
class LoadedModel(TypedDict):
|
|
20
|
+
"""One model a sensor has loaded. Reported for the metrics view and for debugging."""
|
|
21
|
+
|
|
22
|
+
name: str
|
|
23
|
+
"""Resolved model name, after any "default" placeholder (e.g. "yolo-v9-s-320")."""
|
|
24
|
+
role: NotRequired[str]
|
|
25
|
+
"""What this model does inside a sensor that loads several: "detect", "embed", "ocr", "text"."""
|
|
26
|
+
device: NotRequired[str]
|
|
27
|
+
"""Where inference runs, resolved to the real device (e.g. "GPU.0", "ANE", "TPU:0", "CPU")."""
|
|
28
|
+
precision: NotRequired[str]
|
|
29
|
+
"""Weight precision: "fp32", "fp16", "int8"."""
|
|
30
|
+
loadMs: NotRequired[int]
|
|
31
|
+
"""How long loading this model took, in milliseconds."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class ModelRuntime(TypedDict):
|
|
35
|
+
"""What a sensor runs on. Optional throughout: a plugin that reports nothing simply shows nothing."""
|
|
36
|
+
|
|
37
|
+
runtime: NotRequired[str]
|
|
38
|
+
"""Inference framework and version, e.g. "openvino 2025.3.0"."""
|
|
39
|
+
models: NotRequired[list[LoadedModel]]
|
|
40
|
+
"""Models this sensor has loaded, primary one first."""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ObjectModelSpec(ModelRuntime):
|
|
20
44
|
"""Model spec for object detectors.
|
|
21
45
|
|
|
22
46
|
Only declares input dimensions, the output label set is dynamic and comes
|
|
@@ -27,7 +51,7 @@ class ObjectModelSpec(TypedDict):
|
|
|
27
51
|
"""Required input frame dimensions and pixel format."""
|
|
28
52
|
|
|
29
53
|
|
|
30
|
-
class ModelSpec(
|
|
54
|
+
class ModelSpec(ModelRuntime):
|
|
31
55
|
"""Model spec for detectors with fixed output labels (face, classifier, license plate).
|
|
32
56
|
|
|
33
57
|
Declares the input shape the backend should produce and the trigger
|
|
@@ -55,7 +79,7 @@ class AudioInputSpec(TypedDict):
|
|
|
55
79
|
"""Number of samples per audio frame the detector expects; the backend buffers audio to deliver exactly this many samples per call."""
|
|
56
80
|
|
|
57
81
|
|
|
58
|
-
class AudioModelSpec(
|
|
82
|
+
class AudioModelSpec(ModelRuntime):
|
|
59
83
|
"""Model spec for audio detectors."""
|
|
60
84
|
|
|
61
85
|
input: AudioInputSpec
|
|
@@ -614,6 +614,11 @@ export class AuthController {
|
|
|
614
614
|
const internalAddresses = allAddresses
|
|
615
615
|
.filter((addr) => selectedAddresses.length === 0 || selectedAddresses.includes(addr.address))
|
|
616
616
|
.map((addr) => buildHttpsUrl(addr.address, port));
|
|
617
|
+
// one more local candidate, never a go2rtc filter entry: those compare against
|
|
618
|
+
// IP literals, a hostname there would gather no candidate at all
|
|
619
|
+
const localUrl = this.serverService.info().localUrl?.trim();
|
|
620
|
+
if (localUrl)
|
|
621
|
+
internalAddresses.unshift(localUrl);
|
|
617
622
|
const remoteStatus = this.remoteAccessManager.getStatus();
|
|
618
623
|
const externalAddresses = [];
|
|
619
624
|
if (remoteStatus.externalUrl)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,22 @@ import type { AuthLoginRequest, FrameWorker, FrameWorkerParamsNameRequest, Pagin
|
|
|
3
3
|
export declare class FrameWorkersController {
|
|
4
4
|
private app;
|
|
5
5
|
private api;
|
|
6
|
+
private pluginManager;
|
|
7
|
+
private workerManager;
|
|
8
|
+
private benchmarkRun?;
|
|
6
9
|
constructor(app: FastifyInstance);
|
|
7
10
|
list(_req: FastifyRequest<AuthLoginRequest & PaginationRequest>, reply: FastifyReply): FastifyReply | FrameWorker[];
|
|
11
|
+
resetPerf(_req: FastifyRequest<AuthLoginRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
12
|
+
benchmark(req: FastifyRequest<AuthLoginRequest & {
|
|
13
|
+
Body?: {
|
|
14
|
+
cameras?: string[];
|
|
15
|
+
iterations?: number;
|
|
16
|
+
concurrency?: number;
|
|
17
|
+
};
|
|
18
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
19
|
+
private runBenchmark;
|
|
20
|
+
private benchmarkHosts;
|
|
21
|
+
private pluginName;
|
|
8
22
|
restartByName(req: FastifyRequest<AuthLoginRequest & FrameWorkerParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
9
23
|
startByName(req: FastifyRequest<AuthLoginRequest & FrameWorkerParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
10
24
|
stopByName(req: FastifyRequest<AuthLoginRequest & FrameWorkerParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { orderBy } from '@camera.ui/common/utils';
|
|
2
2
|
import { container } from 'tsyringe';
|
|
3
|
+
import { ConfigService } from '../../services/config/index.js';
|
|
4
|
+
import { collectSystemInfo } from '../../utils/system-info.js';
|
|
5
|
+
import { WorkerCapability } from '../../workers/types.js';
|
|
3
6
|
export class FrameWorkersController {
|
|
4
7
|
app;
|
|
5
8
|
api;
|
|
9
|
+
pluginManager;
|
|
10
|
+
workerManager;
|
|
11
|
+
benchmarkRun;
|
|
6
12
|
constructor(app) {
|
|
7
13
|
this.app = app;
|
|
8
14
|
this.api = container.resolve('api');
|
|
15
|
+
this.pluginManager = container.resolve('pluginManager');
|
|
16
|
+
this.workerManager = container.resolve('workerManager');
|
|
9
17
|
}
|
|
10
18
|
list(_req, reply) {
|
|
11
19
|
try {
|
|
@@ -26,6 +34,94 @@ export class FrameWorkersController {
|
|
|
26
34
|
});
|
|
27
35
|
}
|
|
28
36
|
}
|
|
37
|
+
async resetPerf(_req, reply) {
|
|
38
|
+
try {
|
|
39
|
+
await Promise.all(this.api.getCameras().map((cameraController) => cameraController.frameWorker.resetPerf()));
|
|
40
|
+
return reply.code(204).send();
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return reply.code(500).send({
|
|
44
|
+
statusCode: 500,
|
|
45
|
+
message: error.message,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async benchmark(req, reply) {
|
|
50
|
+
const iterations = Math.min(2000, Math.max(20, req.body?.iterations ?? 200));
|
|
51
|
+
const concurrency = Math.min(16, Math.max(1, req.body?.concurrency ?? 4));
|
|
52
|
+
try {
|
|
53
|
+
this.benchmarkRun ??= this.runBenchmark(req.body?.cameras, iterations, concurrency).finally(() => {
|
|
54
|
+
this.benchmarkRun = undefined;
|
|
55
|
+
});
|
|
56
|
+
const run = await this.benchmarkRun;
|
|
57
|
+
if (!run) {
|
|
58
|
+
return reply.code(404).send({
|
|
59
|
+
statusCode: 404,
|
|
60
|
+
message: 'No camera with an object detector',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return reply.code(200).send(run);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
return reply.code(500).send({
|
|
67
|
+
statusCode: 500,
|
|
68
|
+
message: error.message,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async runBenchmark(cameras, iterations, concurrency) {
|
|
73
|
+
const controllers = this.api.getCameras();
|
|
74
|
+
const selection = cameras?.length ? controllers.filter((controller) => cameras.includes(controller.frameWorker.name)) : controllers;
|
|
75
|
+
try {
|
|
76
|
+
await Promise.all(controllers.map((controller) => controller.frameWorker.pauseForBenchmark(true)));
|
|
77
|
+
const results = await Promise.all(selection.map(async (controller) => {
|
|
78
|
+
const worker = controller.frameWorker;
|
|
79
|
+
const result = await worker.runObjectBenchmark(iterations, concurrency);
|
|
80
|
+
if (!result)
|
|
81
|
+
return null;
|
|
82
|
+
const remote = worker.isRemoteWorker ? this.workerManager.getRemoteProcess(WorkerCapability.FrameDecoding, controller.id) : undefined;
|
|
83
|
+
return { ...result, camera: worker.name, plugin: this.pluginName(result.plugin), worker: remote?.worker };
|
|
84
|
+
}));
|
|
85
|
+
const measured = results.filter((result) => result !== null);
|
|
86
|
+
if (measured.length === 0)
|
|
87
|
+
return null;
|
|
88
|
+
const done = measured.reduce((sum, result) => sum + result.iterations, 0);
|
|
89
|
+
const handlerMs = measured.reduce((sum, result) => sum + result.handlerMs * result.iterations, 0);
|
|
90
|
+
return {
|
|
91
|
+
hosts: await this.benchmarkHosts(measured),
|
|
92
|
+
total: {
|
|
93
|
+
cameras: measured.length,
|
|
94
|
+
iterations: done,
|
|
95
|
+
failed: measured.reduce((sum, result) => sum + result.failed, 0),
|
|
96
|
+
concurrency: concurrency * measured.length,
|
|
97
|
+
totalMs: Math.max(...measured.map((result) => result.totalMs)),
|
|
98
|
+
perSecond: Math.round(measured.reduce((sum, result) => sum + result.perSecond, 0) * 10) / 10,
|
|
99
|
+
handlerMs: done > 0 ? Math.round((handlerMs / done) * 10) / 10 : 0,
|
|
100
|
+
},
|
|
101
|
+
cameras: measured,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
await Promise.all(controllers.map((controller) => controller.frameWorker.pauseForBenchmark(false)));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async benchmarkHosts(measured) {
|
|
109
|
+
const hosts = [];
|
|
110
|
+
if (measured.some((result) => !result.worker)) {
|
|
111
|
+
hosts.push({ system: await collectSystemInfo(ConfigService.RUNNING_VERSION) });
|
|
112
|
+
}
|
|
113
|
+
for (const name of new Set(measured.map((result) => result.worker).filter((worker) => Boolean(worker)))) {
|
|
114
|
+
hosts.push({ worker: name, system: this.workerManager.getWorkerByName(name)?.system });
|
|
115
|
+
}
|
|
116
|
+
return hosts;
|
|
117
|
+
}
|
|
118
|
+
pluginName(pluginId) {
|
|
119
|
+
for (const plugin of this.pluginManager.plugins.values()) {
|
|
120
|
+
if (plugin.id === pluginId)
|
|
121
|
+
return plugin.displayName ?? plugin.pluginName;
|
|
122
|
+
}
|
|
123
|
+
return pluginId;
|
|
124
|
+
}
|
|
29
125
|
async restartByName(req, reply) {
|
|
30
126
|
try {
|
|
31
127
|
const cameraControllers = this.api.getCameras();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameWorkers.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/frameWorkers.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"frameWorkers.controller.js","sourceRoot":"","sources":["../../../../../src/api/controllers/frameWorkers.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ export declare class RemoteController {
|
|
|
23
23
|
cloudflareManagedLogout(_req: FastifyRequest<AuthLoginRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
24
24
|
testRemoteMode(req: FastifyRequest<AuthLoginRequest & RemoteTestRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
25
25
|
private inferCurrentConnection;
|
|
26
|
+
private isProxied;
|
|
26
27
|
private localAddress;
|
|
27
28
|
private effectiveHost;
|
|
28
29
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { buildHttpsUrl, fetchViableNetworkAddresses, isLanClientAddress, isLoopbackAddress, isLoopbackHost } from '@camera.ui/common/network';
|
|
2
2
|
import { container } from 'tsyringe';
|
|
3
|
-
import { PROXY_SERVICE_URL } from '../../services/config/constants.js';
|
|
4
3
|
import { RemoteService } from '../services/remote.service.js';
|
|
5
4
|
import { ServerService } from '../services/server.service.js';
|
|
6
5
|
export class RemoteController {
|
|
@@ -138,19 +137,19 @@ export class RemoteController {
|
|
|
138
137
|
}
|
|
139
138
|
async getConnectionInfo(req, reply) {
|
|
140
139
|
try {
|
|
141
|
-
const remoteInfo = this.service.info();
|
|
142
140
|
const accessStatus = this.remoteAccessManager.getStatus();
|
|
143
141
|
const port = this.configService.config.port;
|
|
144
142
|
const selected = this.serverService.info().serverAddresses ?? [];
|
|
145
143
|
const internalAddresses = fetchViableNetworkAddresses()
|
|
146
144
|
.filter((addr) => selected.length === 0 || selected.includes(addr.address))
|
|
147
145
|
.map((addr) => buildHttpsUrl(addr.address, port));
|
|
148
|
-
const
|
|
146
|
+
const localUrl = this.serverService.info().localUrl?.trim();
|
|
147
|
+
if (localUrl)
|
|
148
|
+
internalAddresses.unshift(localUrl);
|
|
149
149
|
const info = {
|
|
150
150
|
internalAddresses,
|
|
151
151
|
externalUrl: accessStatus.externalUrl,
|
|
152
|
-
|
|
153
|
-
currentConnection: this.inferCurrentConnection(req, accessStatus.externalUrl, cloudAddress),
|
|
152
|
+
currentConnection: this.inferCurrentConnection(req, accessStatus.externalUrl),
|
|
154
153
|
};
|
|
155
154
|
return reply.code(200).send(info);
|
|
156
155
|
}
|
|
@@ -220,15 +219,12 @@ export class RemoteController {
|
|
|
220
219
|
return reply.code(200).send(result);
|
|
221
220
|
}
|
|
222
221
|
}
|
|
223
|
-
inferCurrentConnection(req, externalUrl
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
const hasReverseProxy = !!req.headers['x-forwarded-host'] || !!req.headers['x-forwarded-for'] || !!req.headers['cf-connecting-ip'] || !!req.headers['cf-ray'];
|
|
228
|
-
if (!hasReverseProxy && isLoopbackAddress(req.ip ?? '')) {
|
|
222
|
+
inferCurrentConnection(req, externalUrl) {
|
|
223
|
+
const proxied = this.isProxied(req);
|
|
224
|
+
if (!proxied && isLoopbackAddress(req.ip ?? '')) {
|
|
229
225
|
return { type: 'local', address: this.localAddress(req) };
|
|
230
226
|
}
|
|
231
|
-
if (!
|
|
227
|
+
if (!proxied && isLanClientAddress(req.ip, req.socket?.localAddress)) {
|
|
232
228
|
return { type: 'lan', address: this.localAddress(req) };
|
|
233
229
|
}
|
|
234
230
|
const local = this.localAddress(req);
|
|
@@ -241,6 +237,9 @@ export class RemoteController {
|
|
|
241
237
|
}
|
|
242
238
|
return { type: 'external', address: useFallback ? (externalUrl ?? local) : local };
|
|
243
239
|
}
|
|
240
|
+
isProxied(req) {
|
|
241
|
+
return !!req.headers['x-forwarded-host'] || !!req.headers['x-forwarded-for'] || !!req.headers['cf-connecting-ip'] || !!req.headers['cf-ray'];
|
|
242
|
+
}
|
|
244
243
|
localAddress(req) {
|
|
245
244
|
const proto = req.headers['x-forwarded-proto'] ?? req.protocol;
|
|
246
245
|
return `${proto}://${this.effectiveHost(req)}`;
|
|
@@ -249,6 +248,11 @@ export class RemoteController {
|
|
|
249
248
|
const xfh = req.headers['x-forwarded-host'];
|
|
250
249
|
if (typeof xfh === 'string' && xfh)
|
|
251
250
|
return xfh;
|
|
251
|
+
if (this.isProxied(req)) {
|
|
252
|
+
const host = req.headers.host;
|
|
253
|
+
if (host && !isLoopbackHost(host))
|
|
254
|
+
return host;
|
|
255
|
+
}
|
|
252
256
|
const sock = req.socket;
|
|
253
257
|
if (sock?.localAddress && sock.localPort) {
|
|
254
258
|
const ip = sock.localAddress.startsWith('::ffff:') ? sock.localAddress.slice(7) : sock.localAddress;
|