@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
@@ -7,11 +7,85 @@ export declare enum DeviceType {
7
7
  Sensor = "sensor",
8
8
  Thermostat = "thermostat",
9
9
  Button = "button",
10
- Generic = "generic"
10
+ /** Generic stateless event emitter — carries a device's EXACT declared
11
+ * event vocabulary verbatim (no normalization). Installed with the
12
+ * `event-emitter` cap. Sources: HA `event.*` entities (structured) and
13
+ * HA bus events (e.g. `zha_event`, generic). */
14
+ EventEmitter = "event-emitter",
15
+ /** Firmware/software update entity — current vs available version,
16
+ * updatable flag, update state, and an install action. Installed with
17
+ * the `update` cap. Sources: Homematic firmware-update channels (and
18
+ * reusable by other providers, e.g. HA `update.*` entities). */
19
+ Update = "update",
20
+ Generic = "generic",
21
+ /** Generic notification delivery target (HA `notify.<service>`, future
22
+ * Telegram / Discord / ntfy / SMTP, …). One device per delivery
23
+ * endpoint; the `notifier` cap defines the send surface. */
24
+ Notifier = "notifier",
25
+ /** Pre-recorded action sequence with optional parameters
26
+ * (HA `script.*`). Runnable via `script-runner` cap. */
27
+ Script = "script",
28
+ /** Automation rule (HA `automation.*`) — enable/disable + manual
29
+ * trigger surface exposed via `automation-control` cap. */
30
+ Automation = "automation",
31
+ /** Door / smart lock device (HA `lock.*`). `lock-control` cap. */
32
+ Lock = "lock",
33
+ /** Window covering, blinds, garage door, valve, etc. (HA `cover.*`,
34
+ * `valve.*`). `cover` cap with sub-roles for variant. */
35
+ Cover = "cover",
36
+ /** Pipe / water / gas valve with open/close/stop and optional
37
+ * position (HA `valve.*`). `valve` cap — a cover-sibling actuator
38
+ * modelled on the same open/closed lifecycle. */
39
+ Valve = "valve",
40
+ /** Humidifier / dehumidifier with on/off + target humidity + mode
41
+ * (HA `humidifier.*`). `humidifier` cap — a climate-family actuator
42
+ * modelled on the same target / mode lifecycle. */
43
+ Humidifier = "humidifier",
44
+ /** Water heater / boiler with target temperature + operation mode +
45
+ * away mode (HA `water_heater.*`). `water-heater` cap — a
46
+ * climate-family actuator. */
47
+ WaterHeater = "water-heater",
48
+ /** Ceiling / standing / exhaust fan (HA `fan.*`). `fan-control` cap. */
49
+ Fan = "fan",
50
+ /** Audio / video playback endpoint (HA `media_player.*`). Disjoint from
51
+ * the camera surface — those use `Camera`. `media-player` cap. */
52
+ MediaPlayer = "media-player",
53
+ /** Security panel / alarm system (HA `alarm_control_panel.*`).
54
+ * `alarm-panel` cap. */
55
+ AlarmPanel = "alarm-panel",
56
+ /** Generic user-settable input (HA `number` / `input_number` / `select`
57
+ * / `input_select` / `text` / `input_text` / `input_datetime`).
58
+ * Sub-type via `DeviceRole`: NumericControl / SelectControl /
59
+ * TextControl / DateTimeControl. */
60
+ Control = "control",
61
+ /** Person / device-tracker presence (HA `person.*`, `device_tracker.*`).
62
+ * `presence` cap. */
63
+ Presence = "presence",
64
+ /** Weather provider (HA `weather.*`). Tier-3, low MVP priority.
65
+ * `weather` cap. */
66
+ Weather = "weather",
67
+ /** Robot vacuum (HA `vacuum.*`). Tier-3. `vacuum-control` cap. */
68
+ Vacuum = "vacuum",
69
+ /** Robotic lawn mower (HA `lawn_mower.*`). Tier-3.
70
+ * `lawn-mower-control` cap. */
71
+ LawnMower = "lawn-mower",
72
+ /** Physical HA device group — parent container for entity-children
73
+ * adopted from a single HA device entry. Not renderable as a
74
+ * standalone device; exists only to anchor child entities. */
75
+ Container = "container",
76
+ /** Single still-image entity (HA `image.*`). Read-only display of an
77
+ * `entity_picture` signed URL the browser loads directly. `image` cap. */
78
+ Image = "image"
11
79
  }
12
80
  export declare enum DeviceFeature {
13
81
  BatteryOperated = "battery-operated",
14
82
  Rebootable = "rebootable",
83
+ /**
84
+ * Device supports an on-demand re-sync of its derived spec with its
85
+ * upstream source — drives the generic Re-sync button. The owning
86
+ * provider implements the action via the `device-adoption.resync` cap.
87
+ */
88
+ Resyncable = "resyncable",
15
89
  NativeSnapshot = "native-snapshot",
16
90
  DoorbellButton = "doorbell-button",
17
91
  TwoWayAudio = "two-way-audio",
@@ -36,7 +110,88 @@ export declare enum DeviceFeature {
36
110
  * fast scalar without binding fetch), notifier rules, and `listAll`
37
111
  * filters that want "all devices with on-motion behaviour".
38
112
  */
39
- MotionTrigger = "motion-trigger"
113
+ MotionTrigger = "motion-trigger",
114
+ /** Light supports rgb-triplet color via `color` cap. */
115
+ LightColorRgb = "light-color-rgb",
116
+ /** Light supports HSV color via `color` cap. */
117
+ LightColorHsv = "light-color-hsv",
118
+ /** Light supports color-temperature (mired) via `color` cap. */
119
+ LightColorMired = "light-color-mired",
120
+ /** Thermostat supports a `heat_cool` dual setpoint (targetLow +
121
+ * targetHigh). Gates the range slider UI. */
122
+ ClimateDualSetpoint = "climate-dual-setpoint",
123
+ /** Thermostat exposes target humidity and/or current humidity
124
+ * readings. Gates the humidity controls. */
125
+ ClimateHumidity = "climate-humidity",
126
+ /** Thermostat exposes a fan-mode selector. */
127
+ ClimateFanMode = "climate-fan-mode",
128
+ /** Thermostat exposes preset modes (eco / away / sleep / vendor). */
129
+ ClimatePreset = "climate-preset",
130
+ /** Cover exposes intermediate position control (0..100). Gates the
131
+ * position slider UI. */
132
+ CoverPositionable = "cover-positionable",
133
+ /** Cover exposes slat-tilt control. Gates the tilt slider UI. */
134
+ CoverTilt = "cover-tilt",
135
+ /** Valve exposes intermediate position control (0..100). Gates the
136
+ * position slider / drag surface UI. */
137
+ ValvePositionable = "valve-positionable",
138
+ /** Fan exposes a speed-percentage setter. Gates the speed slider UI. */
139
+ FanSpeed = "fan-speed",
140
+ /** Fan exposes a preset mode selector. */
141
+ FanPreset = "fan-preset",
142
+ /** Fan exposes blade direction (forward/reverse) — typical of
143
+ * ceiling fans. */
144
+ FanDirection = "fan-direction",
145
+ /** Fan exposes an oscillation toggle. */
146
+ FanOscillating = "fan-oscillating",
147
+ /** Lock requires a PIN code on lock/unlock. Gates the code-entry
148
+ * field on the UI lock-controls panel. */
149
+ LockPinRequired = "lock-pin-required",
150
+ /** Lock supports a latch-release ("open door") action distinct from
151
+ * unlock. Mirrors HA `LockEntityFeature.OPEN` (bit 1) in
152
+ * `supported_features`. Gates the Open Door button in the UI. */
153
+ LockOpen = "lock-open",
154
+ /** Media player exposes a seek-to-position surface. */
155
+ MediaPlayerSeek = "media-player-seek",
156
+ /** Media player exposes a volume-level setter. */
157
+ MediaPlayerVolume = "media-player-volume",
158
+ /** Media player exposes a mute toggle distinct from volume=0. */
159
+ MediaPlayerMute = "media-player-mute",
160
+ /** Media player exposes a shuffle toggle. */
161
+ MediaPlayerShuffle = "media-player-shuffle",
162
+ /** Media player exposes a repeat mode (off / all / one). */
163
+ MediaPlayerRepeat = "media-player-repeat",
164
+ /** Media player exposes a source / input selector. */
165
+ MediaPlayerSelectSource = "media-player-select-source",
166
+ /** Media player exposes a play-arbitrary-media surface (URL / id). */
167
+ MediaPlayerPlayMedia = "media-player-play-media",
168
+ /** Media player exposes next-track. */
169
+ MediaPlayerNext = "media-player-next",
170
+ /** Media player exposes previous-track. */
171
+ MediaPlayerPrevious = "media-player-previous",
172
+ /** Media player exposes stop distinct from pause. */
173
+ MediaPlayerStop = "media-player-stop",
174
+ /** Alarm panel requires a PIN code on arm/disarm. */
175
+ AlarmPinRequired = "alarm-pin-required",
176
+ /** Presence device carries GPS coordinates (lat/lng/accuracy) in
177
+ * addition to a textual location. */
178
+ PresenceGps = "presence-gps",
179
+ /** Notifier accepts an inline / URL image attachment. */
180
+ NotifierImage = "notifier-image",
181
+ /** Notifier accepts a priority hint (high/normal/low). */
182
+ NotifierPriority = "notifier-priority",
183
+ /** Notifier accepts a free-form `data` payload for platform-specific
184
+ * fields. */
185
+ NotifierData = "notifier-data",
186
+ /** Notifier supports interactive action buttons / callbacks. */
187
+ NotifierActions = "notifier-actions",
188
+ /** Notifier supports per-call recipient targeting (multi-user). */
189
+ NotifierRecipients = "notifier-recipients",
190
+ /** Script runner accepts a variables map on each run invocation. */
191
+ ScriptVariables = "script-variables",
192
+ /** Automation `trigger` accepts a skipCondition flag — fires the
193
+ * automation's actions while bypassing its condition block. */
194
+ AutomationSkipCondition = "automation-skip-condition"
40
195
  }
41
196
  export declare enum ChargingStatus {
42
197
  ChargingDC = "charging-dc",
@@ -63,6 +218,62 @@ export declare enum DeviceRole {
63
218
  Autotrack = "autotrack",
64
219
  Nightvision = "nightvision",
65
220
  PrivacyMask = "privacy-mask",
66
- Doorbell = "doorbell"
221
+ Doorbell = "doorbell",
222
+ /** Virtual HA toggle (input_boolean.*) — distinguishable from a
223
+ * real Switch device for UI rendering / export adapters. */
224
+ BinaryHelper = "binary-helper",
225
+ /** Generic motion / occupancy / moving event source. Distinct from
226
+ * the camera accessory PirSensor role: that one is a camera child;
227
+ * this is a standalone HA / 3rd-party motion sensor. */
228
+ MotionSensor = "motion-sensor",
229
+ ContactSensor = "contact-sensor",
230
+ LeakSensor = "leak-sensor",
231
+ SmokeSensor = "smoke-sensor",
232
+ COSensor = "co-sensor",
233
+ GasSensor = "gas-sensor",
234
+ TamperSensor = "tamper-sensor",
235
+ VibrationSensor = "vibration-sensor",
236
+ ConnectivitySensor = "connectivity-sensor",
237
+ SoundSensor = "sound-sensor",
238
+ /** Fallback for `binary_sensor` without a known `device_class`. */
239
+ BinarySensor = "binary-sensor",
240
+ TemperatureSensor = "temperature-sensor",
241
+ HumiditySensor = "humidity-sensor",
242
+ AmbientLightSensor = "ambient-light-sensor",
243
+ PressureSensor = "pressure-sensor",
244
+ PowerSensor = "power-sensor",
245
+ EnergySensor = "energy-sensor",
246
+ VoltageSensor = "voltage-sensor",
247
+ CurrentSensor = "current-sensor",
248
+ AirQualitySensor = "air-quality-sensor",
249
+ /** Battery level (numeric % via `sensor` OR low-bool via
250
+ * `binary_sensor` — the cap distinguishes via the value type). */
251
+ BatterySensor = "battery-sensor",
252
+ /** Fallback for `sensor` numeric without a known `device_class`. */
253
+ NumericSensor = "numeric-sensor",
254
+ /** String / enum state (HA `sensor` with `state_class: enum` or
255
+ * `attributes.options`). */
256
+ EnumSensor = "enum-sensor",
257
+ /** Date / timestamp state (HA `sensor` with `device_class: timestamp`
258
+ * or `date`). The slice carries the raw ISO string verbatim (hosted on
259
+ * the `enum-sensor` cap); the UI renders it locale-formatted. */
260
+ DateTimeSensor = "datetime-sensor",
261
+ /** Last-resort fallback when nothing else matches. */
262
+ GenericSensor = "generic-sensor",
263
+ NumericControl = "numeric-control",
264
+ SelectControl = "select-control",
265
+ TextControl = "text-control",
266
+ DateTimeControl = "datetime-control",
267
+ /** Mobile push notifier (HA `notify.mobile_app_*`) — supports
268
+ * rich features (image, priority, channel routing). */
269
+ MobilePushNotifier = "mobile-push-notifier",
270
+ /** Chat / messaging service (HA `notify.telegram_*`,
271
+ * `notify.discord_*`, etc.). */
272
+ MessagingNotifier = "messaging-notifier",
273
+ /** Email-based delivery (HA `notify.smtp`, etc.). */
274
+ EmailNotifier = "email-notifier",
275
+ /** Fallback when the notifier service name doesn't match a known
276
+ * pattern. */
277
+ GenericNotifier = "generic-notifier"
67
278
  }
68
279
  //# sourceMappingURL=device-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-type.d.ts","sourceRoot":"","sources":["../../src/device/device-type.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,aAAa;IACvB,eAAe,qBAAqB;IACpC,UAAU,eAAe;IACzB,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,WAAW,kBAAkB;IAC7B,WAAW,kBAAkB;IAC7B;;;;;;;;OAQG;IACH,YAAY,kBAAkB;IAC9B;;;;;;;;;OASG;IACH,aAAa,mBAAmB;CACjC;AAED,oBAAY,cAAc;IACxB,UAAU,gBAAgB;IAC1B,aAAa,mBAAmB;IAChC,WAAW,iBAAiB;CAC7B;AAED;;;;;;;;;;GAUG;AACH,oBAAY,UAAU;IAEpB,KAAK,UAAiB;IACtB,UAAU,eAAiB;IAC3B,SAAS,cAAiB;IAC1B,SAAS,eAAkB;IAC3B,KAAK,UAAiB;IACtB,SAAS,cAAiB;IAC1B,WAAW,gBAAiB;IAC5B,WAAW,iBAAkB;IAG7B,QAAQ,aAAiB;CAC1B"}
1
+ {"version":3,"file":"device-type.d.ts","sourceRoot":"","sources":["../../src/device/device-type.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { DeviceType, DeviceFeature, DeviceRole } from './device-type.js';
3
3
  import type { DeviceConfig } from './device-config.js';
4
4
  import type { DeviceContext } from './device-context.js';
5
5
  import type { ConfigUISchemaWithValues } from '../interfaces/config-ui.js';
6
+ import type { RawStateResult } from '../capabilities/device-ops.cap.js';
7
+ import type { IDeviceRuntimeState } from './device-runtime-state.js';
6
8
  export interface IDevice {
7
9
  /** Progressive, system-wide unique numeric id. Assigned by the hub's
8
10
  * `device-manager` at `allocateDeviceId` time, injected through
@@ -55,6 +57,16 @@ export interface IDevice {
55
57
  readonly features: readonly DeviceFeature[];
56
58
  readonly config: DeviceConfig<z.ZodObject<z.core.$ZodLooseShape>>;
57
59
  readonly ctx: DeviceContext;
60
+ /**
61
+ * Kernel-managed per-device runtime-state surface (cap-keyed slices:
62
+ * `device-status`, `feature-probe`, `battery`, …). Present on every
63
+ * `BaseDevice` subclass; optional here because a handful of direct
64
+ * `IDevice` implementors (legacy Onvif/Frigate camera classes) predate
65
+ * the runtime-state machinery and don't carry one. Consumers that read
66
+ * it (e.g. the device-manager's `probed`-flag derivation) tolerate
67
+ * `undefined` as "no slice".
68
+ */
69
+ readonly runtimeState?: IDeviceRuntimeState;
58
70
  removeDevice(): Promise<void>;
59
71
  /**
60
72
  * Set the device's online flag. Called by `BaseDeviceProvider` after
@@ -83,5 +95,18 @@ export interface IDevice {
83
95
  * `config.setAll(patch)` so drivers opt in only when they need reshape.
84
96
  */
85
97
  applySettingsPatch(patch: Record<string, unknown>): Promise<void>;
98
+ /**
99
+ * Invoke a device custom action registered via `registerDeviceAction`.
100
+ * Validates input against the action's spec, then runs its handler.
101
+ * Throws on an unknown action. The device equivalent of an addon
102
+ * customAction; dispatched cross-process via `device-ops.runAction`.
103
+ */
104
+ runDeviceAction(action: string, input: unknown): Promise<unknown>;
105
+ /**
106
+ * Optional: return this device's RAW upstream state (cached provider
107
+ * values) as a display-safe `{ source, data }` blob, or `null`/absent
108
+ * when none. Surfaced via `device-ops.getRawState` in the State panel.
109
+ */
110
+ getRawState?(): Promise<RawStateResult | null>;
86
111
  }
87
112
  //# sourceMappingURL=device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAE1E,MAAM,WAAW,OAAO;IACtB;;;;;0EAKsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;;kEAG8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAE3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAEjC;;;;;;;;;;OAUG;IACH,mBAAmB,IAAI,wBAAwB,CAAA;IAE/C;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClE"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/device/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,MAAM,WAAW,OAAO;IACtB;;;;;0EAKsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;;kEAG8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAE3C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAEjC;;;;;;;;;;OAUG;IACH,mBAAmB,IAAI,wBAAwB,CAAA;IAE/C;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjE;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEjE;;;;OAIG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;CAC/C"}
@@ -11,10 +11,14 @@ export type { IDevice } from './device.js';
11
11
  export { DEVICE_PROFILES, BATTERY_DEVICE_PROFILE, deviceMatchesProfile, resolveDeviceProfile, } from './device-profile.js';
12
12
  export type { DeviceProfile, DeviceProfileMatch, DeviceProfileDefaults, PipelinePhaseMode, } from './device-profile.js';
13
13
  export type { ICameraDevice, StreamSourceEntry } from './camera-device.js';
14
- export type { DeviceManualCreation, DeviceDiscovery, DiscoveredDevice, SavedDevice, DeviceMeta, InitialDeviceMeta, CreateDeviceSpec } from './device-management.js';
14
+ export type { DeviceManualCreation, DeviceDiscovery, DiscoveredDevice, SavedDevice, DeviceMeta, InitialDeviceMeta, CreateDeviceSpec, ChildLayout, ChildLayoutEntry, DeviceLinkSource, DeviceLinkTarget, DeviceLinkTransform, DeviceLink, DeviceLinks } from './device-management.js';
15
15
  export { zodEntriesToConfigUI } from './zod-to-config-ui.js';
16
16
  export type { DeviceConfigEntry } from './zod-to-config-ui.js';
17
17
  export { createRuntimeStateBridge } from './runtime-state-helpers.js';
18
18
  export type { RuntimeStateBridge } from './runtime-state-helpers.js';
19
19
  export type { IDeviceRuntimeState, Snapshot as RuntimeStateSnapshot } from './device-runtime-state.js';
20
+ export { getByPath, setByPath } from './path-util.js';
21
+ export { applyTransform } from './device-link-transform.js';
22
+ export { enumerateSchemaFields } from './schema-fields.js';
23
+ export type { WireableField } from './schema-fields.js';
20
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/device/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,iBAAiB,EACjD,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrI,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC/E,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACpH,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,oBAAoB,GACpF,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EACxD,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACnK,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/device/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,iBAAiB,EACjD,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrI,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC/E,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACpH,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,oBAAoB,GACpF,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EACxD,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpR,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACtG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,13 @@
1
+ /** Read a dot-path (`a.b.c`) out of an object. Returns `undefined` for any
2
+ * missing/non-object segment — never throws. */
3
+ export declare function getByPath(obj: unknown, path: string): unknown;
4
+ /** Immutably set a dot-path on an object, returning a new object. Intermediate
5
+ * objects are created when a segment is missing or null. Arrays are NOT
6
+ * traversed (P1 has no array-index syntax — see `itemKey` grouping in P2): if a
7
+ * segment resolves to an array it is replaced by a fresh object, so the array
8
+ * is discarded — the only caller (`mergeLinkedStatus`) re-validates the result
9
+ * with the target cap's Zod schema and rejects a malformed overlay.
10
+ * The return type `T` preserves the OUTER shape; the rewritten key is not
11
+ * narrowed, so callers should re-validate against the status schema. */
12
+ export declare function setByPath<T extends Record<string, unknown>>(obj: T, path: string, value: unknown): T;
13
+ //# sourceMappingURL=path-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-util.d.ts","sourceRoot":"","sources":["../../src/device/path-util.ts"],"names":[],"mappings":"AAKA;iDACiD;AACjD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED;;;;;;;yEAOyE;AACzE,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,CAAC,CAWH"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export interface WireableField {
3
+ readonly path: string;
4
+ readonly kind: 'string' | 'number' | 'boolean' | 'enum';
5
+ readonly enumValues?: readonly string[];
6
+ }
7
+ /** Walk a cap status schema into flat wireable leaf fields (dotted paths).
8
+ * Recurses into nested ZodObject (unwrapping nullable/optional/default first),
9
+ * so fields with null live values are still offered. Arrays / unknown shapes
10
+ * are skipped — never throws. */
11
+ export declare function enumerateSchemaFields(schema: z.ZodType, prefix?: string): readonly WireableField[];
12
+ //# sourceMappingURL=schema-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-fields.d.ts","sourceRoot":"","sources":["../../src/device/schema-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAqBD;;;kCAGkC;AAClC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,SAAK,GAAG,SAAS,aAAa,EAAE,CAa9F"}
@@ -0,0 +1,87 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Identity envelope for a device's upstream-system metadata.
4
+ *
5
+ * Two jobs:
6
+ *
7
+ * 1. **Dispatch key.** `id` is the natural identifier the SOURCE system
8
+ * uses to address this device (HA `entity_id`, Reolink MAC, ONVIF
9
+ * WS-Discovery endpoint UUID, …). Provider code keeps a
10
+ * `Map<sourceInfo.id, IDevice>` to route inbound push events in O(1)
11
+ * without round-tripping through `stableId` / `id` mappings.
12
+ *
13
+ * 2. **Stability bridge.** `uniqueId` is the *immutable* upstream id when
14
+ * one exists (HA `entity.unique_id`, Reolink MAC again — same as `id`
15
+ * for vendors where MAC is the natural key). For systems where the
16
+ * live dispatch key can be renamed (HA `entity_id` can be edited),
17
+ * providers detect renames by matching `uniqueId` and patch `id`
18
+ * in-place so dispatch keeps working.
19
+ *
20
+ * **Rendering metadata is NOT stored here.** Display fields (`unit`,
21
+ * `precision`) live in the cap STATUS SLICE so they flow live with every
22
+ * state push and are the single source of truth. The `device_class` tag is
23
+ * an HA-specific input that is consumed at the discovery boundary
24
+ * (`ha-domain-mapping`) to derive the CamStack `DeviceRole`; it is never
25
+ * stored after that point.
26
+ *
27
+ * The `raw` escape hatch carries provider-specific attributes that don't
28
+ * fit the structured slots (HA `attributes` whitelist, Reolink `deviceCache`
29
+ * details, …). Providers control what lands here.
30
+ */
31
+ export declare const SourceInfoSchema: z.ZodObject<{
32
+ id: z.ZodString;
33
+ system: z.ZodString;
34
+ uniqueId: z.ZodOptional<z.ZodString>;
35
+ raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
36
+ }, z.core.$strip>;
37
+ export type SourceInfo = z.infer<typeof SourceInfoSchema>;
38
+ /**
39
+ * Build the synthetic SourceInfo every existing provider falls back to
40
+ * when no upstream value has been persisted. Keeps non-migrated providers
41
+ * (Reolink / Hikvision / ONVIF / Frigate / RTSP) functional without code
42
+ * changes — `id` reuses the CamStack stableId, `system` reuses the addon
43
+ * id. Real upstream identity replaces this once a provider migrates and
44
+ * calls `updateSourceInfo()` with concrete values.
45
+ */
46
+ export declare function synthesizeSourceInfo(input: {
47
+ stableId: string;
48
+ addonId: string;
49
+ }): SourceInfo;
50
+ /**
51
+ * Shallow-merge a partial patch over a prior SourceInfo. `undefined`
52
+ * patch values are ignored (no field clobber); to clear a field
53
+ * explicitly, providers omit it from the patch and rebuild from scratch
54
+ * via `updateSourceInfo({})` cycles — uncommon enough that we don't
55
+ * bother with a `null`-means-delete sentinel.
56
+ *
57
+ * The `raw` field is also shallow-merged: passing `raw: { foo: 1 }`
58
+ * merges over existing `raw` keys instead of replacing the whole bag.
59
+ */
60
+ export declare function mergeSourceInfo(prev: SourceInfo, patch: Partial<SourceInfo>): SourceInfo;
61
+ /**
62
+ * Coerce common unit-of-measurement string variants to a canonical form
63
+ * so the UI's display templates can rely on stable strings. Pure
64
+ * passthrough for unknown units — kept conservative on purpose, the goal
65
+ * is to normalise the long tail of HA `unit_of_measurement` values that
66
+ * have multiple historical spellings (`'°C'` vs `'C'` vs `'celsius'`).
67
+ *
68
+ * Extend the map as we encounter real-world data. Returning the raw
69
+ * input for unknown values is intentional: providers should never
70
+ * lose information silently here.
71
+ */
72
+ export declare function normalizeUnit(raw: string | null | undefined): string | undefined;
73
+ /**
74
+ * Key under which `SourceInfo` lives inside `DeviceMeta.metadata`. The
75
+ * blob is a free-form `Record<string, unknown>` shared with hardware-
76
+ * identity fields (`manufacturer`, `model`, `firmware`, …); SourceInfo
77
+ * lives under a single nested key to keep it composable with those.
78
+ */
79
+ export declare const SOURCE_INFO_METADATA_KEY = "sourceInfo";
80
+ /**
81
+ * Extract a SourceInfo from a `DeviceMeta.metadata` blob, validating
82
+ * with Zod. Returns `null` when the blob is missing or the nested
83
+ * `sourceInfo` key fails validation — callers fall back to the
84
+ * synthetic default in that case (see `synthesizeSourceInfo`).
85
+ */
86
+ export declare function extractSourceInfoFromMetadata(metadata: Record<string, unknown> | null | undefined): SourceInfo | null;
87
+ //# sourceMappingURL=source-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-info.d.ts","sourceRoot":"","sources":["../../src/device/source-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,gBAAgB;;;;;iBAiB3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,UAAU,CAKb;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAWxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAsChF;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,eAAe,CAAA;AAEpD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,UAAU,GAAG,IAAI,CAOnB"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * SystemMirror — system-wide reactive view of every device, like
3
- * Scrypted's `systemManager.getDeviceById`. One warm-boot fetches the
2
+ * SystemMirror — system-wide reactive view of every device. One
3
+ * warm-boot fetches the
4
4
  * full bindings + runtime-state snapshot + device metadata; live
5
5
  * `device.state-changed`, `capability.binding-changed`,
6
6
  * `device.registered`, `device.unregistered`, and `device.updated`
@@ -47,6 +47,10 @@ import { DeviceType } from './device-type.js';
47
47
  import { type SliceHandleApi } from './device-state-handle.js';
48
48
  /**
49
49
  * Minimal subset of `AddonApi` the SystemMirror needs.
50
+ *
51
+ * The SystemMirror is always constructed with the real tRPC client (see
52
+ * the SDK's `System`), so `getDeviceById` widens it to the full `AddonApi`
53
+ * at a documented boundary for the structural-dispatch `createDeviceProxy`.
50
54
  */
51
55
  export interface SystemMirrorApi extends SliceHandleApi {
52
56
  readonly deviceManager: {
@@ -1 +1 @@
1
- {"version":3,"file":"system-mirror.d.ts","sourceRoot":"","sources":["../../src/device/system-mirror.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-mirror.d.ts","sourceRoot":"","sources":["../../src/device/system-mirror.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Shared video / audio encode profile schemas used by every consumer
4
+ * that asks the stream broker to spawn a derived stream
5
+ * (WebRTC, HAP, Alexa, custom addons).
6
+ *
7
+ * The schema is intentionally simple: typed common fields + two
8
+ * free-text arrays (inputArgs / outputArgs). The composite UI widget
9
+ * `stream-broker/ffmpeg-params` is the smart layer — it routes
10
+ * codec-specific overrides into the right scope and handles
11
+ * dependency gating, duplicate detection, and source-aware
12
+ * suggestions before persistence.
13
+ */
14
+ export declare const VideoEncodeSchema: z.ZodObject<{
15
+ codec: z.ZodEnum<{
16
+ h264: "h264";
17
+ h265: "h265";
18
+ copy: "copy";
19
+ }>;
20
+ profile: z.ZodOptional<z.ZodEnum<{
21
+ baseline: "baseline";
22
+ main: "main";
23
+ high: "high";
24
+ }>>;
25
+ width: z.ZodOptional<z.ZodNumber>;
26
+ height: z.ZodOptional<z.ZodNumber>;
27
+ fps: z.ZodOptional<z.ZodNumber>;
28
+ bitrateKbps: z.ZodOptional<z.ZodNumber>;
29
+ gopFrames: z.ZodOptional<z.ZodNumber>;
30
+ bf: z.ZodOptional<z.ZodNumber>;
31
+ preset: z.ZodOptional<z.ZodEnum<{
32
+ ultrafast: "ultrafast";
33
+ superfast: "superfast";
34
+ veryfast: "veryfast";
35
+ faster: "faster";
36
+ fast: "fast";
37
+ medium: "medium";
38
+ }>>;
39
+ tune: z.ZodOptional<z.ZodEnum<{
40
+ zerolatency: "zerolatency";
41
+ film: "film";
42
+ animation: "animation";
43
+ }>>;
44
+ }, z.core.$strip>;
45
+ export type VideoEncode = z.infer<typeof VideoEncodeSchema>;
46
+ export declare const AudioEncodeSchema: z.ZodUnion<readonly [z.ZodLiteral<"passthrough">, z.ZodObject<{
47
+ codec: z.ZodEnum<{
48
+ copy: "copy";
49
+ opus: "opus";
50
+ aac: "aac";
51
+ pcmu: "pcmu";
52
+ pcma: "pcma";
53
+ }>;
54
+ bitrateKbps: z.ZodOptional<z.ZodNumber>;
55
+ sampleRateHz: z.ZodOptional<z.ZodNumber>;
56
+ channels: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
57
+ }, z.core.$strip>]>;
58
+ export type AudioEncode = z.infer<typeof AudioEncodeSchema>;
59
+ export declare const EncodeProfileSchema: z.ZodObject<{
60
+ video: z.ZodObject<{
61
+ codec: z.ZodEnum<{
62
+ h264: "h264";
63
+ h265: "h265";
64
+ copy: "copy";
65
+ }>;
66
+ profile: z.ZodOptional<z.ZodEnum<{
67
+ baseline: "baseline";
68
+ main: "main";
69
+ high: "high";
70
+ }>>;
71
+ width: z.ZodOptional<z.ZodNumber>;
72
+ height: z.ZodOptional<z.ZodNumber>;
73
+ fps: z.ZodOptional<z.ZodNumber>;
74
+ bitrateKbps: z.ZodOptional<z.ZodNumber>;
75
+ gopFrames: z.ZodOptional<z.ZodNumber>;
76
+ bf: z.ZodOptional<z.ZodNumber>;
77
+ preset: z.ZodOptional<z.ZodEnum<{
78
+ ultrafast: "ultrafast";
79
+ superfast: "superfast";
80
+ veryfast: "veryfast";
81
+ faster: "faster";
82
+ fast: "fast";
83
+ medium: "medium";
84
+ }>>;
85
+ tune: z.ZodOptional<z.ZodEnum<{
86
+ zerolatency: "zerolatency";
87
+ film: "film";
88
+ animation: "animation";
89
+ }>>;
90
+ }, z.core.$strip>;
91
+ audio: z.ZodUnion<readonly [z.ZodLiteral<"passthrough">, z.ZodObject<{
92
+ codec: z.ZodEnum<{
93
+ copy: "copy";
94
+ opus: "opus";
95
+ aac: "aac";
96
+ pcmu: "pcmu";
97
+ pcma: "pcma";
98
+ }>;
99
+ bitrateKbps: z.ZodOptional<z.ZodNumber>;
100
+ sampleRateHz: z.ZodOptional<z.ZodNumber>;
101
+ channels: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
102
+ }, z.core.$strip>]>;
103
+ inputArgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
104
+ outputArgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
105
+ }, z.core.$strip>;
106
+ export type EncodeProfile = z.infer<typeof EncodeProfileSchema>;
107
+ /**
108
+ * Reshape a publisher-advertised stream shape (a `CameraStream`, a broker
109
+ * `ProfileSlot`, or anything else exposing `codec` + `resolution` + `fps`)
110
+ * into an `EncodeProfile` suitable for the read-only "Source (probed)"
111
+ * card of the `stream-broker/ffmpeg-params` widget.
112
+ *
113
+ * Returns `undefined` when nothing meaningful was advertised — the widget
114
+ * then hides the card rather than showing a codec chip with no shape.
115
+ * Audio is reported as `'passthrough'` because publishers don't carry
116
+ * audio shape at this level; the widget renders that as a single chip.
117
+ */
118
+ export declare function encodeProfileFromStreamShape(stream: {
119
+ readonly codec?: string;
120
+ readonly resolution?: {
121
+ readonly width: number;
122
+ readonly height: number;
123
+ };
124
+ readonly fps?: number;
125
+ }): EncodeProfile | undefined;
126
+ //# sourceMappingURL=encode-profile.d.ts.map