@camstack/types 0.1.39 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/addon/base-addon.d.ts +14 -2
  2. package/dist/addon/base-addon.d.ts.map +1 -1
  3. package/dist/addon/durable-state.d.ts +33 -0
  4. package/dist/addon/durable-state.d.ts.map +1 -0
  5. package/dist/capabilities/accessories.cap.d.ts +56 -8
  6. package/dist/capabilities/accessories.cap.d.ts.map +1 -1
  7. package/dist/capabilities/addon-settings.cap.d.ts +1 -0
  8. package/dist/capabilities/addon-settings.cap.d.ts.map +1 -1
  9. package/dist/capabilities/addons.cap.d.ts +187 -1
  10. package/dist/capabilities/addons.cap.d.ts.map +1 -1
  11. package/dist/capabilities/advanced-notifier.cap.d.ts +4 -0
  12. package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
  13. package/dist/capabilities/air-quality-sensor.cap.d.ts +56 -0
  14. package/dist/capabilities/air-quality-sensor.cap.d.ts.map +1 -0
  15. package/dist/capabilities/alarm-panel.cap.d.ts +154 -0
  16. package/dist/capabilities/alarm-panel.cap.d.ts.map +1 -0
  17. package/dist/capabilities/alerts.cap.d.ts +5 -5
  18. package/dist/capabilities/ambient-light-sensor.cap.d.ts +39 -0
  19. package/dist/capabilities/ambient-light-sensor.cap.d.ts.map +1 -0
  20. package/dist/capabilities/audio-analyzer.cap.d.ts +2 -2
  21. package/dist/capabilities/automation-control.cap.d.ts +65 -0
  22. package/dist/capabilities/automation-control.cap.d.ts.map +1 -0
  23. package/dist/capabilities/battery.cap.d.ts +30 -1
  24. package/dist/capabilities/battery.cap.d.ts.map +1 -1
  25. package/dist/capabilities/binary.cap.d.ts +40 -0
  26. package/dist/capabilities/binary.cap.d.ts.map +1 -0
  27. package/dist/capabilities/brightness.cap.d.ts +3 -2
  28. package/dist/capabilities/brightness.cap.d.ts.map +1 -1
  29. package/dist/capabilities/broker.cap.d.ts +291 -0
  30. package/dist/capabilities/broker.cap.d.ts.map +1 -0
  31. package/dist/capabilities/button.cap.d.ts +27 -0
  32. package/dist/capabilities/button.cap.d.ts.map +1 -0
  33. package/dist/capabilities/camera-credentials.cap.d.ts +1 -0
  34. package/dist/capabilities/camera-credentials.cap.d.ts.map +1 -1
  35. package/dist/capabilities/camera-pipeline-config.cap.d.ts +43 -0
  36. package/dist/capabilities/camera-pipeline-config.cap.d.ts.map +1 -0
  37. package/dist/capabilities/camera-streams.cap.d.ts +147 -10
  38. package/dist/capabilities/camera-streams.cap.d.ts.map +1 -1
  39. package/dist/capabilities/capability-definition.d.ts +15 -0
  40. package/dist/capabilities/capability-definition.d.ts.map +1 -1
  41. package/dist/capabilities/carbon-monoxide.cap.d.ts +33 -0
  42. package/dist/capabilities/carbon-monoxide.cap.d.ts.map +1 -0
  43. package/dist/capabilities/climate-control.cap.d.ts +183 -0
  44. package/dist/capabilities/climate-control.cap.d.ts.map +1 -0
  45. package/dist/capabilities/color.cap.d.ts +186 -0
  46. package/dist/capabilities/color.cap.d.ts.map +1 -0
  47. package/dist/capabilities/connectivity.cap.d.ts +37 -0
  48. package/dist/capabilities/connectivity.cap.d.ts.map +1 -0
  49. package/dist/capabilities/consumables.cap.d.ts +105 -0
  50. package/dist/capabilities/consumables.cap.d.ts.map +1 -0
  51. package/dist/capabilities/contact.cap.d.ts +41 -0
  52. package/dist/capabilities/contact.cap.d.ts.map +1 -0
  53. package/dist/capabilities/control.cap.d.ts +167 -0
  54. package/dist/capabilities/control.cap.d.ts.map +1 -0
  55. package/dist/capabilities/cover.cap.d.ts +104 -0
  56. package/dist/capabilities/cover.cap.d.ts.map +1 -0
  57. package/dist/capabilities/custom-actions.d.ts +6 -0
  58. package/dist/capabilities/custom-actions.d.ts.map +1 -1
  59. package/dist/capabilities/decoder.cap.d.ts +1 -1
  60. package/dist/capabilities/device-adoption.cap.d.ts +203 -0
  61. package/dist/capabilities/device-adoption.cap.d.ts.map +1 -0
  62. package/dist/capabilities/device-discovery.cap.d.ts +44 -143
  63. package/dist/capabilities/device-discovery.cap.d.ts.map +1 -1
  64. package/dist/capabilities/device-manager.cap.d.ts +469 -0
  65. package/dist/capabilities/device-manager.cap.d.ts.map +1 -1
  66. package/dist/capabilities/device-ops.cap.d.ts +30 -0
  67. package/dist/capabilities/device-ops.cap.d.ts.map +1 -1
  68. package/dist/capabilities/device-provider.cap.d.ts +36 -0
  69. package/dist/capabilities/device-provider.cap.d.ts.map +1 -1
  70. package/dist/capabilities/device-status.cap.d.ts +1 -0
  71. package/dist/capabilities/device-status.cap.d.ts.map +1 -1
  72. package/dist/capabilities/doorbell.cap.d.ts +1 -0
  73. package/dist/capabilities/doorbell.cap.d.ts.map +1 -1
  74. package/dist/capabilities/enum-sensor.cap.d.ts +60 -0
  75. package/dist/capabilities/enum-sensor.cap.d.ts.map +1 -0
  76. package/dist/capabilities/event-emitter.cap.d.ts +79 -0
  77. package/dist/capabilities/event-emitter.cap.d.ts.map +1 -0
  78. package/dist/capabilities/fan-control.cap.d.ts +100 -0
  79. package/dist/capabilities/fan-control.cap.d.ts.map +1 -0
  80. package/dist/capabilities/feature-probe.cap.d.ts +1 -0
  81. package/dist/capabilities/feature-probe.cap.d.ts.map +1 -1
  82. package/dist/capabilities/flood.cap.d.ts +37 -0
  83. package/dist/capabilities/flood.cap.d.ts.map +1 -0
  84. package/dist/capabilities/gas.cap.d.ts +34 -0
  85. package/dist/capabilities/gas.cap.d.ts.map +1 -0
  86. package/dist/capabilities/humidifier.cap.d.ts +82 -0
  87. package/dist/capabilities/humidifier.cap.d.ts.map +1 -0
  88. package/dist/capabilities/humidity-sensor.cap.d.ts +43 -0
  89. package/dist/capabilities/humidity-sensor.cap.d.ts.map +1 -0
  90. package/dist/capabilities/image.cap.d.ts +44 -0
  91. package/dist/capabilities/image.cap.d.ts.map +1 -0
  92. package/dist/capabilities/index.d.ts +103 -15
  93. package/dist/capabilities/index.d.ts.map +1 -1
  94. package/dist/capabilities/integrations.cap.d.ts +12 -0
  95. package/dist/capabilities/integrations.cap.d.ts.map +1 -1
  96. package/dist/capabilities/intercom.cap.d.ts +49 -9
  97. package/dist/capabilities/intercom.cap.d.ts.map +1 -1
  98. package/dist/capabilities/lawn-mower-control.cap.d.ts +83 -0
  99. package/dist/capabilities/lawn-mower-control.cap.d.ts.map +1 -0
  100. package/dist/capabilities/local-network.cap.d.ts +1 -1
  101. package/dist/capabilities/lock-control.cap.d.ts +92 -0
  102. package/dist/capabilities/lock-control.cap.d.ts.map +1 -0
  103. package/dist/capabilities/mask-shape.d.ts +99 -0
  104. package/dist/capabilities/mask-shape.d.ts.map +1 -0
  105. package/dist/capabilities/media-player.cap.d.ts +201 -0
  106. package/dist/capabilities/media-player.cap.d.ts.map +1 -0
  107. package/dist/capabilities/mesh-network.cap.d.ts +3 -3
  108. package/dist/capabilities/motion-trigger.cap.d.ts +1 -0
  109. package/dist/capabilities/motion-trigger.cap.d.ts.map +1 -1
  110. package/dist/capabilities/motion-zones.cap.d.ts +95 -13
  111. package/dist/capabilities/motion-zones.cap.d.ts.map +1 -1
  112. package/dist/capabilities/mqtt-broker.cap.d.ts +3 -3
  113. package/dist/capabilities/native-object-detection.cap.d.ts +74 -3
  114. package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -1
  115. package/dist/capabilities/network-access.cap.d.ts +7 -7
  116. package/dist/capabilities/network-quality.cap.d.ts +5 -0
  117. package/dist/capabilities/network-quality.cap.d.ts.map +1 -1
  118. package/dist/capabilities/notifier.cap.d.ts +173 -0
  119. package/dist/capabilities/notifier.cap.d.ts.map +1 -0
  120. package/dist/capabilities/numeric-sensor.cap.d.ts +52 -0
  121. package/dist/capabilities/numeric-sensor.cap.d.ts.map +1 -0
  122. package/dist/capabilities/oauth-integration.cap.d.ts +4 -2
  123. package/dist/capabilities/oauth-integration.cap.d.ts.map +1 -1
  124. package/dist/capabilities/osd.cap.d.ts +1 -0
  125. package/dist/capabilities/osd.cap.d.ts.map +1 -1
  126. package/dist/capabilities/pipeline-analytics.cap.d.ts +69 -22
  127. package/dist/capabilities/pipeline-analytics.cap.d.ts.map +1 -1
  128. package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
  129. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +1 -1
  130. package/dist/capabilities/pipeline-runner.cap.d.ts +4 -2
  131. package/dist/capabilities/pipeline-runner.cap.d.ts.map +1 -1
  132. package/dist/capabilities/platform-probe.cap.d.ts +25 -0
  133. package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
  134. package/dist/capabilities/power-meter.cap.d.ts +65 -0
  135. package/dist/capabilities/power-meter.cap.d.ts.map +1 -0
  136. package/dist/capabilities/presence.cap.d.ts +79 -0
  137. package/dist/capabilities/presence.cap.d.ts.map +1 -0
  138. package/dist/capabilities/pressure-sensor.cap.d.ts +43 -0
  139. package/dist/capabilities/pressure-sensor.cap.d.ts.map +1 -0
  140. package/dist/capabilities/privacy-mask.cap.d.ts +207 -0
  141. package/dist/capabilities/privacy-mask.cap.d.ts.map +1 -0
  142. package/dist/capabilities/ptz-autotrack.cap.d.ts +1 -0
  143. package/dist/capabilities/ptz-autotrack.cap.d.ts.map +1 -1
  144. package/dist/capabilities/ptz.cap.d.ts +1 -0
  145. package/dist/capabilities/ptz.cap.d.ts.map +1 -1
  146. package/dist/capabilities/reboot.cap.d.ts +1 -0
  147. package/dist/capabilities/reboot.cap.d.ts.map +1 -1
  148. package/dist/capabilities/recording.cap.d.ts +238 -32
  149. package/dist/capabilities/recording.cap.d.ts.map +1 -1
  150. package/dist/capabilities/restreamer.cap.d.ts +2 -2
  151. package/dist/capabilities/schemas/detection-shared.d.ts +14 -1
  152. package/dist/capabilities/schemas/detection-shared.d.ts.map +1 -1
  153. package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
  154. package/dist/capabilities/schemas/streaming-shared.d.ts +64 -1
  155. package/dist/capabilities/schemas/streaming-shared.d.ts.map +1 -1
  156. package/dist/capabilities/script-runner.cap.d.ts +62 -0
  157. package/dist/capabilities/script-runner.cap.d.ts.map +1 -0
  158. package/dist/capabilities/settings-store.cap.d.ts +25 -0
  159. package/dist/capabilities/settings-store.cap.d.ts.map +1 -1
  160. package/dist/capabilities/smoke.cap.d.ts +38 -0
  161. package/dist/capabilities/smoke.cap.d.ts.map +1 -0
  162. package/dist/capabilities/snapshot-provider.cap.d.ts +1 -1
  163. package/dist/capabilities/snapshot.cap.d.ts +1 -0
  164. package/dist/capabilities/snapshot.cap.d.ts.map +1 -1
  165. package/dist/capabilities/sso-bridge.cap.d.ts +3 -3
  166. package/dist/capabilities/storage-evictable.cap.d.ts +54 -0
  167. package/dist/capabilities/storage-evictable.cap.d.ts.map +1 -0
  168. package/dist/capabilities/storage-provider.cap.d.ts +31 -186
  169. package/dist/capabilities/storage-provider.cap.d.ts.map +1 -1
  170. package/dist/capabilities/storage.cap.d.ts +35 -226
  171. package/dist/capabilities/storage.cap.d.ts.map +1 -1
  172. package/dist/capabilities/stream-broker.cap.d.ts +309 -25
  173. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
  174. package/dist/capabilities/stream-catalog.cap.d.ts +85 -0
  175. package/dist/capabilities/stream-catalog.cap.d.ts.map +1 -0
  176. package/dist/capabilities/stream-params.cap.d.ts +27 -26
  177. package/dist/capabilities/stream-params.cap.d.ts.map +1 -1
  178. package/dist/capabilities/switch.cap.d.ts +1 -0
  179. package/dist/capabilities/switch.cap.d.ts.map +1 -1
  180. package/dist/capabilities/tamper.cap.d.ts +33 -0
  181. package/dist/capabilities/tamper.cap.d.ts.map +1 -0
  182. package/dist/capabilities/temperature-sensor.cap.d.ts +51 -0
  183. package/dist/capabilities/temperature-sensor.cap.d.ts.map +1 -0
  184. package/dist/capabilities/update.cap.d.ts +49 -0
  185. package/dist/capabilities/update.cap.d.ts.map +1 -0
  186. package/dist/capabilities/user-management.cap.d.ts +20 -20
  187. package/dist/capabilities/vacuum-control.cap.d.ts +229 -0
  188. package/dist/capabilities/vacuum-control.cap.d.ts.map +1 -0
  189. package/dist/capabilities/valve.cap.d.ts +93 -0
  190. package/dist/capabilities/valve.cap.d.ts.map +1 -0
  191. package/dist/capabilities/vibration.cap.d.ts +33 -0
  192. package/dist/capabilities/vibration.cap.d.ts.map +1 -0
  193. package/dist/capabilities/water-heater.cap.d.ts +78 -0
  194. package/dist/capabilities/water-heater.cap.d.ts.map +1 -0
  195. package/dist/capabilities/weather.cap.d.ts +76 -0
  196. package/dist/capabilities/weather.cap.d.ts.map +1 -0
  197. package/dist/capabilities/webrtc-session.cap.d.ts +128 -0
  198. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  199. package/dist/constants.d.ts +0 -2
  200. package/dist/constants.d.ts.map +1 -1
  201. package/dist/device/base-device-provider.d.ts +11 -0
  202. package/dist/device/base-device-provider.d.ts.map +1 -1
  203. package/dist/device/base-device.d.ts +52 -0
  204. package/dist/device/base-device.d.ts.map +1 -1
  205. package/dist/device/device-context.d.ts +29 -0
  206. package/dist/device/device-context.d.ts.map +1 -1
  207. package/dist/device/device-link-transform.d.ts +6 -0
  208. package/dist/device/device-link-transform.d.ts.map +1 -0
  209. package/dist/device/device-management.d.ts +116 -4
  210. package/dist/device/device-management.d.ts.map +1 -1
  211. package/dist/device/device-type.d.ts +214 -3
  212. package/dist/device/device-type.d.ts.map +1 -1
  213. package/dist/device/device.d.ts +25 -0
  214. package/dist/device/device.d.ts.map +1 -1
  215. package/dist/device/index.d.ts +5 -1
  216. package/dist/device/index.d.ts.map +1 -1
  217. package/dist/device/path-util.d.ts +13 -0
  218. package/dist/device/path-util.d.ts.map +1 -0
  219. package/dist/device/schema-fields.d.ts +12 -0
  220. package/dist/device/schema-fields.d.ts.map +1 -0
  221. package/dist/device/source-info.d.ts +87 -0
  222. package/dist/device/source-info.d.ts.map +1 -0
  223. package/dist/device/system-mirror.d.ts +6 -2
  224. package/dist/device/system-mirror.d.ts.map +1 -1
  225. package/dist/encode-profile.d.ts +126 -0
  226. package/dist/encode-profile.d.ts.map +1 -0
  227. package/dist/enums/event-category.d.ts +92 -7
  228. package/dist/enums/event-category.d.ts.map +1 -1
  229. package/dist/generated/addon-api.d.ts +12821 -8025
  230. package/dist/generated/addon-api.d.ts.map +1 -1
  231. package/dist/generated/cap-status-types.d.ts +87 -1
  232. package/dist/generated/cap-status-types.d.ts.map +1 -1
  233. package/dist/generated/capability-router-map.d.ts +142 -7
  234. package/dist/generated/capability-router-map.d.ts.map +1 -1
  235. package/dist/generated/device-local-state.d.ts +123 -0
  236. package/dist/generated/device-local-state.d.ts.map +1 -1
  237. package/dist/generated/device-proxy.d.ts +132 -5
  238. package/dist/generated/device-proxy.d.ts.map +1 -1
  239. package/dist/generated/method-access-map.d.ts +1 -1
  240. package/dist/generated/method-access-map.d.ts.map +1 -1
  241. package/dist/generated/provider-kind-map.d.ts +1 -1
  242. package/dist/generated/provider-kind-map.d.ts.map +1 -1
  243. package/dist/generated/system-proxy.d.ts +10 -8
  244. package/dist/generated/system-proxy.d.ts.map +1 -1
  245. package/dist/health/wiring-health.d.ts +136 -0
  246. package/dist/health/wiring-health.d.ts.map +1 -0
  247. package/dist/{index-CMM1Y9W6.js → index-BSA_TBea.js} +4774 -923
  248. package/dist/index-BSA_TBea.js.map +1 -0
  249. package/dist/{index-QRlzao1I.mjs → index-Bpj3ScIH.mjs} +5142 -1291
  250. package/dist/index-Bpj3ScIH.mjs.map +1 -0
  251. package/dist/index.d.ts +23 -3
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +1498 -119
  254. package/dist/index.js.map +1 -1
  255. package/dist/index.mjs +1806 -427
  256. package/dist/index.mjs.map +1 -1
  257. package/dist/interfaces/addon-data-plane.d.ts +76 -0
  258. package/dist/interfaces/addon-data-plane.d.ts.map +1 -0
  259. package/dist/interfaces/addon.d.ts +61 -1
  260. package/dist/interfaces/addon.d.ts.map +1 -1
  261. package/dist/interfaces/advanced-notifier.d.ts +4 -0
  262. package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
  263. package/dist/interfaces/capability.d.ts +59 -1
  264. package/dist/interfaces/capability.d.ts.map +1 -1
  265. package/dist/interfaces/config-ui.d.ts +70 -6
  266. package/dist/interfaces/config-ui.d.ts.map +1 -1
  267. package/dist/interfaces/device-capabilities/camera.d.ts +2 -1
  268. package/dist/interfaces/device-capabilities/camera.d.ts.map +1 -1
  269. package/dist/interfaces/event-bus.d.ts +105 -4
  270. package/dist/interfaces/event-bus.d.ts.map +1 -1
  271. package/dist/interfaces/kernel-abstractions.d.ts +10 -1
  272. package/dist/interfaces/kernel-abstractions.d.ts.map +1 -1
  273. package/dist/interfaces/network-quality.d.ts +8 -0
  274. package/dist/interfaces/network-quality.d.ts.map +1 -1
  275. package/dist/interfaces/pipeline-executor-capability.d.ts +2 -2
  276. package/dist/interfaces/pipeline-orchestrator-capability.d.ts +2 -1
  277. package/dist/interfaces/pipeline-orchestrator-capability.d.ts.map +1 -1
  278. package/dist/interfaces/pipeline-runner-capability.d.ts +7 -0
  279. package/dist/interfaces/pipeline-runner-capability.d.ts.map +1 -1
  280. package/dist/interfaces/recording-config.d.ts +91 -0
  281. package/dist/interfaces/recording-config.d.ts.map +1 -0
  282. package/dist/interfaces/rtp-egress.d.ts +2 -3
  283. package/dist/interfaces/rtp-egress.d.ts.map +1 -1
  284. package/dist/interfaces/storage-location-declaration.d.ts +34 -0
  285. package/dist/interfaces/storage-location-declaration.d.ts.map +1 -0
  286. package/dist/interfaces/storage-location.d.ts +18 -74
  287. package/dist/interfaces/storage-location.d.ts.map +1 -1
  288. package/dist/interfaces/storage.d.ts +15 -4
  289. package/dist/interfaces/storage.d.ts.map +1 -1
  290. package/dist/interfaces/stream-broker.d.ts +39 -4
  291. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  292. package/dist/interfaces/timezones.d.ts +59 -0
  293. package/dist/interfaces/timezones.d.ts.map +1 -0
  294. package/dist/node.d.ts +3 -0
  295. package/dist/node.d.ts.map +1 -1
  296. package/dist/node.js +50 -8
  297. package/dist/node.js.map +1 -1
  298. package/dist/node.mjs +51 -9
  299. package/dist/node.mjs.map +1 -1
  300. package/dist/readiness/readiness-registry.d.ts.map +1 -1
  301. package/dist/schemas/auth-records.d.ts +4 -4
  302. package/dist/storage/filesystem-storage-provider.d.ts +2 -1
  303. package/dist/storage/filesystem-storage-provider.d.ts.map +1 -1
  304. package/dist/stream-selection.d.ts +85 -0
  305. package/dist/stream-selection.d.ts.map +1 -0
  306. package/dist/types/detection.d.ts +3 -3
  307. package/dist/types/io.d.ts +13 -1
  308. package/dist/types/io.d.ts.map +1 -1
  309. package/dist/util/location-match.d.ts +15 -0
  310. package/dist/util/location-match.d.ts.map +1 -0
  311. package/dist/utils/canonical-hash.d.ts +20 -0
  312. package/dist/utils/canonical-hash.d.ts.map +1 -0
  313. package/dist/utils/export-reconciler.d.ts +101 -0
  314. package/dist/utils/export-reconciler.d.ts.map +1 -0
  315. package/dist/utils/privacy-grid-raster.d.ts +48 -0
  316. package/dist/utils/privacy-grid-raster.d.ts.map +1 -0
  317. package/dist/utils/sleep.d.ts +36 -0
  318. package/dist/utils/sleep.d.ts.map +1 -0
  319. package/package.json +1 -1
  320. package/dist/capabilities/recording-engine.cap.d.ts +0 -477
  321. package/dist/capabilities/recording-engine.cap.d.ts.map +0 -1
  322. package/dist/index-CMM1Y9W6.js.map +0 -1
  323. package/dist/index-QRlzao1I.mjs.map +0 -1
@@ -0,0 +1,92 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * Smart-lock cap. Models HA `lock.*` entities — anything with a
6
+ * locked / unlocked binary state plus the four transient lifecycle
7
+ * states (`locking` / `unlocking`) and the `jammed` failure state
8
+ * that low-end deadbolts surface when the motor can't reach the
9
+ * target position.
10
+ *
11
+ * Some HA locks require a PIN code on every lock/unlock operation
12
+ * (workplace keypad locks, hospitality). The optional `code` field
13
+ * on the methods passes it through to the upstream service — the
14
+ * code is NEVER persisted in the runtime slice or any event payload.
15
+ * Locks that REQUIRE a code set `DeviceFeature.LockPinRequired` so
16
+ * the UI gates a code-entry field without a slice fetch.
17
+ *
18
+ * Locks that support a latch-release ("open door") action advertise
19
+ * `DeviceFeature.LockOpen`. The `open` method triggers the latch
20
+ * without a full lock/unlock cycle. Only available when the lock
21
+ * reports `LockEntityFeature.OPEN` (bit value 1) in HA
22
+ * `supported_features`.
23
+ */
24
+ export declare const LockStateSchema: z.ZodEnum<{
25
+ locked: "locked";
26
+ unlocked: "unlocked";
27
+ locking: "locking";
28
+ unlocking: "unlocking";
29
+ jammed: "jammed";
30
+ }>;
31
+ export type LockState = z.infer<typeof LockStateSchema>;
32
+ export declare const LockControlStatusSchema: z.ZodObject<{
33
+ state: z.ZodEnum<{
34
+ locked: "locked";
35
+ unlocked: "unlocked";
36
+ locking: "locking";
37
+ unlocking: "unlocking";
38
+ jammed: "jammed";
39
+ }>;
40
+ lastChangedAt: z.ZodNumber;
41
+ }, z.core.$strip>;
42
+ export type LockControlStatus = z.infer<typeof LockControlStatusSchema>;
43
+ export declare const lockControlCapability: {
44
+ readonly name: "lock-control";
45
+ readonly scope: "device";
46
+ readonly deviceNative: true;
47
+ readonly mode: "singleton";
48
+ readonly deviceTypes: readonly [DeviceType.Lock];
49
+ readonly methods: {
50
+ readonly lock: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
51
+ deviceId: z.ZodNumber;
52
+ code: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
54
+ readonly unlock: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
55
+ deviceId: z.ZodNumber;
56
+ code: z.ZodOptional<z.ZodString>;
57
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
58
+ readonly open: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
59
+ deviceId: z.ZodNumber;
60
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
61
+ };
62
+ readonly status: {
63
+ readonly schema: z.ZodObject<{
64
+ state: z.ZodEnum<{
65
+ locked: "locked";
66
+ unlocked: "unlocked";
67
+ locking: "locking";
68
+ unlocking: "unlocking";
69
+ jammed: "jammed";
70
+ }>;
71
+ lastChangedAt: z.ZodNumber;
72
+ }, z.core.$strip>;
73
+ readonly kind: "push";
74
+ };
75
+ /**
76
+ * Runtime-state slice — mirrored by the kernel. UI lock buttons
77
+ * read `state` and disable themselves during `locking`/`unlocking`
78
+ * transitions.
79
+ */
80
+ readonly runtimeState: z.ZodObject<{
81
+ state: z.ZodEnum<{
82
+ locked: "locked";
83
+ unlocked: "unlocked";
84
+ locking: "locking";
85
+ unlocking: "unlocking";
86
+ jammed: "jammed";
87
+ }>;
88
+ lastChangedAt: z.ZodNumber;
89
+ }, z.core.$strip>;
90
+ };
91
+ export type ILockControlProvider = InferProvider<typeof lockControlCapability>;
92
+ //# sourceMappingURL=lock-control.cap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-control.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/lock-control.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,uBAAuB;;;;;;;;;iBAMlC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqChC;;;;OAIG;;;;;;;;;;;CAEoC,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
@@ -0,0 +1,99 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Shared geometry vocabulary for on-frame shape caps — privacy-mask,
4
+ * motion-zones, and the detection zones/lines editor all speak this one
5
+ * language so a single drawing-plane editor and the providers stay
6
+ * decoupled from each cap's storage.
7
+ *
8
+ * All coordinates are normalized 0..1 of the camera frame (top-left
9
+ * origin). Each cap composes the SUBSET of shape kinds it supports and
10
+ * advertises it via `supportedShapes` in its `getOptions`.
11
+ */
12
+ /** A normalized 0..1 point (top-left origin). */
13
+ export declare const MaskPointSchema: z.ZodObject<{
14
+ x: z.ZodNumber;
15
+ y: z.ZodNumber;
16
+ }, z.core.$strip>;
17
+ /** Axis-aligned rectangle (normalized 0..1). */
18
+ export declare const MaskRectShapeSchema: z.ZodObject<{
19
+ kind: z.ZodLiteral<"rect">;
20
+ x: z.ZodNumber;
21
+ y: z.ZodNumber;
22
+ width: z.ZodNumber;
23
+ height: z.ZodNumber;
24
+ }, z.core.$strip>;
25
+ /** Free polygon — an ordered list of normalized vertices (≥3). */
26
+ export declare const MaskPolygonShapeSchema: z.ZodObject<{
27
+ kind: z.ZodLiteral<"polygon">;
28
+ points: z.ZodArray<z.ZodObject<{
29
+ x: z.ZodNumber;
30
+ y: z.ZodNumber;
31
+ }, z.core.$strip>>;
32
+ }, z.core.$strip>;
33
+ /** Boolean cell grid — row-major, length === gridWidth*gridHeight. */
34
+ export declare const MaskGridShapeSchema: z.ZodObject<{
35
+ kind: z.ZodLiteral<"grid">;
36
+ gridWidth: z.ZodNumber;
37
+ gridHeight: z.ZodNumber;
38
+ cells: z.ZodArray<z.ZodBoolean>;
39
+ }, z.core.$strip>;
40
+ /** Directed line / tripwire — an ordered list of normalized points (≥2). */
41
+ export declare const MaskLineShapeSchema: z.ZodObject<{
42
+ kind: z.ZodLiteral<"line">;
43
+ points: z.ZodArray<z.ZodObject<{
44
+ x: z.ZodNumber;
45
+ y: z.ZodNumber;
46
+ }, z.core.$strip>>;
47
+ }, z.core.$strip>;
48
+ /** The full shape vocabulary. Caps compose the subset they support. */
49
+ export declare const MaskShapeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
50
+ kind: z.ZodLiteral<"rect">;
51
+ x: z.ZodNumber;
52
+ y: z.ZodNumber;
53
+ width: z.ZodNumber;
54
+ height: z.ZodNumber;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ kind: z.ZodLiteral<"polygon">;
57
+ points: z.ZodArray<z.ZodObject<{
58
+ x: z.ZodNumber;
59
+ y: z.ZodNumber;
60
+ }, z.core.$strip>>;
61
+ }, z.core.$strip>, z.ZodObject<{
62
+ kind: z.ZodLiteral<"grid">;
63
+ gridWidth: z.ZodNumber;
64
+ gridHeight: z.ZodNumber;
65
+ cells: z.ZodArray<z.ZodBoolean>;
66
+ }, z.core.$strip>, z.ZodObject<{
67
+ kind: z.ZodLiteral<"line">;
68
+ points: z.ZodArray<z.ZodObject<{
69
+ x: z.ZodNumber;
70
+ y: z.ZodNumber;
71
+ }, z.core.$strip>>;
72
+ }, z.core.$strip>], "kind">;
73
+ /** Every shape-kind discriminant, for `supportedShapes` advertisement. */
74
+ export declare const MaskShapeKindSchema: z.ZodEnum<{
75
+ polygon: "polygon";
76
+ rect: "rect";
77
+ grid: "grid";
78
+ line: "line";
79
+ }>;
80
+ /** Polygon vertex bounds when a cap supports 'polygon' (e.g. Hikvision {min:4,max:4}). */
81
+ export declare const MaskPolygonVerticesSchema: z.ZodObject<{
82
+ min: z.ZodNumber;
83
+ max: z.ZodNumber;
84
+ }, z.core.$strip>;
85
+ /** Grid dimensions when a cap supports 'grid'. */
86
+ export declare const MaskGridDimsSchema: z.ZodObject<{
87
+ width: z.ZodNumber;
88
+ height: z.ZodNumber;
89
+ }, z.core.$strip>;
90
+ export type MaskPoint = z.infer<typeof MaskPointSchema>;
91
+ export type MaskRectShape = z.infer<typeof MaskRectShapeSchema>;
92
+ export type MaskPolygonShape = z.infer<typeof MaskPolygonShapeSchema>;
93
+ export type MaskGridShape = z.infer<typeof MaskGridShapeSchema>;
94
+ export type MaskLineShape = z.infer<typeof MaskLineShapeSchema>;
95
+ export type MaskShape = z.infer<typeof MaskShapeSchema>;
96
+ export type MaskShapeKind = z.infer<typeof MaskShapeKindSchema>;
97
+ export type MaskPolygonVertices = z.infer<typeof MaskPolygonVerticesSchema>;
98
+ export type MaskGridDims = z.infer<typeof MaskGridDimsSchema>;
99
+ //# sourceMappingURL=mask-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-shape.d.ts","sourceRoot":"","sources":["../../src/capabilities/mask-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;;;;GASG;AAEH,iDAAiD;AACjD,eAAO,MAAM,eAAe;;;iBAG1B,CAAA;AAEF,gDAAgD;AAChD,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAA;AAEF,kEAAkE;AAClE,eAAO,MAAM,sBAAsB;;;;;;iBAGjC,CAAA;AAEF,sEAAsE;AACtE,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAA;AAEF,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB;;;;;;iBAG9B,CAAA;AAEF,uEAAuE;AACvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;2BAK1B,CAAA;AAEF,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB;;;;;EAA8C,CAAA;AAE9E,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,kDAAkD;AAClD,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,201 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
6
+ * Apple TV, Spotify, Roku, generic OTT receivers, …) on
7
+ * `DeviceType.MediaPlayer`. Disjoint from the camera streaming
8
+ * surface — those use `DeviceType.Camera` + the broker pipeline.
9
+ *
10
+ * The cap declares a wide method surface; not every backend supports
11
+ * every method. Drivers signal sub-capability via the
12
+ * `DeviceFeature.MediaPlayerXxx` flags (paired one-to-one with the
13
+ * corresponding method) so the UI gates buttons without a slice
14
+ * fetch — same pattern as `PanTiltZoom` for cameras.
15
+ */
16
+ export declare const MediaPlayerStateSchema: z.ZodEnum<{
17
+ off: "off";
18
+ idle: "idle";
19
+ playing: "playing";
20
+ paused: "paused";
21
+ on: "on";
22
+ buffering: "buffering";
23
+ standby: "standby";
24
+ }>;
25
+ export type MediaPlayerState = z.infer<typeof MediaPlayerStateSchema>;
26
+ export declare const MediaPlayerRepeatSchema: z.ZodEnum<{
27
+ off: "off";
28
+ all: "all";
29
+ one: "one";
30
+ }>;
31
+ export type MediaPlayerRepeat = z.infer<typeof MediaPlayerRepeatSchema>;
32
+ declare const MediaInfoSchema: z.ZodObject<{
33
+ type: z.ZodString;
34
+ title: z.ZodString;
35
+ artist: z.ZodOptional<z.ZodString>;
36
+ album: z.ZodOptional<z.ZodString>;
37
+ imageUrl: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>;
39
+ export type MediaInfo = z.infer<typeof MediaInfoSchema>;
40
+ export declare const MediaPlayerStatusSchema: z.ZodObject<{
41
+ state: z.ZodEnum<{
42
+ off: "off";
43
+ idle: "idle";
44
+ playing: "playing";
45
+ paused: "paused";
46
+ on: "on";
47
+ buffering: "buffering";
48
+ standby: "standby";
49
+ }>;
50
+ volumeLevel: z.ZodNullable<z.ZodNumber>;
51
+ isMuted: z.ZodNullable<z.ZodBoolean>;
52
+ source: z.ZodString;
53
+ availableSources: z.ZodArray<z.ZodString>;
54
+ currentMedia: z.ZodNullable<z.ZodObject<{
55
+ type: z.ZodString;
56
+ title: z.ZodString;
57
+ artist: z.ZodOptional<z.ZodString>;
58
+ album: z.ZodOptional<z.ZodString>;
59
+ imageUrl: z.ZodOptional<z.ZodString>;
60
+ }, z.core.$strip>>;
61
+ positionMs: z.ZodNullable<z.ZodNumber>;
62
+ durationMs: z.ZodNullable<z.ZodNumber>;
63
+ shuffle: z.ZodNullable<z.ZodBoolean>;
64
+ repeat: z.ZodNullable<z.ZodEnum<{
65
+ off: "off";
66
+ all: "all";
67
+ one: "one";
68
+ }>>;
69
+ lastChangedAt: z.ZodNumber;
70
+ }, z.core.$strip>;
71
+ export type MediaPlayerStatus = z.infer<typeof MediaPlayerStatusSchema>;
72
+ export declare const mediaPlayerCapability: {
73
+ readonly name: "media-player";
74
+ readonly scope: "device";
75
+ readonly deviceNative: true;
76
+ readonly mode: "singleton";
77
+ readonly deviceTypes: readonly [DeviceType.MediaPlayer];
78
+ readonly methods: {
79
+ readonly play: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
80
+ deviceId: z.ZodNumber;
81
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
82
+ readonly pause: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
83
+ deviceId: z.ZodNumber;
84
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
85
+ readonly stop: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
86
+ deviceId: z.ZodNumber;
87
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
88
+ readonly next: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
89
+ deviceId: z.ZodNumber;
90
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
91
+ readonly previous: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
92
+ deviceId: z.ZodNumber;
93
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
94
+ readonly seek: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
95
+ deviceId: z.ZodNumber;
96
+ positionMs: z.ZodNumber;
97
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
98
+ readonly setVolume: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
99
+ deviceId: z.ZodNumber;
100
+ volumeLevel: z.ZodNumber;
101
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
102
+ readonly setMute: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
103
+ deviceId: z.ZodNumber;
104
+ muted: z.ZodBoolean;
105
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
106
+ readonly setShuffle: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
107
+ deviceId: z.ZodNumber;
108
+ shuffle: z.ZodBoolean;
109
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
110
+ readonly setRepeat: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
111
+ deviceId: z.ZodNumber;
112
+ repeat: z.ZodEnum<{
113
+ off: "off";
114
+ all: "all";
115
+ one: "one";
116
+ }>;
117
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
118
+ readonly selectSource: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
119
+ deviceId: z.ZodNumber;
120
+ source: z.ZodString;
121
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
122
+ readonly playMedia: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
123
+ deviceId: z.ZodNumber;
124
+ mediaId: z.ZodString;
125
+ mediaType: z.ZodString;
126
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
127
+ };
128
+ readonly status: {
129
+ readonly schema: z.ZodObject<{
130
+ state: z.ZodEnum<{
131
+ off: "off";
132
+ idle: "idle";
133
+ playing: "playing";
134
+ paused: "paused";
135
+ on: "on";
136
+ buffering: "buffering";
137
+ standby: "standby";
138
+ }>;
139
+ volumeLevel: z.ZodNullable<z.ZodNumber>;
140
+ isMuted: z.ZodNullable<z.ZodBoolean>;
141
+ source: z.ZodString;
142
+ availableSources: z.ZodArray<z.ZodString>;
143
+ currentMedia: z.ZodNullable<z.ZodObject<{
144
+ type: z.ZodString;
145
+ title: z.ZodString;
146
+ artist: z.ZodOptional<z.ZodString>;
147
+ album: z.ZodOptional<z.ZodString>;
148
+ imageUrl: z.ZodOptional<z.ZodString>;
149
+ }, z.core.$strip>>;
150
+ positionMs: z.ZodNullable<z.ZodNumber>;
151
+ durationMs: z.ZodNullable<z.ZodNumber>;
152
+ shuffle: z.ZodNullable<z.ZodBoolean>;
153
+ repeat: z.ZodNullable<z.ZodEnum<{
154
+ off: "off";
155
+ all: "all";
156
+ one: "one";
157
+ }>>;
158
+ lastChangedAt: z.ZodNumber;
159
+ }, z.core.$strip>;
160
+ readonly kind: "push";
161
+ };
162
+ /**
163
+ * Runtime-state slice — mirrored by the kernel. UI players read the
164
+ * full slice for live now-playing, volume, and progress updates
165
+ * without polling.
166
+ */
167
+ readonly runtimeState: z.ZodObject<{
168
+ state: z.ZodEnum<{
169
+ off: "off";
170
+ idle: "idle";
171
+ playing: "playing";
172
+ paused: "paused";
173
+ on: "on";
174
+ buffering: "buffering";
175
+ standby: "standby";
176
+ }>;
177
+ volumeLevel: z.ZodNullable<z.ZodNumber>;
178
+ isMuted: z.ZodNullable<z.ZodBoolean>;
179
+ source: z.ZodString;
180
+ availableSources: z.ZodArray<z.ZodString>;
181
+ currentMedia: z.ZodNullable<z.ZodObject<{
182
+ type: z.ZodString;
183
+ title: z.ZodString;
184
+ artist: z.ZodOptional<z.ZodString>;
185
+ album: z.ZodOptional<z.ZodString>;
186
+ imageUrl: z.ZodOptional<z.ZodString>;
187
+ }, z.core.$strip>>;
188
+ positionMs: z.ZodNullable<z.ZodNumber>;
189
+ durationMs: z.ZodNullable<z.ZodNumber>;
190
+ shuffle: z.ZodNullable<z.ZodBoolean>;
191
+ repeat: z.ZodNullable<z.ZodEnum<{
192
+ off: "off";
193
+ all: "all";
194
+ one: "one";
195
+ }>>;
196
+ lastChangedAt: z.ZodNumber;
197
+ }, z.core.$strip>;
198
+ };
199
+ export type IMediaPlayerProvider = InferProvider<typeof mediaPlayerCapability>;
200
+ export {};
201
+ //# sourceMappingURL=media-player.cap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-player.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/media-player.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;EAQjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,uBAAuB;;;;EAAgC,CAAA;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,QAAA,MAAM,eAAe;;;;;;iBAYnB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BlC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiGhC;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEoC,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
@@ -34,8 +34,8 @@ declare const MeshEndpointSchema: z.ZodObject<{
34
34
  hostname: z.ZodString;
35
35
  port: z.ZodNumber;
36
36
  protocol: z.ZodEnum<{
37
- http: "http";
38
37
  https: "https";
38
+ http: "http";
39
39
  }>;
40
40
  }, z.core.$strip>;
41
41
  export type MeshEndpoint = z.infer<typeof MeshEndpointSchema>;
@@ -80,8 +80,8 @@ export declare const MeshStatusSchema: z.ZodObject<{
80
80
  hostname: z.ZodString;
81
81
  port: z.ZodNumber;
82
82
  protocol: z.ZodEnum<{
83
- http: "http";
84
83
  https: "https";
84
+ http: "http";
85
85
  }>;
86
86
  }, z.core.$strip>>>;
87
87
  error: z.ZodOptional<z.ZodString>;
@@ -123,8 +123,8 @@ export declare const meshNetworkCapability: {
123
123
  hostname: z.ZodString;
124
124
  port: z.ZodNumber;
125
125
  protocol: z.ZodEnum<{
126
- http: "http";
127
126
  https: "https";
127
+ http: "http";
128
128
  }>;
129
129
  }, z.core.$strip>>>;
130
130
  error: z.ZodOptional<z.ZodString>;
@@ -44,6 +44,7 @@ export type MotionTriggerRuntimeState = z.infer<typeof MotionTriggerRuntimeState
44
44
  export declare const motionTriggerCapability: {
45
45
  readonly name: "motion-trigger";
46
46
  readonly scope: "device";
47
+ readonly deviceNative: true;
47
48
  readonly mode: "singleton";
48
49
  readonly deviceTypes: readonly [DeviceType.Light, DeviceType.Siren, DeviceType.Switch];
49
50
  readonly methods: {
@@ -1 +1 @@
1
- {"version":3,"file":"motion-trigger.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/motion-trigger.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB;;;iBAIpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;;iBAG1C,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAEvF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BK,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"motion-trigger.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/motion-trigger.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB;;;iBAIpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;;iBAG1C,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAEvF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BK,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
@@ -1,19 +1,54 @@
1
1
  import { z } from 'zod';
2
2
  import { type InferNativeProvider } from './capability-definition.js';
3
3
  import { DeviceType } from '../device/device-type.js';
4
- /** Current on-camera motion-detection grid + master state. `cells` is
5
- * row-major, length === gridWidth*gridHeight; true = cell triggers motion. */
4
+ /**
5
+ * Motion-zones share the same MaskShape vocabulary as privacy-mask the
6
+ * on-camera motion-detection mask is a single `grid` region (a row-major
7
+ * boolean cell lattice the camera's onboard VMD evaluates). Composing it as
8
+ * a region keeps one drawing-plane model across all geometry caps.
9
+ */
10
+ /** A motion-zone region — exactly one boolean cell grid today. */
11
+ export declare const MotionZoneRegionSchema: z.ZodObject<{
12
+ id: z.ZodNumber;
13
+ enabled: z.ZodBoolean;
14
+ shape: z.ZodObject<{
15
+ kind: z.ZodLiteral<"grid">;
16
+ gridWidth: z.ZodNumber;
17
+ gridHeight: z.ZodNumber;
18
+ cells: z.ZodArray<z.ZodBoolean>;
19
+ }, z.core.$strip>;
20
+ }, z.core.$strip>;
21
+ /** Current on-camera motion-detection state — master enable + sensitivity +
22
+ * the grid region(s). */
6
23
  export declare const MotionZoneStatusSchema: z.ZodObject<{
7
24
  enabled: z.ZodBoolean;
8
25
  sensitivity: z.ZodNumber;
9
- cells: z.ZodArray<z.ZodBoolean>;
26
+ regions: z.ZodArray<z.ZodObject<{
27
+ id: z.ZodNumber;
28
+ enabled: z.ZodBoolean;
29
+ shape: z.ZodObject<{
30
+ kind: z.ZodLiteral<"grid">;
31
+ gridWidth: z.ZodNumber;
32
+ gridHeight: z.ZodNumber;
33
+ cells: z.ZodArray<z.ZodBoolean>;
34
+ }, z.core.$strip>;
35
+ }, z.core.$strip>>;
10
36
  lastFetchedAt: z.ZodNumber;
11
37
  }, z.core.$strip>;
12
- /** Per-camera availability — the grid dimensions are fixed per camera
13
- * model; the UI sizes its editor from these. */
38
+ /** Per-camera availability — grid dims are fixed per camera model; the UI
39
+ * sizes its editor from `grid`. */
14
40
  export declare const MotionZoneOptionsSchema: z.ZodObject<{
15
- gridWidth: z.ZodNumber;
16
- gridHeight: z.ZodNumber;
41
+ maxRegions: z.ZodNumber;
42
+ supportedShapes: z.ZodArray<z.ZodEnum<{
43
+ polygon: "polygon";
44
+ rect: "rect";
45
+ grid: "grid";
46
+ line: "line";
47
+ }>>;
48
+ grid: z.ZodObject<{
49
+ width: z.ZodNumber;
50
+ height: z.ZodNumber;
51
+ }, z.core.$strip>;
17
52
  sensitivity: z.ZodObject<{
18
53
  min: z.ZodNumber;
19
54
  max: z.ZodNumber;
@@ -24,14 +59,25 @@ export declare const MotionZoneOptionsSchema: z.ZodObject<{
24
59
  export declare const MotionZonePatchSchema: z.ZodObject<{
25
60
  enabled: z.ZodOptional<z.ZodBoolean>;
26
61
  sensitivity: z.ZodOptional<z.ZodNumber>;
27
- cells: z.ZodOptional<z.ZodArray<z.ZodBoolean>>;
62
+ regions: z.ZodOptional<z.ZodArray<z.ZodObject<{
63
+ id: z.ZodNumber;
64
+ enabled: z.ZodBoolean;
65
+ shape: z.ZodObject<{
66
+ kind: z.ZodLiteral<"grid">;
67
+ gridWidth: z.ZodNumber;
68
+ gridHeight: z.ZodNumber;
69
+ cells: z.ZodArray<z.ZodBoolean>;
70
+ }, z.core.$strip>;
71
+ }, z.core.$strip>>>;
28
72
  }, z.core.$strip>;
73
+ export type MotionZoneRegion = z.infer<typeof MotionZoneRegionSchema>;
29
74
  export type MotionZoneStatus = z.infer<typeof MotionZoneStatusSchema>;
30
75
  export type MotionZoneOptions = z.infer<typeof MotionZoneOptionsSchema>;
31
76
  export type MotionZonePatch = z.infer<typeof MotionZonePatchSchema>;
32
77
  export declare const motionZonesCapability: {
33
78
  readonly name: "motion-zones";
34
79
  readonly scope: "device";
80
+ readonly deviceNative: true;
35
81
  readonly mode: "singleton";
36
82
  readonly deviceTypes: readonly [DeviceType.Camera];
37
83
  readonly deviceConfig: {
@@ -46,8 +92,17 @@ export declare const motionZonesCapability: {
46
92
  readonly getOptions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
47
93
  deviceId: z.ZodNumber;
48
94
  }, z.core.$strip>, z.ZodObject<{
49
- gridWidth: z.ZodNumber;
50
- gridHeight: z.ZodNumber;
95
+ maxRegions: z.ZodNumber;
96
+ supportedShapes: z.ZodArray<z.ZodEnum<{
97
+ polygon: "polygon";
98
+ rect: "rect";
99
+ grid: "grid";
100
+ line: "line";
101
+ }>>;
102
+ grid: z.ZodObject<{
103
+ width: z.ZodNumber;
104
+ height: z.ZodNumber;
105
+ }, z.core.$strip>;
51
106
  sensitivity: z.ZodObject<{
52
107
  min: z.ZodNumber;
53
108
  max: z.ZodNumber;
@@ -59,7 +114,16 @@ export declare const motionZonesCapability: {
59
114
  patch: z.ZodObject<{
60
115
  enabled: z.ZodOptional<z.ZodBoolean>;
61
116
  sensitivity: z.ZodOptional<z.ZodNumber>;
62
- cells: z.ZodOptional<z.ZodArray<z.ZodBoolean>>;
117
+ regions: z.ZodOptional<z.ZodArray<z.ZodObject<{
118
+ id: z.ZodNumber;
119
+ enabled: z.ZodBoolean;
120
+ shape: z.ZodObject<{
121
+ kind: z.ZodLiteral<"grid">;
122
+ gridWidth: z.ZodNumber;
123
+ gridHeight: z.ZodNumber;
124
+ cells: z.ZodArray<z.ZodBoolean>;
125
+ }, z.core.$strip>;
126
+ }, z.core.$strip>>>;
63
127
  }, z.core.$strip>;
64
128
  }, z.core.$strip>, z.ZodVoid, "mutation">;
65
129
  };
@@ -67,7 +131,16 @@ export declare const motionZonesCapability: {
67
131
  readonly schema: z.ZodObject<{
68
132
  enabled: z.ZodBoolean;
69
133
  sensitivity: z.ZodNumber;
70
- cells: z.ZodArray<z.ZodBoolean>;
134
+ regions: z.ZodArray<z.ZodObject<{
135
+ id: z.ZodNumber;
136
+ enabled: z.ZodBoolean;
137
+ shape: z.ZodObject<{
138
+ kind: z.ZodLiteral<"grid">;
139
+ gridWidth: z.ZodNumber;
140
+ gridHeight: z.ZodNumber;
141
+ cells: z.ZodArray<z.ZodBoolean>;
142
+ }, z.core.$strip>;
143
+ }, z.core.$strip>>;
71
144
  lastFetchedAt: z.ZodNumber;
72
145
  }, z.core.$strip>;
73
146
  readonly kind: "poll";
@@ -75,7 +148,16 @@ export declare const motionZonesCapability: {
75
148
  readonly runtimeState: z.ZodObject<{
76
149
  enabled: z.ZodBoolean;
77
150
  sensitivity: z.ZodNumber;
78
- cells: z.ZodArray<z.ZodBoolean>;
151
+ regions: z.ZodArray<z.ZodObject<{
152
+ id: z.ZodNumber;
153
+ enabled: z.ZodBoolean;
154
+ shape: z.ZodObject<{
155
+ kind: z.ZodLiteral<"grid">;
156
+ gridWidth: z.ZodNumber;
157
+ gridHeight: z.ZodNumber;
158
+ cells: z.ZodArray<z.ZodBoolean>;
159
+ }, z.core.$strip>;
160
+ }, z.core.$strip>>;
79
161
  lastFetchedAt: z.ZodNumber;
80
162
  }, z.core.$strip>;
81
163
  };
@@ -1 +1 @@
1
- {"version":3,"file":"motion-zones.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/motion-zones.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;+EAC+E;AAC/E,eAAO,MAAM,sBAAsB;;;;;iBAMjC,CAAA;AAEF;iDACiD;AACjD,eAAO,MAAM,uBAAuB;;;;;;;;iBAIlC,CAAA;AAEF,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBO,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
1
+ {"version":3,"file":"motion-zones.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/motion-zones.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD;;;;;GAKG;AAEH,kEAAkE;AAClE,eAAO,MAAM,sBAAsB;;;;;;;;;iBAIjC,CAAA;AAEF;0BAC0B;AAC1B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAMjC,CAAA;AAEF;oCACoC;AACpC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAKlC,CAAA;AAEF,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAIhC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBO,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
@@ -10,10 +10,10 @@ import { type InferProvider } from './capability-definition.js';
10
10
  * - `tls-error` — TLS handshake failed (cert / SNI / cipher)
11
11
  */
12
12
  declare const BrokerStatusSchema: z.ZodEnum<{
13
+ unreachable: "unreachable";
13
14
  connected: "connected";
14
15
  disconnected: "disconnected";
15
16
  "auth-failed": "auth-failed";
16
- unreachable: "unreachable";
17
17
  "tls-error": "tls-error";
18
18
  }>;
19
19
  declare const BrokerInfoSchema: z.ZodObject<{
@@ -25,10 +25,10 @@ declare const BrokerInfoSchema: z.ZodObject<{
25
25
  embedded: "embedded";
26
26
  }>;
27
27
  status: z.ZodEnum<{
28
+ unreachable: "unreachable";
28
29
  connected: "connected";
29
30
  disconnected: "disconnected";
30
31
  "auth-failed": "auth-failed";
31
- unreachable: "unreachable";
32
32
  "tls-error": "tls-error";
33
33
  }>;
34
34
  latencyMs: z.ZodNullable<z.ZodNumber>;
@@ -90,10 +90,10 @@ export declare const mqttBrokerCapability: {
90
90
  embedded: "embedded";
91
91
  }>;
92
92
  status: z.ZodEnum<{
93
+ unreachable: "unreachable";
93
94
  connected: "connected";
94
95
  disconnected: "disconnected";
95
96
  "auth-failed": "auth-failed";
96
- unreachable: "unreachable";
97
97
  "tls-error": "tls-error";
98
98
  }>;
99
99
  latencyMs: z.ZodNullable<z.ZodNumber>;