@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.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index-CMM1Y9W6.js");
3
+ const index = require("./index-BSA_TBea.js");
4
4
  const zod = require("zod");
5
5
  class DisposerChain {
6
6
  disposers = [];
@@ -120,10 +120,15 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
120
120
  EventCategory2["DeviceSettingsUpdated"] = "device.settings-updated";
121
121
  EventCategory2["DeviceBindingsChanged"] = "device.bindings-changed";
122
122
  EventCategory2["DeviceMetaChanged"] = "device.meta-changed";
123
+ EventCategory2["DeviceSourceInfoChanged"] = "device.source-info-changed";
123
124
  EventCategory2["DeviceStreamsRegistered"] = "device.streams-registered";
125
+ EventCategory2["DeviceProvisioned"] = "device.provisioned";
126
+ EventCategory2["DeviceReady"] = "device.ready";
124
127
  EventCategory2["IntegrationEnabled"] = "integration.enabled";
125
128
  EventCategory2["IntegrationDisabled"] = "integration.disabled";
126
129
  EventCategory2["IntegrationDeleted"] = "integration.deleted";
130
+ EventCategory2["BrokerStatusChanged"] = "broker.status-changed";
131
+ EventCategory2["BrokerMessage"] = "broker.message";
127
132
  EventCategory2["ProviderStarted"] = "provider.started";
128
133
  EventCategory2["ProviderStopped"] = "provider.stopped";
129
134
  EventCategory2["ProcessCrashed"] = "process.crashed";
@@ -154,9 +159,12 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
154
159
  EventCategory2["StreamBrokerOnCamStreamDemand"] = "stream-broker.onCamStreamDemand";
155
160
  EventCategory2["StreamBrokerOnCamStreamIdle"] = "stream-broker.onCamStreamIdle";
156
161
  EventCategory2["StreamBrokerOnRequestStreamSourceRefresh"] = "stream-broker.onRequestStreamSourceRefresh";
162
+ EventCategory2["StreamParamsChanged"] = "stream-params.changed";
157
163
  EventCategory2["DeviceStateChanged"] = "device.state-changed";
158
164
  EventCategory2["BatteryOnStatusChanged"] = "battery.onStatusChanged";
165
+ EventCategory2["BatteryOnWakeStarted"] = "battery.onWakeStarted";
159
166
  EventCategory2["DoorbellOnPressed"] = "doorbell.onPressed";
167
+ EventCategory2["EventEmitted"] = "event-emitter.event";
160
168
  EventCategory2["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
161
169
  EventCategory2["ClusterTopologySnapshot"] = "cluster.topology-snapshot";
162
170
  EventCategory2["MetricsNodeResourcesSnapshot"] = "metrics.node-resources-snapshot";
@@ -201,6 +209,7 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
201
209
  EventCategory2["NetworkTunnelStarted"] = "network.tunnel.started";
202
210
  EventCategory2["NetworkTunnelStopped"] = "network.tunnel.stopped";
203
211
  EventCategory2["LocalNetworkChanged"] = "network.local.changed";
212
+ EventCategory2["MeshNetworkChanged"] = "network.mesh.changed";
204
213
  EventCategory2["BackupCompleted"] = "backup.completed";
205
214
  EventCategory2["BackupRestored"] = "backup.restored";
206
215
  EventCategory2["NotificationDispatched"] = "notification.dispatched";
@@ -211,6 +220,7 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
211
220
  EventCategory2["DeviceAwake"] = "device.awake";
212
221
  EventCategory2["DeviceSleeping"] = "device.sleeping";
213
222
  EventCategory2["RetentionCleanup"] = "retention.cleanup";
223
+ EventCategory2["AddonsBulkUpdateProgress"] = "addons.bulk-update-progress";
214
224
  return EventCategory2;
215
225
  })(EventCategory || {});
216
226
  function isEvent(event, category) {
@@ -240,6 +250,27 @@ function emitReadiness(bus, params) {
240
250
  }
241
251
  ));
242
252
  }
253
+ function createDurableState(deps) {
254
+ const get = async () => {
255
+ const store = await deps.read();
256
+ const raw = store[deps.key];
257
+ if (raw === void 0) return deps.fallback;
258
+ const parsed = deps.schema.safeParse(raw);
259
+ if (!parsed.success) {
260
+ deps.onParseError?.(deps.key, parsed.error);
261
+ return deps.fallback;
262
+ }
263
+ return parsed.data;
264
+ };
265
+ const set = async (next) => {
266
+ const validated = deps.schema.parse(next);
267
+ await deps.write({ [deps.key]: validated });
268
+ };
269
+ const update = async (fn) => {
270
+ await set(fn(await get()));
271
+ };
272
+ return { get, set, update };
273
+ }
243
274
  class BaseAddon {
244
275
  _ctx = null;
245
276
  _config;
@@ -363,7 +394,7 @@ class BaseAddon {
363
394
  }
364
395
  // ── Settings schemas (override to provide UI) ─────────────────────────
365
396
  /** Override to provide global-level settings UI schema. */
366
- globalSettingsSchema() {
397
+ globalSettingsSchema(_cap) {
367
398
  return null;
368
399
  }
369
400
  /** Override to provide device-level settings UI schema. */
@@ -377,8 +408,8 @@ class BaseAddon {
377
408
  // blob and every addon used exactly one of them; the distinction was
378
409
  // never semantically load-bearing. `global` won because it was the
379
410
  // widely-used one and the name reads naturally (per-node addon config).
380
- async getGlobalSettings(overlay) {
381
- const schema = this.globalSettingsSchema();
411
+ async getGlobalSettings(overlay, cap) {
412
+ const schema = this.globalSettingsSchema(cap);
382
413
  if (!schema) return { sections: [] };
383
414
  const raw = await this._ctx?.settings?.readAddonStore() ?? {};
384
415
  return index.hydrateSchema(schema, overlay ? { ...raw, ...overlay } : raw);
@@ -483,12 +514,18 @@ class BaseAddon {
483
514
  // ── Lifecycle event emission ────────────────────────────────────────────
484
515
  emitLifecycle(category, data) {
485
516
  try {
486
- this._ctx?.eventBus.emit({
487
- id: `${this._ctx.id}-${Date.now()}`,
517
+ const ctx = this._ctx;
518
+ if (!ctx) return;
519
+ ctx.eventBus.emit({
520
+ id: `${ctx.id}-${Date.now()}`,
488
521
  timestamp: /* @__PURE__ */ new Date(),
489
- source: { type: "addon", id: this._ctx.id, nodeId: this._ctx.kernel.localNodeId ?? "hub" },
522
+ source: { type: "addon", id: ctx.id, nodeId: ctx.kernel.localNodeId ?? "hub" },
490
523
  category,
491
- data: data ?? {}
524
+ // Always carry `addonId` in the payload (the lifecycle event
525
+ // contract declares it) so consumers — e.g. the alerts builder —
526
+ // can name the addon without reaching into `source`. An explicit
527
+ // `data.addonId` still wins if a caller provides one.
528
+ data: { addonId: ctx.id, ...data ?? {} }
492
529
  });
493
530
  } catch {
494
531
  }
@@ -561,6 +598,44 @@ class BaseAddon {
561
598
  }
562
599
  this._config = resolved;
563
600
  }
601
+ /**
602
+ * Typed durable handle over ONE key of this addon's store. The whole
603
+ * Zod-validated value round-trips on every read/write — no hand-listed
604
+ * fields, so a field can never be silently dropped on persist. Reads use
605
+ * the same retry budget as config resolution; a corrupt/legacy blob logs
606
+ * a warning and falls back rather than crashing boot.
607
+ */
608
+ state(key, schema, fallback) {
609
+ return createDurableState({
610
+ key,
611
+ schema,
612
+ fallback,
613
+ read: () => this.readAddonStoreWithRetry(),
614
+ write: async (patch) => {
615
+ await this._ctx?.settings?.writeAddonStore(patch);
616
+ },
617
+ onParseError: (k, e) => this._ctx?.logger?.warn?.(
618
+ `durable-state: stored "${k}" failed validation — using fallback`,
619
+ { meta: { addonId: this._ctx?.id, key: k, error: String(e) } }
620
+ )
621
+ });
622
+ }
623
+ /** Per-device variant of {@link state}, backed by the per-device store. */
624
+ deviceState(deviceId, key, schema, fallback) {
625
+ return createDurableState({
626
+ key,
627
+ schema,
628
+ fallback,
629
+ read: async () => await this._ctx?.settings?.readDeviceStore(deviceId) ?? {},
630
+ write: async (patch) => {
631
+ await this._ctx?.settings?.writeDeviceStore(deviceId, patch);
632
+ },
633
+ onParseError: (k, e) => this._ctx?.logger?.warn?.(
634
+ `durable-state: stored device ${deviceId} "${k}" failed validation — using fallback`,
635
+ { meta: { addonId: this._ctx?.id, deviceId, key: k, error: String(e) } }
636
+ )
637
+ });
638
+ }
564
639
  /**
565
640
  * Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
566
641
  * transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
@@ -686,6 +761,68 @@ function buildCapturingReply(envelope) {
686
761
  };
687
762
  return wrapper;
688
763
  }
764
+ const EU_DST = {
765
+ offsetHours: 1,
766
+ startMonth: 3,
767
+ startWeekIndex: 5,
768
+ startWeekday: "Sunday",
769
+ startHour: 2,
770
+ endMonth: 10,
771
+ endWeekIndex: 5,
772
+ endWeekday: "Sunday",
773
+ endHour: 3
774
+ };
775
+ const US_DST = {
776
+ offsetHours: 1,
777
+ startMonth: 3,
778
+ startWeekIndex: 2,
779
+ startWeekday: "Sunday",
780
+ startHour: 2,
781
+ endMonth: 11,
782
+ endWeekIndex: 1,
783
+ endWeekday: "Sunday",
784
+ endHour: 2
785
+ };
786
+ const AU_DST = {
787
+ offsetHours: 1,
788
+ startMonth: 10,
789
+ startWeekIndex: 1,
790
+ startWeekday: "Sunday",
791
+ startHour: 2,
792
+ endMonth: 4,
793
+ endWeekIndex: 1,
794
+ endWeekday: "Sunday",
795
+ endHour: 3
796
+ };
797
+ const TIMEZONES = [
798
+ // --- Universal ---
799
+ { id: "UTC", label: "UTC (UTC+0)", region: "Universal", stdOffsetMinutes: 0, dst: null },
800
+ // --- Europe (EU DST rule) ---
801
+ { id: "Europe/London", label: "Europe/London (UTC+0 / BST)", region: "Europe", stdOffsetMinutes: 0, dst: EU_DST },
802
+ { id: "Europe/Rome", label: "Europe/Rome (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
803
+ { id: "Europe/Paris", label: "Europe/Paris (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
804
+ { id: "Europe/Berlin", label: "Europe/Berlin (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
805
+ { id: "Europe/Madrid", label: "Europe/Madrid (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
806
+ { id: "Europe/Amsterdam", label: "Europe/Amsterdam (UTC+1 / CEST)", region: "Europe", stdOffsetMinutes: 60, dst: EU_DST },
807
+ { id: "Europe/Istanbul", label: "Europe/Istanbul (UTC+3)", region: "Europe", stdOffsetMinutes: 180, dst: null },
808
+ // --- Americas (US/Canada DST rule) ---
809
+ { id: "America/New_York", label: "America/New York (UTC−5 / EDT)", region: "Americas", stdOffsetMinutes: -300, dst: US_DST },
810
+ { id: "America/Chicago", label: "America/Chicago (UTC−6 / CDT)", region: "Americas", stdOffsetMinutes: -360, dst: US_DST },
811
+ { id: "America/Denver", label: "America/Denver (UTC−7 / MDT)", region: "Americas", stdOffsetMinutes: -420, dst: US_DST },
812
+ { id: "America/Los_Angeles", label: "America/Los Angeles (UTC−8 / PDT)", region: "Americas", stdOffsetMinutes: -480, dst: US_DST },
813
+ { id: "America/Sao_Paulo", label: "America/Sao Paulo (UTC−3)", region: "Americas", stdOffsetMinutes: -180, dst: null },
814
+ // --- Asia / Middle East (no DST) ---
815
+ { id: "Asia/Dubai", label: "Asia/Dubai (UTC+4)", region: "Asia", stdOffsetMinutes: 240, dst: null },
816
+ { id: "Asia/Kolkata", label: "Asia/Kolkata (UTC+5:30)", region: "Asia", stdOffsetMinutes: 330, dst: null },
817
+ { id: "Asia/Singapore", label: "Asia/Singapore (UTC+8)", region: "Asia", stdOffsetMinutes: 480, dst: null },
818
+ { id: "Asia/Shanghai", label: "Asia/Shanghai (UTC+8)", region: "Asia", stdOffsetMinutes: 480, dst: null },
819
+ { id: "Asia/Tokyo", label: "Asia/Tokyo (UTC+9)", region: "Asia", stdOffsetMinutes: 540, dst: null },
820
+ // --- Oceania (southern-hemisphere DST) ---
821
+ { id: "Australia/Sydney", label: "Australia/Sydney (UTC+10 / AEDT)", region: "Oceania", stdOffsetMinutes: 600, dst: AU_DST }
822
+ ];
823
+ function findTimezone(id) {
824
+ return TIMEZONES.find((tz) => tz.id === id);
825
+ }
689
826
  class ReadinessTimeoutError extends Error {
690
827
  capName;
691
828
  scope;
@@ -883,6 +1020,14 @@ class ReadinessRegistry {
883
1020
  cleanup();
884
1021
  reject(new ReadinessTimeoutError(capName, scope, this.now() - start));
885
1022
  }, timeoutMs);
1023
+ const PENDING_LOG_INTERVAL_MS = 3e4;
1024
+ const pendingLogTimer = setInterval(() => {
1025
+ if (settled) return;
1026
+ this.logger?.warn(
1027
+ `readiness: still awaiting ${capName} (${scopeKey(scope)}) after ${this.now() - start}ms`
1028
+ );
1029
+ }, PENDING_LOG_INTERVAL_MS);
1030
+ if (typeof pendingLogTimer.unref === "function") pendingLogTimer.unref();
886
1031
  const onAbort = () => {
887
1032
  if (settled) return;
888
1033
  settled = true;
@@ -893,6 +1038,7 @@ class ReadinessRegistry {
893
1038
  function cleanup() {
894
1039
  unsubscribe();
895
1040
  if (timer !== null) clearTimeout(timer);
1041
+ clearInterval(pendingLogTimer);
896
1042
  opts.signal?.removeEventListener("abort", onAbort);
897
1043
  }
898
1044
  });
@@ -1072,34 +1218,7 @@ function emitDownForOwnedCaps(registry, owned) {
1072
1218
  registry.emitDown(capName, scope);
1073
1219
  }
1074
1220
  }
1075
- const STORAGE_LOCATION_TYPES = [
1076
- "data",
1077
- "media",
1078
- "recordings",
1079
- "recordings-high",
1080
- "recordings-low",
1081
- "recordings-clips",
1082
- "event-images",
1083
- "models",
1084
- "addons-data",
1085
- "cache",
1086
- "logs",
1087
- "backups"
1088
- ];
1089
- const DEFAULT_LOCATION_SUBDIRS = {
1090
- "data": "db",
1091
- "media": "media",
1092
- "recordings": "recordings",
1093
- "recordings-high": "recordings-high",
1094
- "recordings-low": "recordings-low",
1095
- "recordings-clips": "recordings-clips",
1096
- "event-images": "event-images",
1097
- "models": "models",
1098
- "addons-data": "addons-data",
1099
- "cache": "/tmp/camstack-cache",
1100
- "logs": "logs",
1101
- "backups": "backups"
1102
- };
1221
+ const DATAPLANE_SECRET_HEADER = "x-camstack-dataplane-secret";
1103
1222
  const STREAM_QUALITY_LABELS = {
1104
1223
  high: "High",
1105
1224
  mid: "Mid",
@@ -1147,12 +1266,12 @@ function toStreamSourceEntry(stream) {
1147
1266
  function isString(v) {
1148
1267
  return typeof v === "string";
1149
1268
  }
1150
- function isRecord(v) {
1269
+ function isRecord$1(v) {
1151
1270
  return typeof v === "object" && v !== null && !Array.isArray(v);
1152
1271
  }
1153
1272
  function parseStreamEntry(v) {
1154
1273
  if (isString(v) && v.trim()) return { url: v };
1155
- if (isRecord(v) && isString(v["url"]) && v["url"].trim()) {
1274
+ if (isRecord$1(v) && isString(v["url"]) && v["url"].trim()) {
1156
1275
  return {
1157
1276
  url: v["url"],
1158
1277
  label: isString(v["label"]) ? v["label"] : void 0
@@ -1213,6 +1332,51 @@ const DEFAULT_FEATURES = {
1213
1332
  };
1214
1333
  const SUB_DETECTION_TYPES = ["face", "plate"];
1215
1334
  const RECOGNITION_TYPES = ["face", "plate", "clip", "custom"];
1335
+ function pickPreferredRtspEntry(entries, pref, deviceId, options = {}) {
1336
+ if (entries.length === 0) return null;
1337
+ const prefix = `${deviceId}/`;
1338
+ const toPicked = (e) => ({
1339
+ brokerId: e.brokerId,
1340
+ profileId: e.brokerId.startsWith(prefix) ? e.brokerId.slice(prefix.length) : e.brokerId,
1341
+ url: e.url,
1342
+ mutedUrl: e.mutedUrl,
1343
+ enabled: e.enabled,
1344
+ ...e.codec !== void 0 ? { codec: e.codec } : {},
1345
+ ...e.resolution !== void 0 ? { resolution: e.resolution } : {}
1346
+ });
1347
+ if (pref !== "auto") {
1348
+ const match = entries.find(
1349
+ (e) => e.enabled && e.url.length > 0 && (e.profile === pref || e.brokerId === `${prefix}${pref}`)
1350
+ );
1351
+ if (match) return toPicked(match);
1352
+ }
1353
+ const eligible = entries.filter((e) => e.enabled && e.url.length > 0);
1354
+ if (eligible.length === 0) return null;
1355
+ const target = options.targetResolution;
1356
+ if (target) {
1357
+ const withRes = eligible.filter((e) => e.resolution !== void 0);
1358
+ if (withRes.length > 0) {
1359
+ const picked = pickClosestResolution(withRes, target);
1360
+ if (picked) return toPicked(picked);
1361
+ }
1362
+ }
1363
+ return toPicked(eligible[0]);
1364
+ }
1365
+ function pickClosestResolution(entries, target) {
1366
+ const targetPixels = target.width * target.height;
1367
+ let bestAbove;
1368
+ let bestBelow;
1369
+ for (const e of entries) {
1370
+ if (e.resolution === void 0) continue;
1371
+ const pixels = e.resolution.width * e.resolution.height;
1372
+ if (pixels >= targetPixels) {
1373
+ if (!bestAbove || pixels < bestAbove.pixels) bestAbove = { entry: e, pixels };
1374
+ } else {
1375
+ if (!bestBelow || pixels > bestBelow.pixels) bestBelow = { entry: e, pixels };
1376
+ }
1377
+ }
1378
+ return bestAbove?.entry ?? bestBelow?.entry;
1379
+ }
1216
1380
  const DEFAULT_RETENTION = {
1217
1381
  cleanupIntervalMs: 60 * 60 * 1e3,
1218
1382
  detectionEventsDays: 30,
@@ -1254,9 +1418,6 @@ const RUNTIME_DEFAULTS = {
1254
1418
  models: "camstack-data/models"
1255
1419
  },
1256
1420
  "providers": [],
1257
- // Recording
1258
- "recording.segmentDurationSeconds": 4,
1259
- "recording.defaultRetentionDays": 30,
1260
1421
  // Streaming ports are addon-specific (go2rtc owns its defaults)
1261
1422
  // FFmpeg
1262
1423
  "ffmpeg.binaryPath": "ffmpeg",
@@ -1924,20 +2085,61 @@ function createRuntimeStateBridge(params) {
1924
2085
  return { ensureFresh, getStatus };
1925
2086
  }
1926
2087
  const DEVICE_LOCAL_STATE_CAPS = {
2088
+ airQualitySensor: index.airQualitySensorCapability,
2089
+ alarmPanel: index.alarmPanelCapability,
2090
+ ambientLightSensor: index.ambientLightSensorCapability,
1927
2091
  audioMetrics: index.audioMetricsCapability,
2092
+ automationControl: index.automationControlCapability,
1928
2093
  battery: index.batteryCapability,
2094
+ binary: index.binaryCapability,
1929
2095
  brightness: index.brightnessCapability,
1930
2096
  cameraStreams: index.cameraStreamsCapability,
2097
+ carbonMonoxide: index.carbonMonoxideCapability,
2098
+ climateControl: index.climateControlCapability,
2099
+ color: index.colorCapability,
2100
+ connectivity: index.connectivityCapability,
2101
+ consumables: index.consumablesCapability,
2102
+ contact: index.contactCapability,
2103
+ control: index.controlCapability,
2104
+ cover: index.coverCapability,
1931
2105
  deviceDiscovery: index.deviceDiscoveryCapability,
1932
2106
  deviceStatus: index.deviceStatusCapability,
1933
2107
  doorbell: index.doorbellCapability,
2108
+ enumSensor: index.enumSensorCapability,
2109
+ eventEmitter: index.eventEmitterCapability,
2110
+ fanControl: index.fanControlCapability,
1934
2111
  featureProbe: index.featureProbeCapability,
2112
+ flood: index.floodCapability,
2113
+ gas: index.gasCapability,
2114
+ humidifier: index.humidifierCapability,
2115
+ humiditySensor: index.humiditySensorCapability,
2116
+ image: index.imageCapability,
2117
+ lawnMowerControl: index.lawnMowerControlCapability,
2118
+ lockControl: index.lockControlCapability,
2119
+ mediaPlayer: index.mediaPlayerCapability,
1935
2120
  motion: index.motionCapability,
1936
2121
  motionTrigger: index.motionTriggerCapability,
1937
2122
  motionZones: index.motionZonesCapability,
2123
+ nativeObjectDetection: index.nativeObjectDetectionCapability,
2124
+ notifier: index.notifierCapability,
2125
+ numericSensor: index.numericSensorCapability,
2126
+ powerMeter: index.powerMeterCapability,
2127
+ presence: index.presenceCapability,
2128
+ pressureSensor: index.pressureSensorCapability,
2129
+ privacyMask: index.privacyMaskCapability,
1938
2130
  ptzAutotrack: index.ptzAutotrackCapability,
2131
+ scriptRunner: index.scriptRunnerCapability,
2132
+ smoke: index.smokeCapability,
1939
2133
  streamParams: index.streamParamsCapability,
1940
2134
  switch: index.switchCapability,
2135
+ tamper: index.tamperCapability,
2136
+ temperatureSensor: index.temperatureSensorCapability,
2137
+ update: index.updateCapability,
2138
+ vacuumControl: index.vacuumControlCapability,
2139
+ valve: index.valveCapability,
2140
+ vibration: index.vibrationCapability,
2141
+ waterHeater: index.waterHeaterCapability,
2142
+ weather: index.weatherCapability,
1941
2143
  zoneAnalytics: index.zoneAnalyticsCapability,
1942
2144
  zoneRules: index.zoneRulesCapability,
1943
2145
  zones: index.zonesCapability
@@ -2041,6 +2243,16 @@ class BaseDevice {
2041
2243
  * `kernel.devices.setDisabled(id, value)`.
2042
2244
  */
2043
2245
  disabled;
2246
+ /**
2247
+ * Cached materialised `SourceInfo` — either the value persisted under
2248
+ * `metadata.sourceInfo` at construction time, or a synthetic
2249
+ * `{ id: stableId, system: addonId }` for providers that haven't
2250
+ * migrated yet. Lazily populated on first `sourceInfo` read so the
2251
+ * cost of Zod-parsing the meta blob is paid once per device boot.
2252
+ * Invalidated by `updateSourceInfo()` so providers see the new value
2253
+ * back through the getter without a re-fetch from the meta surface.
2254
+ */
2255
+ _sourceInfoCache = null;
2044
2256
  constructor(ctx, schema, options) {
2045
2257
  this.ctx = ctx;
2046
2258
  this.id = ctx.id;
@@ -2081,7 +2293,7 @@ class BaseDevice {
2081
2293
  this.runtimeState = DeviceRuntimeState.fromInitial(initial, writer);
2082
2294
  ctx.bindRuntimeState?.(this.runtimeState);
2083
2295
  ctx.registerNativeCap?.(index.deviceStatusCapability, {});
2084
- const seed = { online: false, lastChangedAt: Date.now() };
2296
+ const seed = { online: true, lastChangedAt: Date.now() };
2085
2297
  this.runtimeState.setCapState("device-status", seed);
2086
2298
  ctx.registerNativeCap?.(index.featureProbeCapability, {});
2087
2299
  const probeSeed = {
@@ -2094,6 +2306,21 @@ class BaseDevice {
2094
2306
  };
2095
2307
  this.runtimeState.setCapState("feature-probe", probeSeed);
2096
2308
  }
2309
+ deviceActions = /* @__PURE__ */ new Map();
2310
+ /** Declare a device custom action + its typed handler. Idempotent per name. */
2311
+ registerDeviceAction(name, spec, handler) {
2312
+ this.deviceActions.set(name, {
2313
+ spec,
2314
+ handler
2315
+ });
2316
+ }
2317
+ /** Invoke a registered device action. Validates input against the spec. */
2318
+ async runDeviceAction(action, input) {
2319
+ const entry = this.deviceActions.get(action);
2320
+ if (!entry) throw new Error(`unknown device action "${action}" on device ${this.id}`);
2321
+ const parsed = entry.spec.input.parse(input);
2322
+ return entry.handler(parsed);
2323
+ }
2097
2324
  async removeDevice() {
2098
2325
  }
2099
2326
  /**
@@ -2110,6 +2337,71 @@ class BaseDevice {
2110
2337
  const next = { online, lastChangedAt: Date.now() };
2111
2338
  this.runtimeState.setCapState("device-status", next);
2112
2339
  }
2340
+ /**
2341
+ * Upstream-system identity + rendering envelope for this device. See
2342
+ * `SourceInfo` for the field contract. Always returns a valid object:
2343
+ * if the persisted `metadata.sourceInfo` blob is absent or fails Zod
2344
+ * validation, falls back to a synthetic `{ id: stableId, system: addonId }`
2345
+ * so providers that haven't migrated keep working without code changes.
2346
+ *
2347
+ * The value is cached after the first read. `updateSourceInfo()`
2348
+ * invalidates the cache so subsequent reads see the new patch. The
2349
+ * returned object is frozen to prevent accidental in-place mutation —
2350
+ * use `updateSourceInfo({ patch })` to change fields.
2351
+ */
2352
+ get sourceInfo() {
2353
+ if (this._sourceInfoCache) return this._sourceInfoCache;
2354
+ const fromMeta = index.extractSourceInfoFromMetadata(this.ctx.deviceMeta.metadata);
2355
+ const resolved = fromMeta ?? index.synthesizeSourceInfo({
2356
+ stableId: this.stableId,
2357
+ addonId: this.ctx.deviceMeta.addonId
2358
+ });
2359
+ this._sourceInfoCache = Object.freeze({ ...resolved });
2360
+ return this._sourceInfoCache;
2361
+ }
2362
+ /**
2363
+ * Convenience accessor for the upstream dispatch key. Equivalent to
2364
+ * `this.sourceInfo.id` — providers use this to keep a
2365
+ * `Map<sourceId, IDevice>` for routing inbound push events.
2366
+ */
2367
+ get sourceId() {
2368
+ return this.sourceInfo.id;
2369
+ }
2370
+ /**
2371
+ * Patch the device's `SourceInfo`. Shallow-merges `patch` over the
2372
+ * current value, persists the merged result under
2373
+ * `metadata.sourceInfo` via the `device-manager.setMetadata` cap, and
2374
+ * emits `EventCategory.DeviceSourceInfoChanged` for live consumers.
2375
+ *
2376
+ * Safe to call from anywhere in the device's lifetime — the call is
2377
+ * idempotent for `undefined` patch values (ignored) and best-effort
2378
+ * for persistence (a transient device-manager error doesn't unwind
2379
+ * the local cache update, so subsequent reads still see the patch).
2380
+ *
2381
+ * Drivers populate this on adoption + on every metadata change push
2382
+ * from the upstream source. Subscribers (UI, export adapters) react
2383
+ * via the `DeviceSourceInfoChanged` event without polling.
2384
+ */
2385
+ async updateSourceInfo(patch) {
2386
+ const next = index.mergeSourceInfo(this.sourceInfo, patch);
2387
+ this._sourceInfoCache = Object.freeze({ ...next });
2388
+ const api = this.ctx.api;
2389
+ const action = api?.deviceManager?.setMetadata;
2390
+ if (action) {
2391
+ try {
2392
+ await action.mutate({
2393
+ deviceId: this.id,
2394
+ patch: { [index.SOURCE_INFO_METADATA_KEY]: next }
2395
+ });
2396
+ } catch {
2397
+ }
2398
+ }
2399
+ this.ctx.eventBus.emit(createEvent(
2400
+ "device.source-info-changed",
2401
+ { type: "device", id: this.stableId },
2402
+ { deviceId: this.id, sourceInfo: next }
2403
+ ));
2404
+ }
2113
2405
  /**
2114
2406
  * Re-publish the device's current `features` array to the persisted
2115
2407
  * meta blob. Drivers call this after a probe finishes when the live
@@ -2360,7 +2652,13 @@ function toDeviceSummary(device, addonId) {
2360
2652
  parentDeviceId: device.parentDeviceId,
2361
2653
  online: device.online,
2362
2654
  features: [...device.features],
2363
- config
2655
+ config,
2656
+ // BaseDevice always resolves sourceInfo (synthetic or persisted).
2657
+ // `IDevice` doesn't declare the field — providers that override
2658
+ // `IDevice` outside the BaseDevice hierarchy stay backwards-
2659
+ // compatible. Read through a structural check so non-BaseDevice
2660
+ // implementations don't blow up.
2661
+ sourceInfo: device.sourceInfo
2364
2662
  };
2365
2663
  }
2366
2664
  class BaseDeviceProvider extends BaseAddon {
@@ -2669,6 +2967,80 @@ function getZodDefault(schema) {
2669
2967
  function humanizeKey(key) {
2670
2968
  return key.replace(/([A-Z])/g, " $1").replace(/[_-]/g, " ").replace(/^\w/, (c) => c.toUpperCase()).trim();
2671
2969
  }
2970
+ function isRecord(x) {
2971
+ return x !== null && typeof x === "object" && !Array.isArray(x);
2972
+ }
2973
+ function getByPath(obj, path) {
2974
+ const parts = path.split(".");
2975
+ let cur = obj;
2976
+ for (const part of parts) {
2977
+ if (!isRecord(cur)) return void 0;
2978
+ cur = cur[part];
2979
+ }
2980
+ return cur;
2981
+ }
2982
+ function setByPath(obj, path, value) {
2983
+ const dotIndex = path.indexOf(".");
2984
+ if (dotIndex === -1) {
2985
+ return { ...obj, [path]: value };
2986
+ }
2987
+ const head = path.slice(0, dotIndex);
2988
+ const tail = path.slice(dotIndex + 1);
2989
+ const child = obj[head];
2990
+ const childObj = isRecord(child) ? child : {};
2991
+ return { ...obj, [head]: setByPath(childObj, tail, value) };
2992
+ }
2993
+ function applyTransform(value, transform) {
2994
+ if (!transform || transform.kind === "identity") return value;
2995
+ if (transform.kind === "enum-map") {
2996
+ const key = String(value);
2997
+ if (Object.prototype.hasOwnProperty.call(transform.mapping, key)) return transform.mapping[key];
2998
+ return transform.fallback ?? null;
2999
+ }
3000
+ if (transform.kind === "linear") {
3001
+ if (typeof value !== "number" || Number.isNaN(value)) return null;
3002
+ let out = value * transform.scale + transform.offset;
3003
+ if (transform.clamp) {
3004
+ const min = transform.clamp[0];
3005
+ const max = transform.clamp[1];
3006
+ out = Math.min(max, Math.max(min, out));
3007
+ }
3008
+ return out;
3009
+ }
3010
+ return value;
3011
+ }
3012
+ function unwrap(schema) {
3013
+ let s = schema;
3014
+ while (s instanceof zod.z.ZodNullable || s instanceof zod.z.ZodOptional || s instanceof zod.z.ZodDefault) {
3015
+ s = s.unwrap();
3016
+ }
3017
+ return s;
3018
+ }
3019
+ function leafKind(schema) {
3020
+ const s = unwrap(schema);
3021
+ if (s instanceof zod.z.ZodEnum) return { kind: "enum", enumValues: s.options };
3022
+ if (s instanceof zod.z.ZodNumber) return { kind: "number" };
3023
+ if (s instanceof zod.z.ZodString) return { kind: "string" };
3024
+ if (s instanceof zod.z.ZodBoolean) return { kind: "boolean" };
3025
+ return null;
3026
+ }
3027
+ function enumerateSchemaFields(schema, prefix = "") {
3028
+ const root = unwrap(schema);
3029
+ if (!(root instanceof zod.z.ZodObject)) return [];
3030
+ const out = [];
3031
+ const shape = root.shape;
3032
+ for (const [key, field] of Object.entries(shape)) {
3033
+ const path = prefix ? `${prefix}.${key}` : key;
3034
+ const inner = unwrap(field);
3035
+ if (inner instanceof zod.z.ZodObject) {
3036
+ out.push(...enumerateSchemaFields(inner, path));
3037
+ continue;
3038
+ }
3039
+ const leaf = leafKind(field);
3040
+ if (leaf) out.push({ path, kind: leaf.kind, ...leaf.enumValues ? { enumValues: leaf.enumValues } : {} });
3041
+ }
3042
+ return out;
3043
+ }
2672
3044
  const DEVICE_STATE_EVENT_CATEGORY = "device.state-changed";
2673
3045
  function createLazyTrpcSource(api) {
2674
3046
  const cache = /* @__PURE__ */ new Map();
@@ -2832,8 +3204,21 @@ function createDeviceProxy(api, binding, opts) {
2832
3204
  return callLeaf(capProp, method, kind, mergeInput(input, void 0), push);
2833
3205
  }
2834
3206
  const accessoriesInterface = {
3207
+ setChildHidden: (input) => dispatch("accessories", "accessories", "setChildHidden", "mutation", input),
2835
3208
  getStatus: (input) => dispatch("accessories", "accessories", "getStatus", "query", input)
2836
3209
  };
3210
+ const airQualitySensorInterface = {
3211
+ getStatus: (input) => dispatch("air-quality-sensor", "airQualitySensor", "getStatus", "query", input)
3212
+ };
3213
+ const alarmPanelInterface = {
3214
+ arm: (input) => dispatch("alarm-panel", "alarmPanel", "arm", "mutation", input),
3215
+ disarm: (input) => dispatch("alarm-panel", "alarmPanel", "disarm", "mutation", input),
3216
+ trigger: (input) => dispatch("alarm-panel", "alarmPanel", "trigger", "mutation", input),
3217
+ getStatus: (input) => dispatch("alarm-panel", "alarmPanel", "getStatus", "query", input)
3218
+ };
3219
+ const ambientLightSensorInterface = {
3220
+ getStatus: (input) => dispatch("ambient-light-sensor", "ambientLightSensor", "getStatus", "query", input)
3221
+ };
2837
3222
  const audioAnalysisInterface = {
2838
3223
  resolveDeviceSettings: (input) => dispatch("audio-analysis", "audioAnalysis", "resolveDeviceSettings", "query", input),
2839
3224
  getDeviceSettingsContribution: (input) => dispatch("audio-analysis", "audioAnalysis", "getDeviceSettingsContribution", "query", input),
@@ -2844,13 +3229,26 @@ function createDeviceProxy(api, binding, opts) {
2844
3229
  getCurrentSnapshot: (input) => dispatch("audio-metrics", "audioMetrics", "getCurrentSnapshot", "query", input),
2845
3230
  getHistory: (input) => dispatch("audio-metrics", "audioMetrics", "getHistory", "query", input)
2846
3231
  };
3232
+ const automationControlInterface = {
3233
+ enable: (input) => dispatch("automation-control", "automationControl", "enable", "mutation", input),
3234
+ disable: (input) => dispatch("automation-control", "automationControl", "disable", "mutation", input),
3235
+ trigger: (input) => dispatch("automation-control", "automationControl", "trigger", "mutation", input),
3236
+ getStatus: (input) => dispatch("automation-control", "automationControl", "getStatus", "query", input)
3237
+ };
2847
3238
  const batteryInterface = {
3239
+ wakeForStream: (input) => dispatch("battery", "battery", "wakeForStream", "mutation", input),
2848
3240
  getStatus: (input) => dispatch("battery", "battery", "getStatus", "query", input)
2849
3241
  };
3242
+ const binaryInterface = {
3243
+ getStatus: (input) => dispatch("binary", "binary", "getStatus", "query", input)
3244
+ };
2850
3245
  const brightnessInterface = {
2851
3246
  setBrightness: (input) => dispatch("brightness", "brightness", "setBrightness", "mutation", input),
2852
3247
  getStatus: (input) => dispatch("brightness", "brightness", "getStatus", "query", input)
2853
3248
  };
3249
+ const buttonInterface = {
3250
+ press: (input) => dispatch("button", "button", "press", "mutation", input)
3251
+ };
2854
3252
  const cameraCredentialsInterface = {
2855
3253
  getCredentials: (input) => dispatch("camera-credentials", "cameraCredentials", "getCredentials", "query", input),
2856
3254
  getStatus: (input) => dispatch("camera-credentials", "cameraCredentials", "getStatus", "query", input)
@@ -2858,7 +3256,47 @@ function createDeviceProxy(api, binding, opts) {
2858
3256
  const cameraStreamsInterface = {
2859
3257
  getCameraStreams: (input) => dispatch("camera-streams", "cameraStreams", "getCameraStreams", "query", input),
2860
3258
  getBrokerStreams: (input) => dispatch("camera-streams", "cameraStreams", "getBrokerStreams", "query", input),
2861
- getRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getRtspEntries", "query", input)
3259
+ getRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getRtspEntries", "query", input),
3260
+ getProfileRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getProfileRtspEntries", "query", input),
3261
+ pickStream: (input) => dispatch("camera-streams", "cameraStreams", "pickStream", "query", input)
3262
+ };
3263
+ const carbonMonoxideInterface = {
3264
+ getStatus: (input) => dispatch("carbon-monoxide", "carbonMonoxide", "getStatus", "query", input)
3265
+ };
3266
+ const climateControlInterface = {
3267
+ setMode: (input) => dispatch("climate-control", "climateControl", "setMode", "mutation", input),
3268
+ setFanMode: (input) => dispatch("climate-control", "climateControl", "setFanMode", "mutation", input),
3269
+ setPreset: (input) => dispatch("climate-control", "climateControl", "setPreset", "mutation", input),
3270
+ setTarget: (input) => dispatch("climate-control", "climateControl", "setTarget", "mutation", input),
3271
+ setTargetRange: (input) => dispatch("climate-control", "climateControl", "setTargetRange", "mutation", input),
3272
+ setTargetHumidity: (input) => dispatch("climate-control", "climateControl", "setTargetHumidity", "mutation", input),
3273
+ getStatus: (input) => dispatch("climate-control", "climateControl", "getStatus", "query", input)
3274
+ };
3275
+ const colorInterface = {
3276
+ setColor: (input) => dispatch("color", "color", "setColor", "mutation", input),
3277
+ getStatus: (input) => dispatch("color", "color", "getStatus", "query", input)
3278
+ };
3279
+ const connectivityInterface = {
3280
+ getStatus: (input) => dispatch("connectivity", "connectivity", "getStatus", "query", input)
3281
+ };
3282
+ const consumablesInterface = {
3283
+ reset: (input) => dispatch("consumables", "consumables", "reset", "mutation", input),
3284
+ getStatus: (input) => dispatch("consumables", "consumables", "getStatus", "query", input)
3285
+ };
3286
+ const contactInterface = {
3287
+ getStatus: (input) => dispatch("contact", "contact", "getStatus", "query", input)
3288
+ };
3289
+ const controlInterface = {
3290
+ setValue: (input) => dispatch("control", "control", "setValue", "mutation", input),
3291
+ getStatus: (input) => dispatch("control", "control", "getStatus", "query", input)
3292
+ };
3293
+ const coverInterface = {
3294
+ open: (input) => dispatch("cover", "cover", "open", "mutation", input),
3295
+ close: (input) => dispatch("cover", "cover", "close", "mutation", input),
3296
+ stop: (input) => dispatch("cover", "cover", "stop", "mutation", input),
3297
+ setPosition: (input) => dispatch("cover", "cover", "setPosition", "mutation", input),
3298
+ setTiltPosition: (input) => dispatch("cover", "cover", "setTiltPosition", "mutation", input),
3299
+ getStatus: (input) => dispatch("cover", "cover", "getStatus", "query", input)
2862
3300
  };
2863
3301
  const detectionPipelineInterface = {
2864
3302
  getDeviceSettingsContribution: (input) => dispatch("detection-pipeline", "detectionPipeline", "getDeviceSettingsContribution", "query", input),
@@ -2876,8 +3314,10 @@ function createDeviceProxy(api, binding, opts) {
2876
3314
  getStreamSources: (input) => dispatch("device-ops", "deviceOps", "getStreamSources", "query", input),
2877
3315
  getConfigEntries: (input) => dispatch("device-ops", "deviceOps", "getConfigEntries", "query", input),
2878
3316
  setConfig: (input) => dispatch("device-ops", "deviceOps", "setConfig", "mutation", input),
3317
+ runAction: (input) => dispatch("device-ops", "deviceOps", "runAction", "mutation", input),
2879
3318
  removeDevice: (input) => dispatch("device-ops", "deviceOps", "removeDevice", "mutation", input),
2880
- getSettingsSchema: (input) => dispatch("device-ops", "deviceOps", "getSettingsSchema", "query", input)
3319
+ getSettingsSchema: (input) => dispatch("device-ops", "deviceOps", "getSettingsSchema", "query", input),
3320
+ getRawState: (input) => dispatch("device-ops", "deviceOps", "getRawState", "query", input)
2881
3321
  };
2882
3322
  const deviceStatusInterface = {
2883
3323
  getStatus: (input) => dispatch("device-status", "deviceStatus", "getStatus", "query", input)
@@ -2885,23 +3325,81 @@ function createDeviceProxy(api, binding, opts) {
2885
3325
  const doorbellInterface = {
2886
3326
  getStatus: (input) => dispatch("doorbell", "doorbell", "getStatus", "query", input)
2887
3327
  };
3328
+ const enumSensorInterface = {
3329
+ getStatus: (input) => dispatch("enum-sensor", "enumSensor", "getStatus", "query", input)
3330
+ };
3331
+ const eventEmitterInterface = {
3332
+ getStatus: (input) => dispatch("event-emitter", "eventEmitter", "getStatus", "query", input)
3333
+ };
2888
3334
  const eventsInterface = {
2889
3335
  getEvents: (input) => dispatch("events", "events", "getEvents", "query", input),
2890
3336
  getEventThumbnail: (input) => dispatch("events", "events", "getEventThumbnail", "query", input),
2891
3337
  getEventClipUrl: (input) => dispatch("events", "events", "getEventClipUrl", "query", input)
2892
3338
  };
3339
+ const fanControlInterface = {
3340
+ setPercentage: (input) => dispatch("fan-control", "fanControl", "setPercentage", "mutation", input),
3341
+ setPreset: (input) => dispatch("fan-control", "fanControl", "setPreset", "mutation", input),
3342
+ setDirection: (input) => dispatch("fan-control", "fanControl", "setDirection", "mutation", input),
3343
+ setOscillating: (input) => dispatch("fan-control", "fanControl", "setOscillating", "mutation", input),
3344
+ getStatus: (input) => dispatch("fan-control", "fanControl", "getStatus", "query", input)
3345
+ };
2893
3346
  const featureProbeInterface = {
2894
3347
  getStatus: (input) => dispatch("feature-probe", "featureProbe", "getStatus", "query", input)
2895
3348
  };
3349
+ const floodInterface = {
3350
+ getStatus: (input) => dispatch("flood", "flood", "getStatus", "query", input)
3351
+ };
3352
+ const gasInterface = {
3353
+ getStatus: (input) => dispatch("gas", "gas", "getStatus", "query", input)
3354
+ };
3355
+ const humidifierInterface = {
3356
+ setOn: (input) => dispatch("humidifier", "humidifier", "setOn", "mutation", input),
3357
+ setTargetHumidity: (input) => dispatch("humidifier", "humidifier", "setTargetHumidity", "mutation", input),
3358
+ setMode: (input) => dispatch("humidifier", "humidifier", "setMode", "mutation", input),
3359
+ getStatus: (input) => dispatch("humidifier", "humidifier", "getStatus", "query", input)
3360
+ };
3361
+ const humiditySensorInterface = {
3362
+ getStatus: (input) => dispatch("humidity-sensor", "humiditySensor", "getStatus", "query", input)
3363
+ };
3364
+ const imageInterface = {
3365
+ getStatus: (input) => dispatch("image", "image", "getStatus", "query", input)
3366
+ };
2896
3367
  const intercomInterface = {
2897
3368
  startSession: (input) => dispatch("intercom", "intercom", "startSession", "mutation", input),
2898
3369
  handleAnswer: (input) => dispatch("intercom", "intercom", "handleAnswer", "mutation", input),
2899
3370
  stopSession: (input) => dispatch("intercom", "intercom", "stopSession", "mutation", input),
2900
3371
  startTalkSession: (input) => dispatch("intercom", "intercom", "startTalkSession", "mutation", input),
2901
- pushTalkPcm: (input) => dispatch("intercom", "intercom", "pushTalkPcm", "mutation", input),
3372
+ pushTalkAudio: (input) => dispatch("intercom", "intercom", "pushTalkAudio", "mutation", input),
2902
3373
  endTalkSession: (input) => dispatch("intercom", "intercom", "endTalkSession", "mutation", input),
2903
3374
  getStatus: (input) => dispatch("intercom", "intercom", "getStatus", "query", input)
2904
3375
  };
3376
+ const lawnMowerControlInterface = {
3377
+ startMowing: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "startMowing", "mutation", input),
3378
+ pause: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "pause", "mutation", input),
3379
+ dock: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "dock", "mutation", input),
3380
+ getStatus: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "getStatus", "query", input)
3381
+ };
3382
+ const lockControlInterface = {
3383
+ lock: (input) => dispatch("lock-control", "lockControl", "lock", "mutation", input),
3384
+ unlock: (input) => dispatch("lock-control", "lockControl", "unlock", "mutation", input),
3385
+ open: (input) => dispatch("lock-control", "lockControl", "open", "mutation", input),
3386
+ getStatus: (input) => dispatch("lock-control", "lockControl", "getStatus", "query", input)
3387
+ };
3388
+ const mediaPlayerInterface = {
3389
+ play: (input) => dispatch("media-player", "mediaPlayer", "play", "mutation", input),
3390
+ pause: (input) => dispatch("media-player", "mediaPlayer", "pause", "mutation", input),
3391
+ stop: (input) => dispatch("media-player", "mediaPlayer", "stop", "mutation", input),
3392
+ next: (input) => dispatch("media-player", "mediaPlayer", "next", "mutation", input),
3393
+ previous: (input) => dispatch("media-player", "mediaPlayer", "previous", "mutation", input),
3394
+ seek: (input) => dispatch("media-player", "mediaPlayer", "seek", "mutation", input),
3395
+ setVolume: (input) => dispatch("media-player", "mediaPlayer", "setVolume", "mutation", input),
3396
+ setMute: (input) => dispatch("media-player", "mediaPlayer", "setMute", "mutation", input),
3397
+ setShuffle: (input) => dispatch("media-player", "mediaPlayer", "setShuffle", "mutation", input),
3398
+ setRepeat: (input) => dispatch("media-player", "mediaPlayer", "setRepeat", "mutation", input),
3399
+ selectSource: (input) => dispatch("media-player", "mediaPlayer", "selectSource", "mutation", input),
3400
+ playMedia: (input) => dispatch("media-player", "mediaPlayer", "playMedia", "mutation", input),
3401
+ getStatus: (input) => dispatch("media-player", "mediaPlayer", "getStatus", "query", input)
3402
+ };
2905
3403
  const motionInterface = {
2906
3404
  isDetected: (input) => dispatch("motion", "motion", "isDetected", "query", input),
2907
3405
  getStatus: (input) => dispatch("motion", "motion", "getStatus", "query", input)
@@ -2924,8 +3422,17 @@ function createDeviceProxy(api, binding, opts) {
2924
3422
  getStatus: (input) => dispatch("motion-zones", "motionZones", "getStatus", "query", input)
2925
3423
  };
2926
3424
  const nativeObjectDetectionInterface = {
3425
+ setEnabled: (input) => dispatch("native-object-detection", "nativeObjectDetection", "setEnabled", "mutation", input),
2927
3426
  getStatus: (input) => dispatch("native-object-detection", "nativeObjectDetection", "getStatus", "query", input)
2928
3427
  };
3428
+ const notifierInterface = {
3429
+ send: (input) => dispatch("notifier", "notifier", "send", "mutation", input),
3430
+ cancel: (input) => dispatch("notifier", "notifier", "cancel", "mutation", input),
3431
+ getStatus: (input) => dispatch("notifier", "notifier", "getStatus", "query", input)
3432
+ };
3433
+ const numericSensorInterface = {
3434
+ getStatus: (input) => dispatch("numeric-sensor", "numericSensor", "getStatus", "query", input)
3435
+ };
2929
3436
  const osdInterface = {
2930
3437
  setOverlay: (input) => dispatch("osd", "osd", "setOverlay", "mutation", input),
2931
3438
  getStatus: (input) => dispatch("osd", "osd", "getStatus", "query", input)
@@ -2938,12 +3445,28 @@ function createDeviceProxy(api, binding, opts) {
2938
3445
  getMotionEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getMotionEvents", "query", input),
2939
3446
  getObjectEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getObjectEvents", "query", input),
2940
3447
  getAudioEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getAudioEvents", "query", input),
3448
+ getEventDensity: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventDensity", "query", input),
3449
+ pruneEventsBefore: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "pruneEventsBefore", "mutation", input),
2941
3450
  getEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventMedia", "query", input),
2942
3451
  getTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrackMedia", "query", input),
2943
3452
  getDeviceSettingsContribution: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getDeviceSettingsContribution", "query", input),
2944
3453
  getDeviceLiveContribution: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getDeviceLiveContribution", "query", input),
2945
3454
  applyDeviceSettingsPatch: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "applyDeviceSettingsPatch", "mutation", input)
2946
3455
  };
3456
+ const powerMeterInterface = {
3457
+ getStatus: (input) => dispatch("power-meter", "powerMeter", "getStatus", "query", input)
3458
+ };
3459
+ const presenceInterface = {
3460
+ getStatus: (input) => dispatch("presence", "presence", "getStatus", "query", input)
3461
+ };
3462
+ const pressureSensorInterface = {
3463
+ getStatus: (input) => dispatch("pressure-sensor", "pressureSensor", "getStatus", "query", input)
3464
+ };
3465
+ const privacyMaskInterface = {
3466
+ getOptions: (input) => dispatch("privacy-mask", "privacyMask", "getOptions", "query", input),
3467
+ setMask: (input) => dispatch("privacy-mask", "privacyMask", "setMask", "mutation", input),
3468
+ getStatus: (input) => dispatch("privacy-mask", "privacyMask", "getStatus", "query", input)
3469
+ };
2947
3470
  const ptzInterface = {
2948
3471
  move: (input) => dispatch("ptz", "ptz", "move", "mutation", input),
2949
3472
  continuousMove: (input) => dispatch("ptz", "ptz", "continuousMove", "mutation", input),
@@ -2967,10 +3490,13 @@ function createDeviceProxy(api, binding, opts) {
2967
3490
  const rebootInterface = {
2968
3491
  reboot: (input) => dispatch("reboot", "reboot", "reboot", "mutation", input)
2969
3492
  };
2970
- const recordingInterface = {
2971
- getSegments: (input) => dispatch("recording", "recording", "getSegments", "query", input),
2972
- getPlaybackUrl: (input) => dispatch("recording", "recording", "getPlaybackUrl", "query", input),
2973
- getThumbnailAt: (input) => dispatch("recording", "recording", "getThumbnailAt", "query", input)
3493
+ const scriptRunnerInterface = {
3494
+ run: (input) => dispatch("script-runner", "scriptRunner", "run", "mutation", input),
3495
+ stop: (input) => dispatch("script-runner", "scriptRunner", "stop", "mutation", input),
3496
+ getStatus: (input) => dispatch("script-runner", "scriptRunner", "getStatus", "query", input)
3497
+ };
3498
+ const smokeInterface = {
3499
+ getStatus: (input) => dispatch("smoke", "smoke", "getStatus", "query", input)
2974
3500
  };
2975
3501
  const snapshotInterface = {
2976
3502
  getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
@@ -2980,6 +3506,9 @@ function createDeviceProxy(api, binding, opts) {
2980
3506
  getDeviceLiveContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceLiveContribution", "query", input),
2981
3507
  applyDeviceSettingsPatch: (input) => dispatch("snapshot", "snapshot", "applyDeviceSettingsPatch", "mutation", input)
2982
3508
  };
3509
+ const streamCatalogInterface = {
3510
+ getCatalog: (input) => dispatch("stream-catalog", "streamCatalog", "getCatalog", "query", input)
3511
+ };
2983
3512
  const streamParamsInterface = {
2984
3513
  getOptions: (input) => dispatch("stream-params", "streamParams", "getOptions", "query", input),
2985
3514
  setProfile: (input) => dispatch("stream-params", "streamParams", "setProfile", "mutation", input),
@@ -2990,13 +3519,54 @@ function createDeviceProxy(api, binding, opts) {
2990
3519
  setState: (input) => dispatch("switch", "switch", "setState", "mutation", input),
2991
3520
  getStatus: (input) => dispatch("switch", "switch", "getStatus", "query", input)
2992
3521
  };
3522
+ const tamperInterface = {
3523
+ getStatus: (input) => dispatch("tamper", "tamper", "getStatus", "query", input)
3524
+ };
3525
+ const temperatureSensorInterface = {
3526
+ getStatus: (input) => dispatch("temperature-sensor", "temperatureSensor", "getStatus", "query", input)
3527
+ };
3528
+ const updateInterface = {
3529
+ installUpdate: (input) => dispatch("update", "update", "installUpdate", "mutation", input),
3530
+ getStatus: (input) => dispatch("update", "update", "getStatus", "query", input)
3531
+ };
3532
+ const vacuumControlInterface = {
3533
+ start: (input) => dispatch("vacuum-control", "vacuumControl", "start", "mutation", input),
3534
+ pause: (input) => dispatch("vacuum-control", "vacuumControl", "pause", "mutation", input),
3535
+ stop: (input) => dispatch("vacuum-control", "vacuumControl", "stop", "mutation", input),
3536
+ returnToBase: (input) => dispatch("vacuum-control", "vacuumControl", "returnToBase", "mutation", input),
3537
+ locate: (input) => dispatch("vacuum-control", "vacuumControl", "locate", "mutation", input),
3538
+ setFanSpeed: (input) => dispatch("vacuum-control", "vacuumControl", "setFanSpeed", "mutation", input),
3539
+ getStatus: (input) => dispatch("vacuum-control", "vacuumControl", "getStatus", "query", input)
3540
+ };
3541
+ const valveInterface = {
3542
+ open: (input) => dispatch("valve", "valve", "open", "mutation", input),
3543
+ close: (input) => dispatch("valve", "valve", "close", "mutation", input),
3544
+ stop: (input) => dispatch("valve", "valve", "stop", "mutation", input),
3545
+ setPosition: (input) => dispatch("valve", "valve", "setPosition", "mutation", input),
3546
+ getStatus: (input) => dispatch("valve", "valve", "getStatus", "query", input)
3547
+ };
3548
+ const vibrationInterface = {
3549
+ getStatus: (input) => dispatch("vibration", "vibration", "getStatus", "query", input)
3550
+ };
3551
+ const waterHeaterInterface = {
3552
+ setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
3553
+ setOperationMode: (input) => dispatch("water-heater", "waterHeater", "setOperationMode", "mutation", input),
3554
+ setAway: (input) => dispatch("water-heater", "waterHeater", "setAway", "mutation", input),
3555
+ getStatus: (input) => dispatch("water-heater", "waterHeater", "getStatus", "query", input)
3556
+ };
3557
+ const weatherInterface = {
3558
+ getStatus: (input) => dispatch("weather", "weather", "getStatus", "query", input)
3559
+ };
2993
3560
  const webrtcSessionInterface = {
2994
3561
  listStreams: (input) => dispatch("webrtc-session", "webrtcSession", "listStreams", "query", input),
2995
3562
  createSession: (input) => dispatch("webrtc-session", "webrtcSession", "createSession", "mutation", input),
2996
3563
  handleOffer: (input) => dispatch("webrtc-session", "webrtcSession", "handleOffer", "mutation", input),
2997
3564
  handleAnswer: (input) => dispatch("webrtc-session", "webrtcSession", "handleAnswer", "mutation", input),
3565
+ addIceCandidate: (input) => dispatch("webrtc-session", "webrtcSession", "addIceCandidate", "mutation", input),
3566
+ getIceCandidates: (input) => dispatch("webrtc-session", "webrtcSession", "getIceCandidates", "query", input),
2998
3567
  closeSession: (input) => dispatch("webrtc-session", "webrtcSession", "closeSession", "mutation", input),
2999
- hasAdaptiveBitrate: (input) => dispatch("webrtc-session", "webrtcSession", "hasAdaptiveBitrate", "query", input)
3568
+ hasAdaptiveBitrate: (input) => dispatch("webrtc-session", "webrtcSession", "hasAdaptiveBitrate", "query", input),
3569
+ getSessionState: (input) => dispatch("webrtc-session", "webrtcSession", "getSessionState", "query", input)
3000
3570
  };
3001
3571
  const zoneAnalyticsInterface = {
3002
3572
  getCurrentSnapshot: (input) => dispatch("zone-analytics", "zoneAnalytics", "getCurrentSnapshot", "query", input),
@@ -3018,6 +3588,14 @@ function createDeviceProxy(api, binding, opts) {
3018
3588
  getDeviceSettings: (input) => dispatchSystem("addonSettings", "getDeviceSettings", "query", input),
3019
3589
  updateDeviceSettings: (input) => dispatchSystem("addonSettings", "updateDeviceSettings", "mutation", input)
3020
3590
  };
3591
+ const cameraPipelineConfigInterface = {
3592
+ getDeviceSettingsContribution: (input) => dispatchSystem("cameraPipelineConfig", "getDeviceSettingsContribution", "query", input),
3593
+ getDeviceLiveContribution: (input) => dispatchSystem("cameraPipelineConfig", "getDeviceLiveContribution", "query", input),
3594
+ applyDeviceSettingsPatch: (input) => dispatchSystem("cameraPipelineConfig", "applyDeviceSettingsPatch", "mutation", input)
3595
+ };
3596
+ const deviceAdoptionInterface = {
3597
+ getStatus: (input) => dispatchSystem("deviceAdoption", "getStatus", "query", input)
3598
+ };
3021
3599
  const deviceExportInterface = {
3022
3600
  getDeviceSettingsContribution: (input) => dispatchSystem("deviceExport", "getDeviceSettingsContribution", "query", input),
3023
3601
  getDeviceLiveContribution: (input) => dispatchSystem("deviceExport", "getDeviceLiveContribution", "query", input),
@@ -3029,6 +3607,15 @@ function createDeviceProxy(api, binding, opts) {
3029
3607
  loadMeta: (input) => dispatchSystem("deviceManager", "loadMeta", "query", input),
3030
3608
  setName: (input) => dispatchSystem("deviceManager", "setName", "mutation", input),
3031
3609
  setLocation: (input) => dispatchSystem("deviceManager", "setLocation", "mutation", input),
3610
+ setType: (input) => dispatchSystem("deviceManager", "setType", "mutation", input),
3611
+ setIntegrationId: (input) => dispatchSystem("deviceManager", "setIntegrationId", "mutation", input),
3612
+ setLinkDeviceId: (input) => dispatchSystem("deviceManager", "setLinkDeviceId", "mutation", input),
3613
+ setPrimaryChildEntityId: (input) => dispatchSystem("deviceManager", "setPrimaryChildEntityId", "mutation", input),
3614
+ setChildLayout: (input) => dispatchSystem("deviceManager", "setChildLayout", "mutation", input),
3615
+ setDeviceLinks: (input) => dispatchSystem("deviceManager", "setDeviceLinks", "mutation", input),
3616
+ getWireableFields: (input) => dispatchSystem("deviceManager", "getWireableFields", "query", input),
3617
+ setRole: (input) => dispatchSystem("deviceManager", "setRole", "mutation", input),
3618
+ applyInitialMeta: (input) => dispatchSystem("deviceManager", "applyInitialMeta", "mutation", input),
3032
3619
  setMetadata: (input) => dispatchSystem("deviceManager", "setMetadata", "mutation", input),
3033
3620
  setDisabled: (input) => dispatchSystem("deviceManager", "setDisabled", "mutation", input),
3034
3621
  getDevice: (input) => dispatchSystem("deviceManager", "getDevice", "query", input),
@@ -3048,6 +3635,7 @@ function createDeviceProxy(api, binding, opts) {
3048
3635
  getDeviceSettingsAggregate: (input) => dispatchSystem("deviceManager", "getDeviceSettingsAggregate", "query", input),
3049
3636
  getDeviceLiveInfoAggregate: (input) => dispatchSystem("deviceManager", "getDeviceLiveInfoAggregate", "query", input),
3050
3637
  getDeviceAggregate: (input) => dispatchSystem("deviceManager", "getDeviceAggregate", "query", input),
3638
+ runDeviceAction: (input) => dispatchSystem("deviceManager", "runDeviceAction", "mutation", input),
3051
3639
  updateDeviceField: (input) => dispatchSystem("deviceManager", "updateDeviceField", "mutation", input),
3052
3640
  updateDeviceFieldsBatch: (input) => dispatchSystem("deviceManager", "updateDeviceFieldsBatch", "mutation", input),
3053
3641
  testField: (input) => dispatchSystem("deviceManager", "testField", "mutation", input),
@@ -3092,8 +3680,17 @@ function createDeviceProxy(api, binding, opts) {
3092
3680
  detachCamera: (input) => dispatchSystem("pipelineRunner", "detachCamera", "mutation", input),
3093
3681
  getCameraMetrics: (input) => dispatchSystem("pipelineRunner", "getCameraMetrics", "query", input)
3094
3682
  };
3095
- const recordingEngineInterface = {
3096
- getPolicyStatus: (input) => dispatchSystem("recordingEngine", "getPolicyStatus", "query", input)
3683
+ const recordingInterface = {
3684
+ getAvailability: (input) => dispatchSystem("recording", "getAvailability", "query", input),
3685
+ getPlaybackManifest: (input) => dispatchSystem("recording", "getPlaybackManifest", "query", input),
3686
+ getDeviceConfig: (input) => dispatchSystem("recording", "getDeviceConfig", "query", input),
3687
+ setDeviceConfig: (input) => dispatchSystem("recording", "setDeviceConfig", "mutation", input),
3688
+ rescanStorage: (input) => dispatchSystem("recording", "rescanStorage", "mutation", input),
3689
+ pruneFootage: (input) => dispatchSystem("recording", "pruneFootage", "mutation", input),
3690
+ getStatus: (input) => dispatchSystem("recording", "getStatus", "query", input),
3691
+ getDeviceSettingsContribution: (input) => dispatchSystem("recording", "getDeviceSettingsContribution", "query", input),
3692
+ getDeviceLiveContribution: (input) => dispatchSystem("recording", "getDeviceLiveContribution", "query", input),
3693
+ applyDeviceSettingsPatch: (input) => dispatchSystem("recording", "applyDeviceSettingsPatch", "mutation", input)
3097
3694
  };
3098
3695
  const snapshotProviderInterface = {
3099
3696
  supportsDevice: (input) => dispatchSystem("snapshotProvider", "supportsDevice", "query", input),
@@ -3113,58 +3710,142 @@ function createDeviceProxy(api, binding, opts) {
3113
3710
  deviceId: binding.deviceId,
3114
3711
  binding,
3115
3712
  state: {
3713
+ airQualitySensor: createSliceHandle(stateSource, binding.deviceId, "air-quality-sensor"),
3714
+ alarmPanel: createSliceHandle(stateSource, binding.deviceId, "alarm-panel"),
3715
+ ambientLightSensor: createSliceHandle(stateSource, binding.deviceId, "ambient-light-sensor"),
3116
3716
  audioMetrics: createSliceHandle(stateSource, binding.deviceId, "audio-metrics"),
3717
+ automationControl: createSliceHandle(stateSource, binding.deviceId, "automation-control"),
3117
3718
  battery: createSliceHandle(stateSource, binding.deviceId, "battery"),
3719
+ binary: createSliceHandle(stateSource, binding.deviceId, "binary"),
3118
3720
  brightness: createSliceHandle(stateSource, binding.deviceId, "brightness"),
3119
3721
  cameraStreams: createSliceHandle(stateSource, binding.deviceId, "camera-streams"),
3722
+ carbonMonoxide: createSliceHandle(stateSource, binding.deviceId, "carbon-monoxide"),
3723
+ climateControl: createSliceHandle(stateSource, binding.deviceId, "climate-control"),
3724
+ color: createSliceHandle(stateSource, binding.deviceId, "color"),
3725
+ connectivity: createSliceHandle(stateSource, binding.deviceId, "connectivity"),
3726
+ consumables: createSliceHandle(stateSource, binding.deviceId, "consumables"),
3727
+ contact: createSliceHandle(stateSource, binding.deviceId, "contact"),
3728
+ control: createSliceHandle(stateSource, binding.deviceId, "control"),
3729
+ cover: createSliceHandle(stateSource, binding.deviceId, "cover"),
3120
3730
  deviceDiscovery: createSliceHandle(stateSource, binding.deviceId, "device-discovery"),
3121
3731
  deviceStatus: createSliceHandle(stateSource, binding.deviceId, "device-status"),
3122
3732
  doorbell: createSliceHandle(stateSource, binding.deviceId, "doorbell"),
3733
+ enumSensor: createSliceHandle(stateSource, binding.deviceId, "enum-sensor"),
3734
+ eventEmitter: createSliceHandle(stateSource, binding.deviceId, "event-emitter"),
3735
+ fanControl: createSliceHandle(stateSource, binding.deviceId, "fan-control"),
3123
3736
  featureProbe: createSliceHandle(stateSource, binding.deviceId, "feature-probe"),
3737
+ flood: createSliceHandle(stateSource, binding.deviceId, "flood"),
3738
+ gas: createSliceHandle(stateSource, binding.deviceId, "gas"),
3739
+ humidifier: createSliceHandle(stateSource, binding.deviceId, "humidifier"),
3740
+ humiditySensor: createSliceHandle(stateSource, binding.deviceId, "humidity-sensor"),
3741
+ image: createSliceHandle(stateSource, binding.deviceId, "image"),
3742
+ lawnMowerControl: createSliceHandle(stateSource, binding.deviceId, "lawn-mower-control"),
3743
+ lockControl: createSliceHandle(stateSource, binding.deviceId, "lock-control"),
3744
+ mediaPlayer: createSliceHandle(stateSource, binding.deviceId, "media-player"),
3124
3745
  motion: createSliceHandle(stateSource, binding.deviceId, "motion"),
3125
3746
  motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
3126
3747
  motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
3748
+ nativeObjectDetection: createSliceHandle(stateSource, binding.deviceId, "native-object-detection"),
3749
+ notifier: createSliceHandle(stateSource, binding.deviceId, "notifier"),
3750
+ numericSensor: createSliceHandle(stateSource, binding.deviceId, "numeric-sensor"),
3751
+ powerMeter: createSliceHandle(stateSource, binding.deviceId, "power-meter"),
3752
+ presence: createSliceHandle(stateSource, binding.deviceId, "presence"),
3753
+ pressureSensor: createSliceHandle(stateSource, binding.deviceId, "pressure-sensor"),
3754
+ privacyMask: createSliceHandle(stateSource, binding.deviceId, "privacy-mask"),
3127
3755
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
3756
+ scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
3757
+ smoke: createSliceHandle(stateSource, binding.deviceId, "smoke"),
3128
3758
  streamParams: createSliceHandle(stateSource, binding.deviceId, "stream-params"),
3129
3759
  switch: createSliceHandle(stateSource, binding.deviceId, "switch"),
3760
+ tamper: createSliceHandle(stateSource, binding.deviceId, "tamper"),
3761
+ temperatureSensor: createSliceHandle(stateSource, binding.deviceId, "temperature-sensor"),
3762
+ update: createSliceHandle(stateSource, binding.deviceId, "update"),
3763
+ vacuumControl: createSliceHandle(stateSource, binding.deviceId, "vacuum-control"),
3764
+ valve: createSliceHandle(stateSource, binding.deviceId, "valve"),
3765
+ vibration: createSliceHandle(stateSource, binding.deviceId, "vibration"),
3766
+ waterHeater: createSliceHandle(stateSource, binding.deviceId, "water-heater"),
3767
+ weather: createSliceHandle(stateSource, binding.deviceId, "weather"),
3130
3768
  zoneAnalytics: createSliceHandle(stateSource, binding.deviceId, "zone-analytics"),
3131
3769
  zoneRules: createSliceHandle(stateSource, binding.deviceId, "zone-rules"),
3132
3770
  zones: createSliceHandle(stateSource, binding.deviceId, "zones")
3133
3771
  },
3134
3772
  accessories: accessoriesInterface,
3773
+ airQualitySensor: airQualitySensorInterface,
3774
+ alarmPanel: alarmPanelInterface,
3775
+ ambientLightSensor: ambientLightSensorInterface,
3135
3776
  audioAnalysis: audioAnalysisInterface,
3136
3777
  audioMetrics: audioMetricsInterface,
3778
+ automationControl: automationControlInterface,
3137
3779
  battery: batteryInterface,
3780
+ binary: binaryInterface,
3138
3781
  brightness: brightnessInterface,
3782
+ button: buttonInterface,
3139
3783
  cameraCredentials: cameraCredentialsInterface,
3140
3784
  cameraStreams: cameraStreamsInterface,
3785
+ carbonMonoxide: carbonMonoxideInterface,
3786
+ climateControl: climateControlInterface,
3787
+ color: colorInterface,
3788
+ connectivity: connectivityInterface,
3789
+ consumables: consumablesInterface,
3790
+ contact: contactInterface,
3791
+ control: controlInterface,
3792
+ cover: coverInterface,
3141
3793
  detectionPipeline: detectionPipelineInterface,
3142
3794
  deviceDiscovery: deviceDiscoveryInterface,
3143
3795
  deviceOps: deviceOpsInterface,
3144
3796
  deviceStatus: deviceStatusInterface,
3145
3797
  doorbell: doorbellInterface,
3798
+ enumSensor: enumSensorInterface,
3799
+ eventEmitter: eventEmitterInterface,
3146
3800
  events: eventsInterface,
3801
+ fanControl: fanControlInterface,
3147
3802
  featureProbe: featureProbeInterface,
3803
+ flood: floodInterface,
3804
+ gas: gasInterface,
3805
+ humidifier: humidifierInterface,
3806
+ humiditySensor: humiditySensorInterface,
3807
+ image: imageInterface,
3148
3808
  intercom: intercomInterface,
3809
+ lawnMowerControl: lawnMowerControlInterface,
3810
+ lockControl: lockControlInterface,
3811
+ mediaPlayer: mediaPlayerInterface,
3149
3812
  motion: motionInterface,
3150
3813
  motionDetection: motionDetectionInterface,
3151
3814
  motionTrigger: motionTriggerInterface,
3152
3815
  motionZones: motionZonesInterface,
3153
3816
  nativeObjectDetection: nativeObjectDetectionInterface,
3817
+ notifier: notifierInterface,
3818
+ numericSensor: numericSensorInterface,
3154
3819
  osd: osdInterface,
3155
3820
  pipelineAnalytics: pipelineAnalyticsInterface,
3821
+ powerMeter: powerMeterInterface,
3822
+ presence: presenceInterface,
3823
+ pressureSensor: pressureSensorInterface,
3824
+ privacyMask: privacyMaskInterface,
3156
3825
  ptz: ptzInterface,
3157
3826
  ptzAutotrack: ptzAutotrackInterface,
3158
3827
  reboot: rebootInterface,
3159
- recording: recordingInterface,
3828
+ scriptRunner: scriptRunnerInterface,
3829
+ smoke: smokeInterface,
3160
3830
  snapshot: snapshotInterface,
3831
+ streamCatalog: streamCatalogInterface,
3161
3832
  streamParams: streamParamsInterface,
3162
3833
  switch: switchInterface,
3834
+ tamper: tamperInterface,
3835
+ temperatureSensor: temperatureSensorInterface,
3836
+ update: updateInterface,
3837
+ vacuumControl: vacuumControlInterface,
3838
+ valve: valveInterface,
3839
+ vibration: vibrationInterface,
3840
+ waterHeater: waterHeaterInterface,
3841
+ weather: weatherInterface,
3163
3842
  webrtcSession: webrtcSessionInterface,
3164
3843
  zoneAnalytics: zoneAnalyticsInterface,
3165
3844
  zoneRules: zoneRulesInterface,
3166
3845
  zones: zonesInterface,
3167
3846
  addonSettings: addonSettingsInterface,
3847
+ cameraPipelineConfig: cameraPipelineConfigInterface,
3848
+ deviceAdoption: deviceAdoptionInterface,
3168
3849
  deviceExport: deviceExportInterface,
3169
3850
  deviceManager: deviceManagerInterface,
3170
3851
  deviceState: deviceStateInterface,
@@ -3172,7 +3853,7 @@ function createDeviceProxy(api, binding, opts) {
3172
3853
  pipelineExecutor: pipelineExecutorInterface,
3173
3854
  pipelineOrchestrator: pipelineOrchestratorInterface,
3174
3855
  pipelineRunner: pipelineRunnerInterface,
3175
- recordingEngine: recordingEngineInterface,
3856
+ recording: recordingInterface,
3176
3857
  snapshotProvider: snapshotProviderInterface,
3177
3858
  streamBroker: streamBrokerInterface
3178
3859
  };
@@ -3260,6 +3941,10 @@ function createSystemProxy(api) {
3260
3941
  listCapabilityProviders: (input) => dispatch("addons", "listCapabilityProviders", "query", input),
3261
3942
  setCapabilityProviderEnabled: (input) => dispatch("addons", "setCapabilityProviderEnabled", "mutation", input),
3262
3943
  updateFrameworkPackage: (input) => dispatch("addons", "updateFrameworkPackage", "mutation", input),
3944
+ startBulkUpdate: (input) => dispatch("addons", "startBulkUpdate", "mutation", input),
3945
+ getBulkUpdateState: (input) => dispatch("addons", "getBulkUpdateState", "query", input),
3946
+ cancelBulkUpdate: (input) => dispatch("addons", "cancelBulkUpdate", "mutation", input),
3947
+ listActiveBulkUpdates: (input) => dispatch("addons", "listActiveBulkUpdates", "query", input),
3263
3948
  getVersions: (input) => dispatch("addons", "getVersions", "query", input),
3264
3949
  restartAddon: (input) => dispatch("addons", "restartAddon", "mutation", input),
3265
3950
  retryLoad: (input) => dispatch("addons", "retryLoad", "mutation", input),
@@ -3319,6 +4004,24 @@ function createSystemProxy(api) {
3319
4004
  upsertDestinationPolicy: (input) => dispatch("backup", "upsertDestinationPolicy", "mutation", input),
3320
4005
  previewSchedule: (input) => dispatch("backup", "previewSchedule", "query", input)
3321
4006
  };
4007
+ const brokerInterface = {
4008
+ list: (input) => dispatch("broker", "list", "query", input),
4009
+ get: (input) => dispatch("broker", "get", "query", input),
4010
+ listProviders: (input) => dispatch("broker", "listProviders", "query", input),
4011
+ add: (input) => dispatch("broker", "add", "mutation", input),
4012
+ remove: (input) => dispatch("broker", "remove", "mutation", input),
4013
+ testConnection: (input) => dispatch("broker", "testConnection", "mutation", input),
4014
+ getSettings: (input) => dispatch("broker", "getSettings", "query", input),
4015
+ setSettings: (input) => dispatch("broker", "setSettings", "mutation", input),
4016
+ getBrokerConfig: (input) => dispatch("broker", "getBrokerConfig", "query", input),
4017
+ getSettingsSchema: (input) => dispatch("broker", "getSettingsSchema", "query", input),
4018
+ testSettings: (input) => dispatch("broker", "testSettings", "mutation", input),
4019
+ publish: (input) => dispatch("broker", "publish", "mutation", input),
4020
+ subscribe: (input) => dispatch("broker", "subscribe", "mutation", input),
4021
+ unsubscribe: (input) => dispatch("broker", "unsubscribe", "mutation", input),
4022
+ getState: (input) => dispatch("broker", "getState", "query", input),
4023
+ getStatus: (input) => dispatch("broker", "getStatus", "query", input)
4024
+ };
3322
4025
  const decoderInterface = {
3323
4026
  supportsCodec: (input) => dispatch("decoder", "supportsCodec", "query", input),
3324
4027
  getInfo: (input) => dispatch("decoder", "getInfo", "query", input),
@@ -3335,6 +4038,15 @@ function createSystemProxy(api) {
3335
4038
  listActiveSessions: (input) => dispatch("decoder", "listActiveSessions", "query", input),
3336
4039
  reprobeHwaccel: (input) => dispatch("decoder", "reprobeHwaccel", "mutation", input)
3337
4040
  };
4041
+ const deviceAdoptionInterface = {
4042
+ listCandidateFilters: (input) => dispatch("deviceAdoption", "listCandidateFilters", "query", input),
4043
+ listCandidates: (input) => dispatch("deviceAdoption", "listCandidates", "query", input),
4044
+ getCandidate: (input) => dispatch("deviceAdoption", "getCandidate", "query", input),
4045
+ refresh: (input) => dispatch("deviceAdoption", "refresh", "mutation", input),
4046
+ adopt: (input) => dispatch("deviceAdoption", "adopt", "mutation", input),
4047
+ release: (input) => dispatch("deviceAdoption", "release", "mutation", input),
4048
+ resync: (input) => dispatch("deviceAdoption", "resync", "mutation", input)
4049
+ };
3338
4050
  const deviceExportInterface = {
3339
4051
  getStatus: (input) => dispatch("deviceExport", "getStatus", "query", input),
3340
4052
  listSupportedDeviceKinds: (input) => dispatch("deviceExport", "listSupportedDeviceKinds", "query", input),
@@ -3353,13 +4065,18 @@ function createSystemProxy(api) {
3353
4065
  listPersistedByAddon: (input) => dispatch("deviceManager", "listPersistedByAddon", "query", input),
3354
4066
  listAll: (input) => dispatch("deviceManager", "listAll", "query", input),
3355
4067
  getChildren: (input) => dispatch("deviceManager", "getChildren", "query", input),
4068
+ removeByIntegration: (input) => dispatch("deviceManager", "removeByIntegration", "mutation", input),
3356
4069
  listWrappersForCap: (input) => dispatch("deviceManager", "listWrappersForCap", "query", input),
3357
4070
  listBindableCapsForDeviceType: (input) => dispatch("deviceManager", "listBindableCapsForDeviceType", "query", input),
3358
4071
  discoverDevices: (input) => dispatch("deviceManager", "discoverDevices", "mutation", input),
3359
4072
  adoptDevice: (input) => dispatch("deviceManager", "adoptDevice", "mutation", input),
3360
4073
  getCreationSchema: (input) => dispatch("deviceManager", "getCreationSchema", "query", input),
3361
4074
  createDevice: (input) => dispatch("deviceManager", "createDevice", "mutation", input),
3362
- testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input)
4075
+ testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input),
4076
+ adoptionListCandidates: (input) => dispatch("deviceManager", "adoptionListCandidates", "query", input),
4077
+ adoptionRefresh: (input) => dispatch("deviceManager", "adoptionRefresh", "mutation", input),
4078
+ adoptionAdopt: (input) => dispatch("deviceManager", "adoptionAdopt", "mutation", input),
4079
+ adoptionRelease: (input) => dispatch("deviceManager", "adoptionRelease", "mutation", input)
3363
4080
  };
3364
4081
  const deviceProviderInterface = {
3365
4082
  start: (input) => dispatch("deviceProvider", "start", "mutation", input),
@@ -3519,32 +4236,8 @@ function createSystemProxy(api) {
3519
4236
  getAllCameraMetrics: (input) => dispatch("pipelineRunner", "getAllCameraMetrics", "query", input),
3520
4237
  getLocalCameras: (input) => dispatch("pipelineRunner", "getLocalCameras", "query", input)
3521
4238
  };
3522
- const platformProbeInterface = {
3523
- getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
3524
- getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
3525
- resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
3526
- resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
3527
- getHardwareEncoders: (input) => dispatch("platformProbe", "getHardwareEncoders", "query", input),
3528
- refreshHardwareEncoders: (input) => dispatch("platformProbe", "refreshHardwareEncoders", "mutation", input)
3529
- };
3530
- const recordingEngineInterface = {
3531
- getStatus: (input) => dispatch("recordingEngine", "getStatus", "query", input),
3532
- enable: (input) => dispatch("recordingEngine", "enable", "mutation", input),
3533
- disable: (input) => dispatch("recordingEngine", "disable", "mutation", input),
3534
- getConfig: (input) => dispatch("recordingEngine", "getConfig", "query", input),
3535
- updateConfig: (input) => dispatch("recordingEngine", "updateConfig", "mutation", input),
3536
- getPlaylist: (input) => dispatch("recordingEngine", "getPlaylist", "query", input),
3537
- getThumbnail: (input) => dispatch("recordingEngine", "getThumbnail", "query", input),
3538
- getSegments: (input) => dispatch("recordingEngine", "getSegments", "query", input),
3539
- getAvailability: (input) => dispatch("recordingEngine", "getAvailability", "query", input),
3540
- estimateStorage: (input) => dispatch("recordingEngine", "estimateStorage", "query", input),
3541
- estimateGlobalStorage: (input) => dispatch("recordingEngine", "estimateGlobalStorage", "query", input),
3542
- getStorageUsage: (input) => dispatch("recordingEngine", "getStorageUsage", "query", input),
3543
- setPolicy: (input) => dispatch("recordingEngine", "setPolicy", "mutation", input),
3544
- getPolicy: (input) => dispatch("recordingEngine", "getPolicy", "query", input),
3545
- getRetentionConfig: (input) => dispatch("recordingEngine", "getRetentionConfig", "query", input),
3546
- updateRetentionConfig: (input) => dispatch("recordingEngine", "updateRetentionConfig", "mutation", input),
3547
- getMotionStats: (input) => dispatch("recordingEngine", "getMotionStats", "query", input)
4239
+ const recordingInterface = {
4240
+ getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input)
3548
4241
  };
3549
4242
  const settingsStoreInterface = {
3550
4243
  get: (input) => dispatch("settingsStore", "get", "query", input),
@@ -3554,6 +4247,7 @@ function createSystemProxy(api) {
3554
4247
  update: (input) => dispatch("settingsStore", "update", "mutation", input),
3555
4248
  delete: (input) => dispatch("settingsStore", "delete", "mutation", input),
3556
4249
  count: (input) => dispatch("settingsStore", "count", "query", input),
4250
+ histogram: (input) => dispatch("settingsStore", "histogram", "query", input),
3557
4251
  isEmpty: (input) => dispatch("settingsStore", "isEmpty", "query", input),
3558
4252
  declareCollection: (input) => dispatch("settingsStore", "declareCollection", "mutation", input)
3559
4253
  };
@@ -3574,6 +4268,7 @@ function createSystemProxy(api) {
3574
4268
  endDownload: (input) => dispatch("storage", "endDownload", "mutation", input),
3575
4269
  listLocations: (input) => dispatch("storage", "listLocations", "query", input),
3576
4270
  getDefaultLocation: (input) => dispatch("storage", "getDefaultLocation", "query", input),
4271
+ listLocationDeclarations: (input) => dispatch("storage", "listLocationDeclarations", "query", input),
3577
4272
  upsertLocation: (input) => dispatch("storage", "upsertLocation", "mutation", input),
3578
4273
  deleteLocation: (input) => dispatch("storage", "deleteLocation", "mutation", input),
3579
4274
  testLocation: (input) => dispatch("storage", "testLocation", "query", input),
@@ -3656,7 +4351,9 @@ function createSystemProxy(api) {
3656
4351
  audioAnalyzer: audioAnalyzerInterface,
3657
4352
  audioCodec: audioCodecInterface,
3658
4353
  backup: backupInterface,
4354
+ broker: brokerInterface,
3659
4355
  decoder: decoderInterface,
4356
+ deviceAdoption: deviceAdoptionInterface,
3660
4357
  deviceExport: deviceExportInterface,
3661
4358
  deviceManager: deviceManagerInterface,
3662
4359
  deviceProvider: deviceProviderInterface,
@@ -3673,8 +4370,7 @@ function createSystemProxy(api) {
3673
4370
  pipelineExecutor: pipelineExecutorInterface,
3674
4371
  pipelineOrchestrator: pipelineOrchestratorInterface,
3675
4372
  pipelineRunner: pipelineRunnerInterface,
3676
- platformProbe: platformProbeInterface,
3677
- recordingEngine: recordingEngineInterface,
4373
+ recording: recordingInterface,
3678
4374
  settingsStore: settingsStoreInterface,
3679
4375
  storage: storageInterface,
3680
4376
  streamBroker: streamBrokerInterface,
@@ -4436,6 +5132,15 @@ function customAction(input, output, options) {
4436
5132
  scope: options?.scope ?? { kind: "system" }
4437
5133
  };
4438
5134
  }
5135
+ function deviceCustomAction(input, output, options) {
5136
+ return {
5137
+ input,
5138
+ output,
5139
+ kind: options?.kind ?? "query",
5140
+ auth: options?.auth ?? "protected",
5141
+ scope: { kind: "device", ...options?.deviceTypes ? { deviceTypes: options.deviceTypes } : {} }
5142
+ };
5143
+ }
4439
5144
  const STREAM_PROFILE_META = [
4440
5145
  { profile: "main", prefix: "streamMain", label: "Main stream" },
4441
5146
  { profile: "sub", prefix: "streamSub", label: "Sub stream" },
@@ -4646,19 +5351,36 @@ const CAPABILITY_NAMES = {
4646
5351
  addons: "addons",
4647
5352
  adminUi: "admin-ui",
4648
5353
  advancedNotifier: "advanced-notifier",
5354
+ airQualitySensor: "air-quality-sensor",
5355
+ alarmPanel: "alarm-panel",
4649
5356
  alerts: "alerts",
5357
+ ambientLightSensor: "ambient-light-sensor",
4650
5358
  audioAnalysis: "audio-analysis",
4651
5359
  audioAnalyzer: "audio-analyzer",
4652
5360
  audioCodec: "audio-codec",
4653
5361
  audioMetrics: "audio-metrics",
4654
5362
  authProvider: "auth-provider",
5363
+ automationControl: "automation-control",
4655
5364
  backup: "backup",
4656
5365
  battery: "battery",
5366
+ binary: "binary",
4657
5367
  brightness: "brightness",
5368
+ broker: "broker",
5369
+ button: "button",
4658
5370
  cameraCredentials: "camera-credentials",
5371
+ cameraPipelineConfig: "camera-pipeline-config",
4659
5372
  cameraStreams: "camera-streams",
5373
+ carbonMonoxide: "carbon-monoxide",
5374
+ climateControl: "climate-control",
5375
+ color: "color",
5376
+ connectivity: "connectivity",
5377
+ consumables: "consumables",
5378
+ contact: "contact",
5379
+ control: "control",
5380
+ cover: "cover",
4660
5381
  decoder: "decoder",
4661
5382
  detectionPipeline: "detection-pipeline",
5383
+ deviceAdoption: "device-adoption",
4662
5384
  deviceDiscovery: "device-discovery",
4663
5385
  deviceExport: "device-export",
4664
5386
  deviceManager: "device-manager",
@@ -4668,12 +5390,23 @@ const CAPABILITY_NAMES = {
4668
5390
  deviceStatus: "device-status",
4669
5391
  doorbell: "doorbell",
4670
5392
  embeddingEncoder: "embedding-encoder",
5393
+ enumSensor: "enum-sensor",
5394
+ eventEmitter: "event-emitter",
4671
5395
  events: "events",
5396
+ fanControl: "fan-control",
4672
5397
  featureProbe: "feature-probe",
5398
+ flood: "flood",
5399
+ gas: "gas",
5400
+ humidifier: "humidifier",
5401
+ humiditySensor: "humidity-sensor",
5402
+ image: "image",
4673
5403
  integrations: "integrations",
4674
5404
  intercom: "intercom",
5405
+ lawnMowerControl: "lawn-mower-control",
4675
5406
  localNetwork: "local-network",
5407
+ lockControl: "lock-control",
4676
5408
  logDestination: "log-destination",
5409
+ mediaPlayer: "media-player",
4677
5410
  meshNetwork: "mesh-network",
4678
5411
  metricsProvider: "metrics-provider",
4679
5412
  motion: "motion",
@@ -4686,6 +5419,8 @@ const CAPABILITY_NAMES = {
4686
5419
  networkQuality: "network-quality",
4687
5420
  nodes: "nodes",
4688
5421
  notificationOutput: "notification-output",
5422
+ notifier: "notifier",
5423
+ numericSensor: "numeric-sensor",
4689
5424
  oauthIntegration: "oauth-integration",
4690
5425
  osd: "osd",
4691
5426
  pipelineAnalytics: "pipeline-analytics",
@@ -4693,28 +5428,43 @@ const CAPABILITY_NAMES = {
4693
5428
  pipelineOrchestrator: "pipeline-orchestrator",
4694
5429
  pipelineRunner: "pipeline-runner",
4695
5430
  platformProbe: "platform-probe",
5431
+ powerMeter: "power-meter",
5432
+ presence: "presence",
5433
+ pressureSensor: "pressure-sensor",
5434
+ privacyMask: "privacy-mask",
4696
5435
  ptz: "ptz",
4697
5436
  ptzAutotrack: "ptz-autotrack",
4698
5437
  reboot: "reboot",
4699
5438
  recording: "recording",
4700
- recordingEngine: "recording-engine",
4701
5439
  restreamer: "restreamer",
5440
+ scriptRunner: "script-runner",
4702
5441
  settingsStore: "settings-store",
5442
+ smoke: "smoke",
4703
5443
  smtpProvider: "smtp-provider",
4704
5444
  snapshot: "snapshot",
4705
5445
  snapshotProvider: "snapshot-provider",
4706
5446
  ssoBridge: "sso-bridge",
4707
5447
  storage: "storage",
5448
+ storageEvictable: "storage-evictable",
4708
5449
  storageProvider: "storage-provider",
4709
5450
  streamBroker: "stream-broker",
5451
+ streamCatalog: "stream-catalog",
4710
5452
  streamParams: "stream-params",
4711
5453
  streamingEngine: "streaming-engine",
4712
5454
  switch: "switch",
4713
5455
  system: "system",
5456
+ tamper: "tamper",
5457
+ temperatureSensor: "temperature-sensor",
4714
5458
  toast: "toast",
4715
5459
  turnProvider: "turn-provider",
5460
+ update: "update",
4716
5461
  userManagement: "user-management",
4717
5462
  userPasskeys: "user-passkeys",
5463
+ vacuumControl: "vacuum-control",
5464
+ valve: "valve",
5465
+ vibration: "vibration",
5466
+ waterHeater: "water-heater",
5467
+ weather: "weather",
4718
5468
  webrtc: "webrtc",
4719
5469
  webrtcSession: "webrtc-session",
4720
5470
  zoneAnalytics: "zone-analytics",
@@ -4732,19 +5482,36 @@ const CAPABILITY_ROUTER_KEYS = [
4732
5482
  { key: "addons", name: "addons" },
4733
5483
  { key: "adminUi", name: "admin-ui" },
4734
5484
  { key: "advancedNotifier", name: "advanced-notifier" },
5485
+ { key: "airQualitySensor", name: "air-quality-sensor" },
5486
+ { key: "alarmPanel", name: "alarm-panel" },
4735
5487
  { key: "alerts", name: "alerts" },
5488
+ { key: "ambientLightSensor", name: "ambient-light-sensor" },
4736
5489
  { key: "audioAnalysis", name: "audio-analysis" },
4737
5490
  { key: "audioAnalyzer", name: "audio-analyzer" },
4738
5491
  { key: "audioCodec", name: "audio-codec" },
4739
5492
  { key: "audioMetrics", name: "audio-metrics" },
4740
5493
  { key: "authProvider", name: "auth-provider" },
5494
+ { key: "automationControl", name: "automation-control" },
4741
5495
  { key: "backup", name: "backup" },
4742
5496
  { key: "battery", name: "battery" },
5497
+ { key: "binary", name: "binary" },
4743
5498
  { key: "brightness", name: "brightness" },
5499
+ { key: "broker", name: "broker" },
5500
+ { key: "button", name: "button" },
4744
5501
  { key: "cameraCredentials", name: "camera-credentials" },
5502
+ { key: "cameraPipelineConfig", name: "camera-pipeline-config" },
4745
5503
  { key: "cameraStreams", name: "camera-streams" },
5504
+ { key: "carbonMonoxide", name: "carbon-monoxide" },
5505
+ { key: "climateControl", name: "climate-control" },
5506
+ { key: "color", name: "color" },
5507
+ { key: "connectivity", name: "connectivity" },
5508
+ { key: "consumables", name: "consumables" },
5509
+ { key: "contact", name: "contact" },
5510
+ { key: "control", name: "control" },
5511
+ { key: "cover", name: "cover" },
4746
5512
  { key: "decoder", name: "decoder" },
4747
5513
  { key: "detectionPipeline", name: "detection-pipeline" },
5514
+ { key: "deviceAdoption", name: "device-adoption" },
4748
5515
  { key: "deviceDiscovery", name: "device-discovery" },
4749
5516
  { key: "deviceExport", name: "device-export" },
4750
5517
  { key: "deviceManager", name: "device-manager" },
@@ -4754,12 +5521,23 @@ const CAPABILITY_ROUTER_KEYS = [
4754
5521
  { key: "deviceStatus", name: "device-status" },
4755
5522
  { key: "doorbell", name: "doorbell" },
4756
5523
  { key: "embeddingEncoder", name: "embedding-encoder" },
5524
+ { key: "enumSensor", name: "enum-sensor" },
5525
+ { key: "eventEmitter", name: "event-emitter" },
4757
5526
  { key: "events", name: "events" },
5527
+ { key: "fanControl", name: "fan-control" },
4758
5528
  { key: "featureProbe", name: "feature-probe" },
5529
+ { key: "flood", name: "flood" },
5530
+ { key: "gas", name: "gas" },
5531
+ { key: "humidifier", name: "humidifier" },
5532
+ { key: "humiditySensor", name: "humidity-sensor" },
5533
+ { key: "image", name: "image" },
4759
5534
  { key: "integrations", name: "integrations" },
4760
5535
  { key: "intercom", name: "intercom" },
5536
+ { key: "lawnMowerControl", name: "lawn-mower-control" },
4761
5537
  { key: "localNetwork", name: "local-network" },
5538
+ { key: "lockControl", name: "lock-control" },
4762
5539
  { key: "logDestination", name: "log-destination" },
5540
+ { key: "mediaPlayer", name: "media-player" },
4763
5541
  { key: "meshNetwork", name: "mesh-network" },
4764
5542
  { key: "metricsProvider", name: "metrics-provider" },
4765
5543
  { key: "motion", name: "motion" },
@@ -4772,6 +5550,8 @@ const CAPABILITY_ROUTER_KEYS = [
4772
5550
  { key: "networkQuality", name: "network-quality" },
4773
5551
  { key: "nodes", name: "nodes" },
4774
5552
  { key: "notificationOutput", name: "notification-output" },
5553
+ { key: "notifier", name: "notifier" },
5554
+ { key: "numericSensor", name: "numeric-sensor" },
4775
5555
  { key: "oauthIntegration", name: "oauth-integration" },
4776
5556
  { key: "osd", name: "osd" },
4777
5557
  { key: "pipelineAnalytics", name: "pipeline-analytics" },
@@ -4779,28 +5559,43 @@ const CAPABILITY_ROUTER_KEYS = [
4779
5559
  { key: "pipelineOrchestrator", name: "pipeline-orchestrator" },
4780
5560
  { key: "pipelineRunner", name: "pipeline-runner" },
4781
5561
  { key: "platformProbe", name: "platform-probe" },
5562
+ { key: "powerMeter", name: "power-meter" },
5563
+ { key: "presence", name: "presence" },
5564
+ { key: "pressureSensor", name: "pressure-sensor" },
5565
+ { key: "privacyMask", name: "privacy-mask" },
4782
5566
  { key: "ptz", name: "ptz" },
4783
5567
  { key: "ptzAutotrack", name: "ptz-autotrack" },
4784
5568
  { key: "reboot", name: "reboot" },
4785
5569
  { key: "recording", name: "recording" },
4786
- { key: "recordingEngine", name: "recording-engine" },
4787
5570
  { key: "restreamer", name: "restreamer" },
5571
+ { key: "scriptRunner", name: "script-runner" },
4788
5572
  { key: "settingsStore", name: "settings-store" },
5573
+ { key: "smoke", name: "smoke" },
4789
5574
  { key: "smtpProvider", name: "smtp-provider" },
4790
5575
  { key: "snapshot", name: "snapshot" },
4791
5576
  { key: "snapshotProvider", name: "snapshot-provider" },
4792
5577
  { key: "ssoBridge", name: "sso-bridge" },
4793
5578
  { key: "storage", name: "storage" },
5579
+ { key: "storageEvictable", name: "storage-evictable" },
4794
5580
  { key: "storageProvider", name: "storage-provider" },
4795
5581
  { key: "streamBroker", name: "stream-broker" },
5582
+ { key: "streamCatalog", name: "stream-catalog" },
4796
5583
  { key: "streamParams", name: "stream-params" },
4797
5584
  { key: "streamingEngine", name: "streaming-engine" },
4798
5585
  { key: "switch", name: "switch" },
4799
5586
  { key: "system", name: "system" },
5587
+ { key: "tamper", name: "tamper" },
5588
+ { key: "temperatureSensor", name: "temperature-sensor" },
4800
5589
  { key: "toast", name: "toast" },
4801
5590
  { key: "turnProvider", name: "turn-provider" },
5591
+ { key: "update", name: "update" },
4802
5592
  { key: "userManagement", name: "user-management" },
4803
5593
  { key: "userPasskeys", name: "user-passkeys" },
5594
+ { key: "vacuumControl", name: "vacuum-control" },
5595
+ { key: "valve", name: "valve" },
5596
+ { key: "vibration", name: "vibration" },
5597
+ { key: "waterHeater", name: "water-heater" },
5598
+ { key: "weather", name: "weather" },
4804
5599
  { key: "webrtc", name: "webrtc" },
4805
5600
  { key: "webrtcSession", name: "webrtc-session" },
4806
5601
  { key: "zoneAnalytics", name: "zone-analytics" },
@@ -4818,19 +5613,36 @@ const ALL_CAPABILITY_DEFINITIONS = [
4818
5613
  index.addonsCapability,
4819
5614
  index.adminUiCapability,
4820
5615
  index.advancedNotifierCapability,
5616
+ index.airQualitySensorCapability,
5617
+ index.alarmPanelCapability,
4821
5618
  index.alertsCapability,
5619
+ index.ambientLightSensorCapability,
4822
5620
  index.audioAnalysisCapability,
4823
5621
  index.audioAnalyzerCapability,
4824
5622
  index.audioCodecCapability,
4825
5623
  index.audioMetricsCapability,
4826
5624
  index.authProviderCapability,
5625
+ index.automationControlCapability,
4827
5626
  index.backupCapability,
4828
5627
  index.batteryCapability,
5628
+ index.binaryCapability,
4829
5629
  index.brightnessCapability,
5630
+ index.brokerCapability,
5631
+ index.buttonCapability,
4830
5632
  index.cameraCredentialsCapability,
5633
+ index.cameraPipelineConfigCapability,
4831
5634
  index.cameraStreamsCapability,
5635
+ index.carbonMonoxideCapability,
5636
+ index.climateControlCapability,
5637
+ index.colorCapability,
5638
+ index.connectivityCapability,
5639
+ index.consumablesCapability,
5640
+ index.contactCapability,
5641
+ index.controlCapability,
5642
+ index.coverCapability,
4832
5643
  index.decoderCapability,
4833
5644
  index.detectionPipelineCapability,
5645
+ index.deviceAdoptionCapability,
4834
5646
  index.deviceDiscoveryCapability,
4835
5647
  index.deviceExportCapability,
4836
5648
  index.deviceManagerCapability,
@@ -4840,12 +5652,23 @@ const ALL_CAPABILITY_DEFINITIONS = [
4840
5652
  index.deviceStatusCapability,
4841
5653
  index.doorbellCapability,
4842
5654
  index.embeddingEncoderCapability,
5655
+ index.enumSensorCapability,
5656
+ index.eventEmitterCapability,
4843
5657
  index.eventsCapability,
5658
+ index.fanControlCapability,
4844
5659
  index.featureProbeCapability,
5660
+ index.floodCapability,
5661
+ index.gasCapability,
5662
+ index.humidifierCapability,
5663
+ index.humiditySensorCapability,
5664
+ index.imageCapability,
4845
5665
  index.integrationsCapability,
4846
5666
  index.intercomCapability,
5667
+ index.lawnMowerControlCapability,
4847
5668
  index.localNetworkCapability,
5669
+ index.lockControlCapability,
4848
5670
  index.logDestinationCapability,
5671
+ index.mediaPlayerCapability,
4849
5672
  index.meshNetworkCapability,
4850
5673
  index.metricsProviderCapability,
4851
5674
  index.motionCapability,
@@ -4858,6 +5681,8 @@ const ALL_CAPABILITY_DEFINITIONS = [
4858
5681
  index.networkQualityCapability,
4859
5682
  index.nodesCapability,
4860
5683
  index.notificationOutputCapability,
5684
+ index.notifierCapability,
5685
+ index.numericSensorCapability,
4861
5686
  index.oauthIntegrationCapability,
4862
5687
  index.osdCapability,
4863
5688
  index.pipelineAnalyticsCapability,
@@ -4865,28 +5690,43 @@ const ALL_CAPABILITY_DEFINITIONS = [
4865
5690
  index.pipelineOrchestratorCapability,
4866
5691
  index.pipelineRunnerCapability,
4867
5692
  index.platformProbeCapability,
5693
+ index.powerMeterCapability,
5694
+ index.presenceCapability,
5695
+ index.pressureSensorCapability,
5696
+ index.privacyMaskCapability,
4868
5697
  index.ptzCapability,
4869
5698
  index.ptzAutotrackCapability,
4870
5699
  index.rebootCapability,
4871
5700
  index.recordingCapability,
4872
- index.recordingEngineCapability,
4873
5701
  index.restreamerCapability,
5702
+ index.scriptRunnerCapability,
4874
5703
  index.settingsStoreCapability,
5704
+ index.smokeCapability,
4875
5705
  index.smtpProviderCapability,
4876
5706
  index.snapshotCapability,
4877
5707
  index.snapshotProviderCapability,
4878
5708
  index.ssoBridgeCapability,
4879
5709
  index.storageCapability,
5710
+ index.storageEvictableCapability,
4880
5711
  index.storageProviderCapability,
4881
5712
  index.streamBrokerCapability,
5713
+ index.streamCatalogCapability,
4882
5714
  index.streamParamsCapability,
4883
5715
  index.streamingEngineCapability,
4884
5716
  index.switchCapability,
4885
5717
  index.systemCapability,
5718
+ index.tamperCapability,
5719
+ index.temperatureSensorCapability,
4886
5720
  index.toastCapability,
4887
5721
  index.turnProviderCapability,
5722
+ index.updateCapability,
4888
5723
  index.userManagementCapability,
4889
5724
  index.userPasskeysCapability,
5725
+ index.vacuumControlCapability,
5726
+ index.valveCapability,
5727
+ index.vibrationCapability,
5728
+ index.waterHeaterCapability,
5729
+ index.weatherCapability,
4890
5730
  index.webrtcCapability,
4891
5731
  index.webrtcSessionCapability,
4892
5732
  index.zoneAnalyticsCapability,
@@ -4895,37 +5735,83 @@ const ALL_CAPABILITY_DEFINITIONS = [
4895
5735
  ];
4896
5736
  const CAP_NAMES_WITH_STATUS = [
4897
5737
  "accessories",
5738
+ "air-quality-sensor",
5739
+ "alarm-panel",
5740
+ "ambient-light-sensor",
5741
+ "automation-control",
4898
5742
  "battery",
5743
+ "binary",
4899
5744
  "brightness",
5745
+ "broker",
4900
5746
  "camera-credentials",
5747
+ "carbon-monoxide",
5748
+ "climate-control",
5749
+ "color",
5750
+ "connectivity",
5751
+ "consumables",
5752
+ "contact",
5753
+ "control",
5754
+ "cover",
5755
+ "device-adoption",
4901
5756
  "device-discovery",
4902
5757
  "device-export",
4903
5758
  "device-status",
4904
5759
  "doorbell",
5760
+ "enum-sensor",
5761
+ "event-emitter",
5762
+ "fan-control",
4905
5763
  "feature-probe",
5764
+ "flood",
5765
+ "gas",
5766
+ "humidifier",
5767
+ "humidity-sensor",
5768
+ "image",
4906
5769
  "intercom",
5770
+ "lawn-mower-control",
5771
+ "lock-control",
5772
+ "media-player",
4907
5773
  "motion",
4908
5774
  "motion-trigger",
4909
5775
  "motion-zones",
4910
5776
  "mqtt-broker",
4911
5777
  "native-object-detection",
5778
+ "notifier",
5779
+ "numeric-sensor",
4912
5780
  "osd",
5781
+ "power-meter",
5782
+ "presence",
5783
+ "pressure-sensor",
5784
+ "privacy-mask",
4913
5785
  "ptz",
4914
5786
  "ptz-autotrack",
5787
+ "recording",
5788
+ "script-runner",
5789
+ "smoke",
4915
5790
  "snapshot",
4916
5791
  "stream-params",
4917
- "switch"
5792
+ "switch",
5793
+ "tamper",
5794
+ "temperature-sensor",
5795
+ "update",
5796
+ "vacuum-control",
5797
+ "valve",
5798
+ "vibration",
5799
+ "water-heater",
5800
+ "weather"
4918
5801
  ];
4919
5802
  const METHOD_ACCESS_MAP = Object.freeze({
5803
+ "accessories.setChildHidden": { capName: "accessories", capScope: "device", addonId: null, access: "create" },
4920
5804
  "addonPages.listPages": { capName: "addon-pages", capScope: "system", addonId: null, access: "view" },
4921
5805
  "addonPagesSource.listPages": { capName: "addon-pages-source", capScope: "system", addonId: null, access: "view" },
4922
5806
  "addonRoutes.getRoutes": { capName: "addon-routes", capScope: "system", addonId: null, access: "view" },
4923
5807
  "addonRoutes.invoke": { capName: "addon-routes", capScope: "system", addonId: null, access: "create" },
4924
5808
  "addons.applyAutoUpdateToAll": { capName: "addons", capScope: "system", addonId: null, access: "create" },
5809
+ "addons.cancelBulkUpdate": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4925
5810
  "addons.custom": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4926
5811
  "addons.forceRefresh": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4927
5812
  "addons.getAddonAutoUpdate": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4928
5813
  "addons.getAutoUpdateSettings": { capName: "addons", capScope: "system", addonId: null, access: "view" },
5814
+ "addons.getBulkUpdateState": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4929
5815
  "addons.getLastRestart": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4930
5816
  "addons.getLogs": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4931
5817
  "addons.getVersions": { capName: "addons", capScope: "system", addonId: null, access: "view" },
@@ -4933,6 +5819,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
4933
5819
  "addons.installPackage": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4934
5820
  "addons.isWorkspaceAvailable": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4935
5821
  "addons.list": { capName: "addons", capScope: "system", addonId: null, access: "view" },
5822
+ "addons.listActiveBulkUpdates": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4936
5823
  "addons.listCapabilityProviders": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4937
5824
  "addons.listFrameworkPackages": { capName: "addons", capScope: "system", addonId: null, access: "view" },
4938
5825
  "addons.listPackages": { capName: "addons", capScope: "system", addonId: null, access: "view" },
@@ -4948,6 +5835,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
4948
5835
  "addons.setAddonAutoUpdate": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4949
5836
  "addons.setAutoUpdateSettings": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4950
5837
  "addons.setCapabilityProviderEnabled": { capName: "addons", capScope: "system", addonId: null, access: "create" },
5838
+ "addons.startBulkUpdate": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4951
5839
  "addons.uninstallPackage": { capName: "addons", capScope: "system", addonId: null, access: "delete" },
4952
5840
  "addons.updateFrameworkPackage": { capName: "addons", capScope: "system", addonId: null, access: "create" },
4953
5841
  "addons.updatePackage": { capName: "addons", capScope: "system", addonId: null, access: "create" },
@@ -4964,6 +5852,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
4964
5852
  "advancedNotifier.getRules": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "view" },
4965
5853
  "advancedNotifier.testRule": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "create" },
4966
5854
  "advancedNotifier.upsertRule": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "create" },
5855
+ "alarmPanel.arm": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5856
+ "alarmPanel.disarm": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5857
+ "alarmPanel.trigger": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
4967
5858
  "alerts.dismiss": { capName: "alerts", capScope: "system", addonId: null, access: "create" },
4968
5859
  "alerts.emit": { capName: "alerts", capScope: "system", addonId: null, access: "create" },
4969
5860
  "alerts.getUnreadCount": { capName: "alerts", capScope: "system", addonId: null, access: "view" },
@@ -4994,6 +5885,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
4994
5885
  "authProvider.handleCallback": { capName: "auth-provider", capScope: "system", addonId: null, access: "create" },
4995
5886
  "authProvider.validateCredentials": { capName: "auth-provider", capScope: "system", addonId: null, access: "create" },
4996
5887
  "authProvider.validateToken": { capName: "auth-provider", capScope: "system", addonId: null, access: "view" },
5888
+ "automationControl.disable": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5889
+ "automationControl.enable": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5890
+ "automationControl.trigger": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
4997
5891
  "backup.delete": { capName: "backup", capScope: "system", addonId: null, access: "delete" },
4998
5892
  "backup.getEntries": { capName: "backup", capScope: "system", addonId: null, access: "view" },
4999
5893
  "backup.list": { capName: "backup", capScope: "system", addonId: null, access: "view" },
@@ -5004,11 +5898,45 @@ const METHOD_ACCESS_MAP = Object.freeze({
5004
5898
  "backup.restore": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5005
5899
  "backup.trigger": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5006
5900
  "backup.upsertDestinationPolicy": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5901
+ "battery.wakeForStream": { capName: "battery", capScope: "device", addonId: null, access: "create" },
5007
5902
  "brightness.setBrightness": { capName: "brightness", capScope: "device", addonId: null, access: "create" },
5903
+ "broker.add": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5904
+ "broker.get": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5905
+ "broker.getBrokerConfig": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5906
+ "broker.getSettings": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5907
+ "broker.getSettingsSchema": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5908
+ "broker.getState": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5909
+ "broker.getStatus": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5910
+ "broker.list": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5911
+ "broker.listProviders": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5912
+ "broker.publish": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5913
+ "broker.remove": { capName: "broker", capScope: "system", addonId: null, access: "delete" },
5914
+ "broker.setSettings": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5915
+ "broker.subscribe": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5916
+ "broker.testConnection": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5917
+ "broker.testSettings": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5918
+ "broker.unsubscribe": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5919
+ "button.press": { capName: "button", capScope: "device", addonId: null, access: "create" },
5008
5920
  "cameraCredentials.getCredentials": { capName: "camera-credentials", capScope: "device", addonId: null, access: "view" },
5009
5921
  "cameraStreams.getBrokerStreams": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5010
5922
  "cameraStreams.getCameraStreams": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5923
+ "cameraStreams.getProfileRtspEntries": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5011
5924
  "cameraStreams.getRtspEntries": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5925
+ "cameraStreams.pickStream": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5926
+ "climateControl.setFanMode": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5927
+ "climateControl.setMode": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5928
+ "climateControl.setPreset": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5929
+ "climateControl.setTarget": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5930
+ "climateControl.setTargetHumidity": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5931
+ "climateControl.setTargetRange": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5932
+ "color.setColor": { capName: "color", capScope: "device", addonId: null, access: "create" },
5933
+ "consumables.reset": { capName: "consumables", capScope: "device", addonId: null, access: "delete" },
5934
+ "control.setValue": { capName: "control", capScope: "device", addonId: null, access: "create" },
5935
+ "cover.close": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5936
+ "cover.open": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5937
+ "cover.setPosition": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5938
+ "cover.setTiltPosition": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5939
+ "cover.stop": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5012
5940
  "decoder.createSession": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5013
5941
  "decoder.destroySession": { capName: "decoder", capScope: "system", addonId: null, access: "delete" },
5014
5942
  "decoder.getFrame": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
@@ -5023,6 +5951,13 @@ const METHOD_ACCESS_MAP = Object.freeze({
5023
5951
  "decoder.reprobeHwaccel": { capName: "decoder", capScope: "system", addonId: null, access: "create" },
5024
5952
  "decoder.supportsCodec": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5025
5953
  "decoder.updateConfig": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5954
+ "deviceAdoption.adopt": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5955
+ "deviceAdoption.getCandidate": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5956
+ "deviceAdoption.listCandidateFilters": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5957
+ "deviceAdoption.listCandidates": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5958
+ "deviceAdoption.refresh": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5959
+ "deviceAdoption.release": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5960
+ "deviceAdoption.resync": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5026
5961
  "deviceDiscovery.adoptDevice": { capName: "device-discovery", capScope: "device", addonId: null, access: "create" },
5027
5962
  "deviceDiscovery.listDiscovered": { capName: "device-discovery", capScope: "device", addonId: null, access: "view" },
5028
5963
  "deviceDiscovery.refreshDiscovery": { capName: "device-discovery", capScope: "device", addonId: null, access: "create" },
@@ -5034,7 +5969,12 @@ const METHOD_ACCESS_MAP = Object.freeze({
5034
5969
  "deviceExport.unexposeDevice": { capName: "device-export", capScope: "system", addonId: null, access: "create" },
5035
5970
  "deviceManager.addLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5036
5971
  "deviceManager.adoptDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5972
+ "deviceManager.adoptionAdopt": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5973
+ "deviceManager.adoptionListCandidates": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5974
+ "deviceManager.adoptionRefresh": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5975
+ "deviceManager.adoptionRelease": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5037
5976
  "deviceManager.allocateDeviceId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5977
+ "deviceManager.applyInitialMeta": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5038
5978
  "deviceManager.createDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5039
5979
  "deviceManager.disable": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5040
5980
  "deviceManager.discoverDevices": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
@@ -5052,6 +5992,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5052
5992
  "deviceManager.getSettingsSchema": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5053
5993
  "deviceManager.getStreamProfileMap": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5054
5994
  "deviceManager.getStreamSources": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5995
+ "deviceManager.getWireableFields": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5055
5996
  "deviceManager.listAll": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5056
5997
  "deviceManager.listBindableCapsForDeviceType": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5057
5998
  "deviceManager.listLocations": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
@@ -5064,13 +6005,22 @@ const METHOD_ACCESS_MAP = Object.freeze({
5064
6005
  "deviceManager.probeStreams": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5065
6006
  "deviceManager.registerDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5066
6007
  "deviceManager.remove": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
6008
+ "deviceManager.removeByIntegration": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
5067
6009
  "deviceManager.removeDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
5068
6010
  "deviceManager.removeLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
6011
+ "deviceManager.runDeviceAction": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6012
+ "deviceManager.setChildLayout": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6013
+ "deviceManager.setDeviceLinks": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5069
6014
  "deviceManager.setDisabled": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6015
+ "deviceManager.setIntegrationId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6016
+ "deviceManager.setLinkDeviceId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5070
6017
  "deviceManager.setLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5071
6018
  "deviceManager.setMetadata": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5072
6019
  "deviceManager.setName": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6020
+ "deviceManager.setPrimaryChildEntityId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6021
+ "deviceManager.setRole": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5073
6022
  "deviceManager.setStreamProfileMap": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6023
+ "deviceManager.setType": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5074
6024
  "deviceManager.setWrapperActive": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5075
6025
  "deviceManager.testCreationField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5076
6026
  "deviceManager.testField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
@@ -5078,9 +6028,11 @@ const METHOD_ACCESS_MAP = Object.freeze({
5078
6028
  "deviceManager.updateDeviceField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5079
6029
  "deviceManager.updateDeviceFieldsBatch": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5080
6030
  "deviceOps.getConfigEntries": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
6031
+ "deviceOps.getRawState": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5081
6032
  "deviceOps.getSettingsSchema": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5082
6033
  "deviceOps.getStreamSources": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5083
6034
  "deviceOps.removeDevice": { capName: "device-ops", capScope: "device", addonId: null, access: "delete" },
6035
+ "deviceOps.runAction": { capName: "device-ops", capScope: "device", addonId: null, access: "create" },
5084
6036
  "deviceOps.setConfig": { capName: "device-ops", capScope: "device", addonId: null, access: "create" },
5085
6037
  "deviceProvider.adoptDiscoveredDevice": { capName: "device-provider", capScope: "system", addonId: null, access: "create" },
5086
6038
  "deviceProvider.createDevice": { capName: "device-provider", capScope: "system", addonId: null, access: "create" },
@@ -5103,6 +6055,13 @@ const METHOD_ACCESS_MAP = Object.freeze({
5103
6055
  "events.getEventClipUrl": { capName: "events", capScope: "device", addonId: null, access: "view" },
5104
6056
  "events.getEvents": { capName: "events", capScope: "device", addonId: null, access: "view" },
5105
6057
  "events.getEventThumbnail": { capName: "events", capScope: "device", addonId: null, access: "view" },
6058
+ "fanControl.setDirection": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6059
+ "fanControl.setOscillating": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6060
+ "fanControl.setPercentage": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6061
+ "fanControl.setPreset": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6062
+ "humidifier.setMode": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
6063
+ "humidifier.setOn": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
6064
+ "humidifier.setTargetHumidity": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
5106
6065
  "integrations.create": { capName: "integrations", capScope: "system", addonId: null, access: "create" },
5107
6066
  "integrations.delete": { capName: "integrations", capScope: "system", addonId: null, access: "delete" },
5108
6067
  "integrations.get": { capName: "integrations", capScope: "system", addonId: null, access: "view" },
@@ -5115,18 +6074,36 @@ const METHOD_ACCESS_MAP = Object.freeze({
5115
6074
  "integrations.update": { capName: "integrations", capScope: "system", addonId: null, access: "create" },
5116
6075
  "intercom.endTalkSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5117
6076
  "intercom.handleAnswer": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5118
- "intercom.pushTalkPcm": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
6077
+ "intercom.pushTalkAudio": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5119
6078
  "intercom.startSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5120
6079
  "intercom.startTalkSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5121
6080
  "intercom.stopSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
6081
+ "lawnMowerControl.dock": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
6082
+ "lawnMowerControl.pause": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
6083
+ "lawnMowerControl.startMowing": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
5122
6084
  "localNetwork.getAllowedAddresses": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5123
6085
  "localNetwork.getConnectionEndpoints": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5124
6086
  "localNetwork.getPreferred": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5125
6087
  "localNetwork.list": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5126
6088
  "localNetwork.resetAllowlistToBestMatch": { capName: "local-network", capScope: "system", addonId: null, access: "delete" },
5127
6089
  "localNetwork.setAllowedAddresses": { capName: "local-network", capScope: "system", addonId: null, access: "create" },
6090
+ "lockControl.lock": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
6091
+ "lockControl.open": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
6092
+ "lockControl.unlock": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
5128
6093
  "logDestination.query": { capName: "log-destination", capScope: "system", addonId: null, access: "view" },
5129
6094
  "logDestination.write": { capName: "log-destination", capScope: "system", addonId: null, access: "create" },
6095
+ "mediaPlayer.next": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6096
+ "mediaPlayer.pause": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6097
+ "mediaPlayer.play": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6098
+ "mediaPlayer.playMedia": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6099
+ "mediaPlayer.previous": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6100
+ "mediaPlayer.seek": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6101
+ "mediaPlayer.selectSource": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6102
+ "mediaPlayer.setMute": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6103
+ "mediaPlayer.setRepeat": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6104
+ "mediaPlayer.setShuffle": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6105
+ "mediaPlayer.setVolume": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6106
+ "mediaPlayer.stop": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
5130
6107
  "meshNetwork.getStatus": { capName: "mesh-network", capScope: "system", addonId: null, access: "view" },
5131
6108
  "meshNetwork.join": { capName: "mesh-network", capScope: "system", addonId: null, access: "create" },
5132
6109
  "meshNetwork.leave": { capName: "mesh-network", capScope: "system", addonId: null, access: "create" },
@@ -5160,6 +6137,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5160
6137
  "mqttBroker.startEmbeddedBroker": { capName: "mqtt-broker", capScope: "system", addonId: null, access: "create" },
5161
6138
  "mqttBroker.stopEmbeddedBroker": { capName: "mqtt-broker", capScope: "system", addonId: null, access: "create" },
5162
6139
  "mqttBroker.testConnection": { capName: "mqtt-broker", capScope: "system", addonId: null, access: "create" },
6140
+ "nativeObjectDetection.setEnabled": { capName: "native-object-detection", capScope: "device", addonId: null, access: "create" },
5163
6141
  "networkAccess.getEndpoint": { capName: "network-access", capScope: "system", addonId: null, access: "view" },
5164
6142
  "networkAccess.getStatus": { capName: "network-access", capScope: "system", addonId: null, access: "view" },
5165
6143
  "networkAccess.listEndpoints": { capName: "network-access", capScope: "system", addonId: null, access: "view" },
@@ -5183,17 +6161,21 @@ const METHOD_ACCESS_MAP = Object.freeze({
5183
6161
  "nodes.undeployAddon": { capName: "nodes", capScope: "system", addonId: null, access: "create" },
5184
6162
  "notificationOutput.send": { capName: "notification-output", capScope: "system", addonId: null, access: "create" },
5185
6163
  "notificationOutput.sendTest": { capName: "notification-output", capScope: "system", addonId: null, access: "create" },
6164
+ "notifier.cancel": { capName: "notifier", capScope: "device", addonId: null, access: "create" },
6165
+ "notifier.send": { capName: "notifier", capScope: "device", addonId: null, access: "create" },
5186
6166
  "oauthIntegration.getDescriptor": { capName: "oauth-integration", capScope: "system", addonId: null, access: "view" },
5187
6167
  "osd.setOverlay": { capName: "osd", capScope: "device", addonId: null, access: "create" },
5188
6168
  "pipelineAnalytics.clearTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "delete" },
5189
6169
  "pipelineAnalytics.getActiveTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5190
6170
  "pipelineAnalytics.getAudioEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
6171
+ "pipelineAnalytics.getEventDensity": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5191
6172
  "pipelineAnalytics.getEventMedia": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5192
6173
  "pipelineAnalytics.getMotionEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5193
6174
  "pipelineAnalytics.getObjectEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5194
6175
  "pipelineAnalytics.getTrack": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5195
6176
  "pipelineAnalytics.getTrackMedia": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5196
6177
  "pipelineAnalytics.listTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
6178
+ "pipelineAnalytics.pruneEventsBefore": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "create" },
5197
6179
  "pipelineExecutor.cacheFrameInPool": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "create" },
5198
6180
  "pipelineExecutor.deleteModel": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "delete" },
5199
6181
  "pipelineExecutor.deleteTemplate": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "delete" },
@@ -5272,10 +6254,14 @@ const METHOD_ACCESS_MAP = Object.freeze({
5272
6254
  "pipelineRunner.reportMotion": { capName: "pipeline-runner", capScope: "system", addonId: null, access: "create" },
5273
6255
  "platformProbe.getCapabilities": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5274
6256
  "platformProbe.getHardware": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6257
+ "platformProbe.getHardwareDecodeAccels": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5275
6258
  "platformProbe.getHardwareEncoders": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6259
+ "platformProbe.refreshHardwareDecodeAccels": { capName: "platform-probe", capScope: "system", addonId: null, access: "create" },
5276
6260
  "platformProbe.refreshHardwareEncoders": { capName: "platform-probe", capScope: "system", addonId: null, access: "create" },
5277
6261
  "platformProbe.resolveHwAccel": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5278
6262
  "platformProbe.resolveInferenceConfig": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6263
+ "privacyMask.getOptions": { capName: "privacy-mask", capScope: "device", addonId: null, access: "view" },
6264
+ "privacyMask.setMask": { capName: "privacy-mask", capScope: "device", addonId: null, access: "create" },
5279
6265
  "ptz.continuousMove": { capName: "ptz", capScope: "device", addonId: null, access: "create" },
5280
6266
  "ptz.deletePreset": { capName: "ptz", capScope: "device", addonId: null, access: "delete" },
5281
6267
  "ptz.getOptions": { capName: "ptz", capScope: "device", addonId: null, access: "view" },
@@ -5292,34 +6278,23 @@ const METHOD_ACCESS_MAP = Object.freeze({
5292
6278
  "ptzAutotrack.setEnabled": { capName: "ptz-autotrack", capScope: "device", addonId: null, access: "create" },
5293
6279
  "ptzAutotrack.setSettings": { capName: "ptz-autotrack", capScope: "device", addonId: null, access: "create" },
5294
6280
  "reboot.reboot": { capName: "reboot", capScope: "device", addonId: null, access: "create" },
5295
- "recording.getPlaybackUrl": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5296
- "recording.getSegments": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5297
- "recording.getThumbnailAt": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5298
- "recordingEngine.disable": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5299
- "recordingEngine.enable": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5300
- "recordingEngine.estimateGlobalStorage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5301
- "recordingEngine.estimateStorage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5302
- "recordingEngine.getAvailability": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5303
- "recordingEngine.getConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5304
- "recordingEngine.getMotionStats": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5305
- "recordingEngine.getPlaylist": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5306
- "recordingEngine.getPolicy": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5307
- "recordingEngine.getPolicyStatus": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5308
- "recordingEngine.getRetentionConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5309
- "recordingEngine.getSegments": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5310
- "recordingEngine.getStatus": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5311
- "recordingEngine.getStorageUsage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5312
- "recordingEngine.getThumbnail": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5313
- "recordingEngine.setPolicy": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5314
- "recordingEngine.updateConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5315
- "recordingEngine.updateRetentionConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
6281
+ "recording.getAvailability": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6282
+ "recording.getDeviceConfig": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6283
+ "recording.getPlaybackManifest": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6284
+ "recording.getStorageUsage": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6285
+ "recording.pruneFootage": { capName: "recording", capScope: "system", addonId: null, access: "create" },
6286
+ "recording.rescanStorage": { capName: "recording", capScope: "system", addonId: null, access: "create" },
6287
+ "recording.setDeviceConfig": { capName: "recording", capScope: "system", addonId: null, access: "create" },
5316
6288
  "restreamer.getExposedResources": { capName: "restreamer", capScope: "system", addonId: null, access: "view" },
5317
6289
  "restreamer.registerDevice": { capName: "restreamer", capScope: "system", addonId: null, access: "create" },
5318
6290
  "restreamer.unregisterDevice": { capName: "restreamer", capScope: "system", addonId: null, access: "delete" },
6291
+ "scriptRunner.run": { capName: "script-runner", capScope: "device", addonId: null, access: "create" },
6292
+ "scriptRunner.stop": { capName: "script-runner", capScope: "device", addonId: null, access: "create" },
5319
6293
  "settingsStore.count": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5320
6294
  "settingsStore.declareCollection": { capName: "settings-store", capScope: "system", addonId: null, access: "create" },
5321
6295
  "settingsStore.delete": { capName: "settings-store", capScope: "system", addonId: null, access: "delete" },
5322
6296
  "settingsStore.get": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
6297
+ "settingsStore.histogram": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5323
6298
  "settingsStore.insert": { capName: "settings-store", capScope: "system", addonId: null, access: "create" },
5324
6299
  "settingsStore.isEmpty": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5325
6300
  "settingsStore.query": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
@@ -5345,6 +6320,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5345
6320
  "storage.getAvailableSpace": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5346
6321
  "storage.getDefaultLocation": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5347
6322
  "storage.list": { capName: "storage", capScope: "system", addonId: null, access: "view" },
6323
+ "storage.listLocationDeclarations": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5348
6324
  "storage.listLocations": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5349
6325
  "storage.listProviders": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5350
6326
  "storage.read": { capName: "storage", capScope: "system", addonId: null, access: "view" },
@@ -5355,6 +6331,8 @@ const METHOD_ACCESS_MAP = Object.freeze({
5355
6331
  "storage.upsertLocation": { capName: "storage", capScope: "system", addonId: null, access: "create" },
5356
6332
  "storage.write": { capName: "storage", capScope: "system", addonId: null, access: "create" },
5357
6333
  "storage.writeChunk": { capName: "storage", capScope: "system", addonId: null, access: "create" },
6334
+ "storageEvictable.evict": { capName: "storage-evictable", capScope: "system", addonId: null, access: "create" },
6335
+ "storageEvictable.getEvictableUsage": { capName: "storage-evictable", capScope: "system", addonId: null, access: "view" },
5358
6336
  "storageProvider.abortUpload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
5359
6337
  "storageProvider.beginDownload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
5360
6338
  "storageProvider.beginUpload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
@@ -5398,6 +6376,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5398
6376
  "streamBroker.unassignProfile": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
5399
6377
  "streamBroker.unsubscribeAudioChunks": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
5400
6378
  "streamBroker.unsubscribeFrames": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
6379
+ "streamCatalog.getCatalog": { capName: "stream-catalog", capScope: "device", addonId: null, access: "view" },
5401
6380
  "streamingEngine.getStreamUrl": { capName: "streaming-engine", capScope: "system", addonId: null, access: "view" },
5402
6381
  "streamingEngine.listStreams": { capName: "streaming-engine", capScope: "system", addonId: null, access: "view" },
5403
6382
  "streamingEngine.registerStream": { capName: "streaming-engine", capScope: "system", addonId: null, access: "create" },
@@ -5415,6 +6394,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5415
6394
  "system.setRetentionConfig": { capName: "system", capScope: "system", addonId: null, access: "create" },
5416
6395
  "toast.onToast": { capName: "toast", capScope: "system", addonId: null, access: "view" },
5417
6396
  "turnProvider.getTurnServers": { capName: "turn-provider", capScope: "system", addonId: null, access: "view" },
6397
+ "update.installUpdate": { capName: "update", capScope: "device", addonId: null, access: "create" },
5418
6398
  "userManagement.confirmTotp": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
5419
6399
  "userManagement.createApiKey": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
5420
6400
  "userManagement.createScopedToken": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
@@ -5447,6 +6427,19 @@ const METHOD_ACCESS_MAP = Object.freeze({
5447
6427
  "userPasskeys.finishRegistration": { capName: "user-passkeys", capScope: "system", addonId: null, access: "create" },
5448
6428
  "userPasskeys.listPasskeys": { capName: "user-passkeys", capScope: "system", addonId: null, access: "view" },
5449
6429
  "userPasskeys.removePasskey": { capName: "user-passkeys", capScope: "system", addonId: null, access: "delete" },
6430
+ "vacuumControl.locate": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6431
+ "vacuumControl.pause": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6432
+ "vacuumControl.returnToBase": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6433
+ "vacuumControl.setFanSpeed": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6434
+ "vacuumControl.start": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6435
+ "vacuumControl.stop": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6436
+ "valve.close": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6437
+ "valve.open": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6438
+ "valve.setPosition": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6439
+ "valve.stop": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6440
+ "waterHeater.setAway": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
6441
+ "waterHeater.setOperationMode": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
6442
+ "waterHeater.setTargetTemp": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
5450
6443
  "webrtc.closeSession": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5451
6444
  "webrtc.createSession": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5452
6445
  "webrtc.handleAnswer": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
@@ -5455,8 +6448,11 @@ const METHOD_ACCESS_MAP = Object.freeze({
5455
6448
  "webrtc.registerStream": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5456
6449
  "webrtc.supportsStream": { capName: "webrtc", capScope: "system", addonId: null, access: "view" },
5457
6450
  "webrtc.unregisterStream": { capName: "webrtc", capScope: "system", addonId: null, access: "delete" },
6451
+ "webrtcSession.addIceCandidate": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5458
6452
  "webrtcSession.closeSession": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5459
6453
  "webrtcSession.createSession": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
6454
+ "webrtcSession.getIceCandidates": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
6455
+ "webrtcSession.getSessionState": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
5460
6456
  "webrtcSession.handleAnswer": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5461
6457
  "webrtcSession.handleOffer": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5462
6458
  "webrtcSession.hasAdaptiveBitrate": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
@@ -5473,6 +6469,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5473
6469
  "zones.updateZone": { capName: "zones", capScope: "device", addonId: null, access: "create" }
5474
6470
  });
5475
6471
  const KNOWN_CAP_NAMES = [
6472
+ "accessories",
5476
6473
  "addon-pages",
5477
6474
  "addon-pages-source",
5478
6475
  "addon-routes",
@@ -5482,17 +6479,28 @@ const KNOWN_CAP_NAMES = [
5482
6479
  "addons",
5483
6480
  "admin-ui",
5484
6481
  "advanced-notifier",
6482
+ "alarm-panel",
5485
6483
  "alerts",
5486
6484
  "audio-analysis",
5487
6485
  "audio-analyzer",
5488
6486
  "audio-codec",
5489
6487
  "audio-metrics",
5490
6488
  "auth-provider",
6489
+ "automation-control",
5491
6490
  "backup",
6491
+ "battery",
5492
6492
  "brightness",
6493
+ "broker",
6494
+ "button",
5493
6495
  "camera-credentials",
5494
6496
  "camera-streams",
6497
+ "climate-control",
6498
+ "color",
6499
+ "consumables",
6500
+ "control",
6501
+ "cover",
5495
6502
  "decoder",
6503
+ "device-adoption",
5496
6504
  "device-discovery",
5497
6505
  "device-export",
5498
6506
  "device-manager",
@@ -5501,10 +6509,15 @@ const KNOWN_CAP_NAMES = [
5501
6509
  "device-state",
5502
6510
  "embedding-encoder",
5503
6511
  "events",
6512
+ "fan-control",
6513
+ "humidifier",
5504
6514
  "integrations",
5505
6515
  "intercom",
6516
+ "lawn-mower-control",
5506
6517
  "local-network",
6518
+ "lock-control",
5507
6519
  "log-destination",
6520
+ "media-player",
5508
6521
  "mesh-network",
5509
6522
  "metrics-provider",
5510
6523
  "motion",
@@ -5512,10 +6525,12 @@ const KNOWN_CAP_NAMES = [
5512
6525
  "motion-trigger",
5513
6526
  "motion-zones",
5514
6527
  "mqtt-broker",
6528
+ "native-object-detection",
5515
6529
  "network-access",
5516
6530
  "network-quality",
5517
6531
  "nodes",
5518
6532
  "notification-output",
6533
+ "notifier",
5519
6534
  "oauth-integration",
5520
6535
  "osd",
5521
6536
  "pipeline-analytics",
@@ -5523,28 +6538,35 @@ const KNOWN_CAP_NAMES = [
5523
6538
  "pipeline-orchestrator",
5524
6539
  "pipeline-runner",
5525
6540
  "platform-probe",
6541
+ "privacy-mask",
5526
6542
  "ptz",
5527
6543
  "ptz-autotrack",
5528
6544
  "reboot",
5529
6545
  "recording",
5530
- "recording-engine",
5531
6546
  "restreamer",
6547
+ "script-runner",
5532
6548
  "settings-store",
5533
6549
  "smtp-provider",
5534
6550
  "snapshot",
5535
6551
  "snapshot-provider",
5536
6552
  "sso-bridge",
5537
6553
  "storage",
6554
+ "storage-evictable",
5538
6555
  "storage-provider",
5539
6556
  "stream-broker",
6557
+ "stream-catalog",
5540
6558
  "stream-params",
5541
6559
  "streaming-engine",
5542
6560
  "switch",
5543
6561
  "system",
5544
6562
  "toast",
5545
6563
  "turn-provider",
6564
+ "update",
5546
6565
  "user-management",
5547
6566
  "user-passkeys",
6567
+ "vacuum-control",
6568
+ "valve",
6569
+ "water-heater",
5548
6570
  "webrtc",
5549
6571
  "webrtc-session",
5550
6572
  "zone-analytics",
@@ -5552,28 +6574,51 @@ const KNOWN_CAP_NAMES = [
5552
6574
  "zones"
5553
6575
  ];
5554
6576
  const DEVICE_CAP_NAMES = [
6577
+ "accessories",
6578
+ "alarm-panel",
5555
6579
  "audio-analysis",
5556
6580
  "audio-metrics",
6581
+ "automation-control",
6582
+ "battery",
5557
6583
  "brightness",
6584
+ "button",
5558
6585
  "camera-credentials",
5559
6586
  "camera-streams",
6587
+ "climate-control",
6588
+ "color",
6589
+ "consumables",
6590
+ "control",
6591
+ "cover",
5560
6592
  "device-discovery",
5561
6593
  "device-ops",
5562
6594
  "events",
6595
+ "fan-control",
6596
+ "humidifier",
5563
6597
  "intercom",
6598
+ "lawn-mower-control",
6599
+ "lock-control",
6600
+ "media-player",
5564
6601
  "motion",
5565
6602
  "motion-detection",
5566
6603
  "motion-trigger",
5567
6604
  "motion-zones",
6605
+ "native-object-detection",
6606
+ "notifier",
5568
6607
  "osd",
5569
6608
  "pipeline-analytics",
6609
+ "privacy-mask",
5570
6610
  "ptz",
5571
6611
  "ptz-autotrack",
5572
6612
  "reboot",
5573
- "recording",
6613
+ "script-runner",
5574
6614
  "snapshot",
6615
+ "stream-catalog",
5575
6616
  "stream-params",
5576
6617
  "switch",
6618
+ "update",
6619
+ "vacuum-control",
6620
+ "valve",
6621
+ "water-heater",
5577
6622
  "webrtc-session",
5578
6623
  "zone-analytics",
5579
6624
  "zone-rules",
@@ -5594,7 +6639,9 @@ const SYSTEM_CAP_NAMES = [
5594
6639
  "audio-codec",
5595
6640
  "auth-provider",
5596
6641
  "backup",
6642
+ "broker",
5597
6643
  "decoder",
6644
+ "device-adoption",
5598
6645
  "device-export",
5599
6646
  "device-manager",
5600
6647
  "device-provider",
@@ -5615,13 +6662,14 @@ const SYSTEM_CAP_NAMES = [
5615
6662
  "pipeline-orchestrator",
5616
6663
  "pipeline-runner",
5617
6664
  "platform-probe",
5618
- "recording-engine",
6665
+ "recording",
5619
6666
  "restreamer",
5620
6667
  "settings-store",
5621
6668
  "smtp-provider",
5622
6669
  "snapshot-provider",
5623
6670
  "sso-bridge",
5624
6671
  "storage",
6672
+ "storage-evictable",
5625
6673
  "storage-provider",
5626
6674
  "stream-broker",
5627
6675
  "streaming-engine",
@@ -5669,6 +6717,7 @@ const SCOPE_PRESETS = [
5669
6717
  }
5670
6718
  ];
5671
6719
  const CAP_PROVIDER_KIND_MAP = Object.freeze({
6720
+ "broker": "broker",
5672
6721
  "device-export": "device-export",
5673
6722
  "mesh-network": "mesh",
5674
6723
  "mqtt-broker": "broker",
@@ -5676,6 +6725,7 @@ const CAP_PROVIDER_KIND_MAP = Object.freeze({
5676
6725
  "smtp-provider": "email"
5677
6726
  });
5678
6727
  const PROVIDER_KIND_CAP_NAMES = [
6728
+ "broker",
5679
6729
  "device-export",
5680
6730
  "mesh-network",
5681
6731
  "mqtt-broker",
@@ -5689,6 +6739,46 @@ function getCapsByProviderKind(kind) {
5689
6739
  }
5690
6740
  return out;
5691
6741
  }
6742
+ function levenshtein(a, b) {
6743
+ const m = a.length;
6744
+ const n = b.length;
6745
+ if (m === 0) return n;
6746
+ if (n === 0) return m;
6747
+ const prevRow = Array.from({ length: n + 1 }, (_, k) => k);
6748
+ const currRow = Array.from({ length: n + 1 }, () => 0);
6749
+ for (let i = 1; i <= m; i++) {
6750
+ currRow[0] = i;
6751
+ let diagVal = prevRow[0] ?? 0;
6752
+ for (let j = 1; j <= n; j++) {
6753
+ const above = prevRow[j] ?? 0;
6754
+ const left = currRow[j - 1] ?? 0;
6755
+ const cost = a.charCodeAt(i - 1) === b.charCodeAt(j - 1) ? 0 : 1;
6756
+ currRow[j] = Math.min(above + 1, left + 1, diagVal + cost);
6757
+ diagVal = above;
6758
+ }
6759
+ for (let j = 0; j <= n; j++) prevRow[j] = currRow[j] ?? 0;
6760
+ }
6761
+ return prevRow[n] ?? 0;
6762
+ }
6763
+ function locationSimilarity(a, b) {
6764
+ const x = a.trim().toLowerCase();
6765
+ const y = b.trim().toLowerCase();
6766
+ if (x === y) return 1;
6767
+ if (x.length === 0 || y.length === 0) return 0;
6768
+ return 1 - levenshtein(x, y) / Math.max(x.length, y.length);
6769
+ }
6770
+ function bestLocationMatch(externalName, existing, threshold = 0.8) {
6771
+ let best = null;
6772
+ let bestScore = 0;
6773
+ for (const name of existing) {
6774
+ const score = locationSimilarity(externalName, name);
6775
+ if (score >= threshold && score > bestScore) {
6776
+ best = name;
6777
+ bestScore = score;
6778
+ }
6779
+ }
6780
+ return best;
6781
+ }
5692
6782
  const CREDENTIAL_PARAM_PATTERNS = [
5693
6783
  /^user$/i,
5694
6784
  /^usr$/i,
@@ -5762,6 +6852,104 @@ class RingBuffer {
5762
6852
  return result;
5763
6853
  }
5764
6854
  }
6855
+ function rectsToCells(rects, gridWidth, gridHeight) {
6856
+ const total = gridWidth * gridHeight;
6857
+ if (total <= 0 || rects.length === 0) {
6858
+ return new Array(Math.max(0, total)).fill(false);
6859
+ }
6860
+ const cells = new Array(total).fill(false);
6861
+ for (let row = 0; row < gridHeight; row++) {
6862
+ for (let col = 0; col < gridWidth; col++) {
6863
+ const cx = (col + 0.5) / gridWidth;
6864
+ const cy = (row + 0.5) / gridHeight;
6865
+ for (const rect of rects) {
6866
+ if (cx >= rect.x && cx <= rect.x + rect.w && cy >= rect.y && cy <= rect.y + rect.h) {
6867
+ cells[row * gridWidth + col] = true;
6868
+ break;
6869
+ }
6870
+ }
6871
+ }
6872
+ }
6873
+ return cells;
6874
+ }
6875
+ function cellsToRects(cells, gridWidth, gridHeight, maxRegions) {
6876
+ if (gridWidth <= 0 || gridHeight <= 0 || maxRegions <= 0) return [];
6877
+ const expected = gridWidth * gridHeight;
6878
+ const grid = new Array(expected).fill(false);
6879
+ const copyLen = Math.min(cells.length, expected);
6880
+ for (let i = 0; i < copyLen; i++) {
6881
+ grid[i] = cells[i] === true;
6882
+ }
6883
+ const blocks = [];
6884
+ const pending = [];
6885
+ for (let row = 0; row <= gridHeight; row++) {
6886
+ const rowRuns = [];
6887
+ if (row < gridHeight) {
6888
+ let runStart = -1;
6889
+ for (let col = 0; col <= gridWidth; col++) {
6890
+ const active = col < gridWidth && grid[row * gridWidth + col] === true;
6891
+ if (active && runStart === -1) {
6892
+ runStart = col;
6893
+ } else if (!active && runStart !== -1) {
6894
+ rowRuns.push({ colStart: runStart, colEnd: col - 1 });
6895
+ runStart = -1;
6896
+ }
6897
+ }
6898
+ }
6899
+ const matched = /* @__PURE__ */ new Set();
6900
+ const nextPending = [];
6901
+ for (const pb of pending) {
6902
+ const idx = rowRuns.findIndex(
6903
+ (r) => r.colStart === pb.colStart && r.colEnd === pb.colEnd
6904
+ );
6905
+ if (idx >= 0) {
6906
+ nextPending.push(pb);
6907
+ matched.add(idx);
6908
+ } else {
6909
+ blocks.push({ ...pb, rowEnd: row - 1 });
6910
+ }
6911
+ }
6912
+ for (let i = 0; i < rowRuns.length; i++) {
6913
+ if (!matched.has(i)) {
6914
+ const rr = rowRuns[i];
6915
+ nextPending.push({ colStart: rr.colStart, colEnd: rr.colEnd, rowStart: row });
6916
+ }
6917
+ }
6918
+ pending.length = 0;
6919
+ for (const p of nextPending) pending.push(p);
6920
+ }
6921
+ if (blocks.length === 0) return [];
6922
+ const sorted = blocks.slice().sort((a, b) => {
6923
+ const aArea = (a.colEnd - a.colStart + 1) * (a.rowEnd - a.rowStart + 1);
6924
+ const bArea = (b.colEnd - b.colStart + 1) * (b.rowEnd - b.rowStart + 1);
6925
+ return bArea - aArea;
6926
+ });
6927
+ const kept = maxRegions > 0 ? sorted.slice(0, maxRegions) : sorted;
6928
+ return kept.map((block) => ({
6929
+ x: block.colStart / gridWidth,
6930
+ y: block.rowStart / gridHeight,
6931
+ w: (block.colEnd - block.colStart + 1) / gridWidth,
6932
+ h: (block.rowEnd - block.rowStart + 1) / gridHeight
6933
+ }));
6934
+ }
6935
+ function sleep(ms) {
6936
+ return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
6937
+ }
6938
+ function sleepCancellable(ms, signal) {
6939
+ if (signal.aborted) return Promise.resolve();
6940
+ return new Promise((resolve) => {
6941
+ const timer = setTimeout(() => {
6942
+ signal.removeEventListener("abort", onAbort);
6943
+ resolve();
6944
+ }, Math.max(0, ms));
6945
+ const onAbort = () => {
6946
+ clearTimeout(timer);
6947
+ signal.removeEventListener("abort", onAbort);
6948
+ resolve();
6949
+ };
6950
+ signal.addEventListener("abort", onAbort, { once: true });
6951
+ });
6952
+ }
5765
6953
  function bindAddonActions(api, addonId, catalog) {
5766
6954
  const out = {};
5767
6955
  for (const action of Object.keys(catalog)) {
@@ -5783,11 +6971,24 @@ exports.AddonAutoUpdateSchema = index.AddonAutoUpdateSchema;
5783
6971
  exports.AddonListItemSchema = index.AddonListItemSchema;
5784
6972
  exports.AddonPageDeclarationSchema = index.AddonPageDeclarationSchema;
5785
6973
  exports.AddonPageInfoSchema = index.AddonPageInfoSchema;
6974
+ exports.AdoptionAdoptInputSchema = index.AdoptInputSchema;
6975
+ exports.AdoptionAdoptResultSchema = index.AdoptResultSchema;
6976
+ exports.AdoptionFilterSchema = index.AdoptionFilterSchema;
6977
+ exports.AdoptionGetCandidateInputSchema = index.GetCandidateInputSchema;
6978
+ exports.AdoptionListCandidatesInputSchema = index.ListCandidatesInputSchema;
6979
+ exports.AdoptionListCandidatesOutputSchema = index.ListCandidatesOutputSchema;
6980
+ exports.AdoptionReleaseInputSchema = index.ReleaseInputSchema;
6981
+ exports.AdoptionStatusSchema = index.AdoptionStatusSchema;
5786
6982
  exports.AgentLoadSummarySchema = index.AgentLoadSummarySchema;
6983
+ exports.AirQualitySensorStatusSchema = index.AirQualitySensorStatusSchema;
6984
+ exports.AlarmArmModeSchema = index.AlarmArmModeSchema;
6985
+ exports.AlarmPanelStatusSchema = index.AlarmPanelStatusSchema;
6986
+ exports.AlarmStateSchema = index.AlarmStateSchema;
5787
6987
  exports.AlertSchema = index.AlertSchema;
5788
6988
  exports.AlertSeveritySchema = index.AlertSeveritySchema;
5789
6989
  exports.AlertSourceSchema = index.AlertSourceSchema;
5790
6990
  exports.AlertStatusSchema = index.AlertStatusSchema;
6991
+ exports.AmbientLightSensorStatusSchema = index.AmbientLightSensorStatusSchema;
5791
6992
  exports.ApiKeyRecordSchema = index.ApiKeyRecordSchema;
5792
6993
  exports.ApiKeySummarySchema = index.ApiKeySummarySchema;
5793
6994
  exports.ArchiveEntrySchema = index.ArchiveEntrySchema;
@@ -5800,6 +7001,7 @@ exports.AudioClassificationLabelSchema = index.AudioClassificationLabelSchema;
5800
7001
  exports.AudioClassificationResultSchema = index.AudioClassificationResultSchema;
5801
7002
  exports.AudioCodecInfoSchema = index.AudioCodecInfoSchema;
5802
7003
  exports.AudioDecodeSessionConfigSchema = index.AudioDecodeSessionConfigSchema;
7004
+ exports.AudioEncodeSchema = index.AudioEncodeSchema;
5803
7005
  exports.AudioEncodeSessionConfigSchema = index.AudioEncodeSessionConfigSchema;
5804
7006
  exports.AudioEncodedChunkSchema = index.AudioEncodedChunkSchema;
5805
7007
  exports.AudioEventSchema = index.AudioEventSchema;
@@ -5810,23 +7012,39 @@ exports.AudioMetricsSnapshotSchema = index.AudioMetricsSnapshotSchema;
5810
7012
  exports.AudioPcmChunkSchema = index.AudioPcmChunkSchema;
5811
7013
  exports.AuthResultSchema = index.AuthResultSchema;
5812
7014
  exports.AutoUpdateSettingsSchema = index.AutoUpdateSettingsSchema;
7015
+ exports.AutomationControlStatusSchema = index.AutomationControlStatusSchema;
5813
7016
  exports.AvailableIntegrationTypeSchema = index.AvailableIntegrationTypeSchema;
5814
7017
  exports.BATTERY_DEVICE_PROFILE = index.BATTERY_DEVICE_PROFILE;
5815
7018
  exports.BackupDestinationInfoSchema = index.BackupDestinationInfoSchema;
5816
7019
  exports.BackupEntrySchema = index.BackupEntrySchema;
5817
7020
  exports.BatteryStatusSchema = index.BatteryStatusSchema;
7021
+ exports.BinaryStatusSchema = index.BinaryStatusSchema;
5818
7022
  exports.BoundingBoxSchema = index.BoundingBoxSchema;
5819
7023
  exports.BrightnessStatusSchema = index.BrightnessStatusSchema;
7024
+ exports.BrokerAddInputSchema = index.AddInputSchema;
5820
7025
  exports.BrokerAudioClientSchema = index.BrokerAudioClientSchema;
5821
7026
  exports.BrokerClientsSchema = index.BrokerClientsSchema;
5822
7027
  exports.BrokerConnectionDetailsSchema = index.BrokerConnectionDetailsSchema;
7028
+ exports.BrokerConsumerAttributionSchema = index.BrokerConsumerAttributionSchema;
7029
+ exports.BrokerConsumerKindSchema = index.BrokerConsumerKindSchema;
5823
7030
  exports.BrokerDecodedClientSchema = index.BrokerDecodedClientSchema;
7031
+ exports.BrokerEncodedClientSchema = index.BrokerEncodedClientSchema;
7032
+ exports.BrokerGetStateInputSchema = index.GetStateInputSchema;
5824
7033
  exports.BrokerInfoSchema = index.BrokerInfoSchema;
7034
+ exports.BrokerProviderInfoSchema = index.BrokerProviderInfoSchema;
7035
+ exports.BrokerPublishInputSchema = index.PublishInputSchema;
7036
+ exports.BrokerRegistryStatusSchema = index.RegistryStatusSchema;
5825
7037
  exports.BrokerRtspClientSchema = index.BrokerRtspClientSchema;
5826
7038
  exports.BrokerStatsSchema = index.BrokerStatsSchema;
7039
+ exports.BrokerStatusEnum = index.BrokerStatusEnum;
5827
7040
  exports.BrokerStatusSchema = index.BrokerStatusSchema;
7041
+ exports.BrokerSubscribeInputSchema = index.SubscribeInputSchema;
7042
+ exports.BrokerSubscribeResultSchema = index.SubscribeResultSchema;
7043
+ exports.BrokerTestConnectionResultSchema = index.TestConnectionResultSchema;
7044
+ exports.BrokerUnsubscribeInputSchema = index.UnsubscribeInputSchema;
5828
7045
  exports.CAM_PROFILE_ORDER = index.CAM_PROFILE_ORDER;
5829
7046
  exports.CamProfileSchema = index.CamProfileSchema;
7047
+ exports.CamStreamDescriptorSchema = index.CamStreamDescriptorSchema;
5830
7048
  exports.CamStreamKindSchema = index.CamStreamKindSchema;
5831
7049
  exports.CamStreamResolutionSchema = index.CamStreamResolutionSchema;
5832
7050
  exports.CameraCredentialsSchema = index.CameraCredentialsSchema;
@@ -5834,17 +7052,29 @@ exports.CameraCredentialsStatusSchema = index.CameraCredentialsStatusSchema;
5834
7052
  exports.CameraMetricsSchema = index.CameraMetricsSchema;
5835
7053
  exports.CameraMetricsWithDeviceIdSchema = index.CameraMetricsWithDeviceIdSchema;
5836
7054
  exports.CameraStreamSchema = index.CameraStreamSchema;
7055
+ exports.CandidateQueryFilterSchema = index.CandidateQueryFilterSchema;
5837
7056
  exports.CapScopeSchema = index.CapScopeSchema;
5838
7057
  exports.CapabilityBindingsSchema = index.CapabilityBindingsSchema;
7058
+ exports.CarbonMonoxideStatusSchema = index.CarbonMonoxideStatusSchema;
5839
7059
  exports.ChargingStatus = index.ChargingStatus;
5840
7060
  exports.ClientNetworkStatsSchema = index.ClientNetworkStatsSchema;
7061
+ exports.ClimateControlStatusSchema = index.ClimateControlStatusSchema;
5841
7062
  exports.ClusterAddonNodeDeploymentSchema = index.ClusterAddonNodeDeploymentSchema;
5842
7063
  exports.ClusterAddonStatusEntrySchema = index.ClusterAddonStatusEntrySchema;
5843
7064
  exports.CollectionColumnSchema = index.CollectionColumnSchema;
5844
7065
  exports.CollectionIndexSchema = index.CollectionIndexSchema;
7066
+ exports.ColorStatusSchema = index.ColorStatusSchema;
5845
7067
  exports.ConfigEntrySchema = index.ConfigEntrySchema;
5846
7068
  exports.ConfigSectionWithValuesSchema = index.ConfigSectionWithValuesSchema;
5847
7069
  exports.ConfigTabDeclarationSchema = index.ConfigTabDeclarationSchema;
7070
+ exports.ConnectivityStatusSchema = index.ConnectivityStatusSchema;
7071
+ exports.ConsumableItemSchema = index.ConsumableItemSchema;
7072
+ exports.ConsumablesStatusSchema = index.ConsumablesStatusSchema;
7073
+ exports.ContactStatusSchema = index.ContactStatusSchema;
7074
+ exports.ControlKindSchema = index.ControlKindSchema;
7075
+ exports.ControlStatusSchema = index.ControlStatusSchema;
7076
+ exports.CoverStateSchema = index.CoverStateSchema;
7077
+ exports.CoverStatusSchema = index.CoverStatusSchema;
5848
7078
  exports.CreateApiKeyInputSchema = index.CreateApiKeyInputSchema;
5849
7079
  exports.CreateApiKeyResultSchema = index.CreateApiKeyResultSchema;
5850
7080
  exports.CreateIntegrationInputSchema = index.CreateIntegrationInputSchema;
@@ -5881,36 +7111,65 @@ exports.DoorbellPressEventSchema = index.DoorbellPressEventSchema;
5881
7111
  exports.DoorbellStatusSchema = index.DoorbellStatusSchema;
5882
7112
  exports.EmbeddingInfoSchema = index.EmbeddingInfoSchema;
5883
7113
  exports.EmbeddingResultSchema = index.EmbeddingResultSchema;
7114
+ exports.EncodeProfileSchema = index.EncodeProfileSchema;
5884
7115
  exports.EncodedPacketSchema = index.EncodedPacketSchema;
5885
7116
  exports.EnrichedWidgetMetadataSchema = index.EnrichedWidgetMetadataSchema;
7117
+ exports.EnumSensorDateTimeFormatSchema = index.EnumSensorDateTimeFormatSchema;
7118
+ exports.EnumSensorStatusSchema = index.EnumSensorStatusSchema;
7119
+ exports.EventEmitterStatusSchema = index.EventEmitterStatusSchema;
7120
+ exports.EventFireSchema = index.EventFireSchema;
5886
7121
  exports.EventItemSchema = index.EventItemSchema;
5887
7122
  exports.EventKindSchema = index.EventKindSchema;
5888
7123
  exports.ExportSetupFieldSchema = index.ExportSetupFieldSchema;
5889
7124
  exports.ExportSetupSchema = index.ExportSetupSchema;
5890
7125
  exports.ExposedDeviceSchema = index.ExposedDeviceSchema;
5891
7126
  exports.ExposedResourceSchema = index.ExposedResourceSchema;
7127
+ exports.FanControlStatusSchema = index.FanControlStatusSchema;
7128
+ exports.FanDirectionSchema = index.FanDirectionSchema;
5892
7129
  exports.FeatureManifestSchema = index.FeatureManifestSchema;
5893
7130
  exports.FeatureProbeStatusSchema = index.FeatureProbeStatusSchema;
7131
+ exports.FloodStatusSchema = index.FloodStatusSchema;
5894
7132
  exports.FrameHandleFormatSchema = index.FrameHandleFormatSchema;
5895
7133
  exports.FrameHandleSchema = index.FrameHandleSchema;
5896
7134
  exports.FrameInputSchema = index.FrameInputSchema;
7135
+ exports.GasStatusSchema = index.GasStatusSchema;
5897
7136
  exports.GetStreamWithCodecInputSchema = index.GetStreamWithCodecInputSchema;
5898
7137
  exports.GlobalMetricsSchema = index.GlobalMetricsSchema;
5899
7138
  exports.HWACCEL_OPTIONS = index.HWACCEL_OPTIONS;
5900
7139
  exports.HealthStatusSchema = index.HealthStatusSchema;
5901
7140
  exports.HistoryPointSchema = index.HistoryPointSchema;
5902
7141
  exports.HistoryResolutionEnum = index.HistoryResolutionEnum;
7142
+ exports.HumidifierStatusSchema = index.HumidifierStatusSchema;
7143
+ exports.HumiditySensorStatusSchema = index.HumiditySensorStatusSchema;
7144
+ exports.HvacModeSchema = index.HvacModeSchema;
7145
+ exports.ImageStatusSchema = index.ImageStatusSchema;
5903
7146
  exports.InstalledPackageSchema = index.InstalledPackageSchema;
5904
7147
  exports.IntegrationLiteSchema = index.IntegrationLiteSchema;
5905
7148
  exports.IntegrationWithStateSchema = index.IntegrationWithStateSchema;
5906
7149
  exports.IntercomAbilitySchema = index.IntercomAbilitySchema;
5907
7150
  exports.IntercomStatusSchema = index.IntercomStatusSchema;
7151
+ exports.LawnMowerActivitySchema = index.LawnMowerActivitySchema;
7152
+ exports.LawnMowerControlStatusSchema = index.LawnMowerControlStatusSchema;
5908
7153
  exports.LocationStatSchema = index.LocationStatSchema;
7154
+ exports.LockControlStatusSchema = index.LockControlStatusSchema;
7155
+ exports.LockStateSchema = index.LockStateSchema;
5909
7156
  exports.LogEntrySchema = index.LogEntrySchema;
5910
7157
  exports.LogLevelSchema = index.LogLevelSchema;
5911
7158
  exports.LogStreamEntrySchema = index.LogStreamEntrySchema;
5912
7159
  exports.MODEL_FORMATS = index.MODEL_FORMATS;
7160
+ exports.MaskGridDimsSchema = index.MaskGridDimsSchema;
7161
+ exports.MaskGridShapeSchema = index.MaskGridShapeSchema;
7162
+ exports.MaskLineShapeSchema = index.MaskLineShapeSchema;
7163
+ exports.MaskPointSchema = index.MaskPointSchema;
7164
+ exports.MaskPolygonShapeSchema = index.MaskPolygonShapeSchema;
7165
+ exports.MaskPolygonVerticesSchema = index.MaskPolygonVerticesSchema;
7166
+ exports.MaskRectShapeSchema = index.MaskRectShapeSchema;
7167
+ exports.MaskShapeKindSchema = index.MaskShapeKindSchema;
7168
+ exports.MaskShapeSchema = index.MaskShapeSchema;
5913
7169
  exports.MediaFileSchema = index.MediaFileSchema;
7170
+ exports.MediaPlayerRepeatSchema = index.MediaPlayerRepeatSchema;
7171
+ exports.MediaPlayerStateSchema = index.MediaPlayerStateSchema;
7172
+ exports.MediaPlayerStatusSchema = index.MediaPlayerStatusSchema;
5914
7173
  exports.MeshPeerSchema = index.MeshPeerSchema;
5915
7174
  exports.MeshStatusSchema = index.MeshStatusSchema;
5916
7175
  exports.MethodAccessSchema = index.MethodAccessSchema;
@@ -5925,10 +7184,12 @@ exports.MotionTriggerRuntimeStateSchema = index.MotionTriggerRuntimeStateSchema;
5925
7184
  exports.MotionTriggerStatusSchema = index.MotionTriggerStatusSchema;
5926
7185
  exports.MotionZoneOptionsSchema = index.MotionZoneOptionsSchema;
5927
7186
  exports.MotionZonePatchSchema = index.MotionZonePatchSchema;
7187
+ exports.MotionZoneRegionSchema = index.MotionZoneRegionSchema;
5928
7188
  exports.MotionZoneStatusSchema = index.MotionZoneStatusSchema;
5929
7189
  exports.MqttBrokerStatusSchema = index.StatusSchema;
5930
7190
  exports.NativeDetectionSchema = index.NativeDetectionSchema;
5931
7191
  exports.NativeObjectClassEnum = index.NativeObjectClassEnum;
7192
+ exports.NativeObjectDetectionRuntimeStateSchema = index.NativeObjectDetectionRuntimeStateSchema;
5932
7193
  exports.NativeObjectDetectionStatusSchema = index.NativeObjectDetectionStatusSchema;
5933
7194
  exports.NetworkAccessStatusSchema = index.NetworkAccessStatusSchema;
5934
7195
  exports.NetworkAddressSchema = index.NetworkAddressSchema;
@@ -5936,6 +7197,8 @@ exports.NetworkEndpointSchema = index.NetworkEndpointSchema;
5936
7197
  exports.NotificationHistoryEntrySchema = index.NotificationHistoryEntrySchema;
5937
7198
  exports.NotificationRuleSchema = index.NotificationRuleSchema;
5938
7199
  exports.NotificationSchema = index.NotificationSchema;
7200
+ exports.NotifierStatusSchema = index.NotifierStatusSchema;
7201
+ exports.NumericSensorStatusSchema = index.NumericSensorStatusSchema;
5939
7202
  exports.OauthIntegrationDescriptorSchema = index.OauthIntegrationDescriptorSchema;
5940
7203
  exports.ObjectEventSchema = index.ObjectEventSchema;
5941
7204
  exports.OrchestratorMetricsSchema = index.OrchestratorMetricsSchema;
@@ -5951,6 +7214,9 @@ exports.PackageVersionInfoSchema = index.PackageVersionInfoSchema;
5951
7214
  exports.PasskeySummarySchema = index.PasskeySummarySchema;
5952
7215
  exports.PcmSampleFormatSchema = index.PcmSampleFormatSchema;
5953
7216
  exports.PerScopeBreakdownSchema = index.PerScopeBreakdownSchema;
7217
+ exports.PickStreamPreferencesSchema = index.PickStreamPreferencesSchema;
7218
+ exports.PickStreamRequirementsSchema = index.PickStreamRequirementsSchema;
7219
+ exports.PickedCamStreamSchema = index.PickedCamStreamSchema;
5954
7220
  exports.PipelineAssignmentSchema = index.PipelineAssignmentSchema;
5955
7221
  exports.PipelineDefaultStepSchema = index.PipelineDefaultStepSchema;
5956
7222
  exports.PipelineEngineChoiceSchema = index.PipelineEngineChoiceSchema;
@@ -5958,6 +7224,15 @@ exports.PipelineRunResultBridge = index.PipelineRunResultBridge;
5958
7224
  exports.PipelineStepInputSchema = index.PipelineStepInputSchema;
5959
7225
  exports.PlaceholderReasonSchema = index.PlaceholderReasonSchema;
5960
7226
  exports.PolygonPointSchema = index.PolygonPointSchema;
7227
+ exports.PowerMeterStatusSchema = index.PowerMeterStatusSchema;
7228
+ exports.PresenceStatusSchema = index.PresenceStatusSchema;
7229
+ exports.PressureSensorStatusSchema = index.PressureSensorStatusSchema;
7230
+ exports.PrivacyMaskOptionsSchema = index.PrivacyMaskOptionsSchema;
7231
+ exports.PrivacyMaskPatchSchema = index.PrivacyMaskPatchSchema;
7232
+ exports.PrivacyMaskRegionSchema = index.PrivacyMaskRegionSchema;
7233
+ exports.PrivacyMaskShapeSchema = index.PrivacyMaskShapeSchema;
7234
+ exports.PrivacyMaskStatusSchema = index.PrivacyMaskStatusSchema;
7235
+ exports.ProfileRtspEntrySchema = index.ProfileRtspEntrySchema;
5961
7236
  exports.ProfileSlotSchema = index.ProfileSlotSchema;
5962
7237
  exports.ProfileSlotStatusSchema = index.ProfileSlotStatusSchema;
5963
7238
  exports.ProviderStatusSchema = index.ProviderStatusSchema;
@@ -5970,6 +7245,20 @@ exports.PtzPositionSchema = index.PtzPositionSchema;
5970
7245
  exports.PtzPresetSchema = index.PtzPresetSchema;
5971
7246
  exports.PtzStatusSchema = index.PtzStatusSchema;
5972
7247
  exports.QueryFilterSchema = index.QueryFilterSchema;
7248
+ exports.RawStateResultSchema = index.RawStateResultSchema;
7249
+ exports.RecordingAvailabilitySchema = index.RecordingAvailabilitySchema;
7250
+ exports.RecordingConfigSchema = index.RecordingConfigSchema;
7251
+ exports.RecordingDeviceUsageSchema = index.RecordingDeviceUsageSchema;
7252
+ exports.RecordingLocationUsageSchema = index.RecordingLocationUsageSchema;
7253
+ exports.RecordingManifestSchema = index.RecordingManifestSchema;
7254
+ exports.RecordingModeSchema = index.RecordingModeSchema;
7255
+ exports.RecordingRangeSchema = index.RecordingRangeSchema;
7256
+ exports.RecordingRetentionSchema = index.RecordingRetentionSchema;
7257
+ exports.RecordingRuleSchema = index.RecordingRuleSchema;
7258
+ exports.RecordingScheduleSchema = index.RecordingScheduleSchema;
7259
+ exports.RecordingStatusSchema = index.RecordingStatusSchema;
7260
+ exports.RecordingStorageUsageSchema = index.RecordingStorageUsageSchema;
7261
+ exports.RecordingWeekdaySchema = index.RecordingWeekdaySchema;
5973
7262
  exports.RegisteredStreamSchema = index.RegisteredStreamSchema;
5974
7263
  exports.ReportMotionInputSchema = index.ReportMotionInputSchema;
5975
7264
  exports.RtpSourceSchema = index.RtpSourceSchema;
@@ -5978,11 +7267,11 @@ exports.RunnerCameraConfigSchema = index.RunnerCameraConfigSchema;
5978
7267
  exports.RunnerCameraDeviceUIFields = index.RunnerCameraDeviceUIFields;
5979
7268
  exports.RunnerLocalLoadSchema = index.RunnerLocalLoadSchema;
5980
7269
  exports.RunnerLocalMetricsSchema = index.RunnerLocalMetricsSchema;
5981
- exports.STORAGE_LOCATION_CARDINALITY = index.STORAGE_LOCATION_CARDINALITY;
7270
+ exports.SOURCE_INFO_METADATA_KEY = index.SOURCE_INFO_METADATA_KEY;
5982
7271
  exports.ScopedTokenSchema = index.ScopedTokenSchema;
5983
7272
  exports.ScopedTokenSummarySchema = index.ScopedTokenSummarySchema;
7273
+ exports.ScriptRunnerStatusSchema = index.ScriptRunnerStatusSchema;
5984
7274
  exports.SearchResultSchema = index.SearchResultSchema;
5985
- exports.SegmentSchema = index.SegmentSchema;
5986
7275
  exports.SendEmailInputSchema = index.SendEmailInputSchema;
5987
7276
  exports.SendEmailResultSchema = index.SendEmailResultSchema;
5988
7277
  exports.SettingsPatchSchema = index.SettingsPatchSchema;
@@ -5990,8 +7279,10 @@ exports.SettingsRecordSchema = index.SettingsRecordSchema;
5990
7279
  exports.SettingsSchemaWithValuesSchema = index.SettingsSchemaWithValuesSchema;
5991
7280
  exports.SettingsUpdateResultSchema = index.SettingsUpdateResultSchema;
5992
7281
  exports.ShmRingStatsSchema = index.ShmRingStatsSchema;
7282
+ exports.SmokeStatusSchema = index.SmokeStatusSchema;
5993
7283
  exports.SmtpStatusSchema = index.SmtpStatusSchema;
5994
7284
  exports.SnapshotImageSchema = index.SnapshotImageSchema;
7285
+ exports.SourceInfoSchema = index.SourceInfoSchema;
5995
7286
  exports.SpatialDetectionSchema = index.SpatialDetectionSchema;
5996
7287
  exports.SsoBridgeClaimsSchema = index.SsoBridgeClaimsSchema;
5997
7288
  exports.StartEmbeddedInputSchema = index.StartEmbeddedInputSchema;
@@ -6002,6 +7293,7 @@ exports.StorageBeginUploadInputSchema = index.BeginUploadInputSchema;
6002
7293
  exports.StorageBeginUploadResultSchema = index.BeginUploadResultSchema;
6003
7294
  exports.StorageEndDownloadInputSchema = index.EndDownloadInputSchema;
6004
7295
  exports.StorageFinalizeUploadInputSchema = index.FinalizeUploadInputSchema;
7296
+ exports.StorageLocationDeclarationSchema = index.StorageLocationDeclarationSchema;
6005
7297
  exports.StorageLocationRefSchema = index.StorageLocationRefSchema;
6006
7298
  exports.StorageLocationSchema = index.StorageLocationSchema;
6007
7299
  exports.StorageLocationTypeSchema = index.StorageLocationTypeSchema;
@@ -6009,6 +7301,7 @@ exports.StorageProviderInfoSchema = index.ProviderInfoSchema;
6009
7301
  exports.StorageReadChunkInputSchema = index.ReadChunkInputSchema;
6010
7302
  exports.StorageTestLocationResultSchema = index.TestLocationResultSchema;
6011
7303
  exports.StorageWriteChunkInputSchema = index.WriteChunkInputSchema;
7304
+ exports.StreamCodecSchema = index.StreamCodecSchema;
6012
7305
  exports.StreamFormatSchema = index.StreamFormatSchema;
6013
7306
  exports.StreamInfoSchema = index.StreamInfoSchema;
6014
7307
  exports.StreamNetworkStatsSchema = index.StreamNetworkStatsSchema;
@@ -6026,7 +7319,10 @@ exports.SubscribeFramesInputSchema = index.SubscribeFramesInputSchema;
6026
7319
  exports.SubscribeFramesResultSchema = index.SubscribeFramesResultSchema;
6027
7320
  exports.SwitchStatusSchema = index.SwitchStatusSchema;
6028
7321
  exports.SystemMetricsSchema = index.SystemMetricsSchema;
6029
- exports.TestConnectionResultSchema = index.TestConnectionResultSchema;
7322
+ exports.TamperStatusSchema = index.TamperStatusSchema;
7323
+ exports.TankStatusSchema = index.TankStatusSchema;
7324
+ exports.TemperatureSensorStatusSchema = index.TemperatureSensorStatusSchema;
7325
+ exports.TestConnectionResultSchema = index.TestConnectionResultSchema$1;
6030
7326
  exports.ToastSchema = index.ToastSchema;
6031
7327
  exports.TokenScopeSchema = index.TokenScopeSchema;
6032
7328
  exports.TopologyNodeSchema = index.TopologyNodeSchema;
@@ -6036,12 +7332,22 @@ exports.TrackSchema = index.TrackSchema;
6036
7332
  exports.TrackStateSchema = index.TrackStateSchema;
6037
7333
  exports.TrackedDetectionSchema = index.TrackedDetectionSchema;
6038
7334
  exports.TurnServerSchema = index.TurnServerSchema;
7335
+ exports.UnifiedBrokerInfoSchema = index.BrokerInfoSchema$1;
6039
7336
  exports.UpdateIntegrationInputSchema = index.UpdateIntegrationInputSchema;
7337
+ exports.UpdateStatusSchema = index.UpdateStatusSchema;
6040
7338
  exports.UpdateUserInputSchema = index.UpdateUserInputSchema;
6041
7339
  exports.UserRecordSchema = index.UserRecordSchema;
6042
7340
  exports.UserSummarySchema = index.UserSummarySchema;
7341
+ exports.VacuumControlStatusSchema = index.VacuumControlStatusSchema;
7342
+ exports.VacuumStateSchema = index.VacuumStateSchema;
7343
+ exports.ValveStateSchema = index.ValveStateSchema;
7344
+ exports.ValveStatusSchema = index.ValveStatusSchema;
7345
+ exports.VibrationStatusSchema = index.VibrationStatusSchema;
7346
+ exports.VideoEncodeSchema = index.VideoEncodeSchema;
6043
7347
  exports.WELL_KNOWN_TABS = index.WELL_KNOWN_TABS;
6044
7348
  exports.WELL_KNOWN_TAB_MAP = index.WELL_KNOWN_TAB_MAP;
7349
+ exports.WaterHeaterStatusSchema = index.WaterHeaterStatusSchema;
7350
+ exports.WeatherStatusSchema = index.WeatherStatusSchema;
6045
7351
  exports.WebrtcStreamChoiceSchema = index.WebrtcStreamChoiceSchema;
6046
7352
  exports.WebrtcStreamTargetSchema = index.WebrtcStreamTargetSchema;
6047
7353
  exports.WidgetHostEnum = index.WidgetHostEnum;
@@ -6067,19 +7373,36 @@ exports.addonWidgetsSourceCapability = index.addonWidgetsSourceCapability;
6067
7373
  exports.addonsCapability = index.addonsCapability;
6068
7374
  exports.adminUiCapability = index.adminUiCapability;
6069
7375
  exports.advancedNotifierCapability = index.advancedNotifierCapability;
7376
+ exports.airQualitySensorCapability = index.airQualitySensorCapability;
7377
+ exports.alarmPanelCapability = index.alarmPanelCapability;
6070
7378
  exports.alertsCapability = index.alertsCapability;
7379
+ exports.ambientLightSensorCapability = index.ambientLightSensorCapability;
6071
7380
  exports.audioAnalysisCapability = index.audioAnalysisCapability;
6072
7381
  exports.audioAnalyzerCapability = index.audioAnalyzerCapability;
6073
7382
  exports.audioCodecCapability = index.audioCodecCapability;
6074
7383
  exports.audioMetricsCapability = index.audioMetricsCapability;
6075
7384
  exports.authProviderCapability = index.authProviderCapability;
7385
+ exports.automationControlCapability = index.automationControlCapability;
6076
7386
  exports.backupCapability = index.backupCapability;
6077
7387
  exports.batteryCapability = index.batteryCapability;
7388
+ exports.binaryCapability = index.binaryCapability;
6078
7389
  exports.brightnessCapability = index.brightnessCapability;
7390
+ exports.brokerCapability = index.brokerCapability;
7391
+ exports.buttonCapability = index.buttonCapability;
6079
7392
  exports.cameraCredentialsCapability = index.cameraCredentialsCapability;
7393
+ exports.cameraPipelineConfigCapability = index.cameraPipelineConfigCapability;
6080
7394
  exports.cameraStreamsCapability = index.cameraStreamsCapability;
7395
+ exports.carbonMonoxideCapability = index.carbonMonoxideCapability;
7396
+ exports.climateControlCapability = index.climateControlCapability;
7397
+ exports.colorCapability = index.colorCapability;
7398
+ exports.connectivityCapability = index.connectivityCapability;
7399
+ exports.consumablesCapability = index.consumablesCapability;
7400
+ exports.contactCapability = index.contactCapability;
7401
+ exports.controlCapability = index.controlCapability;
7402
+ exports.coverCapability = index.coverCapability;
6081
7403
  exports.decoderCapability = index.decoderCapability;
6082
7404
  exports.detectionPipelineCapability = index.detectionPipelineCapability;
7405
+ exports.deviceAdoptionCapability = index.deviceAdoptionCapability;
6083
7406
  exports.deviceDiscoveryCapability = index.deviceDiscoveryCapability;
6084
7407
  exports.deviceExportCapability = index.deviceExportCapability;
6085
7408
  exports.deviceManagerCapability = index.deviceManagerCapability;
@@ -6090,19 +7413,35 @@ exports.deviceStateCapability = index.deviceStateCapability;
6090
7413
  exports.deviceStatusCapability = index.deviceStatusCapability;
6091
7414
  exports.doorbellCapability = index.doorbellCapability;
6092
7415
  exports.embeddingEncoderCapability = index.embeddingEncoderCapability;
7416
+ exports.encodeProfileFromStreamShape = index.encodeProfileFromStreamShape;
7417
+ exports.enumSensorCapability = index.enumSensorCapability;
6093
7418
  exports.errMsg = index.errMsg;
6094
7419
  exports.event = index.event;
7420
+ exports.eventEmitterCapability = index.eventEmitterCapability;
6095
7421
  exports.eventsCapability = index.eventsCapability;
6096
7422
  exports.expandCapMethods = index.expandCapMethods;
7423
+ exports.extractSourceInfoFromMetadata = index.extractSourceInfoFromMetadata;
7424
+ exports.fanControlCapability = index.fanControlCapability;
6097
7425
  exports.featureProbeCapability = index.featureProbeCapability;
7426
+ exports.floodCapability = index.floodCapability;
7427
+ exports.gasCapability = index.gasCapability;
6098
7428
  exports.getAudioMacroClassIds = index.getAudioMacroClassIds;
7429
+ exports.humidifierCapability = index.humidifierCapability;
7430
+ exports.humiditySensorCapability = index.humiditySensorCapability;
6099
7431
  exports.hydrateSchema = index.hydrateSchema;
7432
+ exports.imageCapability = index.imageCapability;
6100
7433
  exports.integrationsCapability = index.integrationsCapability;
6101
7434
  exports.intercomCapability = index.intercomCapability;
6102
7435
  exports.isDeviceConfigCap = index.isDeviceConfigCap;
7436
+ exports.lawnMowerControlCapability = index.lawnMowerControlCapability;
6103
7437
  exports.localNetworkCapability = index.localNetworkCapability;
7438
+ exports.lockControlCapability = index.lockControlCapability;
6104
7439
  exports.logDestinationCapability = index.logDestinationCapability;
7440
+ exports.makeProfileBrokerId = index.makeProfileBrokerId;
7441
+ exports.makeSourceBrokerId = index.makeSourceBrokerId;
6105
7442
  exports.mapAudioLabelToMacro = index.mapAudioLabelToMacro;
7443
+ exports.mediaPlayerCapability = index.mediaPlayerCapability;
7444
+ exports.mergeSourceInfo = index.mergeSourceInfo;
6106
7445
  exports.meshNetworkCapability = index.meshNetworkCapability;
6107
7446
  exports.method = index.method;
6108
7447
  exports.metricsProviderCapability = index.metricsProviderCapability;
@@ -6115,40 +7454,66 @@ exports.nativeObjectDetectionCapability = index.nativeObjectDetectionCapability;
6115
7454
  exports.networkAccessCapability = index.networkAccessCapability;
6116
7455
  exports.networkQualityCapability = index.networkQualityCapability;
6117
7456
  exports.nodesCapability = index.nodesCapability;
7457
+ exports.normalizeUnit = index.normalizeUnit;
6118
7458
  exports.notificationOutputCapability = index.notificationOutputCapability;
7459
+ exports.notifierCapability = index.notifierCapability;
7460
+ exports.numericSensorCapability = index.numericSensorCapability;
6119
7461
  exports.oauthIntegrationCapability = index.oauthIntegrationCapability;
6120
7462
  exports.osdCapability = index.osdCapability;
7463
+ exports.parseProfileBrokerId = index.parseProfileBrokerId;
6121
7464
  exports.pipelineAnalyticsCapability = index.pipelineAnalyticsCapability;
6122
7465
  exports.pipelineExecutorCapability = index.pipelineExecutorCapability;
6123
7466
  exports.pipelineOrchestratorCapability = index.pipelineOrchestratorCapability;
6124
7467
  exports.pipelineRunnerCapability = index.pipelineRunnerCapability;
6125
7468
  exports.platformProbeCapability = index.platformProbeCapability;
7469
+ exports.powerMeterCapability = index.powerMeterCapability;
7470
+ exports.presenceCapability = index.presenceCapability;
7471
+ exports.pressureSensorCapability = index.pressureSensorCapability;
7472
+ exports.privacyMaskCapability = index.privacyMaskCapability;
6126
7473
  exports.ptzAutotrackCapability = index.ptzAutotrackCapability;
6127
7474
  exports.ptzCapability = index.ptzCapability;
6128
7475
  exports.rebootCapability = index.rebootCapability;
6129
7476
  exports.recordingCapability = index.recordingCapability;
6130
- exports.recordingEngineCapability = index.recordingEngineCapability;
6131
7477
  exports.resolveDeviceProfile = index.resolveDeviceProfile;
6132
7478
  exports.restreamerCapability = index.restreamerCapability;
7479
+ exports.scriptRunnerCapability = index.scriptRunnerCapability;
7480
+ exports.selectAssignedProfileSlots = index.selectAssignedProfileSlots;
6133
7481
  exports.settingsStoreCapability = index.settingsStoreCapability;
7482
+ exports.smokeCapability = index.smokeCapability;
6134
7483
  exports.smtpProviderCapability = index.smtpProviderCapability;
6135
7484
  exports.snapshotCapability = index.snapshotCapability;
6136
7485
  exports.snapshotProviderCapability = index.snapshotProviderCapability;
6137
7486
  exports.ssoBridgeCapability = index.ssoBridgeCapability;
6138
7487
  exports.storageCapability = index.storageCapability;
7488
+ exports.storageEvictableCapability = index.storageEvictableCapability;
6139
7489
  exports.storageProviderCapability = index.storageProviderCapability;
6140
7490
  exports.streamBrokerCapability = index.streamBrokerCapability;
7491
+ exports.streamCatalogCapability = index.streamCatalogCapability;
6141
7492
  exports.streamParamsCapability = index.streamParamsCapability;
6142
7493
  exports.streamingEngineCapability = index.streamingEngineCapability;
6143
7494
  exports.switchCapability = index.switchCapability;
7495
+ exports.synthesizeSourceInfo = index.synthesizeSourceInfo;
6144
7496
  exports.systemCapability = index.systemCapability;
7497
+ exports.tamperCapability = index.tamperCapability;
7498
+ exports.temperatureSensorCapability = index.temperatureSensorCapability;
6145
7499
  exports.toastCapability = index.toastCapability;
6146
7500
  exports.turnProviderCapability = index.turnProviderCapability;
7501
+ exports.updateCapability = index.updateCapability;
6147
7502
  exports.userManagementCapability = index.userManagementCapability;
6148
7503
  exports.userPasskeysCapability = index.userPasskeysCapability;
7504
+ exports.vacuumControlCapability = index.vacuumControlCapability;
7505
+ exports.valveCapability = index.valveCapability;
7506
+ exports.vibrationCapability = index.vibrationCapability;
7507
+ exports.waterHeaterCapability = index.waterHeaterCapability;
7508
+ exports.weatherCapability = index.weatherCapability;
6149
7509
  exports.webrtcCapability = index.webrtcCapability;
6150
7510
  exports.webrtcClientHintsSchema = index.webrtcClientHintsSchema;
6151
7511
  exports.webrtcSessionCapability = index.webrtcSessionCapability;
7512
+ exports.wiringAddonHealthSchema = index.wiringAddonHealthSchema;
7513
+ exports.wiringHealthSnapshotSchema = index.wiringHealthSnapshotSchema;
7514
+ exports.wiringNodeHealthSchema = index.wiringNodeHealthSchema;
7515
+ exports.wiringProbeKindSchema = index.wiringProbeKindSchema;
7516
+ exports.wiringProbeResultSchema = index.wiringProbeResultSchema;
6152
7517
  exports.zoneAnalyticsCapability = index.zoneAnalyticsCapability;
6153
7518
  exports.zoneRulesCapability = index.zoneRulesCapability;
6154
7519
  exports.zonesCapability = index.zonesCapability;
@@ -6163,9 +7528,9 @@ exports.CAP_NAMES_WITH_STATUS = CAP_NAMES_WITH_STATUS;
6163
7528
  exports.CAP_PROVIDER_KIND_MAP = CAP_PROVIDER_KIND_MAP;
6164
7529
  exports.COCO_80_LABELS = COCO_80_LABELS;
6165
7530
  exports.COCO_TO_MACRO = COCO_TO_MACRO;
7531
+ exports.DATAPLANE_SECRET_HEADER = DATAPLANE_SECRET_HEADER;
6166
7532
  exports.DEFAULT_ADDON_PLACEMENT = DEFAULT_ADDON_PLACEMENT;
6167
7533
  exports.DEFAULT_FEATURES = DEFAULT_FEATURES;
6168
- exports.DEFAULT_LOCATION_SUBDIRS = DEFAULT_LOCATION_SUBDIRS;
6169
7534
  exports.DEFAULT_RETENTION = DEFAULT_RETENTION;
6170
7535
  exports.DEVICE_CAP_NAMES = DEVICE_CAP_NAMES;
6171
7536
  exports.DEVICE_TYPE_INFO = DEVICE_TYPE_INFO;
@@ -6189,25 +7554,29 @@ exports.ReadinessRegistry = ReadinessRegistry;
6189
7554
  exports.ReadinessTimeoutError = ReadinessTimeoutError;
6190
7555
  exports.RingBuffer = RingBuffer;
6191
7556
  exports.SCOPE_PRESETS = SCOPE_PRESETS;
6192
- exports.STORAGE_LOCATION_TYPES = STORAGE_LOCATION_TYPES;
6193
7557
  exports.STREAM_PROFILE_META = STREAM_PROFILE_META;
6194
7558
  exports.STREAM_QUALITY_LABELS = STREAM_QUALITY_LABELS;
6195
7559
  exports.SUB_DETECTION_TYPES = SUB_DETECTION_TYPES;
6196
7560
  exports.SYSTEM_CAP_NAMES = SYSTEM_CAP_NAMES;
6197
7561
  exports.SystemMirror = SystemMirror;
7562
+ exports.TIMEZONES = TIMEZONES;
7563
+ exports.applyTransform = applyTransform;
6198
7564
  exports.asBoolean = asBoolean;
6199
7565
  exports.asJsonArray = asJsonArray;
6200
7566
  exports.asJsonObject = asJsonObject;
6201
7567
  exports.asNumber = asNumber;
6202
7568
  exports.asString = asString;
6203
7569
  exports.autoAssignProfiles = autoAssignProfiles;
7570
+ exports.bestLocationMatch = bestLocationMatch;
6204
7571
  exports.bindAddonActions = bindAddonActions;
6205
7572
  exports.buildAddonRouteProvider = buildAddonRouteProvider;
6206
7573
  exports.buildStreamParamsConfigSchema = buildStreamParamsConfigSchema;
7574
+ exports.cellsToRects = cellsToRects;
6207
7575
  exports.classifyStream = classifyStream;
6208
7576
  exports.classifyStreams = classifyStreams;
6209
7577
  exports.cosineSimilarity = cosineSimilarity;
6210
7578
  exports.createDeviceProxy = createDeviceProxy;
7579
+ exports.createDurableState = createDurableState;
6211
7580
  exports.createEvent = createEvent;
6212
7581
  exports.createLazyTrpcSource = createLazyTrpcSource;
6213
7582
  exports.createMirrorSource = createMirrorSource;
@@ -6216,16 +7585,21 @@ exports.createSliceHandle = createSliceHandle;
6216
7585
  exports.createSystemProxy = createSystemProxy;
6217
7586
  exports.customAction = customAction;
6218
7587
  exports.defineCustomActions = defineCustomActions;
7588
+ exports.deviceCustomAction = deviceCustomAction;
6219
7589
  exports.emitDownForOwnedCaps = emitDownForOwnedCaps;
6220
7590
  exports.emitReadiness = emitReadiness;
7591
+ exports.enumerateSchemaFields = enumerateSchemaFields;
6221
7592
  exports.evaluateZoneRules = evaluateZoneRules;
7593
+ exports.findTimezone = findTimezone;
6222
7594
  exports.formatForBackend = formatForBackend;
6223
7595
  exports.formatForRuntime = formatForRuntime;
7596
+ exports.getByPath = getByPath;
6224
7597
  exports.getCapsByProviderKind = getCapsByProviderKind;
6225
7598
  exports.hfModelUrl = hfModelUrl;
6226
7599
  exports.isAgentOnlyPlacement = isAgentOnlyPlacement;
6227
7600
  exports.isDeployableToAgent = isDeployableToAgent;
6228
7601
  exports.isEvent = isEvent;
7602
+ exports.locationSimilarity = locationSimilarity;
6229
7603
  exports.maskUrlCredentials = maskUrlCredentials;
6230
7604
  exports.normalizeAddonInitResult = normalizeAddonInitResult;
6231
7605
  exports.parseCameraStreamConfig = parseCameraStreamConfig;
@@ -6233,8 +7607,10 @@ exports.parseJsonArray = parseJsonArray;
6233
7607
  exports.parseJsonObject = parseJsonObject;
6234
7608
  exports.parseJsonUnknown = parseJsonUnknown;
6235
7609
  exports.parseStreamParamsFormPatch = parseStreamParamsFormPatch;
7610
+ exports.pickPreferredRtspEntry = pickPreferredRtspEntry;
6236
7611
  exports.pythonScriptForBackend = pythonScriptForBackend;
6237
7612
  exports.readinessKey = readinessKey;
7613
+ exports.rectsToCells = rectsToCells;
6238
7614
  exports.requiresPython = requiresPython;
6239
7615
  exports.resolveAddonExecution = resolveAddonExecution;
6240
7616
  exports.resolveAddonGroup = resolveAddonGroup;
@@ -6245,6 +7621,9 @@ exports.resolveModelFormat = resolveModelFormat;
6245
7621
  exports.resolveRunnerId = resolveRunnerId;
6246
7622
  exports.runInferenceStep = runInferenceStep;
6247
7623
  exports.scopeKey = scopeKey;
7624
+ exports.setByPath = setByPath;
7625
+ exports.sleep = sleep;
7626
+ exports.sleepCancellable = sleepCancellable;
6248
7627
  exports.streamPixels = streamPixels;
6249
7628
  exports.streamQualityLabel = streamQualityLabel;
6250
7629
  exports.toDeviceSummary = toDeviceSummary;