@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
@@ -1,5 +1,7 @@
1
1
  import type { AddonContext, AddonInitResult, CapabilitiesAccess, ProviderRegistration } from '../interfaces/addon.js';
2
2
  import type { ConfigUISchema, ConfigUISchemaWithValues, ConfigField, ConfigSection } from '../interfaces/config-ui.js';
3
+ import { type DurableState } from './durable-state.js';
4
+ import type { ZodType } from 'zod';
3
5
  export type { CapabilitiesAccess };
4
6
  /**
5
7
  * Utility type that constrains a ConfigField's `key` to only accept
@@ -177,10 +179,10 @@ export declare abstract class BaseAddon<TConfig extends object = Record<string,
177
179
  */
178
180
  protected schema(schema: TypedConfigUISchema<TConfig>): ConfigUISchema;
179
181
  /** Override to provide global-level settings UI schema. */
180
- protected globalSettingsSchema(): ConfigUISchema | null;
182
+ protected globalSettingsSchema(_cap?: string): ConfigUISchema | null;
181
183
  /** Override to provide device-level settings UI schema. */
182
184
  protected deviceSettingsSchema(): ConfigUISchema | null;
183
- getGlobalSettings(overlay?: Record<string, unknown>): Promise<ConfigUISchemaWithValues>;
185
+ getGlobalSettings(overlay?: Record<string, unknown>, cap?: string): Promise<ConfigUISchemaWithValues>;
184
186
  updateGlobalSettings(patch: Partial<TConfig>): Promise<void>;
185
187
  /**
186
188
  * If any field in `patch` is marked `requiresRestart` in `schema`,
@@ -247,6 +249,16 @@ export declare abstract class BaseAddon<TConfig extends object = Record<string,
247
249
  * (e.g. from older versions) without polluting the typed config.
248
250
  */
249
251
  protected resolveConfig(): Promise<void>;
252
+ /**
253
+ * Typed durable handle over ONE key of this addon's store. The whole
254
+ * Zod-validated value round-trips on every read/write — no hand-listed
255
+ * fields, so a field can never be silently dropped on persist. Reads use
256
+ * the same retry budget as config resolution; a corrupt/legacy blob logs
257
+ * a warning and falls back rather than crashing boot.
258
+ */
259
+ protected state<T>(key: string, schema: ZodType<T>, fallback: T): DurableState<T>;
260
+ /** Per-device variant of {@link state}, backed by the per-device store. */
261
+ protected deviceState<T>(deviceId: number, key: string, schema: ZodType<T>, fallback: T): DurableState<T>;
250
262
  /**
251
263
  * Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
252
264
  * transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
@@ -1 +1 @@
1
- {"version":3,"file":"base-addon.d.ts","sourceRoot":"","sources":["../../src/addon/base-addon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-addon.d.ts","sourceRoot":"","sources":["../../src/addon/base-addon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAErH,OAAO,KAAK,EACV,cAAc,EAAE,wBAAwB,EACxC,WAAW,EAAE,aAAa,EAC3B,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAGlC;;;;;;;;;;;;;;;;;;GAkBG;AACH,KAAK,gBAAgB,CAAC,OAAO,SAAS,MAAM,IAC1C,WAAW,SAAS,MAAM,CAAC,GACvB,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,GAAG,MAAM,CAAA;CAAE,GACzD,CAAC,GACH,KAAK,CAAA;AAEX;;GAEG;AACH,UAAU,kBAAkB,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxF,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAA;CACxE;AAED;;GAEG;AACH,UAAU,mBAAmB,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5F,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;CAC9D;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,8BAAsB,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9E,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGQ;IAC7C,wGAAwG;IACxG,OAAO,CAAC,mBAAmB,CAAwB;IAEnD,uDAAuD;IACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAExB,QAAQ,EAAE,OAAO;IAK7B;;;;;;OAMG;IACH,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAAgB;IAI1D,sDAAsD;IACtD,IAAI,GAAG,IAAI,YAAY,CAGtB;IAED;;;;;;;OAOG;IACH,SAAS,KAAK,UAAU,IAAI,YAAY,GAAG,IAAI,CAE9C;IAED,6EAA6E;IAC7E,IAAI,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE9B;IAIK,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYxE;;;;;;;OAOG;IACH,eAAe,IAAI,IAAI;IAMvB;;;;;;;;;;;OAWG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,oBAAoB,EAAE,GAAG,eAAe,GAAG,IAAI,CAAC;IAE3F,kDAAkD;cAClC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3C;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EACnC,KAAK,EAAE,CAAC,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACrC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,GAAG,MAAM,CAAA;KAAE,GACzD,CAAC,GACJ,WAAW;IAId;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,cAAc;IAMtE,2DAA2D;IAC3D,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAEpE,2DAA2D;IAC3D,SAAS,CAAC,oBAAoB,IAAI,cAAc,GAAG,IAAI;IAUjD,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAOrG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAsClB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAOtE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3F,OAAO,CAAC,cAAc,CAAwB;IAE9C;;;;;;;;;;OAUG;IACH;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CACvB,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACpC,QAAQ,EAAE;QACR,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;QAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAC7D,GACA,IAAI;IA0BP,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,OAAO,4BAA4B,EAAE,kBAAkB,EACnF,MAAM,EAAE,OAAO,4BAA4B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAChE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,4BAA4B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,GACjF,IAAI;IACP,SAAS,CAAC,SAAS,CACjB,MAAM,EAAE,OAAO,4BAA4B,EAAE,WAAW,EACxD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,4BAA4B,EAAE,WAAW,KAAK,IAAI,GACzE,IAAI;IAWP,OAAO,CAAC,aAAa;IAkBrB;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAwBjC;;;;OAIG;cACa,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnD;;;;OAIG;IACH,SAAS,KAAK,YAAY,IAAI,kBAAkB,GAAG,IAAI,CAGtD;IAID;;;;;;;OAOG;cACa,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9C;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAYjF,2EAA2E;IAC3E,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAYzG;;;;;;;;;;OAUG;YACW,uBAAuB;CAwBtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,oBAAoB,EAAE,GAAG,eAAe,GAAG,IAAI,GACtD,eAAe,GAAG,IAAI,CAIxB"}
@@ -0,0 +1,33 @@
1
+ import type { ZodType } from 'zod';
2
+ /**
3
+ * A typed handle over ONE top-level key of an addon/device store. `set`
4
+ * always writes the whole Zod-validated value for that key, so a field
5
+ * can never be silently dropped by a hand-written serializer. Sibling
6
+ * keys are untouched (writes go through the store's patch-merge).
7
+ */
8
+ export interface DurableState<T> {
9
+ /** Read + validate. Missing key or parse failure → `fallback`. Never throws. */
10
+ get(): Promise<T>;
11
+ /** Validate `next`, then write the WHOLE value under this key. Throws on invalid. */
12
+ set(next: T): Promise<void>;
13
+ /** get → fn(prev) → set, as one logical update. */
14
+ update(fn: (prev: T) => T): Promise<void>;
15
+ }
16
+ export interface DurableStateDeps<T> {
17
+ readonly key: string;
18
+ readonly schema: ZodType<T>;
19
+ readonly fallback: T;
20
+ readonly read: () => Promise<Record<string, unknown>>;
21
+ readonly write: (patch: Record<string, unknown>) => Promise<void>;
22
+ /** Called when a stored blob fails validation (before falling back). */
23
+ readonly onParseError?: (key: string, error: unknown) => void;
24
+ }
25
+ /**
26
+ * Build a {@link DurableState} over a single store key. Transport-agnostic:
27
+ * `read`/`write` are the addon-store or device-store accessors. The whole
28
+ * validated value round-trips on every read/write — the schema is the
29
+ * single source of truth for what is persisted, so no hand-listed field
30
+ * set can drop a key on save.
31
+ */
32
+ export declare function createDurableState<T>(deps: DurableStateDeps<T>): DurableState<T>;
33
+ //# sourceMappingURL=durable-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-state.d.ts","sourceRoot":"","sources":["../../src/addon/durable-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,gFAAgF;IAChF,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;IACjB,qFAAqF;IACrF,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,mDAAmD;IACnD,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,wEAAwE;IACxE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAuBhF"}
@@ -2,38 +2,86 @@ import { z } from 'zod';
2
2
  import { type InferProvider } from './capability-definition.js';
3
3
  import { DeviceType } from '../device/device-type.js';
4
4
  /**
5
- * List of accessory children linked to a parent device (camera, hub).
6
- * Returns only numeric device ids — the rest (role, deviceType, name,
7
- * caps) is derived by fetching each child via `device-manager.getDevice`.
5
+ * List of accessory children linked to a parent device. The cap surfaces
6
+ * the grouping and the per-child UI-visibility flag — the single source
7
+ * of truth for what an accessory IS remains the child device itself
8
+ * (resolved via `device-manager.getDevice` from the listed numeric ids).
8
9
  *
9
- * The single-source-of-truth for what an accessory IS remains the child
10
- * device itself; this cap only surfaces the grouping.
10
+ * Two parallel arrays:
11
+ * - `childDeviceIds` every accessory child the parent recognises
12
+ * - `hiddenChildIds` — subset that the operator chose to hide from
13
+ * the parent's UI surface (panels / detail page / grid). The hidden
14
+ * children remain registered and continue to receive state updates;
15
+ * they're omitted only from the parent's UI accessories view.
16
+ *
17
+ * Use cases:
18
+ * - Camera parents hiding seldom-used accessories (e.g. a chime that
19
+ * was provisioned but isn't connected to anything).
20
+ * - HA-integration parents hiding entity-children the user doesn't
21
+ * care about (an "Aqara plug" exposes one switch + 3 sensors —
22
+ * the operator may want only the switch visible).
23
+ *
24
+ * Toggling visibility is the parent provider's responsibility — it
25
+ * implements `setChildHidden` and persists the set so reboots survive.
11
26
  */
12
27
  export declare const AccessoriesStatusSchema: z.ZodObject<{
13
28
  childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
29
+ hiddenChildIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
14
30
  }, z.core.$strip>;
15
31
  export type AccessoriesStatus = z.infer<typeof AccessoriesStatusSchema>;
16
32
  export declare const accessoriesCapability: {
17
33
  readonly name: "accessories";
18
34
  readonly scope: "device";
35
+ readonly deviceNative: true;
19
36
  readonly mode: "singleton";
20
- readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub];
21
- readonly methods: {};
37
+ readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Light, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Cover, DeviceType.Lock, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Generic];
38
+ readonly methods: {
39
+ /**
40
+ * Toggle the UI-visibility of a single accessory child. Hidden
41
+ * children stay registered and continue to receive state updates;
42
+ * they're omitted only from the parent's UI accessories panel.
43
+ *
44
+ * Idempotent — hiding an already-hidden child or unhiding a
45
+ * non-hidden child is a no-op. Providers that don't support
46
+ * per-child visibility may implement this as a no-op (the UI hide
47
+ * toggle gracefully degrades).
48
+ */
49
+ readonly setChildHidden: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
50
+ deviceId: z.ZodNumber;
51
+ childDeviceId: z.ZodNumber;
52
+ hidden: z.ZodBoolean;
53
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
54
+ };
22
55
  readonly events: {
23
56
  /**
24
57
  * Emitted when a child device is created, removed, or its parent
25
- * assignment changes. Payload carries the fresh list.
58
+ * assignment changes. Payload carries the fresh list and the
59
+ * hidden subset.
26
60
  */
27
61
  readonly onAccessoriesChanged: {
28
62
  readonly data: z.ZodObject<{
29
63
  deviceId: z.ZodNumber;
30
64
  childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
65
+ hiddenChildIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
66
+ }, z.core.$strip>;
67
+ };
68
+ /**
69
+ * Emitted when the operator toggles a child's UI-visibility.
70
+ * Subscribers (admin UI accessories panel) re-render off this
71
+ * signal without re-fetching the full status block.
72
+ */
73
+ readonly onChildVisibilityChanged: {
74
+ readonly data: z.ZodObject<{
75
+ deviceId: z.ZodNumber;
76
+ childDeviceId: z.ZodNumber;
77
+ hidden: z.ZodBoolean;
31
78
  }, z.core.$strip>;
32
79
  };
33
80
  };
34
81
  readonly status: {
35
82
  readonly schema: z.ZodObject<{
36
83
  childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
84
+ hiddenChildIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
37
85
  }, z.core.$strip>;
38
86
  readonly kind: "command-driven";
39
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"accessories.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/accessories.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;iBAElC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,qBAAqB;;;;;;;QAO9B;;;WAGG;;;;;;;;;;;;;;CAUkC,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
1
+ {"version":3,"file":"accessories.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/accessories.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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB;;;iBAMlC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE,eAAO,MAAM,qBAAqB;;;;;;;QAwB9B;;;;;;;;;WASG;;;;;;;;QAYH;;;;WAIG;;;;;;;;QAMH;;;;WAIG;;;;;;;;;;;;;;;;CAWkC,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
@@ -92,6 +92,7 @@ export declare const addonSettingsCapability: {
92
92
  addonId: z.ZodString;
93
93
  nodeId: z.ZodOptional<z.ZodString>;
94
94
  overlay: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
95
+ cap: z.ZodOptional<z.ZodString>;
95
96
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
96
97
  tabs: z.ZodOptional<z.ZodArray<z.ZodObject<{
97
98
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"addon-settings.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/addon-settings.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AASlG,QAAA,MAAM,0BAA0B;;;;;iBAK9B,CAAA;AAEF,QAAA,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAcjC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;iBAGlC,CAAA;AAEF,4EAA4E;AAC5E,QAAA,MAAM,mBAAmB,wCAAoC,CAAA;AAE7D,uDAAuD;AACvD,QAAA,MAAM,0BAA0B;;iBAE9B,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCK,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAElF,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,GAC3B,CAAA"}
1
+ {"version":3,"file":"addon-settings.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/addon-settings.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AASlG,QAAA,MAAM,0BAA0B;;;;;iBAK9B,CAAA;AAEF,QAAA,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAcjC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;iBAGlC,CAAA;AAEF,4EAA4E;AAC5E,QAAA,MAAM,mBAAmB,wCAAoC,CAAA;AAE7D,uDAAuD;AACvD,QAAA,MAAM,0BAA0B;;iBAE9B,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCK,CAAA;AAEzC,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAElF,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,GAC3B,CAAA"}
@@ -95,6 +95,7 @@ declare const PackageUpdateSchema: z.ZodObject<{
95
95
  core: "core";
96
96
  }>;
97
97
  requiresRestart: z.ZodBoolean;
98
+ isSystem: z.ZodBoolean;
98
99
  }, z.core.$strip>;
99
100
  declare const PackageVersionInfoSchema: z.ZodObject<{
100
101
  version: z.ZodString;
@@ -141,6 +142,72 @@ declare const UpdateFrameworkPackageResultSchema: z.ZodObject<{
141
142
  toVersion: z.ZodString;
142
143
  restartingAt: z.ZodNumber;
143
144
  }, z.core.$strip>;
145
+ declare const BulkUpdateItemStatusSchema: z.ZodEnum<{
146
+ failed: "failed";
147
+ queued: "queued";
148
+ updating: "updating";
149
+ done: "done";
150
+ "done-pending-restart": "done-pending-restart";
151
+ }>;
152
+ declare const BulkUpdateItemSchema: z.ZodObject<{
153
+ name: z.ZodString;
154
+ isSystem: z.ZodBoolean;
155
+ fromVersion: z.ZodString;
156
+ toVersion: z.ZodString;
157
+ status: z.ZodEnum<{
158
+ failed: "failed";
159
+ queued: "queued";
160
+ updating: "updating";
161
+ done: "done";
162
+ "done-pending-restart": "done-pending-restart";
163
+ }>;
164
+ error: z.ZodOptional<z.ZodString>;
165
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
166
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
167
+ }, z.core.$strip>;
168
+ declare const BulkUpdatePhaseSchema: z.ZodEnum<{
169
+ system: "system";
170
+ regular: "regular";
171
+ restarting: "restarting";
172
+ finalizing: "finalizing";
173
+ }>;
174
+ declare const BulkUpdateStateSchema: z.ZodObject<{
175
+ id: z.ZodString;
176
+ nodeId: z.ZodString;
177
+ startedAtMs: z.ZodNumber;
178
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
179
+ total: z.ZodNumber;
180
+ completed: z.ZodNumber;
181
+ failed: z.ZodNumber;
182
+ current: z.ZodNullable<z.ZodString>;
183
+ phase: z.ZodEnum<{
184
+ system: "system";
185
+ regular: "regular";
186
+ restarting: "restarting";
187
+ finalizing: "finalizing";
188
+ }>;
189
+ cancelled: z.ZodBoolean;
190
+ items: z.ZodReadonly<z.ZodArray<z.ZodObject<{
191
+ name: z.ZodString;
192
+ isSystem: z.ZodBoolean;
193
+ fromVersion: z.ZodString;
194
+ toVersion: z.ZodString;
195
+ status: z.ZodEnum<{
196
+ failed: "failed";
197
+ queued: "queued";
198
+ updating: "updating";
199
+ done: "done";
200
+ "done-pending-restart": "done-pending-restart";
201
+ }>;
202
+ error: z.ZodOptional<z.ZodString>;
203
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
204
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
205
+ }, z.core.$strip>>>;
206
+ }, z.core.$strip>;
207
+ export type BulkUpdateItemStatus = z.infer<typeof BulkUpdateItemStatusSchema>;
208
+ export type BulkUpdateItem = z.infer<typeof BulkUpdateItemSchema>;
209
+ export type BulkUpdatePhase = z.infer<typeof BulkUpdatePhaseSchema>;
210
+ export type BulkUpdateState = z.infer<typeof BulkUpdateStateSchema>;
144
211
  /**
145
212
  * One framework package row for the admin-UI "System packages" panel.
146
213
  * `latestVersion` is null when the npm lookup failed (offline / registry
@@ -289,6 +356,7 @@ export declare const addonsCapability: {
289
356
  core: "core";
290
357
  }>;
291
358
  requiresRestart: z.ZodBoolean;
359
+ isSystem: z.ZodBoolean;
292
360
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
293
361
  /**
294
362
  * Update one package on a node. `nodeId` omitted (or `'hub'`)
@@ -343,6 +411,7 @@ export declare const addonsCapability: {
343
411
  system: "system";
344
412
  manual: "manual";
345
413
  "framework-update": "framework-update";
414
+ "framework-bulk-update": "framework-bulk-update";
346
415
  }>;
347
416
  packageName: z.ZodOptional<z.ZodString>;
348
417
  fromVersion: z.ZodOptional<z.ZodString>;
@@ -433,12 +502,129 @@ export declare const addonsCapability: {
433
502
  readonly updateFrameworkPackage: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
434
503
  packageName: z.ZodString;
435
504
  version: z.ZodOptional<z.ZodString>;
505
+ deferRestart: z.ZodOptional<z.ZodBoolean>;
436
506
  }, z.core.$strip>, z.ZodObject<{
437
507
  packageName: z.ZodString;
438
508
  fromVersion: z.ZodString;
439
509
  toVersion: z.ZodString;
440
510
  restartingAt: z.ZodNumber;
441
511
  }, z.core.$strip>, "mutation">;
512
+ /**
513
+ * Kicks off a server-side bulk update operation and returns the bulk
514
+ * id immediately. The operation runs asynchronously; observe progress
515
+ * via the `AddonsBulkUpdateProgress` event or `getBulkUpdateState`.
516
+ * Items with `isSystem: true` use `deferRestart` — the hub restarts
517
+ * ONCE at the end of the system phase, after all system packages are
518
+ * installed.
519
+ *
520
+ * `items[].version` is REQUIRED — callers must pass the resolved
521
+ * version from `listUpdates`. There is no `'latest'` default here
522
+ * (unlike `updatePackage`) to guarantee deterministic bulk rolls.
523
+ */
524
+ readonly startBulkUpdate: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
525
+ nodeId: z.ZodString;
526
+ items: z.ZodReadonly<z.ZodArray<z.ZodObject<{
527
+ name: z.ZodString;
528
+ version: z.ZodString;
529
+ isSystem: z.ZodBoolean;
530
+ }, z.core.$strip>>>;
531
+ }, z.core.$strip>, z.ZodObject<{
532
+ id: z.ZodString;
533
+ }, z.core.$strip>, "mutation">;
534
+ /**
535
+ * Returns the current state of a bulk update by id.
536
+ * Returns `null` if the id is unknown or has been auto-cleaned
537
+ * (5 minutes after `completedAt` the record is evicted from memory).
538
+ */
539
+ readonly getBulkUpdateState: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
540
+ id: z.ZodString;
541
+ }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
542
+ id: z.ZodString;
543
+ nodeId: z.ZodString;
544
+ startedAtMs: z.ZodNumber;
545
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
546
+ total: z.ZodNumber;
547
+ completed: z.ZodNumber;
548
+ failed: z.ZodNumber;
549
+ current: z.ZodNullable<z.ZodString>;
550
+ phase: z.ZodEnum<{
551
+ system: "system";
552
+ regular: "regular";
553
+ restarting: "restarting";
554
+ finalizing: "finalizing";
555
+ }>;
556
+ cancelled: z.ZodBoolean;
557
+ items: z.ZodReadonly<z.ZodArray<z.ZodObject<{
558
+ name: z.ZodString;
559
+ isSystem: z.ZodBoolean;
560
+ fromVersion: z.ZodString;
561
+ toVersion: z.ZodString;
562
+ status: z.ZodEnum<{
563
+ failed: "failed";
564
+ queued: "queued";
565
+ updating: "updating";
566
+ done: "done";
567
+ "done-pending-restart": "done-pending-restart";
568
+ }>;
569
+ error: z.ZodOptional<z.ZodString>;
570
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
571
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
572
+ }, z.core.$strip>>>;
573
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
574
+ /**
575
+ * Cancels an in-flight bulk update. The update loop exits after the
576
+ * currently-processing item completes — cancellation is not
577
+ * instantaneous. Has no effect once the `restarting` phase has been
578
+ * entered (the hub is already shutting down at that point).
579
+ * Returns `{ cancelled: false }` if the id is unknown, the operation
580
+ * has already completed, or the `restarting` phase is active.
581
+ */
582
+ readonly cancelBulkUpdate: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
583
+ id: z.ZodString;
584
+ }, z.core.$strip>, z.ZodObject<{
585
+ cancelled: z.ZodBoolean;
586
+ }, z.core.$strip>, "mutation">;
587
+ /**
588
+ * Lists all currently active (non-completed) bulk updates.
589
+ * If `nodeId` is provided, filters to only bulk updates targeting
590
+ * that node. Useful for restoring an in-progress banner on a fresh
591
+ * page load when the UI reconnects mid-operation.
592
+ */
593
+ readonly listActiveBulkUpdates: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
594
+ nodeId: z.ZodOptional<z.ZodString>;
595
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
596
+ id: z.ZodString;
597
+ nodeId: z.ZodString;
598
+ startedAtMs: z.ZodNumber;
599
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
600
+ total: z.ZodNumber;
601
+ completed: z.ZodNumber;
602
+ failed: z.ZodNumber;
603
+ current: z.ZodNullable<z.ZodString>;
604
+ phase: z.ZodEnum<{
605
+ system: "system";
606
+ regular: "regular";
607
+ restarting: "restarting";
608
+ finalizing: "finalizing";
609
+ }>;
610
+ cancelled: z.ZodBoolean;
611
+ items: z.ZodReadonly<z.ZodArray<z.ZodObject<{
612
+ name: z.ZodString;
613
+ isSystem: z.ZodBoolean;
614
+ fromVersion: z.ZodString;
615
+ toVersion: z.ZodString;
616
+ status: z.ZodEnum<{
617
+ failed: "failed";
618
+ queued: "queued";
619
+ updating: "updating";
620
+ done: "done";
621
+ "done-pending-restart": "done-pending-restart";
622
+ }>;
623
+ error: z.ZodOptional<z.ZodString>;
624
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
625
+ completedAtMs: z.ZodOptional<z.ZodNumber>;
626
+ }, z.core.$strip>>>;
627
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
442
628
  readonly getVersions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
443
629
  name: z.ZodString;
444
630
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -525,5 +711,5 @@ export declare const addonsCapability: {
525
711
  };
526
712
  };
527
713
  export type IAddonsProvider = InferProvider<typeof addonsCapability>;
528
- export { AddonListItemSchema, InstalledPackageSchema, PackageUpdateSchema, PackageVersionInfoSchema, SearchResultSchema, AutoUpdateSettingsSchema, AddonAutoUpdateSchema, LogStreamEntrySchema, CustomActionInputSchema, LogLevelSchema, ChannelSchema, ChannelWithInheritSchema, UpdateFrameworkPackageResultSchema, FrameworkPackageStatusSchema, };
714
+ export { AddonListItemSchema, InstalledPackageSchema, PackageUpdateSchema, PackageVersionInfoSchema, SearchResultSchema, AutoUpdateSettingsSchema, AddonAutoUpdateSchema, LogStreamEntrySchema, CustomActionInputSchema, LogLevelSchema, ChannelSchema, ChannelWithInheritSchema, UpdateFrameworkPackageResultSchema, FrameworkPackageStatusSchema, BulkUpdateItemStatusSchema, BulkUpdateItemSchema, BulkUpdatePhaseSchema, BulkUpdateStateSchema, };
529
715
  //# sourceMappingURL=addons.cap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addons.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/addons.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAElG;;;;;;;;;;;;;;GAcG;AAYH,QAAA,MAAM,cAAc;;;;;EAA6C,CAAA;AACjE,QAAA,MAAM,aAAa;;;;EAAoC,CAAA;AACvD,QAAA,MAAM,wBAAwB;;;;;EAA+C,CAAA;AAiE7E,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAevB,CAAA;AAEF,QAAA,MAAM,sBAAsB;;;;;iBAK1B,CAAA;AAEF,QAAA,MAAM,mBAAmB;;;;;;;;;iBAMvB,CAAA;AAEF,QAAA,MAAM,wBAAwB;;;;;iBAK5B,CAAA;AAEF,QAAA,MAAM,kBAAkB;;;;;;;;;iBAStB,CAAA;AAEF,QAAA,MAAM,wBAAwB;;;;;;;iBAG5B,CAAA;AAEF,QAAA,MAAM,qBAAqB;;;;;EAA2B,CAAA;AAOtD;;;;;;;;GAQG;AACH,QAAA,MAAM,kCAAkC;;;;;iBAMtC,CAAA;AAEF;;;;GAIG;AACH,QAAA,MAAM,4BAA4B;;;;;;iBAOhC,CAAA;AAGF,QAAA,MAAM,oBAAoB;;;;;iBAKxB,CAAA;AAQF,QAAA,MAAM,uBAAuB;;;;iBAI3B,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoDzB;;;;;WAKG;;;;;;;;;;;;;QAMH;;;;;WAKG;;;;;;QAUH;;;;;;;;;;;WAWG;;;;;;QAMH;;6CAEqC;;;;;;;QAWrC;;;;;;;;;;WAUG;;;;;;;;;;;;;QAaH;;;;;;;WAOG;;;;;;;;QAMH;;;;;;;;;;;;;;;;;;;WAmBG;;;;;;;;;;;QASH;;;;;;;;;;;;;WAaG;;;;;;;;QAUH;;;;;;;;;;;;;WAaG;;;;;;;;;;;;;;;;;;;;;QAmBH;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDkC,CAAA;AAEzC,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEpE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,GAC7B,CAAA"}
1
+ {"version":3,"file":"addons.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/addons.cap.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ declare const NotificationRuleConditionsSchema: z.ZodObject<{
17
17
  }, z.core.$strip>>;
18
18
  cooldownSeconds: z.ZodOptional<z.ZodNumber>;
19
19
  minDwellSeconds: z.ZodOptional<z.ZodNumber>;
20
+ eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
20
21
  }, z.core.$strip>;
21
22
  declare const NotificationRuleTemplateSchema: z.ZodObject<{
22
23
  title: z.ZodString;
@@ -50,6 +51,7 @@ declare const NotificationRuleSchema: z.ZodObject<{
50
51
  }, z.core.$strip>>;
51
52
  cooldownSeconds: z.ZodOptional<z.ZodNumber>;
52
53
  minDwellSeconds: z.ZodOptional<z.ZodNumber>;
54
+ eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
53
55
  }, z.core.$strip>;
54
56
  outputs: z.ZodReadonly<z.ZodArray<z.ZodString>>;
55
57
  template: z.ZodOptional<z.ZodObject<{
@@ -123,6 +125,7 @@ export declare const advancedNotifierCapability: {
123
125
  }, z.core.$strip>>;
124
126
  cooldownSeconds: z.ZodOptional<z.ZodNumber>;
125
127
  minDwellSeconds: z.ZodOptional<z.ZodNumber>;
128
+ eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
126
129
  }, z.core.$strip>;
127
130
  outputs: z.ZodReadonly<z.ZodArray<z.ZodString>>;
128
131
  template: z.ZodOptional<z.ZodObject<{
@@ -166,6 +169,7 @@ export declare const advancedNotifierCapability: {
166
169
  }, z.core.$strip>>;
167
170
  cooldownSeconds: z.ZodOptional<z.ZodNumber>;
168
171
  minDwellSeconds: z.ZodOptional<z.ZodNumber>;
172
+ eventTypeTokens: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
169
173
  }, z.core.$strip>;
170
174
  outputs: z.ZodReadonly<z.ZodArray<z.ZodString>>;
171
175
  template: z.ZodOptional<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-notifier.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/advanced-notifier.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAElG,QAAA,MAAM,gCAAgC;;;;;;;;;;;;;;;;;iBAapC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;iBAIlC,CAAA;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS1B,CAAA;AAEF,QAAA,MAAM,4BAA4B;;;;;;iBAMhC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;;iBAUlC,CAAA;AAEF,QAAA,MAAM,+BAA+B;;;;;;iBAMnC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BE,CAAA;AAEzC,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAExF,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,GAChC,CAAA"}
1
+ {"version":3,"file":"advanced-notifier.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/advanced-notifier.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAElG,QAAA,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;iBAiBpC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;iBAIlC,CAAA;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS1B,CAAA;AAEF,QAAA,MAAM,4BAA4B;;;;;;iBAMhC,CAAA;AAEF,QAAA,MAAM,8BAA8B;;;;;;;;;;iBAUlC,CAAA;AAEF,QAAA,MAAM,+BAA+B;;;;;;iBAMnC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BE,CAAA;AAEzC,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAExF,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,GAChC,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * Multi-metric air-quality slice. Covers CO₂, total VOCs, particulate
6
+ * matter at PM2.5 / PM10, and a derived AQI index — all optional so
7
+ * a single-metric source populates only what it observes. Mirrors
8
+ * the HA `sensor` device_class set (`co2`, `volatile_organic_compounds`,
9
+ * `pm25`, `pm10`, `aqi`) collapsed into one cap because a typical
10
+ * air-quality node reports several of these together; modelling them
11
+ * as siblings keeps a single timestamp + one slice subscription.
12
+ */
13
+ export declare const AirQualitySensorStatusSchema: z.ZodObject<{
14
+ co2Ppm: z.ZodOptional<z.ZodNumber>;
15
+ vocPpb: z.ZodOptional<z.ZodNumber>;
16
+ pm25: z.ZodOptional<z.ZodNumber>;
17
+ pm10: z.ZodOptional<z.ZodNumber>;
18
+ aqi: z.ZodOptional<z.ZodNumber>;
19
+ lastFetchedAt: z.ZodNumber;
20
+ unit: z.ZodOptional<z.ZodString>;
21
+ precision: z.ZodOptional<z.ZodNumber>;
22
+ }, z.core.$strip>;
23
+ export type AirQualitySensorStatus = z.infer<typeof AirQualitySensorStatusSchema>;
24
+ export declare const airQualitySensorCapability: {
25
+ readonly name: "air-quality-sensor";
26
+ readonly scope: "device";
27
+ readonly deviceNative: true;
28
+ readonly mode: "singleton";
29
+ readonly deviceTypes: readonly [DeviceType.Sensor];
30
+ readonly methods: {};
31
+ readonly status: {
32
+ readonly schema: z.ZodObject<{
33
+ co2Ppm: z.ZodOptional<z.ZodNumber>;
34
+ vocPpb: z.ZodOptional<z.ZodNumber>;
35
+ pm25: z.ZodOptional<z.ZodNumber>;
36
+ pm10: z.ZodOptional<z.ZodNumber>;
37
+ aqi: z.ZodOptional<z.ZodNumber>;
38
+ lastFetchedAt: z.ZodNumber;
39
+ unit: z.ZodOptional<z.ZodString>;
40
+ precision: z.ZodOptional<z.ZodNumber>;
41
+ }, z.core.$strip>;
42
+ readonly kind: "push";
43
+ };
44
+ readonly runtimeState: z.ZodObject<{
45
+ co2Ppm: z.ZodOptional<z.ZodNumber>;
46
+ vocPpb: z.ZodOptional<z.ZodNumber>;
47
+ pm25: z.ZodOptional<z.ZodNumber>;
48
+ pm10: z.ZodOptional<z.ZodNumber>;
49
+ aqi: z.ZodOptional<z.ZodNumber>;
50
+ lastFetchedAt: z.ZodNumber;
51
+ unit: z.ZodOptional<z.ZodString>;
52
+ precision: z.ZodOptional<z.ZodNumber>;
53
+ }, z.core.$strip>;
54
+ };
55
+ export type IAirQualitySensorProvider = InferProvider<typeof airQualitySensorCapability>;
56
+ //# sourceMappingURL=air-quality-sensor.cap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"air-quality-sensor.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/air-quality-sensor.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;iBAuBvC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYE,CAAA;AAEzC,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC,OAAO,0BAA0B,CAAC,CAAA"}