@camera.ui/server 2.2.5-beta.4 → 2.2.5

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 (643) hide show
  1. package/dist/interface/assets/{404-YZOLos9r.js → 404-CiOxoqnT.js} +1 -1
  2. package/dist/interface/assets/{About-HtxMc8JZ.js → About-DWOlfWEm.js} +1 -1
  3. package/dist/interface/assets/Assistant-B1xdMAkA.js +1 -0
  4. package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-CXx7EY1W.css} +1 -1
  5. package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-BJgwUkUB.js} +3 -3
  6. package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-9GRAndAt.js} +2 -2
  7. package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-D_HR2Xby.js} +2 -2
  8. package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-B9MxV2py.js} +2 -2
  9. package/dist/interface/assets/Automations-Bpw8olkc.js +2 -0
  10. package/dist/interface/assets/Camera-BpFfZDaS.js +2 -0
  11. package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-BKPTLSTO.js} +1 -1
  12. package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DcrVCgLy.js} +2 -2
  13. package/dist/interface/assets/Camview-C16pyCZk.js +1 -0
  14. package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-DasO326h.css} +1 -1
  15. package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
  16. package/dist/interface/assets/Config-BmEL5EaW.js +2 -0
  17. package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-DM4tIhoa.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Deo0eDPS.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BxJmoshF.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-KrzXFQDm.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-BoYBomRC.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-CSAOijDt.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-BOdyKiOs.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-CwsPcnd_.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-D3wyULpp.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-BmeaIxYY.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-DbyFKcYr.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-cThGJ1Pc.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-BugkJeXR.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-Bf-mMf4E.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-DcpFoYET.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
  34. package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CgAI34__.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-BWK6gfwM.js} +1 -1
  36. package/dist/interface/assets/ConfigTriggerGeofence-Cm3CU7Tl.js +1 -0
  37. package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-BMFjTAso.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-DOdJkZRo.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-BFDIbZsE.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-DDoUEVHb.js} +1 -1
  43. package/dist/interface/assets/Console-BIj7cIqO.js +1 -0
  44. package/dist/interface/assets/CuiAssistantConversation-CRNCKRHz.js +5 -0
  45. package/dist/interface/assets/{CuiAssistantConversation-lkpZg3ML.css → CuiAssistantConversation-DQ0wOJvV.css} +1 -1
  46. package/dist/interface/assets/CuiAutomationRunsDialog-DMUfNcsf.js +1 -0
  47. package/dist/interface/assets/CuiBottomSheet-CYi5c3fP.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-FwsPnJ3n.js} +1 -1
  49. package/dist/interface/assets/{CuiCameraPipCard-C2qaGJlH.js → CuiCameraPipCard-Cb_Qbly6.js} +1 -1
  50. package/dist/interface/assets/CuiCameraRecordings-BeciatDY.js +1 -0
  51. package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-CSFwIYsg.js} +1 -1
  52. package/dist/interface/assets/CuiCameraTable-BgL5FZso.js +1 -0
  53. package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-DBRfGX3I.js} +2 -2
  54. package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-CtasoxMM.js} +1 -1
  55. package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-DQbAafiz.js} +2 -2
  56. package/dist/interface/assets/CuiDataTable-JlD7Agky.js +1 -0
  57. package/dist/interface/assets/{CuiLightControl-ChGYpQAK.js → CuiLightControl-CLYl5pfN.js} +1 -1
  58. package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
  59. package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
  60. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
  61. package/dist/interface/assets/{CuiPluginCard-CWImTZ6l.js → CuiPluginCard-CC1oXY16.js} +2 -2
  62. package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-B2bR5LQa.js} +1 -1
  63. package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-DfEjfcY-.js} +2 -2
  64. package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-C6CW6Soh.js} +1 -1
  65. package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-DGKBhDib.js} +1 -1
  66. package/dist/interface/assets/CuiSchema-pAAVh28m.js +1 -0
  67. package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-ve-3Dsc3.js} +1 -1
  68. package/dist/interface/assets/Faces-1xd5yGuO.js +1 -0
  69. package/dist/interface/assets/{FirstSteps-QNYTkEJo.js → FirstSteps-E9cMqa0a.js} +1 -1
  70. package/dist/interface/assets/Floorplan-BovV_ATh.js +1 -0
  71. package/dist/interface/assets/Instances-BbxyB7vR.js +1 -0
  72. package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-BhRactvQ.js} +2 -2
  73. package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-DMCmUVDs.js} +1 -1
  74. package/dist/interface/assets/Metrics-BgXrNl38.js +12 -0
  75. package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
  76. package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-BMEwVkIa.js} +1 -1
  77. package/dist/interface/assets/Plugin-CDNywaVE.js +1 -0
  78. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
  79. package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C4Ba_U_1.js} +1 -1
  80. package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-13OWIzdd.js} +2 -2
  81. package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-DN0cSU8s.js} +1 -1
  82. package/dist/interface/assets/PluginSearch-sPkO8aH3.js +2 -0
  83. package/dist/interface/assets/PluginSearch-xNIlfXk4.js +1 -0
  84. package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-CeWuRp3Z.js} +1 -1
  85. package/dist/interface/assets/Plugins-C8yjhxnQ.js +1 -0
  86. package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
  87. package/dist/interface/assets/Recordings-BHT8Vvv_.js +1 -0
  88. package/dist/interface/assets/Recordings-DwuojaAw.css +1 -0
  89. package/dist/interface/assets/SensorEdit-C-yJdJuP.js +1 -0
  90. package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-ClAcOgHj.js} +1 -1
  91. package/dist/interface/assets/Sensors-Cza4Et2c.js +2 -0
  92. package/dist/interface/assets/Settings-Cj0leoGd.js +1 -0
  93. package/dist/interface/assets/SettingsAccount-COkcBBSz.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-DjrJdssy.js +1 -0
  95. package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-CJt4xJEW.js} +1 -1
  96. package/dist/interface/assets/SettingsAppearance-D20YW7Vq.js +1 -0
  97. package/dist/interface/assets/SettingsAssistant-CDdbbG-c.css +1 -0
  98. package/dist/interface/assets/SettingsAssistant-DKWDp1AI.js +1 -0
  99. package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DIJmci05.js} +1 -1
  100. package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-Cb_dLy5T.js} +1 -1
  101. package/dist/interface/assets/SettingsMqtt-LIuCRPT5.js +1 -0
  102. package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-CZxqqH_8.js} +1 -1
  103. package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
  104. package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-BEpwMh-y.js} +1 -1
  105. package/dist/interface/assets/SettingsRemote-DRt-N_yA.js +2 -0
  106. package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-Cncdpx8T.js} +2 -2
  107. package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-DZkz8WlI.js} +1 -1
  108. package/dist/interface/assets/Terminal-U4yfJN3O.js +4 -0
  109. package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
  110. package/dist/interface/assets/Training-DfgE_dA8.js +1 -0
  111. package/dist/interface/assets/Updates-cCvbFq3w.js +2 -0
  112. package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-PVsqGYW0.js} +1 -1
  113. package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
  114. package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-Df7dhddp.js} +2 -2
  115. package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-FTKANjd-.js} +1 -1
  116. package/dist/interface/assets/Workers-Ba37_3cY.js +2 -0
  117. package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
  118. package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
  119. package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
  120. package/dist/interface/assets/api-C1mraOYr.js +4 -0
  121. package/dist/interface/assets/{api-DW2niHRN.js → api-DpqXhwcx.js} +1 -1
  122. package/dist/interface/assets/api-z8ZVnoOl.css +2 -0
  123. package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
  124. package/dist/interface/assets/assistant-Lz3mFLDo.js +1 -0
  125. package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
  126. package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-L7_5vsJs.js} +1 -1
  127. package/dist/interface/assets/{automations-DXrjbArj.js → automations-D1XFFSrm.js} +1 -1
  128. package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
  129. package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
  130. package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
  131. package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DEGJDtmK.js} +1 -1
  132. package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
  133. package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
  134. package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
  135. package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
  136. package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
  137. package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
  138. package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
  139. package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
  140. package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
  141. package/dist/interface/assets/cloudHandoff-DkUx4m3P.js +1 -0
  142. package/dist/interface/assets/{config-CiQDwB4t.js → config-CVqy37fG.js} +1 -1
  143. package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
  144. package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
  145. package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
  146. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
  147. package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
  148. package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
  149. package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
  150. package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
  151. package/dist/interface/assets/esm-0kxqa_1s.js +1 -0
  152. package/dist/interface/assets/esm-4p_M5mFV.js +1 -0
  153. package/dist/interface/assets/esm-8G-vO1KQ.js +1 -0
  154. package/dist/interface/assets/esm-8cB56ICb.js +1 -0
  155. package/dist/interface/assets/esm-B92csSEb.js +1 -0
  156. package/dist/interface/assets/esm-BHiNTIiN.js +1 -0
  157. package/dist/interface/assets/esm-Bu9PMLmw.js +1 -0
  158. package/dist/interface/assets/esm-CS6Ra46d.js +1 -0
  159. package/dist/interface/assets/esm-CWvQWALL.js +1 -0
  160. package/dist/interface/assets/esm-D2UDrwmt.js +1 -0
  161. package/dist/interface/assets/esm-D8OHF2X1.js +1 -0
  162. package/dist/interface/assets/esm-DrXkS8eG.js +1 -0
  163. package/dist/interface/assets/esm-pfoHiO1a.js +1 -0
  164. package/dist/interface/assets/esm-tJSCF7Vh.js +1 -0
  165. package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
  166. package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
  167. package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
  168. package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-CppNBDy1.js} +1 -1
  169. package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
  170. package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
  171. package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
  172. package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
  173. package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
  174. package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
  175. package/dist/interface/assets/main-BK3kmiG2.js +3 -0
  176. package/dist/interface/assets/{main-BoGhBedC.css → main-Bo0Lb1y2.css} +1 -1
  177. package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
  178. package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
  179. package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-BENV9Fx4.js} +1 -1
  180. package/dist/interface/assets/native-BEkWOGyD.js +1 -0
  181. package/dist/interface/assets/native-ugMg173F.js +1 -0
  182. package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
  183. package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-By40oPng.js} +1 -1
  184. package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
  185. package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
  186. package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
  187. package/dist/interface/assets/plugin-eafNQWg2.js +1 -0
  188. package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-09rEDbMz.js} +1 -1
  189. package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
  190. package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
  191. package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
  192. package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
  193. package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
  194. package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
  195. package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-LBxn-Uuu.js} +1 -1
  196. package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
  197. package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
  198. package/dist/interface/assets/sensorIcons-Csu5s0uk.js +1 -0
  199. package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-CtbKmsGG.js} +1 -1
  200. package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CbzNs18A.js} +1 -1
  201. package/dist/interface/assets/{server-DUFhf2c_.js → server-Btp5KILd.js} +1 -1
  202. package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
  203. package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
  204. package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-GhzGwpqd.js} +1 -1
  205. package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
  206. package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
  207. package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
  208. package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
  209. package/dist/interface/assets/types-BAwhu9iv.js +1 -0
  210. package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
  211. package/dist/interface/assets/{types-CXw7CEzu.js → types-D8QWPhe-.js} +1 -1
  212. package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
  213. package/dist/interface/assets/ungrouped-BMk56E3L.js +1 -0
  214. package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
  215. package/dist/interface/assets/{updates-TIPWXKzL.js → updates-CGo0T4sn.js} +1 -1
  216. package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
  217. package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
  218. package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-CJlexqyz.js} +1 -1
  219. package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
  220. package/dist/interface/assets/useBackupRestore-_s8vS5WF.js +1 -0
  221. package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-CFISVNgk.js} +1 -1
  222. package/dist/interface/assets/{useKeyboardInset-DXVi1dLG.js → useKeyboardInset-DkUn62i7.js} +1 -1
  223. package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-D-ndWAg0.js} +1 -1
  224. package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-CG0X_3kt.js} +1 -1
  225. package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
  226. package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-nW_dt66E.js} +1 -1
  227. package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-DCqOAxR4.js} +2 -2
  228. package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CxJGxAcU.js} +1 -1
  229. package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-CXb1HbAq.js} +1 -1
  230. package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-DHb8__wU.js} +1 -1
  231. package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-BR4PMh1R.js} +1 -1
  232. package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DKDRZhvc.js} +1 -1
  233. package/dist/interface/assets/useUserOptions-lyc4WJ4L.js +1 -0
  234. package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
  235. package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
  236. package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-f9ShAzys.js} +2 -2
  237. package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
  238. package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
  239. package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
  240. package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
  241. package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
  242. package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
  243. package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
  244. package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
  245. package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
  246. package/dist/interface/assets/web-3OOGlctS.js +1 -0
  247. package/dist/interface/assets/web-5NFVd9gs.js +1 -0
  248. package/dist/interface/assets/web-A4yovlXr.js +1 -0
  249. package/dist/interface/assets/web-BBC3YoWX.js +1 -0
  250. package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
  251. package/dist/interface/assets/web-BjKL51lK-DUIsII0n.js +1 -0
  252. package/dist/interface/assets/web-C2-YAfsx.js +1 -0
  253. package/dist/interface/assets/web-CUL_MhvM.js +1 -0
  254. package/dist/interface/assets/web-CZVCXYLV.js +1 -0
  255. package/dist/interface/assets/web-DJ-LUxlV.js +1 -0
  256. package/dist/interface/assets/web-DNsEGLGS.js +1 -0
  257. package/dist/interface/assets/web-DZsU0QT_.js +1 -0
  258. package/dist/interface/assets/web-MoyOTbiU.js +1 -0
  259. package/dist/interface/assets/web-avRH_3t7.js +1 -0
  260. package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
  261. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
  262. package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
  263. package/dist/interface/ha/{404-DLhJqxRl.js → 404-B2T8Gktj.js} +1 -1
  264. package/dist/interface/ha/{About-DC0i1iE4.js → About-CrTKzU9_.js} +6 -6
  265. package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-BDHJmYx_.js} +823 -820
  266. package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-Czo5EsAg.js} +337 -337
  267. package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-CuFAQbiX.js} +6 -6
  268. package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-D-6x0JIt.js} +16 -16
  269. package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-Dad4q1MN.js} +19 -19
  270. package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-C-oGM5SR.js} +71 -71
  271. package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-CerkQGbZ.js} +214 -214
  272. package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-hRGwbjsD.js} +3 -3
  273. package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-Bk5TFXA8.js} +92 -92
  274. package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-CsKKqxxY.js} +382 -382
  275. package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Vl4-K3A_.js} +11 -11
  276. package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-OWUX8glZ.js} +4 -4
  277. package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DEaOot8w.js} +3 -3
  278. package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-CSr2BpKL.js} +2 -2
  279. package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput--O8Tyca-.js} +1 -1
  280. package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DQJ4-gs2.js} +4 -4
  281. package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-wR8CCA_T.js} +3 -3
  282. package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-DNMrHwPz.js} +2 -2
  283. package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-C-LVFxFP.js} +1 -1
  284. package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-BCREAkNo.js} +5 -5
  285. package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-D48CQ6qR.js} +5 -5
  286. package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-DpDy88Mg.js} +2 -2
  287. package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-D9BxmwvB.js} +1 -1
  288. package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-CW42tQFY.js} +3 -3
  289. package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-BZpij7kB.js} +4 -4
  290. package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DlTuJ9Sf.js} +5 -5
  291. package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-2QLHESlE.js} +5 -5
  292. package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-DPmUkmUJ.js} +3 -3
  293. package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence--T9OXhGl.js} +2 -2
  294. package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-fZn_X6yY.js} +1 -1
  295. package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-_3O6iBFX.js} +1 -1
  296. package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-CC9lqi8Q.js} +2 -2
  297. package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-BuBcgXqf.js} +1 -1
  298. package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-DNc49UEt.js} +13 -13
  299. package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-Dj_iiZht.js} +2 -2
  300. package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-DG7wOV7m.js} +1 -1
  301. package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-BlOZTfQ4.js} +12 -12
  302. package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BOn-mobi.js} +2 -2
  303. package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-D50FLiK8.js} +9 -9
  304. package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-CfcVRvdZ.js} +42 -42
  305. package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-UpN0Wihm.js} +6 -6
  306. package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CpADXKNF.js} +6 -6
  307. package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-CT6ZfL9o.js} +52 -52
  308. package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-BJVKd6Ac.js} +6 -6
  309. package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-gb9GI24w.js} +3 -3
  310. package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-DqKDx9zR.js} +7 -7
  311. package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CHeJkx0k.js} +129 -129
  312. package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-CFeI6ZYU.js} +5 -5
  313. package/dist/interface/ha/Faces-CTfvhhCj.js +1441 -0
  314. package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-C-WXJ8IL.js} +80 -80
  315. package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-CDKTYN7B.js} +307 -307
  316. package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-n23yvN3L.js} +62 -62
  317. package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-Dfm0BWOQ.js} +10 -10
  318. package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-76kvdAEF.js} +15 -15
  319. package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-lnivlTWm.js} +101 -100
  320. package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-4ChaymHu.js} +7 -7
  321. package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-BV8YA8aN.js} +486 -347
  322. package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-csf1Km7f.js} +4 -4
  323. package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-DTff6cbA.js} +185 -185
  324. package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-CdjxmFPN.js} +116 -116
  325. package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-ClyF4pbA.js} +3 -3
  326. package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-_xOrqP36.js} +34 -34
  327. package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
  328. package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-dTZv0pkp.js} +483 -458
  329. package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-DDRkZjmm.js} +40 -40
  330. package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-DSGlRITr.js} +2 -2
  331. package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DjhGRUzM.js} +477 -462
  332. package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-DYuvz4de.js} +17 -17
  333. package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-DQAo8SnK.js} +146 -146
  334. package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-_tbhpUA0.js} +8 -8
  335. package/dist/interface/ha/{SettingsAssistant-C2R4ZetE.js → SettingsAssistant-DSf-dYuD.js} +656 -533
  336. package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-wLOa7xtw.js} +40 -40
  337. package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-CYujivw5.js} +4 -4
  338. package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-DbxJ-h3J.js} +115 -115
  339. package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DO2-KJvq.js} +118 -118
  340. package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-C47i1UhI.js} +9 -9
  341. package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BPvb-KLI.js} +335 -335
  342. package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-BJPrv9JE.js} +9 -9
  343. package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-CcpCz6Y1.js} +89 -89
  344. package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-DT7-WNH1.js} +16 -16
  345. package/dist/interface/ha/Training-CqGBf8k1.js +1694 -0
  346. package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-CgdrqX6R.js} +13 -13
  347. package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-DOzSFgxT.js} +1 -1
  348. package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-ItklhE2t.js} +10 -10
  349. package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DbS3VqHC.js} +2 -2
  350. package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-6PU7yUv1.js} +36 -36
  351. package/dist/interface/ha/{api-BP7mlzjP.js → api-Dv3Lk_g5.js} +8832 -8608
  352. package/dist/interface/ha/{api-B_tDa73J.js → api-anWolhVj.js} +3 -3
  353. package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-B3m0Kgev.js} +101 -97
  354. package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CAkpM_7A.js} +33 -33
  355. package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-DwVvbKbw.js} +4 -4
  356. package/dist/interface/ha/cameraui-cards.js +1 -1
  357. package/dist/interface/ha/{cards-BpBP1zVW.js → cards-B0qagpBw.js} +743 -667
  358. package/dist/interface/ha/{config-DroY1HBs.js → config-C20itAPE.js} +14 -14
  359. package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
  360. package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
  361. package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
  362. package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C6JvkA5E.js} +14 -14
  363. package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-gLmNZxwZ.js} +19 -19
  364. package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-Du8AM917.js} +639 -625
  365. package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-6x0kBuQb.js} +53 -53
  366. package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-C-mLT6mX.js} +11 -11
  367. package/dist/interface/ha/{server-B4b5_Ecu.js → server-DuikIt69.js} +28 -28
  368. package/dist/interface/ha/{types-DJHHL7nn.js → types-C0NcQ4Cz.js} +49 -38
  369. package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
  370. package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-ooCH0Izh.js} +120 -120
  371. package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-H8MlOQLC.js} +36 -36
  372. package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-DAUCV_cn.js} +1 -1
  373. package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-BOLAXPuD.js} +1 -1
  374. package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-B7VoHzM1.js} +2 -2
  375. package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-qSH0bqwY.js} +1 -1
  376. package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-DYzG_gVG.js} +1 -1
  377. package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-CK7JiWbG.js} +2 -2
  378. package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-DrqkGMuR.js} +1 -1
  379. package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-BteVUdaT.js} +1 -1
  380. package/dist/interface/index.html +70 -70
  381. package/dist/interface/sw.js +1 -1
  382. package/dist/server/package.json +28 -28
  383. package/dist/server/requirements.txt +2 -2
  384. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
  385. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
  386. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
  387. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
  388. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
  389. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
  390. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
  391. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
  392. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
  393. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
  394. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
  395. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
  396. package/dist/server/src/api/controllers/assistant.controller.js +1 -1
  397. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  398. package/dist/server/src/api/database/index.d.ts +1 -1
  399. package/dist/server/src/api/database/index.js +1 -1
  400. package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
  401. package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
  402. package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
  403. package/dist/server/src/api/database/record-schemas.d.ts +4 -2
  404. package/dist/server/src/api/database/record-schemas.js +4 -1
  405. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  406. package/dist/server/src/api/database/types.d.ts +5 -1
  407. package/dist/server/src/api/schemas/assistant.schema.d.ts +21 -7
  408. package/dist/server/src/api/schemas/assistant.schema.js +4 -1
  409. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  410. package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
  411. package/dist/server/src/api/schemas/cameras.schema.js +4 -3
  412. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  413. package/dist/server/src/api/services/assistant.service.d.ts +1 -1
  414. package/dist/server/src/api/services/assistant.service.js +4 -1
  415. package/dist/server/src/api/services/assistant.service.js.map +1 -1
  416. package/dist/server/src/api/services/cameras.service.js +2 -2
  417. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  418. package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
  419. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  420. package/dist/server/src/api/websocket/types.d.ts +12 -0
  421. package/dist/server/src/assistant/budget.d.ts +27 -0
  422. package/dist/server/src/assistant/budget.js +118 -0
  423. package/dist/server/src/assistant/budget.js.map +1 -0
  424. package/dist/server/src/assistant/compaction.d.ts +10 -0
  425. package/dist/server/src/assistant/compaction.js +83 -0
  426. package/dist/server/src/assistant/compaction.js.map +1 -0
  427. package/dist/server/src/assistant/docs.js +4 -3
  428. package/dist/server/src/assistant/docs.js.map +1 -1
  429. package/dist/server/src/assistant/history.d.ts +1 -0
  430. package/dist/server/src/assistant/history.js +28 -0
  431. package/dist/server/src/assistant/history.js.map +1 -1
  432. package/dist/server/src/assistant/manager.d.ts +10 -0
  433. package/dist/server/src/assistant/manager.js +261 -62
  434. package/dist/server/src/assistant/manager.js.map +1 -1
  435. package/dist/server/src/assistant/plugin-models.d.ts +34 -0
  436. package/dist/server/src/assistant/plugin-models.js +266 -0
  437. package/dist/server/src/assistant/plugin-models.js.map +1 -0
  438. package/dist/server/src/assistant/prompt.d.ts +7 -1
  439. package/dist/server/src/assistant/prompt.js +75 -11
  440. package/dist/server/src/assistant/prompt.js.map +1 -1
  441. package/dist/server/src/assistant/providers.js +7 -3
  442. package/dist/server/src/assistant/providers.js.map +1 -1
  443. package/dist/server/src/assistant/recap.d.ts +3 -0
  444. package/dist/server/src/assistant/recap.js +65 -0
  445. package/dist/server/src/assistant/recap.js.map +1 -0
  446. package/dist/server/src/assistant/registry.d.ts +16 -1
  447. package/dist/server/src/assistant/registry.js +49 -1
  448. package/dist/server/src/assistant/registry.js.map +1 -1
  449. package/dist/server/src/assistant/retry.js +38 -24
  450. package/dist/server/src/assistant/retry.js.map +1 -1
  451. package/dist/server/src/assistant/router.d.ts +7 -0
  452. package/dist/server/src/assistant/router.js +67 -0
  453. package/dist/server/src/assistant/router.js.map +1 -0
  454. package/dist/server/src/assistant/skills.d.ts +8 -0
  455. package/dist/server/src/assistant/skills.js +59 -1
  456. package/dist/server/src/assistant/skills.js.map +1 -1
  457. package/dist/server/src/assistant/threads.d.ts +1 -0
  458. package/dist/server/src/assistant/threads.js +7 -1
  459. package/dist/server/src/assistant/threads.js.map +1 -1
  460. package/dist/server/src/assistant/tool-names.js +9 -1
  461. package/dist/server/src/assistant/tool-names.js.map +1 -1
  462. package/dist/server/src/assistant/tool-rank.d.ts +2 -0
  463. package/dist/server/src/assistant/tool-rank.js +48 -0
  464. package/dist/server/src/assistant/tool-rank.js.map +1 -0
  465. package/dist/server/src/assistant/tool-schema.d.ts +3 -0
  466. package/dist/server/src/assistant/tool-schema.js +65 -0
  467. package/dist/server/src/assistant/tool-schema.js.map +1 -0
  468. package/dist/server/src/assistant/tools/api.js +7 -9
  469. package/dist/server/src/assistant/tools/api.js.map +1 -1
  470. package/dist/server/src/assistant/tools/ask.js +1 -2
  471. package/dist/server/src/assistant/tools/ask.js.map +1 -1
  472. package/dist/server/src/assistant/tools/automations.js +3 -5
  473. package/dist/server/src/assistant/tools/automations.js.map +1 -1
  474. package/dist/server/src/assistant/tools/cameras.js +3 -4
  475. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  476. package/dist/server/src/assistant/tools/docs.js +5 -6
  477. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  478. package/dist/server/src/assistant/tools/instance.js +19 -19
  479. package/dist/server/src/assistant/tools/instance.js.map +1 -1
  480. package/dist/server/src/assistant/tools/memory.js +3 -4
  481. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  482. package/dist/server/src/assistant/tools/metrics.js +1 -2
  483. package/dist/server/src/assistant/tools/metrics.js.map +1 -1
  484. package/dist/server/src/assistant/tools/notifications.js +4 -11
  485. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  486. package/dist/server/src/assistant/tools/plugins.js +12 -14
  487. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  488. package/dist/server/src/assistant/tools/report.js +17 -12
  489. package/dist/server/src/assistant/tools/report.js.map +1 -1
  490. package/dist/server/src/assistant/tools/schedules.js +6 -11
  491. package/dist/server/src/assistant/tools/schedules.js.map +1 -1
  492. package/dist/server/src/assistant/tools/sensors.js +63 -4
  493. package/dist/server/src/assistant/tools/sensors.js.map +1 -1
  494. package/dist/server/src/assistant/tools/settings.js +2 -3
  495. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  496. package/dist/server/src/assistant/tools/system.js +3 -5
  497. package/dist/server/src/assistant/tools/system.js.map +1 -1
  498. package/dist/server/src/assistant/tools/terminal.js +4 -5
  499. package/dist/server/src/assistant/tools/terminal.js.map +1 -1
  500. package/dist/server/src/assistant/types.d.ts +10 -1
  501. package/dist/server/src/assistant/uploads.d.ts +2 -1
  502. package/dist/server/src/assistant/uploads.js +25 -3
  503. package/dist/server/src/assistant/uploads.js.map +1 -1
  504. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
  505. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
  506. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  507. package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
  508. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  509. package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
  510. package/dist/server/src/camera/decoder/event-manager.js +175 -48
  511. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  512. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
  513. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  514. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  515. package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
  516. package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
  517. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  518. package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
  519. package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
  520. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  521. package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
  522. package/dist/server/src/camera/decoder/side-queue.js +53 -0
  523. package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
  524. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
  525. package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
  526. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  527. package/dist/server/src/camera/decoder/types.d.ts +11 -1
  528. package/dist/server/src/camera/decoder/types.js +9 -1
  529. package/dist/server/src/camera/decoder/types.js.map +1 -1
  530. package/dist/server/src/camera/sensors/controller.d.ts +1 -0
  531. package/dist/server/src/camera/sensors/controller.js +28 -4
  532. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  533. package/dist/server/src/main.js +11 -2
  534. package/dist/server/src/main.js.map +1 -1
  535. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
  536. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
  537. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
  538. package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
  539. package/dist/server/src/rpc/server.js +1 -0
  540. package/dist/server/src/rpc/server.js.map +1 -1
  541. package/dist/server/src/services/config/index.d.ts +1 -0
  542. package/dist/server/src/services/config/index.js +6 -11
  543. package/dist/server/src/services/config/index.js.map +1 -1
  544. package/dist/server/src/utils/camera.js +8 -5
  545. package/dist/server/src/utils/camera.js.map +1 -1
  546. package/dist/server/src/utils/instance-lock.d.ts +1 -0
  547. package/dist/server/src/utils/instance-lock.js +57 -0
  548. package/dist/server/src/utils/instance-lock.js.map +1 -0
  549. package/dist/server/src/workers/agent.d.ts +2 -0
  550. package/dist/server/src/workers/agent.js +11 -1
  551. package/dist/server/src/workers/agent.js.map +1 -1
  552. package/dist/server/src/workers/manager.js +9 -2
  553. package/dist/server/src/workers/manager.js.map +1 -1
  554. package/dist/server/src/workers/types.d.ts +1 -0
  555. package/npm-shrinkwrap.json +209 -209
  556. package/package.json +28 -28
  557. package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
  558. package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
  559. package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
  560. package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
  561. package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
  562. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
  563. package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
  564. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
  565. package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
  566. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
  567. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
  568. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
  569. package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
  570. package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
  571. package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
  572. package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
  573. package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
  574. package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
  575. package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
  576. package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
  577. package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
  578. package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
  579. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
  580. package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
  581. package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
  582. package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
  583. package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
  584. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
  585. package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
  586. package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
  587. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
  588. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
  589. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
  590. package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
  591. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
  592. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
  593. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
  594. package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
  595. package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
  596. package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
  597. package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
  598. package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
  599. package/dist/interface/assets/api-DK2Bav9D.js +0 -4
  600. package/dist/interface/assets/api-DTCqDA-h.css +0 -2
  601. package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
  602. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
  603. package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
  604. package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
  605. package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
  606. package/dist/interface/assets/esm-C8bsO829.js +0 -1
  607. package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
  608. package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
  609. package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
  610. package/dist/interface/assets/esm-DKolm6KU.js +0 -1
  611. package/dist/interface/assets/esm-DTywI9gs.js +0 -1
  612. package/dist/interface/assets/esm-DifXcK9i.js +0 -1
  613. package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
  614. package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
  615. package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
  616. package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
  617. package/dist/interface/assets/main-D74mRIxc.js +0 -3
  618. package/dist/interface/assets/native-CAujTO6L.js +0 -1
  619. package/dist/interface/assets/native-sQ88qazf.js +0 -1
  620. package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
  621. package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
  622. package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
  623. package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
  624. package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
  625. package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
  626. package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
  627. package/dist/interface/assets/web-3M-ddn4G.js +0 -1
  628. package/dist/interface/assets/web-BY80VGyU.js +0 -1
  629. package/dist/interface/assets/web-B_tUYyM0.js +0 -1
  630. package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
  631. package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
  632. package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
  633. package/dist/interface/assets/web-CLcvGPH6.js +0 -1
  634. package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
  635. package/dist/interface/assets/web-DR5q_DmI.js +0 -1
  636. package/dist/interface/assets/web-DRHbG4Te.js +0 -1
  637. package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
  638. package/dist/interface/assets/web-EVRW5whF.js +0 -1
  639. package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
  640. package/dist/interface/assets/web-pWIp0wf0.js +0 -1
  641. package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
  642. package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
  643. package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
@@ -1,4 +1,4 @@
1
- import { skillsPrompt } from './skills.js';
1
+ import { skillCatalog, skillsPrompt } from './skills.js';
2
2
  const LANGUAGE_NAMES = new Intl.DisplayNames(['en'], { type: 'language' });
3
3
  // prettier-ignore
4
4
  const CAPABILITIES = [
@@ -19,7 +19,41 @@ const CAPABILITIES = [
19
19
  '- Plugins add camera brands, AI backends and integrations and are installed and updated from the Plugins page (plugins/). ' +
20
20
  'Home Assistant has an add-on, an integration, dashboard cards and sensor import (home-assistant/*).',
21
21
  ];
22
- export function buildSystemPrompt(ctx, facts) {
22
+ // prettier-ignore
23
+ const CAPABILITY_INDEX = [
24
+ 'camera.ui covers cameras, live view, Camview, floor plan, zones and privacy masks, shares, sensors and accessories from plugins, PTZ and autotrack, ' +
25
+ 'detection (motion, objects, faces, license plates, audio, semantic text search, AI descriptions, episodes, model training), recording with the NVR plugin, ' +
26
+ 'notifications, automations, remote access (camera.ui Cloud, Cloudflare tunnel, custom domain, reverse proxy, certificates, pairing the apps), ' +
27
+ 'administration (users, security, backup, updates, logs, workers, instances) and plugins.',
28
+ 'Anything about one of these, what it is or where it is set, comes from docs_search, never from memory.',
29
+ ].join('\n');
30
+ // prettier-ignore
31
+ const DISCOVERY_HINT = 'Only part of the tools are described in full. The rest is in the catalog of the discovery tool: fetch what a request needs from there before answering, ' +
32
+ 'and do not settle for api_search while a tool for the subject exists. A procedure you loaded names its tools, fetch those as well.';
33
+ const SKILL_HINT = 'When a request matches one of the procedures in the skill catalog, call load_skill with its name before the first tool.';
34
+ function plainCapabilities(capabilities) {
35
+ return capabilities.replace(/^.*\n/, 'What camera.ui offers:\n');
36
+ }
37
+ function hiddenTools(names) {
38
+ return `Tools you fetch with the discovery tool, by name: ${names.join(', ')}.`;
39
+ }
40
+ export function composePrompt(sections, plan) {
41
+ if (plan?.toolless)
42
+ return [[sections.toolless, plainCapabilities(sections.capabilities)].join('\n\n'), sections.dynamic];
43
+ const parts = [
44
+ plan?.routed ? sections.focused : sections.rules,
45
+ plan?.compactPrompt ? CAPABILITY_INDEX : sections.capabilities,
46
+ plan?.skillsOnDemand ? SKILL_HINT : sections.skills,
47
+ plan?.demoted ? DISCOVERY_HINT : '',
48
+ plan?.hidden.length ? hiddenTools(plan.hidden) : '',
49
+ plan?.routed?.length ? pickedTools(plan.routed) : '',
50
+ ];
51
+ return [parts.filter((part) => part !== '').join('\n\n'), sections.dynamic];
52
+ }
53
+ function pickedTools(names) {
54
+ return `For this question these tools fit best: ${names.join(', ')}. Use them when the question needs data or an action.`;
55
+ }
56
+ export function promptSections(ctx, facts) {
23
57
  const now = new Date();
24
58
  const localTime = now.toLocaleString('en-GB', { timeZone: ctx.timezone, hour12: false });
25
59
  const cameraLines = facts.cameras.map((c) => `- ${c.name}${c.room ? ` (${c.room})` : ''}${c.online ? '' : ', offline'}`).join('\n');
@@ -32,7 +66,32 @@ export function buildSystemPrompt(ctx, facts) {
32
66
  'camera.ui itself (how a feature works, where a setting lives) comes from docs_search first, not from memory. The tools are for camera.ui only.',
33
67
  'Relative dates like "yesterday" refer to the time zone given below. Pass times to tools as ISO 8601 with offset.',
34
68
  `Answer in ${languageName(ctx.language)}. Keep answers short and concrete, name cameras and times. Use markdown sparingly: short lists, no headings.`,
69
+ ];
70
+ // prettier-ignore
71
+ const focused = [
72
+ `You are the assistant of "${facts.instanceName}", a self-hosted camera.ui instance, talking to ${facts.userName} (role: ${ctx.role}).`,
73
+ `Answer in ${languageName(ctx.language)}. Short and concrete, name cameras and times.`,
35
74
  '',
75
+ 'Rules:',
76
+ '- Facts about cameras, events, people, sensors or the system come from a tool. Call the tool that fits before you answer, never guess.',
77
+ '- How a feature works or where a setting lives: call docs_search first, then answer from what it returns, not from your own knowledge.',
78
+ '- What is configured and has no tool of its own (users, sessions, automations, plugins, settings): api_search for the endpoint, then api_get to read it.',
79
+ '- A change (sensor, automation, notification): call its tool right away. The app asks the user to confirm, never ask for permission yourself.',
80
+ '- If no tool fits or a tool returns nothing, say so plainly.',
81
+ '- Camera names below are the ones tools accept. Relative dates refer to the time zone below, pass times as ISO 8601 with offset.',
82
+ '- Never write a tool call or a tool name into the answer.',
83
+ ];
84
+ // prettier-ignore
85
+ const toolless = [
86
+ `You are the assistant of "${facts.instanceName}", a self-hosted camera.ui instance, talking to ${facts.userName} (role: ${ctx.role}).`,
87
+ 'The model you run on cannot call tools, so in this conversation you see neither events nor recordings, sensors or settings, and you cannot change anything.',
88
+ 'Answer from the conversation and from your own knowledge: explain, compare, draft text, help with cameras, home network and smart home.',
89
+ 'When a question needs live data from the instance (what a camera saw, the state of a sensor, a setting), say that this model cannot look it up ' +
90
+ 'and that an admin can pick a model with tools under Settings, Assistant. Never invent an observation, never write a tool call into the answer.',
91
+ `Answer in ${languageName(ctx.language)}. Keep answers short and concrete. Use markdown sparingly: short lists, no headings.`,
92
+ ];
93
+ // prettier-ignore
94
+ const rules = [
36
95
  'Rules:',
37
96
  '- Everything you say about events, people, vehicles or sensor states must come from a tool result. Never invent or guess an observation.',
38
97
  '- If a tool returns nothing, say that nothing was found.',
@@ -43,11 +102,12 @@ export function buildSystemPrompt(ctx, facts) {
43
102
  '- Ids for events, episodes, cameras or automations must be copied from a tool result in this conversation. Never make one up.',
44
103
  '- For anything the specialized tools do not cover, use system_query and system_action (discovery and adoption, notification history, ' +
45
104
  'logs, updates, MQTT, process states) or api_search followed by api_get or api_call (plugins, workers, sessions, users, settings, ' +
46
- 'automations, sensors, zones, shares and everything else with a REST endpoint). Never guess a path.',
105
+ 'automations, zones, shares and everything else with a REST endpoint). Never guess a path.',
47
106
  '- Never conclude that a feature does not exist because a search returned nothing. Call docs_search to learn how it works and what ' +
48
107
  'it is called, then look for the tool again. If no tool covers it, say that you cannot do it from the chat and name the page in the app.',
49
- '- Alerts and watching, automations, reports and recaps, clips and faces, media analysis and browser control have a procedure each, listed ' +
50
- 'after the capabilities. Follow it, it holds the tool order.',
108
+ '- A recap of a day or a week and highlights end with a show_report card of kind day_recap, not with a text list.',
109
+ '- Alerts and watching, automations, reports and recaps, clips and faces, media analysis and browser control have a procedure each. ' +
110
+ 'It is either written out below or listed by name, then load_skill brings it. Follow it, it holds the tool order.',
51
111
  facts.terminal
52
112
  ? '- run_command runs one shell command on the server after the user allows it. Use it for host diagnostics the other tools cannot ' +
53
113
  'answer (disk, network, processes, container logs), prefer commands that only read, one command per call, and nothing that deletes ' +
@@ -73,12 +133,8 @@ export function buildSystemPrompt(ctx, facts) {
73
133
  ctx.sendImages
74
134
  ? '- Images from tools are visible to you. Describe what you actually see.'
75
135
  : '- Images from tools are shown to the user only, you receive text. Do not claim to see them.',
76
- '',
77
- 'What camera.ui offers (docs page in brackets, read it with docs_read when the user asks how something works):',
78
- ...CAPABILITIES,
79
- '',
80
- skillsPrompt(),
81
136
  ];
137
+ const capabilities = ['What camera.ui offers (docs page in brackets, read it with docs_read when the user asks how something works):', ...CAPABILITIES].join('\n');
82
138
  // prettier-ignore
83
139
  const dynamic = [
84
140
  `Current time: ${localTime} (${ctx.timezone}). Today is ${now.toLocaleDateString('en-CA', { timeZone: ctx.timezone })}.`,
@@ -98,7 +154,15 @@ export function buildSystemPrompt(ctx, facts) {
98
154
  if (ctx.instructions?.trim()) {
99
155
  dynamic.push('', 'Instructions from the user for this conversation:', ctx.instructions.trim());
100
156
  }
101
- return [lines.join('\n'), dynamic.filter((line) => line !== undefined).join('\n')];
157
+ return {
158
+ rules: [...lines, '', ...rules].join('\n'),
159
+ focused: focused.join('\n'),
160
+ toolless: toolless.join('\n'),
161
+ capabilities,
162
+ skills: skillsPrompt(),
163
+ skillCatalog: skillCatalog(),
164
+ dynamic: dynamic.filter((line) => line !== undefined).join('\n'),
165
+ };
102
166
  }
103
167
  export function languageName(code) {
104
168
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/assistant/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/assistant/prompt.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,13 @@ const DEFAULT_BASE_URLS = {
14
14
  };
15
15
  const MODELS_TIMEOUT_MS = 10_000;
16
16
  export function defaultBaseURL(provider) {
17
- return DEFAULT_BASE_URLS[provider];
17
+ return DEFAULT_BASE_URLS[provider] ?? null;
18
18
  }
19
19
  export function providerNeedsKey(provider) {
20
20
  return provider === 'openai' || provider === 'anthropic' || provider === 'gemini' || provider === 'openrouter';
21
21
  }
22
22
  export function createAdapter(settings, apiKey) {
23
- const baseURL = nonEmpty(settings.baseURL) ?? DEFAULT_BASE_URLS[settings.provider] ?? undefined;
23
+ const baseURL = nonEmpty(settings.baseURL) ?? defaultBaseURL(settings.provider) ?? undefined;
24
24
  const key = apiKey ?? '';
25
25
  switch (settings.provider) {
26
26
  case 'ollama':
@@ -35,10 +35,12 @@ export function createAdapter(settings, apiKey) {
35
35
  return createGeminiChat(settings.model, key, baseURL ? { baseURL } : undefined);
36
36
  case 'openrouter':
37
37
  return createOpenRouterText(settings.model, key);
38
+ default:
39
+ throw new Error(`No adapter for the provider ${settings.provider}`);
38
40
  }
39
41
  }
40
42
  export async function listModels(settings, apiKey) {
41
- const baseURL = (nonEmpty(settings.baseURL) ?? DEFAULT_BASE_URLS[settings.provider] ?? '').replace(/\/+$/, '');
43
+ const baseURL = (nonEmpty(settings.baseURL) ?? defaultBaseURL(settings.provider) ?? '').replace(/\/+$/, '');
42
44
  switch (settings.provider) {
43
45
  case 'ollama': {
44
46
  const data = await fetchJson(`${baseURL}/api/tags`);
@@ -67,6 +69,8 @@ export async function listModels(settings, apiKey) {
67
69
  const data = await fetchJson('https://openrouter.ai/api/v1/models', apiKey ? { Authorization: `Bearer ${apiKey}` } : {});
68
70
  return (data.data ?? []).map((m) => m.id);
69
71
  }
72
+ default:
73
+ throw new Error(`No model list for the provider ${settings.provider}`);
70
74
  }
71
75
  }
72
76
  function nonEmpty(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/assistant/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/assistant/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DBAssistantCard } from '../api/database/types.js';
2
+ export declare const RECAP_TOOL = "nvr__summarize_day";
3
+ export declare function recapCard(result: unknown, language: string, timezone: string): DBAssistantCard | undefined;
@@ -0,0 +1,65 @@
1
+ export const RECAP_TOOL = 'nvr__summarize_day';
2
+ const MAX_ITEMS = 12;
3
+ const LABEL_MAX = 80;
4
+ const NOTE_MAX = 160;
5
+ export function recapCard(result, language, timezone) {
6
+ const summary = parseResult(result);
7
+ if (!summary)
8
+ return undefined;
9
+ const days = Array.isArray(summary.days) ? summary.days : [summary];
10
+ const multiDay = days.length > 1;
11
+ const episodes = days.flatMap((day) => (Array.isArray(day.episodes) ? day.episodes : []));
12
+ const items = episodes
13
+ .filter((episode) => typeof episode.id === 'string' && typeof episode.start === 'string')
14
+ .map((episode) => toItem(episode, multiDay, language, timezone))
15
+ .filter((item) => item !== undefined);
16
+ if (!items.length)
17
+ return undefined;
18
+ const from = typeof summary.from === 'string' ? summary.from : typeof days[0]?.date === 'string' ? days[0].date : undefined;
19
+ const to = typeof summary.to === 'string' ? summary.to : from;
20
+ return { kind: 'day_recap', title: rangeTitle(from, to, language, timezone), items: items.slice(-MAX_ITEMS) };
21
+ }
22
+ function toItem(episode, multiDay, language, timezone) {
23
+ const start = new Date(episode.start);
24
+ if (Number.isNaN(start.getTime()))
25
+ return undefined;
26
+ const title = typeof episode.title === 'string' && episode.title.trim() ? episode.title : typeof episode.story === 'string' ? episode.story : '';
27
+ if (!title.trim())
28
+ return undefined;
29
+ const cams = Array.isArray(episode.cams) ? episode.cams.filter((cam) => typeof cam === 'string') : [];
30
+ const time = new Intl.DateTimeFormat(language, {
31
+ timeZone: timezone,
32
+ hour: '2-digit',
33
+ minute: '2-digit',
34
+ ...(multiDay ? { weekday: 'short' } : {}),
35
+ }).format(start);
36
+ return {
37
+ label: clip(title, LABEL_MAX),
38
+ value: time,
39
+ ...(cams.length ? { note: clip(cams.join(', '), NOTE_MAX) } : {}),
40
+ episodeId: episode.id,
41
+ };
42
+ }
43
+ function rangeTitle(from, to, language, timezone) {
44
+ const first = from ? new Date(`${from}T12:00:00Z`) : new Date();
45
+ const last = to ? new Date(`${to}T12:00:00Z`) : first;
46
+ const format = new Intl.DateTimeFormat(language, { timeZone: timezone, weekday: from === to ? 'long' : undefined, day: 'numeric', month: 'long' });
47
+ return from === to ? format.format(first) : format.formatRange(first, last);
48
+ }
49
+ function parseResult(result) {
50
+ let value = result;
51
+ for (let depth = 0; depth < 2 && typeof value === 'string'; depth++) {
52
+ try {
53
+ value = JSON.parse(value);
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ }
59
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
60
+ }
61
+ function clip(text, max) {
62
+ const flat = text.replace(/\s+/g, ' ').trim();
63
+ return flat.length > max ? `${flat.slice(0, max - 1)}…` : flat;
64
+ }
65
+ //# sourceMappingURL=recap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recap.js","sourceRoot":"","sources":["../../../../src/assistant/recap.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,24 @@
1
- import type { AssistantToolResult } from '@camera.ui/sdk';
1
+ import type { AssistantModelSpec, AssistantModelStatus, AssistantToolResult } from '@camera.ui/sdk';
2
2
  import type { DBRoles } from '../api/database/types.js';
3
3
  import type { Plugin } from '../plugins/plugin.js';
4
4
  import type { ExternalServer } from './external.js';
5
+ import type { PluginTextAdapter } from './plugin-models.js';
5
6
  import type { CoreTool, ToolContext } from './tools/shared.js';
6
7
  import type { AssistantExternalStatus, AssistantToolInfo } from './types.js';
8
+ export interface PluginModelEntry {
9
+ pluginId: string;
10
+ pluginName: string;
11
+ provider: string;
12
+ models: AssistantModelSpec[];
13
+ status?: AssistantModelStatus;
14
+ }
7
15
  export declare class AssistantToolRegistry {
8
16
  private core;
9
17
  private plugins;
18
+ private models;
10
19
  private external;
11
20
  private client;
21
+ private modelClient;
12
22
  private api;
13
23
  private docs;
14
24
  private logger;
@@ -16,9 +26,13 @@ export declare class AssistantToolRegistry {
16
26
  private onPluginStarted;
17
27
  private onPluginStopped;
18
28
  constructor();
29
+ get modelProviders(): PluginModelEntry[];
30
+ refreshModels(): Promise<void>;
19
31
  get pluginToolCount(): number;
20
32
  get externalToolCount(): number;
21
33
  get toolCount(): number;
34
+ modelProvider(provider: string): PluginModelEntry | undefined;
35
+ modelAdapter(entry: PluginModelEntry, spec: AssistantModelSpec, language: string, timeoutMs?: number): PluginTextAdapter;
22
36
  loadApi(document: unknown): void;
23
37
  loadDocs(): void;
24
38
  start(): Promise<void>;
@@ -30,6 +44,7 @@ export declare class AssistantToolRegistry {
30
44
  callPluginTool(name: string, input: unknown, ctx: ToolContext): Promise<AssistantToolResult | undefined>;
31
45
  registerPlugin(plugin: Plugin): Promise<void>;
32
46
  unregisterPlugin(pluginId: string): void;
47
+ private registerModels;
33
48
  private all;
34
49
  private handlePluginEvent;
35
50
  }
@@ -5,13 +5,16 @@ import { PluginsService } from '../api/services/plugins.service.js';
5
5
  import { ApiCatalog } from './api-catalog.js';
6
6
  import { DocsIndex } from './docs.js';
7
7
  import { ExternalMcpSource } from './external.js';
8
+ import { PluginModelClient, pluginProviderName } from './plugin-models.js';
8
9
  import { PluginToolClient } from './plugin-tools.js';
9
10
  import { coreTools } from './tools/index.js';
10
11
  export class AssistantToolRegistry {
11
12
  core = [];
12
13
  plugins = new Map();
14
+ models = new Map();
13
15
  external = new Map();
14
16
  client = new PluginToolClient();
17
+ modelClient = new PluginModelClient();
15
18
  api = new ApiCatalog();
16
19
  docs = new DocsIndex();
17
20
  logger;
@@ -22,6 +25,23 @@ export class AssistantToolRegistry {
22
25
  this.logger = container.resolve('logger');
23
26
  this.core = coreTools(this, this.api, this.docs);
24
27
  }
28
+ get modelProviders() {
29
+ return Array.from(this.models.values()).filter((entry) => entry.models.length > 0 || entry.status?.ready === false);
30
+ }
31
+ async refreshModels() {
32
+ const providers = new PluginsService().listPlugins().filter((plugin) => hasInterface(plugin.contract, PluginInterface.AssistantModels));
33
+ const known = new Set(providers.map((plugin) => plugin.id));
34
+ for (const pluginId of this.models.keys())
35
+ if (!known.has(pluginId))
36
+ this.models.delete(pluginId);
37
+ // a plugin whose first answer failed never made it into the list, so the running ones are asked, not the listed ones
38
+ await Promise.all(providers.map(async (plugin) => {
39
+ if (plugin.worker.isRunning())
40
+ await this.registerModels(plugin);
41
+ else
42
+ this.models.delete(plugin.id);
43
+ }));
44
+ }
25
45
  get pluginToolCount() {
26
46
  let count = 0;
27
47
  for (const entry of this.plugins.values())
@@ -37,6 +57,12 @@ export class AssistantToolRegistry {
37
57
  get toolCount() {
38
58
  return this.core.length + this.pluginToolCount + this.externalToolCount;
39
59
  }
60
+ modelProvider(provider) {
61
+ return this.modelProviders.find((entry) => entry.provider === provider);
62
+ }
63
+ modelAdapter(entry, spec, language, timeoutMs) {
64
+ return this.modelClient.adapter(entry.pluginId, entry.pluginName, spec, language, timeoutMs);
65
+ }
40
66
  loadApi(document) {
41
67
  if (!document)
42
68
  return;
@@ -65,7 +91,9 @@ export class AssistantToolRegistry {
65
91
  this.bus?.offEvent('plugin:error', this.onPluginStopped);
66
92
  this.bus?.offEvent('plugin:crashed', this.onPluginStopped);
67
93
  this.plugins.clear();
94
+ this.models.clear();
68
95
  await this.client.close();
96
+ await this.modelClient.close();
69
97
  await Promise.all(Array.from(this.external.values()).map((source) => source.close()));
70
98
  this.external.clear();
71
99
  }
@@ -116,7 +144,6 @@ export class AssistantToolRegistry {
116
144
  };
117
145
  });
118
146
  }
119
- // core tools borrow a plugin tool by its short name, the event picture of the nvr for example
120
147
  async callPluginTool(name, input, ctx) {
121
148
  for (const entry of this.plugins.values()) {
122
149
  if (entry.specs.some((spec) => spec.name === name))
@@ -125,6 +152,8 @@ export class AssistantToolRegistry {
125
152
  return undefined;
126
153
  }
127
154
  async registerPlugin(plugin) {
155
+ if (hasInterface(plugin.contract, PluginInterface.AssistantModels))
156
+ await this.registerModels(plugin);
128
157
  if (!hasInterface(plugin.contract, PluginInterface.AssistantTools))
129
158
  return;
130
159
  try {
@@ -141,6 +170,25 @@ export class AssistantToolRegistry {
141
170
  }
142
171
  unregisterPlugin(pluginId) {
143
172
  this.plugins.delete(pluginId);
173
+ this.models.delete(pluginId);
174
+ }
175
+ async registerModels(plugin) {
176
+ try {
177
+ const [models, status] = await Promise.all([this.modelClient.fetchSpecs(plugin), this.modelClient.fetchStatus(plugin)]);
178
+ this.models.set(plugin.id, {
179
+ pluginId: plugin.id,
180
+ pluginName: plugin.displayName,
181
+ provider: pluginProviderName(plugin.pluginName),
182
+ models,
183
+ ...(status ? { status } : {}),
184
+ });
185
+ if (models.length) {
186
+ this.logger.debug(`Assistant: ${plugin.displayName} offers ${models.length} models (${models.map((m) => m.id).join(', ')})`);
187
+ }
188
+ }
189
+ catch (error) {
190
+ this.logger.warn(`Assistant: could not read models from ${plugin.displayName}: ${error.message}`);
191
+ }
144
192
  }
145
193
  all() {
146
194
  const external = [];
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/assistant/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/assistant/registry.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,48 @@
1
1
  import { EventType } from '@tanstack/ai';
2
+ import { flattenToolHistory } from './history.js';
2
3
  const RETRY_PROMPT = 'Your previous reply came back empty. Answer the user now, from the conversation and the tool results you already have.';
4
+ const TEXT_ONLY_PROMPT = 'Your replies came back empty and no tool is available anymore. Write the answer now as plain text from what the tools already returned, ' +
5
+ 'and say plainly what you could not check. Do not write a tool call or a tool name with arguments into the answer.';
3
6
  export function withEmptyTurnRetry(adapter, onRetry) {
4
7
  let retried = false;
5
8
  // eslint-disable-next-line @stylistic/generator-star-spacing
6
9
  async function* chatStream(options) {
7
- let finish;
8
- let answered = false;
9
- let failed = false;
10
- for await (const chunk of adapter.chatStream(options)) {
11
- if (chunk.type === EventType.RUN_FINISHED) {
12
- finish = chunk;
13
- continue;
10
+ // a model that stays silent once often stays silent with the same tools, the last try takes them away so it has to write
11
+ const attempts = [
12
+ options,
13
+ { ...options, systemPrompts: [...(options.systemPrompts ?? []), RETRY_PROMPT] },
14
+ { ...options, messages: flattenToolHistory(options.messages), tools: [], systemPrompts: [...(options.systemPrompts ?? []), TEXT_ONLY_PROMPT] },
15
+ ];
16
+ let usage;
17
+ for (const [index, attempt] of attempts.entries()) {
18
+ let finish;
19
+ let answered = false;
20
+ let failed = false;
21
+ for await (const chunk of adapter.chatStream(attempt)) {
22
+ if (chunk.type === EventType.RUN_FINISHED) {
23
+ finish = chunk;
24
+ continue;
25
+ }
26
+ if (chunk.type === EventType.RUN_ERROR)
27
+ failed = true;
28
+ if ((chunk.type === EventType.TEXT_MESSAGE_CONTENT && chunk.delta.trim()) || chunk.type === EventType.TOOL_CALL_START)
29
+ answered = true;
30
+ yield chunk;
14
31
  }
15
- if (chunk.type === EventType.RUN_ERROR)
16
- failed = true;
17
- if ((chunk.type === EventType.TEXT_MESSAGE_CONTENT && chunk.delta.trim()) || chunk.type === EventType.TOOL_CALL_START)
18
- answered = true;
19
- yield chunk;
20
- }
21
- const stopped = finish?.type === EventType.RUN_FINISHED && (finish.finishReason === 'stop' || !finish.finishReason);
22
- if (!finish || answered || failed || retried || !stopped || options.request?.signal?.aborted) {
23
- if (finish)
24
- yield finish;
25
- return;
26
- }
27
- retried = true;
28
- onRetry();
29
- const firstUsage = finish.type === EventType.RUN_FINISHED ? finish.usage : undefined;
30
- for await (const chunk of adapter.chatStream({ ...options, systemPrompts: [...(options.systemPrompts ?? []), RETRY_PROMPT] })) {
31
- yield chunk.type === EventType.RUN_FINISHED ? { ...chunk, usage: addUsage(firstUsage, chunk.usage) } : chunk;
32
+ if (finish?.type === EventType.RUN_FINISHED) {
33
+ usage = index ? addUsage(usage, finish.usage) : finish.usage;
34
+ finish = { ...finish, usage };
35
+ }
36
+ const stopped = finish?.type === EventType.RUN_FINISHED && (finish.finishReason === 'stop' || !finish.finishReason);
37
+ const last = index === attempts.length - 1 || (index === 0 && retried);
38
+ if (!finish || answered || failed || last || !stopped || options.request?.signal?.aborted) {
39
+ if (finish)
40
+ yield finish;
41
+ return;
42
+ }
43
+ retried = true;
44
+ if (index === 0)
45
+ onRetry();
32
46
  }
33
47
  }
34
48
  return wrapChatStream(adapter, chatStream);
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../../src/assistant/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../../src/assistant/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ChatMiddleware, ModelMessage, UIMessage } from '@tanstack/ai';
2
+ import type { AssistantAdapter } from './providers.js';
3
+ import type { CoreTool } from './tools/shared.js';
4
+ export declare const ROUTE_TIMEOUT_MS = 20000;
5
+ export declare const ROUTED_TOOLS: string[];
6
+ export declare function routeTools(adapter: AssistantAdapter, question: string, hidden: CoreTool[], entry: CoreTool[], middleware: ChatMiddleware<never>[], onError: (message: string) => void): Promise<string[] | null>;
7
+ export declare function questionText(messages: readonly (UIMessage | ModelMessage)[]): string;