@camstack/types 1.2.380 → 1.2.382

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 (51) hide show
  1. package/dist/addon.d.ts +2 -0
  2. package/dist/addon.js +88 -2
  3. package/dist/addon.mjs +79 -3
  4. package/dist/capabilities/alerts.cap.d.ts +25 -0
  5. package/dist/capabilities/battery.cap.d.ts +1 -1
  6. package/dist/capabilities/caller-stamp.d.ts +4 -3
  7. package/dist/capabilities/dishwasher.cap.d.ts +178 -0
  8. package/dist/capabilities/heating-valve.cap.d.ts +39 -0
  9. package/dist/capabilities/index.d.ts +5 -1
  10. package/dist/capabilities/storage-admin.cap.d.ts +22 -0
  11. package/dist/client.js +71 -32
  12. package/dist/client.mjs +71 -32
  13. package/dist/{composition-DOwQB_Ua.mjs → composition-CB6PMT9p.mjs} +1 -1
  14. package/dist/{composition-CUAOHZ38.js → composition-eoYYVfOp.js} +1 -1
  15. package/dist/device/base-device-provider.d.ts +4 -2
  16. package/dist/device/device-context.d.ts +2 -0
  17. package/dist/device/device-control-resolution.d.ts +1 -1
  18. package/dist/device/device-type.d.ts +5 -1
  19. package/dist/{err-msg--2RrYiLO.mjs → err-msg-BXKzRBwg.mjs} +4 -0
  20. package/dist/{err-msg-Bb-s4Xuj.js → err-msg-BhVbr0NX.js} +4 -0
  21. package/dist/ffmpeg/fmp4-fragment-child.d.ts +2 -2
  22. package/dist/ffmpeg/process.d.ts +21 -0
  23. package/dist/generated/addon-api.d.ts +329 -230
  24. package/dist/generated/addon-cap-facts.d.ts +1 -1
  25. package/dist/generated/cap-status-types.d.ts +5 -1
  26. package/dist/generated/capability-router-map.d.ts +8 -2
  27. package/dist/generated/device-local-state.d.ts +6 -0
  28. package/dist/generated/device-proxy.d.ts +6 -0
  29. package/dist/generated/device-scoped-caps.d.ts +1 -1
  30. package/dist/generated/history-catalog.d.ts +1 -1
  31. package/dist/generated/method-access-map.d.ts +1 -1
  32. package/dist/generated/method-device-selectors.d.ts +1 -1
  33. package/dist/generated/runtime-state-durability.d.ts +1 -1
  34. package/dist/helpers/addon-slice-handle.d.ts +4 -0
  35. package/dist/helpers/trpc-leaf.d.ts +17 -0
  36. package/dist/index.d.ts +3 -2
  37. package/dist/index.js +431 -68
  38. package/dist/index.mjs +413 -67
  39. package/dist/interfaces/addon-peer-bytes.d.ts +19 -2
  40. package/dist/interfaces/config-ui-secrets.d.ts +2 -0
  41. package/dist/interfaces/config-ui.d.ts +14 -0
  42. package/dist/node.d.ts +2 -2
  43. package/dist/node.js +6 -2
  44. package/dist/node.mjs +6 -3
  45. package/dist/records/in-memory-records.d.ts +21 -0
  46. package/dist/records/index.d.ts +3 -0
  47. package/dist/records/settings-array-adopts-from.d.ts +12 -0
  48. package/dist/records/settings-brokers-adopts-from.d.ts +10 -0
  49. package/dist/{sleep-CIGOw58l.js → sleep--L6qY125.js} +572 -47
  50. package/dist/{sleep-WsrozGDL.mjs → sleep-BOjuyoPC.mjs} +489 -48
  51. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  * `ALL_CAPABILITY_DEFINITIONS` (the whole Zod schema graph, ~+100 MB heap per
6
6
  * runner). See docs/decisions/adr-0028.md.
7
7
  *
8
- * Coverage: 1 advance-derived caps, 71 caps with 344 state leaves.
8
+ * Coverage: 1 advance-derived caps, 73 caps with 358 state leaves.
9
9
  */
10
10
  /** A bindable scalar in a capability's runtime state. */
11
11
  export interface CapStateLeaf {
@@ -22,6 +22,7 @@ import type { deviceAdoptionCapability } from '../capabilities/device-adoption.c
22
22
  import type { DeviceDiscoveryStatusSchema } from '../capabilities/device-discovery.cap.js';
23
23
  import type { DeviceExportStatusSchema } from '../capabilities/device-export.cap.js';
24
24
  import type { deviceStatusCapability } from '../capabilities/device-status.cap.js';
25
+ import type { DishwasherStatusSchema } from '../capabilities/dishwasher.cap.js';
25
26
  import type { DoorbellStatusSchema } from '../capabilities/doorbell.cap.js';
26
27
  import type { EnumSensorStatusSchema } from '../capabilities/enum-sensor.cap.js';
27
28
  import type { EventEmitterStatusSchema } from '../capabilities/event-emitter.cap.js';
@@ -29,6 +30,7 @@ import type { FanControlStatusSchema } from '../capabilities/fan-control.cap.js'
29
30
  import type { FeatureProbeStatusSchema } from '../capabilities/feature-probe.cap.js';
30
31
  import type { FloodStatusSchema } from '../capabilities/flood.cap.js';
31
32
  import type { GasStatusSchema } from '../capabilities/gas.cap.js';
33
+ import type { HeatingValveStatusSchema } from '../capabilities/heating-valve.cap.js';
32
34
  import type { HumidifierStatusSchema } from '../capabilities/humidifier.cap.js';
33
35
  import type { HumiditySensorStatusSchema } from '../capabilities/humidity-sensor.cap.js';
34
36
  import type { ImageStatusSchema } from '../capabilities/image.cap.js';
@@ -100,6 +102,7 @@ export type CapStatusTypeMap = {
100
102
  readonly 'device-discovery': z.infer<typeof DeviceDiscoveryStatusSchema>;
101
103
  readonly 'device-export': z.infer<typeof DeviceExportStatusSchema>;
102
104
  readonly 'device-status': z.infer<(typeof deviceStatusCapability)['status']['schema']>;
105
+ readonly 'dishwasher': z.infer<typeof DishwasherStatusSchema>;
103
106
  readonly 'doorbell': z.infer<typeof DoorbellStatusSchema>;
104
107
  readonly 'enum-sensor': z.infer<typeof EnumSensorStatusSchema>;
105
108
  readonly 'event-emitter': z.infer<typeof EventEmitterStatusSchema>;
@@ -107,6 +110,7 @@ export type CapStatusTypeMap = {
107
110
  readonly 'feature-probe': z.infer<typeof FeatureProbeStatusSchema>;
108
111
  readonly 'flood': z.infer<typeof FloodStatusSchema>;
109
112
  readonly 'gas': z.infer<typeof GasStatusSchema>;
113
+ readonly 'heating-valve': z.infer<typeof HeatingValveStatusSchema>;
110
114
  readonly 'humidifier': z.infer<typeof HumidifierStatusSchema>;
111
115
  readonly 'humidity-sensor': z.infer<typeof HumiditySensorStatusSchema>;
112
116
  readonly 'image': z.infer<typeof ImageStatusSchema>;
@@ -157,4 +161,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
157
161
  * aggregator to enumerate caps whose `status` should be polled +
158
162
  * streamed via `subscribeDeviceStatusAggregate`.
159
163
  */
160
- export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
164
+ export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "dishwasher", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "heating-valve", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
@@ -59,6 +59,7 @@ export { deviceProviderCapability } from '../capabilities/device-provider.cap.js
59
59
  export { deviceRemovalHookCapability } from '../capabilities/device-removal-hook.cap.js';
60
60
  export { deviceStateCapability } from '../capabilities/device-state.cap.js';
61
61
  export { deviceStatusCapability } from '../capabilities/device-status.cap.js';
62
+ export { dishwasherCapability } from '../capabilities/dishwasher.cap.js';
62
63
  export { doorbellCapability } from '../capabilities/doorbell.cap.js';
63
64
  export { embeddingEncoderCapability } from '../capabilities/embedding-encoder.cap.js';
64
65
  export { enumSensorCapability } from '../capabilities/enum-sensor.cap.js';
@@ -70,6 +71,7 @@ export { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
70
71
  export { filesystemBrowseCapability } from '../capabilities/filesystem-browse.cap.js';
71
72
  export { floodCapability } from '../capabilities/flood.cap.js';
72
73
  export { gasCapability } from '../capabilities/gas.cap.js';
74
+ export { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
73
75
  export { humidifierCapability } from '../capabilities/humidifier.cap.js';
74
76
  export { humiditySensorCapability } from '../capabilities/humidity-sensor.cap.js';
75
77
  export { imageCapability } from '../capabilities/image.cap.js';
@@ -237,6 +239,7 @@ export declare const CAPABILITY_NAMES: {
237
239
  readonly deviceRemovalHook: 'device-removal-hook';
238
240
  readonly deviceState: 'device-state';
239
241
  readonly deviceStatus: 'device-status';
242
+ readonly dishwasher: 'dishwasher';
240
243
  readonly doorbell: 'doorbell';
241
244
  readonly embeddingEncoder: 'embedding-encoder';
242
245
  readonly enumSensor: 'enum-sensor';
@@ -248,6 +251,7 @@ export declare const CAPABILITY_NAMES: {
248
251
  readonly filesystemBrowse: 'filesystem-browse';
249
252
  readonly flood: 'flood';
250
253
  readonly gas: 'gas';
254
+ readonly heatingValve: 'heating-valve';
251
255
  readonly humidifier: 'humidifier';
252
256
  readonly humiditySensor: 'humidity-sensor';
253
257
  readonly image: 'image';
@@ -428,6 +432,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
428
432
  readonly deviceRemovalHook: TRouter;
429
433
  readonly deviceState: TRouter;
430
434
  readonly deviceStatus: TRouter;
435
+ readonly dishwasher: TRouter;
431
436
  readonly doorbell: TRouter;
432
437
  readonly embeddingEncoder: TRouter;
433
438
  readonly enumSensor: TRouter;
@@ -439,6 +444,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
439
444
  readonly filesystemBrowse: TRouter;
440
445
  readonly flood: TRouter;
441
446
  readonly gas: TRouter;
447
+ readonly heatingValve: TRouter;
442
448
  readonly humidifier: TRouter;
443
449
  readonly humiditySensor: TRouter;
444
450
  readonly image: TRouter;
@@ -545,8 +551,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
545
551
  readonly zoneRules: TRouter;
546
552
  readonly zones: TRouter;
547
553
  }
548
- /** Capability names whose mode is `singleton` (143 caps). */
549
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'addon-pages', 'addon-settings', 'addon-widgets', 'addons', 'admin-ui', 'air-quality-sensor', 'alarm-panel', 'alerts', 'ambient-light-sensor', 'audio-analysis', 'audio-analyzer', 'audio-codec', 'audio-metrics', 'automation-control', 'backup', 'battery', 'binary', 'brightness', 'button', 'calendars', 'camera-credentials', 'camera-grid-layout', 'camera-pipeline-config', 'camera-streams', 'carbon-monoxide', 'climate-control', 'color', 'composer', 'connectivity', 'consumables', 'contact', 'control', 'core-blocks', 'cover', 'database-snapshot', 'day-night', 'decoder', 'detection-pipeline', 'device-admin-link', 'device-adoption', 'device-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'metrics-provider', 'model-convert', 'model-distributor', 'motion', 'motion-detection', 'motion-trigger', 'motion-zones', 'native-object-detection', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', 'osd', 'osd-manager', 'pet-feeder', 'pipeline-analytics', 'pipeline-executor', 'pipeline-orchestrator', 'pipeline-runner', 'plate-gallery', 'platform-probe', 'power-meter', 'presence', 'pressure-sensor', 'privacy-mask', 'ptz', 'ptz-autotrack', 'reboot', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
554
+ /** Capability names whose mode is `singleton` (145 caps). */
555
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'addon-pages', 'addon-settings', 'addon-widgets', 'addons', 'admin-ui', 'air-quality-sensor', 'alarm-panel', 'alerts', 'ambient-light-sensor', 'audio-analysis', 'audio-analyzer', 'audio-codec', 'audio-metrics', 'automation-control', 'backup', 'battery', 'binary', 'brightness', 'button', 'calendars', 'camera-credentials', 'camera-grid-layout', 'camera-pipeline-config', 'camera-streams', 'carbon-monoxide', 'climate-control', 'color', 'composer', 'connectivity', 'consumables', 'contact', 'control', 'core-blocks', 'cover', 'database-snapshot', 'day-night', 'decoder', 'detection-pipeline', 'device-admin-link', 'device-adoption', 'device-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'metrics-provider', 'model-convert', 'model-distributor', 'motion', 'motion-detection', 'motion-trigger', 'motion-zones', 'native-object-detection', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', 'osd', 'osd-manager', 'pet-feeder', 'pipeline-analytics', 'pipeline-executor', 'pipeline-orchestrator', 'pipeline-runner', 'plate-gallery', 'platform-probe', 'power-meter', 'presence', 'pressure-sensor', 'privacy-mask', 'ptz', 'ptz-autotrack', 'reboot', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
550
556
  /** Union of singleton capability names (literal string union). */
551
557
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
552
558
  /** Capability names whose mode is `collection` (34 caps). */
@@ -19,6 +19,7 @@ import { coverCapability } from '../capabilities/cover.cap.js';
19
19
  import { dayNightCapability } from '../capabilities/day-night.cap.js';
20
20
  import { deviceDiscoveryCapability } from '../capabilities/device-discovery.cap.js';
21
21
  import { deviceStatusCapability } from '../capabilities/device-status.cap.js';
22
+ import { dishwasherCapability } from '../capabilities/dishwasher.cap.js';
22
23
  import { doorbellCapability } from '../capabilities/doorbell.cap.js';
23
24
  import { enumSensorCapability } from '../capabilities/enum-sensor.cap.js';
24
25
  import { eventEmitterCapability } from '../capabilities/event-emitter.cap.js';
@@ -26,6 +27,7 @@ import { fanControlCapability } from '../capabilities/fan-control.cap.js';
26
27
  import { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
27
28
  import { floodCapability } from '../capabilities/flood.cap.js';
28
29
  import { gasCapability } from '../capabilities/gas.cap.js';
30
+ import { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
29
31
  import { humidifierCapability } from '../capabilities/humidifier.cap.js';
30
32
  import { humiditySensorCapability } from '../capabilities/humidity-sensor.cap.js';
31
33
  import { imageCapability } from '../capabilities/image.cap.js';
@@ -100,6 +102,7 @@ export interface DeviceLocalState {
100
102
  dayNight: InferRuntimeState<typeof dayNightCapability>;
101
103
  deviceDiscovery: InferRuntimeState<typeof deviceDiscoveryCapability>;
102
104
  deviceStatus: InferRuntimeState<typeof deviceStatusCapability>;
105
+ dishwasher: InferRuntimeState<typeof dishwasherCapability>;
103
106
  doorbell: InferRuntimeState<typeof doorbellCapability>;
104
107
  enumSensor: InferRuntimeState<typeof enumSensorCapability>;
105
108
  eventEmitter: InferRuntimeState<typeof eventEmitterCapability>;
@@ -107,6 +110,7 @@ export interface DeviceLocalState {
107
110
  featureProbe: InferRuntimeState<typeof featureProbeCapability>;
108
111
  flood: InferRuntimeState<typeof floodCapability>;
109
112
  gas: InferRuntimeState<typeof gasCapability>;
113
+ heatingValve: InferRuntimeState<typeof heatingValveCapability>;
110
114
  humidifier: InferRuntimeState<typeof humidifierCapability>;
111
115
  humiditySensor: InferRuntimeState<typeof humiditySensorCapability>;
112
116
  image: InferRuntimeState<typeof imageCapability>;
@@ -191,6 +195,7 @@ export interface CapNameToRuntimeStateMap {
191
195
  'day-night': InferRuntimeState<typeof dayNightCapability>;
192
196
  'device-discovery': InferRuntimeState<typeof deviceDiscoveryCapability>;
193
197
  'device-status': InferRuntimeState<typeof deviceStatusCapability>;
198
+ 'dishwasher': InferRuntimeState<typeof dishwasherCapability>;
194
199
  'doorbell': InferRuntimeState<typeof doorbellCapability>;
195
200
  'enum-sensor': InferRuntimeState<typeof enumSensorCapability>;
196
201
  'event-emitter': InferRuntimeState<typeof eventEmitterCapability>;
@@ -198,6 +203,7 @@ export interface CapNameToRuntimeStateMap {
198
203
  'feature-probe': InferRuntimeState<typeof featureProbeCapability>;
199
204
  'flood': InferRuntimeState<typeof floodCapability>;
200
205
  'gas': InferRuntimeState<typeof gasCapability>;
206
+ 'heating-valve': InferRuntimeState<typeof heatingValveCapability>;
201
207
  'humidifier': InferRuntimeState<typeof humidifierCapability>;
202
208
  'humidity-sensor': InferRuntimeState<typeof humiditySensorCapability>;
203
209
  'image': InferRuntimeState<typeof imageCapability>;
@@ -32,6 +32,7 @@ import type { deviceDiscoveryCapability } from '../capabilities/device-discovery
32
32
  import type { deviceExtensionCapability } from '../capabilities/device-extension.cap.js';
33
33
  import type { deviceOpsCapability } from '../capabilities/device-ops.cap.js';
34
34
  import type { deviceStatusCapability } from '../capabilities/device-status.cap.js';
35
+ import type { dishwasherCapability } from '../capabilities/dishwasher.cap.js';
35
36
  import type { doorbellCapability } from '../capabilities/doorbell.cap.js';
36
37
  import type { enumSensorCapability } from '../capabilities/enum-sensor.cap.js';
37
38
  import type { eventEmitterCapability } from '../capabilities/event-emitter.cap.js';
@@ -39,6 +40,7 @@ import type { fanControlCapability } from '../capabilities/fan-control.cap.js';
39
40
  import type { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
40
41
  import type { floodCapability } from '../capabilities/flood.cap.js';
41
42
  import type { gasCapability } from '../capabilities/gas.cap.js';
43
+ import type { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
42
44
  import type { humidifierCapability } from '../capabilities/humidifier.cap.js';
43
45
  import type { humiditySensorCapability } from '../capabilities/humidity-sensor.cap.js';
44
46
  import type { imageCapability } from '../capabilities/image.cap.js';
@@ -134,6 +136,7 @@ export interface DeviceProxyState {
134
136
  readonly dayNight: SliceHandle<InferRuntimeState<typeof dayNightCapability>>;
135
137
  readonly deviceDiscovery: SliceHandle<InferRuntimeState<typeof deviceDiscoveryCapability>>;
136
138
  readonly deviceStatus: SliceHandle<InferRuntimeState<typeof deviceStatusCapability>>;
139
+ readonly dishwasher: SliceHandle<InferRuntimeState<typeof dishwasherCapability>>;
137
140
  readonly doorbell: SliceHandle<InferRuntimeState<typeof doorbellCapability>>;
138
141
  readonly enumSensor: SliceHandle<InferRuntimeState<typeof enumSensorCapability>>;
139
142
  readonly eventEmitter: SliceHandle<InferRuntimeState<typeof eventEmitterCapability>>;
@@ -141,6 +144,7 @@ export interface DeviceProxyState {
141
144
  readonly featureProbe: SliceHandle<InferRuntimeState<typeof featureProbeCapability>>;
142
145
  readonly flood: SliceHandle<InferRuntimeState<typeof floodCapability>>;
143
146
  readonly gas: SliceHandle<InferRuntimeState<typeof gasCapability>>;
147
+ readonly heatingValve: SliceHandle<InferRuntimeState<typeof heatingValveCapability>>;
144
148
  readonly humidifier: SliceHandle<InferRuntimeState<typeof humidifierCapability>>;
145
149
  readonly humiditySensor: SliceHandle<InferRuntimeState<typeof humiditySensorCapability>>;
146
150
  readonly image: SliceHandle<InferRuntimeState<typeof imageCapability>>;
@@ -232,6 +236,7 @@ export interface DeviceProxy {
232
236
  readonly deviceExtension?: InferDeviceProxyCap<typeof deviceExtensionCapability>;
233
237
  readonly deviceOps?: InferDeviceProxyCap<typeof deviceOpsCapability>;
234
238
  readonly deviceStatus?: InferDeviceProxyCap<typeof deviceStatusCapability>;
239
+ readonly dishwasher?: InferDeviceProxyCap<typeof dishwasherCapability>;
235
240
  readonly doorbell?: InferDeviceProxyCap<typeof doorbellCapability>;
236
241
  readonly enumSensor?: InferDeviceProxyCap<typeof enumSensorCapability>;
237
242
  readonly eventEmitter?: InferDeviceProxyCap<typeof eventEmitterCapability>;
@@ -239,6 +244,7 @@ export interface DeviceProxy {
239
244
  readonly featureProbe?: InferDeviceProxyCap<typeof featureProbeCapability>;
240
245
  readonly flood?: InferDeviceProxyCap<typeof floodCapability>;
241
246
  readonly gas?: InferDeviceProxyCap<typeof gasCapability>;
247
+ readonly heatingValve?: InferDeviceProxyCap<typeof heatingValveCapability>;
242
248
  readonly humidifier?: InferDeviceProxyCap<typeof humidifierCapability>;
243
249
  readonly humiditySensor?: InferDeviceProxyCap<typeof humiditySensorCapability>;
244
250
  readonly image?: InferDeviceProxyCap<typeof imageCapability>;
@@ -5,7 +5,7 @@
5
5
  * can answer "may a rule actuate this?" without importing the schema barrel
6
6
  * (~144MB RSS per runner, D28).
7
7
  *
8
- * Coverage: 88 device-scoped capabilities.
8
+ * Coverage: 90 device-scoped capabilities.
9
9
  */
10
10
  export declare const DEVICE_SCOPED_CAPS: ReadonlySet<string>;
11
11
  /**
@@ -1,7 +1,7 @@
1
1
  import type { CapabilityHistoryField } from '../capabilities/capability-definition.js';
2
2
  /**
3
3
  * Cap history catalog, projected from every `*.cap.ts` `history` block.
4
- * 32 caps with series (60 series), 37 caps answered `'none'`.
4
+ * 34 caps with series (62 series), 37 caps answered `'none'`.
5
5
  * Field keys are `runtimeState` paths (`a.b` into fixed objects only).
6
6
  */
7
7
  export declare const HISTORY_CATALOG: Readonly<Record<string, Readonly<Record<string, CapabilityHistoryField>>>>;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1367 method paths across 177 capabilities.
9
+ * Coverage: 1379 method paths across 179 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 534 methods carry a device reference, of which
9
+ * Coverage: 544 methods carry a device reference, of which
10
10
  * 179 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
@@ -11,7 +11,7 @@ export interface RuntimeStatePolicy {
11
11
  }
12
12
  /**
13
13
  * Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
14
- * `runtimeState`. 69 caps: 37 `restored`, 32 `session`.
14
+ * `runtimeState`. 71 caps: 37 `restored`, 34 `session`.
15
15
  *
16
16
  * A cap absent from this map has no runtime-state slice at all. A cap PRESENT
17
17
  * with `durability: 'session'` has one and has decided not to keep it.
@@ -0,0 +1,4 @@
1
+ import type { SliceHandleApi } from '../device/device-state-handle.js';
2
+ import type { AddonApi } from '../generated/addon-api.js';
3
+ /** Structural bridge: every `AddonApi` client carries `deviceState` (+ optional `live`). */
4
+ export declare function addonSliceHandleApi(api: AddonApi): SliceHandleApi;
@@ -0,0 +1,17 @@
1
+ import type { AddonApi } from '../generated/addon-api.js';
2
+ /** tRPC client procedure bundle (`query` / `mutate` / `subscribe`). */
3
+ export interface TrpcProcedureLeaf {
4
+ readonly query?: (input?: unknown) => unknown;
5
+ readonly mutate?: (input?: unknown) => unknown;
6
+ readonly subscribe?: (input?: unknown, push?: unknown) => unknown;
7
+ }
8
+ export declare function isTrpcProcedureLeaf(value: unknown): value is TrpcProcedureLeaf;
9
+ export declare function readTrpcLeaf(api: AddonApi, capProp: string, method: string): TrpcProcedureLeaf;
10
+ export type TrpcDispatchKind = 'query' | 'mutation' | 'subscription';
11
+ /**
12
+ * Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(input)`.
13
+ * `Result` is the generated proxy method's return. The leaf itself is only
14
+ * `unknown` (the client is a structural bag), so the assertion is the one
15
+ * boundary between that bag and the typed proxy.
16
+ */
17
+ export declare function invokeTrpcLeaf<Result>(api: AddonApi, capProp: string, method: string, kind: TrpcDispatchKind, input?: unknown, push?: unknown): Result;
package/dist/index.d.ts CHANGED
@@ -47,8 +47,8 @@ export type * from './interfaces/capability.js';
47
47
  export type * from './interfaces/config-port.js';
48
48
  export type * from './interfaces/config-ui.js';
49
49
  export type { HydratedFieldEntry } from './interfaces/config-ui.js';
50
- export { collectHydratedFieldEntries, collectHydratedFieldValues, hydrateSchema, resolveHydratedFieldValue, WELL_KNOWN_TAB_MAP, WELL_KNOWN_TABS, } from './interfaces/config-ui.js';
51
- export { collectKeychainStoredKeys, collectSecretConfigKeys, isKeychainStoredField, isSecretConfigField, REDACTED_SECRET, schemaDeclaresAnyField, } from './interfaces/config-ui-secrets.js';
50
+ export { collectHydratedFieldEntries, collectHydratedFieldValues, dehydrateConfigField, dehydrateSchema, hydrateSchema, resolveHydratedFieldValue, WELL_KNOWN_TAB_MAP, WELL_KNOWN_TABS, } from './interfaces/config-ui.js';
51
+ export { collectKeychainStoredKeys, collectSecretConfigKeys, omitTransientConfig, isKeychainStoredField, isSecretConfigField, REDACTED_SECRET, schemaDeclaresAnyField, } from './interfaces/config-ui-secrets.js';
52
52
  export * from './keychain/index.js';
53
53
  export * from './records/index.js';
54
54
  export * from './training/index.js';
@@ -190,6 +190,7 @@ export type { IDevice } from './device/device.js';
190
190
  export type { DeviceBinding, DeviceBindingEntry } from './device/device-binding.js';
191
191
  export { DeviceConfig } from './device/device-config.js';
192
192
  export type { DeviceConstructor, DeviceContext, DeviceManagerApi, DevicePersistConfigOptions, IDeviceRegistry, IDeviceRegistryReader, } from './device/device-context.js';
193
+ export { widenDeviceConstructor } from './device/device-context.js';
193
194
  export type { AccessoryControlInput, AccessoryControlKind, AccessoryControlPick, DeviceControlKind, SensorMapping, } from './device/device-control-resolution.js';
194
195
  export { DEVICE_TYPE_CONTROL_KIND, hasMotionTrigger, isNode, MOTION_TRIGGER_FEATURE, pickAccessoryControl, resolveDeviceControlKind, resolveMutate, SENSOR_FEATURES, SENSOR_MAP, } from './device/device-control-resolution.js';
195
196
  export type { DeviceDoAction, DeviceDoOpenArg } from './device/device-do-actions.js';