@camstack/types 0.1.40 → 0.1.42

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 (302) hide show
  1. package/dist/addon/base-addon.d.ts +12 -0
  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/advanced-notifier.cap.d.ts +4 -0
  8. package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
  9. package/dist/capabilities/air-quality-sensor.cap.d.ts +56 -0
  10. package/dist/capabilities/air-quality-sensor.cap.d.ts.map +1 -0
  11. package/dist/capabilities/alarm-panel.cap.d.ts +154 -0
  12. package/dist/capabilities/alarm-panel.cap.d.ts.map +1 -0
  13. package/dist/capabilities/ambient-light-sensor.cap.d.ts +39 -0
  14. package/dist/capabilities/ambient-light-sensor.cap.d.ts.map +1 -0
  15. package/dist/capabilities/automation-control.cap.d.ts +65 -0
  16. package/dist/capabilities/automation-control.cap.d.ts.map +1 -0
  17. package/dist/capabilities/battery.cap.d.ts +30 -1
  18. package/dist/capabilities/battery.cap.d.ts.map +1 -1
  19. package/dist/capabilities/binary.cap.d.ts +40 -0
  20. package/dist/capabilities/binary.cap.d.ts.map +1 -0
  21. package/dist/capabilities/brightness.cap.d.ts +3 -2
  22. package/dist/capabilities/brightness.cap.d.ts.map +1 -1
  23. package/dist/capabilities/broker.cap.d.ts +291 -0
  24. package/dist/capabilities/broker.cap.d.ts.map +1 -0
  25. package/dist/capabilities/button.cap.d.ts +27 -0
  26. package/dist/capabilities/button.cap.d.ts.map +1 -0
  27. package/dist/capabilities/camera-credentials.cap.d.ts +1 -0
  28. package/dist/capabilities/camera-credentials.cap.d.ts.map +1 -1
  29. package/dist/capabilities/camera-streams.cap.d.ts +147 -10
  30. package/dist/capabilities/camera-streams.cap.d.ts.map +1 -1
  31. package/dist/capabilities/capability-definition.d.ts +15 -0
  32. package/dist/capabilities/capability-definition.d.ts.map +1 -1
  33. package/dist/capabilities/carbon-monoxide.cap.d.ts +33 -0
  34. package/dist/capabilities/carbon-monoxide.cap.d.ts.map +1 -0
  35. package/dist/capabilities/climate-control.cap.d.ts +183 -0
  36. package/dist/capabilities/climate-control.cap.d.ts.map +1 -0
  37. package/dist/capabilities/color.cap.d.ts +186 -0
  38. package/dist/capabilities/color.cap.d.ts.map +1 -0
  39. package/dist/capabilities/connectivity.cap.d.ts +37 -0
  40. package/dist/capabilities/connectivity.cap.d.ts.map +1 -0
  41. package/dist/capabilities/consumables.cap.d.ts +105 -0
  42. package/dist/capabilities/consumables.cap.d.ts.map +1 -0
  43. package/dist/capabilities/contact.cap.d.ts +41 -0
  44. package/dist/capabilities/contact.cap.d.ts.map +1 -0
  45. package/dist/capabilities/control.cap.d.ts +167 -0
  46. package/dist/capabilities/control.cap.d.ts.map +1 -0
  47. package/dist/capabilities/cover.cap.d.ts +104 -0
  48. package/dist/capabilities/cover.cap.d.ts.map +1 -0
  49. package/dist/capabilities/custom-actions.d.ts +6 -0
  50. package/dist/capabilities/custom-actions.d.ts.map +1 -1
  51. package/dist/capabilities/decoder.cap.d.ts +1 -1
  52. package/dist/capabilities/device-adoption.cap.d.ts +203 -0
  53. package/dist/capabilities/device-adoption.cap.d.ts.map +1 -0
  54. package/dist/capabilities/device-discovery.cap.d.ts +44 -143
  55. package/dist/capabilities/device-discovery.cap.d.ts.map +1 -1
  56. package/dist/capabilities/device-manager.cap.d.ts +469 -0
  57. package/dist/capabilities/device-manager.cap.d.ts.map +1 -1
  58. package/dist/capabilities/device-ops.cap.d.ts +30 -0
  59. package/dist/capabilities/device-ops.cap.d.ts.map +1 -1
  60. package/dist/capabilities/device-provider.cap.d.ts +36 -0
  61. package/dist/capabilities/device-provider.cap.d.ts.map +1 -1
  62. package/dist/capabilities/device-status.cap.d.ts +1 -0
  63. package/dist/capabilities/device-status.cap.d.ts.map +1 -1
  64. package/dist/capabilities/doorbell.cap.d.ts +1 -0
  65. package/dist/capabilities/doorbell.cap.d.ts.map +1 -1
  66. package/dist/capabilities/enum-sensor.cap.d.ts +60 -0
  67. package/dist/capabilities/enum-sensor.cap.d.ts.map +1 -0
  68. package/dist/capabilities/event-emitter.cap.d.ts +79 -0
  69. package/dist/capabilities/event-emitter.cap.d.ts.map +1 -0
  70. package/dist/capabilities/fan-control.cap.d.ts +100 -0
  71. package/dist/capabilities/fan-control.cap.d.ts.map +1 -0
  72. package/dist/capabilities/feature-probe.cap.d.ts +1 -0
  73. package/dist/capabilities/feature-probe.cap.d.ts.map +1 -1
  74. package/dist/capabilities/filesystem-browse.cap.d.ts +39 -0
  75. package/dist/capabilities/filesystem-browse.cap.d.ts.map +1 -0
  76. package/dist/capabilities/flood.cap.d.ts +37 -0
  77. package/dist/capabilities/flood.cap.d.ts.map +1 -0
  78. package/dist/capabilities/gas.cap.d.ts +34 -0
  79. package/dist/capabilities/gas.cap.d.ts.map +1 -0
  80. package/dist/capabilities/humidifier.cap.d.ts +82 -0
  81. package/dist/capabilities/humidifier.cap.d.ts.map +1 -0
  82. package/dist/capabilities/humidity-sensor.cap.d.ts +43 -0
  83. package/dist/capabilities/humidity-sensor.cap.d.ts.map +1 -0
  84. package/dist/capabilities/image.cap.d.ts +44 -0
  85. package/dist/capabilities/image.cap.d.ts.map +1 -0
  86. package/dist/capabilities/index.d.ts +97 -12
  87. package/dist/capabilities/index.d.ts.map +1 -1
  88. package/dist/capabilities/integrations.cap.d.ts +12 -0
  89. package/dist/capabilities/integrations.cap.d.ts.map +1 -1
  90. package/dist/capabilities/intercom.cap.d.ts +49 -9
  91. package/dist/capabilities/intercom.cap.d.ts.map +1 -1
  92. package/dist/capabilities/lawn-mower-control.cap.d.ts +83 -0
  93. package/dist/capabilities/lawn-mower-control.cap.d.ts.map +1 -0
  94. package/dist/capabilities/lock-control.cap.d.ts +92 -0
  95. package/dist/capabilities/lock-control.cap.d.ts.map +1 -0
  96. package/dist/capabilities/media-player.cap.d.ts +201 -0
  97. package/dist/capabilities/media-player.cap.d.ts.map +1 -0
  98. package/dist/capabilities/motion-trigger.cap.d.ts +1 -0
  99. package/dist/capabilities/motion-trigger.cap.d.ts.map +1 -1
  100. package/dist/capabilities/motion-zones.cap.d.ts +1 -0
  101. package/dist/capabilities/motion-zones.cap.d.ts.map +1 -1
  102. package/dist/capabilities/native-object-detection.cap.d.ts +1 -0
  103. package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -1
  104. package/dist/capabilities/network-quality.cap.d.ts +5 -0
  105. package/dist/capabilities/network-quality.cap.d.ts.map +1 -1
  106. package/dist/capabilities/notifier.cap.d.ts +173 -0
  107. package/dist/capabilities/notifier.cap.d.ts.map +1 -0
  108. package/dist/capabilities/numeric-sensor.cap.d.ts +52 -0
  109. package/dist/capabilities/numeric-sensor.cap.d.ts.map +1 -0
  110. package/dist/capabilities/osd.cap.d.ts +1 -0
  111. package/dist/capabilities/osd.cap.d.ts.map +1 -1
  112. package/dist/capabilities/pipeline-analytics.cap.d.ts +69 -22
  113. package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -1
  114. package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
  115. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +1 -1
  116. package/dist/capabilities/pipeline-runner.cap.d.ts +2 -2
  117. package/dist/capabilities/platform-probe.cap.d.ts +25 -0
  118. package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
  119. package/dist/capabilities/power-meter.cap.d.ts +65 -0
  120. package/dist/capabilities/power-meter.cap.d.ts.map +1 -0
  121. package/dist/capabilities/presence.cap.d.ts +79 -0
  122. package/dist/capabilities/presence.cap.d.ts.map +1 -0
  123. package/dist/capabilities/pressure-sensor.cap.d.ts +43 -0
  124. package/dist/capabilities/pressure-sensor.cap.d.ts.map +1 -0
  125. package/dist/capabilities/privacy-mask.cap.d.ts +1 -0
  126. package/dist/capabilities/privacy-mask.cap.d.ts.map +1 -1
  127. package/dist/capabilities/ptz-autotrack.cap.d.ts +1 -0
  128. package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -1
  129. package/dist/capabilities/ptz.cap.d.ts +1 -0
  130. package/dist/capabilities/ptz.cap.d.ts.map +1 -1
  131. package/dist/capabilities/reboot.cap.d.ts +1 -0
  132. package/dist/capabilities/reboot.cap.d.ts.map +1 -1
  133. package/dist/capabilities/recording.cap.d.ts +367 -32
  134. package/dist/capabilities/recording.cap.d.ts.map +1 -1
  135. package/dist/capabilities/restreamer.cap.d.ts +2 -2
  136. package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
  137. package/dist/capabilities/schemas/streaming-shared.d.ts +64 -1
  138. package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -1
  139. package/dist/capabilities/script-runner.cap.d.ts +62 -0
  140. package/dist/capabilities/script-runner.cap.d.ts.map +1 -0
  141. package/dist/capabilities/settings-store.cap.d.ts +25 -0
  142. package/dist/capabilities/settings-store.cap.d.ts.map +1 -1
  143. package/dist/capabilities/smoke.cap.d.ts +38 -0
  144. package/dist/capabilities/smoke.cap.d.ts.map +1 -0
  145. package/dist/capabilities/snapshot-provider.cap.d.ts +1 -1
  146. package/dist/capabilities/snapshot.cap.d.ts +1 -0
  147. package/dist/capabilities/snapshot.cap.d.ts.map +1 -1
  148. package/dist/capabilities/storage-evictable.cap.d.ts +54 -0
  149. package/dist/capabilities/storage-evictable.cap.d.ts.map +1 -0
  150. package/dist/capabilities/storage-provider.cap.d.ts +46 -186
  151. package/dist/capabilities/storage-provider.cap.d.ts.map +1 -1
  152. package/dist/capabilities/storage.cap.d.ts +41 -226
  153. package/dist/capabilities/storage.cap.d.ts.map +1 -1
  154. package/dist/capabilities/stream-broker.cap.d.ts +323 -25
  155. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
  156. package/dist/capabilities/stream-catalog.cap.d.ts +3 -0
  157. package/dist/capabilities/stream-catalog.cap.d.ts.map +1 -1
  158. package/dist/capabilities/stream-params.cap.d.ts +27 -26
  159. package/dist/capabilities/stream-params.cap.d.ts.map +1 -1
  160. package/dist/capabilities/switch.cap.d.ts +1 -0
  161. package/dist/capabilities/switch.cap.d.ts.map +1 -1
  162. package/dist/capabilities/tamper.cap.d.ts +33 -0
  163. package/dist/capabilities/tamper.cap.d.ts.map +1 -0
  164. package/dist/capabilities/temperature-sensor.cap.d.ts +51 -0
  165. package/dist/capabilities/temperature-sensor.cap.d.ts.map +1 -0
  166. package/dist/capabilities/update.cap.d.ts +49 -0
  167. package/dist/capabilities/update.cap.d.ts.map +1 -0
  168. package/dist/capabilities/vacuum-control.cap.d.ts +229 -0
  169. package/dist/capabilities/vacuum-control.cap.d.ts.map +1 -0
  170. package/dist/capabilities/valve.cap.d.ts +93 -0
  171. package/dist/capabilities/valve.cap.d.ts.map +1 -0
  172. package/dist/capabilities/vibration.cap.d.ts +33 -0
  173. package/dist/capabilities/vibration.cap.d.ts.map +1 -0
  174. package/dist/capabilities/videoclips.cap.d.ts +77 -0
  175. package/dist/capabilities/videoclips.cap.d.ts.map +1 -0
  176. package/dist/capabilities/water-heater.cap.d.ts +78 -0
  177. package/dist/capabilities/water-heater.cap.d.ts.map +1 -0
  178. package/dist/capabilities/weather.cap.d.ts +76 -0
  179. package/dist/capabilities/weather.cap.d.ts.map +1 -0
  180. package/dist/capabilities/webrtc-session.cap.d.ts +95 -1
  181. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  182. package/dist/constants.d.ts +0 -2
  183. package/dist/constants.d.ts.map +1 -1
  184. package/dist/device/base-device-provider.d.ts +11 -0
  185. package/dist/device/base-device-provider.d.ts.map +1 -1
  186. package/dist/device/base-device.d.ts +52 -0
  187. package/dist/device/base-device.d.ts.map +1 -1
  188. package/dist/device/device-context.d.ts +29 -0
  189. package/dist/device/device-context.d.ts.map +1 -1
  190. package/dist/device/device-link-transform.d.ts +6 -0
  191. package/dist/device/device-link-transform.d.ts.map +1 -0
  192. package/dist/device/device-management.d.ts +116 -4
  193. package/dist/device/device-management.d.ts.map +1 -1
  194. package/dist/device/device-type.d.ts +214 -3
  195. package/dist/device/device-type.d.ts.map +1 -1
  196. package/dist/device/device.d.ts +25 -0
  197. package/dist/device/device.d.ts.map +1 -1
  198. package/dist/device/index.d.ts +5 -1
  199. package/dist/device/index.d.ts.map +1 -1
  200. package/dist/device/path-util.d.ts +13 -0
  201. package/dist/device/path-util.d.ts.map +1 -0
  202. package/dist/device/schema-fields.d.ts +12 -0
  203. package/dist/device/schema-fields.d.ts.map +1 -0
  204. package/dist/device/source-info.d.ts +87 -0
  205. package/dist/device/source-info.d.ts.map +1 -0
  206. package/dist/device/system-mirror.d.ts +6 -2
  207. package/dist/device/system-mirror.d.ts.map +1 -1
  208. package/dist/encode-profile.d.ts +126 -0
  209. package/dist/encode-profile.d.ts.map +1 -0
  210. package/dist/enums/event-category.d.ts +64 -6
  211. package/dist/enums/event-category.d.ts.map +1 -1
  212. package/dist/generated/addon-api.d.ts +12722 -8080
  213. package/dist/generated/addon-api.d.ts.map +1 -1
  214. package/dist/generated/cap-status-types.d.ts +85 -1
  215. package/dist/generated/cap-status-types.d.ts.map +1 -1
  216. package/dist/generated/capability-router-map.d.ts +139 -7
  217. package/dist/generated/capability-router-map.d.ts.map +1 -1
  218. package/dist/generated/device-local-state.d.ts +117 -0
  219. package/dist/generated/device-local-state.d.ts.map +1 -1
  220. package/dist/generated/device-proxy.d.ts +126 -5
  221. package/dist/generated/device-proxy.d.ts.map +1 -1
  222. package/dist/generated/method-access-map.d.ts +1 -1
  223. package/dist/generated/method-access-map.d.ts.map +1 -1
  224. package/dist/generated/provider-kind-map.d.ts +1 -1
  225. package/dist/generated/provider-kind-map.d.ts.map +1 -1
  226. package/dist/generated/system-proxy.d.ts +10 -8
  227. package/dist/generated/system-proxy.d.ts.map +1 -1
  228. package/dist/{index-C2zzIDdX.mjs → index-BxWo3b49.mjs} +4714 -1113
  229. package/dist/index-BxWo3b49.mjs.map +1 -0
  230. package/dist/{index-DnpdVFKv.js → index-CGMPfVaT.js} +4321 -720
  231. package/dist/index-CGMPfVaT.js.map +1 -0
  232. package/dist/index.d.ts +22 -3
  233. package/dist/index.d.ts.map +1 -1
  234. package/dist/index.js +1384 -116
  235. package/dist/index.js.map +1 -1
  236. package/dist/index.mjs +1698 -430
  237. package/dist/index.mjs.map +1 -1
  238. package/dist/interfaces/addon-data-plane.d.ts +76 -0
  239. package/dist/interfaces/addon-data-plane.d.ts.map +1 -0
  240. package/dist/interfaces/addon.d.ts +60 -0
  241. package/dist/interfaces/addon.d.ts.map +1 -1
  242. package/dist/interfaces/advanced-notifier.d.ts +4 -0
  243. package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
  244. package/dist/interfaces/capability.d.ts +42 -1
  245. package/dist/interfaces/capability.d.ts.map +1 -1
  246. package/dist/interfaces/config-ui.d.ts +70 -6
  247. package/dist/interfaces/config-ui.d.ts.map +1 -1
  248. package/dist/interfaces/device-capabilities/camera.d.ts +2 -1
  249. package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -1
  250. package/dist/interfaces/event-bus.d.ts +49 -3
  251. package/dist/interfaces/event-bus.d.ts.map +1 -1
  252. package/dist/interfaces/kernel-abstractions.d.ts +10 -1
  253. package/dist/interfaces/kernel-abstractions.d.ts.map +1 -1
  254. package/dist/interfaces/network-quality.d.ts +8 -0
  255. package/dist/interfaces/network-quality.d.ts.map +1 -1
  256. package/dist/interfaces/pipeline-executor-capability.d.ts +2 -2
  257. package/dist/interfaces/pipeline-orchestrator-capability.d.ts +2 -1
  258. package/dist/interfaces/pipeline-orchestrator-capability.d.ts.map +1 -1
  259. package/dist/interfaces/pipeline-runner-capability.d.ts +7 -0
  260. package/dist/interfaces/pipeline-runner-capability.d.ts.map +1 -1
  261. package/dist/interfaces/recording-config-migrate.d.ts +13 -0
  262. package/dist/interfaces/recording-config-migrate.d.ts.map +1 -0
  263. package/dist/interfaces/recording-config.d.ts +209 -0
  264. package/dist/interfaces/recording-config.d.ts.map +1 -0
  265. package/dist/interfaces/rtp-egress.d.ts +2 -3
  266. package/dist/interfaces/rtp-egress.d.ts.map +1 -1
  267. package/dist/interfaces/storage-location-declaration.d.ts +34 -0
  268. package/dist/interfaces/storage-location-declaration.d.ts.map +1 -0
  269. package/dist/interfaces/storage-location.d.ts +19 -74
  270. package/dist/interfaces/storage-location.d.ts.map +1 -1
  271. package/dist/interfaces/storage.d.ts +15 -4
  272. package/dist/interfaces/storage.d.ts.map +1 -1
  273. package/dist/interfaces/stream-broker.d.ts +18 -3
  274. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  275. package/dist/interfaces/timezones.d.ts +59 -0
  276. package/dist/interfaces/timezones.d.ts.map +1 -0
  277. package/dist/node.d.ts +3 -0
  278. package/dist/node.d.ts.map +1 -1
  279. package/dist/node.js +50 -8
  280. package/dist/node.js.map +1 -1
  281. package/dist/node.mjs +51 -9
  282. package/dist/node.mjs.map +1 -1
  283. package/dist/storage/filesystem-storage-provider.d.ts +2 -1
  284. package/dist/storage/filesystem-storage-provider.d.ts.map +1 -1
  285. package/dist/stream-selection.d.ts +85 -0
  286. package/dist/stream-selection.d.ts.map +1 -0
  287. package/dist/types/detection.d.ts +3 -3
  288. package/dist/types/io.d.ts +1 -1
  289. package/dist/types/io.d.ts.map +1 -1
  290. package/dist/util/location-match.d.ts +15 -0
  291. package/dist/util/location-match.d.ts.map +1 -0
  292. package/dist/utils/canonical-hash.d.ts +20 -0
  293. package/dist/utils/canonical-hash.d.ts.map +1 -0
  294. package/dist/utils/export-reconciler.d.ts +101 -0
  295. package/dist/utils/export-reconciler.d.ts.map +1 -0
  296. package/dist/utils/sleep.d.ts +36 -0
  297. package/dist/utils/sleep.d.ts.map +1 -0
  298. package/package.json +1 -1
  299. package/dist/capabilities/recording-engine.cap.d.ts +0 -477
  300. package/dist/capabilities/recording-engine.cap.d.ts.map +0 -1
  301. package/dist/index-C2zzIDdX.mjs.map +0 -1
  302. package/dist/index-DnpdVFKv.js.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-DnpdVFKv.js");
3
+ const index = require("./index-CGMPfVaT.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";
@@ -157,7 +162,9 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
157
162
  EventCategory2["StreamParamsChanged"] = "stream-params.changed";
158
163
  EventCategory2["DeviceStateChanged"] = "device.state-changed";
159
164
  EventCategory2["BatteryOnStatusChanged"] = "battery.onStatusChanged";
165
+ EventCategory2["BatteryOnWakeStarted"] = "battery.onWakeStarted";
160
166
  EventCategory2["DoorbellOnPressed"] = "doorbell.onPressed";
167
+ EventCategory2["EventEmitted"] = "event-emitter.event";
161
168
  EventCategory2["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
162
169
  EventCategory2["ClusterTopologySnapshot"] = "cluster.topology-snapshot";
163
170
  EventCategory2["MetricsNodeResourcesSnapshot"] = "metrics.node-resources-snapshot";
@@ -243,6 +250,27 @@ function emitReadiness(bus, params) {
243
250
  }
244
251
  ));
245
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
+ }
246
274
  class BaseAddon {
247
275
  _ctx = null;
248
276
  _config;
@@ -486,12 +514,18 @@ class BaseAddon {
486
514
  // ── Lifecycle event emission ────────────────────────────────────────────
487
515
  emitLifecycle(category, data) {
488
516
  try {
489
- this._ctx?.eventBus.emit({
490
- 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()}`,
491
521
  timestamp: /* @__PURE__ */ new Date(),
492
- 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" },
493
523
  category,
494
- 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 ?? {} }
495
529
  });
496
530
  } catch {
497
531
  }
@@ -564,6 +598,44 @@ class BaseAddon {
564
598
  }
565
599
  this._config = resolved;
566
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
+ }
567
639
  /**
568
640
  * Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
569
641
  * transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
@@ -689,6 +761,97 @@ function buildCapturingReply(envelope) {
689
761
  };
690
762
  return wrapper;
691
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
+ }
826
+ const ALL_DAYS = [0, 1, 2, 3, 4, 5, 6];
827
+ const ALL_DAY_START = "00:00";
828
+ const ALL_DAY_END = "23:59";
829
+ function bandFromSchedule(schedule, mode, config) {
830
+ const days = schedule.kind === "timeOfDay" && schedule.days ? schedule.days : [...ALL_DAYS];
831
+ const start = schedule.kind === "timeOfDay" ? schedule.start : ALL_DAY_START;
832
+ const end = schedule.kind === "timeOfDay" ? schedule.end : ALL_DAY_END;
833
+ if (mode === "continuous") {
834
+ return { days, start, end, mode };
835
+ }
836
+ const eventsBand = { days, start, end, mode };
837
+ return {
838
+ ...eventsBand,
839
+ ...config.triggers ? { triggers: config.triggers } : {},
840
+ ...config.preBufferSec !== void 0 ? { preBufferSec: config.preBufferSec } : {},
841
+ ...config.postBufferSec !== void 0 ? { postBufferSec: config.postBufferSec } : {}
842
+ };
843
+ }
844
+ function migrateConfigToBands(config) {
845
+ if (config.bands) {
846
+ return config.bands;
847
+ }
848
+ if (!config.enabled || config.mode === "off") {
849
+ return [];
850
+ }
851
+ const schedules = config.schedules ?? (config.schedule ? [config.schedule] : [{ kind: "always" }]);
852
+ const bandMode = config.mode === "continuous" ? "continuous" : "events";
853
+ return schedules.map((schedule) => bandFromSchedule(schedule, bandMode, config));
854
+ }
692
855
  class ReadinessTimeoutError extends Error {
693
856
  capName;
694
857
  scope;
@@ -1084,34 +1247,7 @@ function emitDownForOwnedCaps(registry, owned) {
1084
1247
  registry.emitDown(capName, scope);
1085
1248
  }
1086
1249
  }
1087
- const STORAGE_LOCATION_TYPES = [
1088
- "data",
1089
- "media",
1090
- "recordings",
1091
- "recordings-high",
1092
- "recordings-low",
1093
- "recordings-clips",
1094
- "event-images",
1095
- "models",
1096
- "addons-data",
1097
- "cache",
1098
- "logs",
1099
- "backups"
1100
- ];
1101
- const DEFAULT_LOCATION_SUBDIRS = {
1102
- "data": "db",
1103
- "media": "media",
1104
- "recordings": "recordings",
1105
- "recordings-high": "recordings-high",
1106
- "recordings-low": "recordings-low",
1107
- "recordings-clips": "recordings-clips",
1108
- "event-images": "event-images",
1109
- "models": "models",
1110
- "addons-data": "addons-data",
1111
- "cache": "/tmp/camstack-cache",
1112
- "logs": "logs",
1113
- "backups": "backups"
1114
- };
1250
+ const DATAPLANE_SECRET_HEADER = "x-camstack-dataplane-secret";
1115
1251
  const STREAM_QUALITY_LABELS = {
1116
1252
  high: "High",
1117
1253
  mid: "Mid",
@@ -1159,12 +1295,12 @@ function toStreamSourceEntry(stream) {
1159
1295
  function isString(v) {
1160
1296
  return typeof v === "string";
1161
1297
  }
1162
- function isRecord(v) {
1298
+ function isRecord$1(v) {
1163
1299
  return typeof v === "object" && v !== null && !Array.isArray(v);
1164
1300
  }
1165
1301
  function parseStreamEntry(v) {
1166
1302
  if (isString(v) && v.trim()) return { url: v };
1167
- if (isRecord(v) && isString(v["url"]) && v["url"].trim()) {
1303
+ if (isRecord$1(v) && isString(v["url"]) && v["url"].trim()) {
1168
1304
  return {
1169
1305
  url: v["url"],
1170
1306
  label: isString(v["label"]) ? v["label"] : void 0
@@ -1225,6 +1361,51 @@ const DEFAULT_FEATURES = {
1225
1361
  };
1226
1362
  const SUB_DETECTION_TYPES = ["face", "plate"];
1227
1363
  const RECOGNITION_TYPES = ["face", "plate", "clip", "custom"];
1364
+ function pickPreferredRtspEntry(entries, pref, deviceId, options = {}) {
1365
+ if (entries.length === 0) return null;
1366
+ const prefix = `${deviceId}/`;
1367
+ const toPicked = (e) => ({
1368
+ brokerId: e.brokerId,
1369
+ profileId: e.brokerId.startsWith(prefix) ? e.brokerId.slice(prefix.length) : e.brokerId,
1370
+ url: e.url,
1371
+ mutedUrl: e.mutedUrl,
1372
+ enabled: e.enabled,
1373
+ ...e.codec !== void 0 ? { codec: e.codec } : {},
1374
+ ...e.resolution !== void 0 ? { resolution: e.resolution } : {}
1375
+ });
1376
+ if (pref !== "auto") {
1377
+ const match = entries.find(
1378
+ (e) => e.enabled && e.url.length > 0 && (e.profile === pref || e.brokerId === `${prefix}${pref}`)
1379
+ );
1380
+ if (match) return toPicked(match);
1381
+ }
1382
+ const eligible = entries.filter((e) => e.enabled && e.url.length > 0);
1383
+ if (eligible.length === 0) return null;
1384
+ const target = options.targetResolution;
1385
+ if (target) {
1386
+ const withRes = eligible.filter((e) => e.resolution !== void 0);
1387
+ if (withRes.length > 0) {
1388
+ const picked = pickClosestResolution(withRes, target);
1389
+ if (picked) return toPicked(picked);
1390
+ }
1391
+ }
1392
+ return toPicked(eligible[0]);
1393
+ }
1394
+ function pickClosestResolution(entries, target) {
1395
+ const targetPixels = target.width * target.height;
1396
+ let bestAbove;
1397
+ let bestBelow;
1398
+ for (const e of entries) {
1399
+ if (e.resolution === void 0) continue;
1400
+ const pixels = e.resolution.width * e.resolution.height;
1401
+ if (pixels >= targetPixels) {
1402
+ if (!bestAbove || pixels < bestAbove.pixels) bestAbove = { entry: e, pixels };
1403
+ } else {
1404
+ if (!bestBelow || pixels > bestBelow.pixels) bestBelow = { entry: e, pixels };
1405
+ }
1406
+ }
1407
+ return bestAbove?.entry ?? bestBelow?.entry;
1408
+ }
1228
1409
  const DEFAULT_RETENTION = {
1229
1410
  cleanupIntervalMs: 60 * 60 * 1e3,
1230
1411
  detectionEventsDays: 30,
@@ -1266,9 +1447,6 @@ const RUNTIME_DEFAULTS = {
1266
1447
  models: "camstack-data/models"
1267
1448
  },
1268
1449
  "providers": [],
1269
- // Recording
1270
- "recording.segmentDurationSeconds": 4,
1271
- "recording.defaultRetentionDays": 30,
1272
1450
  // Streaming ports are addon-specific (go2rtc owns its defaults)
1273
1451
  // FFmpeg
1274
1452
  "ffmpeg.binaryPath": "ffmpeg",
@@ -1936,22 +2114,61 @@ function createRuntimeStateBridge(params) {
1936
2114
  return { ensureFresh, getStatus };
1937
2115
  }
1938
2116
  const DEVICE_LOCAL_STATE_CAPS = {
2117
+ airQualitySensor: index.airQualitySensorCapability,
2118
+ alarmPanel: index.alarmPanelCapability,
2119
+ ambientLightSensor: index.ambientLightSensorCapability,
1939
2120
  audioMetrics: index.audioMetricsCapability,
2121
+ automationControl: index.automationControlCapability,
1940
2122
  battery: index.batteryCapability,
2123
+ binary: index.binaryCapability,
1941
2124
  brightness: index.brightnessCapability,
1942
2125
  cameraStreams: index.cameraStreamsCapability,
2126
+ carbonMonoxide: index.carbonMonoxideCapability,
2127
+ climateControl: index.climateControlCapability,
2128
+ color: index.colorCapability,
2129
+ connectivity: index.connectivityCapability,
2130
+ consumables: index.consumablesCapability,
2131
+ contact: index.contactCapability,
2132
+ control: index.controlCapability,
2133
+ cover: index.coverCapability,
1943
2134
  deviceDiscovery: index.deviceDiscoveryCapability,
1944
2135
  deviceStatus: index.deviceStatusCapability,
1945
2136
  doorbell: index.doorbellCapability,
2137
+ enumSensor: index.enumSensorCapability,
2138
+ eventEmitter: index.eventEmitterCapability,
2139
+ fanControl: index.fanControlCapability,
1946
2140
  featureProbe: index.featureProbeCapability,
2141
+ flood: index.floodCapability,
2142
+ gas: index.gasCapability,
2143
+ humidifier: index.humidifierCapability,
2144
+ humiditySensor: index.humiditySensorCapability,
2145
+ image: index.imageCapability,
2146
+ lawnMowerControl: index.lawnMowerControlCapability,
2147
+ lockControl: index.lockControlCapability,
2148
+ mediaPlayer: index.mediaPlayerCapability,
1947
2149
  motion: index.motionCapability,
1948
2150
  motionTrigger: index.motionTriggerCapability,
1949
2151
  motionZones: index.motionZonesCapability,
1950
2152
  nativeObjectDetection: index.nativeObjectDetectionCapability,
2153
+ notifier: index.notifierCapability,
2154
+ numericSensor: index.numericSensorCapability,
2155
+ powerMeter: index.powerMeterCapability,
2156
+ presence: index.presenceCapability,
2157
+ pressureSensor: index.pressureSensorCapability,
1951
2158
  privacyMask: index.privacyMaskCapability,
1952
2159
  ptzAutotrack: index.ptzAutotrackCapability,
2160
+ scriptRunner: index.scriptRunnerCapability,
2161
+ smoke: index.smokeCapability,
1953
2162
  streamParams: index.streamParamsCapability,
1954
2163
  switch: index.switchCapability,
2164
+ tamper: index.tamperCapability,
2165
+ temperatureSensor: index.temperatureSensorCapability,
2166
+ update: index.updateCapability,
2167
+ vacuumControl: index.vacuumControlCapability,
2168
+ valve: index.valveCapability,
2169
+ vibration: index.vibrationCapability,
2170
+ waterHeater: index.waterHeaterCapability,
2171
+ weather: index.weatherCapability,
1955
2172
  zoneAnalytics: index.zoneAnalyticsCapability,
1956
2173
  zoneRules: index.zoneRulesCapability,
1957
2174
  zones: index.zonesCapability
@@ -2055,6 +2272,16 @@ class BaseDevice {
2055
2272
  * `kernel.devices.setDisabled(id, value)`.
2056
2273
  */
2057
2274
  disabled;
2275
+ /**
2276
+ * Cached materialised `SourceInfo` — either the value persisted under
2277
+ * `metadata.sourceInfo` at construction time, or a synthetic
2278
+ * `{ id: stableId, system: addonId }` for providers that haven't
2279
+ * migrated yet. Lazily populated on first `sourceInfo` read so the
2280
+ * cost of Zod-parsing the meta blob is paid once per device boot.
2281
+ * Invalidated by `updateSourceInfo()` so providers see the new value
2282
+ * back through the getter without a re-fetch from the meta surface.
2283
+ */
2284
+ _sourceInfoCache = null;
2058
2285
  constructor(ctx, schema, options) {
2059
2286
  this.ctx = ctx;
2060
2287
  this.id = ctx.id;
@@ -2095,7 +2322,7 @@ class BaseDevice {
2095
2322
  this.runtimeState = DeviceRuntimeState.fromInitial(initial, writer);
2096
2323
  ctx.bindRuntimeState?.(this.runtimeState);
2097
2324
  ctx.registerNativeCap?.(index.deviceStatusCapability, {});
2098
- const seed = { online: false, lastChangedAt: Date.now() };
2325
+ const seed = { online: true, lastChangedAt: Date.now() };
2099
2326
  this.runtimeState.setCapState("device-status", seed);
2100
2327
  ctx.registerNativeCap?.(index.featureProbeCapability, {});
2101
2328
  const probeSeed = {
@@ -2108,6 +2335,21 @@ class BaseDevice {
2108
2335
  };
2109
2336
  this.runtimeState.setCapState("feature-probe", probeSeed);
2110
2337
  }
2338
+ deviceActions = /* @__PURE__ */ new Map();
2339
+ /** Declare a device custom action + its typed handler. Idempotent per name. */
2340
+ registerDeviceAction(name, spec, handler) {
2341
+ this.deviceActions.set(name, {
2342
+ spec,
2343
+ handler
2344
+ });
2345
+ }
2346
+ /** Invoke a registered device action. Validates input against the spec. */
2347
+ async runDeviceAction(action, input) {
2348
+ const entry = this.deviceActions.get(action);
2349
+ if (!entry) throw new Error(`unknown device action "${action}" on device ${this.id}`);
2350
+ const parsed = entry.spec.input.parse(input);
2351
+ return entry.handler(parsed);
2352
+ }
2111
2353
  async removeDevice() {
2112
2354
  }
2113
2355
  /**
@@ -2124,6 +2366,71 @@ class BaseDevice {
2124
2366
  const next = { online, lastChangedAt: Date.now() };
2125
2367
  this.runtimeState.setCapState("device-status", next);
2126
2368
  }
2369
+ /**
2370
+ * Upstream-system identity + rendering envelope for this device. See
2371
+ * `SourceInfo` for the field contract. Always returns a valid object:
2372
+ * if the persisted `metadata.sourceInfo` blob is absent or fails Zod
2373
+ * validation, falls back to a synthetic `{ id: stableId, system: addonId }`
2374
+ * so providers that haven't migrated keep working without code changes.
2375
+ *
2376
+ * The value is cached after the first read. `updateSourceInfo()`
2377
+ * invalidates the cache so subsequent reads see the new patch. The
2378
+ * returned object is frozen to prevent accidental in-place mutation —
2379
+ * use `updateSourceInfo({ patch })` to change fields.
2380
+ */
2381
+ get sourceInfo() {
2382
+ if (this._sourceInfoCache) return this._sourceInfoCache;
2383
+ const fromMeta = index.extractSourceInfoFromMetadata(this.ctx.deviceMeta.metadata);
2384
+ const resolved = fromMeta ?? index.synthesizeSourceInfo({
2385
+ stableId: this.stableId,
2386
+ addonId: this.ctx.deviceMeta.addonId
2387
+ });
2388
+ this._sourceInfoCache = Object.freeze({ ...resolved });
2389
+ return this._sourceInfoCache;
2390
+ }
2391
+ /**
2392
+ * Convenience accessor for the upstream dispatch key. Equivalent to
2393
+ * `this.sourceInfo.id` — providers use this to keep a
2394
+ * `Map<sourceId, IDevice>` for routing inbound push events.
2395
+ */
2396
+ get sourceId() {
2397
+ return this.sourceInfo.id;
2398
+ }
2399
+ /**
2400
+ * Patch the device's `SourceInfo`. Shallow-merges `patch` over the
2401
+ * current value, persists the merged result under
2402
+ * `metadata.sourceInfo` via the `device-manager.setMetadata` cap, and
2403
+ * emits `EventCategory.DeviceSourceInfoChanged` for live consumers.
2404
+ *
2405
+ * Safe to call from anywhere in the device's lifetime — the call is
2406
+ * idempotent for `undefined` patch values (ignored) and best-effort
2407
+ * for persistence (a transient device-manager error doesn't unwind
2408
+ * the local cache update, so subsequent reads still see the patch).
2409
+ *
2410
+ * Drivers populate this on adoption + on every metadata change push
2411
+ * from the upstream source. Subscribers (UI, export adapters) react
2412
+ * via the `DeviceSourceInfoChanged` event without polling.
2413
+ */
2414
+ async updateSourceInfo(patch) {
2415
+ const next = index.mergeSourceInfo(this.sourceInfo, patch);
2416
+ this._sourceInfoCache = Object.freeze({ ...next });
2417
+ const api = this.ctx.api;
2418
+ const action = api?.deviceManager?.setMetadata;
2419
+ if (action) {
2420
+ try {
2421
+ await action.mutate({
2422
+ deviceId: this.id,
2423
+ patch: { [index.SOURCE_INFO_METADATA_KEY]: next }
2424
+ });
2425
+ } catch {
2426
+ }
2427
+ }
2428
+ this.ctx.eventBus.emit(createEvent(
2429
+ "device.source-info-changed",
2430
+ { type: "device", id: this.stableId },
2431
+ { deviceId: this.id, sourceInfo: next }
2432
+ ));
2433
+ }
2127
2434
  /**
2128
2435
  * Re-publish the device's current `features` array to the persisted
2129
2436
  * meta blob. Drivers call this after a probe finishes when the live
@@ -2374,7 +2681,13 @@ function toDeviceSummary(device, addonId) {
2374
2681
  parentDeviceId: device.parentDeviceId,
2375
2682
  online: device.online,
2376
2683
  features: [...device.features],
2377
- config
2684
+ config,
2685
+ // BaseDevice always resolves sourceInfo (synthetic or persisted).
2686
+ // `IDevice` doesn't declare the field — providers that override
2687
+ // `IDevice` outside the BaseDevice hierarchy stay backwards-
2688
+ // compatible. Read through a structural check so non-BaseDevice
2689
+ // implementations don't blow up.
2690
+ sourceInfo: device.sourceInfo
2378
2691
  };
2379
2692
  }
2380
2693
  class BaseDeviceProvider extends BaseAddon {
@@ -2683,6 +2996,80 @@ function getZodDefault(schema) {
2683
2996
  function humanizeKey(key) {
2684
2997
  return key.replace(/([A-Z])/g, " $1").replace(/[_-]/g, " ").replace(/^\w/, (c) => c.toUpperCase()).trim();
2685
2998
  }
2999
+ function isRecord(x) {
3000
+ return x !== null && typeof x === "object" && !Array.isArray(x);
3001
+ }
3002
+ function getByPath(obj, path) {
3003
+ const parts = path.split(".");
3004
+ let cur = obj;
3005
+ for (const part of parts) {
3006
+ if (!isRecord(cur)) return void 0;
3007
+ cur = cur[part];
3008
+ }
3009
+ return cur;
3010
+ }
3011
+ function setByPath(obj, path, value) {
3012
+ const dotIndex = path.indexOf(".");
3013
+ if (dotIndex === -1) {
3014
+ return { ...obj, [path]: value };
3015
+ }
3016
+ const head = path.slice(0, dotIndex);
3017
+ const tail = path.slice(dotIndex + 1);
3018
+ const child = obj[head];
3019
+ const childObj = isRecord(child) ? child : {};
3020
+ return { ...obj, [head]: setByPath(childObj, tail, value) };
3021
+ }
3022
+ function applyTransform(value, transform) {
3023
+ if (!transform || transform.kind === "identity") return value;
3024
+ if (transform.kind === "enum-map") {
3025
+ const key = String(value);
3026
+ if (Object.prototype.hasOwnProperty.call(transform.mapping, key)) return transform.mapping[key];
3027
+ return transform.fallback ?? null;
3028
+ }
3029
+ if (transform.kind === "linear") {
3030
+ if (typeof value !== "number" || Number.isNaN(value)) return null;
3031
+ let out = value * transform.scale + transform.offset;
3032
+ if (transform.clamp) {
3033
+ const min = transform.clamp[0];
3034
+ const max = transform.clamp[1];
3035
+ out = Math.min(max, Math.max(min, out));
3036
+ }
3037
+ return out;
3038
+ }
3039
+ return value;
3040
+ }
3041
+ function unwrap(schema) {
3042
+ let s = schema;
3043
+ while (s instanceof zod.z.ZodNullable || s instanceof zod.z.ZodOptional || s instanceof zod.z.ZodDefault) {
3044
+ s = s.unwrap();
3045
+ }
3046
+ return s;
3047
+ }
3048
+ function leafKind(schema) {
3049
+ const s = unwrap(schema);
3050
+ if (s instanceof zod.z.ZodEnum) return { kind: "enum", enumValues: s.options };
3051
+ if (s instanceof zod.z.ZodNumber) return { kind: "number" };
3052
+ if (s instanceof zod.z.ZodString) return { kind: "string" };
3053
+ if (s instanceof zod.z.ZodBoolean) return { kind: "boolean" };
3054
+ return null;
3055
+ }
3056
+ function enumerateSchemaFields(schema, prefix = "") {
3057
+ const root = unwrap(schema);
3058
+ if (!(root instanceof zod.z.ZodObject)) return [];
3059
+ const out = [];
3060
+ const shape = root.shape;
3061
+ for (const [key, field] of Object.entries(shape)) {
3062
+ const path = prefix ? `${prefix}.${key}` : key;
3063
+ const inner = unwrap(field);
3064
+ if (inner instanceof zod.z.ZodObject) {
3065
+ out.push(...enumerateSchemaFields(inner, path));
3066
+ continue;
3067
+ }
3068
+ const leaf = leafKind(field);
3069
+ if (leaf) out.push({ path, kind: leaf.kind, ...leaf.enumValues ? { enumValues: leaf.enumValues } : {} });
3070
+ }
3071
+ return out;
3072
+ }
2686
3073
  const DEVICE_STATE_EVENT_CATEGORY = "device.state-changed";
2687
3074
  function createLazyTrpcSource(api) {
2688
3075
  const cache = /* @__PURE__ */ new Map();
@@ -2846,8 +3233,21 @@ function createDeviceProxy(api, binding, opts) {
2846
3233
  return callLeaf(capProp, method, kind, mergeInput(input, void 0), push);
2847
3234
  }
2848
3235
  const accessoriesInterface = {
3236
+ setChildHidden: (input) => dispatch("accessories", "accessories", "setChildHidden", "mutation", input),
2849
3237
  getStatus: (input) => dispatch("accessories", "accessories", "getStatus", "query", input)
2850
3238
  };
3239
+ const airQualitySensorInterface = {
3240
+ getStatus: (input) => dispatch("air-quality-sensor", "airQualitySensor", "getStatus", "query", input)
3241
+ };
3242
+ const alarmPanelInterface = {
3243
+ arm: (input) => dispatch("alarm-panel", "alarmPanel", "arm", "mutation", input),
3244
+ disarm: (input) => dispatch("alarm-panel", "alarmPanel", "disarm", "mutation", input),
3245
+ trigger: (input) => dispatch("alarm-panel", "alarmPanel", "trigger", "mutation", input),
3246
+ getStatus: (input) => dispatch("alarm-panel", "alarmPanel", "getStatus", "query", input)
3247
+ };
3248
+ const ambientLightSensorInterface = {
3249
+ getStatus: (input) => dispatch("ambient-light-sensor", "ambientLightSensor", "getStatus", "query", input)
3250
+ };
2851
3251
  const audioAnalysisInterface = {
2852
3252
  resolveDeviceSettings: (input) => dispatch("audio-analysis", "audioAnalysis", "resolveDeviceSettings", "query", input),
2853
3253
  getDeviceSettingsContribution: (input) => dispatch("audio-analysis", "audioAnalysis", "getDeviceSettingsContribution", "query", input),
@@ -2858,13 +3258,26 @@ function createDeviceProxy(api, binding, opts) {
2858
3258
  getCurrentSnapshot: (input) => dispatch("audio-metrics", "audioMetrics", "getCurrentSnapshot", "query", input),
2859
3259
  getHistory: (input) => dispatch("audio-metrics", "audioMetrics", "getHistory", "query", input)
2860
3260
  };
3261
+ const automationControlInterface = {
3262
+ enable: (input) => dispatch("automation-control", "automationControl", "enable", "mutation", input),
3263
+ disable: (input) => dispatch("automation-control", "automationControl", "disable", "mutation", input),
3264
+ trigger: (input) => dispatch("automation-control", "automationControl", "trigger", "mutation", input),
3265
+ getStatus: (input) => dispatch("automation-control", "automationControl", "getStatus", "query", input)
3266
+ };
2861
3267
  const batteryInterface = {
3268
+ wakeForStream: (input) => dispatch("battery", "battery", "wakeForStream", "mutation", input),
2862
3269
  getStatus: (input) => dispatch("battery", "battery", "getStatus", "query", input)
2863
3270
  };
3271
+ const binaryInterface = {
3272
+ getStatus: (input) => dispatch("binary", "binary", "getStatus", "query", input)
3273
+ };
2864
3274
  const brightnessInterface = {
2865
3275
  setBrightness: (input) => dispatch("brightness", "brightness", "setBrightness", "mutation", input),
2866
3276
  getStatus: (input) => dispatch("brightness", "brightness", "getStatus", "query", input)
2867
3277
  };
3278
+ const buttonInterface = {
3279
+ press: (input) => dispatch("button", "button", "press", "mutation", input)
3280
+ };
2868
3281
  const cameraCredentialsInterface = {
2869
3282
  getCredentials: (input) => dispatch("camera-credentials", "cameraCredentials", "getCredentials", "query", input),
2870
3283
  getStatus: (input) => dispatch("camera-credentials", "cameraCredentials", "getStatus", "query", input)
@@ -2872,7 +3285,47 @@ function createDeviceProxy(api, binding, opts) {
2872
3285
  const cameraStreamsInterface = {
2873
3286
  getCameraStreams: (input) => dispatch("camera-streams", "cameraStreams", "getCameraStreams", "query", input),
2874
3287
  getBrokerStreams: (input) => dispatch("camera-streams", "cameraStreams", "getBrokerStreams", "query", input),
2875
- getRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getRtspEntries", "query", input)
3288
+ getRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getRtspEntries", "query", input),
3289
+ getProfileRtspEntries: (input) => dispatch("camera-streams", "cameraStreams", "getProfileRtspEntries", "query", input),
3290
+ pickStream: (input) => dispatch("camera-streams", "cameraStreams", "pickStream", "query", input)
3291
+ };
3292
+ const carbonMonoxideInterface = {
3293
+ getStatus: (input) => dispatch("carbon-monoxide", "carbonMonoxide", "getStatus", "query", input)
3294
+ };
3295
+ const climateControlInterface = {
3296
+ setMode: (input) => dispatch("climate-control", "climateControl", "setMode", "mutation", input),
3297
+ setFanMode: (input) => dispatch("climate-control", "climateControl", "setFanMode", "mutation", input),
3298
+ setPreset: (input) => dispatch("climate-control", "climateControl", "setPreset", "mutation", input),
3299
+ setTarget: (input) => dispatch("climate-control", "climateControl", "setTarget", "mutation", input),
3300
+ setTargetRange: (input) => dispatch("climate-control", "climateControl", "setTargetRange", "mutation", input),
3301
+ setTargetHumidity: (input) => dispatch("climate-control", "climateControl", "setTargetHumidity", "mutation", input),
3302
+ getStatus: (input) => dispatch("climate-control", "climateControl", "getStatus", "query", input)
3303
+ };
3304
+ const colorInterface = {
3305
+ setColor: (input) => dispatch("color", "color", "setColor", "mutation", input),
3306
+ getStatus: (input) => dispatch("color", "color", "getStatus", "query", input)
3307
+ };
3308
+ const connectivityInterface = {
3309
+ getStatus: (input) => dispatch("connectivity", "connectivity", "getStatus", "query", input)
3310
+ };
3311
+ const consumablesInterface = {
3312
+ reset: (input) => dispatch("consumables", "consumables", "reset", "mutation", input),
3313
+ getStatus: (input) => dispatch("consumables", "consumables", "getStatus", "query", input)
3314
+ };
3315
+ const contactInterface = {
3316
+ getStatus: (input) => dispatch("contact", "contact", "getStatus", "query", input)
3317
+ };
3318
+ const controlInterface = {
3319
+ setValue: (input) => dispatch("control", "control", "setValue", "mutation", input),
3320
+ getStatus: (input) => dispatch("control", "control", "getStatus", "query", input)
3321
+ };
3322
+ const coverInterface = {
3323
+ open: (input) => dispatch("cover", "cover", "open", "mutation", input),
3324
+ close: (input) => dispatch("cover", "cover", "close", "mutation", input),
3325
+ stop: (input) => dispatch("cover", "cover", "stop", "mutation", input),
3326
+ setPosition: (input) => dispatch("cover", "cover", "setPosition", "mutation", input),
3327
+ setTiltPosition: (input) => dispatch("cover", "cover", "setTiltPosition", "mutation", input),
3328
+ getStatus: (input) => dispatch("cover", "cover", "getStatus", "query", input)
2876
3329
  };
2877
3330
  const detectionPipelineInterface = {
2878
3331
  getDeviceSettingsContribution: (input) => dispatch("detection-pipeline", "detectionPipeline", "getDeviceSettingsContribution", "query", input),
@@ -2890,8 +3343,10 @@ function createDeviceProxy(api, binding, opts) {
2890
3343
  getStreamSources: (input) => dispatch("device-ops", "deviceOps", "getStreamSources", "query", input),
2891
3344
  getConfigEntries: (input) => dispatch("device-ops", "deviceOps", "getConfigEntries", "query", input),
2892
3345
  setConfig: (input) => dispatch("device-ops", "deviceOps", "setConfig", "mutation", input),
3346
+ runAction: (input) => dispatch("device-ops", "deviceOps", "runAction", "mutation", input),
2893
3347
  removeDevice: (input) => dispatch("device-ops", "deviceOps", "removeDevice", "mutation", input),
2894
- getSettingsSchema: (input) => dispatch("device-ops", "deviceOps", "getSettingsSchema", "query", input)
3348
+ getSettingsSchema: (input) => dispatch("device-ops", "deviceOps", "getSettingsSchema", "query", input),
3349
+ getRawState: (input) => dispatch("device-ops", "deviceOps", "getRawState", "query", input)
2895
3350
  };
2896
3351
  const deviceStatusInterface = {
2897
3352
  getStatus: (input) => dispatch("device-status", "deviceStatus", "getStatus", "query", input)
@@ -2899,23 +3354,81 @@ function createDeviceProxy(api, binding, opts) {
2899
3354
  const doorbellInterface = {
2900
3355
  getStatus: (input) => dispatch("doorbell", "doorbell", "getStatus", "query", input)
2901
3356
  };
3357
+ const enumSensorInterface = {
3358
+ getStatus: (input) => dispatch("enum-sensor", "enumSensor", "getStatus", "query", input)
3359
+ };
3360
+ const eventEmitterInterface = {
3361
+ getStatus: (input) => dispatch("event-emitter", "eventEmitter", "getStatus", "query", input)
3362
+ };
2902
3363
  const eventsInterface = {
2903
3364
  getEvents: (input) => dispatch("events", "events", "getEvents", "query", input),
2904
3365
  getEventThumbnail: (input) => dispatch("events", "events", "getEventThumbnail", "query", input),
2905
3366
  getEventClipUrl: (input) => dispatch("events", "events", "getEventClipUrl", "query", input)
2906
3367
  };
3368
+ const fanControlInterface = {
3369
+ setPercentage: (input) => dispatch("fan-control", "fanControl", "setPercentage", "mutation", input),
3370
+ setPreset: (input) => dispatch("fan-control", "fanControl", "setPreset", "mutation", input),
3371
+ setDirection: (input) => dispatch("fan-control", "fanControl", "setDirection", "mutation", input),
3372
+ setOscillating: (input) => dispatch("fan-control", "fanControl", "setOscillating", "mutation", input),
3373
+ getStatus: (input) => dispatch("fan-control", "fanControl", "getStatus", "query", input)
3374
+ };
2907
3375
  const featureProbeInterface = {
2908
3376
  getStatus: (input) => dispatch("feature-probe", "featureProbe", "getStatus", "query", input)
2909
3377
  };
3378
+ const floodInterface = {
3379
+ getStatus: (input) => dispatch("flood", "flood", "getStatus", "query", input)
3380
+ };
3381
+ const gasInterface = {
3382
+ getStatus: (input) => dispatch("gas", "gas", "getStatus", "query", input)
3383
+ };
3384
+ const humidifierInterface = {
3385
+ setOn: (input) => dispatch("humidifier", "humidifier", "setOn", "mutation", input),
3386
+ setTargetHumidity: (input) => dispatch("humidifier", "humidifier", "setTargetHumidity", "mutation", input),
3387
+ setMode: (input) => dispatch("humidifier", "humidifier", "setMode", "mutation", input),
3388
+ getStatus: (input) => dispatch("humidifier", "humidifier", "getStatus", "query", input)
3389
+ };
3390
+ const humiditySensorInterface = {
3391
+ getStatus: (input) => dispatch("humidity-sensor", "humiditySensor", "getStatus", "query", input)
3392
+ };
3393
+ const imageInterface = {
3394
+ getStatus: (input) => dispatch("image", "image", "getStatus", "query", input)
3395
+ };
2910
3396
  const intercomInterface = {
2911
3397
  startSession: (input) => dispatch("intercom", "intercom", "startSession", "mutation", input),
2912
3398
  handleAnswer: (input) => dispatch("intercom", "intercom", "handleAnswer", "mutation", input),
2913
3399
  stopSession: (input) => dispatch("intercom", "intercom", "stopSession", "mutation", input),
2914
3400
  startTalkSession: (input) => dispatch("intercom", "intercom", "startTalkSession", "mutation", input),
2915
- pushTalkPcm: (input) => dispatch("intercom", "intercom", "pushTalkPcm", "mutation", input),
3401
+ pushTalkAudio: (input) => dispatch("intercom", "intercom", "pushTalkAudio", "mutation", input),
2916
3402
  endTalkSession: (input) => dispatch("intercom", "intercom", "endTalkSession", "mutation", input),
2917
3403
  getStatus: (input) => dispatch("intercom", "intercom", "getStatus", "query", input)
2918
3404
  };
3405
+ const lawnMowerControlInterface = {
3406
+ startMowing: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "startMowing", "mutation", input),
3407
+ pause: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "pause", "mutation", input),
3408
+ dock: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "dock", "mutation", input),
3409
+ getStatus: (input) => dispatch("lawn-mower-control", "lawnMowerControl", "getStatus", "query", input)
3410
+ };
3411
+ const lockControlInterface = {
3412
+ lock: (input) => dispatch("lock-control", "lockControl", "lock", "mutation", input),
3413
+ unlock: (input) => dispatch("lock-control", "lockControl", "unlock", "mutation", input),
3414
+ open: (input) => dispatch("lock-control", "lockControl", "open", "mutation", input),
3415
+ getStatus: (input) => dispatch("lock-control", "lockControl", "getStatus", "query", input)
3416
+ };
3417
+ const mediaPlayerInterface = {
3418
+ play: (input) => dispatch("media-player", "mediaPlayer", "play", "mutation", input),
3419
+ pause: (input) => dispatch("media-player", "mediaPlayer", "pause", "mutation", input),
3420
+ stop: (input) => dispatch("media-player", "mediaPlayer", "stop", "mutation", input),
3421
+ next: (input) => dispatch("media-player", "mediaPlayer", "next", "mutation", input),
3422
+ previous: (input) => dispatch("media-player", "mediaPlayer", "previous", "mutation", input),
3423
+ seek: (input) => dispatch("media-player", "mediaPlayer", "seek", "mutation", input),
3424
+ setVolume: (input) => dispatch("media-player", "mediaPlayer", "setVolume", "mutation", input),
3425
+ setMute: (input) => dispatch("media-player", "mediaPlayer", "setMute", "mutation", input),
3426
+ setShuffle: (input) => dispatch("media-player", "mediaPlayer", "setShuffle", "mutation", input),
3427
+ setRepeat: (input) => dispatch("media-player", "mediaPlayer", "setRepeat", "mutation", input),
3428
+ selectSource: (input) => dispatch("media-player", "mediaPlayer", "selectSource", "mutation", input),
3429
+ playMedia: (input) => dispatch("media-player", "mediaPlayer", "playMedia", "mutation", input),
3430
+ getStatus: (input) => dispatch("media-player", "mediaPlayer", "getStatus", "query", input)
3431
+ };
2919
3432
  const motionInterface = {
2920
3433
  isDetected: (input) => dispatch("motion", "motion", "isDetected", "query", input),
2921
3434
  getStatus: (input) => dispatch("motion", "motion", "getStatus", "query", input)
@@ -2941,6 +3454,14 @@ function createDeviceProxy(api, binding, opts) {
2941
3454
  setEnabled: (input) => dispatch("native-object-detection", "nativeObjectDetection", "setEnabled", "mutation", input),
2942
3455
  getStatus: (input) => dispatch("native-object-detection", "nativeObjectDetection", "getStatus", "query", input)
2943
3456
  };
3457
+ const notifierInterface = {
3458
+ send: (input) => dispatch("notifier", "notifier", "send", "mutation", input),
3459
+ cancel: (input) => dispatch("notifier", "notifier", "cancel", "mutation", input),
3460
+ getStatus: (input) => dispatch("notifier", "notifier", "getStatus", "query", input)
3461
+ };
3462
+ const numericSensorInterface = {
3463
+ getStatus: (input) => dispatch("numeric-sensor", "numericSensor", "getStatus", "query", input)
3464
+ };
2944
3465
  const osdInterface = {
2945
3466
  setOverlay: (input) => dispatch("osd", "osd", "setOverlay", "mutation", input),
2946
3467
  getStatus: (input) => dispatch("osd", "osd", "getStatus", "query", input)
@@ -2953,12 +3474,23 @@ function createDeviceProxy(api, binding, opts) {
2953
3474
  getMotionEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getMotionEvents", "query", input),
2954
3475
  getObjectEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getObjectEvents", "query", input),
2955
3476
  getAudioEvents: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getAudioEvents", "query", input),
3477
+ getEventDensity: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventDensity", "query", input),
3478
+ pruneEventsBefore: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "pruneEventsBefore", "mutation", input),
2956
3479
  getEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventMedia", "query", input),
2957
3480
  getTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrackMedia", "query", input),
2958
3481
  getDeviceSettingsContribution: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getDeviceSettingsContribution", "query", input),
2959
3482
  getDeviceLiveContribution: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getDeviceLiveContribution", "query", input),
2960
3483
  applyDeviceSettingsPatch: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "applyDeviceSettingsPatch", "mutation", input)
2961
3484
  };
3485
+ const powerMeterInterface = {
3486
+ getStatus: (input) => dispatch("power-meter", "powerMeter", "getStatus", "query", input)
3487
+ };
3488
+ const presenceInterface = {
3489
+ getStatus: (input) => dispatch("presence", "presence", "getStatus", "query", input)
3490
+ };
3491
+ const pressureSensorInterface = {
3492
+ getStatus: (input) => dispatch("pressure-sensor", "pressureSensor", "getStatus", "query", input)
3493
+ };
2962
3494
  const privacyMaskInterface = {
2963
3495
  getOptions: (input) => dispatch("privacy-mask", "privacyMask", "getOptions", "query", input),
2964
3496
  setMask: (input) => dispatch("privacy-mask", "privacyMask", "setMask", "mutation", input),
@@ -2987,10 +3519,13 @@ function createDeviceProxy(api, binding, opts) {
2987
3519
  const rebootInterface = {
2988
3520
  reboot: (input) => dispatch("reboot", "reboot", "reboot", "mutation", input)
2989
3521
  };
2990
- const recordingInterface = {
2991
- getSegments: (input) => dispatch("recording", "recording", "getSegments", "query", input),
2992
- getPlaybackUrl: (input) => dispatch("recording", "recording", "getPlaybackUrl", "query", input),
2993
- getThumbnailAt: (input) => dispatch("recording", "recording", "getThumbnailAt", "query", input)
3522
+ const scriptRunnerInterface = {
3523
+ run: (input) => dispatch("script-runner", "scriptRunner", "run", "mutation", input),
3524
+ stop: (input) => dispatch("script-runner", "scriptRunner", "stop", "mutation", input),
3525
+ getStatus: (input) => dispatch("script-runner", "scriptRunner", "getStatus", "query", input)
3526
+ };
3527
+ const smokeInterface = {
3528
+ getStatus: (input) => dispatch("smoke", "smoke", "getStatus", "query", input)
2994
3529
  };
2995
3530
  const snapshotInterface = {
2996
3531
  getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
@@ -3013,6 +3548,48 @@ function createDeviceProxy(api, binding, opts) {
3013
3548
  setState: (input) => dispatch("switch", "switch", "setState", "mutation", input),
3014
3549
  getStatus: (input) => dispatch("switch", "switch", "getStatus", "query", input)
3015
3550
  };
3551
+ const tamperInterface = {
3552
+ getStatus: (input) => dispatch("tamper", "tamper", "getStatus", "query", input)
3553
+ };
3554
+ const temperatureSensorInterface = {
3555
+ getStatus: (input) => dispatch("temperature-sensor", "temperatureSensor", "getStatus", "query", input)
3556
+ };
3557
+ const updateInterface = {
3558
+ installUpdate: (input) => dispatch("update", "update", "installUpdate", "mutation", input),
3559
+ getStatus: (input) => dispatch("update", "update", "getStatus", "query", input)
3560
+ };
3561
+ const vacuumControlInterface = {
3562
+ start: (input) => dispatch("vacuum-control", "vacuumControl", "start", "mutation", input),
3563
+ pause: (input) => dispatch("vacuum-control", "vacuumControl", "pause", "mutation", input),
3564
+ stop: (input) => dispatch("vacuum-control", "vacuumControl", "stop", "mutation", input),
3565
+ returnToBase: (input) => dispatch("vacuum-control", "vacuumControl", "returnToBase", "mutation", input),
3566
+ locate: (input) => dispatch("vacuum-control", "vacuumControl", "locate", "mutation", input),
3567
+ setFanSpeed: (input) => dispatch("vacuum-control", "vacuumControl", "setFanSpeed", "mutation", input),
3568
+ getStatus: (input) => dispatch("vacuum-control", "vacuumControl", "getStatus", "query", input)
3569
+ };
3570
+ const valveInterface = {
3571
+ open: (input) => dispatch("valve", "valve", "open", "mutation", input),
3572
+ close: (input) => dispatch("valve", "valve", "close", "mutation", input),
3573
+ stop: (input) => dispatch("valve", "valve", "stop", "mutation", input),
3574
+ setPosition: (input) => dispatch("valve", "valve", "setPosition", "mutation", input),
3575
+ getStatus: (input) => dispatch("valve", "valve", "getStatus", "query", input)
3576
+ };
3577
+ const vibrationInterface = {
3578
+ getStatus: (input) => dispatch("vibration", "vibration", "getStatus", "query", input)
3579
+ };
3580
+ const videoclipsInterface = {
3581
+ listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3582
+ getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input)
3583
+ };
3584
+ const waterHeaterInterface = {
3585
+ setTargetTemp: (input) => dispatch("water-heater", "waterHeater", "setTargetTemp", "mutation", input),
3586
+ setOperationMode: (input) => dispatch("water-heater", "waterHeater", "setOperationMode", "mutation", input),
3587
+ setAway: (input) => dispatch("water-heater", "waterHeater", "setAway", "mutation", input),
3588
+ getStatus: (input) => dispatch("water-heater", "waterHeater", "getStatus", "query", input)
3589
+ };
3590
+ const weatherInterface = {
3591
+ getStatus: (input) => dispatch("weather", "weather", "getStatus", "query", input)
3592
+ };
3016
3593
  const webrtcSessionInterface = {
3017
3594
  listStreams: (input) => dispatch("webrtc-session", "webrtcSession", "listStreams", "query", input),
3018
3595
  createSession: (input) => dispatch("webrtc-session", "webrtcSession", "createSession", "mutation", input),
@@ -3021,7 +3598,8 @@ function createDeviceProxy(api, binding, opts) {
3021
3598
  addIceCandidate: (input) => dispatch("webrtc-session", "webrtcSession", "addIceCandidate", "mutation", input),
3022
3599
  getIceCandidates: (input) => dispatch("webrtc-session", "webrtcSession", "getIceCandidates", "query", input),
3023
3600
  closeSession: (input) => dispatch("webrtc-session", "webrtcSession", "closeSession", "mutation", input),
3024
- hasAdaptiveBitrate: (input) => dispatch("webrtc-session", "webrtcSession", "hasAdaptiveBitrate", "query", input)
3601
+ hasAdaptiveBitrate: (input) => dispatch("webrtc-session", "webrtcSession", "hasAdaptiveBitrate", "query", input),
3602
+ getSessionState: (input) => dispatch("webrtc-session", "webrtcSession", "getSessionState", "query", input)
3025
3603
  };
3026
3604
  const zoneAnalyticsInterface = {
3027
3605
  getCurrentSnapshot: (input) => dispatch("zone-analytics", "zoneAnalytics", "getCurrentSnapshot", "query", input),
@@ -3048,6 +3626,9 @@ function createDeviceProxy(api, binding, opts) {
3048
3626
  getDeviceLiveContribution: (input) => dispatchSystem("cameraPipelineConfig", "getDeviceLiveContribution", "query", input),
3049
3627
  applyDeviceSettingsPatch: (input) => dispatchSystem("cameraPipelineConfig", "applyDeviceSettingsPatch", "mutation", input)
3050
3628
  };
3629
+ const deviceAdoptionInterface = {
3630
+ getStatus: (input) => dispatchSystem("deviceAdoption", "getStatus", "query", input)
3631
+ };
3051
3632
  const deviceExportInterface = {
3052
3633
  getDeviceSettingsContribution: (input) => dispatchSystem("deviceExport", "getDeviceSettingsContribution", "query", input),
3053
3634
  getDeviceLiveContribution: (input) => dispatchSystem("deviceExport", "getDeviceLiveContribution", "query", input),
@@ -3059,6 +3640,15 @@ function createDeviceProxy(api, binding, opts) {
3059
3640
  loadMeta: (input) => dispatchSystem("deviceManager", "loadMeta", "query", input),
3060
3641
  setName: (input) => dispatchSystem("deviceManager", "setName", "mutation", input),
3061
3642
  setLocation: (input) => dispatchSystem("deviceManager", "setLocation", "mutation", input),
3643
+ setType: (input) => dispatchSystem("deviceManager", "setType", "mutation", input),
3644
+ setIntegrationId: (input) => dispatchSystem("deviceManager", "setIntegrationId", "mutation", input),
3645
+ setLinkDeviceId: (input) => dispatchSystem("deviceManager", "setLinkDeviceId", "mutation", input),
3646
+ setPrimaryChildEntityId: (input) => dispatchSystem("deviceManager", "setPrimaryChildEntityId", "mutation", input),
3647
+ setChildLayout: (input) => dispatchSystem("deviceManager", "setChildLayout", "mutation", input),
3648
+ setDeviceLinks: (input) => dispatchSystem("deviceManager", "setDeviceLinks", "mutation", input),
3649
+ getWireableFields: (input) => dispatchSystem("deviceManager", "getWireableFields", "query", input),
3650
+ setRole: (input) => dispatchSystem("deviceManager", "setRole", "mutation", input),
3651
+ applyInitialMeta: (input) => dispatchSystem("deviceManager", "applyInitialMeta", "mutation", input),
3062
3652
  setMetadata: (input) => dispatchSystem("deviceManager", "setMetadata", "mutation", input),
3063
3653
  setDisabled: (input) => dispatchSystem("deviceManager", "setDisabled", "mutation", input),
3064
3654
  getDevice: (input) => dispatchSystem("deviceManager", "getDevice", "query", input),
@@ -3078,6 +3668,7 @@ function createDeviceProxy(api, binding, opts) {
3078
3668
  getDeviceSettingsAggregate: (input) => dispatchSystem("deviceManager", "getDeviceSettingsAggregate", "query", input),
3079
3669
  getDeviceLiveInfoAggregate: (input) => dispatchSystem("deviceManager", "getDeviceLiveInfoAggregate", "query", input),
3080
3670
  getDeviceAggregate: (input) => dispatchSystem("deviceManager", "getDeviceAggregate", "query", input),
3671
+ runDeviceAction: (input) => dispatchSystem("deviceManager", "runDeviceAction", "mutation", input),
3081
3672
  updateDeviceField: (input) => dispatchSystem("deviceManager", "updateDeviceField", "mutation", input),
3082
3673
  updateDeviceFieldsBatch: (input) => dispatchSystem("deviceManager", "updateDeviceFieldsBatch", "mutation", input),
3083
3674
  testField: (input) => dispatchSystem("deviceManager", "testField", "mutation", input),
@@ -3122,8 +3713,17 @@ function createDeviceProxy(api, binding, opts) {
3122
3713
  detachCamera: (input) => dispatchSystem("pipelineRunner", "detachCamera", "mutation", input),
3123
3714
  getCameraMetrics: (input) => dispatchSystem("pipelineRunner", "getCameraMetrics", "query", input)
3124
3715
  };
3125
- const recordingEngineInterface = {
3126
- getPolicyStatus: (input) => dispatchSystem("recordingEngine", "getPolicyStatus", "query", input)
3716
+ const recordingInterface = {
3717
+ getAvailability: (input) => dispatchSystem("recording", "getAvailability", "query", input),
3718
+ getPlaybackManifest: (input) => dispatchSystem("recording", "getPlaybackManifest", "query", input),
3719
+ getDeviceConfig: (input) => dispatchSystem("recording", "getDeviceConfig", "query", input),
3720
+ setDeviceConfig: (input) => dispatchSystem("recording", "setDeviceConfig", "mutation", input),
3721
+ rescanStorage: (input) => dispatchSystem("recording", "rescanStorage", "mutation", input),
3722
+ pruneFootage: (input) => dispatchSystem("recording", "pruneFootage", "mutation", input),
3723
+ getStatus: (input) => dispatchSystem("recording", "getStatus", "query", input),
3724
+ getDeviceSettingsContribution: (input) => dispatchSystem("recording", "getDeviceSettingsContribution", "query", input),
3725
+ getDeviceLiveContribution: (input) => dispatchSystem("recording", "getDeviceLiveContribution", "query", input),
3726
+ applyDeviceSettingsPatch: (input) => dispatchSystem("recording", "applyDeviceSettingsPatch", "mutation", input)
3127
3727
  };
3128
3728
  const snapshotProviderInterface = {
3129
3729
  supportsDevice: (input) => dispatchSystem("snapshotProvider", "supportsDevice", "query", input),
@@ -3143,63 +3743,143 @@ function createDeviceProxy(api, binding, opts) {
3143
3743
  deviceId: binding.deviceId,
3144
3744
  binding,
3145
3745
  state: {
3746
+ airQualitySensor: createSliceHandle(stateSource, binding.deviceId, "air-quality-sensor"),
3747
+ alarmPanel: createSliceHandle(stateSource, binding.deviceId, "alarm-panel"),
3748
+ ambientLightSensor: createSliceHandle(stateSource, binding.deviceId, "ambient-light-sensor"),
3146
3749
  audioMetrics: createSliceHandle(stateSource, binding.deviceId, "audio-metrics"),
3750
+ automationControl: createSliceHandle(stateSource, binding.deviceId, "automation-control"),
3147
3751
  battery: createSliceHandle(stateSource, binding.deviceId, "battery"),
3752
+ binary: createSliceHandle(stateSource, binding.deviceId, "binary"),
3148
3753
  brightness: createSliceHandle(stateSource, binding.deviceId, "brightness"),
3149
3754
  cameraStreams: createSliceHandle(stateSource, binding.deviceId, "camera-streams"),
3755
+ carbonMonoxide: createSliceHandle(stateSource, binding.deviceId, "carbon-monoxide"),
3756
+ climateControl: createSliceHandle(stateSource, binding.deviceId, "climate-control"),
3757
+ color: createSliceHandle(stateSource, binding.deviceId, "color"),
3758
+ connectivity: createSliceHandle(stateSource, binding.deviceId, "connectivity"),
3759
+ consumables: createSliceHandle(stateSource, binding.deviceId, "consumables"),
3760
+ contact: createSliceHandle(stateSource, binding.deviceId, "contact"),
3761
+ control: createSliceHandle(stateSource, binding.deviceId, "control"),
3762
+ cover: createSliceHandle(stateSource, binding.deviceId, "cover"),
3150
3763
  deviceDiscovery: createSliceHandle(stateSource, binding.deviceId, "device-discovery"),
3151
3764
  deviceStatus: createSliceHandle(stateSource, binding.deviceId, "device-status"),
3152
3765
  doorbell: createSliceHandle(stateSource, binding.deviceId, "doorbell"),
3766
+ enumSensor: createSliceHandle(stateSource, binding.deviceId, "enum-sensor"),
3767
+ eventEmitter: createSliceHandle(stateSource, binding.deviceId, "event-emitter"),
3768
+ fanControl: createSliceHandle(stateSource, binding.deviceId, "fan-control"),
3153
3769
  featureProbe: createSliceHandle(stateSource, binding.deviceId, "feature-probe"),
3770
+ flood: createSliceHandle(stateSource, binding.deviceId, "flood"),
3771
+ gas: createSliceHandle(stateSource, binding.deviceId, "gas"),
3772
+ humidifier: createSliceHandle(stateSource, binding.deviceId, "humidifier"),
3773
+ humiditySensor: createSliceHandle(stateSource, binding.deviceId, "humidity-sensor"),
3774
+ image: createSliceHandle(stateSource, binding.deviceId, "image"),
3775
+ lawnMowerControl: createSliceHandle(stateSource, binding.deviceId, "lawn-mower-control"),
3776
+ lockControl: createSliceHandle(stateSource, binding.deviceId, "lock-control"),
3777
+ mediaPlayer: createSliceHandle(stateSource, binding.deviceId, "media-player"),
3154
3778
  motion: createSliceHandle(stateSource, binding.deviceId, "motion"),
3155
3779
  motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
3156
3780
  motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
3157
3781
  nativeObjectDetection: createSliceHandle(stateSource, binding.deviceId, "native-object-detection"),
3782
+ notifier: createSliceHandle(stateSource, binding.deviceId, "notifier"),
3783
+ numericSensor: createSliceHandle(stateSource, binding.deviceId, "numeric-sensor"),
3784
+ powerMeter: createSliceHandle(stateSource, binding.deviceId, "power-meter"),
3785
+ presence: createSliceHandle(stateSource, binding.deviceId, "presence"),
3786
+ pressureSensor: createSliceHandle(stateSource, binding.deviceId, "pressure-sensor"),
3158
3787
  privacyMask: createSliceHandle(stateSource, binding.deviceId, "privacy-mask"),
3159
3788
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
3789
+ scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
3790
+ smoke: createSliceHandle(stateSource, binding.deviceId, "smoke"),
3160
3791
  streamParams: createSliceHandle(stateSource, binding.deviceId, "stream-params"),
3161
3792
  switch: createSliceHandle(stateSource, binding.deviceId, "switch"),
3793
+ tamper: createSliceHandle(stateSource, binding.deviceId, "tamper"),
3794
+ temperatureSensor: createSliceHandle(stateSource, binding.deviceId, "temperature-sensor"),
3795
+ update: createSliceHandle(stateSource, binding.deviceId, "update"),
3796
+ vacuumControl: createSliceHandle(stateSource, binding.deviceId, "vacuum-control"),
3797
+ valve: createSliceHandle(stateSource, binding.deviceId, "valve"),
3798
+ vibration: createSliceHandle(stateSource, binding.deviceId, "vibration"),
3799
+ waterHeater: createSliceHandle(stateSource, binding.deviceId, "water-heater"),
3800
+ weather: createSliceHandle(stateSource, binding.deviceId, "weather"),
3162
3801
  zoneAnalytics: createSliceHandle(stateSource, binding.deviceId, "zone-analytics"),
3163
3802
  zoneRules: createSliceHandle(stateSource, binding.deviceId, "zone-rules"),
3164
3803
  zones: createSliceHandle(stateSource, binding.deviceId, "zones")
3165
3804
  },
3166
3805
  accessories: accessoriesInterface,
3806
+ airQualitySensor: airQualitySensorInterface,
3807
+ alarmPanel: alarmPanelInterface,
3808
+ ambientLightSensor: ambientLightSensorInterface,
3167
3809
  audioAnalysis: audioAnalysisInterface,
3168
3810
  audioMetrics: audioMetricsInterface,
3811
+ automationControl: automationControlInterface,
3169
3812
  battery: batteryInterface,
3813
+ binary: binaryInterface,
3170
3814
  brightness: brightnessInterface,
3815
+ button: buttonInterface,
3171
3816
  cameraCredentials: cameraCredentialsInterface,
3172
3817
  cameraStreams: cameraStreamsInterface,
3818
+ carbonMonoxide: carbonMonoxideInterface,
3819
+ climateControl: climateControlInterface,
3820
+ color: colorInterface,
3821
+ connectivity: connectivityInterface,
3822
+ consumables: consumablesInterface,
3823
+ contact: contactInterface,
3824
+ control: controlInterface,
3825
+ cover: coverInterface,
3173
3826
  detectionPipeline: detectionPipelineInterface,
3174
3827
  deviceDiscovery: deviceDiscoveryInterface,
3175
3828
  deviceOps: deviceOpsInterface,
3176
3829
  deviceStatus: deviceStatusInterface,
3177
3830
  doorbell: doorbellInterface,
3831
+ enumSensor: enumSensorInterface,
3832
+ eventEmitter: eventEmitterInterface,
3178
3833
  events: eventsInterface,
3834
+ fanControl: fanControlInterface,
3179
3835
  featureProbe: featureProbeInterface,
3836
+ flood: floodInterface,
3837
+ gas: gasInterface,
3838
+ humidifier: humidifierInterface,
3839
+ humiditySensor: humiditySensorInterface,
3840
+ image: imageInterface,
3180
3841
  intercom: intercomInterface,
3842
+ lawnMowerControl: lawnMowerControlInterface,
3843
+ lockControl: lockControlInterface,
3844
+ mediaPlayer: mediaPlayerInterface,
3181
3845
  motion: motionInterface,
3182
3846
  motionDetection: motionDetectionInterface,
3183
3847
  motionTrigger: motionTriggerInterface,
3184
3848
  motionZones: motionZonesInterface,
3185
3849
  nativeObjectDetection: nativeObjectDetectionInterface,
3850
+ notifier: notifierInterface,
3851
+ numericSensor: numericSensorInterface,
3186
3852
  osd: osdInterface,
3187
3853
  pipelineAnalytics: pipelineAnalyticsInterface,
3854
+ powerMeter: powerMeterInterface,
3855
+ presence: presenceInterface,
3856
+ pressureSensor: pressureSensorInterface,
3188
3857
  privacyMask: privacyMaskInterface,
3189
3858
  ptz: ptzInterface,
3190
3859
  ptzAutotrack: ptzAutotrackInterface,
3191
3860
  reboot: rebootInterface,
3192
- recording: recordingInterface,
3861
+ scriptRunner: scriptRunnerInterface,
3862
+ smoke: smokeInterface,
3193
3863
  snapshot: snapshotInterface,
3194
3864
  streamCatalog: streamCatalogInterface,
3195
3865
  streamParams: streamParamsInterface,
3196
3866
  switch: switchInterface,
3867
+ tamper: tamperInterface,
3868
+ temperatureSensor: temperatureSensorInterface,
3869
+ update: updateInterface,
3870
+ vacuumControl: vacuumControlInterface,
3871
+ valve: valveInterface,
3872
+ vibration: vibrationInterface,
3873
+ videoclips: videoclipsInterface,
3874
+ waterHeater: waterHeaterInterface,
3875
+ weather: weatherInterface,
3197
3876
  webrtcSession: webrtcSessionInterface,
3198
3877
  zoneAnalytics: zoneAnalyticsInterface,
3199
3878
  zoneRules: zoneRulesInterface,
3200
3879
  zones: zonesInterface,
3201
3880
  addonSettings: addonSettingsInterface,
3202
3881
  cameraPipelineConfig: cameraPipelineConfigInterface,
3882
+ deviceAdoption: deviceAdoptionInterface,
3203
3883
  deviceExport: deviceExportInterface,
3204
3884
  deviceManager: deviceManagerInterface,
3205
3885
  deviceState: deviceStateInterface,
@@ -3207,7 +3887,7 @@ function createDeviceProxy(api, binding, opts) {
3207
3887
  pipelineExecutor: pipelineExecutorInterface,
3208
3888
  pipelineOrchestrator: pipelineOrchestratorInterface,
3209
3889
  pipelineRunner: pipelineRunnerInterface,
3210
- recordingEngine: recordingEngineInterface,
3890
+ recording: recordingInterface,
3211
3891
  snapshotProvider: snapshotProviderInterface,
3212
3892
  streamBroker: streamBrokerInterface
3213
3893
  };
@@ -3358,6 +4038,24 @@ function createSystemProxy(api) {
3358
4038
  upsertDestinationPolicy: (input) => dispatch("backup", "upsertDestinationPolicy", "mutation", input),
3359
4039
  previewSchedule: (input) => dispatch("backup", "previewSchedule", "query", input)
3360
4040
  };
4041
+ const brokerInterface = {
4042
+ list: (input) => dispatch("broker", "list", "query", input),
4043
+ get: (input) => dispatch("broker", "get", "query", input),
4044
+ listProviders: (input) => dispatch("broker", "listProviders", "query", input),
4045
+ add: (input) => dispatch("broker", "add", "mutation", input),
4046
+ remove: (input) => dispatch("broker", "remove", "mutation", input),
4047
+ testConnection: (input) => dispatch("broker", "testConnection", "mutation", input),
4048
+ getSettings: (input) => dispatch("broker", "getSettings", "query", input),
4049
+ setSettings: (input) => dispatch("broker", "setSettings", "mutation", input),
4050
+ getBrokerConfig: (input) => dispatch("broker", "getBrokerConfig", "query", input),
4051
+ getSettingsSchema: (input) => dispatch("broker", "getSettingsSchema", "query", input),
4052
+ testSettings: (input) => dispatch("broker", "testSettings", "mutation", input),
4053
+ publish: (input) => dispatch("broker", "publish", "mutation", input),
4054
+ subscribe: (input) => dispatch("broker", "subscribe", "mutation", input),
4055
+ unsubscribe: (input) => dispatch("broker", "unsubscribe", "mutation", input),
4056
+ getState: (input) => dispatch("broker", "getState", "query", input),
4057
+ getStatus: (input) => dispatch("broker", "getStatus", "query", input)
4058
+ };
3361
4059
  const decoderInterface = {
3362
4060
  supportsCodec: (input) => dispatch("decoder", "supportsCodec", "query", input),
3363
4061
  getInfo: (input) => dispatch("decoder", "getInfo", "query", input),
@@ -3374,6 +4072,15 @@ function createSystemProxy(api) {
3374
4072
  listActiveSessions: (input) => dispatch("decoder", "listActiveSessions", "query", input),
3375
4073
  reprobeHwaccel: (input) => dispatch("decoder", "reprobeHwaccel", "mutation", input)
3376
4074
  };
4075
+ const deviceAdoptionInterface = {
4076
+ listCandidateFilters: (input) => dispatch("deviceAdoption", "listCandidateFilters", "query", input),
4077
+ listCandidates: (input) => dispatch("deviceAdoption", "listCandidates", "query", input),
4078
+ getCandidate: (input) => dispatch("deviceAdoption", "getCandidate", "query", input),
4079
+ refresh: (input) => dispatch("deviceAdoption", "refresh", "mutation", input),
4080
+ adopt: (input) => dispatch("deviceAdoption", "adopt", "mutation", input),
4081
+ release: (input) => dispatch("deviceAdoption", "release", "mutation", input),
4082
+ resync: (input) => dispatch("deviceAdoption", "resync", "mutation", input)
4083
+ };
3377
4084
  const deviceExportInterface = {
3378
4085
  getStatus: (input) => dispatch("deviceExport", "getStatus", "query", input),
3379
4086
  listSupportedDeviceKinds: (input) => dispatch("deviceExport", "listSupportedDeviceKinds", "query", input),
@@ -3392,13 +4099,18 @@ function createSystemProxy(api) {
3392
4099
  listPersistedByAddon: (input) => dispatch("deviceManager", "listPersistedByAddon", "query", input),
3393
4100
  listAll: (input) => dispatch("deviceManager", "listAll", "query", input),
3394
4101
  getChildren: (input) => dispatch("deviceManager", "getChildren", "query", input),
4102
+ removeByIntegration: (input) => dispatch("deviceManager", "removeByIntegration", "mutation", input),
3395
4103
  listWrappersForCap: (input) => dispatch("deviceManager", "listWrappersForCap", "query", input),
3396
4104
  listBindableCapsForDeviceType: (input) => dispatch("deviceManager", "listBindableCapsForDeviceType", "query", input),
3397
4105
  discoverDevices: (input) => dispatch("deviceManager", "discoverDevices", "mutation", input),
3398
4106
  adoptDevice: (input) => dispatch("deviceManager", "adoptDevice", "mutation", input),
3399
4107
  getCreationSchema: (input) => dispatch("deviceManager", "getCreationSchema", "query", input),
3400
4108
  createDevice: (input) => dispatch("deviceManager", "createDevice", "mutation", input),
3401
- testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input)
4109
+ testCreationField: (input) => dispatch("deviceManager", "testCreationField", "mutation", input),
4110
+ adoptionListCandidates: (input) => dispatch("deviceManager", "adoptionListCandidates", "query", input),
4111
+ adoptionRefresh: (input) => dispatch("deviceManager", "adoptionRefresh", "mutation", input),
4112
+ adoptionAdopt: (input) => dispatch("deviceManager", "adoptionAdopt", "mutation", input),
4113
+ adoptionRelease: (input) => dispatch("deviceManager", "adoptionRelease", "mutation", input)
3402
4114
  };
3403
4115
  const deviceProviderInterface = {
3404
4116
  start: (input) => dispatch("deviceProvider", "start", "mutation", input),
@@ -3558,32 +4270,8 @@ function createSystemProxy(api) {
3558
4270
  getAllCameraMetrics: (input) => dispatch("pipelineRunner", "getAllCameraMetrics", "query", input),
3559
4271
  getLocalCameras: (input) => dispatch("pipelineRunner", "getLocalCameras", "query", input)
3560
4272
  };
3561
- const platformProbeInterface = {
3562
- getCapabilities: (input) => dispatch("platformProbe", "getCapabilities", "query", input),
3563
- getHardware: (input) => dispatch("platformProbe", "getHardware", "query", input),
3564
- resolveInferenceConfig: (input) => dispatch("platformProbe", "resolveInferenceConfig", "query", input),
3565
- resolveHwAccel: (input) => dispatch("platformProbe", "resolveHwAccel", "query", input),
3566
- getHardwareEncoders: (input) => dispatch("platformProbe", "getHardwareEncoders", "query", input),
3567
- refreshHardwareEncoders: (input) => dispatch("platformProbe", "refreshHardwareEncoders", "mutation", input)
3568
- };
3569
- const recordingEngineInterface = {
3570
- getStatus: (input) => dispatch("recordingEngine", "getStatus", "query", input),
3571
- enable: (input) => dispatch("recordingEngine", "enable", "mutation", input),
3572
- disable: (input) => dispatch("recordingEngine", "disable", "mutation", input),
3573
- getConfig: (input) => dispatch("recordingEngine", "getConfig", "query", input),
3574
- updateConfig: (input) => dispatch("recordingEngine", "updateConfig", "mutation", input),
3575
- getPlaylist: (input) => dispatch("recordingEngine", "getPlaylist", "query", input),
3576
- getThumbnail: (input) => dispatch("recordingEngine", "getThumbnail", "query", input),
3577
- getSegments: (input) => dispatch("recordingEngine", "getSegments", "query", input),
3578
- getAvailability: (input) => dispatch("recordingEngine", "getAvailability", "query", input),
3579
- estimateStorage: (input) => dispatch("recordingEngine", "estimateStorage", "query", input),
3580
- estimateGlobalStorage: (input) => dispatch("recordingEngine", "estimateGlobalStorage", "query", input),
3581
- getStorageUsage: (input) => dispatch("recordingEngine", "getStorageUsage", "query", input),
3582
- setPolicy: (input) => dispatch("recordingEngine", "setPolicy", "mutation", input),
3583
- getPolicy: (input) => dispatch("recordingEngine", "getPolicy", "query", input),
3584
- getRetentionConfig: (input) => dispatch("recordingEngine", "getRetentionConfig", "query", input),
3585
- updateRetentionConfig: (input) => dispatch("recordingEngine", "updateRetentionConfig", "mutation", input),
3586
- getMotionStats: (input) => dispatch("recordingEngine", "getMotionStats", "query", input)
4273
+ const recordingInterface = {
4274
+ getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input)
3587
4275
  };
3588
4276
  const settingsStoreInterface = {
3589
4277
  get: (input) => dispatch("settingsStore", "get", "query", input),
@@ -3593,6 +4281,7 @@ function createSystemProxy(api) {
3593
4281
  update: (input) => dispatch("settingsStore", "update", "mutation", input),
3594
4282
  delete: (input) => dispatch("settingsStore", "delete", "mutation", input),
3595
4283
  count: (input) => dispatch("settingsStore", "count", "query", input),
4284
+ histogram: (input) => dispatch("settingsStore", "histogram", "query", input),
3596
4285
  isEmpty: (input) => dispatch("settingsStore", "isEmpty", "query", input),
3597
4286
  declareCollection: (input) => dispatch("settingsStore", "declareCollection", "mutation", input)
3598
4287
  };
@@ -3613,6 +4302,7 @@ function createSystemProxy(api) {
3613
4302
  endDownload: (input) => dispatch("storage", "endDownload", "mutation", input),
3614
4303
  listLocations: (input) => dispatch("storage", "listLocations", "query", input),
3615
4304
  getDefaultLocation: (input) => dispatch("storage", "getDefaultLocation", "query", input),
4305
+ listLocationDeclarations: (input) => dispatch("storage", "listLocationDeclarations", "query", input),
3616
4306
  upsertLocation: (input) => dispatch("storage", "upsertLocation", "mutation", input),
3617
4307
  deleteLocation: (input) => dispatch("storage", "deleteLocation", "mutation", input),
3618
4308
  testLocation: (input) => dispatch("storage", "testLocation", "query", input),
@@ -3623,6 +4313,7 @@ function createSystemProxy(api) {
3623
4313
  listAllCameraStreams: (input) => dispatch("streamBroker", "listAllCameraStreams", "query", input),
3624
4314
  listAllProfileSlots: (input) => dispatch("streamBroker", "listAllProfileSlots", "query", input),
3625
4315
  getBrokerStats: (input) => dispatch("streamBroker", "getBrokerStats", "query", input),
4316
+ probeStream: (input) => dispatch("streamBroker", "probeStream", "mutation", input),
3626
4317
  listClients: (input) => dispatch("streamBroker", "listClients", "query", input),
3627
4318
  killClient: (input) => dispatch("streamBroker", "killClient", "mutation", input),
3628
4319
  getStreamUrl: (input) => dispatch("streamBroker", "getStreamUrl", "query", input),
@@ -3695,7 +4386,9 @@ function createSystemProxy(api) {
3695
4386
  audioAnalyzer: audioAnalyzerInterface,
3696
4387
  audioCodec: audioCodecInterface,
3697
4388
  backup: backupInterface,
4389
+ broker: brokerInterface,
3698
4390
  decoder: decoderInterface,
4391
+ deviceAdoption: deviceAdoptionInterface,
3699
4392
  deviceExport: deviceExportInterface,
3700
4393
  deviceManager: deviceManagerInterface,
3701
4394
  deviceProvider: deviceProviderInterface,
@@ -3712,8 +4405,7 @@ function createSystemProxy(api) {
3712
4405
  pipelineExecutor: pipelineExecutorInterface,
3713
4406
  pipelineOrchestrator: pipelineOrchestratorInterface,
3714
4407
  pipelineRunner: pipelineRunnerInterface,
3715
- platformProbe: platformProbeInterface,
3716
- recordingEngine: recordingEngineInterface,
4408
+ recording: recordingInterface,
3717
4409
  settingsStore: settingsStoreInterface,
3718
4410
  storage: storageInterface,
3719
4411
  streamBroker: streamBrokerInterface,
@@ -4475,6 +5167,15 @@ function customAction(input, output, options) {
4475
5167
  scope: options?.scope ?? { kind: "system" }
4476
5168
  };
4477
5169
  }
5170
+ function deviceCustomAction(input, output, options) {
5171
+ return {
5172
+ input,
5173
+ output,
5174
+ kind: options?.kind ?? "query",
5175
+ auth: options?.auth ?? "protected",
5176
+ scope: { kind: "device", ...options?.deviceTypes ? { deviceTypes: options.deviceTypes } : {} }
5177
+ };
5178
+ }
4478
5179
  const STREAM_PROFILE_META = [
4479
5180
  { profile: "main", prefix: "streamMain", label: "Main stream" },
4480
5181
  { profile: "sub", prefix: "streamSub", label: "Sub stream" },
@@ -4685,20 +5386,36 @@ const CAPABILITY_NAMES = {
4685
5386
  addons: "addons",
4686
5387
  adminUi: "admin-ui",
4687
5388
  advancedNotifier: "advanced-notifier",
5389
+ airQualitySensor: "air-quality-sensor",
5390
+ alarmPanel: "alarm-panel",
4688
5391
  alerts: "alerts",
5392
+ ambientLightSensor: "ambient-light-sensor",
4689
5393
  audioAnalysis: "audio-analysis",
4690
5394
  audioAnalyzer: "audio-analyzer",
4691
5395
  audioCodec: "audio-codec",
4692
5396
  audioMetrics: "audio-metrics",
4693
5397
  authProvider: "auth-provider",
5398
+ automationControl: "automation-control",
4694
5399
  backup: "backup",
4695
5400
  battery: "battery",
5401
+ binary: "binary",
4696
5402
  brightness: "brightness",
5403
+ broker: "broker",
5404
+ button: "button",
4697
5405
  cameraCredentials: "camera-credentials",
4698
5406
  cameraPipelineConfig: "camera-pipeline-config",
4699
5407
  cameraStreams: "camera-streams",
5408
+ carbonMonoxide: "carbon-monoxide",
5409
+ climateControl: "climate-control",
5410
+ color: "color",
5411
+ connectivity: "connectivity",
5412
+ consumables: "consumables",
5413
+ contact: "contact",
5414
+ control: "control",
5415
+ cover: "cover",
4700
5416
  decoder: "decoder",
4701
5417
  detectionPipeline: "detection-pipeline",
5418
+ deviceAdoption: "device-adoption",
4702
5419
  deviceDiscovery: "device-discovery",
4703
5420
  deviceExport: "device-export",
4704
5421
  deviceManager: "device-manager",
@@ -4708,12 +5425,24 @@ const CAPABILITY_NAMES = {
4708
5425
  deviceStatus: "device-status",
4709
5426
  doorbell: "doorbell",
4710
5427
  embeddingEncoder: "embedding-encoder",
5428
+ enumSensor: "enum-sensor",
5429
+ eventEmitter: "event-emitter",
4711
5430
  events: "events",
5431
+ fanControl: "fan-control",
4712
5432
  featureProbe: "feature-probe",
5433
+ filesystemBrowse: "filesystem-browse",
5434
+ flood: "flood",
5435
+ gas: "gas",
5436
+ humidifier: "humidifier",
5437
+ humiditySensor: "humidity-sensor",
5438
+ image: "image",
4713
5439
  integrations: "integrations",
4714
5440
  intercom: "intercom",
5441
+ lawnMowerControl: "lawn-mower-control",
4715
5442
  localNetwork: "local-network",
5443
+ lockControl: "lock-control",
4716
5444
  logDestination: "log-destination",
5445
+ mediaPlayer: "media-player",
4717
5446
  meshNetwork: "mesh-network",
4718
5447
  metricsProvider: "metrics-provider",
4719
5448
  motion: "motion",
@@ -4726,6 +5455,8 @@ const CAPABILITY_NAMES = {
4726
5455
  networkQuality: "network-quality",
4727
5456
  nodes: "nodes",
4728
5457
  notificationOutput: "notification-output",
5458
+ notifier: "notifier",
5459
+ numericSensor: "numeric-sensor",
4729
5460
  oauthIntegration: "oauth-integration",
4730
5461
  osd: "osd",
4731
5462
  pipelineAnalytics: "pipeline-analytics",
@@ -4733,19 +5464,24 @@ const CAPABILITY_NAMES = {
4733
5464
  pipelineOrchestrator: "pipeline-orchestrator",
4734
5465
  pipelineRunner: "pipeline-runner",
4735
5466
  platformProbe: "platform-probe",
5467
+ powerMeter: "power-meter",
5468
+ presence: "presence",
5469
+ pressureSensor: "pressure-sensor",
4736
5470
  privacyMask: "privacy-mask",
4737
5471
  ptz: "ptz",
4738
5472
  ptzAutotrack: "ptz-autotrack",
4739
5473
  reboot: "reboot",
4740
5474
  recording: "recording",
4741
- recordingEngine: "recording-engine",
4742
5475
  restreamer: "restreamer",
5476
+ scriptRunner: "script-runner",
4743
5477
  settingsStore: "settings-store",
5478
+ smoke: "smoke",
4744
5479
  smtpProvider: "smtp-provider",
4745
5480
  snapshot: "snapshot",
4746
5481
  snapshotProvider: "snapshot-provider",
4747
5482
  ssoBridge: "sso-bridge",
4748
5483
  storage: "storage",
5484
+ storageEvictable: "storage-evictable",
4749
5485
  storageProvider: "storage-provider",
4750
5486
  streamBroker: "stream-broker",
4751
5487
  streamCatalog: "stream-catalog",
@@ -4753,10 +5489,19 @@ const CAPABILITY_NAMES = {
4753
5489
  streamingEngine: "streaming-engine",
4754
5490
  switch: "switch",
4755
5491
  system: "system",
5492
+ tamper: "tamper",
5493
+ temperatureSensor: "temperature-sensor",
4756
5494
  toast: "toast",
4757
5495
  turnProvider: "turn-provider",
5496
+ update: "update",
4758
5497
  userManagement: "user-management",
4759
5498
  userPasskeys: "user-passkeys",
5499
+ vacuumControl: "vacuum-control",
5500
+ valve: "valve",
5501
+ vibration: "vibration",
5502
+ videoclips: "videoclips",
5503
+ waterHeater: "water-heater",
5504
+ weather: "weather",
4760
5505
  webrtc: "webrtc",
4761
5506
  webrtcSession: "webrtc-session",
4762
5507
  zoneAnalytics: "zone-analytics",
@@ -4774,20 +5519,36 @@ const CAPABILITY_ROUTER_KEYS = [
4774
5519
  { key: "addons", name: "addons" },
4775
5520
  { key: "adminUi", name: "admin-ui" },
4776
5521
  { key: "advancedNotifier", name: "advanced-notifier" },
5522
+ { key: "airQualitySensor", name: "air-quality-sensor" },
5523
+ { key: "alarmPanel", name: "alarm-panel" },
4777
5524
  { key: "alerts", name: "alerts" },
5525
+ { key: "ambientLightSensor", name: "ambient-light-sensor" },
4778
5526
  { key: "audioAnalysis", name: "audio-analysis" },
4779
5527
  { key: "audioAnalyzer", name: "audio-analyzer" },
4780
5528
  { key: "audioCodec", name: "audio-codec" },
4781
5529
  { key: "audioMetrics", name: "audio-metrics" },
4782
5530
  { key: "authProvider", name: "auth-provider" },
5531
+ { key: "automationControl", name: "automation-control" },
4783
5532
  { key: "backup", name: "backup" },
4784
5533
  { key: "battery", name: "battery" },
5534
+ { key: "binary", name: "binary" },
4785
5535
  { key: "brightness", name: "brightness" },
5536
+ { key: "broker", name: "broker" },
5537
+ { key: "button", name: "button" },
4786
5538
  { key: "cameraCredentials", name: "camera-credentials" },
4787
5539
  { key: "cameraPipelineConfig", name: "camera-pipeline-config" },
4788
5540
  { key: "cameraStreams", name: "camera-streams" },
5541
+ { key: "carbonMonoxide", name: "carbon-monoxide" },
5542
+ { key: "climateControl", name: "climate-control" },
5543
+ { key: "color", name: "color" },
5544
+ { key: "connectivity", name: "connectivity" },
5545
+ { key: "consumables", name: "consumables" },
5546
+ { key: "contact", name: "contact" },
5547
+ { key: "control", name: "control" },
5548
+ { key: "cover", name: "cover" },
4789
5549
  { key: "decoder", name: "decoder" },
4790
5550
  { key: "detectionPipeline", name: "detection-pipeline" },
5551
+ { key: "deviceAdoption", name: "device-adoption" },
4791
5552
  { key: "deviceDiscovery", name: "device-discovery" },
4792
5553
  { key: "deviceExport", name: "device-export" },
4793
5554
  { key: "deviceManager", name: "device-manager" },
@@ -4797,12 +5558,24 @@ const CAPABILITY_ROUTER_KEYS = [
4797
5558
  { key: "deviceStatus", name: "device-status" },
4798
5559
  { key: "doorbell", name: "doorbell" },
4799
5560
  { key: "embeddingEncoder", name: "embedding-encoder" },
5561
+ { key: "enumSensor", name: "enum-sensor" },
5562
+ { key: "eventEmitter", name: "event-emitter" },
4800
5563
  { key: "events", name: "events" },
5564
+ { key: "fanControl", name: "fan-control" },
4801
5565
  { key: "featureProbe", name: "feature-probe" },
5566
+ { key: "filesystemBrowse", name: "filesystem-browse" },
5567
+ { key: "flood", name: "flood" },
5568
+ { key: "gas", name: "gas" },
5569
+ { key: "humidifier", name: "humidifier" },
5570
+ { key: "humiditySensor", name: "humidity-sensor" },
5571
+ { key: "image", name: "image" },
4802
5572
  { key: "integrations", name: "integrations" },
4803
5573
  { key: "intercom", name: "intercom" },
5574
+ { key: "lawnMowerControl", name: "lawn-mower-control" },
4804
5575
  { key: "localNetwork", name: "local-network" },
5576
+ { key: "lockControl", name: "lock-control" },
4805
5577
  { key: "logDestination", name: "log-destination" },
5578
+ { key: "mediaPlayer", name: "media-player" },
4806
5579
  { key: "meshNetwork", name: "mesh-network" },
4807
5580
  { key: "metricsProvider", name: "metrics-provider" },
4808
5581
  { key: "motion", name: "motion" },
@@ -4815,6 +5588,8 @@ const CAPABILITY_ROUTER_KEYS = [
4815
5588
  { key: "networkQuality", name: "network-quality" },
4816
5589
  { key: "nodes", name: "nodes" },
4817
5590
  { key: "notificationOutput", name: "notification-output" },
5591
+ { key: "notifier", name: "notifier" },
5592
+ { key: "numericSensor", name: "numeric-sensor" },
4818
5593
  { key: "oauthIntegration", name: "oauth-integration" },
4819
5594
  { key: "osd", name: "osd" },
4820
5595
  { key: "pipelineAnalytics", name: "pipeline-analytics" },
@@ -4822,19 +5597,24 @@ const CAPABILITY_ROUTER_KEYS = [
4822
5597
  { key: "pipelineOrchestrator", name: "pipeline-orchestrator" },
4823
5598
  { key: "pipelineRunner", name: "pipeline-runner" },
4824
5599
  { key: "platformProbe", name: "platform-probe" },
5600
+ { key: "powerMeter", name: "power-meter" },
5601
+ { key: "presence", name: "presence" },
5602
+ { key: "pressureSensor", name: "pressure-sensor" },
4825
5603
  { key: "privacyMask", name: "privacy-mask" },
4826
5604
  { key: "ptz", name: "ptz" },
4827
5605
  { key: "ptzAutotrack", name: "ptz-autotrack" },
4828
5606
  { key: "reboot", name: "reboot" },
4829
5607
  { key: "recording", name: "recording" },
4830
- { key: "recordingEngine", name: "recording-engine" },
4831
5608
  { key: "restreamer", name: "restreamer" },
5609
+ { key: "scriptRunner", name: "script-runner" },
4832
5610
  { key: "settingsStore", name: "settings-store" },
5611
+ { key: "smoke", name: "smoke" },
4833
5612
  { key: "smtpProvider", name: "smtp-provider" },
4834
5613
  { key: "snapshot", name: "snapshot" },
4835
5614
  { key: "snapshotProvider", name: "snapshot-provider" },
4836
5615
  { key: "ssoBridge", name: "sso-bridge" },
4837
5616
  { key: "storage", name: "storage" },
5617
+ { key: "storageEvictable", name: "storage-evictable" },
4838
5618
  { key: "storageProvider", name: "storage-provider" },
4839
5619
  { key: "streamBroker", name: "stream-broker" },
4840
5620
  { key: "streamCatalog", name: "stream-catalog" },
@@ -4842,10 +5622,19 @@ const CAPABILITY_ROUTER_KEYS = [
4842
5622
  { key: "streamingEngine", name: "streaming-engine" },
4843
5623
  { key: "switch", name: "switch" },
4844
5624
  { key: "system", name: "system" },
5625
+ { key: "tamper", name: "tamper" },
5626
+ { key: "temperatureSensor", name: "temperature-sensor" },
4845
5627
  { key: "toast", name: "toast" },
4846
5628
  { key: "turnProvider", name: "turn-provider" },
5629
+ { key: "update", name: "update" },
4847
5630
  { key: "userManagement", name: "user-management" },
4848
5631
  { key: "userPasskeys", name: "user-passkeys" },
5632
+ { key: "vacuumControl", name: "vacuum-control" },
5633
+ { key: "valve", name: "valve" },
5634
+ { key: "vibration", name: "vibration" },
5635
+ { key: "videoclips", name: "videoclips" },
5636
+ { key: "waterHeater", name: "water-heater" },
5637
+ { key: "weather", name: "weather" },
4849
5638
  { key: "webrtc", name: "webrtc" },
4850
5639
  { key: "webrtcSession", name: "webrtc-session" },
4851
5640
  { key: "zoneAnalytics", name: "zone-analytics" },
@@ -4863,20 +5652,36 @@ const ALL_CAPABILITY_DEFINITIONS = [
4863
5652
  index.addonsCapability,
4864
5653
  index.adminUiCapability,
4865
5654
  index.advancedNotifierCapability,
5655
+ index.airQualitySensorCapability,
5656
+ index.alarmPanelCapability,
4866
5657
  index.alertsCapability,
5658
+ index.ambientLightSensorCapability,
4867
5659
  index.audioAnalysisCapability,
4868
5660
  index.audioAnalyzerCapability,
4869
5661
  index.audioCodecCapability,
4870
5662
  index.audioMetricsCapability,
4871
5663
  index.authProviderCapability,
5664
+ index.automationControlCapability,
4872
5665
  index.backupCapability,
4873
5666
  index.batteryCapability,
5667
+ index.binaryCapability,
4874
5668
  index.brightnessCapability,
5669
+ index.brokerCapability,
5670
+ index.buttonCapability,
4875
5671
  index.cameraCredentialsCapability,
4876
5672
  index.cameraPipelineConfigCapability,
4877
5673
  index.cameraStreamsCapability,
5674
+ index.carbonMonoxideCapability,
5675
+ index.climateControlCapability,
5676
+ index.colorCapability,
5677
+ index.connectivityCapability,
5678
+ index.consumablesCapability,
5679
+ index.contactCapability,
5680
+ index.controlCapability,
5681
+ index.coverCapability,
4878
5682
  index.decoderCapability,
4879
5683
  index.detectionPipelineCapability,
5684
+ index.deviceAdoptionCapability,
4880
5685
  index.deviceDiscoveryCapability,
4881
5686
  index.deviceExportCapability,
4882
5687
  index.deviceManagerCapability,
@@ -4886,12 +5691,24 @@ const ALL_CAPABILITY_DEFINITIONS = [
4886
5691
  index.deviceStatusCapability,
4887
5692
  index.doorbellCapability,
4888
5693
  index.embeddingEncoderCapability,
5694
+ index.enumSensorCapability,
5695
+ index.eventEmitterCapability,
4889
5696
  index.eventsCapability,
5697
+ index.fanControlCapability,
4890
5698
  index.featureProbeCapability,
5699
+ index.filesystemBrowseCapability,
5700
+ index.floodCapability,
5701
+ index.gasCapability,
5702
+ index.humidifierCapability,
5703
+ index.humiditySensorCapability,
5704
+ index.imageCapability,
4891
5705
  index.integrationsCapability,
4892
5706
  index.intercomCapability,
5707
+ index.lawnMowerControlCapability,
4893
5708
  index.localNetworkCapability,
5709
+ index.lockControlCapability,
4894
5710
  index.logDestinationCapability,
5711
+ index.mediaPlayerCapability,
4895
5712
  index.meshNetworkCapability,
4896
5713
  index.metricsProviderCapability,
4897
5714
  index.motionCapability,
@@ -4904,6 +5721,8 @@ const ALL_CAPABILITY_DEFINITIONS = [
4904
5721
  index.networkQualityCapability,
4905
5722
  index.nodesCapability,
4906
5723
  index.notificationOutputCapability,
5724
+ index.notifierCapability,
5725
+ index.numericSensorCapability,
4907
5726
  index.oauthIntegrationCapability,
4908
5727
  index.osdCapability,
4909
5728
  index.pipelineAnalyticsCapability,
@@ -4911,19 +5730,24 @@ const ALL_CAPABILITY_DEFINITIONS = [
4911
5730
  index.pipelineOrchestratorCapability,
4912
5731
  index.pipelineRunnerCapability,
4913
5732
  index.platformProbeCapability,
5733
+ index.powerMeterCapability,
5734
+ index.presenceCapability,
5735
+ index.pressureSensorCapability,
4914
5736
  index.privacyMaskCapability,
4915
5737
  index.ptzCapability,
4916
5738
  index.ptzAutotrackCapability,
4917
5739
  index.rebootCapability,
4918
5740
  index.recordingCapability,
4919
- index.recordingEngineCapability,
4920
5741
  index.restreamerCapability,
5742
+ index.scriptRunnerCapability,
4921
5743
  index.settingsStoreCapability,
5744
+ index.smokeCapability,
4922
5745
  index.smtpProviderCapability,
4923
5746
  index.snapshotCapability,
4924
5747
  index.snapshotProviderCapability,
4925
5748
  index.ssoBridgeCapability,
4926
5749
  index.storageCapability,
5750
+ index.storageEvictableCapability,
4927
5751
  index.storageProviderCapability,
4928
5752
  index.streamBrokerCapability,
4929
5753
  index.streamCatalogCapability,
@@ -4931,10 +5755,19 @@ const ALL_CAPABILITY_DEFINITIONS = [
4931
5755
  index.streamingEngineCapability,
4932
5756
  index.switchCapability,
4933
5757
  index.systemCapability,
5758
+ index.tamperCapability,
5759
+ index.temperatureSensorCapability,
4934
5760
  index.toastCapability,
4935
5761
  index.turnProviderCapability,
5762
+ index.updateCapability,
4936
5763
  index.userManagementCapability,
4937
5764
  index.userPasskeysCapability,
5765
+ index.vacuumControlCapability,
5766
+ index.valveCapability,
5767
+ index.vibrationCapability,
5768
+ index.videoclipsCapability,
5769
+ index.waterHeaterCapability,
5770
+ index.weatherCapability,
4938
5771
  index.webrtcCapability,
4939
5772
  index.webrtcSessionCapability,
4940
5773
  index.zoneAnalyticsCapability,
@@ -4943,29 +5776,72 @@ const ALL_CAPABILITY_DEFINITIONS = [
4943
5776
  ];
4944
5777
  const CAP_NAMES_WITH_STATUS = [
4945
5778
  "accessories",
5779
+ "air-quality-sensor",
5780
+ "alarm-panel",
5781
+ "ambient-light-sensor",
5782
+ "automation-control",
4946
5783
  "battery",
5784
+ "binary",
4947
5785
  "brightness",
5786
+ "broker",
4948
5787
  "camera-credentials",
5788
+ "carbon-monoxide",
5789
+ "climate-control",
5790
+ "color",
5791
+ "connectivity",
5792
+ "consumables",
5793
+ "contact",
5794
+ "control",
5795
+ "cover",
5796
+ "device-adoption",
4949
5797
  "device-discovery",
4950
5798
  "device-export",
4951
5799
  "device-status",
4952
5800
  "doorbell",
5801
+ "enum-sensor",
5802
+ "event-emitter",
5803
+ "fan-control",
4953
5804
  "feature-probe",
5805
+ "flood",
5806
+ "gas",
5807
+ "humidifier",
5808
+ "humidity-sensor",
5809
+ "image",
4954
5810
  "intercom",
5811
+ "lawn-mower-control",
5812
+ "lock-control",
5813
+ "media-player",
4955
5814
  "motion",
4956
5815
  "motion-trigger",
4957
5816
  "motion-zones",
4958
5817
  "mqtt-broker",
4959
5818
  "native-object-detection",
5819
+ "notifier",
5820
+ "numeric-sensor",
4960
5821
  "osd",
5822
+ "power-meter",
5823
+ "presence",
5824
+ "pressure-sensor",
4961
5825
  "privacy-mask",
4962
5826
  "ptz",
4963
5827
  "ptz-autotrack",
5828
+ "recording",
5829
+ "script-runner",
5830
+ "smoke",
4964
5831
  "snapshot",
4965
5832
  "stream-params",
4966
- "switch"
5833
+ "switch",
5834
+ "tamper",
5835
+ "temperature-sensor",
5836
+ "update",
5837
+ "vacuum-control",
5838
+ "valve",
5839
+ "vibration",
5840
+ "water-heater",
5841
+ "weather"
4967
5842
  ];
4968
5843
  const METHOD_ACCESS_MAP = Object.freeze({
5844
+ "accessories.setChildHidden": { capName: "accessories", capScope: "device", addonId: null, access: "create" },
4969
5845
  "addonPages.listPages": { capName: "addon-pages", capScope: "system", addonId: null, access: "view" },
4970
5846
  "addonPagesSource.listPages": { capName: "addon-pages-source", capScope: "system", addonId: null, access: "view" },
4971
5847
  "addonRoutes.getRoutes": { capName: "addon-routes", capScope: "system", addonId: null, access: "view" },
@@ -5017,6 +5893,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
5017
5893
  "advancedNotifier.getRules": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "view" },
5018
5894
  "advancedNotifier.testRule": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "create" },
5019
5895
  "advancedNotifier.upsertRule": { capName: "advanced-notifier", capScope: "system", addonId: null, access: "create" },
5896
+ "alarmPanel.arm": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5897
+ "alarmPanel.disarm": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5898
+ "alarmPanel.trigger": { capName: "alarm-panel", capScope: "device", addonId: null, access: "create" },
5020
5899
  "alerts.dismiss": { capName: "alerts", capScope: "system", addonId: null, access: "create" },
5021
5900
  "alerts.emit": { capName: "alerts", capScope: "system", addonId: null, access: "create" },
5022
5901
  "alerts.getUnreadCount": { capName: "alerts", capScope: "system", addonId: null, access: "view" },
@@ -5047,6 +5926,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
5047
5926
  "authProvider.handleCallback": { capName: "auth-provider", capScope: "system", addonId: null, access: "create" },
5048
5927
  "authProvider.validateCredentials": { capName: "auth-provider", capScope: "system", addonId: null, access: "create" },
5049
5928
  "authProvider.validateToken": { capName: "auth-provider", capScope: "system", addonId: null, access: "view" },
5929
+ "automationControl.disable": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5930
+ "automationControl.enable": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5931
+ "automationControl.trigger": { capName: "automation-control", capScope: "device", addonId: null, access: "create" },
5050
5932
  "backup.delete": { capName: "backup", capScope: "system", addonId: null, access: "delete" },
5051
5933
  "backup.getEntries": { capName: "backup", capScope: "system", addonId: null, access: "view" },
5052
5934
  "backup.list": { capName: "backup", capScope: "system", addonId: null, access: "view" },
@@ -5057,11 +5939,45 @@ const METHOD_ACCESS_MAP = Object.freeze({
5057
5939
  "backup.restore": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5058
5940
  "backup.trigger": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5059
5941
  "backup.upsertDestinationPolicy": { capName: "backup", capScope: "system", addonId: null, access: "create" },
5942
+ "battery.wakeForStream": { capName: "battery", capScope: "device", addonId: null, access: "create" },
5060
5943
  "brightness.setBrightness": { capName: "brightness", capScope: "device", addonId: null, access: "create" },
5944
+ "broker.add": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5945
+ "broker.get": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5946
+ "broker.getBrokerConfig": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5947
+ "broker.getSettings": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5948
+ "broker.getSettingsSchema": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5949
+ "broker.getState": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5950
+ "broker.getStatus": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5951
+ "broker.list": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5952
+ "broker.listProviders": { capName: "broker", capScope: "system", addonId: null, access: "view" },
5953
+ "broker.publish": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5954
+ "broker.remove": { capName: "broker", capScope: "system", addonId: null, access: "delete" },
5955
+ "broker.setSettings": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5956
+ "broker.subscribe": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5957
+ "broker.testConnection": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5958
+ "broker.testSettings": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5959
+ "broker.unsubscribe": { capName: "broker", capScope: "system", addonId: null, access: "create" },
5960
+ "button.press": { capName: "button", capScope: "device", addonId: null, access: "create" },
5061
5961
  "cameraCredentials.getCredentials": { capName: "camera-credentials", capScope: "device", addonId: null, access: "view" },
5062
5962
  "cameraStreams.getBrokerStreams": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5063
5963
  "cameraStreams.getCameraStreams": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5964
+ "cameraStreams.getProfileRtspEntries": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5064
5965
  "cameraStreams.getRtspEntries": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5966
+ "cameraStreams.pickStream": { capName: "camera-streams", capScope: "device", addonId: null, access: "view" },
5967
+ "climateControl.setFanMode": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5968
+ "climateControl.setMode": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5969
+ "climateControl.setPreset": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5970
+ "climateControl.setTarget": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5971
+ "climateControl.setTargetHumidity": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5972
+ "climateControl.setTargetRange": { capName: "climate-control", capScope: "device", addonId: null, access: "create" },
5973
+ "color.setColor": { capName: "color", capScope: "device", addonId: null, access: "create" },
5974
+ "consumables.reset": { capName: "consumables", capScope: "device", addonId: null, access: "delete" },
5975
+ "control.setValue": { capName: "control", capScope: "device", addonId: null, access: "create" },
5976
+ "cover.close": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5977
+ "cover.open": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5978
+ "cover.setPosition": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5979
+ "cover.setTiltPosition": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5980
+ "cover.stop": { capName: "cover", capScope: "device", addonId: null, access: "create" },
5065
5981
  "decoder.createSession": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5066
5982
  "decoder.destroySession": { capName: "decoder", capScope: "system", addonId: null, access: "delete" },
5067
5983
  "decoder.getFrame": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
@@ -5076,6 +5992,13 @@ const METHOD_ACCESS_MAP = Object.freeze({
5076
5992
  "decoder.reprobeHwaccel": { capName: "decoder", capScope: "system", addonId: null, access: "create" },
5077
5993
  "decoder.supportsCodec": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5078
5994
  "decoder.updateConfig": { capName: "decoder", capScope: "system", addonId: null, access: "view" },
5995
+ "deviceAdoption.adopt": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5996
+ "deviceAdoption.getCandidate": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5997
+ "deviceAdoption.listCandidateFilters": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5998
+ "deviceAdoption.listCandidates": { capName: "device-adoption", capScope: "system", addonId: null, access: "view" },
5999
+ "deviceAdoption.refresh": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
6000
+ "deviceAdoption.release": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
6001
+ "deviceAdoption.resync": { capName: "device-adoption", capScope: "system", addonId: null, access: "create" },
5079
6002
  "deviceDiscovery.adoptDevice": { capName: "device-discovery", capScope: "device", addonId: null, access: "create" },
5080
6003
  "deviceDiscovery.listDiscovered": { capName: "device-discovery", capScope: "device", addonId: null, access: "view" },
5081
6004
  "deviceDiscovery.refreshDiscovery": { capName: "device-discovery", capScope: "device", addonId: null, access: "create" },
@@ -5087,7 +6010,12 @@ const METHOD_ACCESS_MAP = Object.freeze({
5087
6010
  "deviceExport.unexposeDevice": { capName: "device-export", capScope: "system", addonId: null, access: "create" },
5088
6011
  "deviceManager.addLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5089
6012
  "deviceManager.adoptDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6013
+ "deviceManager.adoptionAdopt": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6014
+ "deviceManager.adoptionListCandidates": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
6015
+ "deviceManager.adoptionRefresh": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6016
+ "deviceManager.adoptionRelease": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5090
6017
  "deviceManager.allocateDeviceId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6018
+ "deviceManager.applyInitialMeta": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5091
6019
  "deviceManager.createDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5092
6020
  "deviceManager.disable": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5093
6021
  "deviceManager.discoverDevices": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
@@ -5105,6 +6033,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5105
6033
  "deviceManager.getSettingsSchema": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5106
6034
  "deviceManager.getStreamProfileMap": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5107
6035
  "deviceManager.getStreamSources": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
6036
+ "deviceManager.getWireableFields": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5108
6037
  "deviceManager.listAll": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5109
6038
  "deviceManager.listBindableCapsForDeviceType": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
5110
6039
  "deviceManager.listLocations": { capName: "device-manager", capScope: "system", addonId: null, access: "view" },
@@ -5117,13 +6046,22 @@ const METHOD_ACCESS_MAP = Object.freeze({
5117
6046
  "deviceManager.probeStreams": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5118
6047
  "deviceManager.registerDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5119
6048
  "deviceManager.remove": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
6049
+ "deviceManager.removeByIntegration": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
5120
6050
  "deviceManager.removeDevice": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
5121
6051
  "deviceManager.removeLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "delete" },
6052
+ "deviceManager.runDeviceAction": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6053
+ "deviceManager.setChildLayout": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6054
+ "deviceManager.setDeviceLinks": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5122
6055
  "deviceManager.setDisabled": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6056
+ "deviceManager.setIntegrationId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6057
+ "deviceManager.setLinkDeviceId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5123
6058
  "deviceManager.setLocation": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5124
6059
  "deviceManager.setMetadata": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5125
6060
  "deviceManager.setName": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6061
+ "deviceManager.setPrimaryChildEntityId": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6062
+ "deviceManager.setRole": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5126
6063
  "deviceManager.setStreamProfileMap": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
6064
+ "deviceManager.setType": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5127
6065
  "deviceManager.setWrapperActive": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5128
6066
  "deviceManager.testCreationField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5129
6067
  "deviceManager.testField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
@@ -5131,9 +6069,11 @@ const METHOD_ACCESS_MAP = Object.freeze({
5131
6069
  "deviceManager.updateDeviceField": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5132
6070
  "deviceManager.updateDeviceFieldsBatch": { capName: "device-manager", capScope: "system", addonId: null, access: "create" },
5133
6071
  "deviceOps.getConfigEntries": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
6072
+ "deviceOps.getRawState": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5134
6073
  "deviceOps.getSettingsSchema": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5135
6074
  "deviceOps.getStreamSources": { capName: "device-ops", capScope: "device", addonId: null, access: "view" },
5136
6075
  "deviceOps.removeDevice": { capName: "device-ops", capScope: "device", addonId: null, access: "delete" },
6076
+ "deviceOps.runAction": { capName: "device-ops", capScope: "device", addonId: null, access: "create" },
5137
6077
  "deviceOps.setConfig": { capName: "device-ops", capScope: "device", addonId: null, access: "create" },
5138
6078
  "deviceProvider.adoptDiscoveredDevice": { capName: "device-provider", capScope: "system", addonId: null, access: "create" },
5139
6079
  "deviceProvider.createDevice": { capName: "device-provider", capScope: "system", addonId: null, access: "create" },
@@ -5156,6 +6096,16 @@ const METHOD_ACCESS_MAP = Object.freeze({
5156
6096
  "events.getEventClipUrl": { capName: "events", capScope: "device", addonId: null, access: "view" },
5157
6097
  "events.getEvents": { capName: "events", capScope: "device", addonId: null, access: "view" },
5158
6098
  "events.getEventThumbnail": { capName: "events", capScope: "device", addonId: null, access: "view" },
6099
+ "fanControl.setDirection": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6100
+ "fanControl.setOscillating": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6101
+ "fanControl.setPercentage": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6102
+ "fanControl.setPreset": { capName: "fan-control", capScope: "device", addonId: null, access: "create" },
6103
+ "filesystemBrowse.browse": { capName: "filesystem-browse", capScope: "system", addonId: null, access: "view" },
6104
+ "filesystemBrowse.createDir": { capName: "filesystem-browse", capScope: "system", addonId: null, access: "create" },
6105
+ "filesystemBrowse.listAllowedRoots": { capName: "filesystem-browse", capScope: "system", addonId: null, access: "view" },
6106
+ "humidifier.setMode": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
6107
+ "humidifier.setOn": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
6108
+ "humidifier.setTargetHumidity": { capName: "humidifier", capScope: "device", addonId: null, access: "create" },
5159
6109
  "integrations.create": { capName: "integrations", capScope: "system", addonId: null, access: "create" },
5160
6110
  "integrations.delete": { capName: "integrations", capScope: "system", addonId: null, access: "delete" },
5161
6111
  "integrations.get": { capName: "integrations", capScope: "system", addonId: null, access: "view" },
@@ -5168,18 +6118,36 @@ const METHOD_ACCESS_MAP = Object.freeze({
5168
6118
  "integrations.update": { capName: "integrations", capScope: "system", addonId: null, access: "create" },
5169
6119
  "intercom.endTalkSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5170
6120
  "intercom.handleAnswer": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5171
- "intercom.pushTalkPcm": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
6121
+ "intercom.pushTalkAudio": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5172
6122
  "intercom.startSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5173
6123
  "intercom.startTalkSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
5174
6124
  "intercom.stopSession": { capName: "intercom", capScope: "device", addonId: null, access: "create" },
6125
+ "lawnMowerControl.dock": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
6126
+ "lawnMowerControl.pause": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
6127
+ "lawnMowerControl.startMowing": { capName: "lawn-mower-control", capScope: "device", addonId: null, access: "create" },
5175
6128
  "localNetwork.getAllowedAddresses": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5176
6129
  "localNetwork.getConnectionEndpoints": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5177
6130
  "localNetwork.getPreferred": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5178
6131
  "localNetwork.list": { capName: "local-network", capScope: "system", addonId: null, access: "view" },
5179
6132
  "localNetwork.resetAllowlistToBestMatch": { capName: "local-network", capScope: "system", addonId: null, access: "delete" },
5180
6133
  "localNetwork.setAllowedAddresses": { capName: "local-network", capScope: "system", addonId: null, access: "create" },
6134
+ "lockControl.lock": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
6135
+ "lockControl.open": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
6136
+ "lockControl.unlock": { capName: "lock-control", capScope: "device", addonId: null, access: "create" },
5181
6137
  "logDestination.query": { capName: "log-destination", capScope: "system", addonId: null, access: "view" },
5182
6138
  "logDestination.write": { capName: "log-destination", capScope: "system", addonId: null, access: "create" },
6139
+ "mediaPlayer.next": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6140
+ "mediaPlayer.pause": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6141
+ "mediaPlayer.play": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6142
+ "mediaPlayer.playMedia": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6143
+ "mediaPlayer.previous": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6144
+ "mediaPlayer.seek": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6145
+ "mediaPlayer.selectSource": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6146
+ "mediaPlayer.setMute": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6147
+ "mediaPlayer.setRepeat": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6148
+ "mediaPlayer.setShuffle": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6149
+ "mediaPlayer.setVolume": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
6150
+ "mediaPlayer.stop": { capName: "media-player", capScope: "device", addonId: null, access: "create" },
5183
6151
  "meshNetwork.getStatus": { capName: "mesh-network", capScope: "system", addonId: null, access: "view" },
5184
6152
  "meshNetwork.join": { capName: "mesh-network", capScope: "system", addonId: null, access: "create" },
5185
6153
  "meshNetwork.leave": { capName: "mesh-network", capScope: "system", addonId: null, access: "create" },
@@ -5237,17 +6205,21 @@ const METHOD_ACCESS_MAP = Object.freeze({
5237
6205
  "nodes.undeployAddon": { capName: "nodes", capScope: "system", addonId: null, access: "create" },
5238
6206
  "notificationOutput.send": { capName: "notification-output", capScope: "system", addonId: null, access: "create" },
5239
6207
  "notificationOutput.sendTest": { capName: "notification-output", capScope: "system", addonId: null, access: "create" },
6208
+ "notifier.cancel": { capName: "notifier", capScope: "device", addonId: null, access: "create" },
6209
+ "notifier.send": { capName: "notifier", capScope: "device", addonId: null, access: "create" },
5240
6210
  "oauthIntegration.getDescriptor": { capName: "oauth-integration", capScope: "system", addonId: null, access: "view" },
5241
6211
  "osd.setOverlay": { capName: "osd", capScope: "device", addonId: null, access: "create" },
5242
6212
  "pipelineAnalytics.clearTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "delete" },
5243
6213
  "pipelineAnalytics.getActiveTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5244
6214
  "pipelineAnalytics.getAudioEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
6215
+ "pipelineAnalytics.getEventDensity": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5245
6216
  "pipelineAnalytics.getEventMedia": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5246
6217
  "pipelineAnalytics.getMotionEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5247
6218
  "pipelineAnalytics.getObjectEvents": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5248
6219
  "pipelineAnalytics.getTrack": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5249
6220
  "pipelineAnalytics.getTrackMedia": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
5250
6221
  "pipelineAnalytics.listTracks": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "view" },
6222
+ "pipelineAnalytics.pruneEventsBefore": { capName: "pipeline-analytics", capScope: "device", addonId: null, access: "create" },
5251
6223
  "pipelineExecutor.cacheFrameInPool": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "create" },
5252
6224
  "pipelineExecutor.deleteModel": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "delete" },
5253
6225
  "pipelineExecutor.deleteTemplate": { capName: "pipeline-executor", capScope: "system", addonId: null, access: "delete" },
@@ -5326,7 +6298,9 @@ const METHOD_ACCESS_MAP = Object.freeze({
5326
6298
  "pipelineRunner.reportMotion": { capName: "pipeline-runner", capScope: "system", addonId: null, access: "create" },
5327
6299
  "platformProbe.getCapabilities": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5328
6300
  "platformProbe.getHardware": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6301
+ "platformProbe.getHardwareDecodeAccels": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5329
6302
  "platformProbe.getHardwareEncoders": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
6303
+ "platformProbe.refreshHardwareDecodeAccels": { capName: "platform-probe", capScope: "system", addonId: null, access: "create" },
5330
6304
  "platformProbe.refreshHardwareEncoders": { capName: "platform-probe", capScope: "system", addonId: null, access: "create" },
5331
6305
  "platformProbe.resolveHwAccel": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
5332
6306
  "platformProbe.resolveInferenceConfig": { capName: "platform-probe", capScope: "system", addonId: null, access: "view" },
@@ -5348,34 +6322,23 @@ const METHOD_ACCESS_MAP = Object.freeze({
5348
6322
  "ptzAutotrack.setEnabled": { capName: "ptz-autotrack", capScope: "device", addonId: null, access: "create" },
5349
6323
  "ptzAutotrack.setSettings": { capName: "ptz-autotrack", capScope: "device", addonId: null, access: "create" },
5350
6324
  "reboot.reboot": { capName: "reboot", capScope: "device", addonId: null, access: "create" },
5351
- "recording.getPlaybackUrl": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5352
- "recording.getSegments": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5353
- "recording.getThumbnailAt": { capName: "recording", capScope: "device", addonId: null, access: "view" },
5354
- "recordingEngine.disable": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5355
- "recordingEngine.enable": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5356
- "recordingEngine.estimateGlobalStorage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5357
- "recordingEngine.estimateStorage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5358
- "recordingEngine.getAvailability": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5359
- "recordingEngine.getConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5360
- "recordingEngine.getMotionStats": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5361
- "recordingEngine.getPlaylist": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5362
- "recordingEngine.getPolicy": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5363
- "recordingEngine.getPolicyStatus": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5364
- "recordingEngine.getRetentionConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5365
- "recordingEngine.getSegments": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5366
- "recordingEngine.getStatus": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5367
- "recordingEngine.getStorageUsage": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5368
- "recordingEngine.getThumbnail": { capName: "recording-engine", capScope: "system", addonId: null, access: "view" },
5369
- "recordingEngine.setPolicy": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5370
- "recordingEngine.updateConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
5371
- "recordingEngine.updateRetentionConfig": { capName: "recording-engine", capScope: "system", addonId: null, access: "create" },
6325
+ "recording.getAvailability": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6326
+ "recording.getDeviceConfig": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6327
+ "recording.getPlaybackManifest": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6328
+ "recording.getStorageUsage": { capName: "recording", capScope: "system", addonId: null, access: "view" },
6329
+ "recording.pruneFootage": { capName: "recording", capScope: "system", addonId: null, access: "create" },
6330
+ "recording.rescanStorage": { capName: "recording", capScope: "system", addonId: null, access: "create" },
6331
+ "recording.setDeviceConfig": { capName: "recording", capScope: "system", addonId: null, access: "create" },
5372
6332
  "restreamer.getExposedResources": { capName: "restreamer", capScope: "system", addonId: null, access: "view" },
5373
6333
  "restreamer.registerDevice": { capName: "restreamer", capScope: "system", addonId: null, access: "create" },
5374
6334
  "restreamer.unregisterDevice": { capName: "restreamer", capScope: "system", addonId: null, access: "delete" },
6335
+ "scriptRunner.run": { capName: "script-runner", capScope: "device", addonId: null, access: "create" },
6336
+ "scriptRunner.stop": { capName: "script-runner", capScope: "device", addonId: null, access: "create" },
5375
6337
  "settingsStore.count": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5376
6338
  "settingsStore.declareCollection": { capName: "settings-store", capScope: "system", addonId: null, access: "create" },
5377
6339
  "settingsStore.delete": { capName: "settings-store", capScope: "system", addonId: null, access: "delete" },
5378
6340
  "settingsStore.get": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
6341
+ "settingsStore.histogram": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5379
6342
  "settingsStore.insert": { capName: "settings-store", capScope: "system", addonId: null, access: "create" },
5380
6343
  "settingsStore.isEmpty": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
5381
6344
  "settingsStore.query": { capName: "settings-store", capScope: "system", addonId: null, access: "view" },
@@ -5401,6 +6364,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5401
6364
  "storage.getAvailableSpace": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5402
6365
  "storage.getDefaultLocation": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5403
6366
  "storage.list": { capName: "storage", capScope: "system", addonId: null, access: "view" },
6367
+ "storage.listLocationDeclarations": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5404
6368
  "storage.listLocations": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5405
6369
  "storage.listProviders": { capName: "storage", capScope: "system", addonId: null, access: "view" },
5406
6370
  "storage.read": { capName: "storage", capScope: "system", addonId: null, access: "view" },
@@ -5411,6 +6375,8 @@ const METHOD_ACCESS_MAP = Object.freeze({
5411
6375
  "storage.upsertLocation": { capName: "storage", capScope: "system", addonId: null, access: "create" },
5412
6376
  "storage.write": { capName: "storage", capScope: "system", addonId: null, access: "create" },
5413
6377
  "storage.writeChunk": { capName: "storage", capScope: "system", addonId: null, access: "create" },
6378
+ "storageEvictable.evict": { capName: "storage-evictable", capScope: "system", addonId: null, access: "create" },
6379
+ "storageEvictable.getEvictableUsage": { capName: "storage-evictable", capScope: "system", addonId: null, access: "view" },
5414
6380
  "storageProvider.abortUpload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
5415
6381
  "storageProvider.beginDownload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
5416
6382
  "storageProvider.beginUpload": { capName: "storage-provider", capScope: "system", addonId: null, access: "create" },
@@ -5440,6 +6406,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5440
6406
  "streamBroker.listAllCameraStreams": { capName: "stream-broker", capScope: "system", addonId: null, access: "view" },
5441
6407
  "streamBroker.listAllProfileSlots": { capName: "stream-broker", capScope: "system", addonId: null, access: "view" },
5442
6408
  "streamBroker.listClients": { capName: "stream-broker", capScope: "system", addonId: null, access: "view" },
6409
+ "streamBroker.probeStream": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
5443
6410
  "streamBroker.publishCameraStream": { capName: "stream-broker", capScope: "system", addonId: null, access: "create" },
5444
6411
  "streamBroker.pullAudioChunks": { capName: "stream-broker", capScope: "system", addonId: null, access: "view" },
5445
6412
  "streamBroker.pullFrameHandles": { capName: "stream-broker", capScope: "system", addonId: null, access: "view" },
@@ -5472,6 +6439,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5472
6439
  "system.setRetentionConfig": { capName: "system", capScope: "system", addonId: null, access: "create" },
5473
6440
  "toast.onToast": { capName: "toast", capScope: "system", addonId: null, access: "view" },
5474
6441
  "turnProvider.getTurnServers": { capName: "turn-provider", capScope: "system", addonId: null, access: "view" },
6442
+ "update.installUpdate": { capName: "update", capScope: "device", addonId: null, access: "create" },
5475
6443
  "userManagement.confirmTotp": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
5476
6444
  "userManagement.createApiKey": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
5477
6445
  "userManagement.createScopedToken": { capName: "user-management", capScope: "system", addonId: null, access: "create" },
@@ -5504,6 +6472,21 @@ const METHOD_ACCESS_MAP = Object.freeze({
5504
6472
  "userPasskeys.finishRegistration": { capName: "user-passkeys", capScope: "system", addonId: null, access: "create" },
5505
6473
  "userPasskeys.listPasskeys": { capName: "user-passkeys", capScope: "system", addonId: null, access: "view" },
5506
6474
  "userPasskeys.removePasskey": { capName: "user-passkeys", capScope: "system", addonId: null, access: "delete" },
6475
+ "vacuumControl.locate": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6476
+ "vacuumControl.pause": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6477
+ "vacuumControl.returnToBase": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6478
+ "vacuumControl.setFanSpeed": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6479
+ "vacuumControl.start": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6480
+ "vacuumControl.stop": { capName: "vacuum-control", capScope: "device", addonId: null, access: "create" },
6481
+ "valve.close": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6482
+ "valve.open": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6483
+ "valve.setPosition": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6484
+ "valve.stop": { capName: "valve", capScope: "device", addonId: null, access: "create" },
6485
+ "videoclips.getClipPlayback": { capName: "videoclips", capScope: "device", addonId: null, access: "view" },
6486
+ "videoclips.listClips": { capName: "videoclips", capScope: "device", addonId: null, access: "view" },
6487
+ "waterHeater.setAway": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
6488
+ "waterHeater.setOperationMode": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
6489
+ "waterHeater.setTargetTemp": { capName: "water-heater", capScope: "device", addonId: null, access: "create" },
5507
6490
  "webrtc.closeSession": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5508
6491
  "webrtc.createSession": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
5509
6492
  "webrtc.handleAnswer": { capName: "webrtc", capScope: "system", addonId: null, access: "create" },
@@ -5516,6 +6499,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5516
6499
  "webrtcSession.closeSession": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5517
6500
  "webrtcSession.createSession": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5518
6501
  "webrtcSession.getIceCandidates": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
6502
+ "webrtcSession.getSessionState": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
5519
6503
  "webrtcSession.handleAnswer": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5520
6504
  "webrtcSession.handleOffer": { capName: "webrtc-session", capScope: "device", addonId: null, access: "create" },
5521
6505
  "webrtcSession.hasAdaptiveBitrate": { capName: "webrtc-session", capScope: "device", addonId: null, access: "view" },
@@ -5532,6 +6516,7 @@ const METHOD_ACCESS_MAP = Object.freeze({
5532
6516
  "zones.updateZone": { capName: "zones", capScope: "device", addonId: null, access: "create" }
5533
6517
  });
5534
6518
  const KNOWN_CAP_NAMES = [
6519
+ "accessories",
5535
6520
  "addon-pages",
5536
6521
  "addon-pages-source",
5537
6522
  "addon-routes",
@@ -5541,17 +6526,28 @@ const KNOWN_CAP_NAMES = [
5541
6526
  "addons",
5542
6527
  "admin-ui",
5543
6528
  "advanced-notifier",
6529
+ "alarm-panel",
5544
6530
  "alerts",
5545
6531
  "audio-analysis",
5546
6532
  "audio-analyzer",
5547
6533
  "audio-codec",
5548
6534
  "audio-metrics",
5549
6535
  "auth-provider",
6536
+ "automation-control",
5550
6537
  "backup",
6538
+ "battery",
5551
6539
  "brightness",
6540
+ "broker",
6541
+ "button",
5552
6542
  "camera-credentials",
5553
6543
  "camera-streams",
6544
+ "climate-control",
6545
+ "color",
6546
+ "consumables",
6547
+ "control",
6548
+ "cover",
5554
6549
  "decoder",
6550
+ "device-adoption",
5555
6551
  "device-discovery",
5556
6552
  "device-export",
5557
6553
  "device-manager",
@@ -5560,10 +6556,16 @@ const KNOWN_CAP_NAMES = [
5560
6556
  "device-state",
5561
6557
  "embedding-encoder",
5562
6558
  "events",
6559
+ "fan-control",
6560
+ "filesystem-browse",
6561
+ "humidifier",
5563
6562
  "integrations",
5564
6563
  "intercom",
6564
+ "lawn-mower-control",
5565
6565
  "local-network",
6566
+ "lock-control",
5566
6567
  "log-destination",
6568
+ "media-player",
5567
6569
  "mesh-network",
5568
6570
  "metrics-provider",
5569
6571
  "motion",
@@ -5576,6 +6578,7 @@ const KNOWN_CAP_NAMES = [
5576
6578
  "network-quality",
5577
6579
  "nodes",
5578
6580
  "notification-output",
6581
+ "notifier",
5579
6582
  "oauth-integration",
5580
6583
  "osd",
5581
6584
  "pipeline-analytics",
@@ -5588,14 +6591,15 @@ const KNOWN_CAP_NAMES = [
5588
6591
  "ptz-autotrack",
5589
6592
  "reboot",
5590
6593
  "recording",
5591
- "recording-engine",
5592
6594
  "restreamer",
6595
+ "script-runner",
5593
6596
  "settings-store",
5594
6597
  "smtp-provider",
5595
6598
  "snapshot",
5596
6599
  "snapshot-provider",
5597
6600
  "sso-bridge",
5598
6601
  "storage",
6602
+ "storage-evictable",
5599
6603
  "storage-provider",
5600
6604
  "stream-broker",
5601
6605
  "stream-catalog",
@@ -5605,8 +6609,13 @@ const KNOWN_CAP_NAMES = [
5605
6609
  "system",
5606
6610
  "toast",
5607
6611
  "turn-provider",
6612
+ "update",
5608
6613
  "user-management",
5609
6614
  "user-passkeys",
6615
+ "vacuum-control",
6616
+ "valve",
6617
+ "videoclips",
6618
+ "water-heater",
5610
6619
  "webrtc",
5611
6620
  "webrtc-session",
5612
6621
  "zone-analytics",
@@ -5614,31 +6623,52 @@ const KNOWN_CAP_NAMES = [
5614
6623
  "zones"
5615
6624
  ];
5616
6625
  const DEVICE_CAP_NAMES = [
6626
+ "accessories",
6627
+ "alarm-panel",
5617
6628
  "audio-analysis",
5618
6629
  "audio-metrics",
6630
+ "automation-control",
6631
+ "battery",
5619
6632
  "brightness",
6633
+ "button",
5620
6634
  "camera-credentials",
5621
6635
  "camera-streams",
6636
+ "climate-control",
6637
+ "color",
6638
+ "consumables",
6639
+ "control",
6640
+ "cover",
5622
6641
  "device-discovery",
5623
6642
  "device-ops",
5624
6643
  "events",
6644
+ "fan-control",
6645
+ "humidifier",
5625
6646
  "intercom",
6647
+ "lawn-mower-control",
6648
+ "lock-control",
6649
+ "media-player",
5626
6650
  "motion",
5627
6651
  "motion-detection",
5628
6652
  "motion-trigger",
5629
6653
  "motion-zones",
5630
6654
  "native-object-detection",
6655
+ "notifier",
5631
6656
  "osd",
5632
6657
  "pipeline-analytics",
5633
6658
  "privacy-mask",
5634
6659
  "ptz",
5635
6660
  "ptz-autotrack",
5636
6661
  "reboot",
5637
- "recording",
6662
+ "script-runner",
5638
6663
  "snapshot",
5639
6664
  "stream-catalog",
5640
6665
  "stream-params",
5641
6666
  "switch",
6667
+ "update",
6668
+ "vacuum-control",
6669
+ "valve",
6670
+ "videoclips",
6671
+ "water-heater",
5642
6672
  "webrtc-session",
5643
6673
  "zone-analytics",
5644
6674
  "zone-rules",
@@ -5659,12 +6689,15 @@ const SYSTEM_CAP_NAMES = [
5659
6689
  "audio-codec",
5660
6690
  "auth-provider",
5661
6691
  "backup",
6692
+ "broker",
5662
6693
  "decoder",
6694
+ "device-adoption",
5663
6695
  "device-export",
5664
6696
  "device-manager",
5665
6697
  "device-provider",
5666
6698
  "device-state",
5667
6699
  "embedding-encoder",
6700
+ "filesystem-browse",
5668
6701
  "integrations",
5669
6702
  "local-network",
5670
6703
  "log-destination",
@@ -5680,13 +6713,14 @@ const SYSTEM_CAP_NAMES = [
5680
6713
  "pipeline-orchestrator",
5681
6714
  "pipeline-runner",
5682
6715
  "platform-probe",
5683
- "recording-engine",
6716
+ "recording",
5684
6717
  "restreamer",
5685
6718
  "settings-store",
5686
6719
  "smtp-provider",
5687
6720
  "snapshot-provider",
5688
6721
  "sso-bridge",
5689
6722
  "storage",
6723
+ "storage-evictable",
5690
6724
  "storage-provider",
5691
6725
  "stream-broker",
5692
6726
  "streaming-engine",
@@ -5734,6 +6768,7 @@ const SCOPE_PRESETS = [
5734
6768
  }
5735
6769
  ];
5736
6770
  const CAP_PROVIDER_KIND_MAP = Object.freeze({
6771
+ "broker": "broker",
5737
6772
  "device-export": "device-export",
5738
6773
  "mesh-network": "mesh",
5739
6774
  "mqtt-broker": "broker",
@@ -5741,6 +6776,7 @@ const CAP_PROVIDER_KIND_MAP = Object.freeze({
5741
6776
  "smtp-provider": "email"
5742
6777
  });
5743
6778
  const PROVIDER_KIND_CAP_NAMES = [
6779
+ "broker",
5744
6780
  "device-export",
5745
6781
  "mesh-network",
5746
6782
  "mqtt-broker",
@@ -5754,6 +6790,46 @@ function getCapsByProviderKind(kind) {
5754
6790
  }
5755
6791
  return out;
5756
6792
  }
6793
+ function levenshtein(a, b) {
6794
+ const m = a.length;
6795
+ const n = b.length;
6796
+ if (m === 0) return n;
6797
+ if (n === 0) return m;
6798
+ const prevRow = Array.from({ length: n + 1 }, (_, k) => k);
6799
+ const currRow = Array.from({ length: n + 1 }, () => 0);
6800
+ for (let i = 1; i <= m; i++) {
6801
+ currRow[0] = i;
6802
+ let diagVal = prevRow[0] ?? 0;
6803
+ for (let j = 1; j <= n; j++) {
6804
+ const above = prevRow[j] ?? 0;
6805
+ const left = currRow[j - 1] ?? 0;
6806
+ const cost = a.charCodeAt(i - 1) === b.charCodeAt(j - 1) ? 0 : 1;
6807
+ currRow[j] = Math.min(above + 1, left + 1, diagVal + cost);
6808
+ diagVal = above;
6809
+ }
6810
+ for (let j = 0; j <= n; j++) prevRow[j] = currRow[j] ?? 0;
6811
+ }
6812
+ return prevRow[n] ?? 0;
6813
+ }
6814
+ function locationSimilarity(a, b) {
6815
+ const x = a.trim().toLowerCase();
6816
+ const y = b.trim().toLowerCase();
6817
+ if (x === y) return 1;
6818
+ if (x.length === 0 || y.length === 0) return 0;
6819
+ return 1 - levenshtein(x, y) / Math.max(x.length, y.length);
6820
+ }
6821
+ function bestLocationMatch(externalName, existing, threshold = 0.8) {
6822
+ let best = null;
6823
+ let bestScore = 0;
6824
+ for (const name of existing) {
6825
+ const score = locationSimilarity(externalName, name);
6826
+ if (score >= threshold && score > bestScore) {
6827
+ best = name;
6828
+ bestScore = score;
6829
+ }
6830
+ }
6831
+ return best;
6832
+ }
5757
6833
  const CREDENTIAL_PARAM_PATTERNS = [
5758
6834
  /^user$/i,
5759
6835
  /^usr$/i,
@@ -5907,6 +6983,24 @@ function cellsToRects(cells, gridWidth, gridHeight, maxRegions) {
5907
6983
  h: (block.rowEnd - block.rowStart + 1) / gridHeight
5908
6984
  }));
5909
6985
  }
6986
+ function sleep(ms) {
6987
+ return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
6988
+ }
6989
+ function sleepCancellable(ms, signal) {
6990
+ if (signal.aborted) return Promise.resolve();
6991
+ return new Promise((resolve) => {
6992
+ const timer = setTimeout(() => {
6993
+ signal.removeEventListener("abort", onAbort);
6994
+ resolve();
6995
+ }, Math.max(0, ms));
6996
+ const onAbort = () => {
6997
+ clearTimeout(timer);
6998
+ signal.removeEventListener("abort", onAbort);
6999
+ resolve();
7000
+ };
7001
+ signal.addEventListener("abort", onAbort, { once: true });
7002
+ });
7003
+ }
5910
7004
  function bindAddonActions(api, addonId, catalog) {
5911
7005
  const out = {};
5912
7006
  for (const action of Object.keys(catalog)) {
@@ -5928,11 +7022,24 @@ exports.AddonAutoUpdateSchema = index.AddonAutoUpdateSchema;
5928
7022
  exports.AddonListItemSchema = index.AddonListItemSchema;
5929
7023
  exports.AddonPageDeclarationSchema = index.AddonPageDeclarationSchema;
5930
7024
  exports.AddonPageInfoSchema = index.AddonPageInfoSchema;
7025
+ exports.AdoptionAdoptInputSchema = index.AdoptInputSchema;
7026
+ exports.AdoptionAdoptResultSchema = index.AdoptResultSchema;
7027
+ exports.AdoptionFilterSchema = index.AdoptionFilterSchema;
7028
+ exports.AdoptionGetCandidateInputSchema = index.GetCandidateInputSchema;
7029
+ exports.AdoptionListCandidatesInputSchema = index.ListCandidatesInputSchema;
7030
+ exports.AdoptionListCandidatesOutputSchema = index.ListCandidatesOutputSchema;
7031
+ exports.AdoptionReleaseInputSchema = index.ReleaseInputSchema;
7032
+ exports.AdoptionStatusSchema = index.AdoptionStatusSchema;
5931
7033
  exports.AgentLoadSummarySchema = index.AgentLoadSummarySchema;
7034
+ exports.AirQualitySensorStatusSchema = index.AirQualitySensorStatusSchema;
7035
+ exports.AlarmArmModeSchema = index.AlarmArmModeSchema;
7036
+ exports.AlarmPanelStatusSchema = index.AlarmPanelStatusSchema;
7037
+ exports.AlarmStateSchema = index.AlarmStateSchema;
5932
7038
  exports.AlertSchema = index.AlertSchema;
5933
7039
  exports.AlertSeveritySchema = index.AlertSeveritySchema;
5934
7040
  exports.AlertSourceSchema = index.AlertSourceSchema;
5935
7041
  exports.AlertStatusSchema = index.AlertStatusSchema;
7042
+ exports.AmbientLightSensorStatusSchema = index.AmbientLightSensorStatusSchema;
5936
7043
  exports.ApiKeyRecordSchema = index.ApiKeyRecordSchema;
5937
7044
  exports.ApiKeySummarySchema = index.ApiKeySummarySchema;
5938
7045
  exports.ArchiveEntrySchema = index.ArchiveEntrySchema;
@@ -5945,6 +7052,7 @@ exports.AudioClassificationLabelSchema = index.AudioClassificationLabelSchema;
5945
7052
  exports.AudioClassificationResultSchema = index.AudioClassificationResultSchema;
5946
7053
  exports.AudioCodecInfoSchema = index.AudioCodecInfoSchema;
5947
7054
  exports.AudioDecodeSessionConfigSchema = index.AudioDecodeSessionConfigSchema;
7055
+ exports.AudioEncodeSchema = index.AudioEncodeSchema;
5948
7056
  exports.AudioEncodeSessionConfigSchema = index.AudioEncodeSessionConfigSchema;
5949
7057
  exports.AudioEncodedChunkSchema = index.AudioEncodedChunkSchema;
5950
7058
  exports.AudioEventSchema = index.AudioEventSchema;
@@ -5955,21 +7063,36 @@ exports.AudioMetricsSnapshotSchema = index.AudioMetricsSnapshotSchema;
5955
7063
  exports.AudioPcmChunkSchema = index.AudioPcmChunkSchema;
5956
7064
  exports.AuthResultSchema = index.AuthResultSchema;
5957
7065
  exports.AutoUpdateSettingsSchema = index.AutoUpdateSettingsSchema;
7066
+ exports.AutomationControlStatusSchema = index.AutomationControlStatusSchema;
5958
7067
  exports.AvailableIntegrationTypeSchema = index.AvailableIntegrationTypeSchema;
5959
7068
  exports.BATTERY_DEVICE_PROFILE = index.BATTERY_DEVICE_PROFILE;
5960
7069
  exports.BackupDestinationInfoSchema = index.BackupDestinationInfoSchema;
5961
7070
  exports.BackupEntrySchema = index.BackupEntrySchema;
5962
7071
  exports.BatteryStatusSchema = index.BatteryStatusSchema;
7072
+ exports.BinaryStatusSchema = index.BinaryStatusSchema;
5963
7073
  exports.BoundingBoxSchema = index.BoundingBoxSchema;
5964
7074
  exports.BrightnessStatusSchema = index.BrightnessStatusSchema;
7075
+ exports.BrokerAddInputSchema = index.AddInputSchema;
5965
7076
  exports.BrokerAudioClientSchema = index.BrokerAudioClientSchema;
5966
7077
  exports.BrokerClientsSchema = index.BrokerClientsSchema;
5967
7078
  exports.BrokerConnectionDetailsSchema = index.BrokerConnectionDetailsSchema;
7079
+ exports.BrokerConsumerAttributionSchema = index.BrokerConsumerAttributionSchema;
7080
+ exports.BrokerConsumerKindSchema = index.BrokerConsumerKindSchema;
5968
7081
  exports.BrokerDecodedClientSchema = index.BrokerDecodedClientSchema;
7082
+ exports.BrokerEncodedClientSchema = index.BrokerEncodedClientSchema;
7083
+ exports.BrokerGetStateInputSchema = index.GetStateInputSchema;
5969
7084
  exports.BrokerInfoSchema = index.BrokerInfoSchema;
7085
+ exports.BrokerProviderInfoSchema = index.BrokerProviderInfoSchema;
7086
+ exports.BrokerPublishInputSchema = index.PublishInputSchema;
7087
+ exports.BrokerRegistryStatusSchema = index.RegistryStatusSchema;
5970
7088
  exports.BrokerRtspClientSchema = index.BrokerRtspClientSchema;
5971
7089
  exports.BrokerStatsSchema = index.BrokerStatsSchema;
7090
+ exports.BrokerStatusEnum = index.BrokerStatusEnum;
5972
7091
  exports.BrokerStatusSchema = index.BrokerStatusSchema;
7092
+ exports.BrokerSubscribeInputSchema = index.SubscribeInputSchema;
7093
+ exports.BrokerSubscribeResultSchema = index.SubscribeResultSchema;
7094
+ exports.BrokerTestConnectionResultSchema = index.TestConnectionResultSchema;
7095
+ exports.BrokerUnsubscribeInputSchema = index.UnsubscribeInputSchema;
5973
7096
  exports.CAM_PROFILE_ORDER = index.CAM_PROFILE_ORDER;
5974
7097
  exports.CamProfileSchema = index.CamProfileSchema;
5975
7098
  exports.CamStreamDescriptorSchema = index.CamStreamDescriptorSchema;
@@ -5980,17 +7103,31 @@ exports.CameraCredentialsStatusSchema = index.CameraCredentialsStatusSchema;
5980
7103
  exports.CameraMetricsSchema = index.CameraMetricsSchema;
5981
7104
  exports.CameraMetricsWithDeviceIdSchema = index.CameraMetricsWithDeviceIdSchema;
5982
7105
  exports.CameraStreamSchema = index.CameraStreamSchema;
7106
+ exports.CandidateQueryFilterSchema = index.CandidateQueryFilterSchema;
5983
7107
  exports.CapScopeSchema = index.CapScopeSchema;
5984
7108
  exports.CapabilityBindingsSchema = index.CapabilityBindingsSchema;
7109
+ exports.CarbonMonoxideStatusSchema = index.CarbonMonoxideStatusSchema;
5985
7110
  exports.ChargingStatus = index.ChargingStatus;
5986
7111
  exports.ClientNetworkStatsSchema = index.ClientNetworkStatsSchema;
7112
+ exports.ClimateControlStatusSchema = index.ClimateControlStatusSchema;
7113
+ exports.ClipPlaybackSchema = index.ClipPlaybackSchema;
7114
+ exports.ClipSchema = index.ClipSchema;
5987
7115
  exports.ClusterAddonNodeDeploymentSchema = index.ClusterAddonNodeDeploymentSchema;
5988
7116
  exports.ClusterAddonStatusEntrySchema = index.ClusterAddonStatusEntrySchema;
5989
7117
  exports.CollectionColumnSchema = index.CollectionColumnSchema;
5990
7118
  exports.CollectionIndexSchema = index.CollectionIndexSchema;
7119
+ exports.ColorStatusSchema = index.ColorStatusSchema;
5991
7120
  exports.ConfigEntrySchema = index.ConfigEntrySchema;
5992
7121
  exports.ConfigSectionWithValuesSchema = index.ConfigSectionWithValuesSchema;
5993
7122
  exports.ConfigTabDeclarationSchema = index.ConfigTabDeclarationSchema;
7123
+ exports.ConnectivityStatusSchema = index.ConnectivityStatusSchema;
7124
+ exports.ConsumableItemSchema = index.ConsumableItemSchema;
7125
+ exports.ConsumablesStatusSchema = index.ConsumablesStatusSchema;
7126
+ exports.ContactStatusSchema = index.ContactStatusSchema;
7127
+ exports.ControlKindSchema = index.ControlKindSchema;
7128
+ exports.ControlStatusSchema = index.ControlStatusSchema;
7129
+ exports.CoverStateSchema = index.CoverStateSchema;
7130
+ exports.CoverStatusSchema = index.CoverStatusSchema;
5994
7131
  exports.CreateApiKeyInputSchema = index.CreateApiKeyInputSchema;
5995
7132
  exports.CreateApiKeyResultSchema = index.CreateApiKeyResultSchema;
5996
7133
  exports.CreateIntegrationInputSchema = index.CreateIntegrationInputSchema;
@@ -6027,31 +7164,48 @@ exports.DoorbellPressEventSchema = index.DoorbellPressEventSchema;
6027
7164
  exports.DoorbellStatusSchema = index.DoorbellStatusSchema;
6028
7165
  exports.EmbeddingInfoSchema = index.EmbeddingInfoSchema;
6029
7166
  exports.EmbeddingResultSchema = index.EmbeddingResultSchema;
7167
+ exports.EncodeProfileSchema = index.EncodeProfileSchema;
6030
7168
  exports.EncodedPacketSchema = index.EncodedPacketSchema;
6031
7169
  exports.EnrichedWidgetMetadataSchema = index.EnrichedWidgetMetadataSchema;
7170
+ exports.EnumSensorDateTimeFormatSchema = index.EnumSensorDateTimeFormatSchema;
7171
+ exports.EnumSensorStatusSchema = index.EnumSensorStatusSchema;
7172
+ exports.EventEmitterStatusSchema = index.EventEmitterStatusSchema;
7173
+ exports.EventFireSchema = index.EventFireSchema;
6032
7174
  exports.EventItemSchema = index.EventItemSchema;
6033
7175
  exports.EventKindSchema = index.EventKindSchema;
6034
7176
  exports.ExportSetupFieldSchema = index.ExportSetupFieldSchema;
6035
7177
  exports.ExportSetupSchema = index.ExportSetupSchema;
6036
7178
  exports.ExposedDeviceSchema = index.ExposedDeviceSchema;
6037
7179
  exports.ExposedResourceSchema = index.ExposedResourceSchema;
7180
+ exports.FanControlStatusSchema = index.FanControlStatusSchema;
7181
+ exports.FanDirectionSchema = index.FanDirectionSchema;
6038
7182
  exports.FeatureManifestSchema = index.FeatureManifestSchema;
6039
7183
  exports.FeatureProbeStatusSchema = index.FeatureProbeStatusSchema;
7184
+ exports.FloodStatusSchema = index.FloodStatusSchema;
6040
7185
  exports.FrameHandleFormatSchema = index.FrameHandleFormatSchema;
6041
7186
  exports.FrameHandleSchema = index.FrameHandleSchema;
6042
7187
  exports.FrameInputSchema = index.FrameInputSchema;
7188
+ exports.GasStatusSchema = index.GasStatusSchema;
6043
7189
  exports.GetStreamWithCodecInputSchema = index.GetStreamWithCodecInputSchema;
6044
7190
  exports.GlobalMetricsSchema = index.GlobalMetricsSchema;
6045
7191
  exports.HWACCEL_OPTIONS = index.HWACCEL_OPTIONS;
6046
7192
  exports.HealthStatusSchema = index.HealthStatusSchema;
6047
7193
  exports.HistoryPointSchema = index.HistoryPointSchema;
6048
7194
  exports.HistoryResolutionEnum = index.HistoryResolutionEnum;
7195
+ exports.HumidifierStatusSchema = index.HumidifierStatusSchema;
7196
+ exports.HumiditySensorStatusSchema = index.HumiditySensorStatusSchema;
7197
+ exports.HvacModeSchema = index.HvacModeSchema;
7198
+ exports.ImageStatusSchema = index.ImageStatusSchema;
6049
7199
  exports.InstalledPackageSchema = index.InstalledPackageSchema;
6050
7200
  exports.IntegrationLiteSchema = index.IntegrationLiteSchema;
6051
7201
  exports.IntegrationWithStateSchema = index.IntegrationWithStateSchema;
6052
7202
  exports.IntercomAbilitySchema = index.IntercomAbilitySchema;
6053
7203
  exports.IntercomStatusSchema = index.IntercomStatusSchema;
7204
+ exports.LawnMowerActivitySchema = index.LawnMowerActivitySchema;
7205
+ exports.LawnMowerControlStatusSchema = index.LawnMowerControlStatusSchema;
6054
7206
  exports.LocationStatSchema = index.LocationStatSchema;
7207
+ exports.LockControlStatusSchema = index.LockControlStatusSchema;
7208
+ exports.LockStateSchema = index.LockStateSchema;
6055
7209
  exports.LogEntrySchema = index.LogEntrySchema;
6056
7210
  exports.LogLevelSchema = index.LogLevelSchema;
6057
7211
  exports.LogStreamEntrySchema = index.LogStreamEntrySchema;
@@ -6066,6 +7220,9 @@ exports.MaskRectShapeSchema = index.MaskRectShapeSchema;
6066
7220
  exports.MaskShapeKindSchema = index.MaskShapeKindSchema;
6067
7221
  exports.MaskShapeSchema = index.MaskShapeSchema;
6068
7222
  exports.MediaFileSchema = index.MediaFileSchema;
7223
+ exports.MediaPlayerRepeatSchema = index.MediaPlayerRepeatSchema;
7224
+ exports.MediaPlayerStateSchema = index.MediaPlayerStateSchema;
7225
+ exports.MediaPlayerStatusSchema = index.MediaPlayerStatusSchema;
6069
7226
  exports.MeshPeerSchema = index.MeshPeerSchema;
6070
7227
  exports.MeshStatusSchema = index.MeshStatusSchema;
6071
7228
  exports.MethodAccessSchema = index.MethodAccessSchema;
@@ -6093,6 +7250,8 @@ exports.NetworkEndpointSchema = index.NetworkEndpointSchema;
6093
7250
  exports.NotificationHistoryEntrySchema = index.NotificationHistoryEntrySchema;
6094
7251
  exports.NotificationRuleSchema = index.NotificationRuleSchema;
6095
7252
  exports.NotificationSchema = index.NotificationSchema;
7253
+ exports.NotifierStatusSchema = index.NotifierStatusSchema;
7254
+ exports.NumericSensorStatusSchema = index.NumericSensorStatusSchema;
6096
7255
  exports.OauthIntegrationDescriptorSchema = index.OauthIntegrationDescriptorSchema;
6097
7256
  exports.ObjectEventSchema = index.ObjectEventSchema;
6098
7257
  exports.OrchestratorMetricsSchema = index.OrchestratorMetricsSchema;
@@ -6108,6 +7267,9 @@ exports.PackageVersionInfoSchema = index.PackageVersionInfoSchema;
6108
7267
  exports.PasskeySummarySchema = index.PasskeySummarySchema;
6109
7268
  exports.PcmSampleFormatSchema = index.PcmSampleFormatSchema;
6110
7269
  exports.PerScopeBreakdownSchema = index.PerScopeBreakdownSchema;
7270
+ exports.PickStreamPreferencesSchema = index.PickStreamPreferencesSchema;
7271
+ exports.PickStreamRequirementsSchema = index.PickStreamRequirementsSchema;
7272
+ exports.PickedCamStreamSchema = index.PickedCamStreamSchema;
6111
7273
  exports.PipelineAssignmentSchema = index.PipelineAssignmentSchema;
6112
7274
  exports.PipelineDefaultStepSchema = index.PipelineDefaultStepSchema;
6113
7275
  exports.PipelineEngineChoiceSchema = index.PipelineEngineChoiceSchema;
@@ -6115,11 +7277,15 @@ exports.PipelineRunResultBridge = index.PipelineRunResultBridge;
6115
7277
  exports.PipelineStepInputSchema = index.PipelineStepInputSchema;
6116
7278
  exports.PlaceholderReasonSchema = index.PlaceholderReasonSchema;
6117
7279
  exports.PolygonPointSchema = index.PolygonPointSchema;
7280
+ exports.PowerMeterStatusSchema = index.PowerMeterStatusSchema;
7281
+ exports.PresenceStatusSchema = index.PresenceStatusSchema;
7282
+ exports.PressureSensorStatusSchema = index.PressureSensorStatusSchema;
6118
7283
  exports.PrivacyMaskOptionsSchema = index.PrivacyMaskOptionsSchema;
6119
7284
  exports.PrivacyMaskPatchSchema = index.PrivacyMaskPatchSchema;
6120
7285
  exports.PrivacyMaskRegionSchema = index.PrivacyMaskRegionSchema;
6121
7286
  exports.PrivacyMaskShapeSchema = index.PrivacyMaskShapeSchema;
6122
7287
  exports.PrivacyMaskStatusSchema = index.PrivacyMaskStatusSchema;
7288
+ exports.ProfileRtspEntrySchema = index.ProfileRtspEntrySchema;
6123
7289
  exports.ProfileSlotSchema = index.ProfileSlotSchema;
6124
7290
  exports.ProfileSlotStatusSchema = index.ProfileSlotStatusSchema;
6125
7291
  exports.ProviderStatusSchema = index.ProviderStatusSchema;
@@ -6132,6 +7298,25 @@ exports.PtzPositionSchema = index.PtzPositionSchema;
6132
7298
  exports.PtzPresetSchema = index.PtzPresetSchema;
6133
7299
  exports.PtzStatusSchema = index.PtzStatusSchema;
6134
7300
  exports.QueryFilterSchema = index.QueryFilterSchema;
7301
+ exports.RawStateResultSchema = index.RawStateResultSchema;
7302
+ exports.RecordingAvailabilitySchema = index.RecordingAvailabilitySchema;
7303
+ exports.RecordingBandModeSchema = index.RecordingBandModeSchema;
7304
+ exports.RecordingBandSchema = index.RecordingBandSchema;
7305
+ exports.RecordingBandTriggersSchema = index.RecordingBandTriggersSchema;
7306
+ exports.RecordingConfigSchema = index.RecordingConfigSchema;
7307
+ exports.RecordingDeviceUsageSchema = index.RecordingDeviceUsageSchema;
7308
+ exports.RecordingLocationUsageSchema = index.RecordingLocationUsageSchema;
7309
+ exports.RecordingManifestSchema = index.RecordingManifestSchema;
7310
+ exports.RecordingModeSchema = index.RecordingModeSchema;
7311
+ exports.RecordingRangeSchema = index.RecordingRangeSchema;
7312
+ exports.RecordingRetentionSchema = index.RecordingRetentionSchema;
7313
+ exports.RecordingRuleSchema = index.RecordingRuleSchema;
7314
+ exports.RecordingScheduleSchema = index.RecordingScheduleSchema;
7315
+ exports.RecordingStatusSchema = index.RecordingStatusSchema;
7316
+ exports.RecordingStorageModeSchema = index.RecordingStorageModeSchema;
7317
+ exports.RecordingStorageUsageSchema = index.RecordingStorageUsageSchema;
7318
+ exports.RecordingTriggersSchema = index.RecordingTriggersSchema;
7319
+ exports.RecordingWeekdaySchema = index.RecordingWeekdaySchema;
6135
7320
  exports.RegisteredStreamSchema = index.RegisteredStreamSchema;
6136
7321
  exports.ReportMotionInputSchema = index.ReportMotionInputSchema;
6137
7322
  exports.RtpSourceSchema = index.RtpSourceSchema;
@@ -6140,11 +7325,11 @@ exports.RunnerCameraConfigSchema = index.RunnerCameraConfigSchema;
6140
7325
  exports.RunnerCameraDeviceUIFields = index.RunnerCameraDeviceUIFields;
6141
7326
  exports.RunnerLocalLoadSchema = index.RunnerLocalLoadSchema;
6142
7327
  exports.RunnerLocalMetricsSchema = index.RunnerLocalMetricsSchema;
6143
- exports.STORAGE_LOCATION_CARDINALITY = index.STORAGE_LOCATION_CARDINALITY;
7328
+ exports.SOURCE_INFO_METADATA_KEY = index.SOURCE_INFO_METADATA_KEY;
6144
7329
  exports.ScopedTokenSchema = index.ScopedTokenSchema;
6145
7330
  exports.ScopedTokenSummarySchema = index.ScopedTokenSummarySchema;
7331
+ exports.ScriptRunnerStatusSchema = index.ScriptRunnerStatusSchema;
6146
7332
  exports.SearchResultSchema = index.SearchResultSchema;
6147
- exports.SegmentSchema = index.SegmentSchema;
6148
7333
  exports.SendEmailInputSchema = index.SendEmailInputSchema;
6149
7334
  exports.SendEmailResultSchema = index.SendEmailResultSchema;
6150
7335
  exports.SettingsPatchSchema = index.SettingsPatchSchema;
@@ -6152,8 +7337,10 @@ exports.SettingsRecordSchema = index.SettingsRecordSchema;
6152
7337
  exports.SettingsSchemaWithValuesSchema = index.SettingsSchemaWithValuesSchema;
6153
7338
  exports.SettingsUpdateResultSchema = index.SettingsUpdateResultSchema;
6154
7339
  exports.ShmRingStatsSchema = index.ShmRingStatsSchema;
7340
+ exports.SmokeStatusSchema = index.SmokeStatusSchema;
6155
7341
  exports.SmtpStatusSchema = index.SmtpStatusSchema;
6156
7342
  exports.SnapshotImageSchema = index.SnapshotImageSchema;
7343
+ exports.SourceInfoSchema = index.SourceInfoSchema;
6157
7344
  exports.SpatialDetectionSchema = index.SpatialDetectionSchema;
6158
7345
  exports.SsoBridgeClaimsSchema = index.SsoBridgeClaimsSchema;
6159
7346
  exports.StartEmbeddedInputSchema = index.StartEmbeddedInputSchema;
@@ -6164,6 +7351,7 @@ exports.StorageBeginUploadInputSchema = index.BeginUploadInputSchema;
6164
7351
  exports.StorageBeginUploadResultSchema = index.BeginUploadResultSchema;
6165
7352
  exports.StorageEndDownloadInputSchema = index.EndDownloadInputSchema;
6166
7353
  exports.StorageFinalizeUploadInputSchema = index.FinalizeUploadInputSchema;
7354
+ exports.StorageLocationDeclarationSchema = index.StorageLocationDeclarationSchema;
6167
7355
  exports.StorageLocationRefSchema = index.StorageLocationRefSchema;
6168
7356
  exports.StorageLocationSchema = index.StorageLocationSchema;
6169
7357
  exports.StorageLocationTypeSchema = index.StorageLocationTypeSchema;
@@ -6171,6 +7359,7 @@ exports.StorageProviderInfoSchema = index.ProviderInfoSchema;
6171
7359
  exports.StorageReadChunkInputSchema = index.ReadChunkInputSchema;
6172
7360
  exports.StorageTestLocationResultSchema = index.TestLocationResultSchema;
6173
7361
  exports.StorageWriteChunkInputSchema = index.WriteChunkInputSchema;
7362
+ exports.StreamCodecSchema = index.StreamCodecSchema;
6174
7363
  exports.StreamFormatSchema = index.StreamFormatSchema;
6175
7364
  exports.StreamInfoSchema = index.StreamInfoSchema;
6176
7365
  exports.StreamNetworkStatsSchema = index.StreamNetworkStatsSchema;
@@ -6188,7 +7377,10 @@ exports.SubscribeFramesInputSchema = index.SubscribeFramesInputSchema;
6188
7377
  exports.SubscribeFramesResultSchema = index.SubscribeFramesResultSchema;
6189
7378
  exports.SwitchStatusSchema = index.SwitchStatusSchema;
6190
7379
  exports.SystemMetricsSchema = index.SystemMetricsSchema;
6191
- exports.TestConnectionResultSchema = index.TestConnectionResultSchema;
7380
+ exports.TamperStatusSchema = index.TamperStatusSchema;
7381
+ exports.TankStatusSchema = index.TankStatusSchema;
7382
+ exports.TemperatureSensorStatusSchema = index.TemperatureSensorStatusSchema;
7383
+ exports.TestConnectionResultSchema = index.TestConnectionResultSchema$1;
6192
7384
  exports.ToastSchema = index.ToastSchema;
6193
7385
  exports.TokenScopeSchema = index.TokenScopeSchema;
6194
7386
  exports.TopologyNodeSchema = index.TopologyNodeSchema;
@@ -6198,12 +7390,22 @@ exports.TrackSchema = index.TrackSchema;
6198
7390
  exports.TrackStateSchema = index.TrackStateSchema;
6199
7391
  exports.TrackedDetectionSchema = index.TrackedDetectionSchema;
6200
7392
  exports.TurnServerSchema = index.TurnServerSchema;
7393
+ exports.UnifiedBrokerInfoSchema = index.BrokerInfoSchema$1;
6201
7394
  exports.UpdateIntegrationInputSchema = index.UpdateIntegrationInputSchema;
7395
+ exports.UpdateStatusSchema = index.UpdateStatusSchema;
6202
7396
  exports.UpdateUserInputSchema = index.UpdateUserInputSchema;
6203
7397
  exports.UserRecordSchema = index.UserRecordSchema;
6204
7398
  exports.UserSummarySchema = index.UserSummarySchema;
7399
+ exports.VacuumControlStatusSchema = index.VacuumControlStatusSchema;
7400
+ exports.VacuumStateSchema = index.VacuumStateSchema;
7401
+ exports.ValveStateSchema = index.ValveStateSchema;
7402
+ exports.ValveStatusSchema = index.ValveStatusSchema;
7403
+ exports.VibrationStatusSchema = index.VibrationStatusSchema;
7404
+ exports.VideoEncodeSchema = index.VideoEncodeSchema;
6205
7405
  exports.WELL_KNOWN_TABS = index.WELL_KNOWN_TABS;
6206
7406
  exports.WELL_KNOWN_TAB_MAP = index.WELL_KNOWN_TAB_MAP;
7407
+ exports.WaterHeaterStatusSchema = index.WaterHeaterStatusSchema;
7408
+ exports.WeatherStatusSchema = index.WeatherStatusSchema;
6207
7409
  exports.WebrtcStreamChoiceSchema = index.WebrtcStreamChoiceSchema;
6208
7410
  exports.WebrtcStreamTargetSchema = index.WebrtcStreamTargetSchema;
6209
7411
  exports.WidgetHostEnum = index.WidgetHostEnum;
@@ -6229,20 +7431,36 @@ exports.addonWidgetsSourceCapability = index.addonWidgetsSourceCapability;
6229
7431
  exports.addonsCapability = index.addonsCapability;
6230
7432
  exports.adminUiCapability = index.adminUiCapability;
6231
7433
  exports.advancedNotifierCapability = index.advancedNotifierCapability;
7434
+ exports.airQualitySensorCapability = index.airQualitySensorCapability;
7435
+ exports.alarmPanelCapability = index.alarmPanelCapability;
6232
7436
  exports.alertsCapability = index.alertsCapability;
7437
+ exports.ambientLightSensorCapability = index.ambientLightSensorCapability;
6233
7438
  exports.audioAnalysisCapability = index.audioAnalysisCapability;
6234
7439
  exports.audioAnalyzerCapability = index.audioAnalyzerCapability;
6235
7440
  exports.audioCodecCapability = index.audioCodecCapability;
6236
7441
  exports.audioMetricsCapability = index.audioMetricsCapability;
6237
7442
  exports.authProviderCapability = index.authProviderCapability;
7443
+ exports.automationControlCapability = index.automationControlCapability;
6238
7444
  exports.backupCapability = index.backupCapability;
6239
7445
  exports.batteryCapability = index.batteryCapability;
7446
+ exports.binaryCapability = index.binaryCapability;
6240
7447
  exports.brightnessCapability = index.brightnessCapability;
7448
+ exports.brokerCapability = index.brokerCapability;
7449
+ exports.buttonCapability = index.buttonCapability;
6241
7450
  exports.cameraCredentialsCapability = index.cameraCredentialsCapability;
6242
7451
  exports.cameraPipelineConfigCapability = index.cameraPipelineConfigCapability;
6243
7452
  exports.cameraStreamsCapability = index.cameraStreamsCapability;
7453
+ exports.carbonMonoxideCapability = index.carbonMonoxideCapability;
7454
+ exports.climateControlCapability = index.climateControlCapability;
7455
+ exports.colorCapability = index.colorCapability;
7456
+ exports.connectivityCapability = index.connectivityCapability;
7457
+ exports.consumablesCapability = index.consumablesCapability;
7458
+ exports.contactCapability = index.contactCapability;
7459
+ exports.controlCapability = index.controlCapability;
7460
+ exports.coverCapability = index.coverCapability;
6244
7461
  exports.decoderCapability = index.decoderCapability;
6245
7462
  exports.detectionPipelineCapability = index.detectionPipelineCapability;
7463
+ exports.deviceAdoptionCapability = index.deviceAdoptionCapability;
6246
7464
  exports.deviceDiscoveryCapability = index.deviceDiscoveryCapability;
6247
7465
  exports.deviceExportCapability = index.deviceExportCapability;
6248
7466
  exports.deviceManagerCapability = index.deviceManagerCapability;
@@ -6253,19 +7471,36 @@ exports.deviceStateCapability = index.deviceStateCapability;
6253
7471
  exports.deviceStatusCapability = index.deviceStatusCapability;
6254
7472
  exports.doorbellCapability = index.doorbellCapability;
6255
7473
  exports.embeddingEncoderCapability = index.embeddingEncoderCapability;
7474
+ exports.encodeProfileFromStreamShape = index.encodeProfileFromStreamShape;
7475
+ exports.enumSensorCapability = index.enumSensorCapability;
6256
7476
  exports.errMsg = index.errMsg;
6257
7477
  exports.event = index.event;
7478
+ exports.eventEmitterCapability = index.eventEmitterCapability;
6258
7479
  exports.eventsCapability = index.eventsCapability;
6259
7480
  exports.expandCapMethods = index.expandCapMethods;
7481
+ exports.extractSourceInfoFromMetadata = index.extractSourceInfoFromMetadata;
7482
+ exports.fanControlCapability = index.fanControlCapability;
6260
7483
  exports.featureProbeCapability = index.featureProbeCapability;
7484
+ exports.filesystemBrowseCapability = index.filesystemBrowseCapability;
7485
+ exports.floodCapability = index.floodCapability;
7486
+ exports.gasCapability = index.gasCapability;
6261
7487
  exports.getAudioMacroClassIds = index.getAudioMacroClassIds;
7488
+ exports.humidifierCapability = index.humidifierCapability;
7489
+ exports.humiditySensorCapability = index.humiditySensorCapability;
6262
7490
  exports.hydrateSchema = index.hydrateSchema;
7491
+ exports.imageCapability = index.imageCapability;
6263
7492
  exports.integrationsCapability = index.integrationsCapability;
6264
7493
  exports.intercomCapability = index.intercomCapability;
6265
7494
  exports.isDeviceConfigCap = index.isDeviceConfigCap;
7495
+ exports.lawnMowerControlCapability = index.lawnMowerControlCapability;
6266
7496
  exports.localNetworkCapability = index.localNetworkCapability;
7497
+ exports.lockControlCapability = index.lockControlCapability;
6267
7498
  exports.logDestinationCapability = index.logDestinationCapability;
7499
+ exports.makeProfileBrokerId = index.makeProfileBrokerId;
7500
+ exports.makeSourceBrokerId = index.makeSourceBrokerId;
6268
7501
  exports.mapAudioLabelToMacro = index.mapAudioLabelToMacro;
7502
+ exports.mediaPlayerCapability = index.mediaPlayerCapability;
7503
+ exports.mergeSourceInfo = index.mergeSourceInfo;
6269
7504
  exports.meshNetworkCapability = index.meshNetworkCapability;
6270
7505
  exports.method = index.method;
6271
7506
  exports.metricsProviderCapability = index.metricsProviderCapability;
@@ -6278,39 +7513,59 @@ exports.nativeObjectDetectionCapability = index.nativeObjectDetectionCapability;
6278
7513
  exports.networkAccessCapability = index.networkAccessCapability;
6279
7514
  exports.networkQualityCapability = index.networkQualityCapability;
6280
7515
  exports.nodesCapability = index.nodesCapability;
7516
+ exports.normalizeUnit = index.normalizeUnit;
6281
7517
  exports.notificationOutputCapability = index.notificationOutputCapability;
7518
+ exports.notifierCapability = index.notifierCapability;
7519
+ exports.numericSensorCapability = index.numericSensorCapability;
6282
7520
  exports.oauthIntegrationCapability = index.oauthIntegrationCapability;
6283
7521
  exports.osdCapability = index.osdCapability;
7522
+ exports.parseProfileBrokerId = index.parseProfileBrokerId;
6284
7523
  exports.pipelineAnalyticsCapability = index.pipelineAnalyticsCapability;
6285
7524
  exports.pipelineExecutorCapability = index.pipelineExecutorCapability;
6286
7525
  exports.pipelineOrchestratorCapability = index.pipelineOrchestratorCapability;
6287
7526
  exports.pipelineRunnerCapability = index.pipelineRunnerCapability;
6288
7527
  exports.platformProbeCapability = index.platformProbeCapability;
7528
+ exports.powerMeterCapability = index.powerMeterCapability;
7529
+ exports.presenceCapability = index.presenceCapability;
7530
+ exports.pressureSensorCapability = index.pressureSensorCapability;
6289
7531
  exports.privacyMaskCapability = index.privacyMaskCapability;
6290
7532
  exports.ptzAutotrackCapability = index.ptzAutotrackCapability;
6291
7533
  exports.ptzCapability = index.ptzCapability;
6292
7534
  exports.rebootCapability = index.rebootCapability;
6293
7535
  exports.recordingCapability = index.recordingCapability;
6294
- exports.recordingEngineCapability = index.recordingEngineCapability;
6295
7536
  exports.resolveDeviceProfile = index.resolveDeviceProfile;
6296
7537
  exports.restreamerCapability = index.restreamerCapability;
7538
+ exports.scriptRunnerCapability = index.scriptRunnerCapability;
7539
+ exports.selectAssignedProfileSlots = index.selectAssignedProfileSlots;
6297
7540
  exports.settingsStoreCapability = index.settingsStoreCapability;
7541
+ exports.smokeCapability = index.smokeCapability;
6298
7542
  exports.smtpProviderCapability = index.smtpProviderCapability;
6299
7543
  exports.snapshotCapability = index.snapshotCapability;
6300
7544
  exports.snapshotProviderCapability = index.snapshotProviderCapability;
6301
7545
  exports.ssoBridgeCapability = index.ssoBridgeCapability;
6302
7546
  exports.storageCapability = index.storageCapability;
7547
+ exports.storageEvictableCapability = index.storageEvictableCapability;
6303
7548
  exports.storageProviderCapability = index.storageProviderCapability;
6304
7549
  exports.streamBrokerCapability = index.streamBrokerCapability;
6305
7550
  exports.streamCatalogCapability = index.streamCatalogCapability;
6306
7551
  exports.streamParamsCapability = index.streamParamsCapability;
6307
7552
  exports.streamingEngineCapability = index.streamingEngineCapability;
6308
7553
  exports.switchCapability = index.switchCapability;
7554
+ exports.synthesizeSourceInfo = index.synthesizeSourceInfo;
6309
7555
  exports.systemCapability = index.systemCapability;
7556
+ exports.tamperCapability = index.tamperCapability;
7557
+ exports.temperatureSensorCapability = index.temperatureSensorCapability;
6310
7558
  exports.toastCapability = index.toastCapability;
6311
7559
  exports.turnProviderCapability = index.turnProviderCapability;
7560
+ exports.updateCapability = index.updateCapability;
6312
7561
  exports.userManagementCapability = index.userManagementCapability;
6313
7562
  exports.userPasskeysCapability = index.userPasskeysCapability;
7563
+ exports.vacuumControlCapability = index.vacuumControlCapability;
7564
+ exports.valveCapability = index.valveCapability;
7565
+ exports.vibrationCapability = index.vibrationCapability;
7566
+ exports.videoclipsCapability = index.videoclipsCapability;
7567
+ exports.waterHeaterCapability = index.waterHeaterCapability;
7568
+ exports.weatherCapability = index.weatherCapability;
6314
7569
  exports.webrtcCapability = index.webrtcCapability;
6315
7570
  exports.webrtcClientHintsSchema = index.webrtcClientHintsSchema;
6316
7571
  exports.webrtcSessionCapability = index.webrtcSessionCapability;
@@ -6333,9 +7588,9 @@ exports.CAP_NAMES_WITH_STATUS = CAP_NAMES_WITH_STATUS;
6333
7588
  exports.CAP_PROVIDER_KIND_MAP = CAP_PROVIDER_KIND_MAP;
6334
7589
  exports.COCO_80_LABELS = COCO_80_LABELS;
6335
7590
  exports.COCO_TO_MACRO = COCO_TO_MACRO;
7591
+ exports.DATAPLANE_SECRET_HEADER = DATAPLANE_SECRET_HEADER;
6336
7592
  exports.DEFAULT_ADDON_PLACEMENT = DEFAULT_ADDON_PLACEMENT;
6337
7593
  exports.DEFAULT_FEATURES = DEFAULT_FEATURES;
6338
- exports.DEFAULT_LOCATION_SUBDIRS = DEFAULT_LOCATION_SUBDIRS;
6339
7594
  exports.DEFAULT_RETENTION = DEFAULT_RETENTION;
6340
7595
  exports.DEVICE_CAP_NAMES = DEVICE_CAP_NAMES;
6341
7596
  exports.DEVICE_TYPE_INFO = DEVICE_TYPE_INFO;
@@ -6359,18 +7614,20 @@ exports.ReadinessRegistry = ReadinessRegistry;
6359
7614
  exports.ReadinessTimeoutError = ReadinessTimeoutError;
6360
7615
  exports.RingBuffer = RingBuffer;
6361
7616
  exports.SCOPE_PRESETS = SCOPE_PRESETS;
6362
- exports.STORAGE_LOCATION_TYPES = STORAGE_LOCATION_TYPES;
6363
7617
  exports.STREAM_PROFILE_META = STREAM_PROFILE_META;
6364
7618
  exports.STREAM_QUALITY_LABELS = STREAM_QUALITY_LABELS;
6365
7619
  exports.SUB_DETECTION_TYPES = SUB_DETECTION_TYPES;
6366
7620
  exports.SYSTEM_CAP_NAMES = SYSTEM_CAP_NAMES;
6367
7621
  exports.SystemMirror = SystemMirror;
7622
+ exports.TIMEZONES = TIMEZONES;
7623
+ exports.applyTransform = applyTransform;
6368
7624
  exports.asBoolean = asBoolean;
6369
7625
  exports.asJsonArray = asJsonArray;
6370
7626
  exports.asJsonObject = asJsonObject;
6371
7627
  exports.asNumber = asNumber;
6372
7628
  exports.asString = asString;
6373
7629
  exports.autoAssignProfiles = autoAssignProfiles;
7630
+ exports.bestLocationMatch = bestLocationMatch;
6374
7631
  exports.bindAddonActions = bindAddonActions;
6375
7632
  exports.buildAddonRouteProvider = buildAddonRouteProvider;
6376
7633
  exports.buildStreamParamsConfigSchema = buildStreamParamsConfigSchema;
@@ -6379,6 +7636,7 @@ exports.classifyStream = classifyStream;
6379
7636
  exports.classifyStreams = classifyStreams;
6380
7637
  exports.cosineSimilarity = cosineSimilarity;
6381
7638
  exports.createDeviceProxy = createDeviceProxy;
7639
+ exports.createDurableState = createDurableState;
6382
7640
  exports.createEvent = createEvent;
6383
7641
  exports.createLazyTrpcSource = createLazyTrpcSource;
6384
7642
  exports.createMirrorSource = createMirrorSource;
@@ -6387,23 +7645,30 @@ exports.createSliceHandle = createSliceHandle;
6387
7645
  exports.createSystemProxy = createSystemProxy;
6388
7646
  exports.customAction = customAction;
6389
7647
  exports.defineCustomActions = defineCustomActions;
7648
+ exports.deviceCustomAction = deviceCustomAction;
6390
7649
  exports.emitDownForOwnedCaps = emitDownForOwnedCaps;
6391
7650
  exports.emitReadiness = emitReadiness;
7651
+ exports.enumerateSchemaFields = enumerateSchemaFields;
6392
7652
  exports.evaluateZoneRules = evaluateZoneRules;
7653
+ exports.findTimezone = findTimezone;
6393
7654
  exports.formatForBackend = formatForBackend;
6394
7655
  exports.formatForRuntime = formatForRuntime;
7656
+ exports.getByPath = getByPath;
6395
7657
  exports.getCapsByProviderKind = getCapsByProviderKind;
6396
7658
  exports.hfModelUrl = hfModelUrl;
6397
7659
  exports.isAgentOnlyPlacement = isAgentOnlyPlacement;
6398
7660
  exports.isDeployableToAgent = isDeployableToAgent;
6399
7661
  exports.isEvent = isEvent;
7662
+ exports.locationSimilarity = locationSimilarity;
6400
7663
  exports.maskUrlCredentials = maskUrlCredentials;
7664
+ exports.migrateConfigToBands = migrateConfigToBands;
6401
7665
  exports.normalizeAddonInitResult = normalizeAddonInitResult;
6402
7666
  exports.parseCameraStreamConfig = parseCameraStreamConfig;
6403
7667
  exports.parseJsonArray = parseJsonArray;
6404
7668
  exports.parseJsonObject = parseJsonObject;
6405
7669
  exports.parseJsonUnknown = parseJsonUnknown;
6406
7670
  exports.parseStreamParamsFormPatch = parseStreamParamsFormPatch;
7671
+ exports.pickPreferredRtspEntry = pickPreferredRtspEntry;
6407
7672
  exports.pythonScriptForBackend = pythonScriptForBackend;
6408
7673
  exports.readinessKey = readinessKey;
6409
7674
  exports.rectsToCells = rectsToCells;
@@ -6417,6 +7682,9 @@ exports.resolveModelFormat = resolveModelFormat;
6417
7682
  exports.resolveRunnerId = resolveRunnerId;
6418
7683
  exports.runInferenceStep = runInferenceStep;
6419
7684
  exports.scopeKey = scopeKey;
7685
+ exports.setByPath = setByPath;
7686
+ exports.sleep = sleep;
7687
+ exports.sleepCancellable = sleepCancellable;
6420
7688
  exports.streamPixels = streamPixels;
6421
7689
  exports.streamQualityLabel = streamQualityLabel;
6422
7690
  exports.toDeviceSummary = toDeviceSummary;