@camstack/types 1.1.52 → 1.1.53

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.
@@ -106,6 +106,7 @@ export declare const CustomModelDescriptorSchema: z.ZodObject<{
106
106
  imagenet: "imagenet";
107
107
  none: "none";
108
108
  }>>;
109
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
109
110
  preprocessMode: z.ZodOptional<z.ZodEnum<{
110
111
  letterbox: "letterbox";
111
112
  resize: "resize";
@@ -234,6 +235,7 @@ export declare const customModelRegistryCapability: {
234
235
  imagenet: "imagenet";
235
236
  none: "none";
236
237
  }>>;
238
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
237
239
  preprocessMode: z.ZodOptional<z.ZodEnum<{
238
240
  letterbox: "letterbox";
239
241
  resize: "resize";
@@ -196,6 +196,7 @@ export declare const modelConvertCapability: {
196
196
  imagenet: "imagenet";
197
197
  none: "none";
198
198
  }>>;
199
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
199
200
  preprocessMode: z.ZodOptional<z.ZodEnum<{
200
201
  letterbox: "letterbox";
201
202
  resize: "resize";
@@ -108,6 +108,7 @@ export declare const ModelDistributeInputSchema: z.ZodObject<{
108
108
  imagenet: "imagenet";
109
109
  none: "none";
110
110
  }>>;
111
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
111
112
  preprocessMode: z.ZodOptional<z.ZodEnum<{
112
113
  letterbox: "letterbox";
113
114
  resize: "resize";
@@ -250,6 +251,7 @@ export declare const modelDistributorCapability: {
250
251
  imagenet: "imagenet";
251
252
  none: "none";
252
253
  }>>;
254
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
253
255
  preprocessMode: z.ZodOptional<z.ZodEnum<{
254
256
  letterbox: "letterbox";
255
257
  resize: "resize";
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Device-control RESOLUTION LOGIC — the single, presentation-free source of
3
+ * truth for "given a device's `type` (+ its cap `features`), which control
4
+ * should render?".
5
+ *
6
+ * This module is deliberately framework-free: NO react / react-native / lucide
7
+ * imports, no JSX, no platform widgets. It encodes only the DECISION; each
8
+ * client (admin-ui's `@camstack/ui-library` web registry, the RN viewer's
9
+ * accessory registry) maps the returned control-KIND onto its own
10
+ * platform-specific components. That's the one duplication we remove — the
11
+ * presentational components stay platform-specific by necessity.
12
+ *
13
+ * Two decision surfaces live here, at two granularities:
14
+ *
15
+ * 1. `resolveDeviceControlKind(type)` — the BASE type → control-kind decision
16
+ * used by the admin-ui device list / device-detail hero. Exhaustive over
17
+ * every `DeviceType`; a light is a single `'light'` kind (dim-vs-plain is
18
+ * refined inside the light component).
19
+ *
20
+ * 2. `pickAccessoryControl({ type, features })` — the FINER accessory-row
21
+ * decision used by the viewer's per-camera accessory list. It refines a
22
+ * `light` into `'brightness'` vs `'switch'` and a `sensor`/`presence` into
23
+ * a specific sensor cap, because an accessory row renders ONE compact
24
+ * control chosen by priority.
25
+ *
26
+ * The two agree on every overlapping type EXCEPT `light` (see the notes on
27
+ * `pickAccessoryControl`): the base decision keeps a dedicated `'light'`
28
+ * control; the accessory decision collapses a non-dimmable light onto the
29
+ * generic `'switch'` control. That is a deliberate granularity difference, not
30
+ * a contradiction — the base kind is what the admin-ui renders, the accessory
31
+ * pick is what a compact camera-accessory row renders.
32
+ */
33
+ import { DeviceType } from './device-type.js';
34
+ /**
35
+ * The abstract control-kind a `DeviceType` resolves to. Each client binds
36
+ * these kinds to its own components (web: `CONTROL_KIND_COMPONENTS`). A single
37
+ * kind can back several device types (`'switch'` ← Switch + Siren, `'sensor'`
38
+ * ← Sensor + Presence, `'dummy'` ← every placeholder/non-controllable type).
39
+ */
40
+ export type DeviceControlKind = 'cover' | 'valve' | 'humidifier' | 'water-heater' | 'switch' | 'light' | 'fan' | 'sensor' | 'thermostat' | 'climate' | 'button' | 'update' | 'lock' | 'media-player' | 'alarm' | 'control' | 'weather' | 'vacuum' | 'lawn-mower' | 'image' | 'pet-feeder' | 'dummy';
41
+ /**
42
+ * Exhaustive `DeviceType` → `DeviceControlKind` map. Omitting a new enum member
43
+ * fails the build here (the single place the type→kind decision is encoded).
44
+ * `'dummy'` marks types with no interactive control (Camera/Hub/Generic and the
45
+ * placeholder HA types whose inline control renders a dash).
46
+ */
47
+ export declare const DEVICE_TYPE_CONTROL_KIND: Record<DeviceType, DeviceControlKind>;
48
+ /**
49
+ * Runtime-string-safe base resolver: a device row's `type` crosses the wire as
50
+ * a plain string, so an unrecognised value resolves to `null` instead of
51
+ * indexing the map with an unverified key. `DEVICE_TYPE_VALUES.has(type)`
52
+ * narrows the string to a `DeviceType` before indexing (documented enum-string
53
+ * boundary).
54
+ */
55
+ export declare function resolveDeviceControlKind(type: string): DeviceControlKind | null;
56
+ /** Identifier of the control kind an accessory row should render. `'none'` = no
57
+ * control. A subset of the surfaces the base decision covers, PLUS
58
+ * `'brightness'` (a dimmable light refined at the decision layer). */
59
+ export type AccessoryControlKind = 'cover' | 'lock' | 'alarm' | 'valve' | 'brightness' | 'switch' | 'sensor' | 'none';
60
+ /** Kebab feature flag advertised by an accessory that auto-activates when its
61
+ * parent camera detects motion. The cap's kebab name is `motion-trigger` (see
62
+ * `motion-trigger.cap.ts`). It is INDEPENDENT of the row's primary control: a
63
+ * siren/light/switch can expose BOTH a `switch` on/off AND a `motion-trigger`
64
+ * "activate on motion" toggle. */
65
+ export declare const MOTION_TRIGGER_FEATURE = "motion-trigger";
66
+ /** True when an accessory advertises the `motion-trigger` cap — drives the
67
+ * inline "On motion" toggle rendered alongside its primary control. Pure +
68
+ * testable. */
69
+ export declare function hasMotionTrigger(features: readonly string[]): boolean;
70
+ /** Kebab-case sensor cap names → the read-only sensor-value control. The
71
+ * accessory pick scans these (in order) to choose which sensor cap to read. */
72
+ export declare const SENSOR_FEATURES: readonly string[];
73
+ /** The chosen control plus the sensor feature (when `kind === 'sensor'`) so the
74
+ * renderer knows which sensor cap to read. */
75
+ export interface AccessoryControlPick {
76
+ readonly kind: AccessoryControlKind;
77
+ /** The kebab sensor cap name to read, only set when `kind === 'sensor'`. */
78
+ readonly sensorFeature?: string;
79
+ }
80
+ /** The accessory fields the pick needs: its canonical `DeviceType` (as the
81
+ * wire string) plus the secondary cap `features` (used only to refine a light
82
+ * or sensor). */
83
+ export interface AccessoryControlInput {
84
+ readonly type: string;
85
+ readonly features: readonly string[];
86
+ }
87
+ /**
88
+ * Pick the primary control for an accessory. The control is chosen by the
89
+ * device's canonical `type` (the `DeviceType` enum value — the same key
90
+ * `resolveDeviceControlKind` maps on), NOT by the `features` list (which holds
91
+ * secondary flags). For a `light` we consult `features` to choose dim vs plain
92
+ * on/off, and for a `sensor`/`presence` to pick which sensor value to read.
93
+ * Pure: same input → same output. Returns `{ kind: 'none' }` for types with no
94
+ * accessory-row control.
95
+ */
96
+ export declare function pickAccessoryControl(device: AccessoryControlInput): AccessoryControlPick;
97
+ /** A sensor cap → its `(capKey, field, fallbackUnit)` mapping for the read-only
98
+ * value row. The kebab cap name is the lookup key. The camelCase `capKey` is
99
+ * the tRPC client router key; `field` is the numeric field on that cap's
100
+ * status; `fallbackUnit` is used when the status omits a `unit`. */
101
+ export interface SensorMapping {
102
+ readonly capKey: string;
103
+ readonly field: string;
104
+ readonly fallbackUnit?: string;
105
+ }
106
+ /** Kebab sensor cap → its numeric-value mapping. `enum-sensor` is handled
107
+ * separately by callers (it reads a raw string `value`, not a numeric field),
108
+ * so it intentionally has no entry here. */
109
+ export declare const SENSOR_MAP: Readonly<Record<string, SensorMapping>>;
110
+ /** True when a value is a navigable node: a plain object OR a tRPC v11 client
111
+ * proxy node (a callable `Proxy(noop)` → `typeof === 'function'`, NOT an
112
+ * object). A `typeof === 'object'`-only check REJECTS every real client proxy,
113
+ * so `resolveMutate` would return null and EVERY control becomes a silent
114
+ * no-op. Framework-free: operates on the SDK proxy shape only. */
115
+ export declare function isNode(value: unknown): value is Record<string, unknown>;
116
+ /** Resolve `router.<method>.mutate` to a callable, or `null`. Walks the tRPC
117
+ * client proxy defensively (each hop guarded by `isNode`). */
118
+ export declare function resolveMutate(router: unknown, method: string): ((input: Record<string, unknown>) => Promise<unknown>) | null;
package/dist/index.d.ts CHANGED
@@ -160,6 +160,8 @@ export { getByPath, setByPath } from './device/path-util.js';
160
160
  export { applyTransform } from './device/device-link-transform.js';
161
161
  export { enumerateItemArrayFields, enumerateSchemaFields } from './device/schema-fields.js';
162
162
  export type { WireableField } from './device/schema-fields.js';
163
+ export { DEVICE_TYPE_CONTROL_KIND, resolveDeviceControlKind, MOTION_TRIGGER_FEATURE, hasMotionTrigger, SENSOR_FEATURES, SENSOR_MAP, pickAccessoryControl, isNode, resolveMutate, } from './device/device-control-resolution.js';
164
+ export type { DeviceControlKind, AccessoryControlKind, AccessoryControlPick, AccessoryControlInput, SensorMapping, } from './device/device-control-resolution.js';
163
165
  export { EventCategory } from './enums/event-category.js';
164
166
  export type { AppRouter, AddonApi } from './generated/addon-api.js';
165
167
  export { createDeviceProxy } from './generated/device-proxy.js';
package/dist/index.js CHANGED
@@ -174,6 +174,17 @@ var ModelCatalogEntrySchema = zod.z.object({
174
174
  "imagenet",
175
175
  "none"
176
176
  ]).optional(),
177
+ /**
178
+ * The model already applies softmax IN-GRAPH — its raw output is a
179
+ * probability distribution, not logits. When set, the `softmax`
180
+ * postprocessor must NOT re-apply softmax: re-softmaxing an already-normalised
181
+ * probability vector collapses it toward uniform (top-1 score craters far
182
+ * below its true value, making every confidence gate meaningless). Absent ⇒
183
+ * the output is raw logits and the postprocessor applies softmax (the normal
184
+ * case). Set on the Google AIY Birds `bird-classifier` (softmax baked into the
185
+ * TF graph). Threaded to the Python pool via `PoolModelConfig.outputProbabilities`.
186
+ */
187
+ outputProbabilities: zod.z.boolean().optional(),
177
188
  preprocessMode: zod.z.enum(["letterbox", "resize"]).optional(),
178
189
  /**
179
190
  * Per-MODEL postprocessor override. Absent ⇒ the step's own
@@ -12788,6 +12799,182 @@ function enumerateItemArrayFields(itemArray) {
12788
12799
  }));
12789
12800
  }
12790
12801
  //#endregion
12802
+ //#region src/device/device-control-resolution.ts
12803
+ /**
12804
+ * Device-control RESOLUTION LOGIC — the single, presentation-free source of
12805
+ * truth for "given a device's `type` (+ its cap `features`), which control
12806
+ * should render?".
12807
+ *
12808
+ * This module is deliberately framework-free: NO react / react-native / lucide
12809
+ * imports, no JSX, no platform widgets. It encodes only the DECISION; each
12810
+ * client (admin-ui's `@camstack/ui-library` web registry, the RN viewer's
12811
+ * accessory registry) maps the returned control-KIND onto its own
12812
+ * platform-specific components. That's the one duplication we remove — the
12813
+ * presentational components stay platform-specific by necessity.
12814
+ *
12815
+ * Two decision surfaces live here, at two granularities:
12816
+ *
12817
+ * 1. `resolveDeviceControlKind(type)` — the BASE type → control-kind decision
12818
+ * used by the admin-ui device list / device-detail hero. Exhaustive over
12819
+ * every `DeviceType`; a light is a single `'light'` kind (dim-vs-plain is
12820
+ * refined inside the light component).
12821
+ *
12822
+ * 2. `pickAccessoryControl({ type, features })` — the FINER accessory-row
12823
+ * decision used by the viewer's per-camera accessory list. It refines a
12824
+ * `light` into `'brightness'` vs `'switch'` and a `sensor`/`presence` into
12825
+ * a specific sensor cap, because an accessory row renders ONE compact
12826
+ * control chosen by priority.
12827
+ *
12828
+ * The two agree on every overlapping type EXCEPT `light` (see the notes on
12829
+ * `pickAccessoryControl`): the base decision keeps a dedicated `'light'`
12830
+ * control; the accessory decision collapses a non-dimmable light onto the
12831
+ * generic `'switch'` control. That is a deliberate granularity difference, not
12832
+ * a contradiction — the base kind is what the admin-ui renders, the accessory
12833
+ * pick is what a compact camera-accessory row renders.
12834
+ */
12835
+ /**
12836
+ * Exhaustive `DeviceType` → `DeviceControlKind` map. Omitting a new enum member
12837
+ * fails the build here (the single place the type→kind decision is encoded).
12838
+ * `'dummy'` marks types with no interactive control (Camera/Hub/Generic and the
12839
+ * placeholder HA types whose inline control renders a dash).
12840
+ */
12841
+ var DEVICE_TYPE_CONTROL_KIND = {
12842
+ [require_sleep.DeviceType.Cover]: "cover",
12843
+ [require_sleep.DeviceType.Valve]: "valve",
12844
+ [require_sleep.DeviceType.Humidifier]: "humidifier",
12845
+ [require_sleep.DeviceType.WaterHeater]: "water-heater",
12846
+ [require_sleep.DeviceType.Camera]: "dummy",
12847
+ [require_sleep.DeviceType.Hub]: "dummy",
12848
+ [require_sleep.DeviceType.Switch]: "switch",
12849
+ [require_sleep.DeviceType.Siren]: "switch",
12850
+ [require_sleep.DeviceType.Light]: "light",
12851
+ [require_sleep.DeviceType.Fan]: "fan",
12852
+ [require_sleep.DeviceType.Sensor]: "sensor",
12853
+ [require_sleep.DeviceType.Thermostat]: "thermostat",
12854
+ [require_sleep.DeviceType.Climate]: "climate",
12855
+ [require_sleep.DeviceType.Button]: "button",
12856
+ [require_sleep.DeviceType.EventEmitter]: "dummy",
12857
+ [require_sleep.DeviceType.Update]: "update",
12858
+ [require_sleep.DeviceType.Generic]: "dummy",
12859
+ [require_sleep.DeviceType.Notifier]: "dummy",
12860
+ [require_sleep.DeviceType.Script]: "dummy",
12861
+ [require_sleep.DeviceType.Automation]: "dummy",
12862
+ [require_sleep.DeviceType.Lock]: "lock",
12863
+ [require_sleep.DeviceType.MediaPlayer]: "media-player",
12864
+ [require_sleep.DeviceType.AlarmPanel]: "alarm",
12865
+ [require_sleep.DeviceType.Control]: "control",
12866
+ [require_sleep.DeviceType.Presence]: "sensor",
12867
+ [require_sleep.DeviceType.Weather]: "weather",
12868
+ [require_sleep.DeviceType.Vacuum]: "vacuum",
12869
+ [require_sleep.DeviceType.LawnMower]: "lawn-mower",
12870
+ [require_sleep.DeviceType.Container]: "dummy",
12871
+ [require_sleep.DeviceType.Image]: "image",
12872
+ [require_sleep.DeviceType.PetFeeder]: "pet-feeder"
12873
+ };
12874
+ var DEVICE_TYPE_VALUES = new Set(Object.values(require_sleep.DeviceType));
12875
+ /**
12876
+ * Runtime-string-safe base resolver: a device row's `type` crosses the wire as
12877
+ * a plain string, so an unrecognised value resolves to `null` instead of
12878
+ * indexing the map with an unverified key. `DEVICE_TYPE_VALUES.has(type)`
12879
+ * narrows the string to a `DeviceType` before indexing (documented enum-string
12880
+ * boundary).
12881
+ */
12882
+ function resolveDeviceControlKind(type) {
12883
+ return DEVICE_TYPE_VALUES.has(type) ? DEVICE_TYPE_CONTROL_KIND[type] : null;
12884
+ }
12885
+ /** Kebab feature flag advertised by an accessory that auto-activates when its
12886
+ * parent camera detects motion. The cap's kebab name is `motion-trigger` (see
12887
+ * `motion-trigger.cap.ts`). It is INDEPENDENT of the row's primary control: a
12888
+ * siren/light/switch can expose BOTH a `switch` on/off AND a `motion-trigger`
12889
+ * "activate on motion" toggle. */
12890
+ var MOTION_TRIGGER_FEATURE = "motion-trigger";
12891
+ /** True when an accessory advertises the `motion-trigger` cap — drives the
12892
+ * inline "On motion" toggle rendered alongside its primary control. Pure +
12893
+ * testable. */
12894
+ function hasMotionTrigger(features) {
12895
+ return features.includes(MOTION_TRIGGER_FEATURE);
12896
+ }
12897
+ /** Kebab-case sensor cap names → the read-only sensor-value control. The
12898
+ * accessory pick scans these (in order) to choose which sensor cap to read. */
12899
+ var SENSOR_FEATURES = [
12900
+ "temperature-sensor",
12901
+ "humidity-sensor",
12902
+ "ambient-light-sensor",
12903
+ "numeric-sensor",
12904
+ "enum-sensor"
12905
+ ];
12906
+ /**
12907
+ * Pick the primary control for an accessory. The control is chosen by the
12908
+ * device's canonical `type` (the `DeviceType` enum value — the same key
12909
+ * `resolveDeviceControlKind` maps on), NOT by the `features` list (which holds
12910
+ * secondary flags). For a `light` we consult `features` to choose dim vs plain
12911
+ * on/off, and for a `sensor`/`presence` to pick which sensor value to read.
12912
+ * Pure: same input → same output. Returns `{ kind: 'none' }` for types with no
12913
+ * accessory-row control.
12914
+ */
12915
+ function pickAccessoryControl(device) {
12916
+ const set = new Set(device.features);
12917
+ switch (device.type) {
12918
+ case require_sleep.DeviceType.Cover: return { kind: "cover" };
12919
+ case require_sleep.DeviceType.Valve: return { kind: "valve" };
12920
+ case require_sleep.DeviceType.Lock: return { kind: "lock" };
12921
+ case require_sleep.DeviceType.AlarmPanel: return { kind: "alarm" };
12922
+ case require_sleep.DeviceType.Light: return set.has("brightness") ? { kind: "brightness" } : { kind: "switch" };
12923
+ case require_sleep.DeviceType.Switch:
12924
+ case require_sleep.DeviceType.Siren: return { kind: "switch" };
12925
+ case require_sleep.DeviceType.Sensor:
12926
+ case require_sleep.DeviceType.Presence: {
12927
+ const sensor = SENSOR_FEATURES.find((f) => set.has(f));
12928
+ return sensor ? {
12929
+ kind: "sensor",
12930
+ sensorFeature: sensor
12931
+ } : { kind: "none" };
12932
+ }
12933
+ default: return { kind: "none" };
12934
+ }
12935
+ }
12936
+ /** Kebab sensor cap → its numeric-value mapping. `enum-sensor` is handled
12937
+ * separately by callers (it reads a raw string `value`, not a numeric field),
12938
+ * so it intentionally has no entry here. */
12939
+ var SENSOR_MAP = {
12940
+ "temperature-sensor": {
12941
+ capKey: "temperatureSensor",
12942
+ field: "celsius",
12943
+ fallbackUnit: "°C"
12944
+ },
12945
+ "humidity-sensor": {
12946
+ capKey: "humiditySensor",
12947
+ field: "percent",
12948
+ fallbackUnit: "%"
12949
+ },
12950
+ "ambient-light-sensor": {
12951
+ capKey: "ambientLightSensor",
12952
+ field: "lux",
12953
+ fallbackUnit: "lx"
12954
+ },
12955
+ "numeric-sensor": {
12956
+ capKey: "numericSensor",
12957
+ field: "value"
12958
+ }
12959
+ };
12960
+ /** True when a value is a navigable node: a plain object OR a tRPC v11 client
12961
+ * proxy node (a callable `Proxy(noop)` → `typeof === 'function'`, NOT an
12962
+ * object). A `typeof === 'object'`-only check REJECTS every real client proxy,
12963
+ * so `resolveMutate` would return null and EVERY control becomes a silent
12964
+ * no-op. Framework-free: operates on the SDK proxy shape only. */
12965
+ function isNode(value) {
12966
+ return value !== null && (typeof value === "object" || typeof value === "function");
12967
+ }
12968
+ /** Resolve `router.<method>.mutate` to a callable, or `null`. Walks the tRPC
12969
+ * client proxy defensively (each hop guarded by `isNode`). */
12970
+ function resolveMutate(router, method) {
12971
+ if (!isNode(router)) return null;
12972
+ const proc = router[method];
12973
+ if (!isNode(proc)) return null;
12974
+ const mutate = proc.mutate;
12975
+ return typeof mutate === "function" ? mutate : null;
12976
+ }
12977
+ //#endregion
12791
12978
  //#region src/utils/zone-rule-eval.ts
12792
12979
  /**
12793
12980
  * Evaluate `rules` against `items`. Returns the items partitioned
@@ -31441,6 +31628,7 @@ exports.DEVICE_CAP_NAMES = DEVICE_CAP_NAMES;
31441
31628
  exports.DEVICE_PROFILES = DEVICE_PROFILES;
31442
31629
  exports.DEVICE_SETTINGS_CONTRIBUTION_METHODS = require_sleep.DEVICE_SETTINGS_CONTRIBUTION_METHODS;
31443
31630
  exports.DEVICE_STATUS_METHOD = require_sleep.DEVICE_STATUS_METHOD;
31631
+ exports.DEVICE_TYPE_CONTROL_KIND = DEVICE_TYPE_CONTROL_KIND;
31444
31632
  exports.DEVICE_TYPE_INFO = DEVICE_TYPE_INFO;
31445
31633
  exports.DayNightModeSchema = DayNightModeSchema;
31446
31634
  exports.DayNightOptionsSchema = DayNightOptionsSchema;
@@ -31583,6 +31771,7 @@ exports.MAX_EXPRESSION_EVAL_STEPS = MAX_EXPRESSION_EVAL_STEPS;
31583
31771
  exports.MAX_EXPRESSION_SOURCE_LENGTH = MAX_EXPRESSION_SOURCE_LENGTH;
31584
31772
  exports.METHOD_ACCESS_MAP = METHOD_ACCESS_MAP;
31585
31773
  exports.MODEL_FORMATS = MODEL_FORMATS;
31774
+ exports.MOTION_TRIGGER_FEATURE = MOTION_TRIGGER_FEATURE;
31586
31775
  exports.ManagedModelCatalogEntrySchema = ManagedModelCatalogEntrySchema;
31587
31776
  exports.ManagedModelRefSchema = ManagedModelRefSchema;
31588
31777
  exports.ManagedRuntimeConfigSchema = ManagedRuntimeConfigSchema;
@@ -31748,6 +31937,8 @@ exports.SCOPE_PRESETS = SCOPE_PRESETS;
31748
31937
  exports.SCRUB_THUMBNAIL_PRESETS = SCRUB_THUMBNAIL_PRESETS;
31749
31938
  exports.SCRUB_THUMBNAIL_PRESET_LABELS = SCRUB_THUMBNAIL_PRESET_LABELS;
31750
31939
  exports.SCRUB_THUMBNAIL_PRESET_ORDER = SCRUB_THUMBNAIL_PRESET_ORDER;
31940
+ exports.SENSOR_FEATURES = SENSOR_FEATURES;
31941
+ exports.SENSOR_MAP = SENSOR_MAP;
31751
31942
  exports.SOURCE_INFO_METADATA_KEY = SOURCE_INFO_METADATA_KEY;
31752
31943
  exports.STREAM_PROFILE_META = STREAM_PROFILE_META;
31753
31944
  exports.STREAM_QUALITY_LABELS = STREAM_QUALITY_LABELS;
@@ -31999,6 +32190,7 @@ exports.getAudioMacroClassIds = getAudioMacroClassIds;
31999
32190
  exports.getByPath = getByPath;
32000
32191
  exports.getCapsByProviderKind = getCapsByProviderKind;
32001
32192
  exports.getTaxonomyEntry = getTaxonomyEntry;
32193
+ exports.hasMotionTrigger = hasMotionTrigger;
32002
32194
  exports.hfModelUrl = hfModelUrl;
32003
32195
  exports.htmlToText = htmlToText;
32004
32196
  exports.humidifierCapability = humidifierCapability;
@@ -32014,6 +32206,7 @@ exports.isCollectionArrayMethod = isCollectionArrayMethod;
32014
32206
  exports.isDeployableToAgent = isDeployableToAgent;
32015
32207
  exports.isDeviceConfigCap = require_sleep.isDeviceConfigCap;
32016
32208
  exports.isEvent = require_sleep.isEvent;
32209
+ exports.isNode = isNode;
32017
32210
  exports.isObjectInput = isObjectInput;
32018
32211
  exports.isVoidInput = isVoidInput;
32019
32212
  exports.jobKindSchema = jobKindSchema;
@@ -32072,6 +32265,7 @@ exports.parseJsonUnknown = require_sleep.parseJsonUnknown;
32072
32265
  exports.parseProfileBrokerId = require_sleep.parseProfileBrokerId;
32073
32266
  exports.parseStreamParamsFormPatch = parseStreamParamsFormPatch;
32074
32267
  exports.petFeederCapability = petFeederCapability;
32268
+ exports.pickAccessoryControl = pickAccessoryControl;
32075
32269
  exports.pickPreferredRtspEntry = pickPreferredRtspEntry;
32076
32270
  exports.pipelineAnalyticsCapability = pipelineAnalyticsCapability;
32077
32271
  exports.pipelineExecutorCapability = pipelineExecutorCapability;
@@ -32101,10 +32295,12 @@ exports.resolveAddonPlacement = resolveAddonPlacement;
32101
32295
  exports.resolveAddonRuntime = resolveAddonRuntime;
32102
32296
  exports.resolveCapMount = require_sleep.resolveCapMount;
32103
32297
  exports.resolveDetectionRuntime = resolveDetectionRuntime;
32298
+ exports.resolveDeviceControlKind = resolveDeviceControlKind;
32104
32299
  exports.resolveDeviceProfile = resolveDeviceProfile;
32105
32300
  exports.resolveFormat = resolveFormat;
32106
32301
  exports.resolveHydratedFieldValue = require_sleep.resolveHydratedFieldValue;
32107
32302
  exports.resolveModelFormat = resolveModelFormat;
32303
+ exports.resolveMutate = resolveMutate;
32108
32304
  exports.resolveRunnerId = resolveRunnerId;
32109
32305
  exports.resolveScrubThumbnailGeometry = resolveScrubThumbnailGeometry;
32110
32306
  exports.resolveVariantModelId = resolveVariantModelId;
package/dist/index.mjs CHANGED
@@ -173,6 +173,17 @@ var ModelCatalogEntrySchema = z.object({
173
173
  "imagenet",
174
174
  "none"
175
175
  ]).optional(),
176
+ /**
177
+ * The model already applies softmax IN-GRAPH — its raw output is a
178
+ * probability distribution, not logits. When set, the `softmax`
179
+ * postprocessor must NOT re-apply softmax: re-softmaxing an already-normalised
180
+ * probability vector collapses it toward uniform (top-1 score craters far
181
+ * below its true value, making every confidence gate meaningless). Absent ⇒
182
+ * the output is raw logits and the postprocessor applies softmax (the normal
183
+ * case). Set on the Google AIY Birds `bird-classifier` (softmax baked into the
184
+ * TF graph). Threaded to the Python pool via `PoolModelConfig.outputProbabilities`.
185
+ */
186
+ outputProbabilities: z.boolean().optional(),
176
187
  preprocessMode: z.enum(["letterbox", "resize"]).optional(),
177
188
  /**
178
189
  * Per-MODEL postprocessor override. Absent ⇒ the step's own
@@ -12787,6 +12798,182 @@ function enumerateItemArrayFields(itemArray) {
12787
12798
  }));
12788
12799
  }
12789
12800
  //#endregion
12801
+ //#region src/device/device-control-resolution.ts
12802
+ /**
12803
+ * Device-control RESOLUTION LOGIC — the single, presentation-free source of
12804
+ * truth for "given a device's `type` (+ its cap `features`), which control
12805
+ * should render?".
12806
+ *
12807
+ * This module is deliberately framework-free: NO react / react-native / lucide
12808
+ * imports, no JSX, no platform widgets. It encodes only the DECISION; each
12809
+ * client (admin-ui's `@camstack/ui-library` web registry, the RN viewer's
12810
+ * accessory registry) maps the returned control-KIND onto its own
12811
+ * platform-specific components. That's the one duplication we remove — the
12812
+ * presentational components stay platform-specific by necessity.
12813
+ *
12814
+ * Two decision surfaces live here, at two granularities:
12815
+ *
12816
+ * 1. `resolveDeviceControlKind(type)` — the BASE type → control-kind decision
12817
+ * used by the admin-ui device list / device-detail hero. Exhaustive over
12818
+ * every `DeviceType`; a light is a single `'light'` kind (dim-vs-plain is
12819
+ * refined inside the light component).
12820
+ *
12821
+ * 2. `pickAccessoryControl({ type, features })` — the FINER accessory-row
12822
+ * decision used by the viewer's per-camera accessory list. It refines a
12823
+ * `light` into `'brightness'` vs `'switch'` and a `sensor`/`presence` into
12824
+ * a specific sensor cap, because an accessory row renders ONE compact
12825
+ * control chosen by priority.
12826
+ *
12827
+ * The two agree on every overlapping type EXCEPT `light` (see the notes on
12828
+ * `pickAccessoryControl`): the base decision keeps a dedicated `'light'`
12829
+ * control; the accessory decision collapses a non-dimmable light onto the
12830
+ * generic `'switch'` control. That is a deliberate granularity difference, not
12831
+ * a contradiction — the base kind is what the admin-ui renders, the accessory
12832
+ * pick is what a compact camera-accessory row renders.
12833
+ */
12834
+ /**
12835
+ * Exhaustive `DeviceType` → `DeviceControlKind` map. Omitting a new enum member
12836
+ * fails the build here (the single place the type→kind decision is encoded).
12837
+ * `'dummy'` marks types with no interactive control (Camera/Hub/Generic and the
12838
+ * placeholder HA types whose inline control renders a dash).
12839
+ */
12840
+ var DEVICE_TYPE_CONTROL_KIND = {
12841
+ [DeviceType.Cover]: "cover",
12842
+ [DeviceType.Valve]: "valve",
12843
+ [DeviceType.Humidifier]: "humidifier",
12844
+ [DeviceType.WaterHeater]: "water-heater",
12845
+ [DeviceType.Camera]: "dummy",
12846
+ [DeviceType.Hub]: "dummy",
12847
+ [DeviceType.Switch]: "switch",
12848
+ [DeviceType.Siren]: "switch",
12849
+ [DeviceType.Light]: "light",
12850
+ [DeviceType.Fan]: "fan",
12851
+ [DeviceType.Sensor]: "sensor",
12852
+ [DeviceType.Thermostat]: "thermostat",
12853
+ [DeviceType.Climate]: "climate",
12854
+ [DeviceType.Button]: "button",
12855
+ [DeviceType.EventEmitter]: "dummy",
12856
+ [DeviceType.Update]: "update",
12857
+ [DeviceType.Generic]: "dummy",
12858
+ [DeviceType.Notifier]: "dummy",
12859
+ [DeviceType.Script]: "dummy",
12860
+ [DeviceType.Automation]: "dummy",
12861
+ [DeviceType.Lock]: "lock",
12862
+ [DeviceType.MediaPlayer]: "media-player",
12863
+ [DeviceType.AlarmPanel]: "alarm",
12864
+ [DeviceType.Control]: "control",
12865
+ [DeviceType.Presence]: "sensor",
12866
+ [DeviceType.Weather]: "weather",
12867
+ [DeviceType.Vacuum]: "vacuum",
12868
+ [DeviceType.LawnMower]: "lawn-mower",
12869
+ [DeviceType.Container]: "dummy",
12870
+ [DeviceType.Image]: "image",
12871
+ [DeviceType.PetFeeder]: "pet-feeder"
12872
+ };
12873
+ var DEVICE_TYPE_VALUES = new Set(Object.values(DeviceType));
12874
+ /**
12875
+ * Runtime-string-safe base resolver: a device row's `type` crosses the wire as
12876
+ * a plain string, so an unrecognised value resolves to `null` instead of
12877
+ * indexing the map with an unverified key. `DEVICE_TYPE_VALUES.has(type)`
12878
+ * narrows the string to a `DeviceType` before indexing (documented enum-string
12879
+ * boundary).
12880
+ */
12881
+ function resolveDeviceControlKind(type) {
12882
+ return DEVICE_TYPE_VALUES.has(type) ? DEVICE_TYPE_CONTROL_KIND[type] : null;
12883
+ }
12884
+ /** Kebab feature flag advertised by an accessory that auto-activates when its
12885
+ * parent camera detects motion. The cap's kebab name is `motion-trigger` (see
12886
+ * `motion-trigger.cap.ts`). It is INDEPENDENT of the row's primary control: a
12887
+ * siren/light/switch can expose BOTH a `switch` on/off AND a `motion-trigger`
12888
+ * "activate on motion" toggle. */
12889
+ var MOTION_TRIGGER_FEATURE = "motion-trigger";
12890
+ /** True when an accessory advertises the `motion-trigger` cap — drives the
12891
+ * inline "On motion" toggle rendered alongside its primary control. Pure +
12892
+ * testable. */
12893
+ function hasMotionTrigger(features) {
12894
+ return features.includes(MOTION_TRIGGER_FEATURE);
12895
+ }
12896
+ /** Kebab-case sensor cap names → the read-only sensor-value control. The
12897
+ * accessory pick scans these (in order) to choose which sensor cap to read. */
12898
+ var SENSOR_FEATURES = [
12899
+ "temperature-sensor",
12900
+ "humidity-sensor",
12901
+ "ambient-light-sensor",
12902
+ "numeric-sensor",
12903
+ "enum-sensor"
12904
+ ];
12905
+ /**
12906
+ * Pick the primary control for an accessory. The control is chosen by the
12907
+ * device's canonical `type` (the `DeviceType` enum value — the same key
12908
+ * `resolveDeviceControlKind` maps on), NOT by the `features` list (which holds
12909
+ * secondary flags). For a `light` we consult `features` to choose dim vs plain
12910
+ * on/off, and for a `sensor`/`presence` to pick which sensor value to read.
12911
+ * Pure: same input → same output. Returns `{ kind: 'none' }` for types with no
12912
+ * accessory-row control.
12913
+ */
12914
+ function pickAccessoryControl(device) {
12915
+ const set = new Set(device.features);
12916
+ switch (device.type) {
12917
+ case DeviceType.Cover: return { kind: "cover" };
12918
+ case DeviceType.Valve: return { kind: "valve" };
12919
+ case DeviceType.Lock: return { kind: "lock" };
12920
+ case DeviceType.AlarmPanel: return { kind: "alarm" };
12921
+ case DeviceType.Light: return set.has("brightness") ? { kind: "brightness" } : { kind: "switch" };
12922
+ case DeviceType.Switch:
12923
+ case DeviceType.Siren: return { kind: "switch" };
12924
+ case DeviceType.Sensor:
12925
+ case DeviceType.Presence: {
12926
+ const sensor = SENSOR_FEATURES.find((f) => set.has(f));
12927
+ return sensor ? {
12928
+ kind: "sensor",
12929
+ sensorFeature: sensor
12930
+ } : { kind: "none" };
12931
+ }
12932
+ default: return { kind: "none" };
12933
+ }
12934
+ }
12935
+ /** Kebab sensor cap → its numeric-value mapping. `enum-sensor` is handled
12936
+ * separately by callers (it reads a raw string `value`, not a numeric field),
12937
+ * so it intentionally has no entry here. */
12938
+ var SENSOR_MAP = {
12939
+ "temperature-sensor": {
12940
+ capKey: "temperatureSensor",
12941
+ field: "celsius",
12942
+ fallbackUnit: "°C"
12943
+ },
12944
+ "humidity-sensor": {
12945
+ capKey: "humiditySensor",
12946
+ field: "percent",
12947
+ fallbackUnit: "%"
12948
+ },
12949
+ "ambient-light-sensor": {
12950
+ capKey: "ambientLightSensor",
12951
+ field: "lux",
12952
+ fallbackUnit: "lx"
12953
+ },
12954
+ "numeric-sensor": {
12955
+ capKey: "numericSensor",
12956
+ field: "value"
12957
+ }
12958
+ };
12959
+ /** True when a value is a navigable node: a plain object OR a tRPC v11 client
12960
+ * proxy node (a callable `Proxy(noop)` → `typeof === 'function'`, NOT an
12961
+ * object). A `typeof === 'object'`-only check REJECTS every real client proxy,
12962
+ * so `resolveMutate` would return null and EVERY control becomes a silent
12963
+ * no-op. Framework-free: operates on the SDK proxy shape only. */
12964
+ function isNode(value) {
12965
+ return value !== null && (typeof value === "object" || typeof value === "function");
12966
+ }
12967
+ /** Resolve `router.<method>.mutate` to a callable, or `null`. Walks the tRPC
12968
+ * client proxy defensively (each hop guarded by `isNode`). */
12969
+ function resolveMutate(router, method) {
12970
+ if (!isNode(router)) return null;
12971
+ const proc = router[method];
12972
+ if (!isNode(proc)) return null;
12973
+ const mutate = proc.mutate;
12974
+ return typeof mutate === "function" ? mutate : null;
12975
+ }
12976
+ //#endregion
12790
12977
  //#region src/utils/zone-rule-eval.ts
12791
12978
  /**
12792
12979
  * Evaluate `rules` against `items`. Returns the items partitioned
@@ -31269,4 +31456,4 @@ function scoreRuntimes(hw) {
31269
31456
  };
31270
31457
  }
31271
31458
  //#endregion
31272
- export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationHistoryEntrySchema, NotificationRuleSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advancedNotifierCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
31459
+ export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, NotificationHistoryEntrySchema, NotificationRuleSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advancedNotifierCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
@@ -214,6 +214,7 @@ export declare const ModelCatalogEntrySchema: z.ZodObject<{
214
214
  imagenet: "imagenet";
215
215
  none: "none";
216
216
  }>>;
217
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
217
218
  preprocessMode: z.ZodOptional<z.ZodEnum<{
218
219
  letterbox: "letterbox";
219
220
  resize: "resize";
@@ -434,6 +435,7 @@ export declare const ConvertResultSchema: z.ZodObject<{
434
435
  imagenet: "imagenet";
435
436
  none: "none";
436
437
  }>>;
438
+ outputProbabilities: z.ZodOptional<z.ZodBoolean>;
437
439
  preprocessMode: z.ZodOptional<z.ZodEnum<{
438
440
  letterbox: "letterbox";
439
441
  resize: "resize";
@@ -82,6 +82,16 @@ export interface StepDefinition {
82
82
  readonly defaultConfidence: number;
83
83
  /** Runtime label lookup (e.g., class name arrays for softmax, charset for CTC) */
84
84
  readonly labels?: readonly string[];
85
+ /**
86
+ * Classifier output classes that must NEVER be emitted — a hard reject list
87
+ * applied to the top-1 winner AND the alternates after classification.
88
+ * Used for a "background"/"none" catch-all class a classifier emits when the
89
+ * crop is not a member of any real class (e.g. the Google AIY bird model's
90
+ * index-964 `background`): without this the classifier would surface
91
+ * `background` as a species label on cats/people/foliage. Compared
92
+ * case-insensitively against the predicted class name. Absent ⇒ no rejection.
93
+ */
94
+ readonly rejectClasses?: readonly string[];
85
95
  /** Character set for CTC decode (index 0 = blank token) */
86
96
  readonly charset?: readonly string[];
87
97
  /** COCO-to-macro class mapping (e.g., 'car' → 'vehicle') */
@@ -144,6 +154,23 @@ export interface PoolModelConfig {
144
154
  readonly inputChannels?: number;
145
155
  /** How to preprocess the image before inference */
146
156
  readonly preprocessMode: 'letterbox' | 'resize';
157
+ /**
158
+ * Input pixel normalization. Absent / `'zero-one'` / `'none'` ⇒ the default
159
+ * `/255` rescale only (byte-identical to the historical unconditional path,
160
+ * used by every detector + CLIP/ArcFace + the AIY bird classifier which bakes
161
+ * its own scale). `'imagenet'` ⇒ additionally subtract the ImageNet
162
+ * mean/std per channel — required by the EfficientNet/MobileNetV3 animal +
163
+ * vehicle classifiers (their `labels.json` declares `normalize: imagenet`).
164
+ * Threaded from `ModelCatalogEntry.inputNormalization`.
165
+ */
166
+ readonly inputNormalization?: 'zero-one' | 'imagenet' | 'none';
167
+ /**
168
+ * The model's output is ALREADY a softmax probability distribution (softmax
169
+ * baked into the graph). When true the `softmax` postprocessor skips its own
170
+ * softmax pass and consumes the raw output as probabilities. See
171
+ * `ModelCatalogEntry.outputProbabilities`.
172
+ */
173
+ readonly outputProbabilities?: boolean;
147
174
  /** Postprocessor to apply to raw output in Python */
148
175
  readonly postprocessor: PostprocessorType;
149
176
  /** Confidence threshold for NMS / filtering */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.1.52",
3
+ "version": "1.1.53",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",