@camstack/types 0.1.40 → 0.1.41

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