@camera.ui/server 0.0.111 → 0.0.113

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 (341) hide show
  1. package/dist/interface/assets/{404-CGV2uv4y.js → 404-CZtDF9in.js} +1 -1
  2. package/dist/interface/assets/{About-Cc2eFlW5.js → About-BzuuHdW1.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-EjUhiapF.js → Adminpanel-uj7eTmlN.js} +1 -1
  4. package/dist/interface/assets/Automation-D0ps_z9e.js +2 -0
  5. package/dist/interface/assets/AutomationImport-CR4Vsxkb.js +2 -0
  6. package/dist/interface/assets/AutomationStore-BcMX7WbG.js +2 -0
  7. package/dist/interface/assets/AutomationStore-Q25Okhz8.css +1 -0
  8. package/dist/interface/assets/AutomationStoreDetail--egqUOqn.css +1 -0
  9. package/dist/interface/assets/AutomationStoreDetail-D6Ugj8ba.js +2 -0
  10. package/dist/interface/assets/Automations-DBACrYHy.js +2 -0
  11. package/dist/interface/assets/{Camera-C3Il4X2T.js → Camera-Cf4QZbsx.js} +2 -2
  12. package/dist/interface/assets/{CameraConsole-70m5hucZ.js → CameraConsole-uD4aWou8.js} +1 -1
  13. package/dist/interface/assets/{Cameras-BJUWRm26.js → Cameras-DbBU5mou.js} +2 -2
  14. package/dist/interface/assets/{Camview-Gxca3bvT.css → Camview-CDM4Q_tc.css} +1 -1
  15. package/dist/interface/assets/Camview-DD9jLT7-.js +1 -0
  16. package/dist/interface/assets/Config-B9jI0lTQ.js +2 -0
  17. package/dist/interface/assets/{ConfigActionCameraControl-DBRh1R9m.js → ConfigActionCameraControl-D4hJLWmj.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionNotification-MJAViQFR.js → ConfigActionNotification-B5cCmBXr.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionPlugin-C2gSPDim.js → ConfigActionPlugin-B7YAbFlf.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionSensor-Dv7Hgx92.js → ConfigActionSensor-D_Dt1qtt.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionSnapshot-CB6IQ_jP.js → ConfigActionSnapshot-ClyCQuB3.js} +1 -1
  22. package/dist/interface/assets/{ConfigConditionIfElse-Nd0_qDVA.js → ConfigConditionIfElse-Bhd2FYyz.js} +1 -1
  23. package/dist/interface/assets/{ConfigConditionSensorState-CHYw1D90.js → ConfigConditionSensorState-x0M0kHwL.js} +1 -1
  24. package/dist/interface/assets/{ConfigConditionSwitch-DsJEOPx0.js → ConfigConditionSwitch-CC0w-Hvy.js} +1 -1
  25. package/dist/interface/assets/{ConfigTriggerDetection-C-e6Z1m9.js → ConfigTriggerDetection-DWjlecON.js} +1 -1
  26. package/dist/interface/assets/ConfigTriggerGeofence-CTqptMUN.js +1 -0
  27. package/dist/interface/assets/{ConfigTriggerSensor-C9DsLW_Z.js → ConfigTriggerSensor-DuCtavZo.js} +1 -1
  28. package/dist/interface/assets/{ConfigTriggerSystem-CdOgSvDy.js → ConfigTriggerSystem-D1oGAhLn.js} +1 -1
  29. package/dist/interface/assets/{Console-bCie-JmB.js → Console-DrDqDUtO.js} +1 -1
  30. package/dist/interface/assets/{CuiAvatar-Bbdxpgvs.js → CuiAvatar-of_eVQsv.js} +1 -1
  31. package/dist/interface/assets/{CuiBottomSheet-2SNSjqOZ.js → CuiBottomSheet-B7aQ7GCw.js} +1 -1
  32. package/dist/interface/assets/CuiBottomSheet-DKUg_g5x.js +1 -0
  33. package/dist/interface/assets/CuiCameraCard-IyJNZMGs.js +1 -0
  34. package/dist/interface/assets/{CuiCameraPipCard-BMxMzolT.js → CuiCameraPipCard-KUBxGPoU.js} +1 -1
  35. package/dist/interface/assets/{CuiCameraRecordings-DLjYt8vJ.js → CuiCameraRecordings-iWAFGo8e.js} +1 -1
  36. package/dist/interface/assets/{CuiCameraShares-CLN2wuHG.js → CuiCameraShares-BCMYN11A.js} +1 -1
  37. package/dist/interface/assets/{CuiCameraSnapshot-C7wIpD9K.js → CuiCameraSnapshot-DTtvEMy1.js} +1 -1
  38. package/dist/interface/assets/{CuiCameraTable-CCpYHBTn.js → CuiCameraTable-B7g53tPM.js} +1 -1
  39. package/dist/interface/assets/{CuiImage-CoVi1BKR.js → CuiImage-B97QDAl7.js} +1 -1
  40. package/dist/interface/assets/{CuiMarkdownContent-YieurDkL.js → CuiMarkdownContent-DaJ8HzaP.js} +1 -1
  41. package/dist/interface/assets/CuiMarkdownContent-qIS8eQHX.js +1 -0
  42. package/dist/interface/assets/{CuiMenu-vSJpyg_1.js → CuiMenu-Ds6GufVn.js} +1 -1
  43. package/dist/interface/assets/{CuiPluginCard-CwGKyEU6.js → CuiPluginCard-D1SylQbM.js} +2 -2
  44. package/dist/interface/assets/CuiPluginCategoryChip-CdGrTCxH.css +1 -0
  45. package/dist/interface/assets/CuiPluginCategoryChip-rfdhCEi-.js +1 -0
  46. package/dist/interface/assets/{CuiPluginOAuthButton-CxNqrBe7.js → CuiPluginOAuthButton-X8ZGFPwW.js} +2 -2
  47. package/dist/interface/assets/CuiPluginTrustBadge-QHTLaN1n.css +1 -0
  48. package/dist/interface/assets/CuiPluginTrustBadge-YhfqGTyR.js +1 -0
  49. package/dist/interface/assets/{CuiQRCode-CP6aDzF5.js → CuiQRCode-D_31ri5b.js} +1 -1
  50. package/dist/interface/assets/{CuiRecordingsGrid-BNyITEKD.js → CuiRecordingsGrid-CzMzhUXb.js} +1 -1
  51. package/dist/interface/assets/{CuiSchema-Bdy2raxw.js → CuiSchema-CfqOJmDH.js} +1 -1
  52. package/dist/interface/assets/{Faces-DufdNYrc.js → Faces-IVmqcGuF.js} +1 -1
  53. package/dist/interface/assets/FirstSteps-Boec1bzd.js +1 -0
  54. package/dist/interface/assets/{Instances-CxgKUsJh.js → Instances-kmkRiBrV.js} +1 -1
  55. package/dist/interface/assets/{Logs-CJcq3xd6.js → Logs-DzR8mmLu.js} +2 -2
  56. package/dist/interface/assets/{Menu-BlYf1LF3.js → Menu-Cl-biyd7.js} +1 -1
  57. package/dist/interface/assets/{OAuthDeviceFlow-k6_zfcw_.js → OAuthDeviceFlow-Cp9uZWm1.js} +1 -1
  58. package/dist/interface/assets/Plugin-CeLrucXT.js +1 -0
  59. package/dist/interface/assets/Plugin-Yv0ZmTNZ.css +1 -0
  60. package/dist/interface/assets/{PluginConsole-CQebF4NZ.js → PluginConsole-BdbmROpF.js} +1 -1
  61. package/dist/interface/assets/PluginDetail-DKywYzmS.js +2 -0
  62. package/dist/interface/assets/PluginDetail-DbYxVe3g.css +1 -0
  63. package/dist/interface/assets/{PluginSchema-CcWTcoz_.js → PluginSchema-CWcq67pj.js} +1 -1
  64. package/dist/interface/assets/PluginSearch-BC1L0-VN.js +1 -0
  65. package/dist/interface/assets/PluginSearch-DCuLwE3v.js +2 -0
  66. package/dist/interface/assets/PluginSearch-XjGr5qdW.css +1 -0
  67. package/dist/interface/assets/Plugins-DMLQY_6J.js +1 -0
  68. package/dist/interface/assets/{Recordings-BgqhrYcF.js → Recordings--XaVJZJi.js} +1 -1
  69. package/dist/interface/assets/{Settings-BVa4xU_p.js → Settings-BljKDhYY.js} +1 -1
  70. package/dist/interface/assets/SettingsAccount-DFMOh1ci.js +1 -0
  71. package/dist/interface/assets/{SettingsAccount-UKbQLW6n.js → SettingsAccount-DKHO4mDj.js} +1 -1
  72. package/dist/interface/assets/SettingsAppearance-DzG2tlwK.js +1 -0
  73. package/dist/interface/assets/{SettingsAppearance-e45pjRF6.js → SettingsAppearance-V5aeQ9c8.js} +1 -1
  74. package/dist/interface/assets/{SettingsBackup-t2irnG2Z.js → SettingsBackup-CfOHDar8.js} +1 -1
  75. package/dist/interface/assets/{SettingsNotifications-te4LKEdZ.js → SettingsNotifications-BZ1IXj0a.js} +1 -1
  76. package/dist/interface/assets/{SettingsRecordings-x4yRgxJm.js → SettingsRecordings-BsJ9z-RE.js} +1 -1
  77. package/dist/interface/assets/SettingsRemote-Bf8bqXYs.js +1 -0
  78. package/dist/interface/assets/SettingsSystem-obAYrm8J.js +2 -0
  79. package/dist/interface/assets/{SettingsUsers-DLAYh9IA.js → SettingsUsers-Ciu1ry18.js} +1 -1
  80. package/dist/interface/assets/{Terminal-BsdUon5-.js → Terminal-CD9he5xW.js} +1 -1
  81. package/dist/interface/assets/VersionsHandler-Dpo-L314.js +7 -0
  82. package/dist/interface/assets/Workers-DCx1wSq5.css +1 -0
  83. package/dist/interface/assets/Workers-DiIBLgfr.js +2 -0
  84. package/dist/interface/assets/account-DqOHQKv8.js +1 -0
  85. package/dist/interface/assets/alert-circle-azHizGIK.js +1 -0
  86. package/dist/interface/assets/api-CbBOEbKQ.js +1 -0
  87. package/dist/interface/assets/api-aSYFKxo6.js +2 -0
  88. package/dist/interface/assets/api-vCJ1T8Ow.css +2 -0
  89. package/dist/interface/assets/{auth-DJ1WgC3s.js → auth-cdPNNpNC.js} +1 -1
  90. package/dist/interface/assets/automationBlueprint-DMjszOs4.js +1 -0
  91. package/dist/interface/assets/automations-E7vwN3kw.js +1 -0
  92. package/dist/interface/assets/{backup-DYBEA8gj.js → backup-Co1bwdSv.js} +1 -1
  93. package/dist/interface/assets/bell-ring-CenQn4Yt.js +1 -0
  94. package/dist/interface/assets/bug-DPw8k4Lk.js +1 -0
  95. package/dist/interface/assets/{cameras-WikE4nxe.js → cameras-CvJDLEZ3.js} +1 -1
  96. package/dist/interface/assets/{cameras.schema-BULBdfmS.js → cameras.schema-Clwro_L9.js} +1 -1
  97. package/dist/interface/assets/cctv-CBtg_v6o.js +1 -0
  98. package/dist/interface/assets/check-circle-BauXcL6H.js +1 -0
  99. package/dist/interface/assets/clock-outline-MhJC2-0d.js +1 -0
  100. package/dist/interface/assets/cloudHandoff-Bym-XqR1.js +1 -0
  101. package/dist/interface/assets/{deviceId-DMh1VcHg.js → deviceId-OXLTtG-_.js} +1 -1
  102. package/dist/interface/assets/github-DLhaVazy.js +1 -0
  103. package/dist/interface/assets/{hasPermission-DdAdlKls.js → hasPermission-P1TgpAur.js} +1 -1
  104. package/dist/interface/assets/{instances-BBnYdgRc.js → instances-DwnEOXk1.js} +1 -1
  105. package/dist/interface/assets/{locale-qn_8MsnX.js → locale-BWvy9Nlz.js} +1 -1
  106. package/dist/interface/assets/main-CIorSaV7.js +3 -0
  107. package/dist/interface/assets/motion-sensor-DD8SfD-m.js +1 -0
  108. package/dist/interface/assets/nodeDefinitions-Dvawtk76.js +1 -0
  109. package/dist/interface/assets/{notifications-DGRbcf65.js → notifications-DHmx6O_s.js} +1 -1
  110. package/dist/interface/assets/platformLabels-D-cF6OTP.js +1 -0
  111. package/dist/interface/assets/plugins-NVAodP6s.js +1 -0
  112. package/dist/interface/assets/puzzle-filled-C1z2qa5-.js +1 -0
  113. package/dist/interface/assets/refresh-rounded-Bqiw9DUu.js +1 -0
  114. package/dist/interface/assets/{round-restart-alt-wyrnMpa4.js → round-restart-alt-c8MQjhLh.js} +1 -1
  115. package/dist/interface/assets/router-i0r3QZvk.js +2 -0
  116. package/dist/interface/assets/server-CRxodRik.js +1 -0
  117. package/dist/interface/assets/shares-4w6GDwjp.js +1 -0
  118. package/dist/interface/assets/source-branch-Cd8fHY0E.js +1 -0
  119. package/dist/interface/assets/{theme-DhiUIeo3.js → theme-DhaXe7yA.js} +1 -1
  120. package/dist/interface/assets/types-6RvFwckU.js +1 -0
  121. package/dist/interface/assets/types-BXo-JDGR.js +1 -0
  122. package/dist/interface/assets/types-v-mK9gdq.css +1 -0
  123. package/dist/interface/assets/{useBiometricCredentials-DDyhIy7O.js → useBiometricCredentials-BGRyKe48.js} +1 -1
  124. package/dist/interface/assets/{useCameraOptions-CoogpQnN.js → useCameraOptions-CO1HD_gL.js} +1 -1
  125. package/dist/interface/assets/useCuiDialog-DHktK-mZ.js +2 -0
  126. package/dist/interface/assets/{useFileDownload-CSek7CzK.js → useFileDownload-Cp1oH80I.js} +1 -1
  127. package/dist/interface/assets/{useLogsSocket-rG2BaLWl.js → useLogsSocket-OnTDnkPr.js} +1 -1
  128. package/dist/interface/assets/{useStreamStatus-BdN05nfE.js → useStreamStatus-N--czepD.js} +1 -1
  129. package/dist/interface/assets/useUserOptions-CPkl1O0A.js +1 -0
  130. package/dist/interface/assets/{users.schema-Bz59q-My.js → users.schema-BIL9DqRo.js} +1 -1
  131. package/dist/interface/assets/{view-grid-Cs5VWmxE.js → view-grid-B0KB2pRf.js} +1 -1
  132. package/dist/interface/assets/webhook-Dgi5u5S_.js +1 -0
  133. package/dist/interface/index.html +36 -30
  134. package/dist/interface/sw.js +1 -1
  135. package/dist/interface/{workbox-5f44db27.js → workbox-778a14ff.js} +1 -1
  136. package/dist/server/package.json +1 -1
  137. package/dist/server/src/api/controllers/automations.controller.d.ts +3 -1
  138. package/dist/server/src/api/controllers/automations.controller.js +26 -1
  139. package/dist/server/src/api/controllers/automations.controller.js.map +1 -1
  140. package/dist/server/src/api/controllers/plugins.controller.d.ts +4 -0
  141. package/dist/server/src/api/controllers/plugins.controller.js +181 -56
  142. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  143. package/dist/server/src/api/controllers/server.controller.js +3 -2
  144. package/dist/server/src/api/controllers/server.controller.js.map +1 -1
  145. package/dist/server/src/api/controllers/workers.controller.d.ts +9 -4
  146. package/dist/server/src/api/controllers/workers.controller.js +132 -9
  147. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  148. package/dist/server/src/api/database/index.d.ts +0 -1
  149. package/dist/server/src/api/database/index.js +0 -14
  150. package/dist/server/src/api/database/index.js.map +1 -1
  151. package/dist/server/src/api/database/types.d.ts +29 -1
  152. package/dist/server/src/api/routes/automations.routes.js +23 -1
  153. package/dist/server/src/api/routes/automations.routes.js.map +1 -1
  154. package/dist/server/src/api/routes/workers.routes.js +61 -7
  155. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  156. package/dist/server/src/api/schemas/automations.schema.d.ts +8 -0
  157. package/dist/server/src/api/schemas/automations.schema.js +6 -0
  158. package/dist/server/src/api/schemas/automations.schema.js.map +1 -1
  159. package/dist/server/src/api/schemas/config.schema.d.ts +8 -2
  160. package/dist/server/src/api/schemas/config.schema.js +8 -1
  161. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  162. package/dist/server/src/api/schemas/plugins.schema.d.ts +1 -0
  163. package/dist/server/src/api/schemas/plugins.schema.js +1 -0
  164. package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
  165. package/dist/server/src/api/schemas/remote.schema.d.ts +1 -1
  166. package/dist/server/src/api/schemas/workers.schema.d.ts +19 -0
  167. package/dist/server/src/api/schemas/workers.schema.js +19 -0
  168. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  169. package/dist/server/src/api/services/backup.service.js +7 -1
  170. package/dist/server/src/api/services/backup.service.js.map +1 -1
  171. package/dist/server/src/api/services/plugins.service.d.ts +2 -0
  172. package/dist/server/src/api/services/plugins.service.js +25 -3
  173. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  174. package/dist/server/src/api/services/server.service.d.ts +0 -2
  175. package/dist/server/src/api/services/server.service.js +0 -12
  176. package/dist/server/src/api/services/server.service.js.map +1 -1
  177. package/dist/server/src/api/services/workers.service.d.ts +15 -0
  178. package/dist/server/src/api/services/workers.service.js +95 -2
  179. package/dist/server/src/api/services/workers.service.js.map +1 -1
  180. package/dist/server/src/api/types/index.d.ts +64 -0
  181. package/dist/server/src/api/utils/cert.js +43 -9
  182. package/dist/server/src/api/utils/cert.js.map +1 -1
  183. package/dist/server/src/api/websocket/nsp/server.d.ts +0 -2
  184. package/dist/server/src/api/websocket/nsp/server.js +1 -8
  185. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  186. package/dist/server/src/api/websocket/nsp/workers.d.ts +0 -3
  187. package/dist/server/src/api/websocket/nsp/workers.js +4 -17
  188. package/dist/server/src/api/websocket/nsp/workers.js.map +1 -1
  189. package/dist/server/src/camera/decoder/worker.d.ts +3 -0
  190. package/dist/server/src/camera/decoder/worker.js +55 -34
  191. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  192. package/dist/server/src/main.js +5 -3
  193. package/dist/server/src/main.js.map +1 -1
  194. package/dist/server/src/manager/downloadManager.d.ts +6 -0
  195. package/dist/server/src/manager/downloadManager.js +162 -3
  196. package/dist/server/src/manager/downloadManager.js.map +1 -1
  197. package/dist/server/src/plugins/bundle.d.ts +2 -0
  198. package/dist/server/src/plugins/bundle.js +24 -0
  199. package/dist/server/src/plugins/bundle.js.map +1 -0
  200. package/dist/server/src/plugins/config-store.d.ts +16 -0
  201. package/dist/server/src/plugins/config-store.js +33 -0
  202. package/dist/server/src/plugins/config-store.js.map +1 -0
  203. package/dist/server/src/plugins/index.d.ts +1 -1
  204. package/dist/server/src/plugins/index.js +3 -17
  205. package/dist/server/src/plugins/index.js.map +1 -1
  206. package/dist/server/src/plugins/main-file.d.ts +2 -0
  207. package/dist/server/src/plugins/main-file.js +24 -0
  208. package/dist/server/src/plugins/main-file.js.map +1 -0
  209. package/dist/server/src/plugins/plugin.d.ts +0 -1
  210. package/dist/server/src/plugins/plugin.js +7 -25
  211. package/dist/server/src/plugins/plugin.js.map +1 -1
  212. package/dist/server/src/plugins/runtime/base.d.ts +23 -7
  213. package/dist/server/src/plugins/runtime/base.js +32 -29
  214. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  215. package/dist/server/src/plugins/runtime/index.d.ts +2 -3
  216. package/dist/server/src/plugins/runtime/index.js.map +1 -1
  217. package/dist/server/src/plugins/runtime/node/child.d.ts +1 -0
  218. package/dist/server/src/plugins/runtime/node/child.js +24 -4
  219. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  220. package/dist/server/src/plugins/runtime/node/configDb.d.ts +15 -0
  221. package/dist/server/src/plugins/runtime/node/configDb.js +18 -0
  222. package/dist/server/src/plugins/runtime/node/configDb.js.map +1 -0
  223. package/dist/server/src/plugins/runtime/node/index.d.ts +2 -2
  224. package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
  225. package/dist/server/src/plugins/runtime/node/pluginApi.d.ts +2 -2
  226. package/dist/server/src/plugins/runtime/node/pluginApi.js.map +1 -1
  227. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +2 -0
  228. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  229. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +5 -0
  230. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  231. package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js +6 -2
  232. package/dist/server/src/plugins/runtime/node/proxy/downloadManager.js.map +1 -1
  233. package/dist/server/src/plugins/runtime/node/proxy/fileServe.d.ts +13 -0
  234. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js +82 -0
  235. package/dist/server/src/plugins/runtime/node/proxy/fileServe.js.map +1 -0
  236. package/dist/server/src/plugins/runtime/node/remoteUrls.d.ts +1 -0
  237. package/dist/server/src/plugins/runtime/node/remoteUrls.js +32 -0
  238. package/dist/server/src/plugins/runtime/node/remoteUrls.js.map +1 -0
  239. package/dist/server/src/plugins/runtime/node/storage.d.ts +2 -2
  240. package/dist/server/src/plugins/runtime/node/storage.js +1 -1
  241. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
  242. package/dist/server/src/plugins/runtime/node/storageController.d.ts +2 -2
  243. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  244. package/dist/server/src/plugins/runtime/python/child.py +16 -4
  245. package/dist/server/src/plugins/runtime/python/config_db.py +42 -0
  246. package/dist/server/src/plugins/runtime/python/index.d.ts +2 -2
  247. package/dist/server/src/plugins/runtime/python/index.js +3 -1
  248. package/dist/server/src/plugins/runtime/python/index.js.map +1 -1
  249. package/dist/server/src/plugins/runtime/python/namespaces.py +2 -0
  250. package/dist/server/src/plugins/runtime/python/plugin_api.py +2 -2
  251. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  252. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +6 -0
  253. package/dist/server/src/plugins/runtime/python/remote_urls.py +42 -0
  254. package/dist/server/src/plugins/runtime/python/storage.py +2 -2
  255. package/dist/server/src/plugins/runtime/python/storage_controller.py +2 -2
  256. package/dist/server/src/plugins/types.d.ts +2 -1
  257. package/dist/server/src/plugins/types.js +1 -0
  258. package/dist/server/src/plugins/types.js.map +1 -1
  259. package/dist/server/src/plugins/worker.d.ts +8 -0
  260. package/dist/server/src/plugins/worker.js +104 -2
  261. package/dist/server/src/plugins/worker.js.map +1 -1
  262. package/dist/server/src/rpc/index.d.ts +2 -1
  263. package/dist/server/src/rpc/index.js +43 -23
  264. package/dist/server/src/rpc/index.js.map +1 -1
  265. package/dist/server/src/rpc/interfaces/download.d.ts +10 -0
  266. package/dist/server/src/rpc/namespaces.d.ts +5 -1
  267. package/dist/server/src/rpc/namespaces.js +12 -2
  268. package/dist/server/src/rpc/namespaces.js.map +1 -1
  269. package/dist/server/src/rpc/server.d.ts +16 -2
  270. package/dist/server/src/rpc/server.js +146 -17
  271. package/dist/server/src/rpc/server.js.map +1 -1
  272. package/dist/server/src/rpc/utils.d.ts +1 -1
  273. package/dist/server/src/rpc/utils.js +2 -0
  274. package/dist/server/src/rpc/utils.js.map +1 -1
  275. package/dist/server/src/services/config/constants.js +4 -1
  276. package/dist/server/src/services/config/constants.js.map +1 -1
  277. package/dist/server/src/services/config/index.d.ts +1 -0
  278. package/dist/server/src/services/config/index.js +16 -10
  279. package/dist/server/src/services/config/index.js.map +1 -1
  280. package/dist/server/src/services/config/types.d.ts +5 -1
  281. package/dist/server/src/utils/automation-registry/index.d.ts +17 -0
  282. package/dist/server/src/utils/automation-registry/index.js +58 -0
  283. package/dist/server/src/utils/automation-registry/index.js.map +1 -0
  284. package/dist/server/src/utils/platform.d.ts +2 -0
  285. package/dist/server/src/utils/platform.js +26 -0
  286. package/dist/server/src/utils/platform.js.map +1 -0
  287. package/dist/server/src/utils/plugin-registry/index.d.ts +27 -0
  288. package/dist/server/src/utils/plugin-registry/index.js +127 -0
  289. package/dist/server/src/utils/plugin-registry/index.js.map +1 -0
  290. package/dist/server/src/workers/agent.d.ts +15 -9
  291. package/dist/server/src/workers/agent.js +157 -64
  292. package/dist/server/src/workers/agent.js.map +1 -1
  293. package/dist/server/src/workers/capabilities/frame-decoding.d.ts +7 -3
  294. package/dist/server/src/workers/capabilities/frame-decoding.js +44 -10
  295. package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
  296. package/dist/server/src/workers/capabilities/handler.d.ts +1 -0
  297. package/dist/server/src/workers/capabilities/plugin-host.d.ts +23 -0
  298. package/dist/server/src/workers/capabilities/plugin-host.js +160 -0
  299. package/dist/server/src/workers/capabilities/plugin-host.js.map +1 -0
  300. package/dist/server/src/workers/manager.d.ts +28 -3
  301. package/dist/server/src/workers/manager.js +316 -92
  302. package/dist/server/src/workers/manager.js.map +1 -1
  303. package/dist/server/src/workers/pairing.d.ts +3 -0
  304. package/dist/server/src/workers/pairing.js +80 -0
  305. package/dist/server/src/workers/pairing.js.map +1 -0
  306. package/dist/server/src/workers/types.d.ts +42 -17
  307. package/dist/server/src/workers/types.js +4 -0
  308. package/dist/server/src/workers/types.js.map +1 -1
  309. package/package.json +1 -1
  310. package/dist/interface/assets/Automation-C7HuyjXk.js +0 -2
  311. package/dist/interface/assets/Automations-DOj8Eo03.js +0 -1
  312. package/dist/interface/assets/Camview-BqFeqFU1.js +0 -1
  313. package/dist/interface/assets/Config--CF46OKO.js +0 -2
  314. package/dist/interface/assets/ConfigTriggerGeofence-DGnBxTWd.js +0 -1
  315. package/dist/interface/assets/CuiBottomSheet-DX9ynJj_.js +0 -1
  316. package/dist/interface/assets/CuiCameraCard-CXO5aDTJ.js +0 -1
  317. package/dist/interface/assets/FirstSteps-Bpu4QLhF.js +0 -1
  318. package/dist/interface/assets/Plugin-CHdZvbiP.css +0 -1
  319. package/dist/interface/assets/Plugin-DcwR4dBy.js +0 -1
  320. package/dist/interface/assets/Plugins-DfMxKm_j.js +0 -2
  321. package/dist/interface/assets/Plugins-s1k811lf.css +0 -1
  322. package/dist/interface/assets/SettingsAccount-BcPNz9jC.js +0 -1
  323. package/dist/interface/assets/SettingsAppearance-De_E9UCe.js +0 -1
  324. package/dist/interface/assets/SettingsRemote-CBLPWHM6.js +0 -1
  325. package/dist/interface/assets/SettingsSystem-Du3S8gps.js +0 -2
  326. package/dist/interface/assets/VersionsHandler-DF_kclOb.js +0 -7
  327. package/dist/interface/assets/Workers-CXvuE4Bn.js +0 -1
  328. package/dist/interface/assets/api-BB9AG_h5.css +0 -2
  329. package/dist/interface/assets/api-BWWcvHf5.js +0 -2
  330. package/dist/interface/assets/api-DY4FSNX7.js +0 -1
  331. package/dist/interface/assets/automations-wQnuqfmi.js +0 -1
  332. package/dist/interface/assets/cloudHandoff-zXwtzo8e.js +0 -1
  333. package/dist/interface/assets/github-DNzKZdHG.js +0 -1
  334. package/dist/interface/assets/main-CjUbwZ3z.js +0 -3
  335. package/dist/interface/assets/nodeDefinitions-blmt-d7H.js +0 -1
  336. package/dist/interface/assets/plugins-tQniunmN.js +0 -1
  337. package/dist/interface/assets/router-CvWvXFyk.js +0 -2
  338. package/dist/interface/assets/server-CmXhhpSW.js +0 -1
  339. package/dist/interface/assets/shares-ZKyJZapA.js +0 -1
  340. package/dist/interface/assets/types-C9iWhZtk.js +0 -1
  341. package/dist/interface/assets/useCuiDialog-C50obC48.js +0 -2
@@ -1,3 +1,4 @@
1
+ import { Logger } from '@camera.ui/common/logger';
1
2
  import { sleep } from '@camera.ui/common/utils';
2
3
  import { fork } from 'node:child_process';
3
4
  import { nodeDecoderPath } from '../../utils/path.js';
@@ -6,14 +7,16 @@ export class FrameDecodingHandler {
6
7
  natsServer;
7
8
  configService;
8
9
  logger;
10
+ forwardLog;
9
11
  capability = WorkerCapability.FrameDecoding;
10
12
  cameras = new Map();
11
13
  restartTimers = new Map();
12
14
  isClosed = false;
13
- constructor(natsServer, configService, logger) {
15
+ constructor(natsServer, configService, logger, forwardLog) {
14
16
  this.natsServer = natsServer;
15
17
  this.configService = configService;
16
18
  this.logger = logger;
19
+ this.forwardLog = forwardLog;
17
20
  }
18
21
  async start(id, spec) {
19
22
  this.logger.log(`Starting camera: ${spec.cameraName} (${id})`);
@@ -24,6 +27,7 @@ export class FrameDecodingHandler {
24
27
  const managed = {
25
28
  cameraId: id,
26
29
  config: spec,
30
+ logBuffer: '',
27
31
  };
28
32
  this.cameras.set(id, managed);
29
33
  try {
@@ -64,6 +68,16 @@ export class FrameDecodingHandler {
64
68
  getActiveWorkIds() {
65
69
  return Array.from(this.cameras.keys());
66
70
  }
71
+ getActiveProcessIds() {
72
+ const pids = [];
73
+ for (const managed of this.cameras.values()) {
74
+ const pid = managed.frameWorkerProcess?.pid;
75
+ if (pid) {
76
+ pids.push(pid);
77
+ }
78
+ }
79
+ return pids;
80
+ }
67
81
  forkFrameWorker(config) {
68
82
  const proxyAuth = this.natsServer.localAuth;
69
83
  const processName = 'camera.ui - Frame Worker (remote)';
@@ -105,10 +119,10 @@ export class FrameDecodingHandler {
105
119
  this.attemptRestart(config);
106
120
  });
107
121
  child.stdout?.on('data', (data) => {
108
- this.logChildOutput(data, config.cameraName);
122
+ this.handleChildOutput(data, config, child.pid);
109
123
  });
110
124
  child.stderr?.on('data', (data) => {
111
- this.logChildOutput(data, config.cameraName);
125
+ this.handleChildOutput(data, config, child.pid);
112
126
  });
113
127
  return child;
114
128
  }
@@ -151,7 +165,6 @@ export class FrameDecodingHandler {
151
165
  if (!current) {
152
166
  return;
153
167
  }
154
- // Already running (restarted by master via RPC)
155
168
  if (current.frameWorkerProcess) {
156
169
  return;
157
170
  }
@@ -167,14 +180,35 @@ export class FrameDecodingHandler {
167
180
  }, 5000);
168
181
  this.restartTimers.set(config.cameraId, timer);
169
182
  }
170
- logChildOutput(data, label) {
171
- const lines = data.toString().split('\n');
183
+ handleChildOutput(data, config, pid) {
184
+ const managed = this.cameras.get(config.cameraId);
185
+ if (!managed) {
186
+ return;
187
+ }
188
+ managed.logBuffer += data.toString();
189
+ const lines = managed.logBuffer.split('\n');
190
+ managed.logBuffer = lines.pop() ?? '';
172
191
  for (const line of lines) {
173
- const trimmed = line.trim();
174
- if (trimmed) {
175
- this.logger.trace(`[${label}] ${trimmed}`);
176
- }
192
+ this.processLogLine(line, config, pid);
193
+ }
194
+ }
195
+ processLogLine(line, config, pid) {
196
+ const trimmed = line.trim();
197
+ if (!trimmed || trimmed.includes('returning true from eof_received')) {
198
+ return;
177
199
  }
200
+ this.logger.trace(`[${config.cameraName}] ${trimmed}`);
201
+ const entry = Logger.parseChildLog(trimmed) ?? {
202
+ timestamp: Date.now(),
203
+ level: 'raw',
204
+ prefix: '',
205
+ message: trimmed,
206
+ targetId: config.cameraId,
207
+ targetType: 'camera',
208
+ source: 'child',
209
+ processId: pid,
210
+ };
211
+ this.forwardLog?.(entry);
178
212
  }
179
213
  }
180
214
  //# sourceMappingURL=frame-decoding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame-decoding.js","sourceRoot":"","sources":["../../../../../src/workers/capabilities/frame-decoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-decoding.js","sourceRoot":"","sources":["../../../../../src/workers/capabilities/frame-decoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAgB/C,MAAM,OAAO,oBAAoB;IAQZ;IACA;IACA;IACA;IAVH,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAAC;IAEpD,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC3C,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,QAAQ,GAAG,KAAK,CAAC;IAEzB,YACmB,UAAgB,EAChB,aAA4B,EAC5B,MAAc,EACd,UAAsC;QAHtC,eAAU,GAAV,UAAU,CAAM;QAChB,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAA4B;IACtD,CAAC;IAEG,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,IAAwB;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,UAAU,KAAK,EAAE,GAAG,CAAC,CAAC;QAE/D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,OAAO,GAAkB;YAC7B,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE9B,IAAI,CAAC;YACH,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAU;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,GAAG,CAAC,CAAC;QAEzE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,YAAY,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACnD,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACzC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAEM,gBAAgB;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,mBAAmB;QACxB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;YAC5C,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,MAA0B;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5C,MAAM,WAAW,GAAG,mCAAmC,CAAC;QAExD,MAAM,GAAG,GAA2B;YAClC,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,UAAU,EAAE,SAAS,CAAC,IAAI;YAC1B,cAAc,EAAE,SAAS,CAAC,QAAQ;YAClC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YACpD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzD,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvD,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrD,YAAY,EAAE,MAAM,CAAC,WAAW;SACjC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE;YACjD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;YAC/B,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,UAAU,sBAAsB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACvF,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;oBAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,IAAI,EAAE,CAAC,WAAW,CAAC;oBACnB,MAAM,EAAE,CAAC,WAAW,CAAC;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,UAAU,kBAAkB,IAAI,aAAa,MAAM,GAAG,CAAC,CAAC;YACnG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAmB;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,MAA0B;QAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,UAAU,QAAQ,CAAC,CAAC;QAEjF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpF,8CAA8C;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,MAA0B,EAAE,GAAY;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,MAA0B,EAAE,GAAY;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAa,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI;YACvD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -5,4 +5,5 @@ export interface CapabilityHandler<C extends WorkerCapability = WorkerCapability
5
5
  stop(id: string): Promise<void>;
6
6
  stopAll(): Promise<void>;
7
7
  getActiveWorkIds(): string[];
8
+ getActiveProcessIds(): number[];
8
9
  }
@@ -0,0 +1,23 @@
1
+ import { WorkerCapability } from '../types.js';
2
+ import type { LogEntry, Logger } from '@camera.ui/common/logger';
3
+ import type { ConfigService } from '../../services/config/index.js';
4
+ import type { RemotePluginConfig } from '../types.js';
5
+ import type { CapabilityHandler } from './handler.js';
6
+ export declare class PluginHostHandler implements CapabilityHandler<WorkerCapability.PluginHost> {
7
+ private readonly configService;
8
+ private readonly logger;
9
+ private readonly forwardLog;
10
+ readonly capability = WorkerCapability.PluginHost;
11
+ private plugins;
12
+ private isClosed;
13
+ constructor(configService: ConfigService, logger: Logger, forwardLog: (entry: LogEntry) => void);
14
+ start(id: string, spec: RemotePluginConfig): Promise<void>;
15
+ stop(id: string): Promise<void>;
16
+ stopAll(): Promise<void>;
17
+ getActiveWorkIds(): string[];
18
+ getActiveProcessIds(): number[];
19
+ private provisionAndStart;
20
+ private scheduleRetry;
21
+ private ensureInstalled;
22
+ private buildRuntimePlugin;
23
+ }
@@ -0,0 +1,160 @@
1
+ import { pathExists, readJson } from 'fs-extra/esm';
2
+ import { dirname, join } from 'node:path';
3
+ import { WorkersService } from '../../api/services/workers.service.js';
4
+ import { extractBundledPlugin } from '../../plugins/bundle.js';
5
+ import { PluginManager } from '../../plugins/index.js';
6
+ import { resolvePluginMain } from '../../plugins/main-file.js';
7
+ import { RuntimeFactory } from '../../plugins/runtime/index.js';
8
+ import { extractPackage, installDependencies } from '../../utils/npm/index.js';
9
+ import { describePlatformRequirement, isPlatformCompatible } from '../../utils/platform.js';
10
+ import { WorkerCapability } from '../types.js';
11
+ const PROVISION_RETRY_MS = 30_000;
12
+ const CRASH_RESTART_MS = 5_000;
13
+ export class PluginHostHandler {
14
+ configService;
15
+ logger;
16
+ forwardLog;
17
+ capability = WorkerCapability.PluginHost;
18
+ plugins = new Map();
19
+ isClosed = false;
20
+ constructor(configService, logger, forwardLog) {
21
+ this.configService = configService;
22
+ this.logger = logger;
23
+ this.forwardLog = forwardLog;
24
+ }
25
+ async start(id, spec) {
26
+ const existing = this.plugins.get(id);
27
+ if (existing) {
28
+ await this.stop(id);
29
+ }
30
+ this.logger.log(`Hosting plugin: ${spec.displayName} (${spec.pluginName}@${spec.version})`);
31
+ const managed = { spec, stopped: false };
32
+ this.plugins.set(id, managed);
33
+ void this.provisionAndStart(managed);
34
+ }
35
+ async stop(id) {
36
+ const managed = this.plugins.get(id);
37
+ if (!managed) {
38
+ return;
39
+ }
40
+ this.logger.log(`Stopping hosted plugin: ${managed.spec.displayName} (${id})`);
41
+ managed.stopped = true;
42
+ this.plugins.delete(id);
43
+ if (managed.retryTimer) {
44
+ clearTimeout(managed.retryTimer);
45
+ managed.retryTimer = undefined;
46
+ }
47
+ if (managed.runtime) {
48
+ await managed.runtime.stop();
49
+ managed.runtime.cleanup();
50
+ managed.runtime = undefined;
51
+ }
52
+ }
53
+ async stopAll() {
54
+ this.isClosed = true;
55
+ const stopPromises = Array.from(this.plugins.keys()).map((id) => this.stop(id));
56
+ await Promise.allSettled(stopPromises);
57
+ }
58
+ getActiveWorkIds() {
59
+ return Array.from(this.plugins.keys());
60
+ }
61
+ getActiveProcessIds() {
62
+ const pids = [];
63
+ for (const managed of this.plugins.values()) {
64
+ const pid = managed.runtime?.getPID();
65
+ if (pid) {
66
+ pids.push(pid);
67
+ }
68
+ }
69
+ return pids;
70
+ }
71
+ async provisionAndStart(managed) {
72
+ const { spec } = managed;
73
+ try {
74
+ const installPath = await this.ensureInstalled(spec);
75
+ if (managed.stopped || this.isClosed) {
76
+ return;
77
+ }
78
+ const plugin = await this.buildRuntimePlugin(spec, installPath);
79
+ const runtime = RuntimeFactory.createRuntime(plugin);
80
+ runtime.logForwarder = this.forwardLog;
81
+ runtime.once('exit', () => {
82
+ if (managed.stopped || this.isClosed) {
83
+ return;
84
+ }
85
+ this.logger.warn(`Hosted plugin ${spec.displayName} exited — restarting in ${CRASH_RESTART_MS / 1000}s`);
86
+ this.scheduleRetry(managed, CRASH_RESTART_MS);
87
+ });
88
+ managed.runtime = runtime;
89
+ await runtime.start();
90
+ this.logger.log(`Hosted plugin started: ${spec.displayName} (${spec.pluginName}@${spec.version})`);
91
+ }
92
+ catch (error) {
93
+ managed.runtime?.cleanup();
94
+ managed.runtime = undefined;
95
+ if (managed.stopped || this.isClosed) {
96
+ return;
97
+ }
98
+ this.logger.error(`Failed to provision/start plugin ${spec.pluginName}: ${error.message} — retrying in ${PROVISION_RETRY_MS / 1000}s`);
99
+ this.scheduleRetry(managed, PROVISION_RETRY_MS);
100
+ }
101
+ }
102
+ scheduleRetry(managed, delayMs) {
103
+ if (managed.retryTimer) {
104
+ clearTimeout(managed.retryTimer);
105
+ }
106
+ managed.retryTimer = setTimeout(() => {
107
+ managed.retryTimer = undefined;
108
+ if (managed.stopped || this.isClosed) {
109
+ return;
110
+ }
111
+ void this.provisionAndStart(managed);
112
+ }, delayMs);
113
+ }
114
+ async ensureInstalled(spec) {
115
+ const installPath = join(this.configService.PLUGINS_INSTALL_PATH, spec.pluginName);
116
+ const installed = await readJson(join(installPath, 'package.json')).catch(() => null);
117
+ if (installed?.version !== spec.version) {
118
+ this.logger.log(`Installing ${spec.pluginName}@${spec.version} (was: ${installed?.version ?? 'not installed'})`);
119
+ await extractPackage(`${spec.pluginName}@${spec.version}`, installPath);
120
+ await installDependencies(installPath, (chunk) => this.logger.debug(chunk.toString().trim()));
121
+ await extractBundledPlugin(installPath);
122
+ }
123
+ return installPath;
124
+ }
125
+ async buildRuntimePlugin(spec, installPath) {
126
+ const pjson = (await readJson(join(installPath, 'package.json')));
127
+ if (!isPlatformCompatible(pjson.os, pjson.cpu)) {
128
+ throw new Error(`plugin requires ${describePlatformRequirement(pjson.os, pjson.cpu)}, this worker is ${process.platform}/${process.arch}`);
129
+ }
130
+ let main = resolvePluginMain(pjson);
131
+ let mainPath = join(installPath, dirname(main));
132
+ const bundlePackageJsonPath = join(installPath, 'bundle', 'package.json');
133
+ if (await pathExists(bundlePackageJsonPath)) {
134
+ const bundlePjson = (await readJson(bundlePackageJsonPath));
135
+ main = resolvePluginMain(bundlePjson);
136
+ mainPath = join(installPath, 'bundle', dirname(main));
137
+ }
138
+ const contractFile = await PluginManager.loadContractFile(installPath);
139
+ const pythonVersion = contractFile ? PluginManager.normalizeContract(contractFile, spec.pluginName).pythonVersion : undefined;
140
+ const masterAddress = new WorkersService().getWorkerConnection()?.master;
141
+ return {
142
+ id: spec.pluginId,
143
+ pluginName: spec.pluginName,
144
+ displayName: spec.displayName,
145
+ main,
146
+ mainPath,
147
+ installPath,
148
+ isPython: main.endsWith('.py'),
149
+ isGo: main.endsWith('.go'),
150
+ info: { installedVersion: pjson.version },
151
+ contract: { pythonVersion },
152
+ remoteEnv: {
153
+ CAMERAUI_MASTER_ADDRESS: masterAddress,
154
+ CAMERAUI_RTSP_USERNAME: spec.rtspUsername,
155
+ CAMERAUI_RTSP_PASSWORD: spec.rtspPassword,
156
+ },
157
+ };
158
+ }
159
+ }
160
+ //# sourceMappingURL=plugin-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-host.js","sourceRoot":"","sources":["../../../../../src/workers/capabilities/plugin-host.ts"],"names":[],"mappings":"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"}
@@ -3,28 +3,53 @@ export declare class WorkerManager {
3
3
  private readonly logger;
4
4
  private readonly configService;
5
5
  private readonly camerasService;
6
+ private readonly workersService;
6
7
  private readonly proxyServer;
7
8
  private workers;
8
- private unsubscribeHeartbeat?;
9
+ private desired;
10
+ private closeHeartbeatHandler?;
9
11
  private unsubscribeDisconnect?;
12
+ private unsubscribeLogs?;
10
13
  private timeoutCheckInterval?;
14
+ private addressWarned;
15
+ private workloadRevision;
16
+ private active;
11
17
  constructor();
18
+ isEnabled(): boolean;
12
19
  start(): Promise<void>;
20
+ enable(reconcileAcceptor?: boolean): Promise<void>;
21
+ disable(): Promise<void>;
13
22
  stop(): Promise<void>;
23
+ private teardown;
14
24
  getWorkers(): WorkerInfo[];
15
25
  isWorkerOnline(agentId: string): boolean;
26
+ isWorkerKnown(agentId: string): boolean;
16
27
  getAssignment(cameraId: string): string | undefined;
17
28
  isAssignedToWorker(cameraId: string): boolean;
18
29
  restartWorker(agentId: string): Promise<void>;
19
30
  assignCamera(cameraId: string, agentId: string): Promise<void>;
20
31
  unassignCamera(cameraId: string): Promise<void>;
21
- startRemoteCamera(cameraId: string): Promise<void>;
22
- stopRemoteCamera(cameraId: string): Promise<void>;
32
+ noteWorkerPaired(agentId: string, name: string): Promise<void>;
33
+ assignPlugin(pluginName: string, agentId: string): Promise<void>;
34
+ unassignPlugin(pluginName: string): Promise<void>;
35
+ getPluginAssignment(pluginName: string): string | undefined;
36
+ removeWorker(agentId: string): Promise<void>;
37
+ desireFrameDecoding(cameraId: string): string | undefined;
38
+ clearFrameDecoding(cameraId: string): void;
39
+ desirePluginHost(pluginName: string): string | undefined;
40
+ clearPluginHost(pluginName: string): void;
41
+ private clearWorkload;
23
42
  private createWorkerProxy;
43
+ private nudge;
44
+ private restartFrameWorker;
45
+ private restartPluginWorker;
24
46
  private buildRemoteCameraConfig;
25
47
  private handleHeartbeat;
48
+ private desiredFor;
49
+ private seedKnownWorkers;
26
50
  private handleGracefulDisconnect;
27
51
  private checkTimeouts;
52
+ private handleForwardedLog;
28
53
  private emitWorkerUpdate;
29
54
  private onWorkerOnline;
30
55
  private onWorkerOffline;