@camstack/types 1.2.416 → 1.2.418

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 (79) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/air-quality-sensor.cap.d.ts +2 -8
  4. package/dist/capabilities/ambient-light-sensor.cap.d.ts +3 -14
  5. package/dist/capabilities/battery.cap.d.ts +9 -2
  6. package/dist/capabilities/binary.cap.d.ts +0 -5
  7. package/dist/capabilities/capability-definition.d.ts +11 -6
  8. package/dist/capabilities/composer.cap.d.ts +198 -0
  9. package/dist/capabilities/consumables.cap.d.ts +30 -41
  10. package/dist/capabilities/control.cap.d.ts +3 -25
  11. package/dist/capabilities/core-blocks.cap.d.ts +1421 -0
  12. package/dist/capabilities/customize-catalog.d.ts +0 -8
  13. package/dist/capabilities/customize-spec.d.ts +2 -3
  14. package/dist/capabilities/device-manager.cap.d.ts +79 -0
  15. package/dist/capabilities/device-provider.cap.d.ts +36 -0
  16. package/dist/capabilities/enum-sensor.cap.d.ts +5 -17
  17. package/dist/capabilities/group-status.cap.d.ts +46 -0
  18. package/dist/capabilities/humidity-sensor.cap.d.ts +3 -14
  19. package/dist/capabilities/index.d.ts +4 -2
  20. package/dist/capabilities/motion.cap.d.ts +13 -5
  21. package/dist/capabilities/numeric-sensor.cap.d.ts +8 -16
  22. package/dist/capabilities/pet-feeder.cap.d.ts +1 -1
  23. package/dist/capabilities/power-meter.cap.d.ts +0 -11
  24. package/dist/capabilities/pressure-sensor.cap.d.ts +3 -9
  25. package/dist/capabilities/running-state.cap.d.ts +1 -2
  26. package/dist/capabilities/runtime-field-unit.d.ts +1 -0
  27. package/dist/capabilities/runtime-field-units.d.ts +8 -0
  28. package/dist/capabilities/switch.cap.d.ts +0 -5
  29. package/dist/capabilities/temperature-sensor.cap.d.ts +5 -20
  30. package/dist/capabilities/weather.cap.d.ts +4 -13
  31. package/dist/client.d.ts +2 -1
  32. package/dist/client.js +57 -5
  33. package/dist/client.mjs +55 -6
  34. package/dist/composition/composition-report.d.ts +80 -3
  35. package/dist/composition/composition.d.ts +285 -5
  36. package/dist/composition/helpers/aggregate.d.ts +41 -0
  37. package/dist/composition/helpers/catalog.d.ts +42 -0
  38. package/dist/composition/helpers/compile.d.ts +22 -0
  39. package/dist/composition/helpers/index.d.ts +6 -0
  40. package/dist/composition/helpers/save.d.ts +18 -0
  41. package/dist/composition/helpers/source-pick.d.ts +40 -0
  42. package/dist/composition/helpers/spec.d.ts +38 -0
  43. package/dist/composition/index.d.ts +1 -0
  44. package/dist/composition/source-ref.d.ts +11 -0
  45. package/dist/composition/state-fields.d.ts +1 -1
  46. package/dist/composition/validate-composition.d.ts +8 -2
  47. package/dist/{composition-kEl9mevu.mjs → composition-B85l9j1M.mjs} +114 -8
  48. package/dist/{composition-DsmkwP9-.js → composition-OJKOJJD-.js} +179 -7
  49. package/dist/device/cap-vocabulary/entries/sensors.d.ts +1 -1
  50. package/dist/device/cap-vocabulary/types.d.ts +2 -2
  51. package/dist/device/schema-fields.d.ts +3 -0
  52. package/dist/device/source-info.d.ts +12 -6
  53. package/dist/generated/addon-api.d.ts +14 -0
  54. package/dist/generated/addon-cap-facts.d.ts +1 -1
  55. package/dist/generated/cap-status-types.d.ts +3 -1
  56. package/dist/generated/capability-router-map.d.ts +5 -2
  57. package/dist/generated/customize-catalog.d.ts +11 -87
  58. package/dist/generated/device-local-state.d.ts +3 -0
  59. package/dist/generated/device-proxy.d.ts +3 -0
  60. package/dist/generated/history-catalog.d.ts +1 -1
  61. package/dist/generated/method-access-map.d.ts +1 -1
  62. package/dist/generated/method-device-selectors.d.ts +1 -1
  63. package/dist/generated/runtime-state-durability.d.ts +1 -1
  64. package/dist/index.d.ts +3 -1
  65. package/dist/index.js +1458 -499
  66. package/dist/index.mjs +1420 -499
  67. package/dist/node.js +1 -1
  68. package/dist/node.mjs +1 -1
  69. package/dist/{sleep-BPQ2ZyaI.js → sleep-7Gw3GJ4n.js} +232 -127
  70. package/dist/{sleep-BErAxhul.mjs → sleep-B81gwQuR.mjs} +179 -128
  71. package/dist/units/convert.d.ts +5 -0
  72. package/dist/units/format-reading.d.ts +15 -0
  73. package/dist/units/index.d.ts +8 -1
  74. package/dist/units/ingest-reading.d.ts +21 -0
  75. package/dist/units/quantity.d.ts +47 -0
  76. package/dist/units/threshold.d.ts +6 -0
  77. package/dist/units/unit-table.d.ts +2 -228
  78. package/package.json +1 -1
  79. package/dist/capabilities/advanced-parameters.d.ts +0 -17
@@ -91,16 +91,8 @@ export interface CustomizeCatalogTarget {
91
91
  readonly sourceReport: CustomizeSourceReport;
92
92
  readonly advancedExpression: boolean;
93
93
  }
94
- export interface CustomizeCatalogAdvancedParameter {
95
- readonly path: string;
96
- readonly kind: CustomizeCatalogValueKind;
97
- readonly label: string;
98
- readonly unit?: string;
99
- readonly enumValues?: readonly string[];
100
- }
101
94
  export interface CustomizeCatalogEntry {
102
95
  readonly version: 1;
103
96
  readonly targets: readonly CustomizeCatalogTarget[];
104
- readonly advancedParameters: readonly CustomizeCatalogAdvancedParameter[];
105
97
  }
106
98
  export type CustomizeCatalog = Readonly<Record<string, CustomizeCatalogEntry>>;
@@ -9,12 +9,11 @@ import type { z } from 'zod';
9
9
  import type { DeviceType } from '../device/device-type.js';
10
10
  export type CustomizeCardinality = 'scalar' | 'keyedArray' | 'event';
11
11
  export type CustomizeValueKind = 'boolean' | 'number' | 'string' | 'enum';
12
- export type CustomizeApplyMode = 'add' | 'replace' | 'add-or-replace';
12
+ /** An extension is offered only when the device lacks the capability (D944). */
13
+ export type CustomizeApplyMode = 'add';
13
14
  export interface CapabilityCustomizeSpec {
14
15
  readonly version: 1;
15
16
  readonly targets: readonly CapabilityCustomizeTarget[];
16
- /** Opt-in advanced parameters: derive from runtime schema or an explicit path list (D939). */
17
- readonly advanced?: 'derive' | readonly string[];
18
17
  }
19
18
  export type CapabilityCustomizeTarget = ScalarCustomizeTarget | KeyedArrayCustomizeTarget | EventCustomizeTarget;
20
19
  export interface CustomizeVocabularyRef {
@@ -80,6 +80,12 @@ export declare const DeviceInfoSchema: z.ZodObject<{
80
80
  id: z.ZodString;
81
81
  system: z.ZodString;
82
82
  uniqueId: z.ZodOptional<z.ZodString>;
83
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
84
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
85
+ date: "date";
86
+ datetime: "datetime";
87
+ time: "time";
88
+ }>>;
83
89
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
84
90
  }, z.core.$strip>>;
85
91
  integrationId: z.ZodOptional<z.ZodString>;
@@ -257,6 +263,12 @@ export declare const DeviceMetaSchema: z.ZodObject<{
257
263
  id: z.ZodString;
258
264
  system: z.ZodString;
259
265
  uniqueId: z.ZodOptional<z.ZodString>;
266
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
267
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
268
+ date: "date";
269
+ datetime: "datetime";
270
+ time: "time";
271
+ }>>;
260
272
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
261
273
  }, z.core.$strip>>;
262
274
  integrationId: z.ZodOptional<z.ZodString>;
@@ -556,6 +568,12 @@ export declare const deviceManagerCapability: {
556
568
  id: z.ZodString;
557
569
  system: z.ZodString;
558
570
  uniqueId: z.ZodOptional<z.ZodString>;
571
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
572
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
573
+ date: "date";
574
+ datetime: "datetime";
575
+ time: "time";
576
+ }>>;
559
577
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
560
578
  }, z.core.$strip>>;
561
579
  integrationId: z.ZodOptional<z.ZodString>;
@@ -703,6 +721,7 @@ export declare const deviceManagerCapability: {
703
721
  }>;
704
722
  enumValues: z.ZodOptional<z.ZodArray<z.ZodString>>;
705
723
  item: z.ZodOptional<z.ZodBoolean>;
724
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
706
725
  }, z.core.$strip>>>;
707
726
  itemArray: z.ZodOptional<z.ZodObject<{
708
727
  path: z.ZodString;
@@ -972,6 +991,12 @@ export declare const deviceManagerCapability: {
972
991
  id: z.ZodString;
973
992
  system: z.ZodString;
974
993
  uniqueId: z.ZodOptional<z.ZodString>;
994
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
995
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
996
+ date: "date";
997
+ datetime: "datetime";
998
+ time: "time";
999
+ }>>;
975
1000
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
976
1001
  }, z.core.$strip>>;
977
1002
  integrationId: z.ZodOptional<z.ZodString>;
@@ -1019,6 +1044,12 @@ export declare const deviceManagerCapability: {
1019
1044
  id: z.ZodString;
1020
1045
  system: z.ZodString;
1021
1046
  uniqueId: z.ZodOptional<z.ZodString>;
1047
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1048
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1049
+ date: "date";
1050
+ datetime: "datetime";
1051
+ time: "time";
1052
+ }>>;
1022
1053
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1023
1054
  }, z.core.$strip>>;
1024
1055
  integrationId: z.ZodOptional<z.ZodString>;
@@ -1066,6 +1097,12 @@ export declare const deviceManagerCapability: {
1066
1097
  id: z.ZodString;
1067
1098
  system: z.ZodString;
1068
1099
  uniqueId: z.ZodOptional<z.ZodString>;
1100
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1101
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1102
+ date: "date";
1103
+ datetime: "datetime";
1104
+ time: "time";
1105
+ }>>;
1069
1106
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1070
1107
  }, z.core.$strip>>;
1071
1108
  integrationId: z.ZodOptional<z.ZodString>;
@@ -1144,6 +1181,12 @@ export declare const deviceManagerCapability: {
1144
1181
  id: z.ZodString;
1145
1182
  system: z.ZodString;
1146
1183
  uniqueId: z.ZodOptional<z.ZodString>;
1184
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1185
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1186
+ date: "date";
1187
+ datetime: "datetime";
1188
+ time: "time";
1189
+ }>>;
1147
1190
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1148
1191
  }, z.core.$strip>>;
1149
1192
  integrationId: z.ZodOptional<z.ZodString>;
@@ -1709,6 +1752,12 @@ export declare const deviceManagerCapability: {
1709
1752
  id: z.ZodString;
1710
1753
  system: z.ZodString;
1711
1754
  uniqueId: z.ZodOptional<z.ZodString>;
1755
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1756
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1757
+ date: "date";
1758
+ datetime: "datetime";
1759
+ time: "time";
1760
+ }>>;
1712
1761
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1713
1762
  }, z.core.$strip>>;
1714
1763
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -1727,6 +1776,12 @@ export declare const deviceManagerCapability: {
1727
1776
  id: z.ZodString;
1728
1777
  system: z.ZodString;
1729
1778
  uniqueId: z.ZodOptional<z.ZodString>;
1779
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1780
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1781
+ date: "date";
1782
+ datetime: "datetime";
1783
+ time: "time";
1784
+ }>>;
1730
1785
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1731
1786
  }, z.core.$strip>>;
1732
1787
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -1748,6 +1803,12 @@ export declare const deviceManagerCapability: {
1748
1803
  id: z.ZodString;
1749
1804
  system: z.ZodString;
1750
1805
  uniqueId: z.ZodOptional<z.ZodString>;
1806
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1807
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1808
+ date: "date";
1809
+ datetime: "datetime";
1810
+ time: "time";
1811
+ }>>;
1751
1812
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1752
1813
  }, z.core.$strip>>;
1753
1814
  }, z.core.$strip>, "mutation">;
@@ -1779,6 +1840,12 @@ export declare const deviceManagerCapability: {
1779
1840
  id: z.ZodString;
1780
1841
  system: z.ZodString;
1781
1842
  uniqueId: z.ZodOptional<z.ZodString>;
1843
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
1844
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
1845
+ date: "date";
1846
+ datetime: "datetime";
1847
+ time: "time";
1848
+ }>>;
1782
1849
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1783
1850
  }, z.core.$strip>>;
1784
1851
  }, z.core.$strip>, "mutation">;
@@ -1972,6 +2039,12 @@ export declare const deviceManagerCapability: {
1972
2039
  id: z.ZodString;
1973
2040
  system: z.ZodString;
1974
2041
  uniqueId: z.ZodOptional<z.ZodString>;
2042
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
2043
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
2044
+ date: "date";
2045
+ datetime: "datetime";
2046
+ time: "time";
2047
+ }>>;
1975
2048
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1976
2049
  }, z.core.$strip>>;
1977
2050
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -1996,6 +2069,12 @@ export declare const deviceManagerCapability: {
1996
2069
  id: z.ZodString;
1997
2070
  system: z.ZodString;
1998
2071
  uniqueId: z.ZodOptional<z.ZodString>;
2072
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
2073
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
2074
+ date: "date";
2075
+ datetime: "datetime";
2076
+ time: "time";
2077
+ }>>;
1999
2078
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2000
2079
  }, z.core.$strip>>;
2001
2080
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -27,6 +27,12 @@ declare const DiscoveryCandidateSchema: z.ZodObject<{
27
27
  id: z.ZodString;
28
28
  system: z.ZodString;
29
29
  uniqueId: z.ZodOptional<z.ZodString>;
30
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
31
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
32
+ date: "date";
33
+ datetime: "datetime";
34
+ time: "time";
35
+ }>>;
30
36
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
37
  }, z.core.$strip>>;
32
38
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -52,6 +58,12 @@ declare const DeviceSummarySchema: z.ZodObject<{
52
58
  id: z.ZodString;
53
59
  system: z.ZodString;
54
60
  uniqueId: z.ZodOptional<z.ZodString>;
61
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
62
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
63
+ date: "date";
64
+ datetime: "datetime";
65
+ time: "time";
66
+ }>>;
55
67
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
56
68
  }, z.core.$strip>>;
57
69
  }, z.core.$strip>;
@@ -135,6 +147,12 @@ export declare const deviceProviderCapability: {
135
147
  id: z.ZodString;
136
148
  system: z.ZodString;
137
149
  uniqueId: z.ZodOptional<z.ZodString>;
150
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
151
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
152
+ date: "date";
153
+ datetime: "datetime";
154
+ time: "time";
155
+ }>>;
138
156
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
139
157
  }, z.core.$strip>>;
140
158
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -167,6 +185,12 @@ export declare const deviceProviderCapability: {
167
185
  id: z.ZodString;
168
186
  system: z.ZodString;
169
187
  uniqueId: z.ZodOptional<z.ZodString>;
188
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
189
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
190
+ date: "date";
191
+ datetime: "datetime";
192
+ time: "time";
193
+ }>>;
170
194
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
171
195
  }, z.core.$strip>>;
172
196
  alreadyOnboarded: z.ZodOptional<z.ZodBoolean>;
@@ -187,6 +211,12 @@ export declare const deviceProviderCapability: {
187
211
  id: z.ZodString;
188
212
  system: z.ZodString;
189
213
  uniqueId: z.ZodOptional<z.ZodString>;
214
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
215
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
216
+ date: "date";
217
+ datetime: "datetime";
218
+ time: "time";
219
+ }>>;
190
220
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
191
221
  }, z.core.$strip>>;
192
222
  }, z.core.$strip>, "mutation">;
@@ -217,6 +247,12 @@ export declare const deviceProviderCapability: {
217
247
  id: z.ZodString;
218
248
  system: z.ZodString;
219
249
  uniqueId: z.ZodOptional<z.ZodString>;
250
+ quantity: z.ZodOptional<z.ZodType<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown, z.core.$ZodTypeInternals<"angle" | "apparent-power" | "area" | "bitrate" | "colour-temperature" | "concentration-mass" | "concentration-ppb" | "concentration-volume" | "count" | "current" | "device" | "duration" | "duration-ms" | "energy" | "humidity" | "illuminance" | "index" | "information" | "irradiance" | "length" | "mass" | "none" | "percentage" | "power" | "precipitation" | "precipitation-rate" | "pressure" | "rate" | "ratio" | "signal-level" | "sound-level" | "speed" | "temperature" | "voltage" | "volume", unknown>>>;
251
+ dateTimeShape: z.ZodOptional<z.ZodEnum<{
252
+ date: "date";
253
+ datetime: "datetime";
254
+ time: "time";
255
+ }>>;
220
256
  raw: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
221
257
  }, z.core.$strip>>;
222
258
  }, z.core.$strip>, "mutation">;
@@ -19,11 +19,7 @@ export declare const EnumSensorDateTimeFormatSchema: z.ZodEnum<{
19
19
  export type EnumSensorDateTimeFormat = z.infer<typeof EnumSensorDateTimeFormatSchema>;
20
20
  export declare const EnumSensorStatusSchema: z.ZodObject<{
21
21
  value: z.ZodString;
22
- format: z.ZodOptional<z.ZodEnum<{
23
- date: "date";
24
- datetime: "datetime";
25
- time: "time";
26
- }>>;
22
+ timestamp: z.ZodOptional<z.ZodBoolean>;
27
23
  lastFetchedAt: z.ZodNumber;
28
24
  }, z.core.$strip>;
29
25
  export type EnumSensorStatus = z.infer<typeof EnumSensorStatusSchema>;
@@ -37,22 +33,14 @@ export declare const enumSensorCapability: {
37
33
  readonly status: {
38
34
  readonly schema: z.ZodObject<{
39
35
  value: z.ZodString;
40
- format: z.ZodOptional<z.ZodEnum<{
41
- date: "date";
42
- datetime: "datetime";
43
- time: "time";
44
- }>>;
36
+ timestamp: z.ZodOptional<z.ZodBoolean>;
45
37
  lastFetchedAt: z.ZodNumber;
46
38
  }, z.core.$strip>;
47
39
  readonly kind: 'push';
48
40
  };
49
41
  readonly runtimeState: z.ZodObject<{
50
42
  value: z.ZodString;
51
- format: z.ZodOptional<z.ZodEnum<{
52
- date: "date";
53
- datetime: "datetime";
54
- time: "time";
55
- }>>;
43
+ timestamp: z.ZodOptional<z.ZodBoolean>;
56
44
  lastFetchedAt: z.ZodNumber;
57
45
  }, z.core.$strip>;
58
46
  /**
@@ -66,13 +54,13 @@ export declare const enumSensorCapability: {
66
54
  * History (D850): the value as an `enum` series (an appliance's program or
67
55
  * operation state, an HVAC action). The option set is per device, so the
68
56
  * value list is LEARNED as values are first seen (bounded). A sensor with a
69
- * `format` carries a timestamp, not a state, and is not recorded.
57
+ * `timestamp` carries a clock, not a state, and is not recorded.
70
58
  */
71
59
  readonly history: {
72
60
  readonly fields: {
73
61
  readonly value: {
74
62
  readonly kind: 'enum';
75
- readonly skipWhenSet: 'format';
63
+ readonly skipWhenSet: 'timestamp';
76
64
  };
77
65
  };
78
66
  };
@@ -0,0 +1,46 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * How many members of a helper group answered (D944). Counts are integers,
6
+ * not measurements: zero included is a real count, never a stand-in reading.
7
+ * The reading itself stays on the output capability. History is none — the
8
+ * series that later statistics read is the output cap's own history block.
9
+ */
10
+ export declare const GroupStatusSchema: z.ZodObject<{
11
+ included: z.ZodNumber;
12
+ excluded: z.ZodNumber;
13
+ total: z.ZodNumber;
14
+ }>;
15
+ export type GroupStatus = z.infer<typeof GroupStatusSchema>;
16
+ export declare const groupStatusCapability: {
17
+ readonly name: 'group-status';
18
+ readonly scope: 'device';
19
+ readonly deviceNative: true;
20
+ readonly mode: 'singleton';
21
+ readonly deviceTypes: readonly [DeviceType.Sensor];
22
+ readonly methods: {};
23
+ readonly status: {
24
+ readonly schema: z.ZodObject<{
25
+ included: z.ZodNumber;
26
+ excluded: z.ZodNumber;
27
+ total: z.ZodNumber;
28
+ }, z.core.$strip>;
29
+ readonly kind: 'push';
30
+ };
31
+ readonly runtimeState: z.ZodObject<{
32
+ included: z.ZodNumber;
33
+ excluded: z.ZodNumber;
34
+ total: z.ZodNumber;
35
+ }, z.core.$strip>;
36
+ /**
37
+ * Runtime-state durability: **session** — recomputed from members on the
38
+ * next source event; a restored count would outlive the readings it named.
39
+ *
40
+ * See `RuntimeStateDurability`. Enforced by
41
+ * `scripts/check-runtime-state-durability.ts`.
42
+ */
43
+ readonly durability: 'session';
44
+ readonly history: 'none';
45
+ };
46
+ export type IGroupStatusProvider = InferProvider<typeof groupStatusCapability>;
@@ -10,10 +10,8 @@ import { DeviceType } from '../device/device-type.js';
10
10
  * `sourceInfo`.
11
11
  */
12
12
  export declare const HumiditySensorStatusSchema: z.ZodObject<{
13
- percent: z.ZodNumber;
13
+ percent: z.ZodNullable<z.ZodNumber>;
14
14
  lastFetchedAt: z.ZodNumber;
15
- unit: z.ZodOptional<z.ZodString>;
16
- precision: z.ZodOptional<z.ZodNumber>;
17
15
  }, z.core.$strip>;
18
16
  export type HumiditySensorStatus = z.infer<typeof HumiditySensorStatusSchema>;
19
17
  export declare const humiditySensorCapability: {
@@ -25,18 +23,14 @@ export declare const humiditySensorCapability: {
25
23
  readonly methods: {};
26
24
  readonly status: {
27
25
  readonly schema: z.ZodObject<{
28
- percent: z.ZodNumber;
26
+ percent: z.ZodNullable<z.ZodNumber>;
29
27
  lastFetchedAt: z.ZodNumber;
30
- unit: z.ZodOptional<z.ZodString>;
31
- precision: z.ZodOptional<z.ZodNumber>;
32
28
  }, z.core.$strip>;
33
29
  readonly kind: 'push';
34
30
  };
35
31
  readonly runtimeState: z.ZodObject<{
36
- percent: z.ZodNumber;
32
+ percent: z.ZodNullable<z.ZodNumber>;
37
33
  lastFetchedAt: z.ZodNumber;
38
- unit: z.ZodOptional<z.ZodString>;
39
- precision: z.ZodOptional<z.ZodNumber>;
40
34
  }, z.core.$strip>;
41
35
  /**
42
36
  * Runtime-state durability: **restored** — as `numeric-sensor` (67 of 75 writes were the clock alone).
@@ -60,10 +54,5 @@ export declare const humiditySensorCapability: {
60
54
  /** Clock fields: written, but excluded from the compare that decides
61
55
  * whether persisting is worth a SQLite commit. */
62
56
  readonly volatileStateFields: readonly ["lastFetchedAt"];
63
- readonly customize: {
64
- readonly version: 1;
65
- readonly advanced: 'derive';
66
- readonly targets: readonly [];
67
- };
68
57
  };
69
58
  export type IHumiditySensorProvider = InferProvider<typeof humiditySensorCapability>;
@@ -167,7 +167,7 @@ export { type ClimateControlStatus, ClimateControlStatusSchema, climateControlCa
167
167
  export { type ColorHsvTriplet, type ColorInput, type ColorRgbTriplet, type ColorStatus, ColorStatusSchema, colorCapability, type IColorProvider, } from './color.cap.js';
168
168
  export { CONNECTION_TEST_TIMEOUT_MS, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, type ConnectionTestOutcome, ConnectionTestOutcomeSchema, connectionTestCapability, type IConnectionTestProvider, } from './connection-test.cap.js';
169
169
  export { type ConnectivityStatus, ConnectivityStatusSchema, connectivityCapability, type IConnectivityProvider, } from './connectivity.cap.js';
170
- export { type ConsumableItem, ConsumableItemSchema, type ConsumableForm, ConsumableFormSchema, consumableFormOf, type ConsumableKind, ConsumableKindSchema, type ConsumableLevel, ConsumableLevelSchema, type ConsumableStatus, ConsumableStatusSchema, consumableKindOf, type ConsumableRemaining, ConsumableRemainingSchema, type ConsumableRemainingUnit, ConsumableRemainingUnitSchema, type ConsumablesStatus, ConsumablesStatusSchema, consumablesCapability, type IConsumablesProvider, } from './consumables.cap.js';
170
+ export { type ConsumableItem, ConsumableItemSchema, type ConsumableForm, ConsumableFormSchema, consumableFormOf, type ConsumableKind, ConsumableKindSchema, type ConsumableLevel, ConsumableLevelSchema, type ConsumableStatus, ConsumableStatusSchema, consumableKindOf, type ConsumableRemaining, ConsumableRemainingSchema, type ConsumableRemainingKind, ConsumableRemainingKindSchema, type ConsumablesStatus, ConsumablesStatusSchema, consumablesCapability, type IConsumablesProvider, } from './consumables.cap.js';
171
171
  export { type ContactStatus, ContactStatusSchema, contactCapability, type IContactProvider, } from './contact.cap.js';
172
172
  export { type ControlKind, ControlKindSchema, type ControlSetValueInput, type ControlStatus, ControlStatusSchema, controlCapability, type IControlProvider, } from './control.cap.js';
173
173
  export { type CoverState, CoverStateSchema, type CoverStatus, CoverStatusSchema, coverCapability, type ICoverProvider, } from './cover.cap.js';
@@ -185,6 +185,7 @@ export { type FanControlStatus, FanControlStatusSchema, type FanDirection, FanDi
185
185
  export { type FeatureProbeStatus, FeatureProbeStatusSchema, featureProbeCapability, type IFeatureProbeProvider, } from './feature-probe.cap.js';
186
186
  export { type FloodStatus, FloodStatusSchema, floodCapability, type IFloodProvider, } from './flood.cap.js';
187
187
  export { type GasStatus, GasStatusSchema, gasCapability, type IGasProvider } from './gas.cap.js';
188
+ export { type GroupStatus, GroupStatusSchema, groupStatusCapability, type IGroupStatusProvider, } from './group-status.cap.js';
188
189
  export { type HeatingValveStatus, HeatingValveStatusSchema, heatingValveCapability, type IHeatingValveProvider, } from './heating-valve.cap.js';
189
190
  export { type HumidifierStatus, HumidifierStatusSchema, humidifierCapability, type IHumidifierProvider, } from './humidifier.cap.js';
190
191
  export { type HumiditySensorStatus, HumiditySensorStatusSchema, humiditySensorCapability, type IHumiditySensorProvider, } from './humidity-sensor.cap.js';
@@ -336,6 +337,7 @@ import type { featureProbeCapability } from './feature-probe.cap.js';
336
337
  import type { filesystemBrowseCapability } from './filesystem-browse.cap.js';
337
338
  import type { floodCapability } from './flood.cap.js';
338
339
  import type { gasCapability } from './gas.cap.js';
340
+ import type { groupStatusCapability } from './group-status.cap.js';
339
341
  import type { heatingValveCapability } from './heating-valve.cap.js';
340
342
  import type { humidifierCapability } from './humidifier.cap.js';
341
343
  import type { humiditySensorCapability } from './humidity-sensor.cap.js';
@@ -437,6 +439,6 @@ import type { trainingProviderCapability } from './training-provider.cap.js';
437
439
  import type { zoneAnalyticsCapability } from './zone-analytics.cap.js';
438
440
  import type { zoneRulesCapability } from './zone-rules.cap.js';
439
441
  import type { zonesCapability } from './zones.cap.js';
440
- type AnyCapability = typeof streamSignalsCapability | typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof storageOccupancyCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof databaseSnapshotCapability | typeof storageAdminCapability | typeof recordsCapability | typeof recordEntriesCapability | typeof deviceHistoryCapability | typeof keychainCapability | typeof keychainAdminCapability | typeof deviceCredentialsCapability | typeof nodeCertificatesCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof deviceRemovalHookCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceAdminLinkCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof calendarSourceCapability | typeof calendarsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof composerCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof runningStateCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof trainingCapability | typeof trainingProviderCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof heatingValveCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingArchiveCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof displayPaletteCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof oidcConnectionsCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof cameraGridLayoutCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof recordingOnboardCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability | typeof deviceExtensionCapability | typeof dishwasherCapability;
442
+ type AnyCapability = typeof streamSignalsCapability | typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof storageOccupancyCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof databaseSnapshotCapability | typeof storageAdminCapability | typeof recordsCapability | typeof recordEntriesCapability | typeof deviceHistoryCapability | typeof keychainCapability | typeof keychainAdminCapability | typeof deviceCredentialsCapability | typeof nodeCertificatesCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof deviceRemovalHookCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceAdminLinkCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof calendarSourceCapability | typeof calendarsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof composerCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof runningStateCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof trainingCapability | typeof trainingProviderCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof groupStatusCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof heatingValveCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingArchiveCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof displayPaletteCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof oidcConnectionsCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof cameraGridLayoutCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof recordingOnboardCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability | typeof deviceExtensionCapability | typeof dishwasherCapability;
441
443
  export type CapabilityName = AnyCapability['name'];
442
444
  export type ITypedReadinessRegistry = IReadinessRegistry<CapabilityName>;
@@ -91,15 +91,23 @@ export declare const motionCapability: {
91
91
  readonly methods: {
92
92
  /**
93
93
  * Pull the current motion state synchronously. Convenience shortcut
94
- * for consumers that don't need the full status object; equivalent
95
- * to `getStatus()?.detected ?? false`. Will likely be folded into
96
- * `getStatus` once the auto-injected status surface lands in every
97
- * consumer.
94
+ * for consumers that don't need the full status object. A composed
95
+ * group answers from its slice (D944): unknown throws, it is not off.
98
96
  */
99
97
  readonly isDetected: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
100
98
  deviceId: z.ZodNumber;
101
99
  }, z.core.$strip>, z.ZodBoolean, import("./capability-definition.js").CapabilityMethodKind>;
102
100
  };
101
+ /**
102
+ * A composed motion group serves `isDetected` from `detected` (D944).
103
+ * Without this the cap stays uncomposable (`has-commands`).
104
+ */
105
+ readonly composedMethods: {
106
+ readonly isDetected: {
107
+ readonly kind: 'slice';
108
+ readonly field: 'detected';
109
+ };
110
+ };
103
111
  readonly events: {
104
112
  /**
105
113
  * Fires every time the runner transitions a camera between
@@ -196,7 +204,7 @@ export declare const motionCapability: {
196
204
  readonly eventName: 'onMotionChanged';
197
205
  };
198
206
  readonly deviceTypes: readonly [DeviceType.Camera];
199
- readonly apply: 'replace';
207
+ readonly apply: 'add';
200
208
  readonly applyAuthority: {
201
209
  readonly kind: 'camera-sensors';
202
210
  readonly timeoutField: 'motionCooldownMs';