@camstack/types 0.1.39 → 0.1.41

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 (323) hide show
  1. package/dist/addon/base-addon.d.ts +14 -2
  2. package/dist/addon/base-addon.d.ts.map +1 -1
  3. package/dist/addon/durable-state.d.ts +33 -0
  4. package/dist/addon/durable-state.d.ts.map +1 -0
  5. package/dist/capabilities/accessories.cap.d.ts +56 -8
  6. package/dist/capabilities/accessories.cap.d.ts.map +1 -1
  7. package/dist/capabilities/addon-settings.cap.d.ts +1 -0
  8. package/dist/capabilities/addon-settings.cap.d.ts.map +1 -1
  9. package/dist/capabilities/addons.cap.d.ts +187 -1
  10. package/dist/capabilities/addons.cap.d.ts.map +1 -1
  11. package/dist/capabilities/advanced-notifier.cap.d.ts +4 -0
  12. package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
  13. package/dist/capabilities/air-quality-sensor.cap.d.ts +56 -0
  14. package/dist/capabilities/air-quality-sensor.cap.d.ts.map +1 -0
  15. package/dist/capabilities/alarm-panel.cap.d.ts +154 -0
  16. package/dist/capabilities/alarm-panel.cap.d.ts.map +1 -0
  17. package/dist/capabilities/alerts.cap.d.ts +5 -5
  18. package/dist/capabilities/ambient-light-sensor.cap.d.ts +39 -0
  19. package/dist/capabilities/ambient-light-sensor.cap.d.ts.map +1 -0
  20. package/dist/capabilities/audio-analyzer.cap.d.ts +2 -2
  21. package/dist/capabilities/automation-control.cap.d.ts +65 -0
  22. package/dist/capabilities/automation-control.cap.d.ts.map +1 -0
  23. package/dist/capabilities/battery.cap.d.ts +30 -1
  24. package/dist/capabilities/battery.cap.d.ts.map +1 -1
  25. package/dist/capabilities/binary.cap.d.ts +40 -0
  26. package/dist/capabilities/binary.cap.d.ts.map +1 -0
  27. package/dist/capabilities/brightness.cap.d.ts +3 -2
  28. package/dist/capabilities/brightness.cap.d.ts.map +1 -1
  29. package/dist/capabilities/broker.cap.d.ts +291 -0
  30. package/dist/capabilities/broker.cap.d.ts.map +1 -0
  31. package/dist/capabilities/button.cap.d.ts +27 -0
  32. package/dist/capabilities/button.cap.d.ts.map +1 -0
  33. package/dist/capabilities/camera-credentials.cap.d.ts +1 -0
  34. package/dist/capabilities/camera-credentials.cap.d.ts.map +1 -1
  35. package/dist/capabilities/camera-pipeline-config.cap.d.ts +43 -0
  36. package/dist/capabilities/camera-pipeline-config.cap.d.ts.map +1 -0
  37. package/dist/capabilities/camera-streams.cap.d.ts +147 -10
  38. package/dist/capabilities/camera-streams.cap.d.ts.map +1 -1
  39. package/dist/capabilities/capability-definition.d.ts +15 -0
  40. package/dist/capabilities/capability-definition.d.ts.map +1 -1
  41. package/dist/capabilities/carbon-monoxide.cap.d.ts +33 -0
  42. package/dist/capabilities/carbon-monoxide.cap.d.ts.map +1 -0
  43. package/dist/capabilities/climate-control.cap.d.ts +183 -0
  44. package/dist/capabilities/climate-control.cap.d.ts.map +1 -0
  45. package/dist/capabilities/color.cap.d.ts +186 -0
  46. package/dist/capabilities/color.cap.d.ts.map +1 -0
  47. package/dist/capabilities/connectivity.cap.d.ts +37 -0
  48. package/dist/capabilities/connectivity.cap.d.ts.map +1 -0
  49. package/dist/capabilities/consumables.cap.d.ts +105 -0
  50. package/dist/capabilities/consumables.cap.d.ts.map +1 -0
  51. package/dist/capabilities/contact.cap.d.ts +41 -0
  52. package/dist/capabilities/contact.cap.d.ts.map +1 -0
  53. package/dist/capabilities/control.cap.d.ts +167 -0
  54. package/dist/capabilities/control.cap.d.ts.map +1 -0
  55. package/dist/capabilities/cover.cap.d.ts +104 -0
  56. package/dist/capabilities/cover.cap.d.ts.map +1 -0
  57. package/dist/capabilities/custom-actions.d.ts +6 -0
  58. package/dist/capabilities/custom-actions.d.ts.map +1 -1
  59. package/dist/capabilities/decoder.cap.d.ts +1 -1
  60. package/dist/capabilities/device-adoption.cap.d.ts +203 -0
  61. package/dist/capabilities/device-adoption.cap.d.ts.map +1 -0
  62. package/dist/capabilities/device-discovery.cap.d.ts +44 -143
  63. package/dist/capabilities/device-discovery.cap.d.ts.map +1 -1
  64. package/dist/capabilities/device-manager.cap.d.ts +469 -0
  65. package/dist/capabilities/device-manager.cap.d.ts.map +1 -1
  66. package/dist/capabilities/device-ops.cap.d.ts +30 -0
  67. package/dist/capabilities/device-ops.cap.d.ts.map +1 -1
  68. package/dist/capabilities/device-provider.cap.d.ts +36 -0
  69. package/dist/capabilities/device-provider.cap.d.ts.map +1 -1
  70. package/dist/capabilities/device-status.cap.d.ts +1 -0
  71. package/dist/capabilities/device-status.cap.d.ts.map +1 -1
  72. package/dist/capabilities/doorbell.cap.d.ts +1 -0
  73. package/dist/capabilities/doorbell.cap.d.ts.map +1 -1
  74. package/dist/capabilities/enum-sensor.cap.d.ts +60 -0
  75. package/dist/capabilities/enum-sensor.cap.d.ts.map +1 -0
  76. package/dist/capabilities/event-emitter.cap.d.ts +79 -0
  77. package/dist/capabilities/event-emitter.cap.d.ts.map +1 -0
  78. package/dist/capabilities/fan-control.cap.d.ts +100 -0
  79. package/dist/capabilities/fan-control.cap.d.ts.map +1 -0
  80. package/dist/capabilities/feature-probe.cap.d.ts +1 -0
  81. package/dist/capabilities/feature-probe.cap.d.ts.map +1 -1
  82. package/dist/capabilities/flood.cap.d.ts +37 -0
  83. package/dist/capabilities/flood.cap.d.ts.map +1 -0
  84. package/dist/capabilities/gas.cap.d.ts +34 -0
  85. package/dist/capabilities/gas.cap.d.ts.map +1 -0
  86. package/dist/capabilities/humidifier.cap.d.ts +82 -0
  87. package/dist/capabilities/humidifier.cap.d.ts.map +1 -0
  88. package/dist/capabilities/humidity-sensor.cap.d.ts +43 -0
  89. package/dist/capabilities/humidity-sensor.cap.d.ts.map +1 -0
  90. package/dist/capabilities/image.cap.d.ts +44 -0
  91. package/dist/capabilities/image.cap.d.ts.map +1 -0
  92. package/dist/capabilities/index.d.ts +103 -15
  93. package/dist/capabilities/index.d.ts.map +1 -1
  94. package/dist/capabilities/integrations.cap.d.ts +12 -0
  95. package/dist/capabilities/integrations.cap.d.ts.map +1 -1
  96. package/dist/capabilities/intercom.cap.d.ts +49 -9
  97. package/dist/capabilities/intercom.cap.d.ts.map +1 -1
  98. package/dist/capabilities/lawn-mower-control.cap.d.ts +83 -0
  99. package/dist/capabilities/lawn-mower-control.cap.d.ts.map +1 -0
  100. package/dist/capabilities/local-network.cap.d.ts +1 -1
  101. package/dist/capabilities/lock-control.cap.d.ts +92 -0
  102. package/dist/capabilities/lock-control.cap.d.ts.map +1 -0
  103. package/dist/capabilities/mask-shape.d.ts +99 -0
  104. package/dist/capabilities/mask-shape.d.ts.map +1 -0
  105. package/dist/capabilities/media-player.cap.d.ts +201 -0
  106. package/dist/capabilities/media-player.cap.d.ts.map +1 -0
  107. package/dist/capabilities/mesh-network.cap.d.ts +3 -3
  108. package/dist/capabilities/motion-trigger.cap.d.ts +1 -0
  109. package/dist/capabilities/motion-trigger.cap.d.ts.map +1 -1
  110. package/dist/capabilities/motion-zones.cap.d.ts +95 -13
  111. package/dist/capabilities/motion-zones.cap.d.ts.map +1 -1
  112. package/dist/capabilities/mqtt-broker.cap.d.ts +3 -3
  113. package/dist/capabilities/native-object-detection.cap.d.ts +74 -3
  114. package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -1
  115. package/dist/capabilities/network-access.cap.d.ts +7 -7
  116. package/dist/capabilities/network-quality.cap.d.ts +5 -0
  117. package/dist/capabilities/network-quality.cap.d.ts.map +1 -1
  118. package/dist/capabilities/notifier.cap.d.ts +173 -0
  119. package/dist/capabilities/notifier.cap.d.ts.map +1 -0
  120. package/dist/capabilities/numeric-sensor.cap.d.ts +52 -0
  121. package/dist/capabilities/numeric-sensor.cap.d.ts.map +1 -0
  122. package/dist/capabilities/oauth-integration.cap.d.ts +4 -2
  123. package/dist/capabilities/oauth-integration.cap.d.ts.map +1 -1
  124. package/dist/capabilities/osd.cap.d.ts +1 -0
  125. package/dist/capabilities/osd.cap.d.ts.map +1 -1
  126. package/dist/capabilities/pipeline-analytics.cap.d.ts +69 -22
  127. package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -1
  128. package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
  129. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +1 -1
  130. package/dist/capabilities/pipeline-runner.cap.d.ts +4 -2
  131. package/dist/capabilities/pipeline-runner.cap.d.ts.map +1 -1
  132. package/dist/capabilities/platform-probe.cap.d.ts +25 -0
  133. package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
  134. package/dist/capabilities/power-meter.cap.d.ts +65 -0
  135. package/dist/capabilities/power-meter.cap.d.ts.map +1 -0
  136. package/dist/capabilities/presence.cap.d.ts +79 -0
  137. package/dist/capabilities/presence.cap.d.ts.map +1 -0
  138. package/dist/capabilities/pressure-sensor.cap.d.ts +43 -0
  139. package/dist/capabilities/pressure-sensor.cap.d.ts.map +1 -0
  140. package/dist/capabilities/privacy-mask.cap.d.ts +207 -0
  141. package/dist/capabilities/privacy-mask.cap.d.ts.map +1 -0
  142. package/dist/capabilities/ptz-autotrack.cap.d.ts +1 -0
  143. package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -1
  144. package/dist/capabilities/ptz.cap.d.ts +1 -0
  145. package/dist/capabilities/ptz.cap.d.ts.map +1 -1
  146. package/dist/capabilities/reboot.cap.d.ts +1 -0
  147. package/dist/capabilities/reboot.cap.d.ts.map +1 -1
  148. package/dist/capabilities/recording.cap.d.ts +238 -32
  149. package/dist/capabilities/recording.cap.d.ts.map +1 -1
  150. package/dist/capabilities/restreamer.cap.d.ts +2 -2
  151. package/dist/capabilities/schemas/detection-shared.d.ts +14 -1
  152. package/dist/capabilities/schemas/detection-shared.d.ts.map +1 -1
  153. package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
  154. package/dist/capabilities/schemas/streaming-shared.d.ts +64 -1
  155. package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -1
  156. package/dist/capabilities/script-runner.cap.d.ts +62 -0
  157. package/dist/capabilities/script-runner.cap.d.ts.map +1 -0
  158. package/dist/capabilities/settings-store.cap.d.ts +25 -0
  159. package/dist/capabilities/settings-store.cap.d.ts.map +1 -1
  160. package/dist/capabilities/smoke.cap.d.ts +38 -0
  161. package/dist/capabilities/smoke.cap.d.ts.map +1 -0
  162. package/dist/capabilities/snapshot-provider.cap.d.ts +1 -1
  163. package/dist/capabilities/snapshot.cap.d.ts +1 -0
  164. package/dist/capabilities/snapshot.cap.d.ts.map +1 -1
  165. package/dist/capabilities/sso-bridge.cap.d.ts +3 -3
  166. package/dist/capabilities/storage-evictable.cap.d.ts +54 -0
  167. package/dist/capabilities/storage-evictable.cap.d.ts.map +1 -0
  168. package/dist/capabilities/storage-provider.cap.d.ts +31 -186
  169. package/dist/capabilities/storage-provider.cap.d.ts.map +1 -1
  170. package/dist/capabilities/storage.cap.d.ts +35 -226
  171. package/dist/capabilities/storage.cap.d.ts.map +1 -1
  172. package/dist/capabilities/stream-broker.cap.d.ts +309 -25
  173. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
  174. package/dist/capabilities/stream-catalog.cap.d.ts +85 -0
  175. package/dist/capabilities/stream-catalog.cap.d.ts.map +1 -0
  176. package/dist/capabilities/stream-params.cap.d.ts +27 -26
  177. package/dist/capabilities/stream-params.cap.d.ts.map +1 -1
  178. package/dist/capabilities/switch.cap.d.ts +1 -0
  179. package/dist/capabilities/switch.cap.d.ts.map +1 -1
  180. package/dist/capabilities/tamper.cap.d.ts +33 -0
  181. package/dist/capabilities/tamper.cap.d.ts.map +1 -0
  182. package/dist/capabilities/temperature-sensor.cap.d.ts +51 -0
  183. package/dist/capabilities/temperature-sensor.cap.d.ts.map +1 -0
  184. package/dist/capabilities/update.cap.d.ts +49 -0
  185. package/dist/capabilities/update.cap.d.ts.map +1 -0
  186. package/dist/capabilities/user-management.cap.d.ts +20 -20
  187. package/dist/capabilities/vacuum-control.cap.d.ts +229 -0
  188. package/dist/capabilities/vacuum-control.cap.d.ts.map +1 -0
  189. package/dist/capabilities/valve.cap.d.ts +93 -0
  190. package/dist/capabilities/valve.cap.d.ts.map +1 -0
  191. package/dist/capabilities/vibration.cap.d.ts +33 -0
  192. package/dist/capabilities/vibration.cap.d.ts.map +1 -0
  193. package/dist/capabilities/water-heater.cap.d.ts +78 -0
  194. package/dist/capabilities/water-heater.cap.d.ts.map +1 -0
  195. package/dist/capabilities/weather.cap.d.ts +76 -0
  196. package/dist/capabilities/weather.cap.d.ts.map +1 -0
  197. package/dist/capabilities/webrtc-session.cap.d.ts +128 -0
  198. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  199. package/dist/constants.d.ts +0 -2
  200. package/dist/constants.d.ts.map +1 -1
  201. package/dist/device/base-device-provider.d.ts +11 -0
  202. package/dist/device/base-device-provider.d.ts.map +1 -1
  203. package/dist/device/base-device.d.ts +52 -0
  204. package/dist/device/base-device.d.ts.map +1 -1
  205. package/dist/device/device-context.d.ts +29 -0
  206. package/dist/device/device-context.d.ts.map +1 -1
  207. package/dist/device/device-link-transform.d.ts +6 -0
  208. package/dist/device/device-link-transform.d.ts.map +1 -0
  209. package/dist/device/device-management.d.ts +116 -4
  210. package/dist/device/device-management.d.ts.map +1 -1
  211. package/dist/device/device-type.d.ts +214 -3
  212. package/dist/device/device-type.d.ts.map +1 -1
  213. package/dist/device/device.d.ts +25 -0
  214. package/dist/device/device.d.ts.map +1 -1
  215. package/dist/device/index.d.ts +5 -1
  216. package/dist/device/index.d.ts.map +1 -1
  217. package/dist/device/path-util.d.ts +13 -0
  218. package/dist/device/path-util.d.ts.map +1 -0
  219. package/dist/device/schema-fields.d.ts +12 -0
  220. package/dist/device/schema-fields.d.ts.map +1 -0
  221. package/dist/device/source-info.d.ts +87 -0
  222. package/dist/device/source-info.d.ts.map +1 -0
  223. package/dist/device/system-mirror.d.ts +6 -2
  224. package/dist/device/system-mirror.d.ts.map +1 -1
  225. package/dist/encode-profile.d.ts +126 -0
  226. package/dist/encode-profile.d.ts.map +1 -0
  227. package/dist/enums/event-category.d.ts +92 -7
  228. package/dist/enums/event-category.d.ts.map +1 -1
  229. package/dist/generated/addon-api.d.ts +12821 -8025
  230. package/dist/generated/addon-api.d.ts.map +1 -1
  231. package/dist/generated/cap-status-types.d.ts +87 -1
  232. package/dist/generated/cap-status-types.d.ts.map +1 -1
  233. package/dist/generated/capability-router-map.d.ts +142 -7
  234. package/dist/generated/capability-router-map.d.ts.map +1 -1
  235. package/dist/generated/device-local-state.d.ts +123 -0
  236. package/dist/generated/device-local-state.d.ts.map +1 -1
  237. package/dist/generated/device-proxy.d.ts +132 -5
  238. package/dist/generated/device-proxy.d.ts.map +1 -1
  239. package/dist/generated/method-access-map.d.ts +1 -1
  240. package/dist/generated/method-access-map.d.ts.map +1 -1
  241. package/dist/generated/provider-kind-map.d.ts +1 -1
  242. package/dist/generated/provider-kind-map.d.ts.map +1 -1
  243. package/dist/generated/system-proxy.d.ts +10 -8
  244. package/dist/generated/system-proxy.d.ts.map +1 -1
  245. package/dist/health/wiring-health.d.ts +136 -0
  246. package/dist/health/wiring-health.d.ts.map +1 -0
  247. package/dist/{index-CMM1Y9W6.js → index-BSA_TBea.js} +4774 -923
  248. package/dist/index-BSA_TBea.js.map +1 -0
  249. package/dist/{index-QRlzao1I.mjs → index-Bpj3ScIH.mjs} +5142 -1291
  250. package/dist/index-Bpj3ScIH.mjs.map +1 -0
  251. package/dist/index.d.ts +23 -3
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +1498 -119
  254. package/dist/index.js.map +1 -1
  255. package/dist/index.mjs +1806 -427
  256. package/dist/index.mjs.map +1 -1
  257. package/dist/interfaces/addon-data-plane.d.ts +76 -0
  258. package/dist/interfaces/addon-data-plane.d.ts.map +1 -0
  259. package/dist/interfaces/addon.d.ts +61 -1
  260. package/dist/interfaces/addon.d.ts.map +1 -1
  261. package/dist/interfaces/advanced-notifier.d.ts +4 -0
  262. package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
  263. package/dist/interfaces/capability.d.ts +59 -1
  264. package/dist/interfaces/capability.d.ts.map +1 -1
  265. package/dist/interfaces/config-ui.d.ts +70 -6
  266. package/dist/interfaces/config-ui.d.ts.map +1 -1
  267. package/dist/interfaces/device-capabilities/camera.d.ts +2 -1
  268. package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -1
  269. package/dist/interfaces/event-bus.d.ts +105 -4
  270. package/dist/interfaces/event-bus.d.ts.map +1 -1
  271. package/dist/interfaces/kernel-abstractions.d.ts +10 -1
  272. package/dist/interfaces/kernel-abstractions.d.ts.map +1 -1
  273. package/dist/interfaces/network-quality.d.ts +8 -0
  274. package/dist/interfaces/network-quality.d.ts.map +1 -1
  275. package/dist/interfaces/pipeline-executor-capability.d.ts +2 -2
  276. package/dist/interfaces/pipeline-orchestrator-capability.d.ts +2 -1
  277. package/dist/interfaces/pipeline-orchestrator-capability.d.ts.map +1 -1
  278. package/dist/interfaces/pipeline-runner-capability.d.ts +7 -0
  279. package/dist/interfaces/pipeline-runner-capability.d.ts.map +1 -1
  280. package/dist/interfaces/recording-config.d.ts +91 -0
  281. package/dist/interfaces/recording-config.d.ts.map +1 -0
  282. package/dist/interfaces/rtp-egress.d.ts +2 -3
  283. package/dist/interfaces/rtp-egress.d.ts.map +1 -1
  284. package/dist/interfaces/storage-location-declaration.d.ts +34 -0
  285. package/dist/interfaces/storage-location-declaration.d.ts.map +1 -0
  286. package/dist/interfaces/storage-location.d.ts +18 -74
  287. package/dist/interfaces/storage-location.d.ts.map +1 -1
  288. package/dist/interfaces/storage.d.ts +15 -4
  289. package/dist/interfaces/storage.d.ts.map +1 -1
  290. package/dist/interfaces/stream-broker.d.ts +39 -4
  291. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  292. package/dist/interfaces/timezones.d.ts +59 -0
  293. package/dist/interfaces/timezones.d.ts.map +1 -0
  294. package/dist/node.d.ts +3 -0
  295. package/dist/node.d.ts.map +1 -1
  296. package/dist/node.js +50 -8
  297. package/dist/node.js.map +1 -1
  298. package/dist/node.mjs +51 -9
  299. package/dist/node.mjs.map +1 -1
  300. package/dist/readiness/readiness-registry.d.ts.map +1 -1
  301. package/dist/schemas/auth-records.d.ts +4 -4
  302. package/dist/storage/filesystem-storage-provider.d.ts +2 -1
  303. package/dist/storage/filesystem-storage-provider.d.ts.map +1 -1
  304. package/dist/stream-selection.d.ts +85 -0
  305. package/dist/stream-selection.d.ts.map +1 -0
  306. package/dist/types/detection.d.ts +3 -3
  307. package/dist/types/io.d.ts +13 -1
  308. package/dist/types/io.d.ts.map +1 -1
  309. package/dist/util/location-match.d.ts +15 -0
  310. package/dist/util/location-match.d.ts.map +1 -0
  311. package/dist/utils/canonical-hash.d.ts +20 -0
  312. package/dist/utils/canonical-hash.d.ts.map +1 -0
  313. package/dist/utils/export-reconciler.d.ts +101 -0
  314. package/dist/utils/export-reconciler.d.ts.map +1 -0
  315. package/dist/utils/privacy-grid-raster.d.ts +48 -0
  316. package/dist/utils/privacy-grid-raster.d.ts.map +1 -0
  317. package/dist/utils/sleep.d.ts +36 -0
  318. package/dist/utils/sleep.d.ts.map +1 -0
  319. package/package.json +1 -1
  320. package/dist/capabilities/recording-engine.cap.d.ts +0 -477
  321. package/dist/capabilities/recording-engine.cap.d.ts.map +0 -1
  322. package/dist/index-CMM1Y9W6.js.map +0 -1
  323. package/dist/index-QRlzao1I.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { h as hydrateSchema, e as errMsg, z as zonesCapability, a as zoneRulesCapability, b as zoneAnalyticsCapability, s as switchCapability, c as streamParamsCapability, p as ptzAutotrackCapability, m as motionZonesCapability, d as motionTriggerCapability, f as motionCapability, g as featureProbeCapability, i as doorbellCapability, j as deviceStatusCapability, k as deviceDiscoveryCapability, l as cameraStreamsCapability, n as brightnessCapability, o as batteryCapability, q as audioMetricsCapability, r as deviceProviderCapability, t as accessoriesCapability, u as addonPagesCapability, v as addonPagesSourceCapability, w as addonRoutesCapability, x as addonSettingsCapability, y as addonWidgetsCapability, A as addonWidgetsSourceCapability, B as addonsCapability, C as adminUiCapability, D as advancedNotifierCapability, E as alertsCapability, F as audioAnalysisCapability, G as audioAnalyzerCapability, H as audioCodecCapability, I as authProviderCapability, J as backupCapability, K as cameraCredentialsCapability, L as decoderCapability, M as detectionPipelineCapability, N as deviceExportCapability, O as deviceManagerCapability, P as deviceOpsCapability, Q as deviceStateCapability, R as embeddingEncoderCapability, S as eventsCapability, T as integrationsCapability, U as intercomCapability, V as localNetworkCapability, W as logDestinationCapability, X as meshNetworkCapability, Y as metricsProviderCapability, Z as motionDetectionCapability, _ as mqttBrokerCapability, $ as nativeObjectDetectionCapability, a0 as networkAccessCapability, a1 as networkQualityCapability, a2 as nodesCapability, a3 as notificationOutputCapability, a4 as oauthIntegrationCapability, a5 as osdCapability, a6 as pipelineAnalyticsCapability, a7 as pipelineExecutorCapability, a8 as pipelineOrchestratorCapability, a9 as pipelineRunnerCapability, aa as platformProbeCapability, ab as ptzCapability, ac as rebootCapability, ad as recordingCapability, ae as recordingEngineCapability, af as restreamerCapability, ag as settingsStoreCapability, ah as smtpProviderCapability, ai as snapshotCapability, aj as snapshotProviderCapability, ak as ssoBridgeCapability, al as storageCapability, am as storageProviderCapability, an as streamBrokerCapability, ao as streamingEngineCapability, ap as systemCapability, aq as toastCapability, ar as turnProviderCapability, as as userManagementCapability, at as userPasskeysCapability, au as webrtcCapability, av as webrtcSessionCapability } from "./index-QRlzao1I.mjs";
2
- import { aw, ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH, aI, aJ, aK, aL, aM, aN, aO, aP, aQ, aR, aS, aT, aU, aV, aW, aX, aY, aZ, a_, a$, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, bA, bB, bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ, b_, b$, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz, cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, cY, cZ, c_, c$, d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm, dn, dp, dq, dr, ds, dt, du, dv, dw, dx, dy, dz, dA, dB, dC, dD, dE, dF, dG, dH, dI, dJ, dK, dL, dM, dN, dO, dP, dQ, dR, dS, dT, dU, dV, dW, dX, dY, dZ, d_, d$, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ea, eb, ec, ed, ee, ef, eg, eh, ei, ej, ek, el, em, en, eo, ep, eq, er, es, et, eu, ev, ew, ex, ey, ez, eA, eB, eC, eD, eE, eF, eG, eH, eI, eJ, eK, eL, eM, eN, eO, eP, eQ, eR, eS, eT, eU, eV, eW, eX, eY, eZ, e_, e$, f0, f1, f2, f3, f4, f5, f6 } from "./index-QRlzao1I.mjs";
1
+ import { h as hydrateSchema, e as errMsg, z as zonesCapability, a as zoneRulesCapability, b as zoneAnalyticsCapability, w as weatherCapability, c as waterHeaterCapability, v as vibrationCapability, d as valveCapability, f as vacuumControlCapability, u as updateCapability, t as temperatureSensorCapability, g as tamperCapability, s as switchCapability, i as streamParamsCapability, j as smokeCapability, k as scriptRunnerCapability, p as ptzAutotrackCapability, l as privacyMaskCapability, m as pressureSensorCapability, n as presenceCapability, o as powerMeterCapability, q as numericSensorCapability, r as notifierCapability, x as nativeObjectDetectionCapability, y as motionZonesCapability, A as motionTriggerCapability, B as motionCapability, C as mediaPlayerCapability, D as lockControlCapability, E as lawnMowerControlCapability, F as imageCapability, G as humiditySensorCapability, H as humidifierCapability, I as gasCapability, J as floodCapability, K as featureProbeCapability, L as fanControlCapability, M as eventEmitterCapability, N as enumSensorCapability, O as doorbellCapability, P as deviceStatusCapability, Q as deviceDiscoveryCapability, R as coverCapability, S as controlCapability, T as contactCapability, U as consumablesCapability, V as connectivityCapability, W as colorCapability, X as climateControlCapability, Y as carbonMonoxideCapability, Z as cameraStreamsCapability, _ as brightnessCapability, $ as binaryCapability, a0 as batteryCapability, a1 as automationControlCapability, a2 as audioMetricsCapability, a3 as ambientLightSensorCapability, a4 as alarmPanelCapability, a5 as airQualitySensorCapability, a6 as extractSourceInfoFromMetadata, a7 as synthesizeSourceInfo, a8 as mergeSourceInfo, a9 as SOURCE_INFO_METADATA_KEY, aa as deviceProviderCapability, ab as accessoriesCapability, ac as addonPagesCapability, ad as addonPagesSourceCapability, ae as addonRoutesCapability, af as addonSettingsCapability, ag as addonWidgetsCapability, ah as addonWidgetsSourceCapability, ai as addonsCapability, aj as adminUiCapability, ak as advancedNotifierCapability, al as alertsCapability, am as audioAnalysisCapability, an as audioAnalyzerCapability, ao as audioCodecCapability, ap as authProviderCapability, aq as backupCapability, ar as brokerCapability, as as buttonCapability, at as cameraCredentialsCapability, au as cameraPipelineConfigCapability, av as decoderCapability, aw as detectionPipelineCapability, ax as deviceAdoptionCapability, ay as deviceExportCapability, az as deviceManagerCapability, aA as deviceOpsCapability, aB as deviceStateCapability, aC as embeddingEncoderCapability, aD as eventsCapability, aE as integrationsCapability, aF as intercomCapability, aG as localNetworkCapability, aH as logDestinationCapability, aI as meshNetworkCapability, aJ as metricsProviderCapability, aK as motionDetectionCapability, aL as mqttBrokerCapability, aM as networkAccessCapability, aN as networkQualityCapability, aO as nodesCapability, aP as notificationOutputCapability, aQ as oauthIntegrationCapability, aR as osdCapability, aS as pipelineAnalyticsCapability, aT as pipelineExecutorCapability, aU as pipelineOrchestratorCapability, aV as pipelineRunnerCapability, aW as platformProbeCapability, aX as ptzCapability, aY as rebootCapability, aZ as recordingCapability, a_ as restreamerCapability, a$ as settingsStoreCapability, b0 as smtpProviderCapability, b1 as snapshotCapability, b2 as snapshotProviderCapability, b3 as ssoBridgeCapability, b4 as storageCapability, b5 as storageEvictableCapability, b6 as storageProviderCapability, b7 as streamBrokerCapability, b8 as streamCatalogCapability, b9 as streamingEngineCapability, ba as systemCapability, bb as toastCapability, bc as turnProviderCapability, bd as userManagementCapability, be as userPasskeysCapability, bf as webrtcCapability, bg as webrtcSessionCapability } from "./index-Bpj3ScIH.mjs";
2
+ import { bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, bA, bB, bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ, b_, b$, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz, cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, cY, cZ, c_, c$, d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm, dn, dp, dq, dr, ds, dt, du, dv, dw, dx, dy, dz, dA, dB, dC, dD, dE, dF, dG, dH, dI, dJ, dK, dL, dM, dN, dO, dP, dQ, dR, dS, dT, dU, dV, dW, dX, dY, dZ, d_, d$, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ea, eb, ec, ed, ee, ef, eg, eh, ei, ej, ek, el, em, en, eo, ep, eq, er, es, et, eu, ev, ew, ex, ey, ez, eA, eB, eC, eD, eE, eF, eG, eH, eI, eJ, eK, eL, eM, eN, eO, eP, eQ, eR, eS, eT, eU, eV, eW, eX, eY, eZ, e_, e$, f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, fa, fb, fc, fd, fe, ff, fg, fh, fi, fj, fk, fl, fm, fn, fo, fp, fq, fr, fs, ft, fu, fv, fw, fx, fy, fz, fA, fB, fC, fD, fE, fF, fG, fH, fI, fJ, fK, fL, fM, fN, fO, fP, fQ, fR, fS, fT, fU, fV, fW, fX, fY, fZ, f_, f$, g0, g1, g2, g3, g4, g5, g6, g7, g8, g9, ga, gb, gc, gd, ge, gf, gg, gh, gi, gj, gk, gl, gm, gn, go, gp, gq, gr, gs, gt, gu, gv, gw, gx, gy, gz, gA, gB, gC, gD, gE, gF, gG, gH, gI, gJ, gK, gL, gM, gN, gO, gP, gQ, gR, gS, gT, gU, gV, gW, gX, gY, gZ, g_, g$, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9, ha, hb, hc, hd, he, hf, hg, hh, hi, hj, hk, hl, hm, hn, ho, hp, hq, hr, hs, ht, hu, hv, hw, hx, hy, hz, hA, hB, hC, hD, hE, hF, hG, hH, hI, hJ, hK, hL, hM, hN, hO, hP, hQ, hR, hS, hT } from "./index-Bpj3ScIH.mjs";
3
3
  import { z } from "zod";
4
4
  class DisposerChain {
5
5
  disposers = [];
@@ -19,10 +19,10 @@ class DisposerChain {
19
19
  * (sync) — this matches the “register-after-shutdown” edge case where
20
20
  * an addon's late initialization races with kernel restart.
21
21
  */
22
- add(fn) {
22
+ add(fn2) {
23
23
  if (this.disposed) {
24
24
  try {
25
- const result = fn();
25
+ const result = fn2();
26
26
  if (result && typeof result.then === "function") {
27
27
  ;
28
28
  result.catch((err) => this.onError(err, -1));
@@ -32,9 +32,9 @@ class DisposerChain {
32
32
  }
33
33
  return () => void 0;
34
34
  }
35
- this.disposers.push(fn);
35
+ this.disposers.push(fn2);
36
36
  return () => {
37
- const idx = this.disposers.indexOf(fn);
37
+ const idx = this.disposers.indexOf(fn2);
38
38
  if (idx >= 0) this.disposers.splice(idx, 1);
39
39
  };
40
40
  }
@@ -57,9 +57,9 @@ class DisposerChain {
57
57
  const drain = this.disposers.slice().reverse();
58
58
  this.disposers = [];
59
59
  for (let i = 0; i < drain.length; i++) {
60
- const fn = drain[i];
60
+ const fn2 = drain[i];
61
61
  try {
62
- const result = fn();
62
+ const result = fn2();
63
63
  if (result && typeof result.then === "function") {
64
64
  await result;
65
65
  }
@@ -119,10 +119,15 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
119
119
  EventCategory2["DeviceSettingsUpdated"] = "device.settings-updated";
120
120
  EventCategory2["DeviceBindingsChanged"] = "device.bindings-changed";
121
121
  EventCategory2["DeviceMetaChanged"] = "device.meta-changed";
122
+ EventCategory2["DeviceSourceInfoChanged"] = "device.source-info-changed";
122
123
  EventCategory2["DeviceStreamsRegistered"] = "device.streams-registered";
124
+ EventCategory2["DeviceProvisioned"] = "device.provisioned";
125
+ EventCategory2["DeviceReady"] = "device.ready";
123
126
  EventCategory2["IntegrationEnabled"] = "integration.enabled";
124
127
  EventCategory2["IntegrationDisabled"] = "integration.disabled";
125
128
  EventCategory2["IntegrationDeleted"] = "integration.deleted";
129
+ EventCategory2["BrokerStatusChanged"] = "broker.status-changed";
130
+ EventCategory2["BrokerMessage"] = "broker.message";
126
131
  EventCategory2["ProviderStarted"] = "provider.started";
127
132
  EventCategory2["ProviderStopped"] = "provider.stopped";
128
133
  EventCategory2["ProcessCrashed"] = "process.crashed";
@@ -153,9 +158,12 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
153
158
  EventCategory2["StreamBrokerOnCamStreamDemand"] = "stream-broker.onCamStreamDemand";
154
159
  EventCategory2["StreamBrokerOnCamStreamIdle"] = "stream-broker.onCamStreamIdle";
155
160
  EventCategory2["StreamBrokerOnRequestStreamSourceRefresh"] = "stream-broker.onRequestStreamSourceRefresh";
161
+ EventCategory2["StreamParamsChanged"] = "stream-params.changed";
156
162
  EventCategory2["DeviceStateChanged"] = "device.state-changed";
157
163
  EventCategory2["BatteryOnStatusChanged"] = "battery.onStatusChanged";
164
+ EventCategory2["BatteryOnWakeStarted"] = "battery.onWakeStarted";
158
165
  EventCategory2["DoorbellOnPressed"] = "doorbell.onPressed";
166
+ EventCategory2["EventEmitted"] = "event-emitter.event";
159
167
  EventCategory2["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
160
168
  EventCategory2["ClusterTopologySnapshot"] = "cluster.topology-snapshot";
161
169
  EventCategory2["MetricsNodeResourcesSnapshot"] = "metrics.node-resources-snapshot";
@@ -200,6 +208,7 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
200
208
  EventCategory2["NetworkTunnelStarted"] = "network.tunnel.started";
201
209
  EventCategory2["NetworkTunnelStopped"] = "network.tunnel.stopped";
202
210
  EventCategory2["LocalNetworkChanged"] = "network.local.changed";
211
+ EventCategory2["MeshNetworkChanged"] = "network.mesh.changed";
203
212
  EventCategory2["BackupCompleted"] = "backup.completed";
204
213
  EventCategory2["BackupRestored"] = "backup.restored";
205
214
  EventCategory2["NotificationDispatched"] = "notification.dispatched";
@@ -210,6 +219,7 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
210
219
  EventCategory2["DeviceAwake"] = "device.awake";
211
220
  EventCategory2["DeviceSleeping"] = "device.sleeping";
212
221
  EventCategory2["RetentionCleanup"] = "retention.cleanup";
222
+ EventCategory2["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
213
223
  return EventCategory2;
214
224
  })(EventCategory || {});
215
225
  function isEvent(event, category) {
@@ -239,6 +249,27 @@ function emitReadiness(bus, params) {
239
249
  }
240
250
  ));
241
251
  }
252
+ function createDurableState(deps) {
253
+ const get = async () => {
254
+ const store = await deps.read();
255
+ const raw = store[deps.key];
256
+ if (raw === void 0) return deps.fallback;
257
+ const parsed = deps.schema.safeParse(raw);
258
+ if (!parsed.success) {
259
+ deps.onParseError?.(deps.key, parsed.error);
260
+ return deps.fallback;
261
+ }
262
+ return parsed.data;
263
+ };
264
+ const set = async (next) => {
265
+ const validated = deps.schema.parse(next);
266
+ await deps.write({ [deps.key]: validated });
267
+ };
268
+ const update = async (fn2) => {
269
+ await set(fn2(await get()));
270
+ };
271
+ return { get, set, update };
272
+ }
242
273
  class BaseAddon {
243
274
  _ctx = null;
244
275
  _config;
@@ -362,7 +393,7 @@ class BaseAddon {
362
393
  }
363
394
  // ── Settings schemas (override to provide UI) ─────────────────────────
364
395
  /** Override to provide global-level settings UI schema. */
365
- globalSettingsSchema() {
396
+ globalSettingsSchema(_cap) {
366
397
  return null;
367
398
  }
368
399
  /** Override to provide device-level settings UI schema. */
@@ -376,8 +407,8 @@ class BaseAddon {
376
407
  // blob and every addon used exactly one of them; the distinction was
377
408
  // never semantically load-bearing. `global` won because it was the
378
409
  // widely-used one and the name reads naturally (per-node addon config).
379
- async getGlobalSettings(overlay) {
380
- const schema = this.globalSettingsSchema();
410
+ async getGlobalSettings(overlay, cap) {
411
+ const schema = this.globalSettingsSchema(cap);
381
412
  if (!schema) return { sections: [] };
382
413
  const raw = await this._ctx?.settings?.readAddonStore() ?? {};
383
414
  return hydrateSchema(schema, overlay ? { ...raw, ...overlay } : raw);
@@ -482,12 +513,18 @@ class BaseAddon {
482
513
  // ── Lifecycle event emission ────────────────────────────────────────────
483
514
  emitLifecycle(category, data) {
484
515
  try {
485
- this._ctx?.eventBus.emit({
486
- id: `${this._ctx.id}-${Date.now()}`,
516
+ const ctx = this._ctx;
517
+ if (!ctx) return;
518
+ ctx.eventBus.emit({
519
+ id: `${ctx.id}-${Date.now()}`,
487
520
  timestamp: /* @__PURE__ */ new Date(),
488
- source: { type: "addon", id: this._ctx.id, nodeId: this._ctx.kernel.localNodeId ?? "hub" },
521
+ source: { type: "addon", id: ctx.id, nodeId: ctx.kernel.localNodeId ?? "hub" },
489
522
  category,
490
- data: data ?? {}
523
+ // Always carry `addonId` in the payload (the lifecycle event
524
+ // contract declares it) so consumers — e.g. the alerts builder —
525
+ // can name the addon without reaching into `source`. An explicit
526
+ // `data.addonId` still wins if a caller provides one.
527
+ data: { addonId: ctx.id, ...data ?? {} }
491
528
  });
492
529
  } catch {
493
530
  }
@@ -560,6 +597,44 @@ class BaseAddon {
560
597
  }
561
598
  this._config = resolved;
562
599
  }
600
+ /**
601
+ * Typed durable handle over ONE key of this addon's store. The whole
602
+ * Zod-validated value round-trips on every read/write — no hand-listed
603
+ * fields, so a field can never be silently dropped on persist. Reads use
604
+ * the same retry budget as config resolution; a corrupt/legacy blob logs
605
+ * a warning and falls back rather than crashing boot.
606
+ */
607
+ state(key, schema, fallback) {
608
+ return createDurableState({
609
+ key,
610
+ schema,
611
+ fallback,
612
+ read: () => this.readAddonStoreWithRetry(),
613
+ write: async (patch) => {
614
+ await this._ctx?.settings?.writeAddonStore(patch);
615
+ },
616
+ onParseError: (k, e) => this._ctx?.logger?.warn?.(
617
+ `durable-state: stored "${k}" failed validation — using fallback`,
618
+ { meta: { addonId: this._ctx?.id, key: k, error: String(e) } }
619
+ )
620
+ });
621
+ }
622
+ /** Per-device variant of {@link state}, backed by the per-device store. */
623
+ deviceState(deviceId, key, schema, fallback) {
624
+ return createDurableState({
625
+ key,
626
+ schema,
627
+ fallback,
628
+ read: async () => await this._ctx?.settings?.readDeviceStore(deviceId) ?? {},
629
+ write: async (patch) => {
630
+ await this._ctx?.settings?.writeDeviceStore(deviceId, patch);
631
+ },
632
+ onParseError: (k, e) => this._ctx?.logger?.warn?.(
633
+ `durable-state: stored device ${deviceId} "${k}" failed validation — using fallback`,
634
+ { meta: { addonId: this._ctx?.id, deviceId, key: k, error: String(e) } }
635
+ )
636
+ });
637
+ }
563
638
  /**
564
639
  * Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
565
640
  * transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
@@ -685,6 +760,68 @@ function buildCapturingReply(envelope) {
685
760
  };
686
761
  return wrapper;
687
762
  }
763
+ const EU_DST = {
764
+ offsetHours: 1,
765
+ startMonth: 3,
766
+ startWeekIndex: 5,
767
+ startWeekday: "Sunday",
768
+ startHour: 2,
769
+ endMonth: 10,
770
+ endWeekIndex: 5,
771
+ endWeekday: "Sunday",
772
+ endHour: 3
773
+ };
774
+ const US_DST = {
775
+ offsetHours: 1,
776
+ startMonth: 3,
777
+ startWeekIndex: 2,
778
+ startWeekday: "Sunday",
779
+ startHour: 2,
780
+ endMonth: 11,
781
+ endWeekIndex: 1,
782
+ endWeekday: "Sunday",
783
+ endHour: 2
784
+ };
785
+ const AU_DST = {
786
+ offsetHours: 1,
787
+ startMonth: 10,
788
+ startWeekIndex: 1,
789
+ startWeekday: "Sunday",
790
+ startHour: 2,
791
+ endMonth: 4,
792
+ endWeekIndex: 1,
793
+ endWeekday: "Sunday",
794
+ endHour: 3
795
+ };
796
+ const TIMEZONES = [
797
+ // --- Universal ---
798
+ { id: "UTC", label: "UTC (UTC+0)", region: "Universal", stdOffsetMinutes: 0, dst: null },
799
+ // --- Europe (EU DST rule) ---
800
+ { id: "Europe/London", label: "Europe/London (UTC+0 / BST)", region: "Europe", stdOffsetMinutes: 0, dst: EU_DST },
801
+ { id: "Europe/Rome", label: "Europe/Rome (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
802
+ { id: "Europe/Paris", label: "Europe/Paris (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
803
+ { id: "Europe/Berlin", label: "Europe/Berlin (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
804
+ { id: "Europe/Madrid", label: "Europe/Madrid (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
805
+ { id: "Europe/Amsterdam", label: "Europe/Amsterdam (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
806
+ { id: "Europe/Istanbul", label: "Europe/Istanbul (UTC+3)", region: "Europe", stdOffsetMinutes: 180, dst: null },
807
+ // --- Americas (US/Canada DST rule) ---
808
+ { id: "America/New_York", label: "America/New York (UTC−5 / EDT)", region: "Americas", stdOffsetMinutes: -300, dst: US_DST },
809
+ { id: "America/Chicago", label: "America/Chicago (UTC−6 / CDT)", region: "Americas", stdOffsetMinutes: -360, dst: US_DST },
810
+ { id: "America/Denver", label: "America/Denver (UTC−7 / MDT)", region: "Americas", stdOffsetMinutes: -420, dst: US_DST },
811
+ { id: "America/Los_Angeles", label: "America/Los Angeles (UTC−8 / PDT)", region: "Americas", stdOffsetMinutes: -480, dst: US_DST },
812
+ { id: "America/Sao_Paulo", label: "America/Sao Paulo (UTC−3)", region: "Americas", stdOffsetMinutes: -180, dst: null },
813
+ // --- Asia / Middle East (no DST) ---
814
+ { id: "Asia/Dubai", label: "Asia/Dubai (UTC+4)", region: "Asia", stdOffsetMinutes: 240, dst: null },
815
+ { id: "Asia/Kolkata", label: "Asia/Kolkata (UTC+5:30)", region: "Asia", stdOffsetMinutes: 330, dst: null },
816
+ { id: "Asia/Singapore", label: "Asia/Singapore (UTC+8)", region: "Asia", stdOffsetMinutes: 480, dst: null },
817
+ { id: "Asia/Shanghai", label: "Asia/Shanghai (UTC+8)", region: "Asia", stdOffsetMinutes: 480, dst: null },
818
+ { id: "Asia/Tokyo", label: "Asia/Tokyo (UTC+9)", region: "Asia", stdOffsetMinutes: 540, dst: null },
819
+ // --- Oceania (southern-hemisphere DST) ---
820
+ { id: "Australia/Sydney", label: "Australia/Sydney (UTC+10 / AEDT)", region: "Oceania", stdOffsetMinutes: 600, dst: AU_DST }
821
+ ];
822
+ function findTimezone(id) {
823
+ return TIMEZONES.find((tz) => tz.id === id);
824
+ }
688
825
  class ReadinessTimeoutError extends Error {
689
826
  capName;
690
827
  scope;
@@ -882,6 +1019,14 @@ class ReadinessRegistry {
882
1019
  cleanup();
883
1020
  reject(new ReadinessTimeoutError(capName, scope, this.now() - start));
884
1021
  }, timeoutMs);
1022
+ const PENDING_LOG_INTERVAL_MS = 3e4;
1023
+ const pendingLogTimer = setInterval(() => {
1024
+ if (settled) return;
1025
+ this.logger?.warn(
1026
+ `readiness: still awaiting ${capName} (${scopeKey(scope)}) after ${this.now() - start}ms`
1027
+ );
1028
+ }, PENDING_LOG_INTERVAL_MS);
1029
+ if (typeof pendingLogTimer.unref === "function") pendingLogTimer.unref();
885
1030
  const onAbort = () => {
886
1031
  if (settled) return;
887
1032
  settled = true;
@@ -892,6 +1037,7 @@ class ReadinessRegistry {
892
1037
  function cleanup() {
893
1038
  unsubscribe();
894
1039
  if (timer !== null) clearTimeout(timer);
1040
+ clearInterval(pendingLogTimer);
895
1041
  opts.signal?.removeEventListener("abort", onAbort);
896
1042
  }
897
1043
  });
@@ -1071,34 +1217,7 @@ function emitDownForOwnedCaps(registry, owned) {
1071
1217
  registry.emitDown(capName, scope);
1072
1218
  }
1073
1219
  }
1074
- const STORAGE_LOCATION_TYPES = [
1075
- "data",
1076
- "media",
1077
- "recordings",
1078
- "recordings-high",
1079
- "recordings-low",
1080
- "recordings-clips",
1081
- "event-images",
1082
- "models",
1083
- "addons-data",
1084
- "cache",
1085
- "logs",
1086
- "backups"
1087
- ];
1088
- const DEFAULT_LOCATION_SUBDIRS = {
1089
- "data": "db",
1090
- "media": "media",
1091
- "recordings": "recordings",
1092
- "recordings-high": "recordings-high",
1093
- "recordings-low": "recordings-low",
1094
- "recordings-clips": "recordings-clips",
1095
- "event-images": "event-images",
1096
- "models": "models",
1097
- "addons-data": "addons-data",
1098
- "cache": "/tmp/camstack-cache",
1099
- "logs": "logs",
1100
- "backups": "backups"
1101
- };
1220
+ const DATAPLANE_SECRET_HEADER = "x-camstack-dataplane-secret";
1102
1221
  const STREAM_QUALITY_LABELS = {
1103
1222
  high: "High",
1104
1223
  mid: "Mid",
@@ -1146,12 +1265,12 @@ function toStreamSourceEntry(stream) {
1146
1265
  function isString(v) {
1147
1266
  return typeof v === "string";
1148
1267
  }
1149
- function isRecord(v) {
1268
+ function isRecord$1(v) {
1150
1269
  return typeof v === "object" && v !== null && !Array.isArray(v);
1151
1270
  }
1152
1271
  function parseStreamEntry(v) {
1153
1272
  if (isString(v) && v.trim()) return { url: v };
1154
- if (isRecord(v) && isString(v["url"]) && v["url"].trim()) {
1273
+ if (isRecord$1(v) && isString(v["url"]) && v["url"].trim()) {
1155
1274
  return {
1156
1275
  url: v["url"],
1157
1276
  label: isString(v["label"]) ? v["label"] : void 0
@@ -1212,6 +1331,51 @@ const DEFAULT_FEATURES = {
1212
1331
  };
1213
1332
  const SUB_DETECTION_TYPES = ["face", "plate"];
1214
1333
  const RECOGNITION_TYPES = ["face", "plate", "clip", "custom"];
1334
+ function pickPreferredRtspEntry(entries, pref, deviceId, options = {}) {
1335
+ if (entries.length === 0) return null;
1336
+ const prefix = `${deviceId}/`;
1337
+ const toPicked = (e) => ({
1338
+ brokerId: e.brokerId,
1339
+ profileId: e.brokerId.startsWith(prefix) ? e.brokerId.slice(prefix.length) : e.brokerId,
1340
+ url: e.url,
1341
+ mutedUrl: e.mutedUrl,
1342
+ enabled: e.enabled,
1343
+ ...e.codec !== void 0 ? { codec: e.codec } : {},
1344
+ ...e.resolution !== void 0 ? { resolution: e.resolution } : {}
1345
+ });
1346
+ if (pref !== "auto") {
1347
+ const match = entries.find(
1348
+ (e) => e.enabled && e.url.length > 0 && (e.profile === pref || e.brokerId === `${prefix}${pref}`)
1349
+ );
1350
+ if (match) return toPicked(match);
1351
+ }
1352
+ const eligible = entries.filter((e) => e.enabled && e.url.length > 0);
1353
+ if (eligible.length === 0) return null;
1354
+ const target = options.targetResolution;
1355
+ if (target) {
1356
+ const withRes = eligible.filter((e) => e.resolution !== void 0);
1357
+ if (withRes.length > 0) {
1358
+ const picked = pickClosestResolution(withRes, target);
1359
+ if (picked) return toPicked(picked);
1360
+ }
1361
+ }
1362
+ return toPicked(eligible[0]);
1363
+ }
1364
+ function pickClosestResolution(entries, target) {
1365
+ const targetPixels = target.width * target.height;
1366
+ let bestAbove;
1367
+ let bestBelow;
1368
+ for (const e of entries) {
1369
+ if (e.resolution === void 0) continue;
1370
+ const pixels = e.resolution.width * e.resolution.height;
1371
+ if (pixels >= targetPixels) {
1372
+ if (!bestAbove || pixels < bestAbove.pixels) bestAbove = { entry: e, pixels };
1373
+ } else {
1374
+ if (!bestBelow || pixels > bestBelow.pixels) bestBelow = { entry: e, pixels };
1375
+ }
1376
+ }
1377
+ return bestAbove?.entry ?? bestBelow?.entry;
1378
+ }
1215
1379
  const DEFAULT_RETENTION = {
1216
1380
  cleanupIntervalMs: 60 * 60 * 1e3,
1217
1381
  detectionEventsDays: 30,
@@ -1253,9 +1417,6 @@ const RUNTIME_DEFAULTS = {
1253
1417
  models: "camstack-data/models"
1254
1418
  },
1255
1419
  "providers": [],
1256
- // Recording
1257
- "recording.segmentDurationSeconds": 4,
1258
- "recording.defaultRetentionDays": 30,
1259
1420
  // Streaming ports are addon-specific (go2rtc owns its defaults)
1260
1421
  // FFmpeg
1261
1422
  "ffmpeg.binaryPath": "ffmpeg",
@@ -1485,10 +1646,10 @@ function pythonScriptForBackend(backend) {
1485
1646
  function requiresPython(runtime) {
1486
1647
  return runtime === "coreml" || runtime === "pytorch" || runtime === "openvino";
1487
1648
  }
1488
- async function runInferenceStep(fn, timeoutMs) {
1649
+ async function runInferenceStep(fn2, timeoutMs) {
1489
1650
  const t0 = performance.now();
1490
1651
  try {
1491
- const output = timeoutMs !== void 0 ? await withTimeout(fn(), timeoutMs) : await fn();
1652
+ const output = timeoutMs !== void 0 ? await withTimeout(fn2(), timeoutMs) : await fn2();
1492
1653
  return {
1493
1654
  output,
1494
1655
  durationMs: roundMs(performance.now() - t0),
@@ -1923,20 +2084,61 @@ function createRuntimeStateBridge(params) {
1923
2084
  return { ensureFresh, getStatus };
1924
2085
  }
1925
2086
  const DEVICE_LOCAL_STATE_CAPS = {
2087
+ airQualitySensor: airQualitySensorCapability,
2088
+ alarmPanel: alarmPanelCapability,
2089
+ ambientLightSensor: ambientLightSensorCapability,
1926
2090
  audioMetrics: audioMetricsCapability,
2091
+ automationControl: automationControlCapability,
1927
2092
  battery: batteryCapability,
2093
+ binary: binaryCapability,
1928
2094
  brightness: brightnessCapability,
1929
2095
  cameraStreams: cameraStreamsCapability,
2096
+ carbonMonoxide: carbonMonoxideCapability,
2097
+ climateControl: climateControlCapability,
2098
+ color: colorCapability,
2099
+ connectivity: connectivityCapability,
2100
+ consumables: consumablesCapability,
2101
+ contact: contactCapability,
2102
+ control: controlCapability,
2103
+ cover: coverCapability,
1930
2104
  deviceDiscovery: deviceDiscoveryCapability,
1931
2105
  deviceStatus: deviceStatusCapability,
1932
2106
  doorbell: doorbellCapability,
2107
+ enumSensor: enumSensorCapability,
2108
+ eventEmitter: eventEmitterCapability,
2109
+ fanControl: fanControlCapability,
1933
2110
  featureProbe: featureProbeCapability,
2111
+ flood: floodCapability,
2112
+ gas: gasCapability,
2113
+ humidifier: humidifierCapability,
2114
+ humiditySensor: humiditySensorCapability,
2115
+ image: imageCapability,
2116
+ lawnMowerControl: lawnMowerControlCapability,
2117
+ lockControl: lockControlCapability,
2118
+ mediaPlayer: mediaPlayerCapability,
1934
2119
  motion: motionCapability,
1935
2120
  motionTrigger: motionTriggerCapability,
1936
2121
  motionZones: motionZonesCapability,
2122
+ nativeObjectDetection: nativeObjectDetectionCapability,
2123
+ notifier: notifierCapability,
2124
+ numericSensor: numericSensorCapability,
2125
+ powerMeter: powerMeterCapability,
2126
+ presence: presenceCapability,
2127
+ pressureSensor: pressureSensorCapability,
2128
+ privacyMask: privacyMaskCapability,
1937
2129
  ptzAutotrack: ptzAutotrackCapability,
2130
+ scriptRunner: scriptRunnerCapability,
2131
+ smoke: smokeCapability,
1938
2132
  streamParams: streamParamsCapability,
1939
2133
  switch: switchCapability,
2134
+ tamper: tamperCapability,
2135
+ temperatureSensor: temperatureSensorCapability,
2136
+ update: updateCapability,
2137
+ vacuumControl: vacuumControlCapability,
2138
+ valve: valveCapability,
2139
+ vibration: vibrationCapability,
2140
+ waterHeater: waterHeaterCapability,
2141
+ weather: weatherCapability,
1940
2142
  zoneAnalytics: zoneAnalyticsCapability,
1941
2143
  zoneRules: zoneRulesCapability,
1942
2144
  zones: zonesCapability
@@ -2040,6 +2242,16 @@ class BaseDevice {
2040
2242
  * `kernel.devices.setDisabled(id, value)`.
2041
2243
  */
2042
2244
  disabled;
2245
+ /**
2246
+ * Cached materialised `SourceInfo` — either the value persisted under
2247
+ * `metadata.sourceInfo` at construction time, or a synthetic
2248
+ * `{ id: stableId, system: addonId }` for providers that haven't
2249
+ * migrated yet. Lazily populated on first `sourceInfo` read so the
2250
+ * cost of Zod-parsing the meta blob is paid once per device boot.
2251
+ * Invalidated by `updateSourceInfo()` so providers see the new value
2252
+ * back through the getter without a re-fetch from the meta surface.
2253
+ */
2254
+ _sourceInfoCache = null;
2043
2255
  constructor(ctx, schema, options) {
2044
2256
  this.ctx = ctx;
2045
2257
  this.id = ctx.id;
@@ -2080,7 +2292,7 @@ class BaseDevice {
2080
2292
  this.runtimeState = DeviceRuntimeState.fromInitial(initial, writer);
2081
2293
  ctx.bindRuntimeState?.(this.runtimeState);
2082
2294
  ctx.registerNativeCap?.(deviceStatusCapability, {});
2083
- const seed = { online: false, lastChangedAt: Date.now() };
2295
+ const seed = { online: true, lastChangedAt: Date.now() };
2084
2296
  this.runtimeState.setCapState("device-status", seed);
2085
2297
  ctx.registerNativeCap?.(featureProbeCapability, {});
2086
2298
  const probeSeed = {
@@ -2093,6 +2305,21 @@ class BaseDevice {
2093
2305
  };
2094
2306
  this.runtimeState.setCapState("feature-probe", probeSeed);
2095
2307
  }
2308
+ deviceActions = /* @__PURE__ */ new Map();
2309
+ /** Declare a device custom action + its typed handler. Idempotent per name. */
2310
+ registerDeviceAction(name, spec, handler) {
2311
+ this.deviceActions.set(name, {
2312
+ spec,
2313
+ handler
2314
+ });
2315
+ }
2316
+ /** Invoke a registered device action. Validates input against the spec. */
2317
+ async runDeviceAction(action, input) {
2318
+ const entry = this.deviceActions.get(action);
2319
+ if (!entry) throw new Error(`unknown device action "${action}" on device ${this.id}`);
2320
+ const parsed = entry.spec.input.parse(input);
2321
+ return entry.handler(parsed);
2322
+ }
2096
2323
  async removeDevice() {
2097
2324
  }
2098
2325
  /**
@@ -2109,6 +2336,71 @@ class BaseDevice {
2109
2336
  const next = { online, lastChangedAt: Date.now() };
2110
2337
  this.runtimeState.setCapState("device-status", next);
2111
2338
  }
2339
+ /**
2340
+ * Upstream-system identity + rendering envelope for this device. See
2341
+ * `SourceInfo` for the field contract. Always returns a valid object:
2342
+ * if the persisted `metadata.sourceInfo` blob is absent or fails Zod
2343
+ * validation, falls back to a synthetic `{ id: stableId, system: addonId }`
2344
+ * so providers that haven't migrated keep working without code changes.
2345
+ *
2346
+ * The value is cached after the first read. `updateSourceInfo()`
2347
+ * invalidates the cache so subsequent reads see the new patch. The
2348
+ * returned object is frozen to prevent accidental in-place mutation —
2349
+ * use `updateSourceInfo({ patch })` to change fields.
2350
+ */
2351
+ get sourceInfo() {
2352
+ if (this._sourceInfoCache) return this._sourceInfoCache;
2353
+ const fromMeta = extractSourceInfoFromMetadata(this.ctx.deviceMeta.metadata);
2354
+ const resolved = fromMeta ?? synthesizeSourceInfo({
2355
+ stableId: this.stableId,
2356
+ addonId: this.ctx.deviceMeta.addonId
2357
+ });
2358
+ this._sourceInfoCache = Object.freeze({ ...resolved });
2359
+ return this._sourceInfoCache;
2360
+ }
2361
+ /**
2362
+ * Convenience accessor for the upstream dispatch key. Equivalent to
2363
+ * `this.sourceInfo.id` — providers use this to keep a
2364
+ * `Map<sourceId, IDevice>` for routing inbound push events.
2365
+ */
2366
+ get sourceId() {
2367
+ return this.sourceInfo.id;
2368
+ }
2369
+ /**
2370
+ * Patch the device's `SourceInfo`. Shallow-merges `patch` over the
2371
+ * current value, persists the merged result under
2372
+ * `metadata.sourceInfo` via the `device-manager.setMetadata` cap, and
2373
+ * emits `EventCategory.DeviceSourceInfoChanged` for live consumers.
2374
+ *
2375
+ * Safe to call from anywhere in the device's lifetime — the call is
2376
+ * idempotent for `undefined` patch values (ignored) and best-effort
2377
+ * for persistence (a transient device-manager error doesn't unwind
2378
+ * the local cache update, so subsequent reads still see the patch).
2379
+ *
2380
+ * Drivers populate this on adoption + on every metadata change push
2381
+ * from the upstream source. Subscribers (UI, export adapters) react
2382
+ * via the `DeviceSourceInfoChanged` event without polling.
2383
+ */
2384
+ async updateSourceInfo(patch) {
2385
+ const next = mergeSourceInfo(this.sourceInfo, patch);
2386
+ this._sourceInfoCache = Object.freeze({ ...next });
2387
+ const api = this.ctx.api;
2388
+ const action = api?.deviceManager?.setMetadata;
2389
+ if (action) {
2390
+ try {
2391
+ await action.mutate({
2392
+ deviceId: this.id,
2393
+ patch: { [SOURCE_INFO_METADATA_KEY]: next }
2394
+ });
2395
+ } catch {
2396
+ }
2397
+ }
2398
+ this.ctx.eventBus.emit(createEvent(
2399
+ "device.source-info-changed",
2400
+ { type: "device", id: this.stableId },
2401
+ { deviceId: this.id, sourceInfo: next }
2402
+ ));
2403
+ }
2112
2404
  /**
2113
2405
  * Re-publish the device's current `features` array to the persisted
2114
2406
  * meta blob. Drivers call this after a probe finishes when the live
@@ -2359,7 +2651,13 @@ function toDeviceSummary(device, addonId) {
2359
2651
  parentDeviceId: device.parentDeviceId,
2360
2652
  online: device.online,
2361
2653
  features: [...device.features],
2362
- config
2654
+ config,
2655
+ // BaseDevice always resolves sourceInfo (synthetic or persisted).
2656
+ // `IDevice` doesn't declare the field — providers that override
2657
+ // `IDevice` outside the BaseDevice hierarchy stay backwards-
2658
+ // compatible. Read through a structural check so non-BaseDevice
2659
+ // implementations don't blow up.
2660
+ sourceInfo: device.sourceInfo
2363
2661
  };
2364
2662
  }
2365
2663
  class BaseDeviceProvider extends BaseAddon {
@@ -2668,6 +2966,80 @@ function getZodDefault(schema) {
2668
2966
  function humanizeKey(key) {
2669
2967
  return key.replace(/([A-Z])/g, " $1").replace(/[_-]/g, " ").replace(/^\w/, (c) => c.toUpperCase()).trim();
2670
2968
  }
2969
+ function isRecord(x) {
2970
+ return x !== null && typeof x === "object" && !Array.isArray(x);
2971
+ }
2972
+ function getByPath(obj, path) {
2973
+ const parts = path.split(".");
2974
+ let cur = obj;
2975
+ for (const part of parts) {
2976
+ if (!isRecord(cur)) return void 0;
2977
+ cur = cur[part];
2978
+ }
2979
+ return cur;
2980
+ }
2981
+ function setByPath(obj, path, value) {
2982
+ const dotIndex = path.indexOf(".");
2983
+ if (dotIndex === -1) {
2984
+ return { ...obj, [path]: value };
2985
+ }
2986
+ const head = path.slice(0, dotIndex);
2987
+ const tail = path.slice(dotIndex + 1);
2988
+ const child = obj[head];
2989
+ const childObj = isRecord(child) ? child : {};
2990
+ return { ...obj, [head]: setByPath(childObj, tail, value) };
2991
+ }
2992
+ function applyTransform(value, transform) {
2993
+ if (!transform || transform.kind === "identity") return value;
2994
+ if (transform.kind === "enum-map") {
2995
+ const key = String(value);
2996
+ if (Object.prototype.hasOwnProperty.call(transform.mapping, key)) return transform.mapping[key];
2997
+ return transform.fallback ?? null;
2998
+ }
2999
+ if (transform.kind === "linear") {
3000
+ if (typeof value !== "number" || Number.isNaN(value)) return null;
3001
+ let out = value * transform.scale + transform.offset;
3002
+ if (transform.clamp) {
3003
+ const min = transform.clamp[0];
3004
+ const max = transform.clamp[1];
3005
+ out = Math.min(max, Math.max(min, out));
3006
+ }
3007
+ return out;
3008
+ }
3009
+ return value;
3010
+ }
3011
+ function unwrap(schema) {
3012
+ let s = schema;
3013
+ while (s instanceof z.ZodNullable || s instanceof z.ZodOptional || s instanceof z.ZodDefault) {
3014
+ s = s.unwrap();
3015
+ }
3016
+ return s;
3017
+ }
3018
+ function leafKind(schema) {
3019
+ const s = unwrap(schema);
3020
+ if (s instanceof z.ZodEnum) return { kind: "enum", enumValues: s.options };
3021
+ if (s instanceof z.ZodNumber) return { kind: "number" };
3022
+ if (s instanceof z.ZodString) return { kind: "string" };
3023
+ if (s instanceof z.ZodBoolean) return { kind: "boolean" };
3024
+ return null;
3025
+ }
3026
+ function enumerateSchemaFields(schema, prefix = "") {
3027
+ const root = unwrap(schema);
3028
+ if (!(root instanceof z.ZodObject)) return [];
3029
+ const out = [];
3030
+ const shape = root.shape;
3031
+ for (const [key, field] of Object.entries(shape)) {
3032
+ const path = prefix ? `${prefix}.${key}` : key;
3033
+ const inner = unwrap(field);
3034
+ if (inner instanceof z.ZodObject) {
3035
+ out.push(...enumerateSchemaFields(inner, path));
3036
+ continue;
3037
+ }
3038
+ const leaf = leafKind(field);
3039
+ if (leaf) out.push({ path, kind: leaf.kind, ...leaf.enumValues ? { enumValues: leaf.enumValues } : {} });
3040
+ }
3041
+ return out;
3042
+ }
2671
3043
  const DEVICE_STATE_EVENT_CATEGORY = "device.state-changed";
2672
3044
  function createLazyTrpcSource(api) {
2673
3045
  const cache = /* @__PURE__ */ new Map();
@@ -2818,10 +3190,10 @@ function createDeviceProxy(api, binding, opts) {
2818
3190
  function callLeaf(capProp, method, kind, merged, push) {
2819
3191
  const leaf = typedApi[capProp]?.[method];
2820
3192
  if (!leaf) throw new Error(`DeviceProxy: api has no '${capProp}.${method}'`);
2821
- const fn = leaf;
2822
- if (kind === "mutation") return fn.mutate(merged);
2823
- if (kind === "subscription") return fn.subscribe(merged, push);
2824
- return fn.query(merged);
3193
+ const fn2 = leaf;
3194
+ if (kind === "mutation") return fn2.mutate(merged);
3195
+ if (kind === "subscription") return fn2.subscribe(merged, push);
3196
+ return fn2.query(merged);
2825
3197
  }
2826
3198
  function dispatch(capName, capProp, method, kind, input, push) {
2827
3199
  const entry = binding.entries.find((e) => e.capName === capName);
@@ -2831,8 +3203,21 @@ function createDeviceProxy(api, binding, opts) {
2831
3203
  return callLeaf(capProp, method, kind, mergeInput(input, void 0), push);
2832
3204
  }
2833
3205
  const accessoriesInterface = {
3206
+ setChildHidden: (input) => dispatch("accessories", "accessories", "setChildHidden", "mutation", input),
2834
3207
  getStatus: (input) => dispatch("accessories", "accessories", "getStatus", "query", input)
2835
3208
  };
3209
+ const airQualitySensorInterface = {
3210
+ getStatus: (input) => dispatch("air-quality-sensor", "airQualitySensor", "getStatus", "query", input)
3211
+ };
3212
+ const alarmPanelInterface = {
3213
+ arm: (input) => dispatch("alarm-panel", "alarmPanel", "arm", "mutation", input),
3214
+ disarm: (input) => dispatch("alarm-panel", "alarmPanel", "disarm", "mutation", input),
3215
+ trigger: (input) => dispatch("alarm-panel", "alarmPanel", "trigger", "mutation", input),
3216
+ getStatus: (input) => dispatch("alarm-panel", "alarmPanel", "getStatus", "query", input)
3217
+ };
3218
+ const ambientLightSensorInterface = {
3219
+ getStatus: (input) => dispatch("ambient-light-sensor", "ambientLightSensor", "getStatus", "query", input)
3220
+ };
2836
3221
  const audioAnalysisInterface = {
2837
3222
  resolveDeviceSettings: (input) => dispatch("audio-analysis", "audioAnalysis", "resolveDeviceSettings", "query", input),
2838
3223
  getDeviceSettingsContribution: (input) => dispatch("audio-analysis", "audioAnalysis", "getDeviceSettingsContribution", "query", input),
@@ -2843,13 +3228,26 @@ function createDeviceProxy(api, binding, opts) {
2843
3228
  getCurrentSnapshot: (input) => dispatch("audio-metrics", "audioMetrics", "getCurrentSnapshot", "query", input),
2844
3229
  getHistory: (input) => dispatch("audio-metrics", "audioMetrics", "getHistory", "query", input)
2845
3230
  };
3231
+ const automationControlInterface = {
3232
+ enable: (input) => dispatch("automation-control", "automationControl", "enable", "mutation", input),
3233
+ disable: (input) => dispatch("automation-control", "automationControl", "disable", "mutation", input),
3234
+ trigger: (input) => dispatch("automation-control", "automationControl", "trigger", "mutation", input),
3235
+ getStatus: (input) => dispatch("automation-control", "automationControl", "getStatus", "query", input)
3236
+ };
2846
3237
  const batteryInterface = {
3238
+ wakeForStream: (input) => dispatch("battery", "battery", "wakeForStream", "mutation", input),
2847
3239
  getStatus: (input) => dispatch("battery", "battery", "getStatus", "query", input)
2848
3240
  };
3241
+ const binaryInterface = {
3242
+ getStatus: (input) => dispatch("binary", "binary", "getStatus", "query", input)
3243
+ };
2849
3244
  const brightnessInterface = {
2850
3245
  setBrightness: (input) => dispatch("brightness", "brightness", "setBrightness", "mutation", input),
2851
3246
  getStatus: (input) => dispatch("brightness", "brightness", "getStatus", "query", input)
2852
3247
  };
3248
+ const buttonInterface = {
3249
+ press: (input) => dispatch("button", "button", "press", "mutation", input)
3250
+ };
2853
3251
  const cameraCredentialsInterface = {
2854
3252
  getCredentials: (input) => dispatch("camera-credentials", "cameraCredentials", "getCredentials", "query", input),
2855
3253
  getStatus: (input) => dispatch("camera-credentials", "cameraCredentials", "getStatus", "query", input)
@@ -2857,7 +3255,47 @@ function createDeviceProxy(api, binding, opts) {
2857
3255
  const cameraStreamsInterface = {
2858
3256
  getCameraStreams: (input) => dispatch("camera-streams", "cameraStreams", "getCameraStreams", "query", input),
2859
3257
  getBrokerStreams: (input) => dispatch("camera-streams", "cameraStreams", "getBrokerStreams", "query", input),
2860
- getRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getRtspEntries", "query", input)
3258
+ getRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getRtspEntries", "query", input),
3259
+ getProfileRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getProfileRtspEntries", "query", input),
3260
+ pickStream: (input) => dispatch("camera-streams", "cameraStreams", "pickStream", "query", input)
3261
+ };
3262
+ const carbonMonoxideInterface = {
3263
+ getStatus: (input) => dispatch("carbon-monoxide", "carbonMonoxide", "getStatus", "query", input)
3264
+ };
3265
+ const climateControlInterface = {
3266
+ setMode: (input) => dispatch("climate-control", "climateControl", "setMode", "mutation", input),
3267
+ setFanMode: (input) => dispatch("climate-control", "climateControl", "setFanMode", "mutation", input),
3268
+ setPreset: (input) => dispatch("climate-control", "climateControl", "setPreset", "mutation", input),
3269
+ setTarget: (input) => dispatch("climate-control", "climateControl", "setTarget", "mutation", input),
3270
+ setTargetRange: (input) => dispatch("climate-control", "climateControl", "setTargetRange", "mutation", input),
3271
+ setTargetHumidity: (input) => dispatch("climate-control", "climateControl", "setTargetHumidity", "mutation", input),
3272
+ getStatus: (input) => dispatch("climate-control", "climateControl", "getStatus", "query", input)
3273
+ };
3274
+ const colorInterface = {
3275
+ setColor: (input) => dispatch("color", "color", "setColor", "mutation", input),
3276
+ getStatus: (input) => dispatch("color", "color", "getStatus", "query", input)
3277
+ };
3278
+ const connectivityInterface = {
3279
+ getStatus: (input) => dispatch("connectivity", "connectivity", "getStatus", "query", input)
3280
+ };
3281
+ const consumablesInterface = {
3282
+ reset: (input) => dispatch("consumables", "consumables", "reset", "mutation", input),
3283
+ getStatus: (input) => dispatch("consumables", "consumables", "getStatus", "query", input)
3284
+ };
3285
+ const contactInterface = {
3286
+ getStatus: (input) => dispatch("contact", "contact", "getStatus", "query", input)
3287
+ };
3288
+ const controlInterface = {
3289
+ setValue: (input) => dispatch("control", "control", "setValue", "mutation", input),
3290
+ getStatus: (input) => dispatch("control", "control", "getStatus", "query", input)
3291
+ };
3292
+ const coverInterface = {
3293
+ open: (input) => dispatch("cover", "cover", "open", "mutation", input),
3294
+ close: (input) => dispatch("cover", "cover", "close", "mutation", input),
3295
+ stop: (input) => dispatch("cover", "cover", "stop", "mutation", input),
3296
+ setPosition: (input) => dispatch("cover", "cover", "setPosition", "mutation", input),
3297
+ setTiltPosition: (input) => dispatch("cover", "cover", "setTiltPosition", "mutation", input),
3298
+ getStatus: (input) => dispatch("cover", "cover", "getStatus", "query", input)
2861
3299
  };
2862
3300
  const detectionPipelineInterface = {
2863
3301
  getDeviceSettingsContribution: (input) => dispatch("detection-pipeline", "detectionPipeline", "getDeviceSettingsContribution", "query", input),
@@ -2875,8 +3313,10 @@ function createDeviceProxy(api, binding, opts) {
2875
3313
  getStreamSources: (input) => dispatch("device-ops", "deviceOps", "getStreamSources", "query", input),
2876
3314
  getConfigEntries: (input) => dispatch("device-ops", "deviceOps", "getConfigEntries", "query", input),
2877
3315
  setConfig: (input) => dispatch("device-ops", "deviceOps", "setConfig", "mutation", input),
3316
+ runAction: (input) => dispatch("device-ops", "deviceOps", "runAction", "mutation", input),
2878
3317
  removeDevice: (input) => dispatch("device-ops", "deviceOps", "removeDevice", "mutation", input),
2879
- getSettingsSchema: (input) => dispatch("device-ops", "deviceOps", "getSettingsSchema", "query", input)
3318
+ getSettingsSchema: (input) => dispatch("device-ops", "deviceOps", "getSettingsSchema", "query", input),
3319
+ getRawState: (input) => dispatch("device-ops", "deviceOps", "getRawState", "query", input)
2880
3320
  };
2881
3321
  const deviceStatusInterface = {
2882
3322
  getStatus: (input) => dispatch("device-status", "deviceStatus", "getStatus", "query", input)
@@ -2884,23 +3324,81 @@ function createDeviceProxy(api, binding, opts) {
2884
3324
  const doorbellInterface = {
2885
3325
  getStatus: (input) => dispatch("doorbell", "doorbell", "getStatus", "query", input)
2886
3326
  };
3327
+ const enumSensorInterface = {
3328
+ getStatus: (input) => dispatch("enum-sensor", "enumSensor", "getStatus", "query", input)
3329
+ };
3330
+ const eventEmitterInterface = {
3331
+ getStatus: (input) => dispatch("event-emitter", "eventEmitter", "getStatus", "query", input)
3332
+ };
2887
3333
  const eventsInterface = {
2888
3334
  getEvents: (input) => dispatch("events", "events", "getEvents", "query", input),
2889
3335
  getEventThumbnail: (input) => dispatch("events", "events", "getEventThumbnail", "query", input),
2890
3336
  getEventClipUrl: (input) => dispatch("events", "events", "getEventClipUrl", "query", input)
2891
3337
  };
3338
+ const fanControlInterface = {
3339
+ setPercentage: (input) => dispatch("fan-control", "fanControl", "setPercentage", "mutation", input),
3340
+ setPreset: (input) => dispatch("fan-control", "fanControl", "setPreset", "mutation", input),
3341
+ setDirection: (input) => dispatch("fan-control", "fanControl", "setDirection", "mutation", input),
3342
+ setOscillating: (input) => dispatch("fan-control", "fanControl", "setOscillating", "mutation", input),
3343
+ getStatus: (input) => dispatch("fan-control", "fanControl", "getStatus", "query", input)
3344
+ };
2892
3345
  const featureProbeInterface = {
2893
3346
  getStatus: (input) => dispatch("feature-probe", "featureProbe", "getStatus", "query", input)
2894
3347
  };
3348
+ const floodInterface = {
3349
+ getStatus: (input) => dispatch("flood", "flood", "getStatus", "query", input)
3350
+ };
3351
+ const gasInterface = {
3352
+ getStatus: (input) => dispatch("gas", "gas", "getStatus", "query", input)
3353
+ };
3354
+ const humidifierInterface = {
3355
+ setOn: (input) => dispatch("humidifier", "humidifier", "setOn", "mutation", input),
3356
+ setTargetHumidity: (input) => dispatch("humidifier", "humidifier", "setTargetHumidity", "mutation", input),
3357
+ setMode: (input) => dispatch("humidifier", "humidifier", "setMode", "mutation", input),
3358
+ getStatus: (input) => dispatch("humidifier", "humidifier", "getStatus", "query", input)
3359
+ };
3360
+ const humiditySensorInterface = {
3361
+ getStatus: (input) => dispatch("humidity-sensor", "humiditySensor", "getStatus", "query", input)
3362
+ };
3363
+ const imageInterface = {
3364
+ getStatus: (input) => dispatch("image", "image", "getStatus", "query", input)
3365
+ };
2895
3366
  const intercomInterface = {
2896
3367
  startSession: (input) => dispatch("intercom", "intercom", "startSession", "mutation", input),
2897
3368
  handleAnswer: (input) => dispatch("intercom", "intercom", "handleAnswer", "mutation", input),
2898
3369
  stopSession: (input) => dispatch("intercom", "intercom", "stopSession", "mutation", input),
2899
3370
  startTalkSession: (input) => dispatch("intercom", "intercom", "startTalkSession", "mutation", input),
2900
- pushTalkPcm: (input) => dispatch("intercom", "intercom", "pushTalkPcm", "mutation", input),
3371
+ pushTalkAudio: (input) => dispatch("intercom", "intercom", "pushTalkAudio", "mutation", input),
2901
3372
  endTalkSession: (input) => dispatch("intercom", "intercom", "endTalkSession", "mutation", input),
2902
3373
  getStatus: (input) => dispatch("intercom", "intercom", "getStatus", "query", input)
2903
3374
  };
3375
+ const lawnMowerControlInterface = {
3376
+ startMowing: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "startMowing", "mutation", input),
3377
+ pause: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "pause", "mutation", input),
3378
+ dock: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "dock", "mutation", input),
3379
+ getStatus: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "getStatus", "query", input)
3380
+ };
3381
+ const lockControlInterface = {
3382
+ lock: (input) => dispatch("lock-control", "lockControl", "lock", "mutation", input),
3383
+ unlock: (input) => dispatch("lock-control", "lockControl", "unlock", "mutation", input),
3384
+ open: (input) => dispatch("lock-control", "lockControl", "open", "mutation", input),
3385
+ getStatus: (input) => dispatch("lock-control", "lockControl", "getStatus", "query", input)
3386
+ };
3387
+ const mediaPlayerInterface = {
3388
+ play: (input) => dispatch("media-player", "mediaPlayer", "play", "mutation", input),
3389
+ pause: (input) => dispatch("media-player", "mediaPlayer", "pause", "mutation", input),
3390
+ stop: (input) => dispatch("media-player", "mediaPlayer", "stop", "mutation", input),
3391
+ next: (input) => dispatch("media-player", "mediaPlayer", "next", "mutation", input),
3392
+ previous: (input) => dispatch("media-player", "mediaPlayer", "previous", "mutation", input),
3393
+ seek: (input) => dispatch("media-player", "mediaPlayer", "seek", "mutation", input),
3394
+ setVolume: (input) => dispatch("media-player", "mediaPlayer", "setVolume", "mutation", input),
3395
+ setMute: (input) => dispatch("media-player", "mediaPlayer", "setMute", "mutation", input),
3396
+ setShuffle: (input) => dispatch("media-player", "mediaPlayer", "setShuffle", "mutation", input),
3397
+ setRepeat: (input) => dispatch("media-player", "mediaPlayer", "setRepeat", "mutation", input),
3398
+ selectSource: (input) => dispatch("media-player", "mediaPlayer", "selectSource", "mutation", input),
3399
+ playMedia: (input) => dispatch("media-player", "mediaPlayer", "playMedia", "mutation", input),
3400
+ getStatus: (input) => dispatch("media-player", "mediaPlayer", "getStatus", "query", input)
3401
+ };
2904
3402
  const motionInterface = {
2905
3403
  isDetected: (input) => dispatch("motion", "motion", "isDetected", "query", input),
2906
3404
  getStatus: (input) => dispatch("motion", "motion", "getStatus", "query", input)
@@ -2923,8 +3421,17 @@ function createDeviceProxy(api, binding, opts) {
2923
3421
  getStatus: (input) => dispatch("motion-zones", "motionZones", "getStatus", "query", input)
2924
3422
  };
2925
3423
  const nativeObjectDetectionInterface = {
3424
+ setEnabled: (input) => dispatch("native-object-detection", "nativeObjectDetection", "setEnabled", "mutation", input),
2926
3425
  getStatus: (input) => dispatch("native-object-detection", "nativeObjectDetection", "getStatus", "query", input)
2927
3426
  };
3427
+ const notifierInterface = {
3428
+ send: (input) => dispatch("notifier", "notifier", "send", "mutation", input),
3429
+ cancel: (input) => dispatch("notifier", "notifier", "cancel", "mutation", input),
3430
+ getStatus: (input) => dispatch("notifier", "notifier", "getStatus", "query", input)
3431
+ };
3432
+ const numericSensorInterface = {
3433
+ getStatus: (input) => dispatch("numeric-sensor", "numericSensor", "getStatus", "query", input)
3434
+ };
2928
3435
  const osdInterface = {
2929
3436
  setOverlay: (input) => dispatch("osd", "osd", "setOverlay", "mutation", input),
2930
3437
  getStatus: (input) => dispatch("osd", "osd", "getStatus", "query", input)
@@ -2937,12 +3444,28 @@ function createDeviceProxy(api, binding, opts) {
2937
3444
  getMotionEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getMotionEvents", "query", input),
2938
3445
  getObjectEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getObjectEvents", "query", input),
2939
3446
  getAudioEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getAudioEvents", "query", input),
3447
+ getEventDensity: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventDensity", "query", input),
3448
+ pruneEventsBefore: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "pruneEventsBefore", "mutation", input),
2940
3449
  getEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventMedia", "query", input),
2941
3450
  getTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrackMedia", "query", input),
2942
3451
  getDeviceSettingsContribution: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getDeviceSettingsContribution", "query", input),
2943
3452
  getDeviceLiveContribution: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getDeviceLiveContribution", "query", input),
2944
3453
  applyDeviceSettingsPatch: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "applyDeviceSettingsPatch", "mutation", input)
2945
3454
  };
3455
+ const powerMeterInterface = {
3456
+ getStatus: (input) => dispatch("power-meter", "powerMeter", "getStatus", "query", input)
3457
+ };
3458
+ const presenceInterface = {
3459
+ getStatus: (input) => dispatch("presence", "presence", "getStatus", "query", input)
3460
+ };
3461
+ const pressureSensorInterface = {
3462
+ getStatus: (input) => dispatch("pressure-sensor", "pressureSensor", "getStatus", "query", input)
3463
+ };
3464
+ const privacyMaskInterface = {
3465
+ getOptions: (input) => dispatch("privacy-mask", "privacyMask", "getOptions", "query", input),
3466
+ setMask: (input) => dispatch("privacy-mask", "privacyMask", "setMask", "mutation", input),
3467
+ getStatus: (input) => dispatch("privacy-mask", "privacyMask", "getStatus", "query", input)
3468
+ };
2946
3469
  const ptzInterface = {
2947
3470
  move: (input) => dispatch("ptz", "ptz", "move", "mutation", input),
2948
3471
  continuousMove: (input) => dispatch("ptz", "ptz", "continuousMove", "mutation", input),
@@ -2966,10 +3489,13 @@ function createDeviceProxy(api, binding, opts) {
2966
3489
  const rebootInterface = {
2967
3490
  reboot: (input) => dispatch("reboot", "reboot", "reboot", "mutation", input)
2968
3491
  };
2969
- const recordingInterface = {
2970
- getSegments: (input) => dispatch("recording", "recording", "getSegments", "query", input),
2971
- getPlaybackUrl: (input) => dispatch("recording", "recording", "getPlaybackUrl", "query", input),
2972
- getThumbnailAt: (input) => dispatch("recording", "recording", "getThumbnailAt", "query", input)
3492
+ const scriptRunnerInterface = {
3493
+ run: (input) => dispatch("script-runner", "scriptRunner", "run", "mutation", input),
3494
+ stop: (input) => dispatch("script-runner", "scriptRunner", "stop", "mutation", input),
3495
+ getStatus: (input) => dispatch("script-runner", "scriptRunner", "getStatus", "query", input)
3496
+ };
3497
+ const smokeInterface = {
3498
+ getStatus: (input) => dispatch("smoke", "smoke", "getStatus", "query", input)
2973
3499
  };
2974
3500
  const snapshotInterface = {
2975
3501
  getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
@@ -2979,6 +3505,9 @@ function createDeviceProxy(api, binding, opts) {
2979
3505
  getDeviceLiveContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceLiveContribution", "query", input),
2980
3506
  applyDeviceSettingsPatch: (input) => dispatch("snapshot", "snapshot", "applyDeviceSettingsPatch", "mutation", input)
2981
3507
  };
3508
+ const streamCatalogInterface = {
3509
+ getCatalog: (input) => dispatch("stream-catalog", "streamCatalog", "getCatalog", "query", input)
3510
+ };
2982
3511
  const streamParamsInterface = {
2983
3512
  getOptions: (input) => dispatch("stream-params", "streamParams", "getOptions", "query", input),
2984
3513
  setProfile: (input) => dispatch("stream-params", "streamParams", "setProfile", "mutation", input),
@@ -2989,13 +3518,54 @@ function createDeviceProxy(api, binding, opts) {
2989
3518
  setState: (input) => dispatch("switch", "switch", "setState", "mutation", input),
2990
3519
  getStatus: (input) => dispatch("switch", "switch", "getStatus", "query", input)
2991
3520
  };
3521
+ const tamperInterface = {
3522
+ getStatus: (input) => dispatch("tamper", "tamper", "getStatus", "query", input)
3523
+ };
3524
+ const temperatureSensorInterface = {
3525
+ getStatus: (input) => dispatch("temperature-sensor", "temperatureSensor", "getStatus", "query", input)
3526
+ };
3527
+ const updateInterface = {
3528
+ installUpdate: (input) => dispatch("update", "update", "installUpdate", "mutation", input),
3529
+ getStatus: (input) => dispatch("update", "update", "getStatus", "query", input)
3530
+ };
3531
+ const vacuumControlInterface = {
3532
+ start: (input) => dispatch("vacuum-control", "vacuumControl", "start", "mutation", input),
3533
+ pause: (input) => dispatch("vacuum-control", "vacuumControl", "pause", "mutation", input),
3534
+ stop: (input) => dispatch("vacuum-control", "vacuumControl", "stop", "mutation", input),
3535
+ returnToBase: (input) => dispatch("vacuum-control", "vacuumControl", "returnToBase", "mutation", input),
3536
+ locate: (input) => dispatch("vacuum-control", "vacuumControl", "locate", "mutation", input),
3537
+ setFanSpeed: (input) => dispatch("vacuum-control", "vacuumControl", "setFanSpeed", "mutation", input),
3538
+ getStatus: (input) => dispatch("vacuum-control", "vacuumControl", "getStatus", "query", input)
3539
+ };
3540
+ const valveInterface = {
3541
+ open: (input) => dispatch("valve", "valve", "open", "mutation", input),
3542
+ close: (input) => dispatch("valve", "valve", "close", "mutation", input),
3543
+ stop: (input) => dispatch("valve", "valve", "stop", "mutation", input),
3544
+ setPosition: (input) => dispatch("valve", "valve", "setPosition", "mutation", input),
3545
+ getStatus: (input) => dispatch("valve", "valve", "getStatus", "query", input)
3546
+ };
3547
+ const vibrationInterface = {
3548
+ getStatus: (input) => dispatch("vibration", "vibration", "getStatus", "query", input)
3549
+ };
3550
+ const waterHeaterInterface = {
3551
+ setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
3552
+ setOperationMode: (input) => dispatch("water-heater", "waterHeater", "setOperationMode", "mutation", input),
3553
+ setAway: (input) => dispatch("water-heater", "waterHeater", "setAway", "mutation", input),
3554
+ getStatus: (input) => dispatch("water-heater", "waterHeater", "getStatus", "query", input)
3555
+ };
3556
+ const weatherInterface = {
3557
+ getStatus: (input) => dispatch("weather", "weather", "getStatus", "query", input)
3558
+ };
2992
3559
  const webrtcSessionInterface = {
2993
3560
  listStreams: (input) => dispatch("webrtc-session", "webrtcSession", "listStreams", "query", input),
2994
3561
  createSession: (input) => dispatch("webrtc-session", "webrtcSession", "createSession", "mutation", input),
2995
3562
  handleOffer: (input) => dispatch("webrtc-session", "webrtcSession", "handleOffer", "mutation", input),
2996
3563
  handleAnswer: (input) => dispatch("webrtc-session", "webrtcSession", "handleAnswer", "mutation", input),
3564
+ addIceCandidate: (input) => dispatch("webrtc-session", "webrtcSession", "addIceCandidate", "mutation", input),
3565
+ getIceCandidates: (input) => dispatch("webrtc-session", "webrtcSession", "getIceCandidates", "query", input),
2997
3566
  closeSession: (input) => dispatch("webrtc-session", "webrtcSession", "closeSession", "mutation", input),
2998
- hasAdaptiveBitrate: (input) => dispatch("webrtc-session", "webrtcSession", "hasAdaptiveBitrate", "query", input)
3567
+ hasAdaptiveBitrate: (input) => dispatch("webrtc-session", "webrtcSession", "hasAdaptiveBitrate", "query", input),
3568
+ getSessionState: (input) => dispatch("webrtc-session", "webrtcSession", "getSessionState", "query", input)
2999
3569
  };
3000
3570
  const zoneAnalyticsInterface = {
3001
3571
  getCurrentSnapshot: (input) => dispatch("zone-analytics", "zoneAnalytics", "getCurrentSnapshot", "query", input),
@@ -3017,6 +3587,14 @@ function createDeviceProxy(api, binding, opts) {
3017
3587
  getDeviceSettings: (input) => dispatchSystem("addonSettings", "getDeviceSettings", "query", input),
3018
3588
  updateDeviceSettings: (input) => dispatchSystem("addonSettings", "updateDeviceSettings", "mutation", input)
3019
3589
  };
3590
+ const cameraPipelineConfigInterface = {
3591
+ getDeviceSettingsContribution: (input) => dispatchSystem("cameraPipelineConfig", "getDeviceSettingsContribution", "query", input),
3592
+ getDeviceLiveContribution: (input) => dispatchSystem("cameraPipelineConfig", "getDeviceLiveContribution", "query", input),
3593
+ applyDeviceSettingsPatch: (input) => dispatchSystem("cameraPipelineConfig", "applyDeviceSettingsPatch", "mutation", input)
3594
+ };
3595
+ const deviceAdoptionInterface = {
3596
+ getStatus: (input) => dispatchSystem("deviceAdoption", "getStatus", "query", input)
3597
+ };
3020
3598
  const deviceExportInterface = {
3021
3599
  getDeviceSettingsContribution: (input) => dispatchSystem("deviceExport", "getDeviceSettingsContribution", "query", input),
3022
3600
  getDeviceLiveContribution: (input) => dispatchSystem("deviceExport", "getDeviceLiveContribution", "query", input),
@@ -3028,6 +3606,15 @@ function createDeviceProxy(api, binding, opts) {
3028
3606
  loadMeta: (input) => dispatchSystem("deviceManager", "loadMeta", "query", input),
3029
3607
  setName: (input) => dispatchSystem("deviceManager", "setName", "mutation", input),
3030
3608
  setLocation: (input) => dispatchSystem("deviceManager", "setLocation", "mutation", input),
3609
+ setType: (input) => dispatchSystem("deviceManager", "setType", "mutation", input),
3610
+ setIntegrationId: (input) => dispatchSystem("deviceManager", "setIntegrationId", "mutation", input),
3611
+ setLinkDeviceId: (input) => dispatchSystem("deviceManager", "setLinkDeviceId", "mutation", input),
3612
+ setPrimaryChildEntityId: (input) => dispatchSystem("deviceManager", "setPrimaryChildEntityId", "mutation", input),
3613
+ setChildLayout: (input) => dispatchSystem("deviceManager", "setChildLayout", "mutation", input),
3614
+ setDeviceLinks: (input) => dispatchSystem("deviceManager", "setDeviceLinks", "mutation", input),
3615
+ getWireableFields: (input) => dispatchSystem("deviceManager", "getWireableFields", "query", input),
3616
+ setRole: (input) => dispatchSystem("deviceManager", "setRole", "mutation", input),
3617
+ applyInitialMeta: (input) => dispatchSystem("deviceManager", "applyInitialMeta", "mutation", input),
3031
3618
  setMetadata: (input) => dispatchSystem("deviceManager", "setMetadata", "mutation", input),
3032
3619
  setDisabled: (input) => dispatchSystem("deviceManager", "setDisabled", "mutation", input),
3033
3620
  getDevice: (input) => dispatchSystem("deviceManager", "getDevice", "query", input),
@@ -3047,6 +3634,7 @@ function createDeviceProxy(api, binding, opts) {
3047
3634
  getDeviceSettingsAggregate: (input) => dispatchSystem("deviceManager", "getDeviceSettingsAggregate", "query", input),
3048
3635
  getDeviceLiveInfoAggregate: (input) => dispatchSystem("deviceManager", "getDeviceLiveInfoAggregate", "query", input),
3049
3636
  getDeviceAggregate: (input) => dispatchSystem("deviceManager", "getDeviceAggregate", "query", input),
3637
+ runDeviceAction: (input) => dispatchSystem("deviceManager", "runDeviceAction", "mutation", input),
3050
3638
  updateDeviceField: (input) => dispatchSystem("deviceManager", "updateDeviceField", "mutation", input),
3051
3639
  updateDeviceFieldsBatch: (input) => dispatchSystem("deviceManager", "updateDeviceFieldsBatch", "mutation", input),
3052
3640
  testField: (input) => dispatchSystem("deviceManager", "testField", "mutation", input),
@@ -3091,8 +3679,17 @@ function createDeviceProxy(api, binding, opts) {
3091
3679
  detachCamera: (input) => dispatchSystem("pipelineRunner", "detachCamera", "mutation", input),
3092
3680
  getCameraMetrics: (input) => dispatchSystem("pipelineRunner", "getCameraMetrics", "query", input)
3093
3681
  };
3094
- const recordingEngineInterface = {
3095
- getPolicyStatus: (input) => dispatchSystem("recordingEngine", "getPolicyStatus", "query", input)
3682
+ const recordingInterface = {
3683
+ getAvailability: (input) => dispatchSystem("recording", "getAvailability", "query", input),
3684
+ getPlaybackManifest: (input) => dispatchSystem("recording", "getPlaybackManifest", "query", input),
3685
+ getDeviceConfig: (input) => dispatchSystem("recording", "getDeviceConfig", "query", input),
3686
+ setDeviceConfig: (input) => dispatchSystem("recording", "setDeviceConfig", "mutation", input),
3687
+ rescanStorage: (input) => dispatchSystem("recording", "rescanStorage", "mutation", input),
3688
+ pruneFootage: (input) => dispatchSystem("recording", "pruneFootage", "mutation", input),
3689
+ getStatus: (input) => dispatchSystem("recording", "getStatus", "query", input),
3690
+ getDeviceSettingsContribution: (input) => dispatchSystem("recording", "getDeviceSettingsContribution", "query", input),
3691
+ getDeviceLiveContribution: (input) => dispatchSystem("recording", "getDeviceLiveContribution", "query", input),
3692
+ applyDeviceSettingsPatch: (input) => dispatchSystem("recording", "applyDeviceSettingsPatch", "mutation", input)
3096
3693
  };
3097
3694
  const snapshotProviderInterface = {
3098
3695
  supportsDevice: (input) => dispatchSystem("snapshotProvider", "supportsDevice", "query", input),
@@ -3112,58 +3709,142 @@ function createDeviceProxy(api, binding, opts) {
3112
3709
  deviceId: binding.deviceId,
3113
3710
  binding,
3114
3711
  state: {
3712
+ airQualitySensor: createSliceHandle(stateSource, binding.deviceId, "air-quality-sensor"),
3713
+ alarmPanel: createSliceHandle(stateSource, binding.deviceId, "alarm-panel"),
3714
+ ambientLightSensor: createSliceHandle(stateSource, binding.deviceId, "ambient-light-sensor"),
3115
3715
  audioMetrics: createSliceHandle(stateSource, binding.deviceId, "audio-metrics"),
3716
+ automationControl: createSliceHandle(stateSource, binding.deviceId, "automation-control"),
3116
3717
  battery: createSliceHandle(stateSource, binding.deviceId, "battery"),
3718
+ binary: createSliceHandle(stateSource, binding.deviceId, "binary"),
3117
3719
  brightness: createSliceHandle(stateSource, binding.deviceId, "brightness"),
3118
3720
  cameraStreams: createSliceHandle(stateSource, binding.deviceId, "camera-streams"),
3721
+ carbonMonoxide: createSliceHandle(stateSource, binding.deviceId, "carbon-monoxide"),
3722
+ climateControl: createSliceHandle(stateSource, binding.deviceId, "climate-control"),
3723
+ color: createSliceHandle(stateSource, binding.deviceId, "color"),
3724
+ connectivity: createSliceHandle(stateSource, binding.deviceId, "connectivity"),
3725
+ consumables: createSliceHandle(stateSource, binding.deviceId, "consumables"),
3726
+ contact: createSliceHandle(stateSource, binding.deviceId, "contact"),
3727
+ control: createSliceHandle(stateSource, binding.deviceId, "control"),
3728
+ cover: createSliceHandle(stateSource, binding.deviceId, "cover"),
3119
3729
  deviceDiscovery: createSliceHandle(stateSource, binding.deviceId, "device-discovery"),
3120
3730
  deviceStatus: createSliceHandle(stateSource, binding.deviceId, "device-status"),
3121
3731
  doorbell: createSliceHandle(stateSource, binding.deviceId, "doorbell"),
3732
+ enumSensor: createSliceHandle(stateSource, binding.deviceId, "enum-sensor"),
3733
+ eventEmitter: createSliceHandle(stateSource, binding.deviceId, "event-emitter"),
3734
+ fanControl: createSliceHandle(stateSource, binding.deviceId, "fan-control"),
3122
3735
  featureProbe: createSliceHandle(stateSource, binding.deviceId, "feature-probe"),
3736
+ flood: createSliceHandle(stateSource, binding.deviceId, "flood"),
3737
+ gas: createSliceHandle(stateSource, binding.deviceId, "gas"),
3738
+ humidifier: createSliceHandle(stateSource, binding.deviceId, "humidifier"),
3739
+ humiditySensor: createSliceHandle(stateSource, binding.deviceId, "humidity-sensor"),
3740
+ image: createSliceHandle(stateSource, binding.deviceId, "image"),
3741
+ lawnMowerControl: createSliceHandle(stateSource, binding.deviceId, "lawn-mower-control"),
3742
+ lockControl: createSliceHandle(stateSource, binding.deviceId, "lock-control"),
3743
+ mediaPlayer: createSliceHandle(stateSource, binding.deviceId, "media-player"),
3123
3744
  motion: createSliceHandle(stateSource, binding.deviceId, "motion"),
3124
3745
  motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
3125
3746
  motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
3747
+ nativeObjectDetection: createSliceHandle(stateSource, binding.deviceId, "native-object-detection"),
3748
+ notifier: createSliceHandle(stateSource, binding.deviceId, "notifier"),
3749
+ numericSensor: createSliceHandle(stateSource, binding.deviceId, "numeric-sensor"),
3750
+ powerMeter: createSliceHandle(stateSource, binding.deviceId, "power-meter"),
3751
+ presence: createSliceHandle(stateSource, binding.deviceId, "presence"),
3752
+ pressureSensor: createSliceHandle(stateSource, binding.deviceId, "pressure-sensor"),
3753
+ privacyMask: createSliceHandle(stateSource, binding.deviceId, "privacy-mask"),
3126
3754
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
3755
+ scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
3756
+ smoke: createSliceHandle(stateSource, binding.deviceId, "smoke"),
3127
3757
  streamParams: createSliceHandle(stateSource, binding.deviceId, "stream-params"),
3128
3758
  switch: createSliceHandle(stateSource, binding.deviceId, "switch"),
3759
+ tamper: createSliceHandle(stateSource, binding.deviceId, "tamper"),
3760
+ temperatureSensor: createSliceHandle(stateSource, binding.deviceId, "temperature-sensor"),
3761
+ update: createSliceHandle(stateSource, binding.deviceId, "update"),
3762
+ vacuumControl: createSliceHandle(stateSource, binding.deviceId, "vacuum-control"),
3763
+ valve: createSliceHandle(stateSource, binding.deviceId, "valve"),
3764
+ vibration: createSliceHandle(stateSource, binding.deviceId, "vibration"),
3765
+ waterHeater: createSliceHandle(stateSource, binding.deviceId, "water-heater"),
3766
+ weather: createSliceHandle(stateSource, binding.deviceId, "weather"),
3129
3767
  zoneAnalytics: createSliceHandle(stateSource, binding.deviceId, "zone-analytics"),
3130
3768
  zoneRules: createSliceHandle(stateSource, binding.deviceId, "zone-rules"),
3131
3769
  zones: createSliceHandle(stateSource, binding.deviceId, "zones")
3132
3770
  },
3133
3771
  accessories: accessoriesInterface,
3772
+ airQualitySensor: airQualitySensorInterface,
3773
+ alarmPanel: alarmPanelInterface,
3774
+ ambientLightSensor: ambientLightSensorInterface,
3134
3775
  audioAnalysis: audioAnalysisInterface,
3135
3776
  audioMetrics: audioMetricsInterface,
3777
+ automationControl: automationControlInterface,
3136
3778
  battery: batteryInterface,
3779
+ binary: binaryInterface,
3137
3780
  brightness: brightnessInterface,
3781
+ button: buttonInterface,
3138
3782
  cameraCredentials: cameraCredentialsInterface,
3139
3783
  cameraStreams: cameraStreamsInterface,
3784
+ carbonMonoxide: carbonMonoxideInterface,
3785
+ climateControl: climateControlInterface,
3786
+ color: colorInterface,
3787
+ connectivity: connectivityInterface,
3788
+ consumables: consumablesInterface,
3789
+ contact: contactInterface,
3790
+ control: controlInterface,
3791
+ cover: coverInterface,
3140
3792
  detectionPipeline: detectionPipelineInterface,
3141
3793
  deviceDiscovery: deviceDiscoveryInterface,
3142
3794
  deviceOps: deviceOpsInterface,
3143
3795
  deviceStatus: deviceStatusInterface,
3144
3796
  doorbell: doorbellInterface,
3797
+ enumSensor: enumSensorInterface,
3798
+ eventEmitter: eventEmitterInterface,
3145
3799
  events: eventsInterface,
3800
+ fanControl: fanControlInterface,
3146
3801
  featureProbe: featureProbeInterface,
3802
+ flood: floodInterface,
3803
+ gas: gasInterface,
3804
+ humidifier: humidifierInterface,
3805
+ humiditySensor: humiditySensorInterface,
3806
+ image: imageInterface,
3147
3807
  intercom: intercomInterface,
3808
+ lawnMowerControl: lawnMowerControlInterface,
3809
+ lockControl: lockControlInterface,
3810
+ mediaPlayer: mediaPlayerInterface,
3148
3811
  motion: motionInterface,
3149
3812
  motionDetection: motionDetectionInterface,
3150
3813
  motionTrigger: motionTriggerInterface,
3151
3814
  motionZones: motionZonesInterface,
3152
3815
  nativeObjectDetection: nativeObjectDetectionInterface,
3816
+ notifier: notifierInterface,
3817
+ numericSensor: numericSensorInterface,
3153
3818
  osd: osdInterface,
3154
3819
  pipelineAnalytics: pipelineAnalyticsInterface,
3820
+ powerMeter: powerMeterInterface,
3821
+ presence: presenceInterface,
3822
+ pressureSensor: pressureSensorInterface,
3823
+ privacyMask: privacyMaskInterface,
3155
3824
  ptz: ptzInterface,
3156
3825
  ptzAutotrack: ptzAutotrackInterface,
3157
3826
  reboot: rebootInterface,
3158
- recording: recordingInterface,
3827
+ scriptRunner: scriptRunnerInterface,
3828
+ smoke: smokeInterface,
3159
3829
  snapshot: snapshotInterface,
3830
+ streamCatalog: streamCatalogInterface,
3160
3831
  streamParams: streamParamsInterface,
3161
3832
  switch: switchInterface,
3833
+ tamper: tamperInterface,
3834
+ temperatureSensor: temperatureSensorInterface,
3835
+ update: updateInterface,
3836
+ vacuumControl: vacuumControlInterface,
3837
+ valve: valveInterface,
3838
+ vibration: vibrationInterface,
3839
+ waterHeater: waterHeaterInterface,
3840
+ weather: weatherInterface,
3162
3841
  webrtcSession: webrtcSessionInterface,
3163
3842
  zoneAnalytics: zoneAnalyticsInterface,
3164
3843
  zoneRules: zoneRulesInterface,
3165
3844
  zones: zonesInterface,
3166
3845
  addonSettings: addonSettingsInterface,
3846
+ cameraPipelineConfig: cameraPipelineConfigInterface,
3847
+ deviceAdoption: deviceAdoptionInterface,
3167
3848
  deviceExport: deviceExportInterface,
3168
3849
  deviceManager: deviceManagerInterface,
3169
3850
  deviceState: deviceStateInterface,
@@ -3171,7 +3852,7 @@ function createDeviceProxy(api, binding, opts) {
3171
3852
  pipelineExecutor: pipelineExecutorInterface,
3172
3853
  pipelineOrchestrator: pipelineOrchestratorInterface,
3173
3854
  pipelineRunner: pipelineRunnerInterface,
3174
- recordingEngine: recordingEngineInterface,
3855
+ recording: recordingInterface,
3175
3856
  snapshotProvider: snapshotProviderInterface,
3176
3857
  streamBroker: streamBrokerInterface
3177
3858
  };
@@ -3230,10 +3911,10 @@ function createSystemProxy(api) {
3230
3911
  function dispatch(capProp, method, kind, input, push) {
3231
3912
  const leaf = typedApi[capProp]?.[method];
3232
3913
  if (!leaf) throw new Error(`SystemProxy: api has no '${capProp}.${method}'`);
3233
- const fn = leaf;
3234
- if (kind === "mutation") return fn.mutate(input);
3235
- if (kind === "subscription") return fn.subscribe(input, push);
3236
- return fn.query(input);
3914
+ const fn2 = leaf;
3915
+ if (kind === "mutation") return fn2.mutate(input);
3916
+ if (kind === "subscription") return fn2.subscribe(input, push);
3917
+ return fn2.query(input);
3237
3918
  }
3238
3919
  const addonPagesInterface = {
3239
3920
  listPages: (input) => dispatch("addonPages", "listPages", "query", input)
@@ -3259,6 +3940,10 @@ function createSystemProxy(api) {
3259
3940
  listCapabilityProviders: (input) => dispatch("addons", "listCapabilityProviders", "query", input),
3260
3941
  setCapabilityProviderEnabled: (input) => dispatch("addons", "setCapabilityProviderEnabled", "mutation", input),
3261
3942
  updateFrameworkPackage: (input) => dispatch("addons", "updateFrameworkPackage", "mutation", input),
3943
+ startBulkUpdate: (input) => dispatch("addons", "startBulkUpdate", "mutation", input),
3944
+ getBulkUpdateState: (input) => dispatch("addons", "getBulkUpdateState", "query", input),
3945
+ cancelBulkUpdate: (input) => dispatch("addons", "cancelBulkUpdate", "mutation", input),
3946
+ listActiveBulkUpdates: (input) => dispatch("addons", "listActiveBulkUpdates", "query", input),
3262
3947
  getVersions: (input) => dispatch("addons", "getVersions", "query", input),
3263
3948
  restartAddon: (input) => dispatch("addons", "restartAddon", "mutation", input),
3264
3949
  retryLoad: (input) => dispatch("addons", "retryLoad", "mutation", input),
@@ -3318,6 +4003,24 @@ function createSystemProxy(api) {
3318
4003
  upsertDestinationPolicy: (input) => dispatch("backup", "upsertDestinationPolicy", "mutation", input),
3319
4004
  previewSchedule: (input) => dispatch("backup", "previewSchedule", "query", input)
3320
4005
  };
4006
+ const brokerInterface = {
4007
+ list: (input) => dispatch("broker", "list", "query", input),
4008
+ get: (input) => dispatch("broker", "get", "query", input),
4009
+ listProviders: (input) => dispatch("broker", "listProviders", "query", input),
4010
+ add: (input) => dispatch("broker", "add", "mutation", input),
4011
+ remove: (input) => dispatch("broker", "remove", "mutation", input),
4012
+ testConnection: (input) => dispatch("broker", "testConnection", "mutation", input),
4013
+ getSettings: (input) => dispatch("broker", "getSettings", "query", input),
4014
+ setSettings: (input) => dispatch("broker", "setSettings", "mutation", input),
4015
+ getBrokerConfig: (input) => dispatch("broker", "getBrokerConfig", "query", input),
4016
+ getSettingsSchema: (input) => dispatch("broker", "getSettingsSchema", "query", input),
4017
+ testSettings: (input) => dispatch("broker", "testSettings", "mutation", input),
4018
+ publish: (input) => dispatch("broker", "publish", "mutation", input),
4019
+ subscribe: (input) => dispatch("broker", "subscribe", "mutation", input),
4020
+ unsubscribe: (input) => dispatch("broker", "unsubscribe", "mutation", input),
4021
+ getState: (input) => dispatch("broker", "getState", "query", input),
4022
+ getStatus: (input) => dispatch("broker", "getStatus", "query", input)
4023
+ };
3321
4024
  const decoderInterface = {
3322
4025
  supportsCodec: (input) => dispatch("decoder", "supportsCodec", "query", input),
3323
4026
  getInfo: (input) => dispatch("decoder", "getInfo", "query", input),
@@ -3334,6 +4037,15 @@ function createSystemProxy(api) {
3334
4037
  listActiveSessions: (input) => dispatch("decoder", "listActiveSessions", "query", input),
3335
4038
  reprobeHwaccel: (input) => dispatch("decoder", "reprobeHwaccel", "mutation", input)
3336
4039
  };
4040
+ const deviceAdoptionInterface = {
4041
+ listCandidateFilters: (input) => dispatch("deviceAdoption", "listCandidateFilters", "query", input),
4042
+ listCandidates: (input) => dispatch("deviceAdoption", "listCandidates", "query", input),
4043
+ getCandidate: (input) => dispatch("deviceAdoption", "getCandidate", "query", input),
4044
+ refresh: (input) => dispatch("deviceAdoption", "refresh", "mutation", input),
4045
+ adopt: (input) => dispatch("deviceAdoption", "adopt", "mutation", input),
4046
+ release: (input) => dispatch("deviceAdoption", "release", "mutation", input),
4047
+ resync: (input) => dispatch("deviceAdoption", "resync", "mutation", input)
4048
+ };
3337
4049
  const deviceExportInterface = {
3338
4050
  getStatus: (input) => dispatch("deviceExport", "getStatus", "query", input),
3339
4051
  listSupportedDeviceKinds: (input) => dispatch("deviceExport", "listSupportedDeviceKinds", "query", input),
@@ -3352,13 +4064,18 @@ function createSystemProxy(api) {
3352
4064
  listPersistedByAddon: (input) => dispatch("deviceManager", "listPersistedByAddon", "query", input),
3353
4065
  listAll: (input) => dispatch("deviceManager", "listAll", "query", input),
3354
4066
  getChildren: (input) => dispatch("deviceManager", "getChildren", "query", input),
4067
+ removeByIntegration: (input) => dispatch("deviceManager", "removeByIntegration", "mutation", input),
3355
4068
  listWrappersForCap: (input) => dispatch("deviceManager", "listWrappersForCap", "query", input),
3356
4069
  listBindableCapsForDeviceType: (input) => dispatch("deviceManager", "listBindableCapsForDeviceType", "query", input),
3357
4070
  discoverDevices: (input) => dispatch("deviceManager", "discoverDevices", "mutation", input),
3358
4071
  adoptDevice: (input) => dispatch("deviceManager", "adoptDevice", "mutation", input),
3359
4072
  getCreationSchema: (input) => dispatch("deviceManager", "getCreationSchema", "query", input),
3360
4073
  createDevice: (input) => dispatch("deviceManager", "createDevice", "mutation", input),
3361
- testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input)
4074
+ testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input),
4075
+ adoptionListCandidates: (input) => dispatch("deviceManager", "adoptionListCandidates", "query", input),
4076
+ adoptionRefresh: (input) => dispatch("deviceManager", "adoptionRefresh", "mutation", input),
4077
+ adoptionAdopt: (input) => dispatch("deviceManager", "adoptionAdopt", "mutation", input),
4078
+ adoptionRelease: (input) => dispatch("deviceManager", "adoptionRelease", "mutation", input)
3362
4079
  };
3363
4080
  const deviceProviderInterface = {
3364
4081
  start: (input) => dispatch("deviceProvider", "start", "mutation", input),
@@ -3518,32 +4235,8 @@ function createSystemProxy(api) {
3518
4235
  getAllCameraMetrics: (input) => dispatch("pipelineRunner", "getAllCameraMetrics", "query", input),
3519
4236
  getLocalCameras: (input) => dispatch("pipelineRunner", "getLocalCameras", "query", input)
3520
4237
  };
3521
- const platformProbeInterface = {
3522
- getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
3523
- getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
3524
- resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
3525
- resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
3526
- getHardwareEncoders: (input) => dispatch("platformProbe", "getHardwareEncoders", "query", input),
3527
- refreshHardwareEncoders: (input) => dispatch("platformProbe", "refreshHardwareEncoders", "mutation", input)
3528
- };
3529
- const recordingEngineInterface = {
3530
- getStatus: (input) => dispatch("recordingEngine", "getStatus", "query", input),
3531
- enable: (input) => dispatch("recordingEngine", "enable", "mutation", input),
3532
- disable: (input) => dispatch("recordingEngine", "disable", "mutation", input),
3533
- getConfig: (input) => dispatch("recordingEngine", "getConfig", "query", input),
3534
- updateConfig: (input) => dispatch("recordingEngine", "updateConfig", "mutation", input),
3535
- getPlaylist: (input) => dispatch("recordingEngine", "getPlaylist", "query", input),
3536
- getThumbnail: (input) => dispatch("recordingEngine", "getThumbnail", "query", input),
3537
- getSegments: (input) => dispatch("recordingEngine", "getSegments", "query", input),
3538
- getAvailability: (input) => dispatch("recordingEngine", "getAvailability", "query", input),
3539
- estimateStorage: (input) => dispatch("recordingEngine", "estimateStorage", "query", input),
3540
- estimateGlobalStorage: (input) => dispatch("recordingEngine", "estimateGlobalStorage", "query", input),
3541
- getStorageUsage: (input) => dispatch("recordingEngine", "getStorageUsage", "query", input),
3542
- setPolicy: (input) => dispatch("recordingEngine", "setPolicy", "mutation", input),
3543
- getPolicy: (input) => dispatch("recordingEngine", "getPolicy", "query", input),
3544
- getRetentionConfig: (input) => dispatch("recordingEngine", "getRetentionConfig", "query", input),
3545
- updateRetentionConfig: (input) => dispatch("recordingEngine", "updateRetentionConfig", "mutation", input),
3546
- getMotionStats: (input) => dispatch("recordingEngine", "getMotionStats", "query", input)
4238
+ const recordingInterface = {
4239
+ getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input)
3547
4240
  };
3548
4241
  const settingsStoreInterface = {
3549
4242
  get: (input) => dispatch("settingsStore", "get", "query", input),
@@ -3553,6 +4246,7 @@ function createSystemProxy(api) {
3553
4246
  update: (input) => dispatch("settingsStore", "update", "mutation", input),
3554
4247
  delete: (input) => dispatch("settingsStore", "delete", "mutation", input),
3555
4248
  count: (input) => dispatch("settingsStore", "count", "query", input),
4249
+ histogram: (input) => dispatch("settingsStore", "histogram", "query", input),
3556
4250
  isEmpty: (input) => dispatch("settingsStore", "isEmpty", "query", input),
3557
4251
  declareCollection: (input) => dispatch("settingsStore", "declareCollection", "mutation", input)
3558
4252
  };
@@ -3573,6 +4267,7 @@ function createSystemProxy(api) {
3573
4267
  endDownload: (input) => dispatch("storage", "endDownload", "mutation", input),
3574
4268
  listLocations: (input) => dispatch("storage", "listLocations", "query", input),
3575
4269
  getDefaultLocation: (input) => dispatch("storage", "getDefaultLocation", "query", input),
4270
+ listLocationDeclarations: (input) => dispatch("storage", "listLocationDeclarations", "query", input),
3576
4271
  upsertLocation: (input) => dispatch("storage", "upsertLocation", "mutation", input),
3577
4272
  deleteLocation: (input) => dispatch("storage", "deleteLocation", "mutation", input),
3578
4273
  testLocation: (input) => dispatch("storage", "testLocation", "query", input),
@@ -3655,7 +4350,9 @@ function createSystemProxy(api) {
3655
4350
  audioAnalyzer: audioAnalyzerInterface,
3656
4351
  audioCodec: audioCodecInterface,
3657
4352
  backup: backupInterface,
4353
+ broker: brokerInterface,
3658
4354
  decoder: decoderInterface,
4355
+ deviceAdoption: deviceAdoptionInterface,
3659
4356
  deviceExport: deviceExportInterface,
3660
4357
  deviceManager: deviceManagerInterface,
3661
4358
  deviceProvider: deviceProviderInterface,
@@ -3672,8 +4369,7 @@ function createSystemProxy(api) {
3672
4369
  pipelineExecutor: pipelineExecutorInterface,
3673
4370
  pipelineOrchestrator: pipelineOrchestratorInterface,
3674
4371
  pipelineRunner: pipelineRunnerInterface,
3675
- platformProbe: platformProbeInterface,
3676
- recordingEngine: recordingEngineInterface,
4372
+ recording: recordingInterface,
3677
4373
  settingsStore: settingsStoreInterface,
3678
4374
  storage: storageInterface,
3679
4375
  streamBroker: streamBrokerInterface,
@@ -4435,6 +5131,15 @@ function customAction(input, output, options) {
4435
5131
  scope: options?.scope ?? { kind: "system" }
4436
5132
  };
4437
5133
  }
5134
+ function deviceCustomAction(input, output, options) {
5135
+ return {
5136
+ input,
5137
+ output,
5138
+ kind: options?.kind ?? "query",
5139
+ auth: options?.auth ?? "protected",
5140
+ scope: { kind: "device", ...options?.deviceTypes ? { deviceTypes: options.deviceTypes } : {} }
5141
+ };
5142
+ }
4438
5143
  const STREAM_PROFILE_META = [
4439
5144
  { profile: "main", prefix: "streamMain", label: "Main stream" },
4440
5145
  { profile: "sub", prefix: "streamSub", label: "Sub stream" },
@@ -4645,19 +5350,36 @@ const CAPABILITY_NAMES = {
4645
5350
  addons: "addons",
4646
5351
  adminUi: "admin-ui",
4647
5352
  advancedNotifier: "advanced-notifier",
5353
+ airQualitySensor: "air-quality-sensor",
5354
+ alarmPanel: "alarm-panel",
4648
5355
  alerts: "alerts",
5356
+ ambientLightSensor: "ambient-light-sensor",
4649
5357
  audioAnalysis: "audio-analysis",
4650
5358
  audioAnalyzer: "audio-analyzer",
4651
5359
  audioCodec: "audio-codec",
4652
5360
  audioMetrics: "audio-metrics",
4653
5361
  authProvider: "auth-provider",
5362
+ automationControl: "automation-control",
4654
5363
  backup: "backup",
4655
5364
  battery: "battery",
5365
+ binary: "binary",
4656
5366
  brightness: "brightness",
5367
+ broker: "broker",
5368
+ button: "button",
4657
5369
  cameraCredentials: "camera-credentials",
5370
+ cameraPipelineConfig: "camera-pipeline-config",
4658
5371
  cameraStreams: "camera-streams",
5372
+ carbonMonoxide: "carbon-monoxide",
5373
+ climateControl: "climate-control",
5374
+ color: "color",
5375
+ connectivity: "connectivity",
5376
+ consumables: "consumables",
5377
+ contact: "contact",
5378
+ control: "control",
5379
+ cover: "cover",
4659
5380
  decoder: "decoder",
4660
5381
  detectionPipeline: "detection-pipeline",
5382
+ deviceAdoption: "device-adoption",
4661
5383
  deviceDiscovery: "device-discovery",
4662
5384
  deviceExport: "device-export",
4663
5385
  deviceManager: "device-manager",
@@ -4667,12 +5389,23 @@ const CAPABILITY_NAMES = {
4667
5389
  deviceStatus: "device-status",
4668
5390
  doorbell: "doorbell",
4669
5391
  embeddingEncoder: "embedding-encoder",
5392
+ enumSensor: "enum-sensor",
5393
+ eventEmitter: "event-emitter",
4670
5394
  events: "events",
5395
+ fanControl: "fan-control",
4671
5396
  featureProbe: "feature-probe",
5397
+ flood: "flood",
5398
+ gas: "gas",
5399
+ humidifier: "humidifier",
5400
+ humiditySensor: "humidity-sensor",
5401
+ image: "image",
4672
5402
  integrations: "integrations",
4673
5403
  intercom: "intercom",
5404
+ lawnMowerControl: "lawn-mower-control",
4674
5405
  localNetwork: "local-network",
5406
+ lockControl: "lock-control",
4675
5407
  logDestination: "log-destination",
5408
+ mediaPlayer: "media-player",
4676
5409
  meshNetwork: "mesh-network",
4677
5410
  metricsProvider: "metrics-provider",
4678
5411
  motion: "motion",
@@ -4685,6 +5418,8 @@ const CAPABILITY_NAMES = {
4685
5418
  networkQuality: "network-quality",
4686
5419
  nodes: "nodes",
4687
5420
  notificationOutput: "notification-output",
5421
+ notifier: "notifier",
5422
+ numericSensor: "numeric-sensor",
4688
5423
  oauthIntegration: "oauth-integration",
4689
5424
  osd: "osd",
4690
5425
  pipelineAnalytics: "pipeline-analytics",
@@ -4692,28 +5427,43 @@ const CAPABILITY_NAMES = {
4692
5427
  pipelineOrchestrator: "pipeline-orchestrator",
4693
5428
  pipelineRunner: "pipeline-runner",
4694
5429
  platformProbe: "platform-probe",
5430
+ powerMeter: "power-meter",
5431
+ presence: "presence",
5432
+ pressureSensor: "pressure-sensor",
5433
+ privacyMask: "privacy-mask",
4695
5434
  ptz: "ptz",
4696
5435
  ptzAutotrack: "ptz-autotrack",
4697
5436
  reboot: "reboot",
4698
5437
  recording: "recording",
4699
- recordingEngine: "recording-engine",
4700
5438
  restreamer: "restreamer",
5439
+ scriptRunner: "script-runner",
4701
5440
  settingsStore: "settings-store",
5441
+ smoke: "smoke",
4702
5442
  smtpProvider: "smtp-provider",
4703
5443
  snapshot: "snapshot",
4704
5444
  snapshotProvider: "snapshot-provider",
4705
5445
  ssoBridge: "sso-bridge",
4706
5446
  storage: "storage",
5447
+ storageEvictable: "storage-evictable",
4707
5448
  storageProvider: "storage-provider",
4708
5449
  streamBroker: "stream-broker",
5450
+ streamCatalog: "stream-catalog",
4709
5451
  streamParams: "stream-params",
4710
5452
  streamingEngine: "streaming-engine",
4711
5453
  switch: "switch",
4712
5454
  system: "system",
5455
+ tamper: "tamper",
5456
+ temperatureSensor: "temperature-sensor",
4713
5457
  toast: "toast",
4714
5458
  turnProvider: "turn-provider",
5459
+ update: "update",
4715
5460
  userManagement: "user-management",
4716
5461
  userPasskeys: "user-passkeys",
5462
+ vacuumControl: "vacuum-control",
5463
+ valve: "valve",
5464
+ vibration: "vibration",
5465
+ waterHeater: "water-heater",
5466
+ weather: "weather",
4717
5467
  webrtc: "webrtc",
4718
5468
  webrtcSession: "webrtc-session",
4719
5469
  zoneAnalytics: "zone-analytics",
@@ -4731,19 +5481,36 @@ const CAPABILITY_ROUTER_KEYS = [
4731
5481
  { key: "addons", name: "addons" },
4732
5482
  { key: "adminUi", name: "admin-ui" },
4733
5483
  { key: "advancedNotifier", name: "advanced-notifier" },
5484
+ { key: "airQualitySensor", name: "air-quality-sensor" },
5485
+ { key: "alarmPanel", name: "alarm-panel" },
4734
5486
  { key: "alerts", name: "alerts" },
5487
+ { key: "ambientLightSensor", name: "ambient-light-sensor" },
4735
5488
  { key: "audioAnalysis", name: "audio-analysis" },
4736
5489
  { key: "audioAnalyzer", name: "audio-analyzer" },
4737
5490
  { key: "audioCodec", name: "audio-codec" },
4738
5491
  { key: "audioMetrics", name: "audio-metrics" },
4739
5492
  { key: "authProvider", name: "auth-provider" },
5493
+ { key: "automationControl", name: "automation-control" },
4740
5494
  { key: "backup", name: "backup" },
4741
5495
  { key: "battery", name: "battery" },
5496
+ { key: "binary", name: "binary" },
4742
5497
  { key: "brightness", name: "brightness" },
5498
+ { key: "broker", name: "broker" },
5499
+ { key: "button", name: "button" },
4743
5500
  { key: "cameraCredentials", name: "camera-credentials" },
5501
+ { key: "cameraPipelineConfig", name: "camera-pipeline-config" },
4744
5502
  { key: "cameraStreams", name: "camera-streams" },
5503
+ { key: "carbonMonoxide", name: "carbon-monoxide" },
5504
+ { key: "climateControl", name: "climate-control" },
5505
+ { key: "color", name: "color" },
5506
+ { key: "connectivity", name: "connectivity" },
5507
+ { key: "consumables", name: "consumables" },
5508
+ { key: "contact", name: "contact" },
5509
+ { key: "control", name: "control" },
5510
+ { key: "cover", name: "cover" },
4745
5511
  { key: "decoder", name: "decoder" },
4746
5512
  { key: "detectionPipeline", name: "detection-pipeline" },
5513
+ { key: "deviceAdoption", name: "device-adoption" },
4747
5514
  { key: "deviceDiscovery", name: "device-discovery" },
4748
5515
  { key: "deviceExport", name: "device-export" },
4749
5516
  { key: "deviceManager", name: "device-manager" },
@@ -4753,12 +5520,23 @@ const CAPABILITY_ROUTER_KEYS = [
4753
5520
  { key: "deviceStatus", name: "device-status" },
4754
5521
  { key: "doorbell", name: "doorbell" },
4755
5522
  { key: "embeddingEncoder", name: "embedding-encoder" },
5523
+ { key: "enumSensor", name: "enum-sensor" },
5524
+ { key: "eventEmitter", name: "event-emitter" },
4756
5525
  { key: "events", name: "events" },
5526
+ { key: "fanControl", name: "fan-control" },
4757
5527
  { key: "featureProbe", name: "feature-probe" },
5528
+ { key: "flood", name: "flood" },
5529
+ { key: "gas", name: "gas" },
5530
+ { key: "humidifier", name: "humidifier" },
5531
+ { key: "humiditySensor", name: "humidity-sensor" },
5532
+ { key: "image", name: "image" },
4758
5533
  { key: "integrations", name: "integrations" },
4759
5534
  { key: "intercom", name: "intercom" },
5535
+ { key: "lawnMowerControl", name: "lawn-mower-control" },
4760
5536
  { key: "localNetwork", name: "local-network" },
5537
+ { key: "lockControl", name: "lock-control" },
4761
5538
  { key: "logDestination", name: "log-destination" },
5539
+ { key: "mediaPlayer", name: "media-player" },
4762
5540
  { key: "meshNetwork", name: "mesh-network" },
4763
5541
  { key: "metricsProvider", name: "metrics-provider" },
4764
5542
  { key: "motion", name: "motion" },
@@ -4771,6 +5549,8 @@ const CAPABILITY_ROUTER_KEYS = [
4771
5549
  { key: "networkQuality", name: "network-quality" },
4772
5550
  { key: "nodes", name: "nodes" },
4773
5551
  { key: "notificationOutput", name: "notification-output" },
5552
+ { key: "notifier", name: "notifier" },
5553
+ { key: "numericSensor", name: "numeric-sensor" },
4774
5554
  { key: "oauthIntegration", name: "oauth-integration" },
4775
5555
  { key: "osd", name: "osd" },
4776
5556
  { key: "pipelineAnalytics", name: "pipeline-analytics" },
@@ -4778,28 +5558,43 @@ const CAPABILITY_ROUTER_KEYS = [
4778
5558
  { key: "pipelineOrchestrator", name: "pipeline-orchestrator" },
4779
5559
  { key: "pipelineRunner", name: "pipeline-runner" },
4780
5560
  { key: "platformProbe", name: "platform-probe" },
5561
+ { key: "powerMeter", name: "power-meter" },
5562
+ { key: "presence", name: "presence" },
5563
+ { key: "pressureSensor", name: "pressure-sensor" },
5564
+ { key: "privacyMask", name: "privacy-mask" },
4781
5565
  { key: "ptz", name: "ptz" },
4782
5566
  { key: "ptzAutotrack", name: "ptz-autotrack" },
4783
5567
  { key: "reboot", name: "reboot" },
4784
5568
  { key: "recording", name: "recording" },
4785
- { key: "recordingEngine", name: "recording-engine" },
4786
5569
  { key: "restreamer", name: "restreamer" },
5570
+ { key: "scriptRunner", name: "script-runner" },
4787
5571
  { key: "settingsStore", name: "settings-store" },
5572
+ { key: "smoke", name: "smoke" },
4788
5573
  { key: "smtpProvider", name: "smtp-provider" },
4789
5574
  { key: "snapshot", name: "snapshot" },
4790
5575
  { key: "snapshotProvider", name: "snapshot-provider" },
4791
5576
  { key: "ssoBridge", name: "sso-bridge" },
4792
5577
  { key: "storage", name: "storage" },
5578
+ { key: "storageEvictable", name: "storage-evictable" },
4793
5579
  { key: "storageProvider", name: "storage-provider" },
4794
5580
  { key: "streamBroker", name: "stream-broker" },
5581
+ { key: "streamCatalog", name: "stream-catalog" },
4795
5582
  { key: "streamParams", name: "stream-params" },
4796
5583
  { key: "streamingEngine", name: "streaming-engine" },
4797
5584
  { key: "switch", name: "switch" },
4798
5585
  { key: "system", name: "system" },
5586
+ { key: "tamper", name: "tamper" },
5587
+ { key: "temperatureSensor", name: "temperature-sensor" },
4799
5588
  { key: "toast", name: "toast" },
4800
5589
  { key: "turnProvider", name: "turn-provider" },
5590
+ { key: "update", name: "update" },
4801
5591
  { key: "userManagement", name: "user-management" },
4802
5592
  { key: "userPasskeys", name: "user-passkeys" },
5593
+ { key: "vacuumControl", name: "vacuum-control" },
5594
+ { key: "valve", name: "valve" },
5595
+ { key: "vibration", name: "vibration" },
5596
+ { key: "waterHeater", name: "water-heater" },
5597
+ { key: "weather", name: "weather" },
4803
5598
  { key: "webrtc", name: "webrtc" },
4804
5599
  { key: "webrtcSession", name: "webrtc-session" },
4805
5600
  { key: "zoneAnalytics", name: "zone-analytics" },
@@ -4817,19 +5612,36 @@ const ALL_CAPABILITY_DEFINITIONS = [
4817
5612
  addonsCapability,
4818
5613
  adminUiCapability,
4819
5614
  advancedNotifierCapability,
5615
+ airQualitySensorCapability,
5616
+ alarmPanelCapability,
4820
5617
  alertsCapability,
5618
+ ambientLightSensorCapability,
4821
5619
  audioAnalysisCapability,
4822
5620
  audioAnalyzerCapability,
4823
5621
  audioCodecCapability,
4824
5622
  audioMetricsCapability,
4825
5623
  authProviderCapability,
5624
+ automationControlCapability,
4826
5625
  backupCapability,
4827
5626
  batteryCapability,
5627
+ binaryCapability,
4828
5628
  brightnessCapability,
5629
+ brokerCapability,
5630
+ buttonCapability,
4829
5631
  cameraCredentialsCapability,
5632
+ cameraPipelineConfigCapability,
4830
5633
  cameraStreamsCapability,
5634
+ carbonMonoxideCapability,
5635
+ climateControlCapability,
5636
+ colorCapability,
5637
+ connectivityCapability,
5638
+ consumablesCapability,
5639
+ contactCapability,
5640
+ controlCapability,
5641
+ coverCapability,
4831
5642
  decoderCapability,
4832
5643
  detectionPipelineCapability,
5644
+ deviceAdoptionCapability,
4833
5645
  deviceDiscoveryCapability,
4834
5646
  deviceExportCapability,
4835
5647
  deviceManagerCapability,
@@ -4839,12 +5651,23 @@ const ALL_CAPABILITY_DEFINITIONS = [
4839
5651
  deviceStatusCapability,
4840
5652
  doorbellCapability,
4841
5653
  embeddingEncoderCapability,
5654
+ enumSensorCapability,
5655
+ eventEmitterCapability,
4842
5656
  eventsCapability,
5657
+ fanControlCapability,
4843
5658
  featureProbeCapability,
5659
+ floodCapability,
5660
+ gasCapability,
5661
+ humidifierCapability,
5662
+ humiditySensorCapability,
5663
+ imageCapability,
4844
5664
  integrationsCapability,
4845
5665
  intercomCapability,
5666
+ lawnMowerControlCapability,
4846
5667
  localNetworkCapability,
5668
+ lockControlCapability,
4847
5669
  logDestinationCapability,
5670
+ mediaPlayerCapability,
4848
5671
  meshNetworkCapability,
4849
5672
  metricsProviderCapability,
4850
5673
  motionCapability,
@@ -4857,6 +5680,8 @@ const ALL_CAPABILITY_DEFINITIONS = [
4857
5680
  networkQualityCapability,
4858
5681
  nodesCapability,
4859
5682
  notificationOutputCapability,
5683
+ notifierCapability,
5684
+ numericSensorCapability,
4860
5685
  oauthIntegrationCapability,
4861
5686
  osdCapability,
4862
5687
  pipelineAnalyticsCapability,
@@ -4864,28 +5689,43 @@ const ALL_CAPABILITY_DEFINITIONS = [
4864
5689
  pipelineOrchestratorCapability,
4865
5690
  pipelineRunnerCapability,
4866
5691
  platformProbeCapability,
5692
+ powerMeterCapability,
5693
+ presenceCapability,
5694
+ pressureSensorCapability,
5695
+ privacyMaskCapability,
4867
5696
  ptzCapability,
4868
5697
  ptzAutotrackCapability,
4869
5698
  rebootCapability,
4870
5699
  recordingCapability,
4871
- recordingEngineCapability,
4872
5700
  restreamerCapability,
5701
+ scriptRunnerCapability,
4873
5702
  settingsStoreCapability,
5703
+ smokeCapability,
4874
5704
  smtpProviderCapability,
4875
5705
  snapshotCapability,
4876
5706
  snapshotProviderCapability,
4877
5707
  ssoBridgeCapability,
4878
5708
  storageCapability,
5709
+ storageEvictableCapability,
4879
5710
  storageProviderCapability,
4880
5711
  streamBrokerCapability,
5712
+ streamCatalogCapability,
4881
5713
  streamParamsCapability,
4882
5714
  streamingEngineCapability,
4883
5715
  switchCapability,
4884
5716
  systemCapability,
5717
+ tamperCapability,
5718
+ temperatureSensorCapability,
4885
5719
  toastCapability,
4886
5720
  turnProviderCapability,
5721
+ updateCapability,
4887
5722
  userManagementCapability,
4888
5723
  userPasskeysCapability,
5724
+ vacuumControlCapability,
5725
+ valveCapability,
5726
+ vibrationCapability,
5727
+ waterHeaterCapability,
5728
+ weatherCapability,
4889
5729
  webrtcCapability,
4890
5730
  webrtcSessionCapability,
4891
5731
  zoneAnalyticsCapability,
@@ -4894,37 +5734,83 @@ const ALL_CAPABILITY_DEFINITIONS = [
4894
5734
  ];
4895
5735
  const CAP_NAMES_WITH_STATUS = [
4896
5736
  "accessories",
5737
+ "air-quality-sensor",
5738
+ "alarm-panel",
5739
+ "ambient-light-sensor",
5740
+ "automation-control",
4897
5741
  "battery",
5742
+ "binary",
4898
5743
  "brightness",
5744
+ "broker",
4899
5745
  "camera-credentials",
5746
+ "carbon-monoxide",
5747
+ "climate-control",
5748
+ "color",
5749
+ "connectivity",
5750
+ "consumables",
5751
+ "contact",
5752
+ "control",
5753
+ "cover",
5754
+ "device-adoption",
4900
5755
  "device-discovery",
4901
5756
  "device-export",
4902
5757
  "device-status",
4903
5758
  "doorbell",
5759
+ "enum-sensor",
5760
+ "event-emitter",
5761
+ "fan-control",
4904
5762
  "feature-probe",
5763
+ "flood",
5764
+ "gas",
5765
+ "humidifier",
5766
+ "humidity-sensor",
5767
+ "image",
4905
5768
  "intercom",
5769
+ "lawn-mower-control",
5770
+ "lock-control",
5771
+ "media-player",
4906
5772
  "motion",
4907
5773
  "motion-trigger",
4908
5774
  "motion-zones",
4909
5775
  "mqtt-broker",
4910
5776
  "native-object-detection",
5777
+ "notifier",
5778
+ "numeric-sensor",
4911
5779
  "osd",
5780
+ "power-meter",
5781
+ "presence",
5782
+ "pressure-sensor",
5783
+ "privacy-mask",
4912
5784
  "ptz",
4913
5785
  "ptz-autotrack",
5786
+ "recording",
5787
+ "script-runner",
5788
+ "smoke",
4914
5789
  "snapshot",
4915
5790
  "stream-params",
4916
- "switch"
5791
+ "switch",
5792
+ "tamper",
5793
+ "temperature-sensor",
5794
+ "update",
5795
+ "vacuum-control",
5796
+ "valve",
5797
+ "vibration",
5798
+ "water-heater",
5799
+ "weather"
4917
5800
  ];
4918
5801
  const METHOD_ACCESS_MAP = Object.freeze({
5802
+ "accessories.setChildHidden": { capName: "accessories", capScope: "device", addonId: null, access: "create" },
4919
5803
  "addonPages.listPages": { capName: "addon-pages", capScope: "system", addonId: null, access: "view" },
4920
5804
  "addonPagesSource.listPages": { capName: "addon-pages-source", capScope: "system", addonId: null, access: "view" },
4921
5805
  "addonRoutes.getRoutes": { capName: "addon-routes", capScope: "system", addonId: null, access: "view" },
4922
5806
  "addonRoutes.invoke": { capName: "addon-routes", capScope: "system", addonId: null, access: "create" },
4923
5807
  "addons.applyAutoUpdateToAll": { capName: "addons", capScope: "system", addonId: null, access: "create" },
5808
+ "addons.cancelBulkUpdate": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4924
5809
  "addons.custom": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4925
5810
  "addons.forceRefresh": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4926
5811
  "addons.getAddonAutoUpdate": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4927
5812
  "addons.getAutoUpdateSettings": { capName: "addons", capScope: "system", addonId: null, access: "view" },
5813
+ "addons.getBulkUpdateState": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4928
5814
  "addons.getLastRestart": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4929
5815
  "addons.getLogs": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4930
5816
  "addons.getVersions": { capName: "addons", capScope: "system", addonId: null, access: "view" },
@@ -4932,6 +5818,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
4932
5818
  "addons.installPackage": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4933
5819
  "addons.isWorkspaceAvailable": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4934
5820
  "addons.list": { capName: "addons", capScope: "system", addonId: null, access: "view" },
5821
+ "addons.listActiveBulkUpdates": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4935
5822
  "addons.listCapabilityProviders": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4936
5823
  "addons.listFrameworkPackages": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4937
5824
  "addons.listPackages": { capName: "addons", capScope: "system", addonId: null, access: "view" },
@@ -4947,6 +5834,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
4947
5834
  "addons.setAddonAutoUpdate": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4948
5835
  "addons.setAutoUpdateSettings": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4949
5836
  "addons.setCapabilityProviderEnabled": { capName: "addons", capScope: "system", addonId: null, access: "create" },
5837
+ "addons.startBulkUpdate": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4950
5838
  "addons.uninstallPackage": { capName: "addons", capScope: "system", addonId: null, access: "delete" },
4951
5839
  "addons.updateFrameworkPackage": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4952
5840
  "addons.updatePackage": { capName: "addons", capScope: "system", addonId: null, access: "create" },
@@ -4963,6 +5851,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
4963
5851
  "advancedNotifier.getRules": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "view" },
4964
5852
  "advancedNotifier.testRule": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "create" },
4965
5853
  "advancedNotifier.upsertRule": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "create" },
5854
+ "alarmPanel.arm": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5855
+ "alarmPanel.disarm": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5856
+ "alarmPanel.trigger": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
4966
5857
  "alerts.dismiss": { capName: "alerts", capScope: "system", addonId: null, access: "create" },
4967
5858
  "alerts.emit": { capName: "alerts", capScope: "system", addonId: null, access: "create" },
4968
5859
  "alerts.getUnreadCount": { capName: "alerts", capScope: "system", addonId: null, access: "view" },
@@ -4993,6 +5884,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
4993
5884
  "authProvider.handleCallback": { capName: "auth-provider", capScope: "system", addonId: null, access: "create" },
4994
5885
  "authProvider.validateCredentials": { capName: "auth-provider", capScope: "system", addonId: null, access: "create" },
4995
5886
  "authProvider.validateToken": { capName: "auth-provider", capScope: "system", addonId: null, access: "view" },
5887
+ "automationControl.disable": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5888
+ "automationControl.enable": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5889
+ "automationControl.trigger": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
4996
5890
  "backup.delete": { capName: "backup", capScope: "system", addonId: null, access: "delete" },
4997
5891
  "backup.getEntries": { capName: "backup", capScope: "system", addonId: null, access: "view" },
4998
5892
  "backup.list": { capName: "backup", capScope: "system", addonId: null, access: "view" },
@@ -5003,11 +5897,45 @@ const METHOD_ACCESS_MAP = Object.freeze({
5003
5897
  "backup.restore": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5004
5898
  "backup.trigger": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5005
5899
  "backup.upsertDestinationPolicy": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5900
+ "battery.wakeForStream": { capName: "battery", capScope: "device", addonId: null, access: "create" },
5006
5901
  "brightness.setBrightness": { capName: "brightness", capScope: "device", addonId: null, access: "create" },
5902
+ "broker.add": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5903
+ "broker.get": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5904
+ "broker.getBrokerConfig": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5905
+ "broker.getSettings": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5906
+ "broker.getSettingsSchema": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5907
+ "broker.getState": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5908
+ "broker.getStatus": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5909
+ "broker.list": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5910
+ "broker.listProviders": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5911
+ "broker.publish": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5912
+ "broker.remove": { capName: "broker", capScope: "system", addonId: null, access: "delete" },
5913
+ "broker.setSettings": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5914
+ "broker.subscribe": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5915
+ "broker.testConnection": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5916
+ "broker.testSettings": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5917
+ "broker.unsubscribe": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5918
+ "button.press": { capName: "button", capScope: "device", addonId: null, access: "create" },
5007
5919
  "cameraCredentials.getCredentials": { capName: "camera-credentials", capScope: "device", addonId: null, access: "view" },
5008
5920
  "cameraStreams.getBrokerStreams": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5009
5921
  "cameraStreams.getCameraStreams": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5922
+ "cameraStreams.getProfileRtspEntries": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5010
5923
  "cameraStreams.getRtspEntries": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5924
+ "cameraStreams.pickStream": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5925
+ "climateControl.setFanMode": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5926
+ "climateControl.setMode": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5927
+ "climateControl.setPreset": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5928
+ "climateControl.setTarget": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5929
+ "climateControl.setTargetHumidity": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5930
+ "climateControl.setTargetRange": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5931
+ "color.setColor": { capName: "color", capScope: "device", addonId: null, access: "create" },
5932
+ "consumables.reset": { capName: "consumables", capScope: "device", addonId: null, access: "delete" },
5933
+ "control.setValue": { capName: "control", capScope: "device", addonId: null, access: "create" },
5934
+ "cover.close": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5935
+ "cover.open": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5936
+ "cover.setPosition": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5937
+ "cover.setTiltPosition": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5938
+ "cover.stop": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5011
5939
  "decoder.createSession": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5012
5940
  "decoder.destroySession": { capName: "decoder", capScope: "system", addonId: null, access: "delete" },
5013
5941
  "decoder.getFrame": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
@@ -5022,6 +5950,13 @@ const METHOD_ACCESS_MAP = Object.freeze({
5022
5950
  "decoder.reprobeHwaccel": { capName: "decoder", capScope: "system", addonId: null, access: "create" },
5023
5951
  "decoder.supportsCodec": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5024
5952
  "decoder.updateConfig": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5953
+ "deviceAdoption.adopt": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5954
+ "deviceAdoption.getCandidate": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5955
+ "deviceAdoption.listCandidateFilters": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5956
+ "deviceAdoption.listCandidates": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5957
+ "deviceAdoption.refresh": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5958
+ "deviceAdoption.release": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5959
+ "deviceAdoption.resync": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5025
5960
  "deviceDiscovery.adoptDevice": { capName: "device-discovery", capScope: "device", addonId: null, access: "create" },
5026
5961
  "deviceDiscovery.listDiscovered": { capName: "device-discovery", capScope: "device", addonId: null, access: "view" },
5027
5962
  "deviceDiscovery.refreshDiscovery": { capName: "device-discovery", capScope: "device", addonId: null, access: "create" },
@@ -5033,7 +5968,12 @@ const METHOD_ACCESS_MAP = Object.freeze({
5033
5968
  "deviceExport.unexposeDevice": { capName: "device-export", capScope: "system", addonId: null, access: "create" },
5034
5969
  "deviceManager.addLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5035
5970
  "deviceManager.adoptDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5971
+ "deviceManager.adoptionAdopt": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5972
+ "deviceManager.adoptionListCandidates": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5973
+ "deviceManager.adoptionRefresh": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5974
+ "deviceManager.adoptionRelease": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5036
5975
  "deviceManager.allocateDeviceId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5976
+ "deviceManager.applyInitialMeta": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5037
5977
  "deviceManager.createDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5038
5978
  "deviceManager.disable": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5039
5979
  "deviceManager.discoverDevices": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
@@ -5051,6 +5991,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5051
5991
  "deviceManager.getSettingsSchema": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5052
5992
  "deviceManager.getStreamProfileMap": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5053
5993
  "deviceManager.getStreamSources": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5994
+ "deviceManager.getWireableFields": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5054
5995
  "deviceManager.listAll": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5055
5996
  "deviceManager.listBindableCapsForDeviceType": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5056
5997
  "deviceManager.listLocations": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
@@ -5063,13 +6004,22 @@ const METHOD_ACCESS_MAP = Object.freeze({
5063
6004
  "deviceManager.probeStreams": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5064
6005
  "deviceManager.registerDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5065
6006
  "deviceManager.remove": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
6007
+ "deviceManager.removeByIntegration": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
5066
6008
  "deviceManager.removeDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
5067
6009
  "deviceManager.removeLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
6010
+ "deviceManager.runDeviceAction": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6011
+ "deviceManager.setChildLayout": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6012
+ "deviceManager.setDeviceLinks": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5068
6013
  "deviceManager.setDisabled": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6014
+ "deviceManager.setIntegrationId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6015
+ "deviceManager.setLinkDeviceId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5069
6016
  "deviceManager.setLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5070
6017
  "deviceManager.setMetadata": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5071
6018
  "deviceManager.setName": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6019
+ "deviceManager.setPrimaryChildEntityId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6020
+ "deviceManager.setRole": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5072
6021
  "deviceManager.setStreamProfileMap": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6022
+ "deviceManager.setType": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5073
6023
  "deviceManager.setWrapperActive": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5074
6024
  "deviceManager.testCreationField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5075
6025
  "deviceManager.testField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
@@ -5077,9 +6027,11 @@ const METHOD_ACCESS_MAP = Object.freeze({
5077
6027
  "deviceManager.updateDeviceField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5078
6028
  "deviceManager.updateDeviceFieldsBatch": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5079
6029
  "deviceOps.getConfigEntries": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
6030
+ "deviceOps.getRawState": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5080
6031
  "deviceOps.getSettingsSchema": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5081
6032
  "deviceOps.getStreamSources": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5082
6033
  "deviceOps.removeDevice": { capName: "device-ops", capScope: "device", addonId: null, access: "delete" },
6034
+ "deviceOps.runAction": { capName: "device-ops", capScope: "device", addonId: null, access: "create" },
5083
6035
  "deviceOps.setConfig": { capName: "device-ops", capScope: "device", addonId: null, access: "create" },
5084
6036
  "deviceProvider.adoptDiscoveredDevice": { capName: "device-provider", capScope: "system", addonId: null, access: "create" },
5085
6037
  "deviceProvider.createDevice": { capName: "device-provider", capScope: "system", addonId: null, access: "create" },
@@ -5102,6 +6054,13 @@ const METHOD_ACCESS_MAP = Object.freeze({
5102
6054
  "events.getEventClipUrl": { capName: "events", capScope: "device", addonId: null, access: "view" },
5103
6055
  "events.getEvents": { capName: "events", capScope: "device", addonId: null, access: "view" },
5104
6056
  "events.getEventThumbnail": { capName: "events", capScope: "device", addonId: null, access: "view" },
6057
+ "fanControl.setDirection": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6058
+ "fanControl.setOscillating": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6059
+ "fanControl.setPercentage": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6060
+ "fanControl.setPreset": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6061
+ "humidifier.setMode": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
6062
+ "humidifier.setOn": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
6063
+ "humidifier.setTargetHumidity": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
5105
6064
  "integrations.create": { capName: "integrations", capScope: "system", addonId: null, access: "create" },
5106
6065
  "integrations.delete": { capName: "integrations", capScope: "system", addonId: null, access: "delete" },
5107
6066
  "integrations.get": { capName: "integrations", capScope: "system", addonId: null, access: "view" },
@@ -5114,18 +6073,36 @@ const METHOD_ACCESS_MAP = Object.freeze({
5114
6073
  "integrations.update": { capName: "integrations", capScope: "system", addonId: null, access: "create" },
5115
6074
  "intercom.endTalkSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5116
6075
  "intercom.handleAnswer": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5117
- "intercom.pushTalkPcm": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
6076
+ "intercom.pushTalkAudio": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5118
6077
  "intercom.startSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5119
6078
  "intercom.startTalkSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5120
6079
  "intercom.stopSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
6080
+ "lawnMowerControl.dock": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
6081
+ "lawnMowerControl.pause": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
6082
+ "lawnMowerControl.startMowing": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
5121
6083
  "localNetwork.getAllowedAddresses": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5122
6084
  "localNetwork.getConnectionEndpoints": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5123
6085
  "localNetwork.getPreferred": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5124
6086
  "localNetwork.list": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5125
6087
  "localNetwork.resetAllowlistToBestMatch": { capName: "local-network", capScope: "system", addonId: null, access: "delete" },
5126
6088
  "localNetwork.setAllowedAddresses": { capName: "local-network", capScope: "system", addonId: null, access: "create" },
6089
+ "lockControl.lock": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
6090
+ "lockControl.open": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
6091
+ "lockControl.unlock": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
5127
6092
  "logDestination.query": { capName: "log-destination", capScope: "system", addonId: null, access: "view" },
5128
6093
  "logDestination.write": { capName: "log-destination", capScope: "system", addonId: null, access: "create" },
6094
+ "mediaPlayer.next": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6095
+ "mediaPlayer.pause": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6096
+ "mediaPlayer.play": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6097
+ "mediaPlayer.playMedia": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6098
+ "mediaPlayer.previous": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6099
+ "mediaPlayer.seek": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6100
+ "mediaPlayer.selectSource": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6101
+ "mediaPlayer.setMute": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6102
+ "mediaPlayer.setRepeat": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6103
+ "mediaPlayer.setShuffle": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6104
+ "mediaPlayer.setVolume": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6105
+ "mediaPlayer.stop": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
5129
6106
  "meshNetwork.getStatus": { capName: "mesh-network", capScope: "system", addonId: null, access: "view" },
5130
6107
  "meshNetwork.join": { capName: "mesh-network", capScope: "system", addonId: null, access: "create" },
5131
6108
  "meshNetwork.leave": { capName: "mesh-network", capScope: "system", addonId: null, access: "create" },
@@ -5159,6 +6136,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5159
6136
  "mqttBroker.startEmbeddedBroker": { capName: "mqtt-broker", capScope: "system", addonId: null, access: "create" },
5160
6137
  "mqttBroker.stopEmbeddedBroker": { capName: "mqtt-broker", capScope: "system", addonId: null, access: "create" },
5161
6138
  "mqttBroker.testConnection": { capName: "mqtt-broker", capScope: "system", addonId: null, access: "create" },
6139
+ "nativeObjectDetection.setEnabled": { capName: "native-object-detection", capScope: "device", addonId: null, access: "create" },
5162
6140
  "networkAccess.getEndpoint": { capName: "network-access", capScope: "system", addonId: null, access: "view" },
5163
6141
  "networkAccess.getStatus": { capName: "network-access", capScope: "system", addonId: null, access: "view" },
5164
6142
  "networkAccess.listEndpoints": { capName: "network-access", capScope: "system", addonId: null, access: "view" },
@@ -5182,17 +6160,21 @@ const METHOD_ACCESS_MAP = Object.freeze({
5182
6160
  "nodes.undeployAddon": { capName: "nodes", capScope: "system", addonId: null, access: "create" },
5183
6161
  "notificationOutput.send": { capName: "notification-output", capScope: "system", addonId: null, access: "create" },
5184
6162
  "notificationOutput.sendTest": { capName: "notification-output", capScope: "system", addonId: null, access: "create" },
6163
+ "notifier.cancel": { capName: "notifier", capScope: "device", addonId: null, access: "create" },
6164
+ "notifier.send": { capName: "notifier", capScope: "device", addonId: null, access: "create" },
5185
6165
  "oauthIntegration.getDescriptor": { capName: "oauth-integration", capScope: "system", addonId: null, access: "view" },
5186
6166
  "osd.setOverlay": { capName: "osd", capScope: "device", addonId: null, access: "create" },
5187
6167
  "pipelineAnalytics.clearTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "delete" },
5188
6168
  "pipelineAnalytics.getActiveTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5189
6169
  "pipelineAnalytics.getAudioEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
6170
+ "pipelineAnalytics.getEventDensity": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5190
6171
  "pipelineAnalytics.getEventMedia": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5191
6172
  "pipelineAnalytics.getMotionEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5192
6173
  "pipelineAnalytics.getObjectEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5193
6174
  "pipelineAnalytics.getTrack": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5194
6175
  "pipelineAnalytics.getTrackMedia": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5195
6176
  "pipelineAnalytics.listTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
6177
+ "pipelineAnalytics.pruneEventsBefore": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "create" },
5196
6178
  "pipelineExecutor.cacheFrameInPool": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "create" },
5197
6179
  "pipelineExecutor.deleteModel": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "delete" },
5198
6180
  "pipelineExecutor.deleteTemplate": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "delete" },
@@ -5271,10 +6253,14 @@ const METHOD_ACCESS_MAP = Object.freeze({
5271
6253
  "pipelineRunner.reportMotion": { capName: "pipeline-runner", capScope: "system", addonId: null, access: "create" },
5272
6254
  "platformProbe.getCapabilities": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5273
6255
  "platformProbe.getHardware": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6256
+ "platformProbe.getHardwareDecodeAccels": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5274
6257
  "platformProbe.getHardwareEncoders": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6258
+ "platformProbe.refreshHardwareDecodeAccels": { capName: "platform-probe", capScope: "system", addonId: null, access: "create" },
5275
6259
  "platformProbe.refreshHardwareEncoders": { capName: "platform-probe", capScope: "system", addonId: null, access: "create" },
5276
6260
  "platformProbe.resolveHwAccel": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5277
6261
  "platformProbe.resolveInferenceConfig": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6262
+ "privacyMask.getOptions": { capName: "privacy-mask", capScope: "device", addonId: null, access: "view" },
6263
+ "privacyMask.setMask": { capName: "privacy-mask", capScope: "device", addonId: null, access: "create" },
5278
6264
  "ptz.continuousMove": { capName: "ptz", capScope: "device", addonId: null, access: "create" },
5279
6265
  "ptz.deletePreset": { capName: "ptz", capScope: "device", addonId: null, access: "delete" },
5280
6266
  "ptz.getOptions": { capName: "ptz", capScope: "device", addonId: null, access: "view" },
@@ -5291,34 +6277,23 @@ const METHOD_ACCESS_MAP = Object.freeze({
5291
6277
  "ptzAutotrack.setEnabled": { capName: "ptz-autotrack", capScope: "device", addonId: null, access: "create" },
5292
6278
  "ptzAutotrack.setSettings": { capName: "ptz-autotrack", capScope: "device", addonId: null, access: "create" },
5293
6279
  "reboot.reboot": { capName: "reboot", capScope: "device", addonId: null, access: "create" },
5294
- "recording.getPlaybackUrl": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5295
- "recording.getSegments": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5296
- "recording.getThumbnailAt": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5297
- "recordingEngine.disable": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5298
- "recordingEngine.enable": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5299
- "recordingEngine.estimateGlobalStorage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5300
- "recordingEngine.estimateStorage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5301
- "recordingEngine.getAvailability": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5302
- "recordingEngine.getConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5303
- "recordingEngine.getMotionStats": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5304
- "recordingEngine.getPlaylist": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5305
- "recordingEngine.getPolicy": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5306
- "recordingEngine.getPolicyStatus": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5307
- "recordingEngine.getRetentionConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5308
- "recordingEngine.getSegments": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5309
- "recordingEngine.getStatus": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5310
- "recordingEngine.getStorageUsage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5311
- "recordingEngine.getThumbnail": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5312
- "recordingEngine.setPolicy": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5313
- "recordingEngine.updateConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5314
- "recordingEngine.updateRetentionConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
6280
+ "recording.getAvailability": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6281
+ "recording.getDeviceConfig": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6282
+ "recording.getPlaybackManifest": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6283
+ "recording.getStorageUsage": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6284
+ "recording.pruneFootage": { capName: "recording", capScope: "system", addonId: null, access: "create" },
6285
+ "recording.rescanStorage": { capName: "recording", capScope: "system", addonId: null, access: "create" },
6286
+ "recording.setDeviceConfig": { capName: "recording", capScope: "system", addonId: null, access: "create" },
5315
6287
  "restreamer.getExposedResources": { capName: "restreamer", capScope: "system", addonId: null, access: "view" },
5316
6288
  "restreamer.registerDevice": { capName: "restreamer", capScope: "system", addonId: null, access: "create" },
5317
6289
  "restreamer.unregisterDevice": { capName: "restreamer", capScope: "system", addonId: null, access: "delete" },
6290
+ "scriptRunner.run": { capName: "script-runner", capScope: "device", addonId: null, access: "create" },
6291
+ "scriptRunner.stop": { capName: "script-runner", capScope: "device", addonId: null, access: "create" },
5318
6292
  "settingsStore.count": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5319
6293
  "settingsStore.declareCollection": { capName: "settings-store", capScope: "system", addonId: null, access: "create" },
5320
6294
  "settingsStore.delete": { capName: "settings-store", capScope: "system", addonId: null, access: "delete" },
5321
6295
  "settingsStore.get": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
6296
+ "settingsStore.histogram": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5322
6297
  "settingsStore.insert": { capName: "settings-store", capScope: "system", addonId: null, access: "create" },
5323
6298
  "settingsStore.isEmpty": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5324
6299
  "settingsStore.query": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
@@ -5344,6 +6319,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5344
6319
  "storage.getAvailableSpace": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5345
6320
  "storage.getDefaultLocation": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5346
6321
  "storage.list": { capName: "storage", capScope: "system", addonId: null, access: "view" },
6322
+ "storage.listLocationDeclarations": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5347
6323
  "storage.listLocations": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5348
6324
  "storage.listProviders": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5349
6325
  "storage.read": { capName: "storage", capScope: "system", addonId: null, access: "view" },
@@ -5354,6 +6330,8 @@ const METHOD_ACCESS_MAP = Object.freeze({
5354
6330
  "storage.upsertLocation": { capName: "storage", capScope: "system", addonId: null, access: "create" },
5355
6331
  "storage.write": { capName: "storage", capScope: "system", addonId: null, access: "create" },
5356
6332
  "storage.writeChunk": { capName: "storage", capScope: "system", addonId: null, access: "create" },
6333
+ "storageEvictable.evict": { capName: "storage-evictable", capScope: "system", addonId: null, access: "create" },
6334
+ "storageEvictable.getEvictableUsage": { capName: "storage-evictable", capScope: "system", addonId: null, access: "view" },
5357
6335
  "storageProvider.abortUpload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
5358
6336
  "storageProvider.beginDownload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
5359
6337
  "storageProvider.beginUpload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
@@ -5397,6 +6375,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5397
6375
  "streamBroker.unassignProfile": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
5398
6376
  "streamBroker.unsubscribeAudioChunks": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
5399
6377
  "streamBroker.unsubscribeFrames": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
6378
+ "streamCatalog.getCatalog": { capName: "stream-catalog", capScope: "device", addonId: null, access: "view" },
5400
6379
  "streamingEngine.getStreamUrl": { capName: "streaming-engine", capScope: "system", addonId: null, access: "view" },
5401
6380
  "streamingEngine.listStreams": { capName: "streaming-engine", capScope: "system", addonId: null, access: "view" },
5402
6381
  "streamingEngine.registerStream": { capName: "streaming-engine", capScope: "system", addonId: null, access: "create" },
@@ -5414,6 +6393,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5414
6393
  "system.setRetentionConfig": { capName: "system", capScope: "system", addonId: null, access: "create" },
5415
6394
  "toast.onToast": { capName: "toast", capScope: "system", addonId: null, access: "view" },
5416
6395
  "turnProvider.getTurnServers": { capName: "turn-provider", capScope: "system", addonId: null, access: "view" },
6396
+ "update.installUpdate": { capName: "update", capScope: "device", addonId: null, access: "create" },
5417
6397
  "userManagement.confirmTotp": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
5418
6398
  "userManagement.createApiKey": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
5419
6399
  "userManagement.createScopedToken": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
@@ -5446,6 +6426,19 @@ const METHOD_ACCESS_MAP = Object.freeze({
5446
6426
  "userPasskeys.finishRegistration": { capName: "user-passkeys", capScope: "system", addonId: null, access: "create" },
5447
6427
  "userPasskeys.listPasskeys": { capName: "user-passkeys", capScope: "system", addonId: null, access: "view" },
5448
6428
  "userPasskeys.removePasskey": { capName: "user-passkeys", capScope: "system", addonId: null, access: "delete" },
6429
+ "vacuumControl.locate": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6430
+ "vacuumControl.pause": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6431
+ "vacuumControl.returnToBase": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6432
+ "vacuumControl.setFanSpeed": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6433
+ "vacuumControl.start": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6434
+ "vacuumControl.stop": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6435
+ "valve.close": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6436
+ "valve.open": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6437
+ "valve.setPosition": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6438
+ "valve.stop": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6439
+ "waterHeater.setAway": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
6440
+ "waterHeater.setOperationMode": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
6441
+ "waterHeater.setTargetTemp": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
5449
6442
  "webrtc.closeSession": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5450
6443
  "webrtc.createSession": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5451
6444
  "webrtc.handleAnswer": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
@@ -5454,8 +6447,11 @@ const METHOD_ACCESS_MAP = Object.freeze({
5454
6447
  "webrtc.registerStream": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5455
6448
  "webrtc.supportsStream": { capName: "webrtc", capScope: "system", addonId: null, access: "view" },
5456
6449
  "webrtc.unregisterStream": { capName: "webrtc", capScope: "system", addonId: null, access: "delete" },
6450
+ "webrtcSession.addIceCandidate": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5457
6451
  "webrtcSession.closeSession": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5458
6452
  "webrtcSession.createSession": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
6453
+ "webrtcSession.getIceCandidates": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
6454
+ "webrtcSession.getSessionState": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
5459
6455
  "webrtcSession.handleAnswer": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5460
6456
  "webrtcSession.handleOffer": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5461
6457
  "webrtcSession.hasAdaptiveBitrate": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
@@ -5472,6 +6468,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5472
6468
  "zones.updateZone": { capName: "zones", capScope: "device", addonId: null, access: "create" }
5473
6469
  });
5474
6470
  const KNOWN_CAP_NAMES = [
6471
+ "accessories",
5475
6472
  "addon-pages",
5476
6473
  "addon-pages-source",
5477
6474
  "addon-routes",
@@ -5481,17 +6478,28 @@ const KNOWN_CAP_NAMES = [
5481
6478
  "addons",
5482
6479
  "admin-ui",
5483
6480
  "advanced-notifier",
6481
+ "alarm-panel",
5484
6482
  "alerts",
5485
6483
  "audio-analysis",
5486
6484
  "audio-analyzer",
5487
6485
  "audio-codec",
5488
6486
  "audio-metrics",
5489
6487
  "auth-provider",
6488
+ "automation-control",
5490
6489
  "backup",
6490
+ "battery",
5491
6491
  "brightness",
6492
+ "broker",
6493
+ "button",
5492
6494
  "camera-credentials",
5493
6495
  "camera-streams",
6496
+ "climate-control",
6497
+ "color",
6498
+ "consumables",
6499
+ "control",
6500
+ "cover",
5494
6501
  "decoder",
6502
+ "device-adoption",
5495
6503
  "device-discovery",
5496
6504
  "device-export",
5497
6505
  "device-manager",
@@ -5500,10 +6508,15 @@ const KNOWN_CAP_NAMES = [
5500
6508
  "device-state",
5501
6509
  "embedding-encoder",
5502
6510
  "events",
6511
+ "fan-control",
6512
+ "humidifier",
5503
6513
  "integrations",
5504
6514
  "intercom",
6515
+ "lawn-mower-control",
5505
6516
  "local-network",
6517
+ "lock-control",
5506
6518
  "log-destination",
6519
+ "media-player",
5507
6520
  "mesh-network",
5508
6521
  "metrics-provider",
5509
6522
  "motion",
@@ -5511,10 +6524,12 @@ const KNOWN_CAP_NAMES = [
5511
6524
  "motion-trigger",
5512
6525
  "motion-zones",
5513
6526
  "mqtt-broker",
6527
+ "native-object-detection",
5514
6528
  "network-access",
5515
6529
  "network-quality",
5516
6530
  "nodes",
5517
6531
  "notification-output",
6532
+ "notifier",
5518
6533
  "oauth-integration",
5519
6534
  "osd",
5520
6535
  "pipeline-analytics",
@@ -5522,28 +6537,35 @@ const KNOWN_CAP_NAMES = [
5522
6537
  "pipeline-orchestrator",
5523
6538
  "pipeline-runner",
5524
6539
  "platform-probe",
6540
+ "privacy-mask",
5525
6541
  "ptz",
5526
6542
  "ptz-autotrack",
5527
6543
  "reboot",
5528
6544
  "recording",
5529
- "recording-engine",
5530
6545
  "restreamer",
6546
+ "script-runner",
5531
6547
  "settings-store",
5532
6548
  "smtp-provider",
5533
6549
  "snapshot",
5534
6550
  "snapshot-provider",
5535
6551
  "sso-bridge",
5536
6552
  "storage",
6553
+ "storage-evictable",
5537
6554
  "storage-provider",
5538
6555
  "stream-broker",
6556
+ "stream-catalog",
5539
6557
  "stream-params",
5540
6558
  "streaming-engine",
5541
6559
  "switch",
5542
6560
  "system",
5543
6561
  "toast",
5544
6562
  "turn-provider",
6563
+ "update",
5545
6564
  "user-management",
5546
6565
  "user-passkeys",
6566
+ "vacuum-control",
6567
+ "valve",
6568
+ "water-heater",
5547
6569
  "webrtc",
5548
6570
  "webrtc-session",
5549
6571
  "zone-analytics",
@@ -5551,28 +6573,51 @@ const KNOWN_CAP_NAMES = [
5551
6573
  "zones"
5552
6574
  ];
5553
6575
  const DEVICE_CAP_NAMES = [
6576
+ "accessories",
6577
+ "alarm-panel",
5554
6578
  "audio-analysis",
5555
6579
  "audio-metrics",
6580
+ "automation-control",
6581
+ "battery",
5556
6582
  "brightness",
6583
+ "button",
5557
6584
  "camera-credentials",
5558
6585
  "camera-streams",
6586
+ "climate-control",
6587
+ "color",
6588
+ "consumables",
6589
+ "control",
6590
+ "cover",
5559
6591
  "device-discovery",
5560
6592
  "device-ops",
5561
6593
  "events",
6594
+ "fan-control",
6595
+ "humidifier",
5562
6596
  "intercom",
6597
+ "lawn-mower-control",
6598
+ "lock-control",
6599
+ "media-player",
5563
6600
  "motion",
5564
6601
  "motion-detection",
5565
6602
  "motion-trigger",
5566
6603
  "motion-zones",
6604
+ "native-object-detection",
6605
+ "notifier",
5567
6606
  "osd",
5568
6607
  "pipeline-analytics",
6608
+ "privacy-mask",
5569
6609
  "ptz",
5570
6610
  "ptz-autotrack",
5571
6611
  "reboot",
5572
- "recording",
6612
+ "script-runner",
5573
6613
  "snapshot",
6614
+ "stream-catalog",
5574
6615
  "stream-params",
5575
6616
  "switch",
6617
+ "update",
6618
+ "vacuum-control",
6619
+ "valve",
6620
+ "water-heater",
5576
6621
  "webrtc-session",
5577
6622
  "zone-analytics",
5578
6623
  "zone-rules",
@@ -5593,7 +6638,9 @@ const SYSTEM_CAP_NAMES = [
5593
6638
  "audio-codec",
5594
6639
  "auth-provider",
5595
6640
  "backup",
6641
+ "broker",
5596
6642
  "decoder",
6643
+ "device-adoption",
5597
6644
  "device-export",
5598
6645
  "device-manager",
5599
6646
  "device-provider",
@@ -5614,13 +6661,14 @@ const SYSTEM_CAP_NAMES = [
5614
6661
  "pipeline-orchestrator",
5615
6662
  "pipeline-runner",
5616
6663
  "platform-probe",
5617
- "recording-engine",
6664
+ "recording",
5618
6665
  "restreamer",
5619
6666
  "settings-store",
5620
6667
  "smtp-provider",
5621
6668
  "snapshot-provider",
5622
6669
  "sso-bridge",
5623
6670
  "storage",
6671
+ "storage-evictable",
5624
6672
  "storage-provider",
5625
6673
  "stream-broker",
5626
6674
  "streaming-engine",
@@ -5668,6 +6716,7 @@ const SCOPE_PRESETS = [
5668
6716
  }
5669
6717
  ];
5670
6718
  const CAP_PROVIDER_KIND_MAP = Object.freeze({
6719
+ "broker": "broker",
5671
6720
  "device-export": "device-export",
5672
6721
  "mesh-network": "mesh",
5673
6722
  "mqtt-broker": "broker",
@@ -5675,6 +6724,7 @@ const CAP_PROVIDER_KIND_MAP = Object.freeze({
5675
6724
  "smtp-provider": "email"
5676
6725
  });
5677
6726
  const PROVIDER_KIND_CAP_NAMES = [
6727
+ "broker",
5678
6728
  "device-export",
5679
6729
  "mesh-network",
5680
6730
  "mqtt-broker",
@@ -5688,6 +6738,46 @@ function getCapsByProviderKind(kind) {
5688
6738
  }
5689
6739
  return out;
5690
6740
  }
6741
+ function levenshtein(a, b) {
6742
+ const m = a.length;
6743
+ const n = b.length;
6744
+ if (m === 0) return n;
6745
+ if (n === 0) return m;
6746
+ const prevRow = Array.from({ length: n + 1 }, (_, k) => k);
6747
+ const currRow = Array.from({ length: n + 1 }, () => 0);
6748
+ for (let i = 1; i <= m; i++) {
6749
+ currRow[0] = i;
6750
+ let diagVal = prevRow[0] ?? 0;
6751
+ for (let j = 1; j <= n; j++) {
6752
+ const above = prevRow[j] ?? 0;
6753
+ const left = currRow[j - 1] ?? 0;
6754
+ const cost = a.charCodeAt(i - 1) === b.charCodeAt(j - 1) ? 0 : 1;
6755
+ currRow[j] = Math.min(above + 1, left + 1, diagVal + cost);
6756
+ diagVal = above;
6757
+ }
6758
+ for (let j = 0; j <= n; j++) prevRow[j] = currRow[j] ?? 0;
6759
+ }
6760
+ return prevRow[n] ?? 0;
6761
+ }
6762
+ function locationSimilarity(a, b) {
6763
+ const x = a.trim().toLowerCase();
6764
+ const y = b.trim().toLowerCase();
6765
+ if (x === y) return 1;
6766
+ if (x.length === 0 || y.length === 0) return 0;
6767
+ return 1 - levenshtein(x, y) / Math.max(x.length, y.length);
6768
+ }
6769
+ function bestLocationMatch(externalName, existing, threshold = 0.8) {
6770
+ let best = null;
6771
+ let bestScore = 0;
6772
+ for (const name of existing) {
6773
+ const score = locationSimilarity(externalName, name);
6774
+ if (score >= threshold && score > bestScore) {
6775
+ best = name;
6776
+ bestScore = score;
6777
+ }
6778
+ }
6779
+ return best;
6780
+ }
5691
6781
  const CREDENTIAL_PARAM_PATTERNS = [
5692
6782
  /^user$/i,
5693
6783
  /^usr$/i,
@@ -5761,6 +6851,104 @@ class RingBuffer {
5761
6851
  return result;
5762
6852
  }
5763
6853
  }
6854
+ function rectsToCells(rects, gridWidth, gridHeight) {
6855
+ const total = gridWidth * gridHeight;
6856
+ if (total <= 0 || rects.length === 0) {
6857
+ return new Array(Math.max(0, total)).fill(false);
6858
+ }
6859
+ const cells = new Array(total).fill(false);
6860
+ for (let row = 0; row < gridHeight; row++) {
6861
+ for (let col = 0; col < gridWidth; col++) {
6862
+ const cx2 = (col + 0.5) / gridWidth;
6863
+ const cy2 = (row + 0.5) / gridHeight;
6864
+ for (const rect of rects) {
6865
+ if (cx2 >= rect.x && cx2 <= rect.x + rect.w && cy2 >= rect.y && cy2 <= rect.y + rect.h) {
6866
+ cells[row * gridWidth + col] = true;
6867
+ break;
6868
+ }
6869
+ }
6870
+ }
6871
+ }
6872
+ return cells;
6873
+ }
6874
+ function cellsToRects(cells, gridWidth, gridHeight, maxRegions) {
6875
+ if (gridWidth <= 0 || gridHeight <= 0 || maxRegions <= 0) return [];
6876
+ const expected = gridWidth * gridHeight;
6877
+ const grid = new Array(expected).fill(false);
6878
+ const copyLen = Math.min(cells.length, expected);
6879
+ for (let i = 0; i < copyLen; i++) {
6880
+ grid[i] = cells[i] === true;
6881
+ }
6882
+ const blocks = [];
6883
+ const pending = [];
6884
+ for (let row = 0; row <= gridHeight; row++) {
6885
+ const rowRuns = [];
6886
+ if (row < gridHeight) {
6887
+ let runStart = -1;
6888
+ for (let col = 0; col <= gridWidth; col++) {
6889
+ const active = col < gridWidth && grid[row * gridWidth + col] === true;
6890
+ if (active && runStart === -1) {
6891
+ runStart = col;
6892
+ } else if (!active && runStart !== -1) {
6893
+ rowRuns.push({ colStart: runStart, colEnd: col - 1 });
6894
+ runStart = -1;
6895
+ }
6896
+ }
6897
+ }
6898
+ const matched = /* @__PURE__ */ new Set();
6899
+ const nextPending = [];
6900
+ for (const pb of pending) {
6901
+ const idx = rowRuns.findIndex(
6902
+ (r) => r.colStart === pb.colStart && r.colEnd === pb.colEnd
6903
+ );
6904
+ if (idx >= 0) {
6905
+ nextPending.push(pb);
6906
+ matched.add(idx);
6907
+ } else {
6908
+ blocks.push({ ...pb, rowEnd: row - 1 });
6909
+ }
6910
+ }
6911
+ for (let i = 0; i < rowRuns.length; i++) {
6912
+ if (!matched.has(i)) {
6913
+ const rr = rowRuns[i];
6914
+ nextPending.push({ colStart: rr.colStart, colEnd: rr.colEnd, rowStart: row });
6915
+ }
6916
+ }
6917
+ pending.length = 0;
6918
+ for (const p of nextPending) pending.push(p);
6919
+ }
6920
+ if (blocks.length === 0) return [];
6921
+ const sorted = blocks.slice().sort((a, b) => {
6922
+ const aArea = (a.colEnd - a.colStart + 1) * (a.rowEnd - a.rowStart + 1);
6923
+ const bArea = (b.colEnd - b.colStart + 1) * (b.rowEnd - b.rowStart + 1);
6924
+ return bArea - aArea;
6925
+ });
6926
+ const kept = maxRegions > 0 ? sorted.slice(0, maxRegions) : sorted;
6927
+ return kept.map((block) => ({
6928
+ x: block.colStart / gridWidth,
6929
+ y: block.rowStart / gridHeight,
6930
+ w: (block.colEnd - block.colStart + 1) / gridWidth,
6931
+ h: (block.rowEnd - block.rowStart + 1) / gridHeight
6932
+ }));
6933
+ }
6934
+ function sleep(ms) {
6935
+ return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
6936
+ }
6937
+ function sleepCancellable(ms, signal) {
6938
+ if (signal.aborted) return Promise.resolve();
6939
+ return new Promise((resolve) => {
6940
+ const timer = setTimeout(() => {
6941
+ signal.removeEventListener("abort", onAbort);
6942
+ resolve();
6943
+ }, Math.max(0, ms));
6944
+ const onAbort = () => {
6945
+ clearTimeout(timer);
6946
+ signal.removeEventListener("abort", onAbort);
6947
+ resolve();
6948
+ };
6949
+ signal.addEventListener("abort", onAbort, { once: true });
6950
+ });
6951
+ }
5764
6952
  function bindAddonActions(api, addonId, catalog) {
5765
6953
  const out = {};
5766
6954
  for (const action of Object.keys(catalog)) {
@@ -5772,335 +6960,453 @@ function bindAddonActions(api, addonId, catalog) {
5772
6960
  return out;
5773
6961
  }
5774
6962
  export {
5775
- aw as ACCESSORY_LABEL,
6963
+ bh as ACCESSORY_LABEL,
5776
6964
  ALL_CAPABILITY_DEFINITIONS,
5777
- ax as APPLE_SA_TO_MACRO,
5778
- ay as AUDIO_BACKEND_CHOICES,
5779
- az as AUDIO_MACRO_LABELS,
5780
- aA as AccessoriesStatusSchema,
5781
- aB as AccessoryKind,
5782
- aC as AddBrokerInputSchema,
5783
- aD as AddonAutoUpdateSchema,
5784
- aE as AddonListItemSchema,
5785
- aF as AddonPageDeclarationSchema,
5786
- aG as AddonPageInfoSchema,
5787
- aH as AgentLoadSummarySchema,
5788
- aI as AlertSchema,
5789
- aJ as AlertSeveritySchema,
5790
- aK as AlertSourceSchema,
5791
- aL as AlertStatusSchema,
5792
- aM as ApiKeyRecordSchema,
5793
- aN as ApiKeySummarySchema,
5794
- aO as ArchiveEntrySchema,
5795
- aP as ArchiveManifestSchema,
5796
- aQ as AudioAnalysisResultSchema,
5797
- aR as AudioAnalysisSettingsSchema,
5798
- aS as AudioChunkInputSchema,
5799
- aT as AudioClassSummarySchema,
5800
- aU as AudioClassificationLabelSchema,
5801
- aV as AudioClassificationResultSchema,
5802
- aW as AudioCodecInfoSchema,
5803
- aX as AudioDecodeSessionConfigSchema,
5804
- aY as AudioEncodeSessionConfigSchema,
5805
- aZ as AudioEncodedChunkSchema,
5806
- a_ as AudioEventSchema,
5807
- a$ as AudioLevelSchema,
5808
- b0 as AudioMetricsHistoryPointSchema,
5809
- b1 as AudioMetricsHistorySchema,
5810
- b2 as AudioMetricsSnapshotSchema,
5811
- b3 as AudioPcmChunkSchema,
5812
- b4 as AuthResultSchema,
5813
- b5 as AutoUpdateSettingsSchema,
5814
- b6 as AvailableIntegrationTypeSchema,
6965
+ bi as APPLE_SA_TO_MACRO,
6966
+ bj as AUDIO_BACKEND_CHOICES,
6967
+ bk as AUDIO_MACRO_LABELS,
6968
+ bl as AccessoriesStatusSchema,
6969
+ bm as AccessoryKind,
6970
+ bn as AddBrokerInputSchema,
6971
+ bo as AddonAutoUpdateSchema,
6972
+ bp as AddonListItemSchema,
6973
+ bq as AddonPageDeclarationSchema,
6974
+ br as AddonPageInfoSchema,
6975
+ bs as AdoptionAdoptInputSchema,
6976
+ bt as AdoptionAdoptResultSchema,
6977
+ bu as AdoptionFilterSchema,
6978
+ bv as AdoptionGetCandidateInputSchema,
6979
+ bw as AdoptionListCandidatesInputSchema,
6980
+ bx as AdoptionListCandidatesOutputSchema,
6981
+ by as AdoptionReleaseInputSchema,
6982
+ bz as AdoptionStatusSchema,
6983
+ bA as AgentLoadSummarySchema,
6984
+ bB as AirQualitySensorStatusSchema,
6985
+ bC as AlarmArmModeSchema,
6986
+ bD as AlarmPanelStatusSchema,
6987
+ bE as AlarmStateSchema,
6988
+ bF as AlertSchema,
6989
+ bG as AlertSeveritySchema,
6990
+ bH as AlertSourceSchema,
6991
+ bI as AlertStatusSchema,
6992
+ bJ as AmbientLightSensorStatusSchema,
6993
+ bK as ApiKeyRecordSchema,
6994
+ bL as ApiKeySummarySchema,
6995
+ bM as ArchiveEntrySchema,
6996
+ bN as ArchiveManifestSchema,
6997
+ bO as AudioAnalysisResultSchema,
6998
+ bP as AudioAnalysisSettingsSchema,
6999
+ bQ as AudioChunkInputSchema,
7000
+ bR as AudioClassSummarySchema,
7001
+ bS as AudioClassificationLabelSchema,
7002
+ bT as AudioClassificationResultSchema,
7003
+ bU as AudioCodecInfoSchema,
7004
+ bV as AudioDecodeSessionConfigSchema,
7005
+ bW as AudioEncodeSchema,
7006
+ bX as AudioEncodeSessionConfigSchema,
7007
+ bY as AudioEncodedChunkSchema,
7008
+ bZ as AudioEventSchema,
7009
+ b_ as AudioLevelSchema,
7010
+ b$ as AudioMetricsHistoryPointSchema,
7011
+ c0 as AudioMetricsHistorySchema,
7012
+ c1 as AudioMetricsSnapshotSchema,
7013
+ c2 as AudioPcmChunkSchema,
7014
+ c3 as AuthResultSchema,
7015
+ c4 as AutoUpdateSettingsSchema,
7016
+ c5 as AutomationControlStatusSchema,
7017
+ c6 as AvailableIntegrationTypeSchema,
5815
7018
  BACKEND_TO_FORMAT,
5816
- b7 as BATTERY_DEVICE_PROFILE,
5817
- b8 as BackupDestinationInfoSchema,
5818
- b9 as BackupEntrySchema,
7019
+ c7 as BATTERY_DEVICE_PROFILE,
7020
+ c8 as BackupDestinationInfoSchema,
7021
+ c9 as BackupEntrySchema,
5819
7022
  BaseAddon,
5820
7023
  BaseDevice,
5821
7024
  BaseDeviceProvider,
5822
- ba as BatteryStatusSchema,
5823
- bb as BoundingBoxSchema,
5824
- bc as BrightnessStatusSchema,
5825
- bd as BrokerAudioClientSchema,
5826
- be as BrokerClientsSchema,
5827
- bf as BrokerConnectionDetailsSchema,
5828
- bg as BrokerDecodedClientSchema,
5829
- bh as BrokerInfoSchema,
5830
- bi as BrokerRtspClientSchema,
5831
- bj as BrokerStatsSchema,
5832
- bk as BrokerStatusSchema,
5833
- bl as CAM_PROFILE_ORDER,
7025
+ ca as BatteryStatusSchema,
7026
+ cb as BinaryStatusSchema,
7027
+ cc as BoundingBoxSchema,
7028
+ cd as BrightnessStatusSchema,
7029
+ ce as BrokerAddInputSchema,
7030
+ cf as BrokerAudioClientSchema,
7031
+ cg as BrokerClientsSchema,
7032
+ ch as BrokerConnectionDetailsSchema,
7033
+ ci as BrokerConsumerAttributionSchema,
7034
+ cj as BrokerConsumerKindSchema,
7035
+ ck as BrokerDecodedClientSchema,
7036
+ cl as BrokerEncodedClientSchema,
7037
+ cm as BrokerGetStateInputSchema,
7038
+ cn as BrokerInfoSchema,
7039
+ co as BrokerProviderInfoSchema,
7040
+ cp as BrokerPublishInputSchema,
7041
+ cq as BrokerRegistryStatusSchema,
7042
+ cr as BrokerRtspClientSchema,
7043
+ cs as BrokerStatsSchema,
7044
+ ct as BrokerStatusEnum,
7045
+ cu as BrokerStatusSchema,
7046
+ cv as BrokerSubscribeInputSchema,
7047
+ cw as BrokerSubscribeResultSchema,
7048
+ cx as BrokerTestConnectionResultSchema,
7049
+ cy as BrokerUnsubscribeInputSchema,
7050
+ cz as CAM_PROFILE_ORDER,
5834
7051
  CAPABILITY_NAMES,
5835
7052
  CAPABILITY_ROUTER_KEYS,
5836
7053
  CAP_NAMES_WITH_STATUS,
5837
7054
  CAP_PROVIDER_KIND_MAP,
5838
7055
  COCO_80_LABELS,
5839
7056
  COCO_TO_MACRO,
5840
- bm as CamProfileSchema,
5841
- bn as CamStreamKindSchema,
5842
- bo as CamStreamResolutionSchema,
5843
- bp as CameraCredentialsSchema,
5844
- bq as CameraCredentialsStatusSchema,
5845
- br as CameraMetricsSchema,
5846
- bs as CameraMetricsWithDeviceIdSchema,
5847
- bt as CameraStreamSchema,
5848
- bu as CapScopeSchema,
5849
- bv as CapabilityBindingsSchema,
5850
- bw as ChargingStatus,
5851
- bx as ClientNetworkStatsSchema,
5852
- by as ClusterAddonNodeDeploymentSchema,
5853
- bz as ClusterAddonStatusEntrySchema,
5854
- bA as CollectionColumnSchema,
5855
- bB as CollectionIndexSchema,
5856
- bC as ConfigEntrySchema,
5857
- bD as ConfigSectionWithValuesSchema,
5858
- bE as ConfigTabDeclarationSchema,
5859
- bF as CreateApiKeyInputSchema,
5860
- bG as CreateApiKeyResultSchema,
5861
- bH as CreateIntegrationInputSchema,
5862
- bI as CreateScopedTokenInputSchema,
5863
- bJ as CreateScopedTokenResultSchema,
5864
- bK as CreateUserInputSchema,
5865
- bL as CustomActionInputSchema,
7057
+ cA as CamProfileSchema,
7058
+ cB as CamStreamDescriptorSchema,
7059
+ cC as CamStreamKindSchema,
7060
+ cD as CamStreamResolutionSchema,
7061
+ cE as CameraCredentialsSchema,
7062
+ cF as CameraCredentialsStatusSchema,
7063
+ cG as CameraMetricsSchema,
7064
+ cH as CameraMetricsWithDeviceIdSchema,
7065
+ cI as CameraStreamSchema,
7066
+ cJ as CandidateQueryFilterSchema,
7067
+ cK as CapScopeSchema,
7068
+ cL as CapabilityBindingsSchema,
7069
+ cM as CarbonMonoxideStatusSchema,
7070
+ cN as ChargingStatus,
7071
+ cO as ClientNetworkStatsSchema,
7072
+ cP as ClimateControlStatusSchema,
7073
+ cQ as ClusterAddonNodeDeploymentSchema,
7074
+ cR as ClusterAddonStatusEntrySchema,
7075
+ cS as CollectionColumnSchema,
7076
+ cT as CollectionIndexSchema,
7077
+ cU as ColorStatusSchema,
7078
+ cV as ConfigEntrySchema,
7079
+ cW as ConfigSectionWithValuesSchema,
7080
+ cX as ConfigTabDeclarationSchema,
7081
+ cY as ConnectivityStatusSchema,
7082
+ cZ as ConsumableItemSchema,
7083
+ c_ as ConsumablesStatusSchema,
7084
+ c$ as ContactStatusSchema,
7085
+ d0 as ControlKindSchema,
7086
+ d1 as ControlStatusSchema,
7087
+ d2 as CoverStateSchema,
7088
+ d3 as CoverStatusSchema,
7089
+ d4 as CreateApiKeyInputSchema,
7090
+ d5 as CreateApiKeyResultSchema,
7091
+ d6 as CreateIntegrationInputSchema,
7092
+ d7 as CreateScopedTokenInputSchema,
7093
+ d8 as CreateScopedTokenResultSchema,
7094
+ d9 as CreateUserInputSchema,
7095
+ da as CustomActionInputSchema,
7096
+ DATAPLANE_SECRET_HEADER,
5866
7097
  DEFAULT_ADDON_PLACEMENT,
5867
- bM as DEFAULT_AUDIO_ANALYZER_CONFIG,
5868
- bN as DEFAULT_DECODER_HWACCEL_CONFIG,
7098
+ db as DEFAULT_AUDIO_ANALYZER_CONFIG,
7099
+ dc as DEFAULT_DECODER_HWACCEL_CONFIG,
5869
7100
  DEFAULT_FEATURES,
5870
- DEFAULT_LOCATION_SUBDIRS,
5871
7101
  DEFAULT_RETENTION,
5872
7102
  DEVICE_CAP_NAMES,
5873
- bO as DEVICE_PROFILES,
5874
- bP as DEVICE_SETTINGS_CONTRIBUTION_METHODS,
5875
- bQ as DEVICE_STATUS_METHOD,
7103
+ dd as DEVICE_PROFILES,
7104
+ de as DEVICE_SETTINGS_CONTRIBUTION_METHODS,
7105
+ df as DEVICE_STATUS_METHOD,
5876
7106
  DEVICE_TYPE_INFO,
5877
- bR as DecodedAudioChunkSchema,
5878
- bS as DecodedFrameSchema,
5879
- bT as DecoderAssignmentSchema,
5880
- bU as DecoderSessionConfigSchema,
5881
- bV as DecoderStatsSchema,
5882
- bW as DeleteIntegrationResultSchema,
5883
- bX as DetectorOutputSchema,
7107
+ dg as DecodedAudioChunkSchema,
7108
+ dh as DecodedFrameSchema,
7109
+ di as DecoderAssignmentSchema,
7110
+ dj as DecoderSessionConfigSchema,
7111
+ dk as DecoderStatsSchema,
7112
+ dl as DeleteIntegrationResultSchema,
7113
+ dm as DetectorOutputSchema,
5884
7114
  DeviceConfig,
5885
- bY as DeviceDiscoveryStatusSchema,
5886
- bZ as DeviceExportExposeInputSchema,
5887
- b_ as DeviceExportStatusSchema,
5888
- b$ as DeviceExportUnexposeInputSchema,
5889
- c0 as DeviceFeature,
5890
- c1 as DeviceInfoSchema,
5891
- c2 as DeviceNetworkStatsSchema,
5892
- c3 as DeviceRole,
7115
+ dn as DeviceDiscoveryStatusSchema,
7116
+ dp as DeviceExportExposeInputSchema,
7117
+ dq as DeviceExportStatusSchema,
7118
+ dr as DeviceExportUnexposeInputSchema,
7119
+ ds as DeviceFeature,
7120
+ dt as DeviceInfoSchema,
7121
+ du as DeviceNetworkStatsSchema,
7122
+ dv as DeviceRole,
5893
7123
  DeviceRuntimeState,
5894
- c4 as DeviceStatusSchema,
5895
- c5 as DeviceType,
5896
- c6 as DiscoveredChildDeviceSchema,
5897
- c7 as DiscoveredChildStatusSchema,
5898
- c8 as DiscoveredDeviceSchema,
7124
+ dw as DeviceStatusSchema,
7125
+ dx as DeviceType,
7126
+ dy as DiscoveredChildDeviceSchema,
7127
+ dz as DiscoveredChildStatusSchema,
7128
+ dA as DiscoveredDeviceSchema,
5899
7129
  DisposerChain,
5900
- c9 as DoorbellPressEventSchema,
5901
- ca as DoorbellStatusSchema,
7130
+ dB as DoorbellPressEventSchema,
7131
+ dC as DoorbellStatusSchema,
5902
7132
  ElementConfigStore,
5903
- cb as EmbeddingInfoSchema,
5904
- cc as EmbeddingResultSchema,
5905
- cd as EncodedPacketSchema,
5906
- ce as EnrichedWidgetMetadataSchema,
7133
+ dD as EmbeddingInfoSchema,
7134
+ dE as EmbeddingResultSchema,
7135
+ dF as EncodeProfileSchema,
7136
+ dG as EncodedPacketSchema,
7137
+ dH as EnrichedWidgetMetadataSchema,
7138
+ dI as EnumSensorDateTimeFormatSchema,
7139
+ dJ as EnumSensorStatusSchema,
5907
7140
  EventCategory,
5908
- cf as EventItemSchema,
5909
- cg as EventKindSchema,
7141
+ dK as EventEmitterStatusSchema,
7142
+ dL as EventFireSchema,
7143
+ dM as EventItemSchema,
7144
+ dN as EventKindSchema,
5910
7145
  EventSourceType,
5911
- ch as ExportSetupFieldSchema,
5912
- ci as ExportSetupSchema,
5913
- cj as ExposedDeviceSchema,
5914
- ck as ExposedResourceSchema,
5915
- cl as FeatureManifestSchema,
5916
- cm as FeatureProbeStatusSchema,
5917
- cn as FrameHandleFormatSchema,
5918
- co as FrameHandleSchema,
5919
- cp as FrameInputSchema,
5920
- cq as GetStreamWithCodecInputSchema,
5921
- cr as GlobalMetricsSchema,
7146
+ dO as ExportSetupFieldSchema,
7147
+ dP as ExportSetupSchema,
7148
+ dQ as ExposedDeviceSchema,
7149
+ dR as ExposedResourceSchema,
7150
+ dS as FanControlStatusSchema,
7151
+ dT as FanDirectionSchema,
7152
+ dU as FeatureManifestSchema,
7153
+ dV as FeatureProbeStatusSchema,
7154
+ dW as FloodStatusSchema,
7155
+ dX as FrameHandleFormatSchema,
7156
+ dY as FrameHandleSchema,
7157
+ dZ as FrameInputSchema,
7158
+ d_ as GasStatusSchema,
7159
+ d$ as GetStreamWithCodecInputSchema,
7160
+ e0 as GlobalMetricsSchema,
5922
7161
  HF_BASE_URL,
5923
7162
  HF_REPO,
5924
- cs as HWACCEL_OPTIONS,
5925
- ct as HealthStatusSchema,
5926
- cu as HistoryPointSchema,
5927
- cv as HistoryResolutionEnum,
5928
- cw as InstalledPackageSchema,
5929
- cx as IntegrationLiteSchema,
5930
- cy as IntegrationWithStateSchema,
5931
- cz as IntercomAbilitySchema,
5932
- cA as IntercomStatusSchema,
7163
+ e1 as HWACCEL_OPTIONS,
7164
+ e2 as HealthStatusSchema,
7165
+ e3 as HistoryPointSchema,
7166
+ e4 as HistoryResolutionEnum,
7167
+ e5 as HumidifierStatusSchema,
7168
+ e6 as HumiditySensorStatusSchema,
7169
+ e7 as HvacModeSchema,
7170
+ e8 as ImageStatusSchema,
7171
+ e9 as InstalledPackageSchema,
7172
+ ea as IntegrationLiteSchema,
7173
+ eb as IntegrationWithStateSchema,
7174
+ ec as IntercomAbilitySchema,
7175
+ ed as IntercomStatusSchema,
5933
7176
  KNOWN_CAP_NAMES,
5934
- cB as LocationStatSchema,
5935
- cC as LogEntrySchema,
5936
- cD as LogLevelSchema,
5937
- cE as LogStreamEntrySchema,
7177
+ ee as LawnMowerActivitySchema,
7178
+ ef as LawnMowerControlStatusSchema,
7179
+ eg as LocationStatSchema,
7180
+ eh as LockControlStatusSchema,
7181
+ ei as LockStateSchema,
7182
+ ej as LogEntrySchema,
7183
+ ek as LogLevelSchema,
7184
+ el as LogStreamEntrySchema,
5938
7185
  MACRO_LABELS,
5939
7186
  METHOD_ACCESS_MAP,
5940
- cF as MODEL_FORMATS,
5941
- cG as MediaFileSchema,
5942
- cH as MeshPeerSchema,
5943
- cI as MeshStatusSchema,
5944
- cJ as MethodAccessSchema,
5945
- cK as MotionAnalysisResultSchema,
5946
- cL as MotionEventSchema,
5947
- cM as MotionOnMotionChangedDataSchema,
5948
- cN as MotionRegionSchema,
5949
- cO as MotionSourceEnum,
5950
- cP as MotionSourcesSchema,
5951
- cQ as MotionStatusSchema,
5952
- cR as MotionTriggerRuntimeStateSchema,
5953
- cS as MotionTriggerStatusSchema,
5954
- cT as MotionZoneOptionsSchema,
5955
- cU as MotionZonePatchSchema,
5956
- cV as MotionZoneStatusSchema,
5957
- cW as MqttBrokerStatusSchema,
5958
- cX as NativeDetectionSchema,
5959
- cY as NativeObjectClassEnum,
5960
- cZ as NativeObjectDetectionStatusSchema,
5961
- c_ as NetworkAccessStatusSchema,
5962
- c$ as NetworkAddressSchema,
5963
- d0 as NetworkEndpointSchema,
5964
- d1 as NotificationHistoryEntrySchema,
5965
- d2 as NotificationRuleSchema,
5966
- d3 as NotificationSchema,
5967
- d4 as OauthIntegrationDescriptorSchema,
5968
- d5 as ObjectEventSchema,
5969
- d6 as OrchestratorMetricsSchema,
5970
- d7 as OsdOverlayKindEnum,
5971
- d8 as OsdOverlayPatchSchema,
5972
- d9 as OsdOverlaySchema,
5973
- da as OsdPositionEnum,
5974
- db as OsdStatusSchema,
5975
- dc as PIPELINE_FLOW_CAPABILITY_NAMES,
5976
- dd as PIPELINE_OWNER_CAPABILITY_NAMES,
7187
+ em as MODEL_FORMATS,
7188
+ en as MaskGridDimsSchema,
7189
+ eo as MaskGridShapeSchema,
7190
+ ep as MaskLineShapeSchema,
7191
+ eq as MaskPointSchema,
7192
+ er as MaskPolygonShapeSchema,
7193
+ es as MaskPolygonVerticesSchema,
7194
+ et as MaskRectShapeSchema,
7195
+ eu as MaskShapeKindSchema,
7196
+ ev as MaskShapeSchema,
7197
+ ew as MediaFileSchema,
7198
+ ex as MediaPlayerRepeatSchema,
7199
+ ey as MediaPlayerStateSchema,
7200
+ ez as MediaPlayerStatusSchema,
7201
+ eA as MeshPeerSchema,
7202
+ eB as MeshStatusSchema,
7203
+ eC as MethodAccessSchema,
7204
+ eD as MotionAnalysisResultSchema,
7205
+ eE as MotionEventSchema,
7206
+ eF as MotionOnMotionChangedDataSchema,
7207
+ eG as MotionRegionSchema,
7208
+ eH as MotionSourceEnum,
7209
+ eI as MotionSourcesSchema,
7210
+ eJ as MotionStatusSchema,
7211
+ eK as MotionTriggerRuntimeStateSchema,
7212
+ eL as MotionTriggerStatusSchema,
7213
+ eM as MotionZoneOptionsSchema,
7214
+ eN as MotionZonePatchSchema,
7215
+ eO as MotionZoneRegionSchema,
7216
+ eP as MotionZoneStatusSchema,
7217
+ eQ as MqttBrokerStatusSchema,
7218
+ eR as NativeDetectionSchema,
7219
+ eS as NativeObjectClassEnum,
7220
+ eT as NativeObjectDetectionRuntimeStateSchema,
7221
+ eU as NativeObjectDetectionStatusSchema,
7222
+ eV as NetworkAccessStatusSchema,
7223
+ eW as NetworkAddressSchema,
7224
+ eX as NetworkEndpointSchema,
7225
+ eY as NotificationHistoryEntrySchema,
7226
+ eZ as NotificationRuleSchema,
7227
+ e_ as NotificationSchema,
7228
+ e$ as NotifierStatusSchema,
7229
+ f0 as NumericSensorStatusSchema,
7230
+ f1 as OauthIntegrationDescriptorSchema,
7231
+ f2 as ObjectEventSchema,
7232
+ f3 as OrchestratorMetricsSchema,
7233
+ f4 as OsdOverlayKindEnum,
7234
+ f5 as OsdOverlayPatchSchema,
7235
+ f6 as OsdOverlaySchema,
7236
+ f7 as OsdPositionEnum,
7237
+ f8 as OsdStatusSchema,
7238
+ f9 as PIPELINE_FLOW_CAPABILITY_NAMES,
7239
+ fa as PIPELINE_OWNER_CAPABILITY_NAMES,
5977
7240
  PROVIDER_KIND_CAP_NAMES,
5978
7241
  PYTHON_SCRIPT,
5979
- de as PackageUpdateSchema,
5980
- df as PackageVersionInfoSchema,
5981
- dg as PasskeySummarySchema,
5982
- dh as PcmSampleFormatSchema,
5983
- di as PerScopeBreakdownSchema,
5984
- dj as PipelineAssignmentSchema,
5985
- dk as PipelineDefaultStepSchema,
5986
- dl as PipelineEngineChoiceSchema,
5987
- dm as PipelineRunResultBridge,
5988
- dn as PipelineStepInputSchema,
5989
- dp as PlaceholderReasonSchema,
5990
- dq as PolygonPointSchema,
5991
- dr as ProfileSlotSchema,
5992
- ds as ProfileSlotStatusSchema,
5993
- dt as ProviderStatusSchema,
5994
- du as PtzAutotrackRuntimeStateSchema,
5995
- dv as PtzAutotrackSettingsSchema,
5996
- dw as PtzAutotrackStatusSchema,
5997
- dx as PtzAutotrackTargetOptionSchema,
5998
- dy as PtzMoveCommandSchema,
5999
- dz as PtzPositionSchema,
6000
- dA as PtzPresetSchema,
6001
- dB as PtzStatusSchema,
6002
- dC as QueryFilterSchema,
7242
+ fb as PackageUpdateSchema,
7243
+ fc as PackageVersionInfoSchema,
7244
+ fd as PasskeySummarySchema,
7245
+ fe as PcmSampleFormatSchema,
7246
+ ff as PerScopeBreakdownSchema,
7247
+ fg as PickStreamPreferencesSchema,
7248
+ fh as PickStreamRequirementsSchema,
7249
+ fi as PickedCamStreamSchema,
7250
+ fj as PipelineAssignmentSchema,
7251
+ fk as PipelineDefaultStepSchema,
7252
+ fl as PipelineEngineChoiceSchema,
7253
+ fm as PipelineRunResultBridge,
7254
+ fn as PipelineStepInputSchema,
7255
+ fo as PlaceholderReasonSchema,
7256
+ fp as PolygonPointSchema,
7257
+ fq as PowerMeterStatusSchema,
7258
+ fr as PresenceStatusSchema,
7259
+ fs as PressureSensorStatusSchema,
7260
+ ft as PrivacyMaskOptionsSchema,
7261
+ fu as PrivacyMaskPatchSchema,
7262
+ fv as PrivacyMaskRegionSchema,
7263
+ fw as PrivacyMaskShapeSchema,
7264
+ fx as PrivacyMaskStatusSchema,
7265
+ fy as ProfileRtspEntrySchema,
7266
+ fz as ProfileSlotSchema,
7267
+ fA as ProfileSlotStatusSchema,
7268
+ fB as ProviderStatusSchema,
7269
+ fC as PtzAutotrackRuntimeStateSchema,
7270
+ fD as PtzAutotrackSettingsSchema,
7271
+ fE as PtzAutotrackStatusSchema,
7272
+ fF as PtzAutotrackTargetOptionSchema,
7273
+ fG as PtzMoveCommandSchema,
7274
+ fH as PtzPositionSchema,
7275
+ fI as PtzPresetSchema,
7276
+ fJ as PtzStatusSchema,
7277
+ fK as QueryFilterSchema,
6003
7278
  RECOGNITION_TYPES,
6004
7279
  RUNTIME_DEFAULTS,
6005
7280
  RUNTIME_TO_FORMAT,
7281
+ fL as RawStateResultSchema,
6006
7282
  ReadinessRegistry,
6007
7283
  ReadinessTimeoutError,
6008
- dD as RegisteredStreamSchema,
6009
- dE as ReportMotionInputSchema,
7284
+ fM as RecordingAvailabilitySchema,
7285
+ fN as RecordingConfigSchema,
7286
+ fO as RecordingDeviceUsageSchema,
7287
+ fP as RecordingLocationUsageSchema,
7288
+ fQ as RecordingManifestSchema,
7289
+ fR as RecordingModeSchema,
7290
+ fS as RecordingRangeSchema,
7291
+ fT as RecordingRetentionSchema,
7292
+ fU as RecordingRuleSchema,
7293
+ fV as RecordingScheduleSchema,
7294
+ fW as RecordingStatusSchema,
7295
+ fX as RecordingStorageUsageSchema,
7296
+ fY as RecordingWeekdaySchema,
7297
+ fZ as RegisteredStreamSchema,
7298
+ f_ as ReportMotionInputSchema,
6010
7299
  RingBuffer,
6011
- dF as RtpSourceSchema,
6012
- dG as RtspRestreamEntrySchema,
6013
- dH as RunnerCameraConfigSchema,
6014
- dI as RunnerCameraDeviceUIFields,
6015
- dJ as RunnerLocalLoadSchema,
6016
- dK as RunnerLocalMetricsSchema,
7300
+ f$ as RtpSourceSchema,
7301
+ g0 as RtspRestreamEntrySchema,
7302
+ g1 as RunnerCameraConfigSchema,
7303
+ g2 as RunnerCameraDeviceUIFields,
7304
+ g3 as RunnerLocalLoadSchema,
7305
+ g4 as RunnerLocalMetricsSchema,
6017
7306
  SCOPE_PRESETS,
6018
- dL as STORAGE_LOCATION_CARDINALITY,
6019
- STORAGE_LOCATION_TYPES,
7307
+ SOURCE_INFO_METADATA_KEY,
6020
7308
  STREAM_PROFILE_META,
6021
7309
  STREAM_QUALITY_LABELS,
6022
7310
  SUB_DETECTION_TYPES,
6023
7311
  SYSTEM_CAP_NAMES,
6024
- dM as ScopedTokenSchema,
6025
- dN as ScopedTokenSummarySchema,
6026
- dO as SearchResultSchema,
6027
- dP as SegmentSchema,
6028
- dQ as SendEmailInputSchema,
6029
- dR as SendEmailResultSchema,
6030
- dS as SettingsPatchSchema,
6031
- dT as SettingsRecordSchema,
6032
- dU as SettingsSchemaWithValuesSchema,
6033
- dV as SettingsUpdateResultSchema,
6034
- dW as ShmRingStatsSchema,
6035
- dX as SmtpStatusSchema,
6036
- dY as SnapshotImageSchema,
6037
- dZ as SpatialDetectionSchema,
6038
- d_ as SsoBridgeClaimsSchema,
6039
- d$ as StartEmbeddedInputSchema,
6040
- e0 as StorageAbortUploadInputSchema,
6041
- e1 as StorageBeginDownloadInputSchema,
6042
- e2 as StorageBeginDownloadResultSchema,
6043
- e3 as StorageBeginUploadInputSchema,
6044
- e4 as StorageBeginUploadResultSchema,
6045
- e5 as StorageEndDownloadInputSchema,
6046
- e6 as StorageFinalizeUploadInputSchema,
6047
- e7 as StorageLocationRefSchema,
6048
- e8 as StorageLocationSchema,
6049
- e9 as StorageLocationTypeSchema,
6050
- ea as StorageProviderInfoSchema,
6051
- eb as StorageReadChunkInputSchema,
6052
- ec as StorageTestLocationResultSchema,
6053
- ed as StorageWriteChunkInputSchema,
6054
- ee as StreamFormatSchema,
6055
- ef as StreamInfoSchema,
6056
- eg as StreamNetworkStatsSchema,
6057
- eh as StreamParamsOptionsSchema,
6058
- ei as StreamParamsStatusSchema,
6059
- ej as StreamProfileConfigSchema,
6060
- ek as StreamProfileOptionsSchema,
6061
- el as StreamProfilePatchSchema,
6062
- em as StreamProfileSchema,
6063
- en as StreamSourceEntrySchema,
6064
- eo as StreamSourceSchema,
6065
- ep as SubscribeAudioChunksInputSchema,
6066
- eq as SubscribeAudioChunksResultSchema,
6067
- er as SubscribeFramesInputSchema,
6068
- es as SubscribeFramesResultSchema,
6069
- et as SwitchStatusSchema,
6070
- eu as SystemMetricsSchema,
7312
+ g5 as ScopedTokenSchema,
7313
+ g6 as ScopedTokenSummarySchema,
7314
+ g7 as ScriptRunnerStatusSchema,
7315
+ g8 as SearchResultSchema,
7316
+ g9 as SendEmailInputSchema,
7317
+ ga as SendEmailResultSchema,
7318
+ gb as SettingsPatchSchema,
7319
+ gc as SettingsRecordSchema,
7320
+ gd as SettingsSchemaWithValuesSchema,
7321
+ ge as SettingsUpdateResultSchema,
7322
+ gf as ShmRingStatsSchema,
7323
+ gg as SmokeStatusSchema,
7324
+ gh as SmtpStatusSchema,
7325
+ gi as SnapshotImageSchema,
7326
+ gj as SourceInfoSchema,
7327
+ gk as SpatialDetectionSchema,
7328
+ gl as SsoBridgeClaimsSchema,
7329
+ gm as StartEmbeddedInputSchema,
7330
+ gn as StorageAbortUploadInputSchema,
7331
+ go as StorageBeginDownloadInputSchema,
7332
+ gp as StorageBeginDownloadResultSchema,
7333
+ gq as StorageBeginUploadInputSchema,
7334
+ gr as StorageBeginUploadResultSchema,
7335
+ gs as StorageEndDownloadInputSchema,
7336
+ gt as StorageFinalizeUploadInputSchema,
7337
+ gu as StorageLocationDeclarationSchema,
7338
+ gv as StorageLocationRefSchema,
7339
+ gw as StorageLocationSchema,
7340
+ gx as StorageLocationTypeSchema,
7341
+ gy as StorageProviderInfoSchema,
7342
+ gz as StorageReadChunkInputSchema,
7343
+ gA as StorageTestLocationResultSchema,
7344
+ gB as StorageWriteChunkInputSchema,
7345
+ gC as StreamCodecSchema,
7346
+ gD as StreamFormatSchema,
7347
+ gE as StreamInfoSchema,
7348
+ gF as StreamNetworkStatsSchema,
7349
+ gG as StreamParamsOptionsSchema,
7350
+ gH as StreamParamsStatusSchema,
7351
+ gI as StreamProfileConfigSchema,
7352
+ gJ as StreamProfileOptionsSchema,
7353
+ gK as StreamProfilePatchSchema,
7354
+ gL as StreamProfileSchema,
7355
+ gM as StreamSourceEntrySchema,
7356
+ gN as StreamSourceSchema,
7357
+ gO as SubscribeAudioChunksInputSchema,
7358
+ gP as SubscribeAudioChunksResultSchema,
7359
+ gQ as SubscribeFramesInputSchema,
7360
+ gR as SubscribeFramesResultSchema,
7361
+ gS as SwitchStatusSchema,
7362
+ gT as SystemMetricsSchema,
6071
7363
  SystemMirror,
6072
- ev as TestConnectionResultSchema,
6073
- ew as ToastSchema,
6074
- ex as TokenScopeSchema,
6075
- ey as TopologyNodeSchema,
6076
- ez as TopologyProcessSchema,
6077
- eA as TopologyServiceSchema,
6078
- eB as TrackSchema,
6079
- eC as TrackStateSchema,
6080
- eD as TrackedDetectionSchema,
6081
- eE as TurnServerSchema,
6082
- eF as UpdateIntegrationInputSchema,
6083
- eG as UpdateUserInputSchema,
6084
- eH as UserRecordSchema,
6085
- eI as UserSummarySchema,
6086
- eJ as WELL_KNOWN_TABS,
6087
- eK as WELL_KNOWN_TAB_MAP,
6088
- eL as WebrtcStreamChoiceSchema,
6089
- eM as WebrtcStreamTargetSchema,
6090
- eN as WidgetHostEnum,
6091
- eO as WidgetMetadataSchema,
6092
- eP as WidgetRemoteSchema,
6093
- eQ as WidgetSizeEnum,
6094
- eR as YAMNET_TO_MACRO,
6095
- eS as ZoneKindEnum,
6096
- eT as ZoneRuleModeEnum,
6097
- eU as ZoneRuleSchema,
6098
- eV as ZoneRuleStageEnum,
6099
- eW as ZoneRulesArraySchema,
6100
- eX as ZoneSchema,
6101
- eY as ZoneScopeBreakdownSchema,
7364
+ TIMEZONES,
7365
+ gU as TamperStatusSchema,
7366
+ gV as TankStatusSchema,
7367
+ gW as TemperatureSensorStatusSchema,
7368
+ gX as TestConnectionResultSchema,
7369
+ gY as ToastSchema,
7370
+ gZ as TokenScopeSchema,
7371
+ g_ as TopologyNodeSchema,
7372
+ g$ as TopologyProcessSchema,
7373
+ h0 as TopologyServiceSchema,
7374
+ h1 as TrackSchema,
7375
+ h2 as TrackStateSchema,
7376
+ h3 as TrackedDetectionSchema,
7377
+ h4 as TurnServerSchema,
7378
+ h5 as UnifiedBrokerInfoSchema,
7379
+ h6 as UpdateIntegrationInputSchema,
7380
+ h7 as UpdateStatusSchema,
7381
+ h8 as UpdateUserInputSchema,
7382
+ h9 as UserRecordSchema,
7383
+ ha as UserSummarySchema,
7384
+ hb as VacuumControlStatusSchema,
7385
+ hc as VacuumStateSchema,
7386
+ hd as ValveStateSchema,
7387
+ he as ValveStatusSchema,
7388
+ hf as VibrationStatusSchema,
7389
+ hg as VideoEncodeSchema,
7390
+ hh as WELL_KNOWN_TABS,
7391
+ hi as WELL_KNOWN_TAB_MAP,
7392
+ hj as WaterHeaterStatusSchema,
7393
+ hk as WeatherStatusSchema,
7394
+ hl as WebrtcStreamChoiceSchema,
7395
+ hm as WebrtcStreamTargetSchema,
7396
+ hn as WidgetHostEnum,
7397
+ ho as WidgetMetadataSchema,
7398
+ hp as WidgetRemoteSchema,
7399
+ hq as WidgetSizeEnum,
7400
+ hr as YAMNET_TO_MACRO,
7401
+ hs as ZoneKindEnum,
7402
+ ht as ZoneRuleModeEnum,
7403
+ hu as ZoneRuleSchema,
7404
+ hv as ZoneRuleStageEnum,
7405
+ hw as ZoneRulesArraySchema,
7406
+ hx as ZoneSchema,
7407
+ hy as ZoneScopeBreakdownSchema,
6102
7408
  accessoriesCapability,
6103
- eZ as accessoryStableId,
7409
+ hz as accessoryStableId,
6104
7410
  addonPagesCapability,
6105
7411
  addonPagesSourceCapability,
6106
7412
  addonRoutesCapability,
@@ -6110,7 +7416,11 @@ export {
6110
7416
  addonsCapability,
6111
7417
  adminUiCapability,
6112
7418
  advancedNotifierCapability,
7419
+ airQualitySensorCapability,
7420
+ alarmPanelCapability,
6113
7421
  alertsCapability,
7422
+ ambientLightSensorCapability,
7423
+ applyTransform,
6114
7424
  asBoolean,
6115
7425
  asJsonArray,
6116
7426
  asJsonObject,
@@ -6122,18 +7432,34 @@ export {
6122
7432
  audioMetricsCapability,
6123
7433
  authProviderCapability,
6124
7434
  autoAssignProfiles,
7435
+ automationControlCapability,
6125
7436
  backupCapability,
6126
7437
  batteryCapability,
7438
+ bestLocationMatch,
7439
+ binaryCapability,
6127
7440
  bindAddonActions,
6128
7441
  brightnessCapability,
7442
+ brokerCapability,
6129
7443
  buildAddonRouteProvider,
6130
7444
  buildStreamParamsConfigSchema,
7445
+ buttonCapability,
6131
7446
  cameraCredentialsCapability,
7447
+ cameraPipelineConfigCapability,
6132
7448
  cameraStreamsCapability,
7449
+ carbonMonoxideCapability,
7450
+ cellsToRects,
6133
7451
  classifyStream,
6134
7452
  classifyStreams,
7453
+ climateControlCapability,
7454
+ colorCapability,
7455
+ connectivityCapability,
7456
+ consumablesCapability,
7457
+ contactCapability,
7458
+ controlCapability,
6135
7459
  cosineSimilarity,
7460
+ coverCapability,
6136
7461
  createDeviceProxy,
7462
+ createDurableState,
6137
7463
  createEvent,
6138
7464
  createLazyTrpcSource,
6139
7465
  createMirrorSource,
@@ -6144,10 +7470,12 @@ export {
6144
7470
  decoderCapability,
6145
7471
  defineCustomActions,
6146
7472
  detectionPipelineCapability,
7473
+ deviceAdoptionCapability,
7474
+ deviceCustomAction,
6147
7475
  deviceDiscoveryCapability,
6148
7476
  deviceExportCapability,
6149
7477
  deviceManagerCapability,
6150
- e_ as deviceMatchesProfile,
7478
+ hA as deviceMatchesProfile,
6151
7479
  deviceOpsCapability,
6152
7480
  deviceProviderCapability,
6153
7481
  deviceStateCapability,
@@ -6156,30 +7484,50 @@ export {
6156
7484
  embeddingEncoderCapability,
6157
7485
  emitDownForOwnedCaps,
6158
7486
  emitReadiness,
7487
+ hB as encodeProfileFromStreamShape,
7488
+ enumSensorCapability,
7489
+ enumerateSchemaFields,
6159
7490
  errMsg,
6160
7491
  evaluateZoneRules,
6161
- e$ as event,
7492
+ hC as event,
7493
+ eventEmitterCapability,
6162
7494
  eventsCapability,
6163
- f0 as expandCapMethods,
7495
+ hD as expandCapMethods,
7496
+ extractSourceInfoFromMetadata,
7497
+ fanControlCapability,
6164
7498
  featureProbeCapability,
7499
+ findTimezone,
7500
+ floodCapability,
6165
7501
  formatForBackend,
6166
7502
  formatForRuntime,
6167
- f1 as getAudioMacroClassIds,
7503
+ gasCapability,
7504
+ hE as getAudioMacroClassIds,
7505
+ getByPath,
6168
7506
  getCapsByProviderKind,
6169
7507
  hfModelUrl,
7508
+ humidifierCapability,
7509
+ humiditySensorCapability,
6170
7510
  hydrateSchema,
7511
+ imageCapability,
6171
7512
  integrationsCapability,
6172
7513
  intercomCapability,
6173
7514
  isAgentOnlyPlacement,
6174
7515
  isDeployableToAgent,
6175
- f2 as isDeviceConfigCap,
7516
+ hF as isDeviceConfigCap,
6176
7517
  isEvent,
7518
+ lawnMowerControlCapability,
6177
7519
  localNetworkCapability,
7520
+ locationSimilarity,
7521
+ lockControlCapability,
6178
7522
  logDestinationCapability,
6179
- f3 as mapAudioLabelToMacro,
7523
+ hG as makeProfileBrokerId,
7524
+ hH as makeSourceBrokerId,
7525
+ hI as mapAudioLabelToMacro,
6180
7526
  maskUrlCredentials,
7527
+ mediaPlayerCapability,
7528
+ mergeSourceInfo,
6181
7529
  meshNetworkCapability,
6182
- f4 as method,
7530
+ hJ as method,
6183
7531
  metricsProviderCapability,
6184
7532
  motionCapability,
6185
7533
  motionDetectionCapability,
@@ -6191,61 +7539,92 @@ export {
6191
7539
  networkQualityCapability,
6192
7540
  nodesCapability,
6193
7541
  normalizeAddonInitResult,
7542
+ hK as normalizeUnit,
6194
7543
  notificationOutputCapability,
7544
+ notifierCapability,
7545
+ numericSensorCapability,
6195
7546
  oauthIntegrationCapability,
6196
7547
  osdCapability,
6197
7548
  parseCameraStreamConfig,
6198
7549
  parseJsonArray,
6199
7550
  parseJsonObject,
6200
7551
  parseJsonUnknown,
7552
+ hL as parseProfileBrokerId,
6201
7553
  parseStreamParamsFormPatch,
7554
+ pickPreferredRtspEntry,
6202
7555
  pipelineAnalyticsCapability,
6203
7556
  pipelineExecutorCapability,
6204
7557
  pipelineOrchestratorCapability,
6205
7558
  pipelineRunnerCapability,
6206
7559
  platformProbeCapability,
7560
+ powerMeterCapability,
7561
+ presenceCapability,
7562
+ pressureSensorCapability,
7563
+ privacyMaskCapability,
6207
7564
  ptzAutotrackCapability,
6208
7565
  ptzCapability,
6209
7566
  pythonScriptForBackend,
6210
7567
  readinessKey,
6211
7568
  rebootCapability,
6212
7569
  recordingCapability,
6213
- recordingEngineCapability,
7570
+ rectsToCells,
6214
7571
  requiresPython,
6215
7572
  resolveAddonExecution,
6216
7573
  resolveAddonGroup,
6217
7574
  resolveAddonPlacement,
6218
7575
  resolveAddonRuntime,
6219
7576
  resolveDetectionRuntime,
6220
- f5 as resolveDeviceProfile,
7577
+ hM as resolveDeviceProfile,
6221
7578
  resolveModelFormat,
6222
7579
  resolveRunnerId,
6223
7580
  restreamerCapability,
6224
7581
  runInferenceStep,
6225
7582
  scopeKey,
7583
+ scriptRunnerCapability,
7584
+ hN as selectAssignedProfileSlots,
7585
+ setByPath,
6226
7586
  settingsStoreCapability,
7587
+ sleep,
7588
+ sleepCancellable,
7589
+ smokeCapability,
6227
7590
  smtpProviderCapability,
6228
7591
  snapshotCapability,
6229
7592
  snapshotProviderCapability,
6230
7593
  ssoBridgeCapability,
6231
7594
  storageCapability,
7595
+ storageEvictableCapability,
6232
7596
  storageProviderCapability,
6233
7597
  streamBrokerCapability,
7598
+ streamCatalogCapability,
6234
7599
  streamParamsCapability,
6235
7600
  streamPixels,
6236
7601
  streamQualityLabel,
6237
7602
  streamingEngineCapability,
6238
7603
  switchCapability,
7604
+ synthesizeSourceInfo,
6239
7605
  systemCapability,
7606
+ tamperCapability,
7607
+ temperatureSensorCapability,
6240
7608
  toDeviceSummary,
6241
7609
  toStreamSourceEntry,
6242
7610
  toastCapability,
6243
7611
  turnProviderCapability,
7612
+ updateCapability,
6244
7613
  userManagementCapability,
6245
7614
  userPasskeysCapability,
7615
+ vacuumControlCapability,
7616
+ valveCapability,
7617
+ vibrationCapability,
7618
+ waterHeaterCapability,
7619
+ weatherCapability,
6246
7620
  webrtcCapability,
6247
- f6 as webrtcClientHintsSchema,
7621
+ hO as webrtcClientHintsSchema,
6248
7622
  webrtcSessionCapability,
7623
+ hP as wiringAddonHealthSchema,
7624
+ hQ as wiringHealthSnapshotSchema,
7625
+ hR as wiringNodeHealthSchema,
7626
+ hS as wiringProbeKindSchema,
7627
+ hT as wiringProbeResultSchema,
6249
7628
  zodEntriesToConfigUI,
6250
7629
  zoneAnalyticsCapability,
6251
7630
  zoneRulesCapability,