@camera.ui/server 2.1.14 → 2.1.16

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 (407) hide show
  1. package/dist/interface/assets/{404-DRo8zW0F.js → 404-CqZDSHs_.js} +1 -1
  2. package/dist/interface/assets/{About-DMjE0Qte.js → About-Dk4SUTxo.js} +1 -1
  3. package/dist/interface/assets/Automation-CDvt2MXN.js +3 -0
  4. package/dist/interface/assets/AutomationImport-DDywNuRK.js +2 -0
  5. package/dist/interface/assets/AutomationStore-o0JYwGRr.js +2 -0
  6. package/dist/interface/assets/AutomationStoreDetail-DeAGahaF.js +2 -0
  7. package/dist/interface/assets/Automations-2K-7hZfK.js +2 -0
  8. package/dist/interface/assets/Camera-B72IU-UF.js +2 -0
  9. package/dist/interface/assets/Camera-Cm9I0H6c.css +1 -0
  10. package/dist/interface/assets/{CameraConsole-CP_kwVq7.js → CameraConsole-32WtMX1a.js} +1 -1
  11. package/dist/interface/assets/{Cameras-Bp6P5eQC.js → Cameras-zffI0fD9.js} +2 -2
  12. package/dist/interface/assets/Camview-CZct5cnP.css +1 -0
  13. package/dist/interface/assets/Camview-KzzN0Q1w.js +1 -0
  14. package/dist/interface/assets/{CertificateUpload-CA2PrWb3.js → CertificateUpload-Dg0V9Hei.js} +1 -1
  15. package/dist/interface/assets/Config-CKrqFe-g.js +2 -0
  16. package/dist/interface/assets/{ConfigActionCameraControl-BODp6yd4.js → ConfigActionCameraControl-sbvBJQr3.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-ChQOPeXL.js → ConfigActionDelay-CiPxydTn.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-BVeQKfLN.js → ConfigActionHttp-UqiZm0kq.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-B99__kdP.js → ConfigActionImageInput-DkGVZ-ti.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-D595Lo5y.js → ConfigActionMqtt-DQu5H4bY.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-DxzLPmUf.js → ConfigActionNotification-C2uXIMpm.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-Bp4yWebz.js → ConfigActionNotificationControl-B_EpM5m9.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-Di3KaQ_P.js → ConfigActionOutput-DeOsk0T1.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-B7vbDV9n.js → ConfigActionPlugin-CSZHcNQ6.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-Qj0c8MZq.js → ConfigActionSensor-Dx7DcDVr.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-159QrEMJ.js → ConfigActionSnapshot-Baj-r4Cd.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-Bodvejrx.js → ConfigActionVariable-Ccu___aS.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-BMI_mgi3.js → ConfigConditionIfElse-0hU7UW8q.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSensorState-DkwjHr31.js → ConfigConditionSensorState-BX19KYLJ.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionSwitch-ZlqOfRQE.js → ConfigConditionSwitch-D-XUhwcE.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-B2igg9Tb.js → ConfigConditionTime-B6OO8cmh.js} +1 -1
  32. package/dist/interface/assets/{ConfigSensorValueInput-DMnkNDC_.js → ConfigSensorValueInput-DZHYQez8.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerDetection-C_ujxraC.js → ConfigTriggerDetection-BNyR5aOG.js} +1 -1
  34. package/dist/interface/assets/ConfigTriggerGeofence-Cuq1SnOZ.js +1 -0
  35. package/dist/interface/assets/{ConfigTriggerManual-BVIiZfOj.js → ConfigTriggerManual-DFSTAuUt.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-B7Tf1jOh.js → ConfigTriggerMqtt-D_O8RyrQ.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-CcvA02N3.js → ConfigTriggerSchedule-BFZnBfCM.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSensor-CHCDeFmR.js → ConfigTriggerSensor-D1Tst2wQ.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSystem-0SeQnHSX.js → ConfigTriggerSystem-BNfatCp8.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-t0tFjZ7V.js → ConfigTriggerWebhook--nEO_Odl.js} +1 -1
  41. package/dist/interface/assets/{Console-B3xhLOhl.js → Console-DkylrXI4.js} +1 -1
  42. package/dist/interface/assets/{CuiAutomationRunsDialog-hZJsv95Y.js → CuiAutomationRunsDialog-CkMRT1C8.js} +1 -1
  43. package/dist/interface/assets/CuiBottomSheet-DILQuWKb.js +1 -0
  44. package/dist/interface/assets/CuiBottomSheet-_KXSb13N.css +1 -0
  45. package/dist/interface/assets/CuiBottomSheet-mKu68LHd.js +1 -0
  46. package/dist/interface/assets/CuiCameraPipCard-Djp8qBvZ.js +1 -0
  47. package/dist/interface/assets/CuiCameraRecordings-Bi0I7jeO.js +1 -0
  48. package/dist/interface/assets/CuiCameraShares-B73pWIFh.js +1 -0
  49. package/dist/interface/assets/CuiCameraTable-CUdAnRJP.js +1 -0
  50. package/dist/interface/assets/{CuiCameraTable-CkAeMqcZ.js → CuiCameraTable-DripFD6D.js} +1 -1
  51. package/dist/interface/assets/{CuiChartTable-CZXvn_Iy.js → CuiChartTable-DyyQV7mt.js} +1 -1
  52. package/dist/interface/assets/{CuiConsole-CW8Q43cq.js → CuiConsole-UxJwQqNG.js} +2 -2
  53. package/dist/interface/assets/{CuiDataTable-cN03N7lr.js → CuiDataTable-DZm0I8k7.js} +1 -1
  54. package/dist/interface/assets/CuiLightControl-CB3l0ZLj.js +1 -0
  55. package/dist/interface/assets/{CuiList-BI488Ne9.js → CuiList-DMQgYqaU.js} +1 -1
  56. package/dist/interface/assets/CuiPluginCard-HpQMNND1.js +2 -0
  57. package/dist/interface/assets/{CuiPluginCategoryChip-5YBKOVmo.js → CuiPluginCategoryChip-C6aEP-ug.js} +1 -1
  58. package/dist/interface/assets/CuiPluginOAuthButton-DpGacvsa.js +2 -0
  59. package/dist/interface/assets/{CuiPluginTrustBadge-BFpziu4f.js → CuiPluginTrustBadge-Dl1PEsm6.js} +1 -1
  60. package/dist/interface/assets/CuiQRCode-D04Onyhk.js +1 -0
  61. package/dist/interface/assets/CuiRecordingsGrid-BhATIjIf.css +1 -0
  62. package/dist/interface/assets/CuiRecordingsGrid-BzyJWpFt.js +1 -0
  63. package/dist/interface/assets/CuiSchema-thjfmEWw.js +1 -0
  64. package/dist/interface/assets/{CuiTopNavbarItem-CJqOqVMt.css → CuiTopNavbarItem-7673AFGS.css} +1 -1
  65. package/dist/interface/assets/CuiTopNavbarItem-qPj6XwXr.js +1 -0
  66. package/dist/interface/assets/Faces-DRWIPDfH.js +1 -0
  67. package/dist/interface/assets/FirstSteps-C6GVpZVr.js +1 -0
  68. package/dist/interface/assets/{Floorplan-Bxhdg4C2.css → Floorplan-B1lItPnM.css} +1 -1
  69. package/dist/interface/assets/Floorplan-Q-UYDnrE.js +1 -0
  70. package/dist/interface/assets/Instances-VC4-anOF.js +1 -0
  71. package/dist/interface/assets/{Logs-Bjyi3BKP.js → Logs-DROgZxLH.js} +2 -2
  72. package/dist/interface/assets/{Menu-BQDo_rxR.js → Menu-CmTk2or7.js} +1 -1
  73. package/dist/interface/assets/Metrics-CYZF-em9.js +9 -0
  74. package/dist/interface/assets/{OAuthDeviceFlow-C-a76FaQ.js → OAuthDeviceFlow-BrdiDoCh.js} +1 -1
  75. package/dist/interface/assets/Plugin-DuPHiiYJ.js +1 -0
  76. package/dist/interface/assets/{PluginConsole-B5A04A2x.js → PluginConsole-CxiW1w6K.js} +1 -1
  77. package/dist/interface/assets/PluginDetail-DWP7_hNa.js +2 -0
  78. package/dist/interface/assets/{PluginSchema-BJEOq6im.js → PluginSchema-BgVZ_4if.js} +1 -1
  79. package/dist/interface/assets/PluginSearch-1djFQUjL.js +1 -0
  80. package/dist/interface/assets/PluginSearch-Ba-hQHxm.js +2 -0
  81. package/dist/interface/assets/{PluginUpdateProgress-BZ-OtZet.js → PluginUpdateProgress-DEcle8-x.js} +1 -1
  82. package/dist/interface/assets/Plugins-BZ3U4pcG.js +1 -0
  83. package/dist/interface/assets/Recordings-CI5MIFR-.js +1 -0
  84. package/dist/interface/assets/Recordings-CfSTX_Mw.css +1 -0
  85. package/dist/interface/assets/{SensorEdit-CQagiAww.js → SensorEdit-B6s-VZ3F.js} +1 -1
  86. package/dist/interface/assets/{SensorHistory-DIMTRYRa.js → SensorHistory-H03yZia0.js} +1 -1
  87. package/dist/interface/assets/Sensors-DDPUwbb-.js +2 -0
  88. package/dist/interface/assets/{Sensors-CaKl4PQY.css → Sensors-DzGV2Ngo.css} +1 -1
  89. package/dist/interface/assets/Settings-9nC18KH8.js +1 -0
  90. package/dist/interface/assets/{Settings-jQIhZFRY.css → Settings-D7495zbV.css} +1 -1
  91. package/dist/interface/assets/SettingsAccount-BTYvhCJP.js +1 -0
  92. package/dist/interface/assets/SettingsAccount-CKi0z3Bm.js +1 -0
  93. package/dist/interface/assets/SettingsAppearance-CDbQnSvl.js +1 -0
  94. package/dist/interface/assets/{SettingsAppearance-NpsVIJUO.js → SettingsAppearance-D9Y28zzz.js} +1 -1
  95. package/dist/interface/assets/SettingsBackup-Bu48xw4v.js +1 -0
  96. package/dist/interface/assets/{SettingsList-BKyyC2_M.js → SettingsList-74c5OMQf.js} +1 -1
  97. package/dist/interface/assets/SettingsMqtt-81rJ4zV6.js +1 -0
  98. package/dist/interface/assets/{SettingsNotifications-kKPcCTLM.js → SettingsNotifications-xHV5KiZg.js} +1 -1
  99. package/dist/interface/assets/{SettingsPermissions-r6wxjmHg.js → SettingsPermissions-DqyVtVKE.js} +1 -1
  100. package/dist/interface/assets/{SettingsRecordings-GPy1AdjG.js → SettingsRecordings-Bxn28Frz.js} +1 -1
  101. package/dist/interface/assets/SettingsRemote-7h2dKJlF.js +2 -0
  102. package/dist/interface/assets/SettingsSystem-D-MLhCdN.js +2 -0
  103. package/dist/interface/assets/SettingsUsers-DUOJN7uO.js +1 -0
  104. package/dist/interface/assets/{Terminal-DtvlszuP.js → Terminal-45QW5yPE.js} +2 -2
  105. package/dist/interface/assets/Training-B5SzDUAC.css +1 -0
  106. package/dist/interface/assets/Training-DWrQVSS0.js +1 -0
  107. package/dist/interface/assets/Updates-B32Pra5E.js +2 -0
  108. package/dist/interface/assets/{VariableInput-C-f6bNmi.js → VariableInput-CyTGQFtz.js} +1 -1
  109. package/dist/interface/assets/{VariableSuggestions-B4LYkbu5.js → VariableSuggestions-BLlD4F87.js} +1 -1
  110. package/dist/interface/assets/{VersionsHandler-Cxxcwt9W.js → VersionsHandler-CIq6v6lE.js} +1 -1
  111. package/dist/interface/assets/{VirtualSensorCreate-CrGmWsI7.js → VirtualSensorCreate-Di2IyYAg.js} +1 -1
  112. package/dist/interface/assets/Workers-tb039NGc.js +2 -0
  113. package/dist/interface/assets/{api-CD4zuPhg.js → api-4JRK8ya0.js} +1 -1
  114. package/dist/interface/assets/api-CFf063x3.js +4 -0
  115. package/dist/interface/assets/api-eoOLTOnS.css +2 -0
  116. package/dist/interface/assets/{auth-W2HVbsrF.js → auth-ISkWvJbZ.js} +1 -1
  117. package/dist/interface/assets/{automations-CY5xtQCF.js → automations-CeH81DN-.js} +1 -1
  118. package/dist/interface/assets/{cameraSources-BSFgVwUz.js → cameraSources-CgAEmb37.js} +1 -1
  119. package/dist/interface/assets/cloudHandoff-B_kCnm4R.js +1 -0
  120. package/dist/interface/assets/{config-DOFSd8-0.js → config-DthCyQJv.js} +1 -1
  121. package/dist/interface/assets/{flowSchema-Bq6CskDh.js → flowSchema-DZ2bDhJt.js} +1 -1
  122. package/dist/interface/assets/{intercomService-CT_KVjly.js → intercomService-Bd71KwsB.js} +1 -1
  123. package/dist/interface/assets/main--lW4P3A4.js +3 -0
  124. package/dist/interface/assets/main-ExPfCNlz.css +1 -0
  125. package/dist/interface/assets/mqtt-oPORDio9.js +1 -0
  126. package/dist/interface/assets/{notifications-B_hY7DqC.js → notifications-BirFkpbF.js} +1 -1
  127. package/dist/interface/assets/{plugins-V5-6e5L7.js → plugins-vyA7MMhx.js} +1 -1
  128. package/dist/interface/assets/rooms-MfPQPywT.js +1 -0
  129. package/dist/interface/assets/{sensorIcons-DQIyC9JL.js → sensorIcons-B4H11BbT.js} +1 -1
  130. package/dist/interface/assets/{sensors-7R3hMa_s.js → sensors-xryx8Wvn.js} +1 -1
  131. package/dist/interface/assets/{server-CyCTaiWl.js → server-BK9gwxH8.js} +1 -1
  132. package/dist/interface/assets/{theme-Cc5MIK4j.js → theme-DQeAzJ1v.js} +1 -1
  133. package/dist/interface/assets/{types-D9iX7VVJ.js → types-Bcj_K26s.js} +1 -1
  134. package/dist/interface/assets/types-D626ASim.js +1 -0
  135. package/dist/interface/assets/{types-CDVUPFqE.js → types-kN1Tn2Og.js} +1 -1
  136. package/dist/interface/assets/ungrouped-C6pQb0X4.css +1 -0
  137. package/dist/interface/assets/ungrouped-C_gJm6d7.js +1 -0
  138. package/dist/interface/assets/{updates-H8lZYYSt.js → updates-Dzqxen12.js} +1 -1
  139. package/dist/interface/assets/{useAppVersion-DuXhWeJY.js → useAppVersion-JY7cdzlr.js} +1 -1
  140. package/dist/interface/assets/useBackupRestore-CeShFVWy.js +1 -0
  141. package/dist/interface/assets/{useCameraOptions-CZvujVuW.js → useCameraOptions-BeUNT5Rz.js} +1 -1
  142. package/dist/interface/assets/{useLogsSocket-DW5Ll9qN.js → useLogsSocket-DDSuX00j.js} +1 -1
  143. package/dist/interface/assets/{useNavLayout-Ay4GP0IF.js → useNavLayout-DgAgRNq2.js} +1 -1
  144. package/dist/interface/assets/{usePermissions-tvEa1N9y.js → usePermissions-DFzwIs8L.js} +1 -1
  145. package/dist/interface/assets/{usePluginUpdates-C6c7mdBo.js → usePluginUpdates-Bb-LOOyL.js} +1 -1
  146. package/dist/interface/assets/{usePushRegistration-Cp-oFaYU.js → usePushRegistration-iverdyzz.js} +1 -1
  147. package/dist/interface/assets/{useServerRestart-F0do0_a5.js → useServerRestart-BchofDLe.js} +1 -1
  148. package/dist/interface/assets/{useStreamStatus-Cof0SieK.js → useStreamStatus-BOJt1v1c.js} +1 -1
  149. package/dist/interface/assets/{useTabSwipe-CH2JsEKl.js → useTabSwipe-v0Yet-YZ.js} +1 -1
  150. package/dist/interface/assets/{useUpdateChannel--yUW8uvn.js → useUpdateChannel-K9ADk5yx.js} +1 -1
  151. package/dist/interface/assets/{useUpdatesSocket-DOHvs02g.js → useUpdatesSocket-sj1-DmFM.js} +1 -1
  152. package/dist/interface/assets/{useUserOptions-CO_I7IAm.js → useUserOptions-BnF_qBdZ.js} +1 -1
  153. package/dist/interface/assets/{vendor-cameraui-B96_CDGO.js → vendor-cameraui-BPX4wReW.js} +2 -2
  154. package/dist/interface/assets/{vendor-core-DFWGbWRD.js → vendor-core-D0ANiY7g.js} +1 -1
  155. package/dist/interface/assets/{vendor-primevue-uo78flP9.js → vendor-primevue-iEFYdXsu.js} +1 -1
  156. package/dist/interface/ha/{404-CvCsIvOn.js → 404-DlQnv9jN.js} +1 -1
  157. package/dist/interface/ha/{About-Bqb-qrXr.js → About-BLQJmllv.js} +6 -6
  158. package/dist/interface/ha/{Automation-AiOadcvh.js → Automation-DLMPArOd.js} +184 -184
  159. package/dist/interface/ha/{AutomationImport-CHs99b96.js → AutomationImport-Qzz3Ta4D.js} +6 -6
  160. package/dist/interface/ha/{AutomationStore-yTxgRNos.js → AutomationStore-DNXC9s6h.js} +51 -51
  161. package/dist/interface/ha/{AutomationStoreDetail-CWB-S_Dq.js → AutomationStoreDetail-CTqydRKj.js} +24 -24
  162. package/dist/interface/ha/{Automations-ymrcS6zL.js → Automations-DRxe1fli.js} +102 -102
  163. package/dist/interface/ha/{Camera-gfUjA1cF.js → Camera-OrI4Wf4F.js} +180 -180
  164. package/dist/interface/ha/{CameraConsole-DBM_9sZD.js → CameraConsole-6yGhoHmu.js} +4 -4
  165. package/dist/interface/ha/{Cameras-BDYtuflZ.js → Cameras-DpEaKKDG.js} +253 -253
  166. package/dist/interface/ha/{Camview-CyZW6Ccj.js → Camview-CnPz4cGs.js} +128 -128
  167. package/dist/interface/ha/{Config-Dw11VG_z.js → Config-Bb2ERyAA.js} +11 -11
  168. package/dist/interface/ha/{ConfigActionCameraControl-SpfqepU9.js → ConfigActionCameraControl-CC2tWFz2.js} +3 -3
  169. package/dist/interface/ha/{ConfigActionHttp-DRNiEJwf.js → ConfigActionHttp-DBsEL44i.js} +2 -2
  170. package/dist/interface/ha/{ConfigActionImageInput-BKIS7_Az.js → ConfigActionImageInput-Rt3AOJ3I.js} +1 -1
  171. package/dist/interface/ha/{ConfigActionMqtt-vcKjYONr.js → ConfigActionMqtt-BYSSc954.js} +4 -4
  172. package/dist/interface/ha/{ConfigActionNotification-C8RqA0hp.js → ConfigActionNotification-DKlIsZJd.js} +3 -3
  173. package/dist/interface/ha/{ConfigActionNotificationControl-DxDU-1LD.js → ConfigActionNotificationControl-D5AVW2tR.js} +2 -2
  174. package/dist/interface/ha/{ConfigActionOutput-Dd9tqEbp.js → ConfigActionOutput-DIlu8Ujc.js} +1 -1
  175. package/dist/interface/ha/{ConfigActionPlugin-hZohlF2U.js → ConfigActionPlugin-o1YNBh-g.js} +4 -4
  176. package/dist/interface/ha/{ConfigActionSensor-CsTZdgpn.js → ConfigActionSensor-BEvwg0tf.js} +5 -5
  177. package/dist/interface/ha/{ConfigActionSnapshot-CVuRrZog.js → ConfigActionSnapshot-Bnw0JNNj.js} +2 -2
  178. package/dist/interface/ha/{ConfigActionVariable-BW0Mfwzv.js → ConfigActionVariable-oGPagsvF.js} +1 -1
  179. package/dist/interface/ha/{ConfigConditionIfElse-B8giXSLg.js → ConfigConditionIfElse-7LCDNDvS.js} +3 -3
  180. package/dist/interface/ha/{ConfigConditionSensorState-SOYmnv38.js → ConfigConditionSensorState-nO-s7wi6.js} +4 -4
  181. package/dist/interface/ha/{ConfigConditionSwitch-DPYRsgIP.js → ConfigConditionSwitch-GrIKkY-P.js} +4 -4
  182. package/dist/interface/ha/{ConfigSensorValueInput-C8uDea7H.js → ConfigSensorValueInput-Cthp3KXt.js} +7 -7
  183. package/dist/interface/ha/{ConfigTriggerDetection-DKrNlf4n.js → ConfigTriggerDetection-CJE9QFaK.js} +11 -11
  184. package/dist/interface/ha/{ConfigTriggerGeofence-BoKYjfEF.js → ConfigTriggerGeofence-Cyeu7Cit.js} +5 -5
  185. package/dist/interface/ha/{ConfigTriggerMqtt-A0druw9s.js → ConfigTriggerMqtt-D5EoOztE.js} +1 -1
  186. package/dist/interface/ha/{ConfigTriggerSensor-DnqfzsxM.js → ConfigTriggerSensor-DYg_HRjO.js} +1 -1
  187. package/dist/interface/ha/{ConfigTriggerSystem-B8JHImoF.js → ConfigTriggerSystem-DzpajiyS.js} +2 -2
  188. package/dist/interface/ha/{ConfigTriggerWebhook-B34dHYln.js → ConfigTriggerWebhook-IE4PVb4O.js} +2 -2
  189. package/dist/interface/ha/{Console-vTZkA5_c.js → Console-BYgny5Dy.js} +100 -100
  190. package/dist/interface/ha/{CuiAutomationRunsDialog-D1j6QT1J.js → CuiAutomationRunsDialog-CoYgpbW0.js} +2 -2
  191. package/dist/interface/ha/{CuiBottomSheet-tJqB2HMb.js → CuiBottomSheet-C4cK3fYK.js} +3 -3
  192. package/dist/interface/ha/{CuiCameraRecordings-CbXShYur.js → CuiCameraRecordings-BAxchc71.js} +16 -15
  193. package/dist/interface/ha/{CuiCameraShares-fsCg_eYs.js → CuiCameraShares-CfQr1iyX.js} +7 -7
  194. package/dist/interface/ha/{CuiCameraTable-cCH34Rqx.js → CuiCameraTable-B60mcEl_.js} +9 -9
  195. package/dist/interface/ha/{CuiChartTable-CMkcRmDL.js → CuiChartTable-CbUVz-Cj.js} +42 -42
  196. package/dist/interface/ha/{CuiConsole-wuBto4Ht.js → CuiConsole-DEjAQFwC.js} +19 -19
  197. package/dist/interface/ha/{CuiDataTable-yviddz9T.js → CuiDataTable-005ptLsa.js} +7 -7
  198. package/dist/interface/ha/{CuiPluginCard-Dr4cFcve.js → CuiPluginCard-BWwPLJ6m.js} +33 -33
  199. package/dist/interface/ha/CuiPluginOAuthButton-CgmDgRY9.js +79 -0
  200. package/dist/interface/ha/{CuiPluginTrustBadge-CVwRbaTh.js → CuiPluginTrustBadge-BWnP1whX.js} +3 -3
  201. package/dist/interface/ha/{CuiQRCode-CTr0g0fy.js → CuiQRCode-ONkk6Wqy.js} +6 -6
  202. package/dist/interface/ha/{ungrouped-CpcBXTDQ.js → CuiRecordingsGrid-D6HHyF1D.js} +81 -462
  203. package/dist/interface/ha/{CuiSchema-DtfAoLxQ.js → CuiSchema-C3uI1GwG.js} +138 -138
  204. package/dist/interface/ha/{CuiTopNavbarItem-4H6Gg0Pe.js → CuiTopNavbarItem-Bhws0XkE.js} +3 -3
  205. package/dist/interface/ha/{Faces-DSjPW-A-.js → Faces-DuxYlZGd.js} +79 -79
  206. package/dist/interface/ha/{FirstSteps-BK_EXlZU.js → FirstSteps-BAlqShSK.js} +64 -64
  207. package/dist/interface/ha/{Floorplan-BWRteZjr.js → Floorplan-BVwSNFd6.js} +332 -332
  208. package/dist/interface/ha/{Instances-Dln03_o7.js → Instances-BM9sRNSP.js} +73 -73
  209. package/dist/interface/ha/{Logs-xwh0fkZV.js → Logs-KISz4BU-.js} +11 -11
  210. package/dist/interface/ha/{Menu-BwzIh1vF.js → Menu-DYI6PeIn.js} +19 -19
  211. package/dist/interface/ha/{Metrics-CiMXu6rz.js → Metrics-BjpKFunA.js} +101 -101
  212. package/dist/interface/ha/{OAuthDeviceFlow-D4IUrYub.js → OAuthDeviceFlow-DG-KUGZj.js} +4 -4
  213. package/dist/interface/ha/{Plugin-CM5b1Jz4.js → Plugin-BjWyUUhe.js} +103 -103
  214. package/dist/interface/ha/{PluginConsole-BJNblZb5.js → PluginConsole-BK3cotea.js} +6 -6
  215. package/dist/interface/ha/{PluginDetail--RFw88FL.js → PluginDetail-BDzDeShX.js} +13 -13
  216. package/dist/interface/ha/{PluginSearch-yzBxy3Zj.js → PluginSearch-DsFUuPC-.js} +54 -54
  217. package/dist/interface/ha/{PluginUpdateProgress-BaYmaaE7.js → PluginUpdateProgress-BMrdkjRq.js} +3 -3
  218. package/dist/interface/ha/{Plugins-C-sU0dsj.js → Plugins-3WPnsHXw.js} +27 -27
  219. package/dist/interface/ha/{Recordings-CXnTN85c.js → Recordings-0wDF4ArK.js} +153 -134
  220. package/dist/interface/ha/{SensorEdit-ByAfduAA.js → SensorEdit-B0L2zIha.js} +359 -359
  221. package/dist/interface/ha/{SensorHistory-Cv1YF7qX.js → SensorHistory-CQJEY1sW.js} +2 -2
  222. package/dist/interface/ha/{Sensors-DyxXLT1C.js → Sensors-BYdBTCLo.js} +251 -251
  223. package/dist/interface/ha/{Settings-DMBgMUpe.js → Settings-BaqGiBCa.js} +24 -24
  224. package/dist/interface/ha/SettingsAccount-B0Sth0EF.js +970 -0
  225. package/dist/interface/ha/{SettingsAppearance-BfXcGIwE.js → SettingsAppearance-B_oylmTa.js} +14 -14
  226. package/dist/interface/ha/{SettingsBackup-vsITZfgV.js → SettingsBackup-BLmoV5AW.js} +8 -8
  227. package/dist/interface/ha/{SettingsList-BTxhjM8J.js → SettingsList-CMX7wMye.js} +5 -5
  228. package/dist/interface/ha/{SettingsMqtt-JHf9BXbp.js → SettingsMqtt-C-sGwxOZ.js} +148 -148
  229. package/dist/interface/ha/SettingsNotifications-tc9FCCUF.js +529 -0
  230. package/dist/interface/ha/{SettingsRecordings-BAUAhyEd.js → SettingsRecordings-DDs16z2A.js} +6 -6
  231. package/dist/interface/ha/{SettingsRemote-DAI3p-gY.js → SettingsRemote-0c0umjFJ.js} +355 -355
  232. package/dist/interface/ha/{SettingsSystem-D-UQqZyn.js → SettingsSystem-DfXxWXQk.js} +10 -10
  233. package/dist/interface/ha/{SettingsUsers-D-_uCeBe.js → SettingsUsers-CmjC0zsF.js} +42 -42
  234. package/dist/interface/ha/{Terminal-BBBP74zZ.js → Terminal-nbUX6PPZ.js} +76 -76
  235. package/dist/interface/ha/Training-GMcD4Qg9.js +1440 -0
  236. package/dist/interface/ha/{Updates-DDEAqmrt.js → Updates-UaxBGn6D.js} +14 -14
  237. package/dist/interface/ha/{VariableInput-5aDKaHK6.js → VariableInput-0bF2H1Bm.js} +1 -1
  238. package/dist/interface/ha/{VersionsHandler-Z5aUBicW.js → VersionsHandler-CnXVnfBl.js} +10 -10
  239. package/dist/interface/ha/{VirtualSensorCreate-DOjwBgbP.js → VirtualSensorCreate-BE60rAkJ.js} +7 -7
  240. package/dist/interface/ha/{Workers-lI-ulBfQ.js → Workers-CaX3Z3w-.js} +104 -104
  241. package/dist/interface/ha/{api-BU1ot-rQ.js → api-CmcbBFTx.js} +9831 -9471
  242. package/dist/interface/ha/{api-B-1nJvx1.js → api-S-NnjUWl.js} +4 -4
  243. package/dist/interface/ha/{auth-Wr26Jrhr.js → auth-CqYE7s1-.js} +24 -24
  244. package/dist/interface/ha/{automationBlueprint-CjXCYTHX.js → automationBlueprint-Dmp54JD1.js} +2 -2
  245. package/dist/interface/ha/cameraui-cards.js +1 -1
  246. package/dist/interface/ha/{cards-DJ8I0DpS.js → cards-MnCBmBIR.js} +121 -121
  247. package/dist/interface/ha/cloud-check-BFJzoUtz.js +33 -0
  248. package/dist/interface/ha/{config--3c2hYeI.js → config-C94KN4WM.js} +15 -15
  249. package/dist/interface/ha/{mqtt-CSWN3zrE.js → mqtt-HDLqlOJt.js} +15 -15
  250. package/dist/interface/ha/{notifications-B4jziVIo.js → notifications-C2_2_NRh.js} +22 -22
  251. package/dist/interface/ha/{pinia-3D39Do4a.js → pinia-DLNUke3Q.js} +172 -149
  252. package/dist/interface/ha/{plugins-BTBXmJqQ.js → plugins-l2i4DgqO.js} +68 -68
  253. package/dist/interface/ha/{rooms-BxY9U6db.js → rooms-Bp1ZVAzT.js} +11 -11
  254. package/dist/interface/ha/{server-BxPWpMFK.js → server-BsduJDAB.js} +32 -32
  255. package/dist/interface/ha/{types-D_Y5r1Yz.js → types-iZUCCt1P.js} +30 -30
  256. package/dist/interface/ha/ungrouped-wz-KNJpA.js +426 -0
  257. package/dist/interface/ha/{updates-Hyzkue_s.js → updates-CDsPvhpo.js} +36 -36
  258. package/dist/interface/ha/{useAppVersion-BME7p9Tn.js → useAppVersion-BJtSGn4X.js} +1 -1
  259. package/dist/interface/ha/{useLogsSocket-9HYA1tN7.js → useLogsSocket-Ck-ZQpQD.js} +1 -1
  260. package/dist/interface/ha/{useNavLayout-BP3bvHDX.js → useNavLayout-Bn6HYs-i.js} +19 -19
  261. package/dist/interface/ha/{useServerRestart-L0gugeHY.js → useServerRestart-fff_KK9Y.js} +1 -1
  262. package/dist/interface/ha/{useTabSwipe-DKFPKAuu.js → useTabSwipe-B1CQZuyT.js} +1 -1
  263. package/dist/interface/ha/{useUpdateChannel-DgPBMvzK.js → useUpdateChannel-DUBmGEDe.js} +2 -2
  264. package/dist/interface/ha/{useUpdatesSocket-j4Sl2_YJ.js → useUpdatesSocket-DoLb2kcJ.js} +1 -1
  265. package/dist/interface/ha/{useUserOptions-BIVNeXD9.js → useUserOptions-D0kNSHFH.js} +1 -1
  266. package/dist/interface/index.html +27 -27
  267. package/dist/interface/sw.js +1 -1
  268. package/dist/server/package.json +8 -8
  269. package/dist/server/src/api/controllers/training.controller.d.ts +38 -0
  270. package/dist/server/src/api/controllers/training.controller.js +97 -0
  271. package/dist/server/src/api/controllers/training.controller.js.map +1 -0
  272. package/dist/server/src/api/database/constants.d.ts +1 -0
  273. package/dist/server/src/api/database/constants.js +1 -0
  274. package/dist/server/src/api/database/constants.js.map +1 -1
  275. package/dist/server/src/api/database/index.d.ts +3 -2
  276. package/dist/server/src/api/database/index.js +4 -2
  277. package/dist/server/src/api/database/index.js.map +1 -1
  278. package/dist/server/src/api/database/migrations/v2-1-19.d.ts +3 -0
  279. package/dist/server/src/api/database/migrations/v2-1-19.js +24 -0
  280. package/dist/server/src/api/database/migrations/v2-1-19.js.map +1 -0
  281. package/dist/server/src/api/database/record-schemas.d.ts +6 -1
  282. package/dist/server/src/api/database/record-schemas.js +7 -0
  283. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  284. package/dist/server/src/api/database/types.d.ts +27 -0
  285. package/dist/server/src/api/index.js +1 -1
  286. package/dist/server/src/api/index.js.map +1 -1
  287. package/dist/server/src/api/render-index.js +1 -1
  288. package/dist/server/src/api/render-index.js.map +1 -1
  289. package/dist/server/src/api/routes/index.js +2 -0
  290. package/dist/server/src/api/routes/index.js.map +1 -1
  291. package/dist/server/src/api/routes/training.routes.d.ts +2 -0
  292. package/dist/server/src/api/routes/training.routes.js +106 -0
  293. package/dist/server/src/api/routes/training.routes.js.map +1 -0
  294. package/dist/server/src/api/schemas/cameras.schema.d.ts +76 -76
  295. package/dist/server/src/api/schemas/remote.schema.d.ts +1 -1
  296. package/dist/server/src/api/schemas/training.schema.d.ts +42 -0
  297. package/dist/server/src/api/schemas/training.schema.js +42 -0
  298. package/dist/server/src/api/schemas/training.schema.js.map +1 -0
  299. package/dist/server/src/api/services/cameras.service.js +7 -2
  300. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  301. package/dist/server/src/api/websocket/index.js +3 -1
  302. package/dist/server/src/api/websocket/index.js.map +1 -1
  303. package/dist/server/src/api/websocket/nsp/training.d.ts +11 -0
  304. package/dist/server/src/api/websocket/nsp/training.js +29 -0
  305. package/dist/server/src/api/websocket/nsp/training.js.map +1 -0
  306. package/dist/server/src/api/websocket/types.d.ts +1 -1
  307. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +1 -0
  308. package/dist/server/src/camera/decoder/detection-coordinator.js +31 -1
  309. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  310. package/dist/server/src/camera/decoder/event-manager.d.ts +6 -0
  311. package/dist/server/src/camera/decoder/event-manager.js +43 -1
  312. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  313. package/dist/server/src/camera/decoder/training-sink.d.ts +26 -0
  314. package/dist/server/src/camera/decoder/training-sink.js +131 -0
  315. package/dist/server/src/camera/decoder/training-sink.js.map +1 -0
  316. package/dist/server/src/camera/decoder/types.d.ts +4 -0
  317. package/dist/server/src/camera/decoder/types.js +12 -0
  318. package/dist/server/src/camera/decoder/types.js.map +1 -1
  319. package/dist/server/src/manager/coreManager.d.ts +3 -1
  320. package/dist/server/src/manager/coreManager.js +18 -0
  321. package/dist/server/src/manager/coreManager.js.map +1 -1
  322. package/dist/server/src/manager/trainingCandidateManager.d.ts +42 -0
  323. package/dist/server/src/manager/trainingCandidateManager.js +250 -0
  324. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -0
  325. package/dist/server/src/manager/types.d.ts +19 -0
  326. package/dist/server/src/manager/types.js +2 -0
  327. package/dist/server/src/manager/types.js.map +1 -1
  328. package/dist/server/src/remote/api/credentialStore.d.ts +1 -0
  329. package/dist/server/src/remote/api/credentialStore.js +24 -0
  330. package/dist/server/src/remote/api/credentialStore.js.map +1 -1
  331. package/dist/server/src/remote/api/index.d.ts +2 -0
  332. package/dist/server/src/remote/api/index.js +3 -0
  333. package/dist/server/src/remote/api/index.js.map +1 -1
  334. package/dist/server/src/remote/api/routes/oauth.js +1 -1
  335. package/dist/server/src/remote/api/routes/oauth.js.map +1 -1
  336. package/dist/server/src/remote/api/routes/train.d.ts +19 -0
  337. package/dist/server/src/remote/api/routes/train.js +47 -0
  338. package/dist/server/src/remote/api/routes/train.js.map +1 -0
  339. package/dist/server/src/rpc/index.d.ts +2 -0
  340. package/dist/server/src/rpc/index.js +5 -0
  341. package/dist/server/src/rpc/index.js.map +1 -1
  342. package/dist/server/src/rpc/interfaces/core.d.ts +21 -0
  343. package/dist/server/src/rpc/server.js +2 -0
  344. package/dist/server/src/rpc/server.js.map +1 -1
  345. package/package.json +8 -8
  346. package/dist/interface/assets/Automation-BLolxsX8.js +0 -3
  347. package/dist/interface/assets/AutomationImport-C_rR9kDq.js +0 -2
  348. package/dist/interface/assets/AutomationStore-whk_TeCG.js +0 -2
  349. package/dist/interface/assets/AutomationStoreDetail-BDDgg3zY.js +0 -2
  350. package/dist/interface/assets/Automations-sEIWIfdE.js +0 -2
  351. package/dist/interface/assets/Camera-BWdUUW_H.css +0 -1
  352. package/dist/interface/assets/Camera-l1DApD8b.js +0 -2
  353. package/dist/interface/assets/Camview-BZS4_jv1.css +0 -1
  354. package/dist/interface/assets/Camview-CWS3VJ1A.js +0 -1
  355. package/dist/interface/assets/Config-C02ndytC.js +0 -2
  356. package/dist/interface/assets/ConfigTriggerGeofence-DnYSaLPb.js +0 -1
  357. package/dist/interface/assets/CuiBottomSheet-Cv_fwvYu.js +0 -1
  358. package/dist/interface/assets/CuiBottomSheet-DsjZEdig.css +0 -1
  359. package/dist/interface/assets/CuiBottomSheet-epGdNqA8.js +0 -1
  360. package/dist/interface/assets/CuiCameraPipCard-Bm6wjm6h.js +0 -1
  361. package/dist/interface/assets/CuiCameraRecordings-4LLV-U85.js +0 -1
  362. package/dist/interface/assets/CuiCameraShares-DqmX3koT.js +0 -1
  363. package/dist/interface/assets/CuiCameraTable-CfyXLqkh.js +0 -1
  364. package/dist/interface/assets/CuiLightControl-CA8MAVex.js +0 -1
  365. package/dist/interface/assets/CuiPluginCard-Bj6cUIJ0.js +0 -2
  366. package/dist/interface/assets/CuiPluginOAuthButton-BmdfXNce.js +0 -2
  367. package/dist/interface/assets/CuiQRCode-CiWTLo9T.js +0 -1
  368. package/dist/interface/assets/CuiSchema-DntSkCO2.js +0 -1
  369. package/dist/interface/assets/CuiTopNavbarItem-DuzCbIZ8.js +0 -1
  370. package/dist/interface/assets/Faces-Bea5pIop.js +0 -1
  371. package/dist/interface/assets/FirstSteps-BNbQsYHq.js +0 -1
  372. package/dist/interface/assets/Floorplan-D9zKFQ2q.js +0 -1
  373. package/dist/interface/assets/Instances-DBphCwLn.js +0 -1
  374. package/dist/interface/assets/Metrics-Dvnil66d.js +0 -9
  375. package/dist/interface/assets/Plugin-1ZS-dcRt.js +0 -1
  376. package/dist/interface/assets/PluginDetail-SCj7WYL6.js +0 -2
  377. package/dist/interface/assets/PluginSearch-CHeix3n8.js +0 -2
  378. package/dist/interface/assets/PluginSearch-CcjGzS5R.js +0 -1
  379. package/dist/interface/assets/Plugins-DS-NZusx.js +0 -1
  380. package/dist/interface/assets/Recordings-Bqb2uV7R.js +0 -1
  381. package/dist/interface/assets/Recordings-D4NzYCO9.css +0 -1
  382. package/dist/interface/assets/Sensors-DU0MBnV1.js +0 -2
  383. package/dist/interface/assets/Settings-Dn-TJCtd.js +0 -1
  384. package/dist/interface/assets/SettingsAccount-CLclTO2m.js +0 -1
  385. package/dist/interface/assets/SettingsAccount-Q2sigi3a.js +0 -1
  386. package/dist/interface/assets/SettingsAppearance-Bo61ZncS.js +0 -1
  387. package/dist/interface/assets/SettingsBackup-D1NER4RI.js +0 -1
  388. package/dist/interface/assets/SettingsMqtt-14d54svj.js +0 -1
  389. package/dist/interface/assets/SettingsRemote-Da_6mcHl.js +0 -2
  390. package/dist/interface/assets/SettingsSystem-BpPrajwG.js +0 -2
  391. package/dist/interface/assets/SettingsUsers-CBItOJic.js +0 -1
  392. package/dist/interface/assets/Updates-CV5MWBHg.js +0 -2
  393. package/dist/interface/assets/Workers-DaHj_0te.js +0 -2
  394. package/dist/interface/assets/api-BTWXbCPQ.css +0 -2
  395. package/dist/interface/assets/api-CdT8ZD-n.js +0 -4
  396. package/dist/interface/assets/cloudHandoff-RfAVMcZZ.js +0 -1
  397. package/dist/interface/assets/main-Qqk3RyYP.css +0 -1
  398. package/dist/interface/assets/main-VmsUT9aF.js +0 -3
  399. package/dist/interface/assets/mqtt-x7JvjSZ0.js +0 -1
  400. package/dist/interface/assets/rooms-iq9Ync9a.js +0 -1
  401. package/dist/interface/assets/types-Br6AbfXl.js +0 -1
  402. package/dist/interface/assets/ungrouped-B-_P9Nxn.js +0 -1
  403. package/dist/interface/assets/ungrouped-DTYy_Pud.css +0 -1
  404. package/dist/interface/assets/useBackupRestore-C9JlDbTt.js +0 -1
  405. package/dist/interface/ha/CuiPluginOAuthButton-D4M7piUp.js +0 -105
  406. package/dist/interface/ha/SettingsAccount-CiyVRy4Y.js +0 -970
  407. package/dist/interface/ha/SettingsNotifications-Bvay7Ob7.js +0 -529
@@ -0,0 +1,250 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { mkdir, readdir, readFile, unlink, writeFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { container } from 'tsyringe';
5
+ const DEFAULT_SETTINGS = { enabled: true, perCameraLimit: 200, minIntervalSeconds: 10, retentionDays: 14 };
6
+ const SUBMIT_ITEM_DELAY_MS = 750;
7
+ const SUBMIT_EMIT_INTERVAL_MS = 1000;
8
+ const RETENTION_SWEEP_INTERVAL_MS = 6 * 60 * 60 * 1000;
9
+ export class TrainingCandidateManager {
10
+ logger;
11
+ dbs;
12
+ imagesDir;
13
+ lastIngestAt = new Map();
14
+ submitQueue = [];
15
+ submitQueued = new Set();
16
+ submitWorker;
17
+ submitProgress = { total: 0, done: 0, failed: 0 };
18
+ lastSubmitEmitAt = 0;
19
+ retentionTimer;
20
+ constructor() {
21
+ this.logger = container.resolve('logger');
22
+ this.dbs = container.resolve('dbs');
23
+ this.imagesDir = join(container.resolve('configService').STORAGE_PATH, 'training-candidates');
24
+ container.registerInstance('trainingCandidateManager', this);
25
+ }
26
+ async register() {
27
+ await mkdir(this.imagesDir, { recursive: true }).catch(() => { });
28
+ this.pruneOrphanImages().catch(() => { });
29
+ this.resetUploadLeftovers().catch(() => { });
30
+ this.pruneExpired().catch(() => { });
31
+ this.retentionTimer = setInterval(() => this.pruneExpired().catch(() => { }), RETENTION_SWEEP_INTERVAL_MS);
32
+ }
33
+ async destroy() {
34
+ clearInterval(this.retentionTimer);
35
+ }
36
+ getSettings() {
37
+ return { ...DEFAULT_SETTINGS, ...this.dbs.settingsDB.get('settings')?.training };
38
+ }
39
+ async updateSettings(patch) {
40
+ const next = { ...this.getSettings(), ...patch };
41
+ await this.dbs.commit(this.dbs.settingsDB, 'settings', (settings) => (settings ? { ...settings, training: next } : undefined));
42
+ if (patch.enabled !== undefined) {
43
+ container.resolve('proxy').coreManager?.publishCoreManagerEvent('trainingSettingsChanged', { enabled: next.enabled });
44
+ }
45
+ return next;
46
+ }
47
+ list(filter) {
48
+ const items = [];
49
+ for (const { value } of this.dbs.trainingCandidatesDB.getRange()) {
50
+ if (filter?.cameraId && value.cameraId !== filter.cameraId)
51
+ continue;
52
+ if (filter?.status && value.status !== filter.status)
53
+ continue;
54
+ items.push(value);
55
+ }
56
+ return items.sort((a, b) => b.createdAt - a.createdAt);
57
+ }
58
+ get(id) {
59
+ return this.dbs.trainingCandidatesDB.get(id);
60
+ }
61
+ imagePath(id) {
62
+ return this.dbs.trainingCandidatesDB.get(id) ? join(this.imagesDir, `${id}.jpg`) : null;
63
+ }
64
+ async update(id, patch) {
65
+ if (!this.dbs.trainingCandidatesDB.get(id))
66
+ return undefined;
67
+ await this.dbs.commit(this.dbs.trainingCandidatesDB, id, (candidate) => candidate ? { ...candidate, ...patch, upload: undefined, uploadError: undefined } : undefined);
68
+ const updated = this.dbs.trainingCandidatesDB.get(id);
69
+ this.emitChanged(updated?.cameraId);
70
+ return updated;
71
+ }
72
+ async queueSubmit(ids) {
73
+ let queued = 0;
74
+ for (const id of ids) {
75
+ const candidate = this.dbs.trainingCandidatesDB.get(id);
76
+ if (candidate?.status !== 'verified' || this.isUploadLocked(candidate) || this.submitQueued.has(id))
77
+ continue;
78
+ await this.dbs.commit(this.dbs.trainingCandidatesDB, id, (c) => (c ? { ...c, upload: 'queued', uploadError: undefined } : undefined));
79
+ this.submitQueued.add(id);
80
+ this.submitQueue.push(id);
81
+ queued++;
82
+ }
83
+ if (queued > 0) {
84
+ this.submitProgress.total += queued;
85
+ this.emitChanged();
86
+ this.emitSubmitProgress(true);
87
+ this.submitWorker ??= this.runSubmitQueue().finally(() => {
88
+ this.submitWorker = undefined;
89
+ });
90
+ }
91
+ return { queued };
92
+ }
93
+ isUploadLocked(candidate) {
94
+ return candidate.upload === 'queued' || candidate.upload === 'uploading';
95
+ }
96
+ currentSubmitProgress() {
97
+ return { active: this.submitWorker !== undefined, ...this.submitProgress };
98
+ }
99
+ async listSubmissions() {
100
+ const items = await container.resolve('cloudApi').trainRoute.list();
101
+ return items.map((s) => ({
102
+ id: s.id,
103
+ labels: s.labels,
104
+ imageBytes: s.image_bytes,
105
+ createdAt: s.created_at,
106
+ usedInWave: s.used_in_wave,
107
+ imageUrl: s.image_url,
108
+ }));
109
+ }
110
+ async removeSubmission(id) {
111
+ await container.resolve('cloudApi').trainRoute.remove(id);
112
+ }
113
+ async remove(id) {
114
+ const candidate = this.dbs.trainingCandidatesDB.get(id);
115
+ if (!candidate)
116
+ return false;
117
+ await this.dbs.trainingCandidatesDB.remove(id);
118
+ await unlink(join(this.imagesDir, `${id}.jpg`)).catch(() => { });
119
+ this.emitChanged(candidate.cameraId);
120
+ return true;
121
+ }
122
+ async ingest(payload) {
123
+ const settings = this.getSettings();
124
+ if (!settings.enabled)
125
+ return 'disabled';
126
+ if (payload.boxes.length === 0 || payload.scene.length === 0)
127
+ return 'skip';
128
+ const last = this.lastIngestAt.get(payload.cameraId) ?? 0;
129
+ if (payload.capturedAt - last < settings.minIntervalSeconds * 1000)
130
+ return 'skip';
131
+ this.lastIngestAt.set(payload.cameraId, payload.capturedAt);
132
+ const id = randomUUID();
133
+ await writeFile(join(this.imagesDir, `${id}.jpg`), payload.scene);
134
+ this.dbs.trainingCandidatesDB.put(id, {
135
+ id,
136
+ cameraId: payload.cameraId,
137
+ eventId: payload.eventId,
138
+ createdAt: payload.capturedAt,
139
+ status: 'new',
140
+ boxes: payload.boxes,
141
+ });
142
+ await this.enforceCameraLimit(payload.cameraId, settings.perCameraLimit);
143
+ this.emitChanged(payload.cameraId);
144
+ return 'stored';
145
+ }
146
+ async enforceCameraLimit(cameraId, limit) {
147
+ // verified candidates are the user's work, eviction only eats unreviewed ones
148
+ const candidates = this.list({ cameraId });
149
+ const evictable = candidates.filter((c) => c.status !== 'verified');
150
+ const overflow = candidates.length - limit;
151
+ if (overflow <= 0)
152
+ return;
153
+ for (const candidate of evictable.slice(-overflow)) {
154
+ await this.dbs.trainingCandidatesDB.remove(candidate.id);
155
+ await unlink(join(this.imagesDir, `${candidate.id}.jpg`)).catch(() => { });
156
+ }
157
+ }
158
+ async pruneExpired() {
159
+ const cutoff = Date.now() - this.getSettings().retentionDays * 24 * 60 * 60 * 1000;
160
+ let removed = 0;
161
+ for (const { key, value } of this.dbs.trainingCandidatesDB.getRange()) {
162
+ if (value.status !== 'new' || value.createdAt >= cutoff || this.isUploadLocked(value))
163
+ continue;
164
+ const id = String(key);
165
+ await this.dbs.trainingCandidatesDB.remove(id);
166
+ await unlink(join(this.imagesDir, `${id}.jpg`)).catch(() => { });
167
+ removed++;
168
+ }
169
+ if (removed > 0) {
170
+ this.logger.debug(`Training: pruned ${removed} expired candidates`);
171
+ this.emitChanged();
172
+ }
173
+ }
174
+ async pruneOrphanImages() {
175
+ const files = await readdir(this.imagesDir).catch(() => []);
176
+ if (files.length === 0)
177
+ return;
178
+ const referenced = new Set();
179
+ for (const { key } of this.dbs.trainingCandidatesDB.getRange())
180
+ referenced.add(String(key));
181
+ for (const file of files) {
182
+ if (referenced.has(file.replace(/\.jpg$/, '')))
183
+ continue;
184
+ await unlink(join(this.imagesDir, file)).catch(() => { });
185
+ }
186
+ }
187
+ async runSubmitQueue() {
188
+ const cloudApi = container.resolve('cloudApi');
189
+ for (;;) {
190
+ const id = this.submitQueue.shift();
191
+ if (!id)
192
+ break;
193
+ this.submitQueued.delete(id);
194
+ const candidate = this.dbs.trainingCandidatesDB.get(id);
195
+ if (candidate?.status !== 'verified')
196
+ continue;
197
+ await this.dbs.commit(this.dbs.trainingCandidatesDB, id, (c) => (c ? { ...c, upload: 'uploading' } : undefined));
198
+ try {
199
+ const image = await readFile(join(this.imagesDir, `${id}.jpg`));
200
+ await cloudApi.trainRoute.submit(candidate.boxes, candidate.createdAt, image);
201
+ await this.dbs.trainingCandidatesDB.remove(id);
202
+ await unlink(join(this.imagesDir, `${id}.jpg`)).catch(() => { });
203
+ this.submitProgress.done++;
204
+ }
205
+ catch (error) {
206
+ const message = error?.message ?? String(error);
207
+ await this.dbs.commit(this.dbs.trainingCandidatesDB, id, (c) => (c ? { ...c, upload: 'failed', uploadError: message } : undefined));
208
+ this.submitProgress.failed++;
209
+ }
210
+ const now = Date.now();
211
+ if (now - this.lastSubmitEmitAt >= SUBMIT_EMIT_INTERVAL_MS || this.submitQueue.length === 0) {
212
+ this.lastSubmitEmitAt = now;
213
+ this.emitChanged(candidate.cameraId);
214
+ this.emitSubmitProgress(true);
215
+ }
216
+ if (this.submitQueue.length > 0)
217
+ await new Promise((resolve) => setTimeout(resolve, SUBMIT_ITEM_DELAY_MS));
218
+ }
219
+ this.emitSubmitProgress(false);
220
+ this.submitProgress = { total: 0, done: 0, failed: 0 };
221
+ }
222
+ async resetUploadLeftovers() {
223
+ for (const { key, value } of this.dbs.trainingCandidatesDB.getRange()) {
224
+ const id = String(key);
225
+ if (value.submittedAt || value.status === 'ignored') {
226
+ await this.dbs.trainingCandidatesDB.remove(id);
227
+ await unlink(join(this.imagesDir, `${id}.jpg`)).catch(() => { });
228
+ continue;
229
+ }
230
+ if (this.isUploadLocked(value)) {
231
+ await this.dbs.commit(this.dbs.trainingCandidatesDB, id, (c) => (c ? { ...c, upload: undefined } : undefined));
232
+ }
233
+ }
234
+ }
235
+ emitSubmitProgress(active) {
236
+ this.trainingNamespace()?.emitSubmitProgress({ active, ...this.submitProgress });
237
+ }
238
+ trainingNamespace() {
239
+ try {
240
+ return container.resolve('socketService').namespaces.get('/training');
241
+ }
242
+ catch {
243
+ return undefined;
244
+ }
245
+ }
246
+ emitChanged(cameraId) {
247
+ this.trainingNamespace()?.emitCandidatesChanged(cameraId);
248
+ }
249
+ }
250
+ //# sourceMappingURL=trainingCandidateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trainingCandidateManager.js","sourceRoot":"","sources":["../../../../src/manager/trainingCandidateManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Notification, NotifierDevice } from '@camera.ui/sdk';
2
+ import type { DBTrainingCandidateBox } from '../api/database/types.js';
2
3
  export type NotificationSourceKind = 'plugin' | 'system' | 'automation';
3
4
  export interface NotificationSource {
4
5
  id: string;
@@ -26,6 +27,7 @@ export declare const SystemNotificationTypeId: {
26
27
  readonly UpdateAvailable: "system.update.available";
27
28
  readonly AppUpdateAvailable: "system.app.update_available";
28
29
  readonly WorkerUpdateAvailable: "system.worker.update_available";
30
+ readonly CloudReauth: "system.cloud.reauth_required";
29
31
  };
30
32
  export type SystemNotificationTypeId = (typeof SystemNotificationTypeId)[keyof typeof SystemNotificationTypeId];
31
33
  export declare const SYSTEM_NOTIFICATION_TYPES: readonly SystemNotificationType[];
@@ -40,3 +42,20 @@ export interface NotifierDeviceWithSource extends NotifierDevice {
40
42
  pluginId: string;
41
43
  pluginName: string;
42
44
  }
45
+ export interface TrainingSubmitResult {
46
+ queued: number;
47
+ }
48
+ export interface TrainingSubmitProgress {
49
+ active: boolean;
50
+ total: number;
51
+ done: number;
52
+ failed: number;
53
+ }
54
+ export interface TrainingSubmission {
55
+ id: string;
56
+ labels: DBTrainingCandidateBox[];
57
+ imageBytes: number;
58
+ createdAt: string;
59
+ usedInWave?: string;
60
+ imageUrl?: string;
61
+ }
@@ -5,6 +5,7 @@ export const SystemNotificationTypeId = {
5
5
  UpdateAvailable: 'system.update.available',
6
6
  AppUpdateAvailable: 'system.app.update_available',
7
7
  WorkerUpdateAvailable: 'system.worker.update_available',
8
+ CloudReauth: 'system.cloud.reauth_required',
8
9
  };
9
10
  export const SYSTEM_NOTIFICATION_TYPES = [
10
11
  { type: SystemNotificationTypeId.PluginUpdateAvailable, label: 'Plugin updates available' },
@@ -13,5 +14,6 @@ export const SYSTEM_NOTIFICATION_TYPES = [
13
14
  { type: SystemNotificationTypeId.UpdateAvailable, label: 'Server update available' },
14
15
  { type: SystemNotificationTypeId.AppUpdateAvailable, label: 'App update available' },
15
16
  { type: SystemNotificationTypeId.WorkerUpdateAvailable, label: 'Worker updates available' },
17
+ { type: SystemNotificationTypeId.CloudReauth, label: 'Cloud sign-in required' },
16
18
  ];
17
19
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/manager/types.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,EAAE,gCAAgC;IACvD,aAAa,EAAE,uBAAuB;IACtC,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EAAE,yBAAyB;IAC1C,kBAAkB,EAAE,6BAA6B;IACjD,qBAAqB,EAAE,gCAAgC;CAC/C,CAAC;AAIX,MAAM,CAAC,MAAM,yBAAyB,GAAsC;IAC1E,EAAE,IAAI,EAAE,wBAAwB,CAAC,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC3F,EAAE,IAAI,EAAE,wBAAwB,CAAC,aAAa,EAAE,KAAK,EAAE,4BAA4B,EAAE;IACrF,EAAE,IAAI,EAAE,wBAAwB,CAAC,kBAAkB,EAAE,KAAK,EAAE,iCAAiC,EAAE;IAC/F,EAAE,IAAI,EAAE,wBAAwB,CAAC,eAAe,EAAE,KAAK,EAAE,yBAAyB,EAAE;IACpF,EAAE,IAAI,EAAE,wBAAwB,CAAC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACpF,EAAE,IAAI,EAAE,wBAAwB,CAAC,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAE;CACnF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/manager/types.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,EAAE,gCAAgC;IACvD,aAAa,EAAE,uBAAuB;IACtC,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EAAE,yBAAyB;IAC1C,kBAAkB,EAAE,6BAA6B;IACjD,qBAAqB,EAAE,gCAAgC;IACvD,WAAW,EAAE,8BAA8B;CACnC,CAAC;AAIX,MAAM,CAAC,MAAM,yBAAyB,GAAsC;IAC1E,EAAE,IAAI,EAAE,wBAAwB,CAAC,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC3F,EAAE,IAAI,EAAE,wBAAwB,CAAC,aAAa,EAAE,KAAK,EAAE,4BAA4B,EAAE;IACrF,EAAE,IAAI,EAAE,wBAAwB,CAAC,kBAAkB,EAAE,KAAK,EAAE,iCAAiC,EAAE;IAC/F,EAAE,IAAI,EAAE,wBAAwB,CAAC,eAAe,EAAE,KAAK,EAAE,yBAAyB,EAAE;IACpF,EAAE,IAAI,EAAE,wBAAwB,CAAC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACpF,EAAE,IAAI,EAAE,wBAAwB,CAAC,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IAC3F,EAAE,IAAI,EAAE,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE;CACvE,CAAC"}
@@ -13,6 +13,7 @@ export declare class CloudCredentialStore {
13
13
  peek(): Promise<ServerOAuthCredentials | null>;
14
14
  invalidate(): Promise<void>;
15
15
  private markNeedsReauth;
16
+ private notifyReauthNeeded;
16
17
  clear(): Promise<void>;
17
18
  private refresh;
18
19
  }
@@ -1,3 +1,6 @@
1
+ import { Severity } from '@camera.ui/sdk';
2
+ import { container } from 'tsyringe';
3
+ import { SystemNotificationTypeId } from '../../manager/types.js';
1
4
  import { RemoteService } from '../../api/services/remote.service.js';
2
5
  import { cloudFetch } from './instance.js';
3
6
  export class NotAuthorizedError extends Error {
@@ -61,6 +64,27 @@ export class CloudCredentialStore {
61
64
  return;
62
65
  }
63
66
  await this.persist({ ...creds, access_token: '', refresh_token: '', expires_at: 0, needs_reauth: true });
67
+ this.notifyReauthNeeded();
68
+ }
69
+ notifyReauthNeeded() {
70
+ try {
71
+ container
72
+ .resolve('proxy')
73
+ .notificationManager.notify({
74
+ source: { kind: 'system', id: SystemNotificationTypeId.CloudReauth },
75
+ notification: {
76
+ title: 'Cloud sign-in required',
77
+ body: 'This server was signed out of cameraui.com. Reconnect it under Settings, Remote.',
78
+ severity: Severity.Warn,
79
+ tag: SystemNotificationTypeId.CloudReauth,
80
+ adminOnly: true,
81
+ },
82
+ })
83
+ .catch(() => { });
84
+ }
85
+ catch {
86
+ // proxy not registered yet, the remote settings badge still shows it
87
+ }
64
88
  }
65
89
  async clear() {
66
90
  await this.remote.patchCloud({ oauth: undefined });
@@ -1 +1 @@
1
- {"version":3,"file":"credentialStore.js","sourceRoot":"","sources":["../../../../../src/remote/api/credentialStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentialStore.js","sourceRoot":"","sources":["../../../../../src/remote/api/credentialStore.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { CloudCredentialStore } from './credentialStore.js';
2
2
  import { OAuthRoute } from './routes/oauth.js';
3
3
  import { ServerRoute } from './routes/server.js';
4
+ import { TrainRoute } from './routes/train.js';
4
5
  export declare class CloudApi {
5
6
  readonly oauthRoute: OAuthRoute;
6
7
  readonly serverRoute: ServerRoute;
8
+ readonly trainRoute: TrainRoute;
7
9
  readonly credentialStore: CloudCredentialStore;
8
10
  constructor();
9
11
  }
@@ -2,15 +2,18 @@ import { container } from 'tsyringe';
2
2
  import { CloudCredentialStore } from './credentialStore.js';
3
3
  import { OAuthRoute } from './routes/oauth.js';
4
4
  import { ServerRoute } from './routes/server.js';
5
+ import { TrainRoute } from './routes/train.js';
5
6
  export class CloudApi {
6
7
  oauthRoute;
7
8
  serverRoute;
9
+ trainRoute;
8
10
  credentialStore;
9
11
  constructor() {
10
12
  container.registerInstance('cloudApi', this);
11
13
  this.credentialStore = new CloudCredentialStore();
12
14
  this.oauthRoute = new OAuthRoute(this.credentialStore);
13
15
  this.serverRoute = new ServerRoute(this.credentialStore);
16
+ this.trainRoute = new TrainRoute(this.credentialStore);
14
17
  }
15
18
  }
16
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/remote/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,QAAQ;IACH,UAAU,CAAa;IACvB,WAAW,CAAc;IACzB,eAAe,CAAuB;IAEtD;QACE,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/remote/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,QAAQ;IACH,UAAU,CAAa;IACvB,WAAW,CAAc;IACzB,UAAU,CAAa;IACvB,eAAe,CAAuB;IAEtD;QACE,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { hostname } from 'node:os';
2
2
  import { assertResponseOk, cloudFetch } from '../instance.js';
3
3
  const CLIENT_ID = 'camera-ui-server';
4
- const SCOPES = 'server:register server:update server:share server:unregister tunnel:connect';
4
+ const SCOPES = 'server:register server:update server:share server:unregister tunnel:connect train:submit';
5
5
  export class OAuthRoute {
6
6
  credentialStore;
7
7
  constructor(credentialStore) {
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../../../src/remote/api/routes/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../../../src/remote/api/routes/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { DBTrainingCandidateBox } from '../../../api/database/types.js';
2
+ import type { CloudCredentialStore } from '../credentialStore.js';
3
+ export interface CloudTrainSubmission {
4
+ id: string;
5
+ status: string;
6
+ labels: DBTrainingCandidateBox[];
7
+ image_bytes: number;
8
+ created_at: string;
9
+ used_in_wave?: string;
10
+ image_url?: string;
11
+ }
12
+ export declare class TrainRoute {
13
+ private credentialStore;
14
+ constructor(credentialStore: CloudCredentialStore);
15
+ submit(boxes: DBTrainingCandidateBox[], capturedAt: number, image: Buffer): Promise<string>;
16
+ list(): Promise<CloudTrainSubmission[]>;
17
+ remove(id: string): Promise<void>;
18
+ private fetchCloud;
19
+ }
@@ -0,0 +1,47 @@
1
+ import { assertResponseOk, cloudFetch } from '../instance.js';
2
+ export class TrainRoute {
3
+ credentialStore;
4
+ constructor(credentialStore) {
5
+ this.credentialStore = credentialStore;
6
+ }
7
+ async submit(boxes, capturedAt, image) {
8
+ const createRes = await this.fetchCloud()('/api/v1/train/submissions', {
9
+ method: 'POST',
10
+ headers: { 'Content-Type': 'application/json' },
11
+ body: JSON.stringify({ boxes, captured_at: capturedAt }),
12
+ });
13
+ await assertResponseOk(createRes);
14
+ const created = (await createRes.json());
15
+ if (image.byteLength > created.max_image_bytes) {
16
+ throw new Error('Image exceeds the submission size limit');
17
+ }
18
+ const uploadRes = await fetch(created.upload_url, {
19
+ method: 'PUT',
20
+ headers: created.upload_headers,
21
+ body: new Uint8Array(image),
22
+ });
23
+ if (!uploadRes.ok) {
24
+ throw new Error(`Image upload failed (${uploadRes.status})`);
25
+ }
26
+ const completeRes = await this.fetchCloud()(`/api/v1/train/submissions/${created.id}/complete`, { method: 'POST' });
27
+ await assertResponseOk(completeRes);
28
+ return created.id;
29
+ }
30
+ async list() {
31
+ const res = await this.fetchCloud()('/api/v1/train/submissions', { method: 'GET' });
32
+ await assertResponseOk(res);
33
+ return (await res.json());
34
+ }
35
+ async remove(id) {
36
+ const res = await this.fetchCloud()(`/api/v1/train/submissions/${id}`, { method: 'DELETE' });
37
+ await assertResponseOk(res);
38
+ }
39
+ fetchCloud() {
40
+ return cloudFetch({
41
+ target: 'cloud',
42
+ credentialStore: this.credentialStore,
43
+ requiredScopes: ['train:submit'],
44
+ });
45
+ }
46
+ }
47
+ //# sourceMappingURL=train.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"train.js","sourceRoot":"","sources":["../../../../../../src/remote/api/routes/train.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAsB9D,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,eAAqC;QAArC,oBAAe,GAAf,eAAe,CAAsB;IAAG,CAAC;IAEtD,KAAK,CAAC,MAAM,CAAC,KAA+B,EAAE,UAAkB,EAAE,KAAa;QACpF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,2BAA2B,EAAE;YACrE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAkC,CAAC;QAE1E,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,6BAA6B,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACpH,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,EAAE,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAU;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,6BAA6B,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7F,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEO,UAAU;QAChB,OAAO,UAAU,CAAC;YAChB,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,CAAC,cAAc,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -5,6 +5,7 @@ import { DiscoveryManager } from '../manager/discoveryManager.js';
5
5
  import { DownloadManager } from '../manager/downloadManager.js';
6
6
  import { NotificationManager } from '../manager/notificationManager.js';
7
7
  import { TerminalManager } from '../manager/terminalManager.js';
8
+ import { TrainingCandidateManager } from '../manager/trainingCandidateManager.js';
8
9
  import { NATS } from './server.js';
9
10
  import type { RPCClient } from '@camera.ui/rpc';
10
11
  import type { ProxyAuth } from './interfaces/config.js';
@@ -17,6 +18,7 @@ export declare class ProxyServer {
17
18
  discoveryManager: DiscoveryManager;
18
19
  downloadManager: DownloadManager;
19
20
  notificationManager: NotificationManager;
21
+ trainingCandidateManager: TrainingCandidateManager;
20
22
  terminalManager: TerminalManager;
21
23
  auth: ProxyAuth;
22
24
  private api?;
@@ -10,6 +10,7 @@ import { DiscoveryManager } from '../manager/discoveryManager.js';
10
10
  import { DownloadManager } from '../manager/downloadManager.js';
11
11
  import { NotificationManager } from '../manager/notificationManager.js';
12
12
  import { TerminalManager } from '../manager/terminalManager.js';
13
+ import { TrainingCandidateManager } from '../manager/trainingCandidateManager.js';
13
14
  import { NATS } from './server.js';
14
15
  import { generateCredentials, safeAsync } from './utils.js';
15
16
  export class ProxyServer {
@@ -21,6 +22,7 @@ export class ProxyServer {
21
22
  discoveryManager;
22
23
  downloadManager;
23
24
  notificationManager;
25
+ trainingCandidateManager;
24
26
  terminalManager;
25
27
  auth = {
26
28
  cluster: generateCredentials(),
@@ -53,6 +55,7 @@ export class ProxyServer {
53
55
  this.downloadManager = new DownloadManager();
54
56
  this.notificationManager = new NotificationManager();
55
57
  this.terminalManager = new TerminalManager();
58
+ this.trainingCandidateManager = new TrainingCandidateManager();
56
59
  // this.api.setMaxListeners(this.api.getMaxListeners() + 1);
57
60
  // this.api.once(API_EVENT.SHUTDOWN, this.close.bind(this));
58
61
  }
@@ -121,6 +124,7 @@ export class ProxyServer {
121
124
  await this.discoveryManager.register();
122
125
  await this.downloadManager.register();
123
126
  await this.notificationManager.register();
127
+ await this.trainingCandidateManager.register();
124
128
  await this.terminalManager.register();
125
129
  }
126
130
  }
@@ -131,6 +135,7 @@ export class ProxyServer {
131
135
  await safeAsync(this.downloadManager.destroy());
132
136
  await safeAsync(this.discoveryManager.destroy());
133
137
  await safeAsync(this.notificationManager.destroy());
138
+ await safeAsync(this.trainingCandidateManager.destroy());
134
139
  }
135
140
  await safeAsync(this.server.stop());
136
141
  // proxy is unset when startup failed before initialize() (e.g. pairing)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rpc/index.ts"],"names":[],"mappings":"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"}