@camstack/types 1.2.17 → 1.2.18

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.
package/dist/addon.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-yfPaamGa.js");
3
- const require_event_category = require("./event-category-Cdyife4p.js");
2
+ const require_sleep = require("./sleep-DETsT9rJ.js");
3
+ const require_event_category = require("./event-category-39bpf1r_.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/collection-array-methods.ts
6
6
  /**
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { A as parseJsonUnknown, Ct as DisposerChain, D as asString, F as ReadinessRegistry, I as ReadinessTimeoutError, M as nodePin, N as readNodePin, P as DATAPLANE_SECRET_HEADER, S as DeviceType, T as asJsonObject, a as viewerUiCapability, dt as BaseAddon, ft as normalizeAddonInitResult, ht as emitReadiness, i as deviceOpsCapability, m as expandCapMethods, o as adminUiCapability, s as createDeviceProxy, t as sleep, z as scopeKey } from "./sleep-Ct4Is70g.mjs";
2
- import { t as EventCategory } from "./event-category-BLcNejAE.mjs";
1
+ import { A as parseJsonUnknown, Ct as DisposerChain, D as asString, F as ReadinessRegistry, I as ReadinessTimeoutError, M as nodePin, N as readNodePin, P as DATAPLANE_SECRET_HEADER, S as DeviceType, T as asJsonObject, a as viewerUiCapability, dt as BaseAddon, ft as normalizeAddonInitResult, ht as emitReadiness, i as deviceOpsCapability, m as expandCapMethods, o as adminUiCapability, s as createDeviceProxy, t as sleep, z as scopeKey } from "./sleep-B_Uaqbai.mjs";
2
+ import { t as EventCategory } from "./event-category-Bz24uP1U.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/collection-array-methods.ts
5
5
  /**
@@ -1672,6 +1672,28 @@ export declare const deviceManagerCapability: {
1672
1672
  deviceId: z.ZodNumber;
1673
1673
  caps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1674
1674
  }, z.core.$strip>, z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodUnknown>>, import("./capability-definition.js").CapabilityMethodKind>;
1675
+ /**
1676
+ * The same aggregate, for a LIST of devices in one round-trip.
1677
+ *
1678
+ * The viewer's camera list is the caller this exists for. Each card asked
1679
+ * for its own badges — battery here, recording mode there — so a ten-camera
1680
+ * install issued N separate procedures per reconcile, each its own message
1681
+ * on the one WebSocket that also carries the WebRTC signalling (the client
1682
+ * has no `httpBatchLink`, so there is no transport-level batching to lean
1683
+ * on: collapsing has to happen at the procedure level, which is here).
1684
+ *
1685
+ * Keyed by device id as a STRING — a JSON object cannot key by number, and
1686
+ * pretending otherwise is how a record survives the wire only in tests.
1687
+ * The per-device value is exactly what `getDeviceStatusAggregate` returns,
1688
+ * so a caller can move between the two without reshaping anything.
1689
+ *
1690
+ * `caps` matters more here than in the single call: a client that needs two
1691
+ * caps should not pay for every status-carrying cap × every device.
1692
+ */
1693
+ readonly getDeviceStatusAggregateBatch: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1694
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1695
+ caps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
1696
+ }, z.core.$strip>, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodUnknown>>>, import("./capability-definition.js").CapabilityMethodKind>;
1675
1697
  };
1676
1698
  };
1677
1699
  export type IDeviceManagerProvider = import('./capability-definition.js').InferProvider<typeof deviceManagerCapability>;
@@ -73,9 +73,9 @@ export { AddBrokerInputSchema, BrokerConnectionDetailsSchema, BrokerInfoSchema,
73
73
  export type { NetworkAccessStatus, NetworkEndpoint } from './network-access.cap.js';
74
74
  export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapability, } from './network-access.cap.js';
75
75
  export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
76
- export { type INotificationRulesProvider, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcDelivery, NcDeliverySchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleInput, NcRuleInputSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
76
+ export { type INotificationRulesProvider, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleInput, NcRuleInputSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
77
77
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
78
- export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type MediaFile, type MediaFileKind, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, } from './pipeline-analytics.cap.js';
78
+ export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type MediaFile, type MediaFileKind, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
79
79
  export type { NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
80
80
  export { ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
81
81
  export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, } from './pipeline-orchestrator.cap.js';
@@ -108,6 +108,30 @@ export declare const NcOccupancyConditionSchema: z.ZodObject<{
108
108
  sustainSeconds: z.ZodDefault<z.ZodNumber>;
109
109
  }, z.core.$strip>;
110
110
  export type NcOccupancyCondition = z.infer<typeof NcOccupancyConditionSchema>;
111
+ /**
112
+ * Which zone-crossing DIRECTION a rule accepts (`ObjectEvent.zoneCrossing`).
113
+ *
114
+ * The values are not symmetric, and deliberately so — the absent value has to
115
+ * mean exactly what every rule authored before this condition existed already
116
+ * does:
117
+ * - `enter` — entries and every NON-crossing record (movement state,
118
+ * package, sensor). Exits are rejected. **This is the absent behaviour**:
119
+ * an operator who never asked for exits must not start receiving them.
120
+ * - `exit` — ONLY an exit crossing. A record that is not a crossing at all
121
+ * fails closed, because "the car left the drive" is a question about a
122
+ * boundary, not about a detection.
123
+ * - `any` — no direction filter; entries, exits and non-crossings alike.
124
+ *
125
+ * A rule asking for a direction should normally also scope `zones`, which the
126
+ * engine evaluates against the crossed zone as well as the current membership
127
+ * (an exit's membership no longer contains the zone it just left).
128
+ */
129
+ export declare const NcCrossingSchema: z.ZodEnum<{
130
+ any: "any";
131
+ enter: "enter";
132
+ exit: "exit";
133
+ }>;
134
+ export type NcCrossing = z.infer<typeof NcCrossingSchema>;
111
135
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
112
136
  export declare const NcZoneConditionSchema: z.ZodObject<{
113
137
  ids: z.ZodArray<z.ZodString>;
@@ -134,6 +158,11 @@ export declare const NcConditionsSchema: z.ZodObject<{
134
158
  }>>;
135
159
  }, z.core.$strip>>;
136
160
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
161
+ crossing: z.ZodOptional<z.ZodEnum<{
162
+ any: "any";
163
+ enter: "enter";
164
+ exit: "exit";
165
+ }>>;
137
166
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
138
167
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
139
168
  plates: z.ZodOptional<z.ZodObject<{
@@ -237,6 +266,23 @@ export declare const NcMediaPolicySchema: z.ZodObject<{
237
266
  }>>;
238
267
  }, z.core.$strip>;
239
268
  export type NcMediaPolicy = z.infer<typeof NcMediaPolicySchema>;
269
+ /**
270
+ * Cooldown GRANULARITY over the subject's class — how much a fired
271
+ * notification suppresses.
272
+ * - `shared` (default, and the absent value) — one window for the whole
273
+ * rule/scope: a cat silences the next dog for `cooldownSec`.
274
+ * - `per-class` — an independent window per detected class, so cat→dog fires
275
+ * at once and cat→cat still waits.
276
+ *
277
+ * AUDIO subjects are ALWAYS per-class regardless of this setting: a scream
278
+ * must not be swallowed by a bark's window (the precedent this generalizes —
279
+ * see `cooldownKey` in the rule engine).
280
+ */
281
+ export declare const NcThrottleGranularitySchema: z.ZodEnum<{
282
+ shared: "shared";
283
+ "per-class": "per-class";
284
+ }>;
285
+ export type NcThrottleGranularity = z.infer<typeof NcThrottleGranularitySchema>;
240
286
  /** Throttle — cooldown survives restarts (rebuilt from the outbox on boot). */
241
287
  export declare const NcThrottleSchema: z.ZodObject<{
242
288
  cooldownSec: z.ZodDefault<z.ZodNumber>;
@@ -244,6 +290,10 @@ export declare const NcThrottleSchema: z.ZodObject<{
244
290
  rule: "rule";
245
291
  "rule-device": "rule-device";
246
292
  }>>;
293
+ granularity: z.ZodOptional<z.ZodEnum<{
294
+ shared: "shared";
295
+ "per-class": "per-class";
296
+ }>>;
247
297
  }, z.core.$strip>;
248
298
  export type NcThrottle = z.infer<typeof NcThrottleSchema>;
249
299
  /** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
@@ -269,6 +319,11 @@ export declare const NcRuleInputSchema: z.ZodObject<{
269
319
  }>>;
270
320
  }, z.core.$strip>>;
271
321
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
322
+ crossing: z.ZodOptional<z.ZodEnum<{
323
+ any: "any";
324
+ enter: "enter";
325
+ exit: "exit";
326
+ }>>;
272
327
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
273
328
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
274
329
  plates: z.ZodOptional<z.ZodObject<{
@@ -355,6 +410,10 @@ export declare const NcRuleInputSchema: z.ZodObject<{
355
410
  rule: "rule";
356
411
  "rule-device": "rule-device";
357
412
  }>>;
413
+ granularity: z.ZodOptional<z.ZodEnum<{
414
+ shared: "shared";
415
+ "per-class": "per-class";
416
+ }>>;
358
417
  }, z.core.$strip>>;
359
418
  template: z.ZodOptional<z.ZodObject<{
360
419
  title: z.ZodOptional<z.ZodString>;
@@ -395,6 +454,11 @@ export declare const NcRulePatchSchema: z.ZodObject<{
395
454
  }>>;
396
455
  }, z.core.$strip>>;
397
456
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
457
+ crossing: z.ZodOptional<z.ZodEnum<{
458
+ any: "any";
459
+ enter: "enter";
460
+ exit: "exit";
461
+ }>>;
398
462
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
399
463
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
400
464
  plates: z.ZodOptional<z.ZodObject<{
@@ -481,6 +545,10 @@ export declare const NcRulePatchSchema: z.ZodObject<{
481
545
  rule: "rule";
482
546
  "rule-device": "rule-device";
483
547
  }>>;
548
+ granularity: z.ZodOptional<z.ZodEnum<{
549
+ shared: "shared";
550
+ "per-class": "per-class";
551
+ }>>;
484
552
  }, z.core.$strip>>>;
485
553
  template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
486
554
  title: z.ZodOptional<z.ZodString>;
@@ -514,6 +582,11 @@ export declare const NcRuleSchema: z.ZodObject<{
514
582
  }>>;
515
583
  }, z.core.$strip>>;
516
584
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
585
+ crossing: z.ZodOptional<z.ZodEnum<{
586
+ any: "any";
587
+ enter: "enter";
588
+ exit: "exit";
589
+ }>>;
517
590
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
518
591
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
519
592
  plates: z.ZodOptional<z.ZodObject<{
@@ -600,6 +673,10 @@ export declare const NcRuleSchema: z.ZodObject<{
600
673
  rule: "rule";
601
674
  "rule-device": "rule-device";
602
675
  }>>;
676
+ granularity: z.ZodOptional<z.ZodEnum<{
677
+ shared: "shared";
678
+ "per-class": "per-class";
679
+ }>>;
603
680
  }, z.core.$strip>>;
604
681
  template: z.ZodOptional<z.ZodObject<{
605
682
  title: z.ZodOptional<z.ZodString>;
@@ -656,6 +733,7 @@ export declare const NcConditionDescriptorSchema: z.ZodObject<{
656
733
  zoneSelection: "zoneSelection";
657
734
  zoneIdList: "zoneIdList";
658
735
  plateMatcher: "plateMatcher";
736
+ crossingSelect: "crossingSelect";
659
737
  polygonDraw: "polygonDraw";
660
738
  }>;
661
739
  operator: z.ZodEnum<{
@@ -816,6 +894,11 @@ export declare const notificationRulesCapability: {
816
894
  }>>;
817
895
  }, z.core.$strip>>;
818
896
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
897
+ crossing: z.ZodOptional<z.ZodEnum<{
898
+ any: "any";
899
+ enter: "enter";
900
+ exit: "exit";
901
+ }>>;
819
902
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
820
903
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
821
904
  plates: z.ZodOptional<z.ZodObject<{
@@ -902,6 +985,10 @@ export declare const notificationRulesCapability: {
902
985
  rule: "rule";
903
986
  "rule-device": "rule-device";
904
987
  }>>;
988
+ granularity: z.ZodOptional<z.ZodEnum<{
989
+ shared: "shared";
990
+ "per-class": "per-class";
991
+ }>>;
905
992
  }, z.core.$strip>>;
906
993
  template: z.ZodOptional<z.ZodObject<{
907
994
  title: z.ZodOptional<z.ZodString>;
@@ -941,6 +1028,11 @@ export declare const notificationRulesCapability: {
941
1028
  }>>;
942
1029
  }, z.core.$strip>>;
943
1030
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1031
+ crossing: z.ZodOptional<z.ZodEnum<{
1032
+ any: "any";
1033
+ enter: "enter";
1034
+ exit: "exit";
1035
+ }>>;
944
1036
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
945
1037
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
946
1038
  plates: z.ZodOptional<z.ZodObject<{
@@ -1027,6 +1119,10 @@ export declare const notificationRulesCapability: {
1027
1119
  rule: "rule";
1028
1120
  "rule-device": "rule-device";
1029
1121
  }>>;
1122
+ granularity: z.ZodOptional<z.ZodEnum<{
1123
+ shared: "shared";
1124
+ "per-class": "per-class";
1125
+ }>>;
1030
1126
  }, z.core.$strip>>;
1031
1127
  template: z.ZodOptional<z.ZodObject<{
1032
1128
  title: z.ZodOptional<z.ZodString>;
@@ -1064,6 +1160,11 @@ export declare const notificationRulesCapability: {
1064
1160
  }>>;
1065
1161
  }, z.core.$strip>>;
1066
1162
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1163
+ crossing: z.ZodOptional<z.ZodEnum<{
1164
+ any: "any";
1165
+ enter: "enter";
1166
+ exit: "exit";
1167
+ }>>;
1067
1168
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
1068
1169
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
1069
1170
  plates: z.ZodOptional<z.ZodObject<{
@@ -1150,6 +1251,10 @@ export declare const notificationRulesCapability: {
1150
1251
  rule: "rule";
1151
1252
  "rule-device": "rule-device";
1152
1253
  }>>;
1254
+ granularity: z.ZodOptional<z.ZodEnum<{
1255
+ shared: "shared";
1256
+ "per-class": "per-class";
1257
+ }>>;
1153
1258
  }, z.core.$strip>>;
1154
1259
  template: z.ZodOptional<z.ZodObject<{
1155
1260
  title: z.ZodOptional<z.ZodString>;
@@ -1181,6 +1286,11 @@ export declare const notificationRulesCapability: {
1181
1286
  }>>;
1182
1287
  }, z.core.$strip>>;
1183
1288
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1289
+ crossing: z.ZodOptional<z.ZodEnum<{
1290
+ any: "any";
1291
+ enter: "enter";
1292
+ exit: "exit";
1293
+ }>>;
1184
1294
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
1185
1295
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
1186
1296
  plates: z.ZodOptional<z.ZodObject<{
@@ -1267,6 +1377,10 @@ export declare const notificationRulesCapability: {
1267
1377
  rule: "rule";
1268
1378
  "rule-device": "rule-device";
1269
1379
  }>>;
1380
+ granularity: z.ZodOptional<z.ZodEnum<{
1381
+ shared: "shared";
1382
+ "per-class": "per-class";
1383
+ }>>;
1270
1384
  }, z.core.$strip>>;
1271
1385
  template: z.ZodOptional<z.ZodObject<{
1272
1386
  title: z.ZodOptional<z.ZodString>;
@@ -1307,6 +1421,11 @@ export declare const notificationRulesCapability: {
1307
1421
  }>>;
1308
1422
  }, z.core.$strip>>;
1309
1423
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1424
+ crossing: z.ZodOptional<z.ZodEnum<{
1425
+ any: "any";
1426
+ enter: "enter";
1427
+ exit: "exit";
1428
+ }>>;
1310
1429
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
1311
1430
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
1312
1431
  plates: z.ZodOptional<z.ZodObject<{
@@ -1393,6 +1512,10 @@ export declare const notificationRulesCapability: {
1393
1512
  rule: "rule";
1394
1513
  "rule-device": "rule-device";
1395
1514
  }>>;
1515
+ granularity: z.ZodOptional<z.ZodEnum<{
1516
+ shared: "shared";
1517
+ "per-class": "per-class";
1518
+ }>>;
1396
1519
  }, z.core.$strip>>>;
1397
1520
  template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1398
1521
  title: z.ZodOptional<z.ZodString>;
@@ -1425,6 +1548,11 @@ export declare const notificationRulesCapability: {
1425
1548
  }>>;
1426
1549
  }, z.core.$strip>>;
1427
1550
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1551
+ crossing: z.ZodOptional<z.ZodEnum<{
1552
+ any: "any";
1553
+ enter: "enter";
1554
+ exit: "exit";
1555
+ }>>;
1428
1556
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
1429
1557
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
1430
1558
  plates: z.ZodOptional<z.ZodObject<{
@@ -1511,6 +1639,10 @@ export declare const notificationRulesCapability: {
1511
1639
  rule: "rule";
1512
1640
  "rule-device": "rule-device";
1513
1641
  }>>;
1642
+ granularity: z.ZodOptional<z.ZodEnum<{
1643
+ shared: "shared";
1644
+ "per-class": "per-class";
1645
+ }>>;
1514
1646
  }, z.core.$strip>>;
1515
1647
  template: z.ZodOptional<z.ZodObject<{
1516
1648
  title: z.ZodOptional<z.ZodString>;
@@ -1566,6 +1698,11 @@ export declare const notificationRulesCapability: {
1566
1698
  }>>;
1567
1699
  }, z.core.$strip>>;
1568
1700
  zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
1701
+ crossing: z.ZodOptional<z.ZodEnum<{
1702
+ any: "any";
1703
+ enter: "enter";
1704
+ exit: "exit";
1705
+ }>>;
1569
1706
  labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
1570
1707
  identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
1571
1708
  plates: z.ZodOptional<z.ZodObject<{
@@ -1652,6 +1789,10 @@ export declare const notificationRulesCapability: {
1652
1789
  rule: "rule";
1653
1790
  "rule-device": "rule-device";
1654
1791
  }>>;
1792
+ granularity: z.ZodOptional<z.ZodEnum<{
1793
+ shared: "shared";
1794
+ "per-class": "per-class";
1795
+ }>>;
1655
1796
  }, z.core.$strip>>;
1656
1797
  template: z.ZodOptional<z.ZodObject<{
1657
1798
  title: z.ZodOptional<z.ZodString>;
@@ -1715,6 +1856,7 @@ export declare const notificationRulesCapability: {
1715
1856
  zoneSelection: "zoneSelection";
1716
1857
  zoneIdList: "zoneIdList";
1717
1858
  plateMatcher: "plateMatcher";
1859
+ crossingSelect: "crossingSelect";
1718
1860
  polygonDraw: "polygonDraw";
1719
1861
  }>;
1720
1862
  operator: z.ZodEnum<{
@@ -296,6 +296,43 @@ export declare const DetectionSourceSchema: z.ZodEnum<{
296
296
  onboard: "onboard";
297
297
  }>;
298
298
  export type DetectionSource = z.infer<typeof DetectionSourceSchema>;
299
+ /**
300
+ * Which WAY a subject crossed a zone boundary. An entry and an exit are two
301
+ * different notifications ("the parcel arrived" / "the car left the drive"),
302
+ * and until this existed they were indistinguishable on the persisted record —
303
+ * which is why exits were computed and dropped at the emit boundary rather
304
+ * than doubling every zone-scoped rule.
305
+ */
306
+ export declare const ZoneCrossingDirectionSchema: z.ZodEnum<{
307
+ enter: "enter";
308
+ exit: "exit";
309
+ }>;
310
+ export type ZoneCrossingDirection = z.infer<typeof ZoneCrossingDirectionSchema>;
311
+ /**
312
+ * The confirmed zone crossing that produced an object event. Present ONLY on
313
+ * an event emitted BY a crossing (`zone.enter` / `zone.exit`); a movement-state
314
+ * event (`object.entering` / `leaving` / `stationary` / `loitering`) and an
315
+ * appearance event carry none, so a rule asking for a direction fails closed
316
+ * on them.
317
+ *
318
+ * Exactly ONE crossing per event: the emitter turns each confirmed crossing
319
+ * into its own event, so a frame in which a track enters A while leaving B
320
+ * produces two events with two directions — never one ambiguous row.
321
+ *
322
+ * `zoneId` is load-bearing for an EXIT: the event's `zones` list is the
323
+ * membership the box has NOW, and by definition it no longer contains the zone
324
+ * that was just left. Without the id here, a zone-scoped rule could never match
325
+ * the exit it asked for.
326
+ */
327
+ export declare const ZoneCrossingSchema: z.ZodObject<{
328
+ direction: z.ZodEnum<{
329
+ enter: "enter";
330
+ exit: "exit";
331
+ }>;
332
+ zoneId: z.ZodString;
333
+ zoneName: z.ZodOptional<z.ZodString>;
334
+ }, z.core.$strip>;
335
+ export type ZoneCrossing = z.infer<typeof ZoneCrossingSchema>;
299
336
  declare const ObjectEventSchema: z.ZodObject<{
300
337
  kind: z.ZodLiteral<"object">;
301
338
  source: z.ZodOptional<z.ZodEnum<{
@@ -321,6 +358,14 @@ declare const ObjectEventSchema: z.ZodObject<{
321
358
  new: "new";
322
359
  entered: "entered";
323
360
  }>>;
361
+ zoneCrossing: z.ZodOptional<z.ZodObject<{
362
+ direction: z.ZodEnum<{
363
+ enter: "enter";
364
+ exit: "exit";
365
+ }>;
366
+ zoneId: z.ZodString;
367
+ zoneName: z.ZodOptional<z.ZodString>;
368
+ }, z.core.$strip>>;
324
369
  frameWidth: z.ZodOptional<z.ZodNumber>;
325
370
  frameHeight: z.ZodOptional<z.ZodNumber>;
326
371
  mediaKey: z.ZodOptional<z.ZodString>;
@@ -520,6 +565,14 @@ export declare const ScoredObjectEventSchema: z.ZodObject<{
520
565
  new: "new";
521
566
  entered: "entered";
522
567
  }>>;
568
+ zoneCrossing: z.ZodOptional<z.ZodObject<{
569
+ direction: z.ZodEnum<{
570
+ enter: "enter";
571
+ exit: "exit";
572
+ }>;
573
+ zoneId: z.ZodString;
574
+ zoneName: z.ZodOptional<z.ZodString>;
575
+ }, z.core.$strip>>;
523
576
  frameWidth: z.ZodOptional<z.ZodNumber>;
524
577
  frameHeight: z.ZodOptional<z.ZodNumber>;
525
578
  mediaKey: z.ZodOptional<z.ZodString>;
@@ -959,6 +1012,14 @@ export declare const pipelineAnalyticsCapability: {
959
1012
  new: "new";
960
1013
  entered: "entered";
961
1014
  }>>;
1015
+ zoneCrossing: z.ZodOptional<z.ZodObject<{
1016
+ direction: z.ZodEnum<{
1017
+ enter: "enter";
1018
+ exit: "exit";
1019
+ }>;
1020
+ zoneId: z.ZodString;
1021
+ zoneName: z.ZodOptional<z.ZodString>;
1022
+ }, z.core.$strip>>;
962
1023
  frameWidth: z.ZodOptional<z.ZodNumber>;
963
1024
  frameHeight: z.ZodOptional<z.ZodNumber>;
964
1025
  mediaKey: z.ZodOptional<z.ZodString>;
@@ -1403,6 +1464,14 @@ export declare const pipelineAnalyticsCapability: {
1403
1464
  new: "new";
1404
1465
  entered: "entered";
1405
1466
  }>>;
1467
+ zoneCrossing: z.ZodOptional<z.ZodObject<{
1468
+ direction: z.ZodEnum<{
1469
+ enter: "enter";
1470
+ exit: "exit";
1471
+ }>;
1472
+ zoneId: z.ZodString;
1473
+ zoneName: z.ZodOptional<z.ZodString>;
1474
+ }, z.core.$strip>>;
1406
1475
  frameWidth: z.ZodOptional<z.ZodNumber>;
1407
1476
  frameHeight: z.ZodOptional<z.ZodNumber>;
1408
1477
  mediaKey: z.ZodOptional<z.ZodString>;
@@ -267,6 +267,19 @@ export declare enum EventCategory {
267
267
  * without filtering on `capName`.
268
268
  */
269
269
  DeviceStateChanged = "device.state-changed",
270
+ /**
271
+ * Frame occupancy for a camera CHANGED — a tracked object was gained or
272
+ * lost. Carries `{ deviceId, totalObjects, byClass, zones }`.
273
+ *
274
+ * Emitted only on a change, so a steady scene is silent. It exists so a
275
+ * client can stop polling `zoneAnalytics.getCurrentSnapshot`: that was the
276
+ * one live badge with no push signal at all, and it cost a request every
277
+ * four seconds per visible camera.
278
+ *
279
+ * Like every event it is telemetry and may be dropped ([D8]) — a consumer
280
+ * keeps a slow reconcile rather than trusting it alone.
281
+ */
282
+ ZoneAnalyticsOccupancyChanged = "zone-analytics.occupancy-changed",
270
283
  /**
271
284
  * Cap event fired by every device that registers the `battery`
272
285
  * capability. Mirrors the cap definition's `onStatusChanged`. Carries
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-Cdyife4p.js");
2
+ const require_event_category = require("./event-category-39bpf1r_.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-BLcNejAE.mjs";
1
+ import { t as EventCategory } from "./event-category-Bz24uP1U.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -269,6 +269,19 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
269
269
  */
270
270
  EventCategory["DeviceStateChanged"] = "device.state-changed";
271
271
  /**
272
+ * Frame occupancy for a camera CHANGED — a tracked object was gained or
273
+ * lost. Carries `{ deviceId, totalObjects, byClass, zones }`.
274
+ *
275
+ * Emitted only on a change, so a steady scene is silent. It exists so a
276
+ * client can stop polling `zoneAnalytics.getCurrentSnapshot`: that was the
277
+ * one live badge with no push signal at all, and it cost a request every
278
+ * four seconds per visible camera.
279
+ *
280
+ * Like every event it is telemetry and may be dropped ([D8]) — a consumer
281
+ * keeps a slow reconcile rather than trusting it alone.
282
+ */
283
+ EventCategory["ZoneAnalyticsOccupancyChanged"] = "zone-analytics.occupancy-changed";
284
+ /**
272
285
  * Cap event fired by every device that registers the `battery`
273
286
  * capability. Mirrors the cap definition's `onStatusChanged`. Carries
274
287
  * `{ deviceId, status: BatteryStatus }`. Subscribers (alert center,
@@ -269,6 +269,19 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
269
269
  */
270
270
  EventCategory["DeviceStateChanged"] = "device.state-changed";
271
271
  /**
272
+ * Frame occupancy for a camera CHANGED — a tracked object was gained or
273
+ * lost. Carries `{ deviceId, totalObjects, byClass, zones }`.
274
+ *
275
+ * Emitted only on a change, so a steady scene is silent. It exists so a
276
+ * client can stop polling `zoneAnalytics.getCurrentSnapshot`: that was the
277
+ * one live badge with no push signal at all, and it cost a request every
278
+ * four seconds per visible camera.
279
+ *
280
+ * Like every event it is telemetry and may be dropped ([D8]) — a consumer
281
+ * keeps a slow reconcile rather than trusting it alone.
282
+ */
283
+ EventCategory["ZoneAnalyticsOccupancyChanged"] = "zone-analytics.occupancy-changed";
284
+ /**
272
285
  * Cap event fired by every device that registers the `battery`
273
286
  * capability. Mirrors the cap definition's `onStatusChanged`. Carries
274
287
  * `{ deviceId, status: BatteryStatus }`. Subscribers (alert center,
@@ -2309,6 +2309,13 @@ export type AppRouter = TrpcCoreRouter<{
2309
2309
  output: z.infer<typeof deviceManagerCapability.methods.getDeviceStatusAggregate.output>;
2310
2310
  meta: object;
2311
2311
  }>;
2312
+ getDeviceStatusAggregateBatch: TRPCQueryProcedure<{
2313
+ input: {
2314
+ [x: string]: unknown;
2315
+ } & z.input<typeof deviceManagerCapability.methods.getDeviceStatusAggregateBatch.input>;
2316
+ output: z.infer<typeof deviceManagerCapability.methods.getDeviceStatusAggregateBatch.output>;
2317
+ meta: object;
2318
+ }>;
2312
2319
  }>>;
2313
2320
  deviceOps: TRPCBuiltRouter<{
2314
2321
  ctx: TrpcContext;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 825 method paths across 117 capabilities.
9
+ * Coverage: 826 method paths across 117 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -63,7 +63,7 @@ export interface SystemProxy {
63
63
  readonly decoder: Pick<InferProvider<typeof decoderCapability>, 'supportsCodec' | 'getInfo' | 'createSession' | 'destroySession' | 'pushPacket' | 'openStream' | 'pullFrames' | 'pullHandles' | 'getFrame' | 'getShmStats' | 'updateConfig' | 'getStats' | 'listActiveSessions' | 'reprobeHwaccel'>;
64
64
  readonly deviceAdoption: Pick<InferProvider<typeof deviceAdoptionCapability>, 'listCandidateFilters' | 'listCandidates' | 'getCandidate' | 'refresh' | 'adopt' | 'release' | 'resync'>;
65
65
  readonly deviceExport: Pick<InferProvider<typeof deviceExportCapability>, 'getStatus' | 'listSupportedDeviceKinds' | 'listExposedDevices' | 'exposeDevice' | 'unexposeDevice'>;
66
- readonly deviceManager: Pick<InferProvider<typeof deviceManagerCapability>, 'allocateDeviceId' | 'registerDevice' | 'removeDevice' | 'persistConfig' | 'getRoleDisplayDefaults' | 'setRoleDisplayDefaults' | 'listLocations' | 'addLocation' | 'removeLocation' | 'listPersistedByAddon' | 'listAll' | 'getChildren' | 'removeByIntegration' | 'listWrappersForCap' | 'listBindableCapsForDeviceType' | 'discoverDevices' | 'adoptDevice' | 'getCreationSchema' | 'createDevice' | 'testCreationField' | 'adoptionListCandidateFilters' | 'adoptionListCandidates' | 'adoptionRefresh' | 'adoptionAdopt' | 'adoptionRelease' | 'adoptionResync' | 'discoveryProviders' | 'discoverAllProviders' | 'discoverProvider' | 'providerCreationType' | 'providerDiscoveryParamsSchema'>;
66
+ readonly deviceManager: Pick<InferProvider<typeof deviceManagerCapability>, 'allocateDeviceId' | 'registerDevice' | 'removeDevice' | 'persistConfig' | 'getRoleDisplayDefaults' | 'setRoleDisplayDefaults' | 'listLocations' | 'addLocation' | 'removeLocation' | 'listPersistedByAddon' | 'listAll' | 'getChildren' | 'removeByIntegration' | 'listWrappersForCap' | 'listBindableCapsForDeviceType' | 'discoverDevices' | 'adoptDevice' | 'getCreationSchema' | 'createDevice' | 'testCreationField' | 'adoptionListCandidateFilters' | 'adoptionListCandidates' | 'adoptionRefresh' | 'adoptionAdopt' | 'adoptionRelease' | 'adoptionResync' | 'discoveryProviders' | 'discoverAllProviders' | 'discoverProvider' | 'providerCreationType' | 'providerDiscoveryParamsSchema' | 'getDeviceStatusAggregateBatch'>;
67
67
  readonly deviceProvider: Pick<InferProvider<typeof deviceProviderCapability>, 'start' | 'stop' | 'getStatus' | 'getDevices' | 'supportsDiscovery' | 'discoverDevices' | 'getDiscoveryParamsSchema' | 'getManualCreationType' | 'adoptDiscoveredDevice' | 'supportsManualCreation' | 'getChildCreationSchema' | 'createDevice' | 'testCreationField'>;
68
68
  readonly deviceState: Pick<InferProvider<typeof deviceStateCapability>, 'getAllSnapshots'>;
69
69
  readonly faceGallery: Pick<InferProvider<typeof faceGalleryCapability>, 'listIdentities' | 'createIdentity' | 'renameIdentity' | 'deleteIdentity' | 'listIdentitySamples' | 'removeSample' | 'listRecentFaces' | 'getFaceMedia' | 'assignFace' | 'unassignFace' | 'deleteFace' | 'assignFaces' | 'unassignFaces' | 'suggestFaceClusters'>;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-yfPaamGa.js");
3
- const require_event_category = require("./event-category-Cdyife4p.js");
2
+ const require_sleep = require("./sleep-DETsT9rJ.js");
3
+ const require_event_category = require("./event-category-39bpf1r_.js");
4
4
  const require_enums = require("./enums.js");
5
5
  const require_err_msg = require("./err-msg-COpsHMw2.js");
6
6
  let zod = require("zod");
@@ -4758,6 +4758,29 @@ var NcOccupancyConditionSchema = zod.z.object({
4758
4758
  count: zod.z.number().int().min(0).default(1),
4759
4759
  sustainSeconds: zod.z.number().int().min(0).max(3600).default(15)
4760
4760
  });
4761
+ /**
4762
+ * Which zone-crossing DIRECTION a rule accepts (`ObjectEvent.zoneCrossing`).
4763
+ *
4764
+ * The values are not symmetric, and deliberately so — the absent value has to
4765
+ * mean exactly what every rule authored before this condition existed already
4766
+ * does:
4767
+ * - `enter` — entries and every NON-crossing record (movement state,
4768
+ * package, sensor). Exits are rejected. **This is the absent behaviour**:
4769
+ * an operator who never asked for exits must not start receiving them.
4770
+ * - `exit` — ONLY an exit crossing. A record that is not a crossing at all
4771
+ * fails closed, because "the car left the drive" is a question about a
4772
+ * boundary, not about a detection.
4773
+ * - `any` — no direction filter; entries, exits and non-crossings alike.
4774
+ *
4775
+ * A rule asking for a direction should normally also scope `zones`, which the
4776
+ * engine evaluates against the crossed zone as well as the current membership
4777
+ * (an exit's membership no longer contains the zone it just left).
4778
+ */
4779
+ var NcCrossingSchema = zod.z.enum([
4780
+ "enter",
4781
+ "exit",
4782
+ "any"
4783
+ ]);
4761
4784
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
4762
4785
  var NcZoneConditionSchema = zod.z.object({
4763
4786
  ids: zod.z.array(zod.z.string().min(1)).min(1),
@@ -4782,6 +4805,13 @@ var NcConditionsSchema = zod.z.object({
4782
4805
  /** Veto zones — any hit fails the rule. */
4783
4806
  zonesExclude: zod.z.array(zod.z.string().min(1)).optional(),
4784
4807
  /**
4808
+ * Zone-crossing direction. IMMEDIATE only — a crossing is a per-event fact
4809
+ * and a closed track carries none, so a `track-end` rule asking for one
4810
+ * fails closed (use `zones`, which tests `zonesVisited`). ABSENT = `enter`,
4811
+ * which is exactly today's behaviour. See {@link NcCrossingSchema}.
4812
+ */
4813
+ crossing: NcCrossingSchema.optional(),
4814
+ /**
4785
4815
  * Exact (case-insensitive) match on the record's collapsed `label`
4786
4816
  * (identity name / plate text / subclass).
4787
4817
  */
@@ -4970,11 +5000,31 @@ var NcMediaPolicySchema = zod.z.object({
4970
5000
  */
4971
5001
  profile: require_sleep.CamProfileSchema.optional()
4972
5002
  });
5003
+ /**
5004
+ * Cooldown GRANULARITY over the subject's class — how much a fired
5005
+ * notification suppresses.
5006
+ * - `shared` (default, and the absent value) — one window for the whole
5007
+ * rule/scope: a cat silences the next dog for `cooldownSec`.
5008
+ * - `per-class` — an independent window per detected class, so cat→dog fires
5009
+ * at once and cat→cat still waits.
5010
+ *
5011
+ * AUDIO subjects are ALWAYS per-class regardless of this setting: a scream
5012
+ * must not be swallowed by a bark's window (the precedent this generalizes —
5013
+ * see `cooldownKey` in the rule engine).
5014
+ */
5015
+ var NcThrottleGranularitySchema = zod.z.enum(["shared", "per-class"]);
4973
5016
  /** Throttle — cooldown survives restarts (rebuilt from the outbox on boot). */
4974
5017
  var NcThrottleSchema = zod.z.object({
4975
5018
  cooldownSec: zod.z.number().int().min(0).max(86400).default(60),
4976
5019
  /** `rule` = one shared cooldown; `rule-device` = per-camera cooldown. */
4977
- scope: zod.z.enum(["rule", "rule-device"]).default("rule-device")
5020
+ scope: zod.z.enum(["rule", "rule-device"]).default("rule-device"),
5021
+ /**
5022
+ * Class granularity of the cooldown key. Optional rather than defaulted:
5023
+ * a Zod default does NOT run on the addon→addon cap path, so a persisted
5024
+ * rule authored before this field simply carries none — and the engine
5025
+ * reads absent as `shared`, the pre-existing behaviour.
5026
+ */
5027
+ granularity: NcThrottleGranularitySchema.optional()
4978
5028
  });
4979
5029
  /** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
4980
5030
  var NcRuleInputSchema = zod.z.object({
@@ -5082,6 +5132,7 @@ var NcConditionDescriptorSchema = zod.z.object({
5082
5132
  "schedule",
5083
5133
  "plateMatcher",
5084
5134
  "packagePhase",
5135
+ "crossingSelect",
5085
5136
  "polygonDraw",
5086
5137
  "occupancy"
5087
5138
  ]),
@@ -5186,6 +5237,16 @@ var NC_CONDITION_CATALOG = [
5186
5237
  ],
5187
5238
  phase: "P1"
5188
5239
  },
5240
+ {
5241
+ id: "crossing",
5242
+ group: "zones",
5243
+ label: "Zone crossing",
5244
+ valueType: "crossingSelect",
5245
+ operator: "in",
5246
+ appliesTo: ["immediate"],
5247
+ phase: "P1",
5248
+ description: "Direction of the zone crossing: enter (the default, and what every rule authored before this did) / exit / any. An exit rule matches only crossings."
5249
+ },
5189
5250
  {
5190
5251
  id: "labelEquals",
5191
5252
  group: "label",
@@ -14586,7 +14647,8 @@ function createSystemProxy(api) {
14586
14647
  discoverAllProviders: (input) => dispatch("deviceManager", "discoverAllProviders", "mutation", input),
14587
14648
  discoverProvider: (input) => dispatch("deviceManager", "discoverProvider", "mutation", input),
14588
14649
  providerCreationType: (input) => dispatch("deviceManager", "providerCreationType", "query", input),
14589
- providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input)
14650
+ providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input),
14651
+ getDeviceStatusAggregateBatch: (input) => dispatch("deviceManager", "getDeviceStatusAggregateBatch", "query", input)
14590
14652
  },
14591
14653
  deviceProvider: {
14592
14654
  start: (input) => dispatch("deviceProvider", "start", "mutation", input),
@@ -18603,7 +18665,29 @@ var deviceManagerCapability = {
18603
18665
  getDeviceStatusAggregate: require_sleep.method(zod.z.object({
18604
18666
  deviceId: zod.z.number(),
18605
18667
  caps: zod.z.array(zod.z.string()).readonly().optional()
18606
- }), zod.z.record(zod.z.string(), zod.z.unknown().nullable()))
18668
+ }), zod.z.record(zod.z.string(), zod.z.unknown().nullable())),
18669
+ /**
18670
+ * The same aggregate, for a LIST of devices in one round-trip.
18671
+ *
18672
+ * The viewer's camera list is the caller this exists for. Each card asked
18673
+ * for its own badges — battery here, recording mode there — so a ten-camera
18674
+ * install issued N separate procedures per reconcile, each its own message
18675
+ * on the one WebSocket that also carries the WebRTC signalling (the client
18676
+ * has no `httpBatchLink`, so there is no transport-level batching to lean
18677
+ * on: collapsing has to happen at the procedure level, which is here).
18678
+ *
18679
+ * Keyed by device id as a STRING — a JSON object cannot key by number, and
18680
+ * pretending otherwise is how a record survives the wire only in tests.
18681
+ * The per-device value is exactly what `getDeviceStatusAggregate` returns,
18682
+ * so a caller can move between the two without reshaping anything.
18683
+ *
18684
+ * `caps` matters more here than in the single call: a client that needs two
18685
+ * caps should not pay for every status-carrying cap × every device.
18686
+ */
18687
+ getDeviceStatusAggregateBatch: require_sleep.method(zod.z.object({
18688
+ deviceIds: zod.z.array(zod.z.number()).readonly(),
18689
+ caps: zod.z.array(zod.z.string()).readonly().optional()
18690
+ }), zod.z.record(zod.z.string(), zod.z.record(zod.z.string(), zod.z.unknown().nullable())))
18607
18691
  }
18608
18692
  };
18609
18693
  //#endregion
@@ -20377,6 +20461,37 @@ var MotionEventSchema = zod.z.object({
20377
20461
  * Absent on legacy rows ⇒ treat as `pipeline`.
20378
20462
  */
20379
20463
  var DetectionSourceSchema = zod.z.enum(["pipeline", "onboard"]);
20464
+ /**
20465
+ * Which WAY a subject crossed a zone boundary. An entry and an exit are two
20466
+ * different notifications ("the parcel arrived" / "the car left the drive"),
20467
+ * and until this existed they were indistinguishable on the persisted record —
20468
+ * which is why exits were computed and dropped at the emit boundary rather
20469
+ * than doubling every zone-scoped rule.
20470
+ */
20471
+ var ZoneCrossingDirectionSchema = zod.z.enum(["enter", "exit"]);
20472
+ /**
20473
+ * The confirmed zone crossing that produced an object event. Present ONLY on
20474
+ * an event emitted BY a crossing (`zone.enter` / `zone.exit`); a movement-state
20475
+ * event (`object.entering` / `leaving` / `stationary` / `loitering`) and an
20476
+ * appearance event carry none, so a rule asking for a direction fails closed
20477
+ * on them.
20478
+ *
20479
+ * Exactly ONE crossing per event: the emitter turns each confirmed crossing
20480
+ * into its own event, so a frame in which a track enters A while leaving B
20481
+ * produces two events with two directions — never one ambiguous row.
20482
+ *
20483
+ * `zoneId` is load-bearing for an EXIT: the event's `zones` list is the
20484
+ * membership the box has NOW, and by definition it no longer contains the zone
20485
+ * that was just left. Without the id here, a zone-scoped rule could never match
20486
+ * the exit it asked for.
20487
+ */
20488
+ var ZoneCrossingSchema = zod.z.object({
20489
+ direction: ZoneCrossingDirectionSchema,
20490
+ /** Admin zone id crossed. */
20491
+ zoneId: zod.z.string(),
20492
+ /** Zone display name at crossing time (falls back to the id). */
20493
+ zoneName: zod.z.string().optional()
20494
+ });
20380
20495
  var ObjectEventSchema = zod.z.object({
20381
20496
  ...BaseEventFields,
20382
20497
  kind: zod.z.literal("object"),
@@ -20403,6 +20518,12 @@ var ObjectEventSchema = zod.z.object({
20403
20518
  zones: zod.z.array(zod.z.string()).readonly().optional(),
20404
20519
  /** Omitted in slim projection. */
20405
20520
  state: TrackStateSchema.optional(),
20521
+ /**
20522
+ * The zone crossing this event IS, when it is one. Absent on every other
20523
+ * event kind (movement state, appearance, package) — see
20524
+ * {@link ZoneCrossingSchema}. Omitted in slim projection.
20525
+ */
20526
+ zoneCrossing: ZoneCrossingSchema.optional(),
20406
20527
  /** Detection-frame dimensions in pixels — let consumers normalize the
20407
20528
  * pixel-space `bbox` onto a displayed image. Omitted in slim projection. */
20408
20529
  frameWidth: zod.z.number().optional(),
@@ -28799,6 +28920,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
28799
28920
  addonId: null,
28800
28921
  access: "view"
28801
28922
  },
28923
+ "deviceManager.getDeviceStatusAggregateBatch": {
28924
+ capName: "device-manager",
28925
+ capScope: "system",
28926
+ addonId: null,
28927
+ access: "view"
28928
+ },
28802
28929
  "deviceManager.getLinkedDevices": {
28803
28930
  capName: "device-manager",
28804
28931
  capScope: "system",
@@ -33789,6 +33916,7 @@ exports.NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionRuntimeSt
33789
33916
  exports.NativeObjectDetectionStatusSchema = NativeObjectDetectionStatusSchema;
33790
33917
  exports.NcConditionDescriptorSchema = NcConditionDescriptorSchema;
33791
33918
  exports.NcConditionsSchema = NcConditionsSchema;
33919
+ exports.NcCrossingSchema = NcCrossingSchema;
33792
33920
  exports.NcDeliverySchema = NcDeliverySchema;
33793
33921
  exports.NcHistoryEntrySchema = NcHistoryEntrySchema;
33794
33922
  exports.NcHistoryFilterSchema = NcHistoryFilterSchema;
@@ -33808,6 +33936,7 @@ exports.NcScheduleWindowSchema = NcScheduleWindowSchema;
33808
33936
  exports.NcTaxonomyEntrySchema = NcTaxonomyEntrySchema;
33809
33937
  exports.NcTaxonomySchema = NcTaxonomySchema;
33810
33938
  exports.NcTestResultSchema = NcTestResultSchema;
33939
+ exports.NcThrottleGranularitySchema = NcThrottleGranularitySchema;
33811
33940
  exports.NcThrottleSchema = NcThrottleSchema;
33812
33941
  exports.NcZoneConditionSchema = NcZoneConditionSchema;
33813
33942
  exports.NetworkAccessStatusSchema = NetworkAccessStatusSchema;
@@ -34061,6 +34190,8 @@ exports.WidgetMetadataSchema = WidgetMetadataSchema;
34061
34190
  exports.WidgetRemoteSchema = WidgetRemoteSchema;
34062
34191
  exports.WidgetSizeEnum = WidgetSizeEnum;
34063
34192
  exports.YAMNET_TO_MACRO = YAMNET_TO_MACRO;
34193
+ exports.ZoneCrossingDirectionSchema = ZoneCrossingDirectionSchema;
34194
+ exports.ZoneCrossingSchema = ZoneCrossingSchema;
34064
34195
  exports.ZoneKindEnum = ZoneKindEnum;
34065
34196
  exports.ZoneRuleModeEnum = ZoneRuleModeEnum;
34066
34197
  exports.ZoneRuleSchema = ZoneRuleSchema;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as ProfileSlotSchema, A as parseJsonUnknown, B as BrokerStatsSchema, C as asBoolean, Ct as DisposerChain, D as asString, E as asNumber, F as ReadinessRegistry, G as CamStreamResolutionSchema, H as CAM_PROFILE_ORDER, I as ReadinessTimeoutError, J as DecodedFrameSchema, K as CameraStreamSchema, L as emitDownForOwnedCaps, M as nodePin, N as readNodePin, O as parseJsonArray, P as DATAPLANE_SECRET_HEADER, Q as ProfileRtspEntrySchema, R as readinessKey, S as DeviceType, St as resolveHydratedFieldValue, T as asJsonObject, U as CamProfileSchema, V as BrokerStatusSchema, W as CamStreamKindSchema, X as FrameHandleFormatSchema, Y as EncodedPacketSchema, Z as FrameHandleSchema, _ as resolveCapMount, _t as WELL_KNOWN_TABS, a as viewerUiCapability, at as SubscribeFramesInputSchema, b as DeviceFeature, bt as collectHydratedFieldValues, c as createLazyTrpcSource, ct as makeSourceBrokerId, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as BaseAddon, et as ProfileSlotStatusSchema, f as DEVICE_STATUS_METHOD, ft as normalizeAddonInitResult, g as method, gt as isEvent, h as isDeviceConfigCap, ht as emitReadiness, i as deviceOpsCapability, it as SubscribeAudioChunksResultSchema, j as CAP_NODE_PIN_CONTEXT_KEY, k as parseJsonObject, l as createMirrorSource, lt as parseProfileBrokerId, m as expandCapMethods, mt as createEvent, n as sleepCancellable, nt as StreamSourceSchema, o as adminUiCapability, ot as SubscribeFramesResultSchema, p as event, pt as createDurableState, q as DecodedAudioChunkSchema, r as RawStateResultSchema, rt as SubscribeAudioChunksInputSchema, s as createDeviceProxy, st as makeProfileBrokerId, t as sleep, tt as StreamSourceEntrySchema, u as createSliceHandle, ut as selectAssignedProfileSlots, v as systemMethod, vt as WELL_KNOWN_TAB_MAP, w as asJsonArray, x as DeviceRole, xt as hydrateSchema, y as ChargingStatus, yt as collectHydratedFieldEntries, z as scopeKey } from "./sleep-Ct4Is70g.mjs";
2
- import { t as EventCategory } from "./event-category-BLcNejAE.mjs";
1
+ import { $ as ProfileSlotSchema, A as parseJsonUnknown, B as BrokerStatsSchema, C as asBoolean, Ct as DisposerChain, D as asString, E as asNumber, F as ReadinessRegistry, G as CamStreamResolutionSchema, H as CAM_PROFILE_ORDER, I as ReadinessTimeoutError, J as DecodedFrameSchema, K as CameraStreamSchema, L as emitDownForOwnedCaps, M as nodePin, N as readNodePin, O as parseJsonArray, P as DATAPLANE_SECRET_HEADER, Q as ProfileRtspEntrySchema, R as readinessKey, S as DeviceType, St as resolveHydratedFieldValue, T as asJsonObject, U as CamProfileSchema, V as BrokerStatusSchema, W as CamStreamKindSchema, X as FrameHandleFormatSchema, Y as EncodedPacketSchema, Z as FrameHandleSchema, _ as resolveCapMount, _t as WELL_KNOWN_TABS, a as viewerUiCapability, at as SubscribeFramesInputSchema, b as DeviceFeature, bt as collectHydratedFieldValues, c as createLazyTrpcSource, ct as makeSourceBrokerId, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as BaseAddon, et as ProfileSlotStatusSchema, f as DEVICE_STATUS_METHOD, ft as normalizeAddonInitResult, g as method, gt as isEvent, h as isDeviceConfigCap, ht as emitReadiness, i as deviceOpsCapability, it as SubscribeAudioChunksResultSchema, j as CAP_NODE_PIN_CONTEXT_KEY, k as parseJsonObject, l as createMirrorSource, lt as parseProfileBrokerId, m as expandCapMethods, mt as createEvent, n as sleepCancellable, nt as StreamSourceSchema, o as adminUiCapability, ot as SubscribeFramesResultSchema, p as event, pt as createDurableState, q as DecodedAudioChunkSchema, r as RawStateResultSchema, rt as SubscribeAudioChunksInputSchema, s as createDeviceProxy, st as makeProfileBrokerId, t as sleep, tt as StreamSourceEntrySchema, u as createSliceHandle, ut as selectAssignedProfileSlots, v as systemMethod, vt as WELL_KNOWN_TAB_MAP, w as asJsonArray, x as DeviceRole, xt as hydrateSchema, y as ChargingStatus, yt as collectHydratedFieldEntries, z as scopeKey } from "./sleep-B_Uaqbai.mjs";
2
+ import { t as EventCategory } from "./event-category-Bz24uP1U.mjs";
3
3
  import { EventSourceType } from "./enums.mjs";
4
4
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
5
5
  import { z } from "zod";
@@ -4757,6 +4757,29 @@ var NcOccupancyConditionSchema = z.object({
4757
4757
  count: z.number().int().min(0).default(1),
4758
4758
  sustainSeconds: z.number().int().min(0).max(3600).default(15)
4759
4759
  });
4760
+ /**
4761
+ * Which zone-crossing DIRECTION a rule accepts (`ObjectEvent.zoneCrossing`).
4762
+ *
4763
+ * The values are not symmetric, and deliberately so — the absent value has to
4764
+ * mean exactly what every rule authored before this condition existed already
4765
+ * does:
4766
+ * - `enter` — entries and every NON-crossing record (movement state,
4767
+ * package, sensor). Exits are rejected. **This is the absent behaviour**:
4768
+ * an operator who never asked for exits must not start receiving them.
4769
+ * - `exit` — ONLY an exit crossing. A record that is not a crossing at all
4770
+ * fails closed, because "the car left the drive" is a question about a
4771
+ * boundary, not about a detection.
4772
+ * - `any` — no direction filter; entries, exits and non-crossings alike.
4773
+ *
4774
+ * A rule asking for a direction should normally also scope `zones`, which the
4775
+ * engine evaluates against the crossed zone as well as the current membership
4776
+ * (an exit's membership no longer contains the zone it just left).
4777
+ */
4778
+ var NcCrossingSchema = z.enum([
4779
+ "enter",
4780
+ "exit",
4781
+ "any"
4782
+ ]);
4760
4783
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
4761
4784
  var NcZoneConditionSchema = z.object({
4762
4785
  ids: z.array(z.string().min(1)).min(1),
@@ -4781,6 +4804,13 @@ var NcConditionsSchema = z.object({
4781
4804
  /** Veto zones — any hit fails the rule. */
4782
4805
  zonesExclude: z.array(z.string().min(1)).optional(),
4783
4806
  /**
4807
+ * Zone-crossing direction. IMMEDIATE only — a crossing is a per-event fact
4808
+ * and a closed track carries none, so a `track-end` rule asking for one
4809
+ * fails closed (use `zones`, which tests `zonesVisited`). ABSENT = `enter`,
4810
+ * which is exactly today's behaviour. See {@link NcCrossingSchema}.
4811
+ */
4812
+ crossing: NcCrossingSchema.optional(),
4813
+ /**
4784
4814
  * Exact (case-insensitive) match on the record's collapsed `label`
4785
4815
  * (identity name / plate text / subclass).
4786
4816
  */
@@ -4969,11 +4999,31 @@ var NcMediaPolicySchema = z.object({
4969
4999
  */
4970
5000
  profile: CamProfileSchema.optional()
4971
5001
  });
5002
+ /**
5003
+ * Cooldown GRANULARITY over the subject's class — how much a fired
5004
+ * notification suppresses.
5005
+ * - `shared` (default, and the absent value) — one window for the whole
5006
+ * rule/scope: a cat silences the next dog for `cooldownSec`.
5007
+ * - `per-class` — an independent window per detected class, so cat→dog fires
5008
+ * at once and cat→cat still waits.
5009
+ *
5010
+ * AUDIO subjects are ALWAYS per-class regardless of this setting: a scream
5011
+ * must not be swallowed by a bark's window (the precedent this generalizes —
5012
+ * see `cooldownKey` in the rule engine).
5013
+ */
5014
+ var NcThrottleGranularitySchema = z.enum(["shared", "per-class"]);
4972
5015
  /** Throttle — cooldown survives restarts (rebuilt from the outbox on boot). */
4973
5016
  var NcThrottleSchema = z.object({
4974
5017
  cooldownSec: z.number().int().min(0).max(86400).default(60),
4975
5018
  /** `rule` = one shared cooldown; `rule-device` = per-camera cooldown. */
4976
- scope: z.enum(["rule", "rule-device"]).default("rule-device")
5019
+ scope: z.enum(["rule", "rule-device"]).default("rule-device"),
5020
+ /**
5021
+ * Class granularity of the cooldown key. Optional rather than defaulted:
5022
+ * a Zod default does NOT run on the addon→addon cap path, so a persisted
5023
+ * rule authored before this field simply carries none — and the engine
5024
+ * reads absent as `shared`, the pre-existing behaviour.
5025
+ */
5026
+ granularity: NcThrottleGranularitySchema.optional()
4977
5027
  });
4978
5028
  /** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
4979
5029
  var NcRuleInputSchema = z.object({
@@ -5081,6 +5131,7 @@ var NcConditionDescriptorSchema = z.object({
5081
5131
  "schedule",
5082
5132
  "plateMatcher",
5083
5133
  "packagePhase",
5134
+ "crossingSelect",
5084
5135
  "polygonDraw",
5085
5136
  "occupancy"
5086
5137
  ]),
@@ -5185,6 +5236,16 @@ var NC_CONDITION_CATALOG = [
5185
5236
  ],
5186
5237
  phase: "P1"
5187
5238
  },
5239
+ {
5240
+ id: "crossing",
5241
+ group: "zones",
5242
+ label: "Zone crossing",
5243
+ valueType: "crossingSelect",
5244
+ operator: "in",
5245
+ appliesTo: ["immediate"],
5246
+ phase: "P1",
5247
+ description: "Direction of the zone crossing: enter (the default, and what every rule authored before this did) / exit / any. An exit rule matches only crossings."
5248
+ },
5188
5249
  {
5189
5250
  id: "labelEquals",
5190
5251
  group: "label",
@@ -14585,7 +14646,8 @@ function createSystemProxy(api) {
14585
14646
  discoverAllProviders: (input) => dispatch("deviceManager", "discoverAllProviders", "mutation", input),
14586
14647
  discoverProvider: (input) => dispatch("deviceManager", "discoverProvider", "mutation", input),
14587
14648
  providerCreationType: (input) => dispatch("deviceManager", "providerCreationType", "query", input),
14588
- providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input)
14649
+ providerDiscoveryParamsSchema: (input) => dispatch("deviceManager", "providerDiscoveryParamsSchema", "query", input),
14650
+ getDeviceStatusAggregateBatch: (input) => dispatch("deviceManager", "getDeviceStatusAggregateBatch", "query", input)
14589
14651
  },
14590
14652
  deviceProvider: {
14591
14653
  start: (input) => dispatch("deviceProvider", "start", "mutation", input),
@@ -18602,7 +18664,29 @@ var deviceManagerCapability = {
18602
18664
  getDeviceStatusAggregate: method(z.object({
18603
18665
  deviceId: z.number(),
18604
18666
  caps: z.array(z.string()).readonly().optional()
18605
- }), z.record(z.string(), z.unknown().nullable()))
18667
+ }), z.record(z.string(), z.unknown().nullable())),
18668
+ /**
18669
+ * The same aggregate, for a LIST of devices in one round-trip.
18670
+ *
18671
+ * The viewer's camera list is the caller this exists for. Each card asked
18672
+ * for its own badges — battery here, recording mode there — so a ten-camera
18673
+ * install issued N separate procedures per reconcile, each its own message
18674
+ * on the one WebSocket that also carries the WebRTC signalling (the client
18675
+ * has no `httpBatchLink`, so there is no transport-level batching to lean
18676
+ * on: collapsing has to happen at the procedure level, which is here).
18677
+ *
18678
+ * Keyed by device id as a STRING — a JSON object cannot key by number, and
18679
+ * pretending otherwise is how a record survives the wire only in tests.
18680
+ * The per-device value is exactly what `getDeviceStatusAggregate` returns,
18681
+ * so a caller can move between the two without reshaping anything.
18682
+ *
18683
+ * `caps` matters more here than in the single call: a client that needs two
18684
+ * caps should not pay for every status-carrying cap × every device.
18685
+ */
18686
+ getDeviceStatusAggregateBatch: method(z.object({
18687
+ deviceIds: z.array(z.number()).readonly(),
18688
+ caps: z.array(z.string()).readonly().optional()
18689
+ }), z.record(z.string(), z.record(z.string(), z.unknown().nullable())))
18606
18690
  }
18607
18691
  };
18608
18692
  //#endregion
@@ -20376,6 +20460,37 @@ var MotionEventSchema = z.object({
20376
20460
  * Absent on legacy rows ⇒ treat as `pipeline`.
20377
20461
  */
20378
20462
  var DetectionSourceSchema = z.enum(["pipeline", "onboard"]);
20463
+ /**
20464
+ * Which WAY a subject crossed a zone boundary. An entry and an exit are two
20465
+ * different notifications ("the parcel arrived" / "the car left the drive"),
20466
+ * and until this existed they were indistinguishable on the persisted record —
20467
+ * which is why exits were computed and dropped at the emit boundary rather
20468
+ * than doubling every zone-scoped rule.
20469
+ */
20470
+ var ZoneCrossingDirectionSchema = z.enum(["enter", "exit"]);
20471
+ /**
20472
+ * The confirmed zone crossing that produced an object event. Present ONLY on
20473
+ * an event emitted BY a crossing (`zone.enter` / `zone.exit`); a movement-state
20474
+ * event (`object.entering` / `leaving` / `stationary` / `loitering`) and an
20475
+ * appearance event carry none, so a rule asking for a direction fails closed
20476
+ * on them.
20477
+ *
20478
+ * Exactly ONE crossing per event: the emitter turns each confirmed crossing
20479
+ * into its own event, so a frame in which a track enters A while leaving B
20480
+ * produces two events with two directions — never one ambiguous row.
20481
+ *
20482
+ * `zoneId` is load-bearing for an EXIT: the event's `zones` list is the
20483
+ * membership the box has NOW, and by definition it no longer contains the zone
20484
+ * that was just left. Without the id here, a zone-scoped rule could never match
20485
+ * the exit it asked for.
20486
+ */
20487
+ var ZoneCrossingSchema = z.object({
20488
+ direction: ZoneCrossingDirectionSchema,
20489
+ /** Admin zone id crossed. */
20490
+ zoneId: z.string(),
20491
+ /** Zone display name at crossing time (falls back to the id). */
20492
+ zoneName: z.string().optional()
20493
+ });
20379
20494
  var ObjectEventSchema = z.object({
20380
20495
  ...BaseEventFields,
20381
20496
  kind: z.literal("object"),
@@ -20402,6 +20517,12 @@ var ObjectEventSchema = z.object({
20402
20517
  zones: z.array(z.string()).readonly().optional(),
20403
20518
  /** Omitted in slim projection. */
20404
20519
  state: TrackStateSchema.optional(),
20520
+ /**
20521
+ * The zone crossing this event IS, when it is one. Absent on every other
20522
+ * event kind (movement state, appearance, package) — see
20523
+ * {@link ZoneCrossingSchema}. Omitted in slim projection.
20524
+ */
20525
+ zoneCrossing: ZoneCrossingSchema.optional(),
20405
20526
  /** Detection-frame dimensions in pixels — let consumers normalize the
20406
20527
  * pixel-space `bbox` onto a displayed image. Omitted in slim projection. */
20407
20528
  frameWidth: z.number().optional(),
@@ -28798,6 +28919,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
28798
28919
  addonId: null,
28799
28920
  access: "view"
28800
28921
  },
28922
+ "deviceManager.getDeviceStatusAggregateBatch": {
28923
+ capName: "device-manager",
28924
+ capScope: "system",
28925
+ addonId: null,
28926
+ access: "view"
28927
+ },
28801
28928
  "deviceManager.getLinkedDevices": {
28802
28929
  capName: "device-manager",
28803
28930
  capScope: "system",
@@ -33413,4 +33540,4 @@ function enumerateInferenceDevices(hw) {
33413
33540
  return out;
33414
33541
  }
33415
33542
  //#endregion
33416
- 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_BACKEND_TO_FORMAT, 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, LOG_LEVEL_RANK, 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, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcDeliverySchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleInputSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, 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, PtzOptionsSchema, 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, RecordingRangeSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, 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, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, 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, 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, buildNcTaxonomy, 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, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, 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, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pickerForCondition, 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, terminalSessionCapability, 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 };
33543
+ 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_BACKEND_TO_FORMAT, 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, LOG_LEVEL_RANK, 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, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcCrossingSchema, NcDeliverySchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleInputSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionSchema, NotificationFormatSchema, 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, PtzOptionsSchema, 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, RecordingRangeSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, 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, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, 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, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, 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, buildNcTaxonomy, 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, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, 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, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pickerForCondition, 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, terminalSessionCapability, 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 };
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-BLcNejAE.mjs";
1
+ import { t as EventCategory } from "./event-category-Bz24uP1U.mjs";
2
2
  import { z } from "zod";
3
3
  //#region src/disposer-chain.ts
4
4
  var DisposerChain = class {
@@ -1,4 +1,4 @@
1
- const require_event_category = require("./event-category-Cdyife4p.js");
1
+ const require_event_category = require("./event-category-39bpf1r_.js");
2
2
  let zod = require("zod");
3
3
  //#region src/disposer-chain.ts
4
4
  var DisposerChain = class {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.17",
3
+ "version": "1.2.18",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",