@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.
Files changed (480) hide show
  1. package/dist/interface/assets/{404-vRjJVgl4.js → 404-BLNSh-sA.js} +1 -1
  2. package/dist/interface/assets/{About-CO9cx5Gp.js → About-ZakRzon7.js} +1 -1
  3. package/dist/interface/assets/Automation-DoVhkuVY.js +3 -0
  4. package/dist/interface/assets/AutomationImport-DVxK1R1y.js +2 -0
  5. package/dist/interface/assets/{AutomationStore-NyXuw3tI.js → AutomationStore-DaNO9_9S.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-Dz9Y8j8g.js → AutomationStoreDetail-CTDCEaIz.js} +2 -2
  7. package/dist/interface/assets/Automations-mdnUitWx.js +2 -0
  8. package/dist/interface/assets/Camera-B3cv5IVC.js +2 -0
  9. package/dist/interface/assets/Camera-LSq1bWmA.css +1 -0
  10. package/dist/interface/assets/{CameraConsole-S9Il0g0K.js → CameraConsole-C32X5I91.js} +2 -2
  11. package/dist/interface/assets/{Cameras-lDMBkoUW.js → Cameras-Drv48-Eb.js} +23 -23
  12. package/dist/interface/assets/Camview-Bvy39jSt.js +1 -0
  13. package/dist/interface/assets/{Camview-CS7PIBMz.css → Camview-Lp3QU0de.css} +1 -1
  14. package/dist/interface/assets/{Config-B0cy1RIU.js → Config-B-LDdaS6.js} +1 -1
  15. package/dist/interface/assets/ConfigActionCameraControl-As2qXvnd.js +1 -0
  16. package/dist/interface/assets/{ConfigActionDelay-DrzMP_7q.js → ConfigActionDelay-Cj3yWfEV.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionHttp-BUANm5zh.js → ConfigActionHttp-PlS5vI0v.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionImageInput-CKvnzs_4.js → ConfigActionImageInput-BHflOA-T.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionMqtt-Cz-fMzXH.js → ConfigActionMqtt-DByOwVPe.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotification-exxG4m-k.js → ConfigActionNotification-D_8_lp96.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotificationControl-BMFbm9lJ.js → ConfigActionNotificationControl-ClFMom6m.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionOutput-js-UUBci.js → ConfigActionOutput-YTAw-Are.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionPlugin-B5hrC_B6.js → ConfigActionPlugin-lF2IH2Bo.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSensor-BESCtedA.js → ConfigActionSensor-DQZW_Jxr.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSnapshot-Uxz9dCqh.js → ConfigActionSnapshot-CHxIQ5J0.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionVariable-CsiC6bgF.js → ConfigActionVariable-0VLGuhwP.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionIfElse-CiScJB42.js → ConfigConditionIfElse-D-Ibn8QL.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSensorState-CbDfsuOl.js → ConfigConditionSensorState-BKSGYRdv.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSwitch-B7E5DAoC.js → ConfigConditionSwitch-CzkEyWb1.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionTime-BmeGYmwH.js → ConfigConditionTime-BFKsDI_t.js} +1 -1
  31. package/dist/interface/assets/{ConfigSensorValueInput-CNTToTaw.js → ConfigSensorValueInput-yTiHhlXG.js} +1 -1
  32. package/dist/interface/assets/ConfigTriggerDetection-DFTgRaE0.js +1 -0
  33. package/dist/interface/assets/ConfigTriggerGeofence-B2Cqi5Id.js +1 -0
  34. package/dist/interface/assets/{ConfigTriggerManual-Z1_1wUUM.js → ConfigTriggerManual-BDK6OYxg.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerMqtt-BBvD0ow9.js → ConfigTriggerMqtt-BZO14RrW.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSchedule-B0rMjsZL.js → ConfigTriggerSchedule-sMkzMLgn.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSensor-B1p15KGD.js → ConfigTriggerSensor-D6W_exDW.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSystem-Du-AkCKy.js → ConfigTriggerSystem-D4cx1GqI.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerWebhook-Debqt-nw.js → ConfigTriggerWebhook-DxZziGkL.js} +1 -1
  40. package/dist/interface/assets/Console-DjA3ZPU_.js +1 -0
  41. package/dist/interface/assets/CuiAutomationRunsDialog-B4ABK72A.js +1 -0
  42. package/dist/interface/assets/CuiBottomSheet-D1zDWsoK.js +1 -0
  43. package/dist/interface/assets/{CuiBottomSheet-DECWGdrp.js → CuiBottomSheet-N9MHq4yZ.js} +1 -1
  44. package/dist/interface/assets/CuiCameraPipCard-CnWs2fAC.js +1 -0
  45. package/dist/interface/assets/CuiCameraRecordings-CahW-f8_.js +1 -0
  46. package/dist/interface/assets/{CuiCameraShares-D32cM63m.js → CuiCameraShares-B2RdPWWh.js} +1 -1
  47. package/dist/interface/assets/CuiCameraTable-4ikGv8QA.js +1 -0
  48. package/dist/interface/assets/{CuiCameraTable-Bk9N-Oc6.js → CuiCameraTable-BKBvhRDc.js} +2 -2
  49. package/dist/interface/assets/CuiChartTable-CqKo74Tf.css +1 -0
  50. package/dist/interface/assets/CuiChartTable-Lvz9Zq0k.js +1 -0
  51. package/dist/interface/assets/CuiConsole-DUswVhFC.js +5 -0
  52. package/dist/interface/assets/CuiDataTable-CIP95jVF.js +1 -0
  53. package/dist/interface/assets/CuiLightControl-CvfWo8mY.js +1 -0
  54. package/dist/interface/assets/{CuiList-w69dERIq.js → CuiList-CajC6jpE.js} +1 -1
  55. package/dist/interface/assets/CuiPluginCard-CQS8C87-.js +2 -0
  56. package/dist/interface/assets/CuiPluginCategoryChip-DCNG8zl1.js +1 -0
  57. package/dist/interface/assets/{CuiPluginOAuthButton-CNxj7cuf.js → CuiPluginOAuthButton-CvZrOWr8.js} +2 -2
  58. package/dist/interface/assets/{CuiPluginTrustBadge-DYsEz6WI.js → CuiPluginTrustBadge-Bc1dQgX8.js} +1 -1
  59. package/dist/interface/assets/CuiQRCode-CjLcB644.js +1 -0
  60. package/dist/interface/assets/CuiRecordingsGrid-DrpErbux.js +1 -0
  61. package/dist/interface/assets/{CuiRecordingsGrid-Q4C3aeLo.css → CuiRecordingsGrid-EAumRo5E.css} +1 -1
  62. package/dist/interface/assets/CuiSchema-BYYeh269.css +1 -0
  63. package/dist/interface/assets/CuiSchema-DG8peseE.js +1 -0
  64. package/dist/interface/assets/{CuiTopNavbarItem-7yu9c68R.js → CuiTopNavbarItem-Dq3Esl1S.js} +1 -1
  65. package/dist/interface/assets/Faces-D0yRgOMj.js +1 -0
  66. package/dist/interface/assets/FirstSteps-BW8AVmd4.js +1 -0
  67. package/dist/interface/assets/{Instances-Bmb-yWM-.js → Instances-BgXJvs0_.js} +1 -1
  68. package/dist/interface/assets/{Logs-DxHqkMpx.js → Logs-DH3rWnlV.js} +2 -2
  69. package/dist/interface/assets/Menu-D9FVgjwT.js +1 -0
  70. package/dist/interface/assets/Metrics-7bYWyGWU.js +9 -0
  71. package/dist/interface/assets/Metrics-DX59XXDc.css +1 -0
  72. package/dist/interface/assets/{OAuthDeviceFlow-CLi6l8jS.js → OAuthDeviceFlow-BS0FQbZh.js} +1 -1
  73. package/dist/interface/assets/Plugin-ZwkTp6C4.js +1 -0
  74. package/dist/interface/assets/{PluginConsole-xOY_kwz_.js → PluginConsole-Dt39TWaO.js} +2 -2
  75. package/dist/interface/assets/PluginDetail-D7ZtOG9Y.js +2 -0
  76. package/dist/interface/assets/{PluginSchema-DG3ou73v.js → PluginSchema-8T7EBq-Z.js} +1 -1
  77. package/dist/interface/assets/PluginSearch-DN3o0wfs.js +1 -0
  78. package/dist/interface/assets/PluginSearch-eRDCvu_8.js +2 -0
  79. package/dist/interface/assets/{PluginUpdateProgress-Bx0MXwAk.js → PluginUpdateProgress-CxjpzkGa.js} +1 -1
  80. package/dist/interface/assets/Plugins-DVsMpyvr.js +1 -0
  81. package/dist/interface/assets/Recordings-BKxSEiQo.js +1 -0
  82. package/dist/interface/assets/Recordings-cR4_6aGN.css +1 -0
  83. package/dist/interface/assets/SensorEdit-BmaMQKEa.js +1 -0
  84. package/dist/interface/assets/{SensorHistory-CTIUwIWN.js → SensorHistory-CmOAk-tD.js} +1 -1
  85. package/dist/interface/assets/Sensors-x08al7Je.js +2 -0
  86. package/dist/interface/assets/Settings-Cp1lzG1i.js +1 -0
  87. package/dist/interface/assets/SettingsAccount-BwCNddkW.js +1 -0
  88. package/dist/interface/assets/SettingsAccount-DC9AxqHe.js +1 -0
  89. package/dist/interface/assets/SettingsAppearance-CMzzDZCX.js +1 -0
  90. package/dist/interface/assets/{SettingsAppearance-CoTdsIwM.js → SettingsAppearance-Dr8hJloI.js} +1 -1
  91. package/dist/interface/assets/SettingsBackup-Dc8pDM3Y.js +1 -0
  92. package/dist/interface/assets/{SettingsList-W5FvbkXm.js → SettingsList-3peF3gFZ.js} +1 -1
  93. package/dist/interface/assets/SettingsMqtt-k-cHaOoA.js +1 -0
  94. package/dist/interface/assets/SettingsNotifications-BJHYlSKX.js +1 -0
  95. package/dist/interface/assets/SettingsPermissions-CymqvfR9.js +1 -0
  96. package/dist/interface/assets/{SettingsRecordings-COUi9BQg.js → SettingsRecordings-gWTD_djR.js} +1 -1
  97. package/dist/interface/assets/SettingsRemote-BWAhI1Gw.js +2 -0
  98. package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +1 -0
  99. package/dist/interface/assets/SettingsSystem-BGBUQvjg.js +2 -0
  100. package/dist/interface/assets/SettingsUsers-B_Ri5OrM.js +1 -0
  101. package/dist/interface/assets/Terminal-eYxvgFHE.js +4 -0
  102. package/dist/interface/assets/Updates-CweZekTf.js +2 -0
  103. package/dist/interface/assets/{VariableInput-DhAhhfsm.js → VariableInput-CM6T3pUW.js} +1 -1
  104. package/dist/interface/assets/{VariableSuggestions-q0Jd1DVI.js → VariableSuggestions-BGxZxS6U.js} +1 -1
  105. package/dist/interface/assets/{VersionsHandler-XEn3uFy7.js → VersionsHandler-BWIiBPPa.js} +2 -2
  106. package/dist/interface/assets/{VirtualSensorCreate-_E5E0U7E.js → VirtualSensorCreate-CFQC2-9D.js} +1 -1
  107. package/dist/interface/assets/Workers-B-sp43t3.js +2 -0
  108. package/dist/interface/assets/{Workers-7hKMBU4w.css → Workers-DH59zE1C.css} +1 -1
  109. package/dist/interface/assets/{api-C7Yv5Scr.js → api-CG0j1twy.js} +1 -1
  110. package/dist/interface/assets/api-CVOj5SYs.css +2 -0
  111. package/dist/interface/assets/api-C_bOaXk2.js +2 -0
  112. package/dist/interface/assets/{auth-BixzEnBM.js → auth-BPSOBTDX.js} +1 -1
  113. package/dist/interface/assets/{automations-K8XPcP3U.js → automations-BrtwUIUz.js} +1 -1
  114. package/dist/interface/assets/brain-7IVdhMyV.js +1 -0
  115. package/dist/interface/assets/cameras.schema-CoIOnGzE.js +1 -0
  116. package/dist/interface/assets/cloudHandoff-BiFzJEYx.js +1 -0
  117. package/dist/interface/assets/{config-CURuT8_k.js → config-BjldP5A6.js} +1 -1
  118. package/dist/interface/assets/content-copy-CLkJTA4w.js +1 -0
  119. package/dist/interface/assets/eventLabels-BsPoPWS9.js +1 -0
  120. package/dist/interface/assets/{flowSchema-szT9B0sA.js → flowSchema-B_Otn6RU.js} +1 -1
  121. package/dist/interface/assets/{intercomService-BjB4QQiX.js → intercomService-BpTOoSQi.js} +1 -1
  122. package/dist/interface/assets/lan-BP0NuDr7.js +1 -0
  123. package/dist/interface/assets/main-BG-VCb--.js +3 -0
  124. package/dist/interface/assets/main-CFQGq2Yn.css +1 -0
  125. package/dist/interface/assets/{mqtt-uItF3Vd7.js → mqtt-DSPPQwxJ.js} +1 -1
  126. package/dist/interface/assets/{notifications-CuZPzI4-.js → notifications-DEEM2oP2.js} +1 -1
  127. package/dist/interface/assets/{plugins-QEqfAk0G.js → plugins-DBBFdZKH.js} +1 -1
  128. package/dist/interface/assets/refresh-Ds2EayhZ.js +1 -0
  129. package/dist/interface/assets/sensorIcons-CP5EQZ60.js +1 -0
  130. package/dist/interface/assets/{sensors-BxvL01cB.js → sensors-CKTPsYYH.js} +1 -1
  131. package/dist/interface/assets/{server-CDm6FwHH.js → server-B_MuqJ5z.js} +1 -1
  132. package/dist/interface/assets/{theme-CRw47tnu.js → theme-FztlStyg.js} +1 -1
  133. package/dist/interface/assets/types-BHAzjgi3.js +1 -0
  134. package/dist/interface/assets/types-G1_espGV.js +1 -0
  135. package/dist/interface/assets/{types-DtdpTPfZ.js → types-bCt9IrFD.js} +1 -1
  136. package/dist/interface/assets/updates-CVapvGAI.js +1 -0
  137. package/dist/interface/assets/{useAppVersion-BxTTVLKg.js → useAppVersion-SrF7tGCe.js} +1 -1
  138. package/dist/interface/assets/useBackupRestore-Tc23Huvm.js +1 -0
  139. package/dist/interface/assets/{useCameraOptions-DMC2KjMS.js → useCameraOptions-zsIqf0i9.js} +1 -1
  140. package/dist/interface/assets/{useLogsSocket-CmyalQi8.js → useLogsSocket-DSltWBh4.js} +1 -1
  141. package/dist/interface/assets/{useNavLayout-BacPxpZv.js → useNavLayout-BhlxDHV7.js} +1 -1
  142. package/dist/interface/assets/{usePermissions-C2wQBWmH.js → usePermissions-4HqGU99G.js} +1 -1
  143. package/dist/interface/assets/{usePluginUpdates-CyjxFTTi.js → usePluginUpdates-CKH0Hb87.js} +1 -1
  144. package/dist/interface/assets/{usePushRegistration-BPSfvI_w.js → usePushRegistration-DAE3goyn.js} +1 -1
  145. package/dist/interface/assets/{useServerRestart-x8p2rFqn.js → useServerRestart-DoLrF47t.js} +1 -1
  146. package/dist/interface/assets/{useStreamStatus-PMpl519O.js → useStreamStatus-B3QIWjDE.js} +1 -1
  147. package/dist/interface/assets/useTabSwipe-BYFLQ9EY.js +1 -0
  148. package/dist/interface/assets/{useUpdateChannel-ChscS5KW.js → useUpdateChannel-DWEw-ZyB.js} +1 -1
  149. package/dist/interface/assets/useUpdatesSocket-CoxkS7Hr.js +1 -0
  150. package/dist/interface/assets/{useUserOptions-YiEj2ox6.js → useUserOptions-DCDeuz2p.js} +1 -1
  151. package/dist/interface/assets/vendor-cameraui-4iwjOYwz.js +2326 -0
  152. package/dist/interface/assets/vendor-core-gJradu21.js +1 -0
  153. package/dist/interface/assets/{vendor-primevue-BDu2BpXv.js → vendor-primevue-DMAuiM9b.js} +72 -72
  154. package/dist/interface/index.html +32 -27
  155. package/dist/interface/sw.js +1 -1
  156. package/dist/server/package.json +13 -12
  157. package/dist/server/requirements.txt +2 -2
  158. package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +8 -0
  159. package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +20 -0
  160. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +8 -2
  161. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +10 -2
  162. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +9 -0
  163. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +24 -10
  164. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/enums.py +6 -7
  165. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/notification.py +28 -0
  166. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +24 -0
  167. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +4 -0
  168. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +18 -0
  169. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/detection.py +3 -3
  170. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +6 -1
  171. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/spec.py +27 -3
  172. package/dist/server/src/api/controllers/auth.controller.js +5 -0
  173. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  174. package/dist/server/src/api/controllers/frameWorkers.controller.d.ts +14 -0
  175. package/dist/server/src/api/controllers/frameWorkers.controller.js +96 -0
  176. package/dist/server/src/api/controllers/frameWorkers.controller.js.map +1 -1
  177. package/dist/server/src/api/controllers/remote.controller.d.ts +1 -0
  178. package/dist/server/src/api/controllers/remote.controller.js +16 -12
  179. package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
  180. package/dist/server/src/api/controllers/server.controller.js +6 -2
  181. package/dist/server/src/api/controllers/server.controller.js.map +1 -1
  182. package/dist/server/src/api/controllers/updates.controller.d.ts +8 -0
  183. package/dist/server/src/api/controllers/updates.controller.js +40 -0
  184. package/dist/server/src/api/controllers/updates.controller.js.map +1 -0
  185. package/dist/server/src/api/controllers/workers.controller.js +8 -2
  186. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  187. package/dist/server/src/api/database/constants.d.ts +0 -1
  188. package/dist/server/src/api/database/constants.js +0 -1
  189. package/dist/server/src/api/database/constants.js.map +1 -1
  190. package/dist/server/src/api/database/index.d.ts +2 -3
  191. package/dist/server/src/api/database/index.js +3 -6
  192. package/dist/server/src/api/database/index.js.map +1 -1
  193. package/dist/server/src/api/database/migrations/v2-1-10.js +33 -0
  194. package/dist/server/src/api/database/migrations/v2-1-10.js.map +1 -0
  195. package/dist/server/src/api/database/migrations/v2-1-11.js +31 -0
  196. package/dist/server/src/api/database/migrations/v2-1-11.js.map +1 -0
  197. package/dist/server/src/api/database/migrations/v2-1-12.js +25 -0
  198. package/dist/server/src/api/database/migrations/v2-1-12.js.map +1 -0
  199. package/dist/server/src/api/database/migrations/v2-1-13.d.ts +3 -0
  200. package/dist/server/src/api/database/migrations/v2-1-13.js +51 -0
  201. package/dist/server/src/api/database/migrations/v2-1-13.js.map +1 -0
  202. package/dist/server/src/api/database/migrations/v2-1-14.d.ts +3 -0
  203. package/dist/server/src/api/database/migrations/v2-1-14.js +87 -0
  204. package/dist/server/src/api/database/migrations/v2-1-14.js.map +1 -0
  205. package/dist/server/src/api/database/migrations/v2-1-6.js.map +1 -1
  206. package/dist/server/src/api/database/migrations/v2-1-9.d.ts +3 -0
  207. package/dist/server/src/api/database/migrations/v2-1-9.js +38 -0
  208. package/dist/server/src/api/database/migrations/v2-1-9.js.map +1 -0
  209. package/dist/server/src/api/database/record-schemas.d.ts +18 -13
  210. package/dist/server/src/api/database/record-schemas.js +3 -3
  211. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  212. package/dist/server/src/api/database/types.d.ts +3 -11
  213. package/dist/server/src/api/routes/frameWorkers.routes.js +22 -1
  214. package/dist/server/src/api/routes/frameWorkers.routes.js.map +1 -1
  215. package/dist/server/src/api/routes/index.js +3 -1
  216. package/dist/server/src/api/routes/index.js.map +1 -1
  217. package/dist/server/src/api/routes/updates.routes.d.ts +2 -0
  218. package/dist/server/src/api/routes/updates.routes.js +47 -0
  219. package/dist/server/src/api/routes/updates.routes.js.map +1 -0
  220. package/dist/server/src/api/routes/workers.routes.js +3 -2
  221. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  222. package/dist/server/src/api/schemas/cameras.schema.d.ts +228 -79
  223. package/dist/server/src/api/schemas/cameras.schema.js +58 -9
  224. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  225. package/dist/server/src/api/schemas/frameWorkers.schema.d.ts +6 -0
  226. package/dist/server/src/api/schemas/frameWorkers.schema.js +7 -0
  227. package/dist/server/src/api/schemas/frameWorkers.schema.js.map +1 -1
  228. package/dist/server/src/api/schemas/server.schema.d.ts +1 -0
  229. package/dist/server/src/api/schemas/server.schema.js +4 -0
  230. package/dist/server/src/api/schemas/server.schema.js.map +1 -1
  231. package/dist/server/src/api/schemas/users.schema.d.ts +119 -84
  232. package/dist/server/src/api/schemas/users.schema.js +3 -0
  233. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  234. package/dist/server/src/api/schemas/workers.schema.d.ts +3 -0
  235. package/dist/server/src/api/schemas/workers.schema.js +5 -0
  236. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  237. package/dist/server/src/api/services/plugins.service.d.ts +4 -1
  238. package/dist/server/src/api/services/plugins.service.js +23 -4
  239. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  240. package/dist/server/src/api/services/server.service.d.ts +3 -1
  241. package/dist/server/src/api/services/server.service.js +6 -1
  242. package/dist/server/src/api/services/server.service.js.map +1 -1
  243. package/dist/server/src/api/services/updates.service.d.ts +108 -0
  244. package/dist/server/src/api/services/updates.service.js +476 -0
  245. package/dist/server/src/api/services/updates.service.js.map +1 -0
  246. package/dist/server/src/api/types/index.d.ts +6 -0
  247. package/dist/server/src/api/types/index.js.map +1 -1
  248. package/dist/server/src/api/websocket/index.js +2 -0
  249. package/dist/server/src/api/websocket/index.js.map +1 -1
  250. package/dist/server/src/api/websocket/nsp/metrics.d.ts +3 -1
  251. package/dist/server/src/api/websocket/nsp/metrics.js +90 -37
  252. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  253. package/dist/server/src/api/websocket/nsp/server.js +45 -9
  254. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  255. package/dist/server/src/api/websocket/types.d.ts +23 -17
  256. package/dist/server/src/camera/controller.js +1 -0
  257. package/dist/server/src/camera/controller.js.map +1 -1
  258. package/dist/server/src/camera/decoder/audio-loop.d.ts +0 -1
  259. package/dist/server/src/camera/decoder/audio-loop.js +38 -68
  260. package/dist/server/src/camera/decoder/audio-loop.js.map +1 -1
  261. package/dist/server/src/camera/decoder/child.d.ts +4 -1
  262. package/dist/server/src/camera/decoder/child.js +27 -0
  263. package/dist/server/src/camera/decoder/child.js.map +1 -1
  264. package/dist/server/src/camera/decoder/debug/detection-record.d.ts +6 -0
  265. package/dist/server/src/camera/decoder/debug/detection-record.js +21 -0
  266. package/dist/server/src/camera/decoder/debug/detection-record.js.map +1 -1
  267. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +26 -3
  268. package/dist/server/src/camera/decoder/detection-coordinator.js +525 -207
  269. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  270. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +4 -2
  271. package/dist/server/src/camera/decoder/detection-pipeline.js +17 -10
  272. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  273. package/dist/server/src/camera/decoder/detection-window.d.ts +17 -0
  274. package/dist/server/src/camera/decoder/detection-window.js +188 -0
  275. package/dist/server/src/camera/decoder/detection-window.js.map +1 -0
  276. package/dist/server/src/camera/decoder/event-manager.d.ts +1 -0
  277. package/dist/server/src/camera/decoder/event-manager.js +12 -0
  278. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  279. package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +3 -3
  280. package/dist/server/src/camera/decoder/event-thumbnailer.js +2 -2
  281. package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
  282. package/dist/server/src/camera/decoder/frame-scaler.d.ts +14 -1
  283. package/dist/server/src/camera/decoder/frame-scaler.js +63 -20
  284. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  285. package/dist/server/src/camera/decoder/motion-localizer.d.ts +16 -0
  286. package/dist/server/src/camera/decoder/motion-localizer.js +49 -0
  287. package/dist/server/src/camera/decoder/motion-localizer.js.map +1 -0
  288. package/dist/server/src/camera/decoder/perf-tracker.d.ts +29 -8
  289. package/dist/server/src/camera/decoder/perf-tracker.js +76 -50
  290. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  291. package/dist/server/src/camera/decoder/plugin-registry.d.ts +1 -0
  292. package/dist/server/src/camera/decoder/plugin-registry.js +8 -6
  293. package/dist/server/src/camera/decoder/plugin-registry.js.map +1 -1
  294. package/dist/server/src/camera/decoder/secondary-stage.d.ts +4 -1
  295. package/dist/server/src/camera/decoder/secondary-stage.js +26 -3
  296. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  297. package/dist/server/src/camera/decoder/sources/analysis-source.d.ts +15 -1
  298. package/dist/server/src/camera/decoder/sources/audio-source.d.ts +7 -3
  299. package/dist/server/src/camera/decoder/sources/audio-source.js +89 -78
  300. package/dist/server/src/camera/decoder/sources/audio-source.js.map +1 -1
  301. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +27 -9
  302. package/dist/server/src/camera/decoder/sources/buffered-source.js +151 -65
  303. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  304. package/dist/server/src/camera/decoder/sources/frame-handle.d.ts +13 -0
  305. package/dist/server/src/camera/decoder/sources/frame-handle.js +106 -0
  306. package/dist/server/src/camera/decoder/sources/frame-handle.js.map +1 -0
  307. package/dist/server/src/camera/decoder/sources/frame-source.d.ts +25 -26
  308. package/dist/server/src/camera/decoder/sources/frame-source.js +213 -268
  309. package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -1
  310. package/dist/server/src/camera/decoder/sources/reconnect-loop.d.ts +17 -0
  311. package/dist/server/src/camera/decoder/sources/reconnect-loop.js +59 -0
  312. package/dist/server/src/camera/decoder/sources/reconnect-loop.js.map +1 -0
  313. package/dist/server/src/camera/decoder/sources/snapshot-fetcher.d.ts +15 -0
  314. package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js +58 -0
  315. package/dist/server/src/camera/decoder/sources/snapshot-fetcher.js.map +1 -0
  316. package/dist/server/src/camera/decoder/sources/video-input.d.ts +18 -0
  317. package/dist/server/src/camera/decoder/sources/video-input.js +55 -0
  318. package/dist/server/src/camera/decoder/sources/video-input.js.map +1 -0
  319. package/dist/server/src/camera/decoder/types.d.ts +74 -18
  320. package/dist/server/src/camera/decoder/types.js +2 -0
  321. package/dist/server/src/camera/decoder/types.js.map +1 -1
  322. package/dist/server/src/camera/decoder/worker.d.ts +5 -1
  323. package/dist/server/src/camera/decoder/worker.js +35 -5
  324. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  325. package/dist/server/src/camera/index.d.ts +2 -1
  326. package/dist/server/src/camera/index.js +3 -0
  327. package/dist/server/src/camera/index.js.map +1 -1
  328. package/dist/server/src/camera/streaming/fmp4-session.js +1 -1
  329. package/dist/server/src/camera/streaming/fmp4-session.js.map +1 -1
  330. package/dist/server/src/camera/streaming/rtp-session.js +1 -1
  331. package/dist/server/src/camera/streaming/rtp-session.js.map +1 -1
  332. package/dist/server/src/main.js +22 -2
  333. package/dist/server/src/main.js.map +1 -1
  334. package/dist/server/src/manager/types.d.ts +1 -0
  335. package/dist/server/src/manager/types.js +2 -0
  336. package/dist/server/src/manager/types.js.map +1 -1
  337. package/dist/server/src/mqtt/bridge.d.ts +0 -1
  338. package/dist/server/src/mqtt/bridge.js +0 -33
  339. package/dist/server/src/mqtt/bridge.js.map +1 -1
  340. package/dist/server/src/mqtt/ha-discovery.js +0 -1
  341. package/dist/server/src/mqtt/ha-discovery.js.map +1 -1
  342. package/dist/server/src/plugins/index.js +0 -2
  343. package/dist/server/src/plugins/index.js.map +1 -1
  344. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +9 -0
  345. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  346. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +8 -0
  347. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
  348. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +14 -0
  349. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +1 -0
  350. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +13 -0
  351. package/dist/server/src/remote/services/cloudflare-managed.d.ts +2 -0
  352. package/dist/server/src/remote/services/cloudflare-managed.js +9 -2
  353. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  354. package/dist/server/src/remote/services/cloudflare.d.ts +3 -0
  355. package/dist/server/src/remote/services/cloudflare.js +11 -0
  356. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  357. package/dist/server/src/remote/services/index.d.ts +2 -0
  358. package/dist/server/src/remote/services/index.js +60 -8
  359. package/dist/server/src/remote/services/index.js.map +1 -1
  360. package/dist/server/src/remote/services/tunnelConnections.d.ts +9 -0
  361. package/dist/server/src/remote/services/tunnelConnections.js +45 -0
  362. package/dist/server/src/remote/services/tunnelConnections.js.map +1 -0
  363. package/dist/server/src/remote/services/urlReadiness.d.ts +2 -0
  364. package/dist/server/src/remote/services/urlReadiness.js +7 -4
  365. package/dist/server/src/remote/services/urlReadiness.js.map +1 -1
  366. package/dist/server/src/remote/types.d.ts +1 -2
  367. package/dist/server/src/rpc/interfaces/frameworker.d.ts +4 -1
  368. package/dist/server/src/rpc/interfaces/sensor.d.ts +1 -0
  369. package/dist/server/src/rpc/leafConnection.d.ts +12 -0
  370. package/dist/server/src/rpc/leafConnection.js +60 -0
  371. package/dist/server/src/rpc/leafConnection.js.map +1 -0
  372. package/dist/server/src/rpc/server.d.ts +2 -0
  373. package/dist/server/src/rpc/server.js +7 -1
  374. package/dist/server/src/rpc/server.js.map +1 -1
  375. package/dist/server/src/sensors/registry.d.ts +2 -0
  376. package/dist/server/src/sensors/registry.js +16 -0
  377. package/dist/server/src/sensors/registry.js.map +1 -1
  378. package/dist/server/src/services/config/index.js +2 -0
  379. package/dist/server/src/services/config/index.js.map +1 -1
  380. package/dist/server/src/types.d.ts +10 -1
  381. package/dist/server/src/utils/ipc.d.ts +9 -0
  382. package/dist/server/src/utils/ipc.js +31 -5
  383. package/dist/server/src/utils/ipc.js.map +1 -1
  384. package/dist/server/src/utils/plugin-registry/index.js +1 -1
  385. package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
  386. package/dist/server/src/utils/system-info.d.ts +9 -0
  387. package/dist/server/src/utils/system-info.js +48 -0
  388. package/dist/server/src/utils/system-info.js.map +1 -0
  389. package/dist/server/src/workers/agent.d.ts +3 -0
  390. package/dist/server/src/workers/agent.js +36 -8
  391. package/dist/server/src/workers/agent.js.map +1 -1
  392. package/dist/server/src/workers/capabilities/frame-decoding.d.ts +2 -2
  393. package/dist/server/src/workers/capabilities/frame-decoding.js +5 -5
  394. package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
  395. package/dist/server/src/workers/capabilities/handler.d.ts +2 -2
  396. package/dist/server/src/workers/capabilities/plugin-host.d.ts +2 -2
  397. package/dist/server/src/workers/capabilities/plugin-host.js +6 -6
  398. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -1
  399. package/dist/server/src/workers/manager.d.ts +9 -1
  400. package/dist/server/src/workers/manager.js +24 -0
  401. package/dist/server/src/workers/manager.js.map +1 -1
  402. package/dist/server/src/workers/types.d.ts +14 -0
  403. package/dist/server/src/workers/types.js.map +1 -1
  404. package/package.json +13 -12
  405. package/dist/interface/assets/Automation-DDNhcjDg.js +0 -3
  406. package/dist/interface/assets/AutomationImport-DAeFd-SZ.js +0 -2
  407. package/dist/interface/assets/Automations-BeGe7iQE.js +0 -2
  408. package/dist/interface/assets/Camera-C0sNg85L.js +0 -2
  409. package/dist/interface/assets/Camera-C5gF7yVN.css +0 -1
  410. package/dist/interface/assets/Camview-DzMmXQvW.js +0 -1
  411. package/dist/interface/assets/ConfigActionCameraControl-BMlRbdRM.js +0 -1
  412. package/dist/interface/assets/ConfigTriggerDetection-ijTkd_SS.js +0 -1
  413. package/dist/interface/assets/ConfigTriggerGeofence-Q7LQpVoM.js +0 -1
  414. package/dist/interface/assets/Console-Gu1eu82G.js +0 -1
  415. package/dist/interface/assets/CuiAutomationRunsDialog-CxcWpqrI.js +0 -1
  416. package/dist/interface/assets/CuiBottomSheet-BkmkKf1u.js +0 -1
  417. package/dist/interface/assets/CuiCameraPipCard-CuZZZ7Cv.js +0 -1
  418. package/dist/interface/assets/CuiCameraRecordings-BxEA_Vhd.js +0 -1
  419. package/dist/interface/assets/CuiCameraTable-67Itb7my.js +0 -1
  420. package/dist/interface/assets/CuiConsole-De9JpSLz.js +0 -5
  421. package/dist/interface/assets/CuiDataTable-P8bWN0ZK.js +0 -1
  422. package/dist/interface/assets/CuiLightControl-D5Z1AqWH.js +0 -1
  423. package/dist/interface/assets/CuiPluginCard-D3x9FPb6.js +0 -2
  424. package/dist/interface/assets/CuiPluginCategoryChip-CQ2FJafE.js +0 -1
  425. package/dist/interface/assets/CuiQRCode-CZnspFFw.js +0 -1
  426. package/dist/interface/assets/CuiRecordingsGrid-wEaU6-3c.js +0 -1
  427. package/dist/interface/assets/CuiSchema--yMBD996.css +0 -1
  428. package/dist/interface/assets/CuiSchema-DLV1lIiB.js +0 -1
  429. package/dist/interface/assets/Faces-BlPQek1-.js +0 -1
  430. package/dist/interface/assets/FirstSteps-C-DKv_P2.js +0 -1
  431. package/dist/interface/assets/Menu-DceReBlq.js +0 -1
  432. package/dist/interface/assets/Metrics-BstlZavQ.css +0 -1
  433. package/dist/interface/assets/Metrics-Cw_Z_e0C.js +0 -1
  434. package/dist/interface/assets/Plugin-BBVxbQeT.js +0 -1
  435. package/dist/interface/assets/PluginDetail-D2RncxpL.js +0 -2
  436. package/dist/interface/assets/PluginSearch-CBhloRm6.js +0 -1
  437. package/dist/interface/assets/PluginSearch-RGhSeM1T.js +0 -2
  438. package/dist/interface/assets/Plugins-COHwVV0A.js +0 -1
  439. package/dist/interface/assets/Recordings-H5qOm_rD.js +0 -1
  440. package/dist/interface/assets/Recordings-zdTzwv7C.css +0 -1
  441. package/dist/interface/assets/SensorEdit-C-H_3ap8.js +0 -1
  442. package/dist/interface/assets/Sensors-lPcOdHJN.js +0 -2
  443. package/dist/interface/assets/Settings-BUoXoFiH.js +0 -1
  444. package/dist/interface/assets/SettingsAccount-CudWgknL.js +0 -1
  445. package/dist/interface/assets/SettingsAccount-DUy_W02_.js +0 -1
  446. package/dist/interface/assets/SettingsAppearance-eZsdWWp3.js +0 -1
  447. package/dist/interface/assets/SettingsBackup-ibb5I5Jv.js +0 -1
  448. package/dist/interface/assets/SettingsMqtt-Ct42icAW.js +0 -1
  449. package/dist/interface/assets/SettingsNotifications-B4lyMlLR.js +0 -1
  450. package/dist/interface/assets/SettingsPermissions-Bsv293ri.js +0 -1
  451. package/dist/interface/assets/SettingsRemote-DYld6-1F.css +0 -1
  452. package/dist/interface/assets/SettingsRemote-Dq_BD0fk.js +0 -1
  453. package/dist/interface/assets/SettingsSystem-C5xROdA0.js +0 -2
  454. package/dist/interface/assets/SettingsUsers-Cjk6mevW.js +0 -1
  455. package/dist/interface/assets/Terminal-BIdBrL4g.js +0 -4
  456. package/dist/interface/assets/Workers-DVABUc39.js +0 -2
  457. package/dist/interface/assets/api-AVHJeggR.css +0 -2
  458. package/dist/interface/assets/api-CmdQlVDD.js +0 -2
  459. package/dist/interface/assets/cameras.schema-A_6JklLs.js +0 -1
  460. package/dist/interface/assets/cloudHandoff-D0ytFfHK.js +0 -1
  461. package/dist/interface/assets/deployed-code-update-xHE-blDN.js +0 -1
  462. package/dist/interface/assets/main-B1ryIyTr.css +0 -1
  463. package/dist/interface/assets/main-BdIdmDhs.js +0 -3
  464. package/dist/interface/assets/round-restart-alt-B_7HR24a.js +0 -1
  465. package/dist/interface/assets/round-restart-alt-CmrjVFat.css +0 -1
  466. package/dist/interface/assets/sensorIcons-BujySw0j.js +0 -1
  467. package/dist/interface/assets/types-R10eIequ.js +0 -1
  468. package/dist/interface/assets/types-p_uC0rfp.js +0 -1
  469. package/dist/interface/assets/useBackupRestore-DLieDBFC.js +0 -1
  470. package/dist/interface/assets/vendor-cameraui-Cf0XVNQ7.js +0 -2326
  471. package/dist/interface/assets/vendor-core-u4xNQ-aF.js +0 -1
  472. package/dist/server/src/api/database/migrations/v2-0-50.js +0 -45
  473. package/dist/server/src/api/database/migrations/v2-0-50.js.map +0 -1
  474. package/dist/server/src/api/database/migrations/v2-0-51.js +0 -43
  475. package/dist/server/src/api/database/migrations/v2-0-51.js.map +0 -1
  476. package/dist/server/src/api/database/migrations/v2-1-0.js +0 -72
  477. package/dist/server/src/api/database/migrations/v2-1-0.js.map +0 -1
  478. /package/dist/server/src/api/database/migrations/{v2-0-50.d.ts → v2-1-10.d.ts} +0 -0
  479. /package/dist/server/src/api/database/migrations/{v2-0-51.d.ts → v2-1-11.d.ts} +0 -0
  480. /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", "package")
8
+ OBJECT_DETECTION_LABELS = ("person", "vehicle", "animal")
9
9
 
10
10
  #: Union of the object-detection label strings.
11
- ObjectDetectionLabel = Literal["person", "vehicle", "animal", "package"]
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", "package", "audio"]
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 ObjectModelSpec(TypedDict):
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(TypedDict):
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(TypedDict):
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":"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"}
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 cloudAddress = remoteInfo.enabled ? PROXY_SERVICE_URL : null;
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
- cloudAddress,
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, cloudAddress) {
224
- if (req.headers['x-forwarded-cloud'] === '1') {
225
- return { type: 'cloud', address: cloudAddress ?? this.localAddress(req) };
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 (!hasReverseProxy && isLanClientAddress(req.ip, req.socket?.localAddress)) {
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;