@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
@@ -6,11 +6,9 @@ import { DeviceType } from '../device/device-type.js';
6
6
  * cap fits (HA `sensor` whose `device_class` we don't have a typed cap
7
7
  * for: water flow, distance, weight, frequency, signal strength, …).
8
8
  *
9
- * The `unit` and `precision` fields carry the live display metadata that
10
- * the upstream source provides with each state push (HA
11
- * `attributes.unit_of_measurement` / `attributes.suggested_display_precision`).
12
- * The UI reads them directly from the slice — they are the single source
13
- * of truth for generic numeric rendering and do NOT live on `sourceInfo`.
9
+ * The quantity is not on this slice. It is chosen when the device is
10
+ * adopted and stored once on `SourceInfo.quantity` (D944). `value` is in
11
+ * that quantity's base unit. `null` is a refused sample (D393).
14
12
  *
15
13
  * Prefer the typed alternatives (`temperature-sensor`, `humidity-sensor`,
16
14
  * `ambient-light-sensor`, `pressure-sensor`, `power-meter`,
@@ -19,9 +17,7 @@ import { DeviceType } from '../device/device-type.js';
19
17
  * numeric values land here.
20
18
  */
21
19
  export declare const NumericSensorStatusSchema: z.ZodObject<{
22
- value: z.ZodNumber;
23
- unit: z.ZodOptional<z.ZodString>;
24
- precision: z.ZodOptional<z.ZodNumber>;
20
+ value: z.ZodNullable<z.ZodNumber>;
25
21
  lastFetchedAt: z.ZodNumber;
26
22
  }, z.core.$strip>;
27
23
  export type NumericSensorStatus = z.infer<typeof NumericSensorStatusSchema>;
@@ -34,17 +30,13 @@ export declare const numericSensorCapability: {
34
30
  readonly methods: {};
35
31
  readonly status: {
36
32
  readonly schema: z.ZodObject<{
37
- value: z.ZodNumber;
38
- unit: z.ZodOptional<z.ZodString>;
39
- precision: z.ZodOptional<z.ZodNumber>;
33
+ value: z.ZodNullable<z.ZodNumber>;
40
34
  lastFetchedAt: z.ZodNumber;
41
35
  }, z.core.$strip>;
42
36
  readonly kind: 'push';
43
37
  };
44
38
  readonly runtimeState: z.ZodObject<{
45
- value: z.ZodNumber;
46
- unit: z.ZodOptional<z.ZodString>;
47
- precision: z.ZodOptional<z.ZodNumber>;
39
+ value: z.ZodNullable<z.ZodNumber>;
48
40
  lastFetchedAt: z.ZodNumber;
49
41
  }, z.core.$strip>;
50
42
  /**
@@ -55,13 +47,13 @@ export declare const numericSensorCapability: {
55
47
  */
56
48
  readonly durability: 'restored';
57
49
  /**
58
- * History (D850): recorded series. The unit is per device, read from the sibling `unit` field.
50
+ * History (D850): recorded series. The unit is the device quantity's base,
51
+ * resolved when the series is read — the cap has no single unit.
59
52
  */
60
53
  readonly history: {
61
54
  readonly fields: {
62
55
  readonly value: {
63
56
  readonly kind: 'gauge';
64
- readonly unitFrom: 'unit';
65
57
  readonly minIntervalMs: 30000;
66
58
  };
67
59
  };
@@ -209,7 +209,7 @@ export declare const petFeederCapability: {
209
209
  };
210
210
  readonly desiccantLeftDays: {
211
211
  readonly kind: 'gauge';
212
- readonly unit: 'days';
212
+ readonly unit: 's';
213
213
  };
214
214
  };
215
215
  };
@@ -24,8 +24,6 @@ export declare const PowerMeterStatusSchema: z.ZodObject<{
24
24
  va: z.ZodOptional<z.ZodNumber>;
25
25
  powerFactor: z.ZodOptional<z.ZodNumber>;
26
26
  lastFetchedAt: z.ZodNumber;
27
- unit: z.ZodOptional<z.ZodString>;
28
- precision: z.ZodOptional<z.ZodNumber>;
29
27
  }, z.core.$strip>;
30
28
  export type PowerMeterStatus = z.infer<typeof PowerMeterStatusSchema>;
31
29
  export declare const powerMeterCapability: {
@@ -44,8 +42,6 @@ export declare const powerMeterCapability: {
44
42
  va: z.ZodOptional<z.ZodNumber>;
45
43
  powerFactor: z.ZodOptional<z.ZodNumber>;
46
44
  lastFetchedAt: z.ZodNumber;
47
- unit: z.ZodOptional<z.ZodString>;
48
- precision: z.ZodOptional<z.ZodNumber>;
49
45
  }, z.core.$strip>;
50
46
  readonly kind: 'push';
51
47
  };
@@ -57,8 +53,6 @@ export declare const powerMeterCapability: {
57
53
  va: z.ZodOptional<z.ZodNumber>;
58
54
  powerFactor: z.ZodOptional<z.ZodNumber>;
59
55
  lastFetchedAt: z.ZodNumber;
60
- unit: z.ZodOptional<z.ZodString>;
61
- precision: z.ZodOptional<z.ZodNumber>;
62
56
  }, z.core.$strip>;
63
57
  /**
64
58
  * Runtime-state durability: **restored** — as `numeric-sensor`; `kwhTotal` is an accumulator whose restored value is the baseline.
@@ -113,10 +107,5 @@ export declare const powerMeterCapability: {
113
107
  /** Clock fields: written, but excluded from the compare that decides
114
108
  * whether persisting is worth a SQLite commit. */
115
109
  readonly volatileStateFields: readonly ["lastFetchedAt"];
116
- readonly customize: {
117
- readonly version: 1;
118
- readonly advanced: 'derive';
119
- readonly targets: readonly [];
120
- };
121
110
  };
122
111
  export type IPowerMeterProvider = InferProvider<typeof powerMeterCapability>;
@@ -10,10 +10,8 @@ import { DeviceType } from '../device/device-type.js';
10
10
  * `sourceInfo`.
11
11
  */
12
12
  export declare const PressureSensorStatusSchema: z.ZodObject<{
13
- hpa: z.ZodNumber;
13
+ hpa: 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 PressureSensorStatus = z.infer<typeof PressureSensorStatusSchema>;
19
17
  export declare const pressureSensorCapability: {
@@ -25,18 +23,14 @@ export declare const pressureSensorCapability: {
25
23
  readonly methods: {};
26
24
  readonly status: {
27
25
  readonly schema: z.ZodObject<{
28
- hpa: z.ZodNumber;
26
+ hpa: 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
- hpa: z.ZodNumber;
32
+ hpa: 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`.
@@ -74,7 +74,6 @@ export declare const runningStateCapability: {
74
74
  readonly volatileStateFields: readonly ["lastFetchedAt"];
75
75
  readonly customize: {
76
76
  readonly version: 1;
77
- readonly advanced: 'derive';
78
77
  readonly targets: readonly [{
79
78
  readonly id: 'running';
80
79
  readonly cardinality: 'scalar';
@@ -83,7 +82,7 @@ export declare const runningStateCapability: {
83
82
  readonly stateField: 'running';
84
83
  };
85
84
  readonly deviceTypes: readonly [DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder];
86
- readonly apply: 'add-or-replace';
85
+ readonly apply: 'add';
87
86
  readonly path: 'running';
88
87
  readonly sources: readonly [{
89
88
  readonly kind: 'switch';
@@ -0,0 +1 @@
1
+ export declare function runtimeFieldUnit(cap: string, path: string): string | undefined;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Unit meta on a runtime-state field (D941 convert-unit). Not an override list.
3
+ * The lookup of the generated map lives in `runtime-field-unit.ts` so codegen
4
+ * can import this walker without loading the file it is about to rewrite.
5
+ */
6
+ import { z } from 'zod';
7
+ /** Top-level runtime paths that declare a unit. */
8
+ export declare function runtimeFieldUnits(schema: z.ZodType): Readonly<Record<string, string>>;
@@ -82,10 +82,5 @@ export declare const switchCapability: {
82
82
  };
83
83
  }];
84
84
  };
85
- readonly customize: {
86
- readonly version: 1;
87
- readonly advanced: 'derive';
88
- readonly targets: readonly [];
89
- };
90
85
  };
91
86
  export type ISwitchProvider = InferProvider<typeof switchCapability>;
@@ -6,22 +6,16 @@ import { DeviceType } from '../device/device-type.js';
6
6
  * entries with `device_class: temperature` and any future native
7
7
  * thermometer.
8
8
  *
9
- * Unit normalisation: providers convert to Celsius before storing.
10
- * The slice value is always Celsius so cross-cap aggregators
11
- * (climate-control's `currentTemp`, energy analytics) can compose
12
- * without per-source unit fixups. The canonical display unit (`°C`) is
13
- * a descriptor constant in the UI (ROLE_DESCRIPTOR), not stored in
14
- * `sourceInfo`.
9
+ * The number is Celsius (D944). Providers convert on ingest. A failed
10
+ * conversion is `null`, never a guess. Display unit is a read-time preference.
15
11
  *
16
12
  * Status `lastFetchedAt` lets staleness-aware consumers detect a
17
13
  * frozen feed (provider hung) distinct from a "temperature hasn't
18
14
  * changed" steady state.
19
15
  */
20
16
  export declare const TemperatureSensorStatusSchema: z.ZodObject<{
21
- celsius: z.ZodNumber;
17
+ celsius: z.ZodNullable<z.ZodNumber>;
22
18
  lastFetchedAt: z.ZodNumber;
23
- unit: z.ZodOptional<z.ZodString>;
24
- precision: z.ZodOptional<z.ZodNumber>;
25
19
  }, z.core.$strip>;
26
20
  export type TemperatureSensorStatus = z.infer<typeof TemperatureSensorStatusSchema>;
27
21
  export declare const temperatureSensorCapability: {
@@ -33,18 +27,14 @@ export declare const temperatureSensorCapability: {
33
27
  readonly methods: {};
34
28
  readonly status: {
35
29
  readonly schema: z.ZodObject<{
36
- celsius: z.ZodNumber;
30
+ celsius: z.ZodNullable<z.ZodNumber>;
37
31
  lastFetchedAt: z.ZodNumber;
38
- unit: z.ZodOptional<z.ZodString>;
39
- precision: z.ZodOptional<z.ZodNumber>;
40
32
  }, z.core.$strip>;
41
33
  readonly kind: 'push';
42
34
  };
43
35
  readonly runtimeState: z.ZodObject<{
44
- celsius: z.ZodNumber;
36
+ celsius: z.ZodNullable<z.ZodNumber>;
45
37
  lastFetchedAt: z.ZodNumber;
46
- unit: z.ZodOptional<z.ZodString>;
47
- precision: z.ZodOptional<z.ZodNumber>;
48
38
  }, z.core.$strip>;
49
39
  /**
50
40
  * Runtime-state durability: **restored** — as `numeric-sensor` (69 of 125 writes were the clock alone).
@@ -68,10 +58,5 @@ export declare const temperatureSensorCapability: {
68
58
  /** Clock fields: written, but excluded from the compare that decides
69
59
  * whether persisting is worth a SQLite commit. */
70
60
  readonly volatileStateFields: readonly ["lastFetchedAt"];
71
- readonly customize: {
72
- readonly version: 1;
73
- readonly advanced: 'derive';
74
- readonly targets: readonly [];
75
- };
76
61
  };
77
62
  export type ITemperatureSensorProvider = InferProvider<typeof temperatureSensorCapability>;
@@ -23,12 +23,9 @@ import { DeviceType } from '../device/device-type.js';
23
23
  export declare const WeatherStatusSchema: z.ZodObject<{
24
24
  condition: z.ZodNullable<z.ZodString>;
25
25
  temperature: z.ZodNullable<z.ZodNumber>;
26
- temperatureUnit: z.ZodNullable<z.ZodString>;
27
26
  humidity: z.ZodNullable<z.ZodNumber>;
28
27
  pressure: z.ZodNullable<z.ZodNumber>;
29
- pressureUnit: z.ZodNullable<z.ZodString>;
30
28
  windSpeed: z.ZodNullable<z.ZodNumber>;
31
- windSpeedUnit: z.ZodNullable<z.ZodString>;
32
29
  windBearing: z.ZodNullable<z.ZodNumber>;
33
30
  lastFetchedAt: z.ZodNumber;
34
31
  }, z.core.$strip>;
@@ -44,12 +41,9 @@ export declare const weatherCapability: {
44
41
  readonly schema: z.ZodObject<{
45
42
  condition: z.ZodNullable<z.ZodString>;
46
43
  temperature: z.ZodNullable<z.ZodNumber>;
47
- temperatureUnit: z.ZodNullable<z.ZodString>;
48
44
  humidity: z.ZodNullable<z.ZodNumber>;
49
45
  pressure: z.ZodNullable<z.ZodNumber>;
50
- pressureUnit: z.ZodNullable<z.ZodString>;
51
46
  windSpeed: z.ZodNullable<z.ZodNumber>;
52
- windSpeedUnit: z.ZodNullable<z.ZodString>;
53
47
  windBearing: z.ZodNullable<z.ZodNumber>;
54
48
  lastFetchedAt: z.ZodNumber;
55
49
  }, z.core.$strip>;
@@ -62,12 +56,9 @@ export declare const weatherCapability: {
62
56
  readonly runtimeState: z.ZodObject<{
63
57
  condition: z.ZodNullable<z.ZodString>;
64
58
  temperature: z.ZodNullable<z.ZodNumber>;
65
- temperatureUnit: z.ZodNullable<z.ZodString>;
66
59
  humidity: z.ZodNullable<z.ZodNumber>;
67
60
  pressure: z.ZodNullable<z.ZodNumber>;
68
- pressureUnit: z.ZodNullable<z.ZodString>;
69
61
  windSpeed: z.ZodNullable<z.ZodNumber>;
70
- windSpeedUnit: z.ZodNullable<z.ZodString>;
71
62
  windBearing: z.ZodNullable<z.ZodNumber>;
72
63
  lastFetchedAt: z.ZodNumber;
73
64
  }, z.core.$strip>;
@@ -79,13 +70,13 @@ export declare const weatherCapability: {
79
70
  */
80
71
  readonly durability: 'session';
81
72
  /**
82
- * History (D850): recorded series. Units follow the sibling `*Unit` fields.
73
+ * History (D850): recorded series. Numbers are the quantity base (D944).
83
74
  */
84
75
  readonly history: {
85
76
  readonly fields: {
86
77
  readonly temperature: {
87
78
  readonly kind: 'gauge';
88
- readonly unitFrom: 'temperatureUnit';
79
+ readonly unit: '°C';
89
80
  readonly deadband: 0.2;
90
81
  };
91
82
  readonly humidity: {
@@ -95,12 +86,12 @@ export declare const weatherCapability: {
95
86
  };
96
87
  readonly pressure: {
97
88
  readonly kind: 'gauge';
98
- readonly unitFrom: 'pressureUnit';
89
+ readonly unit: 'hPa';
99
90
  readonly deadband: 0.5;
100
91
  };
101
92
  readonly windSpeed: {
102
93
  readonly kind: 'gauge';
103
- readonly unitFrom: 'windSpeedUnit';
94
+ readonly unit: 'm/s';
104
95
  readonly deadband: 0.5;
105
96
  };
106
97
  };
package/dist/client.d.ts CHANGED
@@ -14,4 +14,5 @@
14
14
  * value this entry does not export — a missing name here is `undefined` at
15
15
  * runtime, not a build error.
16
16
  */
17
- export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, AlarmArmModeSchema, CLIP_BROKER_PACED_RATES, COCO_TO_MACRO, CamProfileSchema, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IconKeySchema, LOCATION_ICON_FALLBACK, DEFINITIVE_DEVICE_REFUSALS, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_CERT_SIGNATURE, DEVICE_SIGNATURE_MESSAGE_VERSION, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DeviceType, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_TAXONOMY, MACRO_LABELS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NcAlarmConfigSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcHistoryEntrySchema, NcRuleLastRunsSchema, NodeDirectorySchema, RECORDING_EXPORT_MAX_READ_BYTES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, SystemMirror, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleSchema, YAMNET_TO_MACRO, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPatchLanded, canonicalIconKey, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, deviceRefusalFromMessage, isDefinitiveDeviceRefusal, classifyRetrainReview, conditionVisibleForKind, createSystemProxy, droppedConditionsForKind, iconCategoryLabel, iconEntry, iconsInCategory, isIconKey, isHeldBackTemplateVar, isSystemRuleKind, kindsForDiscriminator, locationIconKey, knownValues, nodePickerItems, parseDeviceEnrollmentLink, packagePickerItems, pickerForCondition, pickerForRuleClasses, parseRetrainRevisionConflict, resolveIconKey, resolveModeDelays, retrainBoxIou, retrainRevisionConflictMessage, ruleDeviceCompatCapNames, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleSeedForSection, searchIcons, sensorTransitionNeverFires, sensorTransitionOffered, stateLabel, summarizeReview, systemEventClassesFor, systemEventClassKinds, systemEventDeliveryProblems, systemEventFilterAppliesToAnyKind, systemEventKindsOfFamily, systemFamilyOfKind, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, buildSubjectPath, isDrawableSubjectPath, projectSubjectPath, subjectPathSampleFromBox, subjectPathSvgPoints, expandSystemEventClasses, withSystemEventClasses, } from './index.js';
17
+ export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, AlarmArmModeSchema, CLIP_BROKER_PACED_RATES, COCO_TO_MACRO, CamProfileSchema, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IconKeySchema, LOCATION_ICON_FALLBACK, DEFINITIVE_DEVICE_REFUSALS, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_CERT_SIGNATURE, DEVICE_SIGNATURE_MESSAGE_VERSION, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DeviceType, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_TAXONOMY, MACRO_LABELS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NcAlarmConfigSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcHistoryEntrySchema, NcRuleLastRunsSchema, NodeDirectorySchema, RECORDING_EXPORT_MAX_READ_BYTES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, SystemMirror, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleSchema, YAMNET_TO_MACRO, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPatchLanded, canonicalIconKey, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, deviceRefusalFromMessage, isDefinitiveDeviceRefusal, classifyRetrainReview, conditionVisibleForKind, createSystemProxy, droppedConditionsForKind, iconCategoryLabel, iconEntry, iconsInCategory, isIconKey, isHeldBackTemplateVar, isSystemRuleKind, kindsForDiscriminator, locationIconKey, knownValues, nodePickerItems, parseDeviceEnrollmentLink, packagePickerItems, pickerForCondition, pickerForRuleClasses, parseRetrainRevisionConflict, resolveIconKey, resolveModeDelays, retrainBoxIou, retrainRevisionConflictMessage, ruleDeviceCompatCapNames, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleSeedForSection, searchIcons, sensorTransitionNeverFires, sensorTransitionOffered, stateLabel, summarizeReview, systemEventClassesFor, systemEventClassKinds, systemEventDeliveryProblems, systemEventFilterAppliesToAnyKind, systemEventKindsOfFamily, systemFamilyOfKind, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, buildSubjectPath, isDrawableSubjectPath, projectSubjectPath, subjectPathSampleFromBox, subjectPathSvgPoints, expandSystemEventClasses, withSystemEventClasses, bundledCamstack, paintHex, paletteResultSchema, } from './index.js';
18
+ export type { PaletteReady, PaletteResult, PaletteEntryId, PalettePresetId } from './index.js';
package/dist/client.js CHANGED
@@ -306,6 +306,52 @@ function parseRetrainRevisionConflict(message) {
306
306
  expectedRevision: Number(match[2])
307
307
  };
308
308
  }
309
+ var READING_QUANTITIES = [
310
+ "temperature",
311
+ "pressure",
312
+ "speed",
313
+ "precipitation",
314
+ "precipitation-rate",
315
+ "length",
316
+ "area",
317
+ "illuminance",
318
+ "irradiance",
319
+ "power",
320
+ "energy",
321
+ "voltage",
322
+ "current",
323
+ "apparent-power",
324
+ "humidity",
325
+ "percentage",
326
+ "concentration-volume",
327
+ "concentration-mass",
328
+ "concentration-ppb",
329
+ "volume",
330
+ "duration",
331
+ "duration-ms",
332
+ "information",
333
+ "sound-level",
334
+ "signal-level",
335
+ "colour-temperature",
336
+ "angle",
337
+ "bitrate",
338
+ "rate",
339
+ "mass",
340
+ "index",
341
+ "ratio",
342
+ "count",
343
+ "none",
344
+ "device"
345
+ ];
346
+ zod.z.enum(READING_QUANTITIES);
347
+ new Set(READING_QUANTITIES);
348
+ function readingMeta(quantity, extras) {
349
+ return {
350
+ quantity,
351
+ ...extras?.precision !== void 0 ? { precision: extras.precision } : {},
352
+ ...extras?.label !== void 0 ? { label: extras.label } : {}
353
+ };
354
+ }
309
355
  //#endregion
310
356
  //#region src/capabilities/schemas/streaming-shared.ts
311
357
  /** Shared Zod schemas used across streaming capabilities. */
@@ -325,8 +371,8 @@ var CamStreamKindSchema = zod.z.enum([
325
371
  "derived"
326
372
  ]);
327
373
  var CamStreamResolutionSchema = zod.z.object({
328
- width: zod.z.number().int().positive(),
329
- height: zod.z.number().int().positive()
374
+ width: zod.z.number().int().positive().meta(readingMeta("none")),
375
+ height: zod.z.number().int().positive().meta(readingMeta("none"))
330
376
  });
331
377
  zod.z.object({
332
378
  /** Stable, provider-assigned id unique within the (deviceId) scope. */
@@ -22171,7 +22217,7 @@ var paletteUnknownSchema = zod.z.object({
22171
22217
  status: zod.z.literal("unknown"),
22172
22218
  reason: zod.z.string()
22173
22219
  });
22174
- zod.z.discriminatedUnion("status", [paletteReadySchema, paletteUnknownSchema]);
22220
+ var paletteResultSchema = zod.z.discriminatedUnion("status", [paletteReadySchema, paletteUnknownSchema]);
22175
22221
  zod.z.union([zod.z.object({ presetId: zod.z.string() }), zod.z.object({
22176
22222
  presetId: zod.z.string(),
22177
22223
  overrides: zod.z.record(zod.z.string(), paletteSwatchSchema)
@@ -22518,8 +22564,8 @@ var MaskPolygonShapeSchema = zod.z.object({
22518
22564
  /** Boolean cell grid — row-major, length === gridWidth*gridHeight. */
22519
22565
  var MaskGridShapeSchema = zod.z.object({
22520
22566
  kind: zod.z.literal("grid"),
22521
- gridWidth: zod.z.number(),
22522
- gridHeight: zod.z.number(),
22567
+ gridWidth: zod.z.number().meta(readingMeta("none")),
22568
+ gridHeight: zod.z.number().meta(readingMeta("none")),
22523
22569
  cells: zod.z.array(zod.z.boolean())
22524
22570
  });
22525
22571
  /** Directed line / tripwire — an ordered list of normalized points (≥2). */
@@ -26622,6 +26668,7 @@ function createDeviceProxy(api, binding, opts) {
26622
26668
  const featureProbeInterface = { getStatus: (input) => dispatch("feature-probe", "featureProbe", "getStatus", "query", input) };
26623
26669
  const floodInterface = { getStatus: (input) => dispatch("flood", "flood", "getStatus", "query", input) };
26624
26670
  const gasInterface = { getStatus: (input) => dispatch("gas", "gas", "getStatus", "query", input) };
26671
+ const groupStatusInterface = { getStatus: (input) => dispatch("group-status", "groupStatus", "getStatus", "query", input) };
26625
26672
  const heatingValveInterface = { getStatus: (input) => dispatch("heating-valve", "heatingValve", "getStatus", "query", input) };
26626
26673
  const humidifierInterface = {
26627
26674
  setOn: (input) => dispatch("humidifier", "humidifier", "setOn", "mutation", input),
@@ -27176,6 +27223,7 @@ function createDeviceProxy(api, binding, opts) {
27176
27223
  featureProbe: createSliceHandle(stateSource, binding.deviceId, "feature-probe"),
27177
27224
  flood: createSliceHandle(stateSource, binding.deviceId, "flood"),
27178
27225
  gas: createSliceHandle(stateSource, binding.deviceId, "gas"),
27226
+ groupStatus: createSliceHandle(stateSource, binding.deviceId, "group-status"),
27179
27227
  heatingValve: createSliceHandle(stateSource, binding.deviceId, "heating-valve"),
27180
27228
  humidifier: createSliceHandle(stateSource, binding.deviceId, "humidifier"),
27181
27229
  humiditySensor: createSliceHandle(stateSource, binding.deviceId, "humidity-sensor"),
@@ -27259,6 +27307,7 @@ function createDeviceProxy(api, binding, opts) {
27259
27307
  ...bound("feature-probe") ? { featureProbe: featureProbeInterface } : {},
27260
27308
  ...bound("flood") ? { flood: floodInterface } : {},
27261
27309
  ...bound("gas") ? { gas: gasInterface } : {},
27310
+ ...bound("group-status") ? { groupStatus: groupStatusInterface } : {},
27262
27311
  ...bound("heating-valve") ? { heatingValve: heatingValveInterface } : {},
27263
27312
  ...bound("humidifier") ? { humidifier: humidifierInterface } : {},
27264
27313
  ...bound("humidity-sensor") ? { humiditySensor: humiditySensorInterface } : {},
@@ -32225,6 +32274,7 @@ exports.alarmPatchLanded = alarmPatchLanded;
32225
32274
  exports.buildDeviceEnrollmentLink = buildDeviceEnrollmentLink;
32226
32275
  exports.buildDeviceSignatureMessage = buildDeviceSignatureMessage;
32227
32276
  exports.buildSubjectPath = buildSubjectPath;
32277
+ exports.bundledCamstack = bundledCamstack;
32228
32278
  exports.canonicalIconKey = canonicalIconKey;
32229
32279
  exports.classifyRetrainReview = classifyRetrainReview;
32230
32280
  exports.conditionVisibleForKind = conditionVisibleForKind;
@@ -32245,6 +32295,8 @@ exports.knownValues = knownValues;
32245
32295
  exports.locationIconKey = locationIconKey;
32246
32296
  exports.nodePickerItems = nodePickerItems;
32247
32297
  exports.packagePickerItems = packagePickerItems;
32298
+ exports.paintHex = paintHex;
32299
+ exports.paletteResultSchema = paletteResultSchema;
32248
32300
  exports.parseDeviceEnrollmentLink = parseDeviceEnrollmentLink;
32249
32301
  exports.parseRetrainRevisionConflict = parseRetrainRevisionConflict;
32250
32302
  exports.pickerForCondition = pickerForCondition;
package/dist/client.mjs CHANGED
@@ -305,6 +305,52 @@ function parseRetrainRevisionConflict(message) {
305
305
  expectedRevision: Number(match[2])
306
306
  };
307
307
  }
308
+ var READING_QUANTITIES = [
309
+ "temperature",
310
+ "pressure",
311
+ "speed",
312
+ "precipitation",
313
+ "precipitation-rate",
314
+ "length",
315
+ "area",
316
+ "illuminance",
317
+ "irradiance",
318
+ "power",
319
+ "energy",
320
+ "voltage",
321
+ "current",
322
+ "apparent-power",
323
+ "humidity",
324
+ "percentage",
325
+ "concentration-volume",
326
+ "concentration-mass",
327
+ "concentration-ppb",
328
+ "volume",
329
+ "duration",
330
+ "duration-ms",
331
+ "information",
332
+ "sound-level",
333
+ "signal-level",
334
+ "colour-temperature",
335
+ "angle",
336
+ "bitrate",
337
+ "rate",
338
+ "mass",
339
+ "index",
340
+ "ratio",
341
+ "count",
342
+ "none",
343
+ "device"
344
+ ];
345
+ z.enum(READING_QUANTITIES);
346
+ new Set(READING_QUANTITIES);
347
+ function readingMeta(quantity, extras) {
348
+ return {
349
+ quantity,
350
+ ...extras?.precision !== void 0 ? { precision: extras.precision } : {},
351
+ ...extras?.label !== void 0 ? { label: extras.label } : {}
352
+ };
353
+ }
308
354
  //#endregion
309
355
  //#region src/capabilities/schemas/streaming-shared.ts
310
356
  /** Shared Zod schemas used across streaming capabilities. */
@@ -324,8 +370,8 @@ var CamStreamKindSchema = z.enum([
324
370
  "derived"
325
371
  ]);
326
372
  var CamStreamResolutionSchema = z.object({
327
- width: z.number().int().positive(),
328
- height: z.number().int().positive()
373
+ width: z.number().int().positive().meta(readingMeta("none")),
374
+ height: z.number().int().positive().meta(readingMeta("none"))
329
375
  });
330
376
  z.object({
331
377
  /** Stable, provider-assigned id unique within the (deviceId) scope. */
@@ -22170,7 +22216,7 @@ var paletteUnknownSchema = z.object({
22170
22216
  status: z.literal("unknown"),
22171
22217
  reason: z.string()
22172
22218
  });
22173
- z.discriminatedUnion("status", [paletteReadySchema, paletteUnknownSchema]);
22219
+ var paletteResultSchema = z.discriminatedUnion("status", [paletteReadySchema, paletteUnknownSchema]);
22174
22220
  z.union([z.object({ presetId: z.string() }), z.object({
22175
22221
  presetId: z.string(),
22176
22222
  overrides: z.record(z.string(), paletteSwatchSchema)
@@ -22517,8 +22563,8 @@ var MaskPolygonShapeSchema = z.object({
22517
22563
  /** Boolean cell grid — row-major, length === gridWidth*gridHeight. */
22518
22564
  var MaskGridShapeSchema = z.object({
22519
22565
  kind: z.literal("grid"),
22520
- gridWidth: z.number(),
22521
- gridHeight: z.number(),
22566
+ gridWidth: z.number().meta(readingMeta("none")),
22567
+ gridHeight: z.number().meta(readingMeta("none")),
22522
22568
  cells: z.array(z.boolean())
22523
22569
  });
22524
22570
  /** Directed line / tripwire — an ordered list of normalized points (≥2). */
@@ -26621,6 +26667,7 @@ function createDeviceProxy(api, binding, opts) {
26621
26667
  const featureProbeInterface = { getStatus: (input) => dispatch("feature-probe", "featureProbe", "getStatus", "query", input) };
26622
26668
  const floodInterface = { getStatus: (input) => dispatch("flood", "flood", "getStatus", "query", input) };
26623
26669
  const gasInterface = { getStatus: (input) => dispatch("gas", "gas", "getStatus", "query", input) };
26670
+ const groupStatusInterface = { getStatus: (input) => dispatch("group-status", "groupStatus", "getStatus", "query", input) };
26624
26671
  const heatingValveInterface = { getStatus: (input) => dispatch("heating-valve", "heatingValve", "getStatus", "query", input) };
26625
26672
  const humidifierInterface = {
26626
26673
  setOn: (input) => dispatch("humidifier", "humidifier", "setOn", "mutation", input),
@@ -27175,6 +27222,7 @@ function createDeviceProxy(api, binding, opts) {
27175
27222
  featureProbe: createSliceHandle(stateSource, binding.deviceId, "feature-probe"),
27176
27223
  flood: createSliceHandle(stateSource, binding.deviceId, "flood"),
27177
27224
  gas: createSliceHandle(stateSource, binding.deviceId, "gas"),
27225
+ groupStatus: createSliceHandle(stateSource, binding.deviceId, "group-status"),
27178
27226
  heatingValve: createSliceHandle(stateSource, binding.deviceId, "heating-valve"),
27179
27227
  humidifier: createSliceHandle(stateSource, binding.deviceId, "humidifier"),
27180
27228
  humiditySensor: createSliceHandle(stateSource, binding.deviceId, "humidity-sensor"),
@@ -27258,6 +27306,7 @@ function createDeviceProxy(api, binding, opts) {
27258
27306
  ...bound("feature-probe") ? { featureProbe: featureProbeInterface } : {},
27259
27307
  ...bound("flood") ? { flood: floodInterface } : {},
27260
27308
  ...bound("gas") ? { gas: gasInterface } : {},
27309
+ ...bound("group-status") ? { groupStatus: groupStatusInterface } : {},
27261
27310
  ...bound("heating-valve") ? { heatingValve: heatingValveInterface } : {},
27262
27311
  ...bound("humidifier") ? { humidifier: humidifierInterface } : {},
27263
27312
  ...bound("humidity-sensor") ? { humiditySensor: humiditySensorInterface } : {},
@@ -32159,4 +32208,4 @@ var TimelapseRuleSchema = TimelapseRuleInputSchema.extend({
32159
32208
  updatedAt: z.number()
32160
32209
  });
32161
32210
  //#endregion
32162
- export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, AlarmArmModeSchema, CLIP_BROKER_PACED_RATES, COCO_TO_MACRO, CamProfileSchema, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFINITIVE_DEVICE_REFUSALS, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_CERT_SIGNATURE, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_SIGNATURE_MESSAGE_VERSION, DeviceType, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_TAXONOMY, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IconKeySchema, LOCATION_ICON_FALLBACK, MACRO_LABELS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NcAlarmConfigSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcHistoryEntrySchema, NcRuleLastRunsSchema, NodeDirectorySchema, RECORDING_EXPORT_MAX_READ_BYTES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, SystemMirror, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleSchema, YAMNET_TO_MACRO, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPatchLanded, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildSubjectPath, canonicalIconKey, classifyRetrainReview, conditionVisibleForKind, createSystemProxy, deviceRefusalFromMessage, droppedConditionsForKind, expandSystemEventClasses, iconCategoryLabel, iconEntry, iconsInCategory, isDefinitiveDeviceRefusal, isDrawableSubjectPath, isHeldBackTemplateVar, isIconKey, isSystemRuleKind, kindsForDiscriminator, knownValues, locationIconKey, nodePickerItems, packagePickerItems, parseDeviceEnrollmentLink, parseRetrainRevisionConflict, pickerForCondition, pickerForRuleClasses, projectSubjectPath, resolveIconKey, resolveModeDelays, retrainBoxIou, retrainRevisionConflictMessage, ruleDeviceCompatCapNames, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleSeedForSection, searchIcons, sensorTransitionNeverFires, sensorTransitionOffered, stateLabel, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeReview, systemEventClassKinds, systemEventClassesFor, systemEventDeliveryProblems, systemEventFilterAppliesToAnyKind, systemEventKindsOfFamily, systemFamilyOfKind, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, withSystemEventClasses };
32211
+ export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, AlarmArmModeSchema, CLIP_BROKER_PACED_RATES, COCO_TO_MACRO, CamProfileSchema, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFINITIVE_DEVICE_REFUSALS, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_CERT_SIGNATURE, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_SIGNATURE_MESSAGE_VERSION, DeviceType, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_TAXONOMY, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IconKeySchema, LOCATION_ICON_FALLBACK, MACRO_LABELS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NcAlarmConfigSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcHistoryEntrySchema, NcRuleLastRunsSchema, NodeDirectorySchema, RECORDING_EXPORT_MAX_READ_BYTES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, SystemMirror, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleSchema, YAMNET_TO_MACRO, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPatchLanded, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildSubjectPath, bundledCamstack, canonicalIconKey, classifyRetrainReview, conditionVisibleForKind, createSystemProxy, deviceRefusalFromMessage, droppedConditionsForKind, expandSystemEventClasses, iconCategoryLabel, iconEntry, iconsInCategory, isDefinitiveDeviceRefusal, isDrawableSubjectPath, isHeldBackTemplateVar, isIconKey, isSystemRuleKind, kindsForDiscriminator, knownValues, locationIconKey, nodePickerItems, packagePickerItems, paintHex, paletteResultSchema, parseDeviceEnrollmentLink, parseRetrainRevisionConflict, pickerForCondition, pickerForRuleClasses, projectSubjectPath, resolveIconKey, resolveModeDelays, retrainBoxIou, retrainRevisionConflictMessage, ruleDeviceCompatCapNames, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleSeedForSection, searchIcons, sensorTransitionNeverFires, sensorTransitionOffered, stateLabel, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeReview, systemEventClassKinds, systemEventClassesFor, systemEventDeliveryProblems, systemEventFilterAppliesToAnyKind, systemEventKindsOfFamily, systemFamilyOfKind, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, withSystemEventClasses };