@camstack/types 1.2.180 → 1.2.181
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/capabilities/data-store-provider.cap.d.ts +4 -2
- package/dist/capabilities/index.d.ts +2 -2
- package/dist/capabilities/motion.cap.d.ts +18 -1
- package/dist/capabilities/pipeline-analytics.cap.d.ts +30 -8
- package/dist/capabilities/settings-store.cap.d.ts +4 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +271 -10
- package/dist/index.mjs +266 -11
- package/dist/interfaces/storage.d.ts +19 -2
- package/dist/media/media-owner-key.d.ts +90 -0
- package/package.json +1 -1
|
@@ -114,10 +114,12 @@ export declare const dataStoreProviderCapability: {
|
|
|
114
114
|
namespace: z.ZodOptional<z.ZodString>;
|
|
115
115
|
collection: z.ZodString;
|
|
116
116
|
record: z.ZodObject<{
|
|
117
|
-
id: z.ZodString
|
|
117
|
+
id: z.ZodOptional<z.ZodString>;
|
|
118
118
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
119
119
|
}, z.core.$strip>;
|
|
120
|
-
}, z.core.$strip>, z.
|
|
120
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
121
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
122
|
+
}, z.core.$strip>, "mutation">;
|
|
121
123
|
/** Insert many records in ONE transaction. All or nothing. */
|
|
122
124
|
readonly insertMany: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
123
125
|
namespace: z.ZodOptional<z.ZodString>;
|
|
@@ -82,7 +82,7 @@ export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapabili
|
|
|
82
82
|
export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, 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';
|
|
83
83
|
export { type INotificationRulesProvider, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, 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 NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleInput, NcRuleInputSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcSceneCondition, NcSceneConditionSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
|
|
84
84
|
export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
|
|
85
|
-
export { type AudioEvent, AudioEventSchema, type DetectionSource, DetectionSourceSchema, EVENT_DENSITY_BATCH_MAX, type EventDensityBucket, EventDensityBucketSchema, type EventDensityForDevice, EventDensityForDeviceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type KeyEventsForDevice, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, MAX_TRACK_DEBUG_NOTE_LEN, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, MotionEventSchema, type ObjectEvent, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, type SummariesPage, type Summary, type SummaryDetail, SummarySchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
|
|
85
|
+
export { type AudioEvent, type AudioEventDraft, AudioEventSchema, type DetectionSource, DetectionSourceSchema, EVENT_DENSITY_BATCH_MAX, type EventDensityBucket, EventDensityBucketSchema, type EventDensityForDevice, EventDensityForDeviceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type KeyEventsForDevice, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, MAX_TRACK_DEBUG_NOTE_LEN, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, type MotionEventDraft, MotionEventSchema, type ObjectEvent, type ObjectEventDraft, ObjectEventSchema, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, type SummariesPage, type Summary, type SummaryDetail, SummarySchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
|
|
86
86
|
export type { NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
|
|
87
87
|
export { ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
|
|
88
88
|
export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, CameraStatusDegradation, CameraStatusDegradationReason, CameraStatusStage, DiskReconcileJob, InferenceDeviceExclusionReason, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, } from './pipeline-orchestrator.cap.js';
|
|
@@ -166,7 +166,7 @@ export { type ILockControlProvider, type LockControlStatus, LockControlStatusSch
|
|
|
166
166
|
export { type MaskGridDims, MaskGridDimsSchema, type MaskGridShape, MaskGridShapeSchema, type MaskLineShape, MaskLineShapeSchema, type MaskPoint, MaskPointSchema, type MaskPolygonShape, MaskPolygonShapeSchema, type MaskPolygonVertices, MaskPolygonVerticesSchema, type MaskRectShape, MaskRectShapeSchema, type MaskShape, type MaskShapeKind, MaskShapeKindSchema, MaskShapeSchema, } from './mask-shape.js';
|
|
167
167
|
export { type IMediaPlayerProvider, type MediaInfo, type MediaPlayerRepeat, MediaPlayerRepeatSchema, type MediaPlayerState, MediaPlayerStateSchema, type MediaPlayerStatus, MediaPlayerStatusSchema, mediaPlayerCapability, } from './media-player.cap.js';
|
|
168
168
|
export { type IMeshNetworkProvider, type MeshEndpoint, type MeshPeer, MeshPeerSchema, type MeshStatus, MeshStatusSchema, meshNetworkCapability, } from './mesh-network.cap.js';
|
|
169
|
-
export { type IMotionProvider, type MotionOnMotionChangedData, MotionOnMotionChangedDataSchema, type MotionStatus, MotionStatusSchema, motionCapability, } from './motion.cap.js';
|
|
169
|
+
export { type IMotionProvider, MOTION_CLOSE_AFTER_MS, type MotionOnMotionChangedData, MotionOnMotionChangedDataSchema, type MotionStatus, MotionStatusSchema, motionCapability, } from './motion.cap.js';
|
|
170
170
|
export { type IMotionTriggerProvider, type MotionTriggerRuntimeState, MotionTriggerRuntimeStateSchema, type MotionTriggerStatus, MotionTriggerStatusSchema, motionTriggerCapability, } from './motion-trigger.cap.js';
|
|
171
171
|
export { type IMotionZonesProvider, type MotionZoneOptions, MotionZoneOptionsSchema, type MotionZonePatch, MotionZonePatchSchema, type MotionZoneRegion, MotionZoneRegionSchema, type MotionZoneStatus, MotionZoneStatusSchema, motionZonesCapability, } from './motion-zones.cap.js';
|
|
172
172
|
export { type INativeObjectDetectionProvider, type NativeDetection, NativeDetectionSchema, type NativeObjectClass, NativeObjectClassEnum, type NativeObjectDetectionRuntimeState, NativeObjectDetectionRuntimeStateSchema, type NativeObjectDetectionStatus, NativeObjectDetectionStatusSchema, nativeObjectDetectionCapability, } from './native-object-detection.cap.js';
|
|
@@ -13,6 +13,19 @@ import { type InferProvider } from './capability-definition.js';
|
|
|
13
13
|
* (alert-center, advanced-notifier) can subscribe once and receive
|
|
14
14
|
* motion from every camera.
|
|
15
15
|
*/
|
|
16
|
+
/**
|
|
17
|
+
* How long after a camera's last rising edge `pipeline-analytics` closes the
|
|
18
|
+
* motion EPISODE row it kept open for it (D475) — "il delay della cap", in
|
|
19
|
+
* the operator's words. One authority for the whole system: every provider
|
|
20
|
+
* that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
|
|
21
|
+
* constant while `detected: true` (never its own number — Hikvision used to
|
|
22
|
+
* seed its internal 3 s inactivity timer here, which is a different clock for
|
|
23
|
+
* a different purpose), and `MotionEpisodeTracker` imports it directly rather
|
|
24
|
+
* than reading the live cap value on the hot path. A `Sensor` device (HA
|
|
25
|
+
* binary sensor, Homematic) gets a genuine push both ways and has no episode
|
|
26
|
+
* to close on a timer, so it writes `null`, never this constant.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MOTION_CLOSE_AFTER_MS = 15000;
|
|
16
29
|
export declare const MotionStatusSchema: z.ZodObject<{
|
|
17
30
|
detected: z.ZodBoolean;
|
|
18
31
|
lastDetectedAt: z.ZodNullable<z.ZodNumber>;
|
|
@@ -132,7 +145,11 @@ export declare const motionCapability: {
|
|
|
132
145
|
autoClearAfterMs: z.ZodNullable<z.ZodNumber>;
|
|
133
146
|
}, z.core.$strip>;
|
|
134
147
|
/**
|
|
135
|
-
* Runtime-state durability: **session** —
|
|
148
|
+
* Runtime-state durability: **session** — every writer of this slice
|
|
149
|
+
* writes only on an EDGE, so a restored `detected: true` would stay
|
|
150
|
+
* frozen until the next one instead of being corrected. The next edge
|
|
151
|
+
* re-publishes the real state. (On who the writers are, and why there
|
|
152
|
+
* is more than one, see `autoClearAfterMs` above.)
|
|
136
153
|
*
|
|
137
154
|
* See `RuntimeStateDurability`. Enforced by
|
|
138
155
|
* `scripts/check-runtime-state-durability.ts`.
|
|
@@ -539,11 +539,15 @@ declare const MotionEventSchema: z.ZodObject<{
|
|
|
539
539
|
frameWidth: z.ZodOptional<z.ZodNumber>;
|
|
540
540
|
frameHeight: z.ZodOptional<z.ZodNumber>;
|
|
541
541
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
542
|
-
|
|
542
|
+
durationMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
543
|
+
edges: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
|
|
544
|
+
id: z.ZodNumber;
|
|
543
545
|
deviceId: z.ZodNumber;
|
|
544
546
|
timestamp: z.ZodNumber;
|
|
545
547
|
}, z.core.$strip>;
|
|
546
548
|
export type MotionEvent = z.infer<typeof MotionEventSchema>;
|
|
549
|
+
/** An event BEFORE it has an id — see {@link ObjectEventDraft} (D474). */
|
|
550
|
+
export type MotionEventDraft = Omit<MotionEvent, 'id'>;
|
|
547
551
|
/**
|
|
548
552
|
* Which detection SOURCE produced an object event. `pipeline` = the ML
|
|
549
553
|
* detection pipeline (decoded-frame inference); `onboard` = the camera's
|
|
@@ -659,13 +663,24 @@ declare const ObjectEventSchema: z.ZodObject<{
|
|
|
659
663
|
onboard: "onboard";
|
|
660
664
|
}>>;
|
|
661
665
|
frameId: z.ZodOptional<z.ZodString>;
|
|
666
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
662
667
|
trackId: z.ZodOptional<z.ZodString>;
|
|
663
668
|
className: z.ZodString;
|
|
664
|
-
id: z.
|
|
669
|
+
id: z.ZodNumber;
|
|
665
670
|
deviceId: z.ZodNumber;
|
|
666
671
|
timestamp: z.ZodNumber;
|
|
667
672
|
}, z.core.$strip>;
|
|
668
673
|
export type ObjectEvent = z.infer<typeof ObjectEventSchema>;
|
|
674
|
+
/**
|
|
675
|
+
* An event BEFORE it has an id (D474).
|
|
676
|
+
*
|
|
677
|
+
* The id is the ROWID the database assigns, so no producer upstream of the
|
|
678
|
+
* write can name it: a frame processor, a detector or a classifier builds a
|
|
679
|
+
* DRAFT, `insert` returns the id, and only then does an `ObjectEvent` exist.
|
|
680
|
+
* A draft must never be handed to anything that owns media, names an event on
|
|
681
|
+
* the bus, or feeds a notification rule — those all address a row by id.
|
|
682
|
+
*/
|
|
683
|
+
export type ObjectEventDraft = Omit<ObjectEvent, 'id'>;
|
|
669
684
|
declare const AudioEventSchema: z.ZodObject<{
|
|
670
685
|
kind: z.ZodLiteral<"audio">;
|
|
671
686
|
rms: z.ZodNumber;
|
|
@@ -676,11 +691,13 @@ declare const AudioEventSchema: z.ZodObject<{
|
|
|
676
691
|
score: z.ZodNumber;
|
|
677
692
|
}, z.core.$strip>>;
|
|
678
693
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
679
|
-
id: z.
|
|
694
|
+
id: z.ZodNumber;
|
|
680
695
|
deviceId: z.ZodNumber;
|
|
681
696
|
timestamp: z.ZodNumber;
|
|
682
697
|
}, z.core.$strip>;
|
|
683
698
|
export type AudioEvent = z.infer<typeof AudioEventSchema>;
|
|
699
|
+
/** An event BEFORE it has an id — see {@link ObjectEventDraft} (D474). */
|
|
700
|
+
export type AudioEventDraft = Omit<AudioEvent, 'id'>;
|
|
684
701
|
declare const MediaFileKindEnum: z.ZodEnum<{
|
|
685
702
|
crop: "crop";
|
|
686
703
|
snapshot: "snapshot";
|
|
@@ -1559,9 +1576,10 @@ export declare const ScoredObjectEventSchema: z.ZodObject<{
|
|
|
1559
1576
|
onboard: "onboard";
|
|
1560
1577
|
}>>;
|
|
1561
1578
|
frameId: z.ZodOptional<z.ZodString>;
|
|
1579
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
1562
1580
|
trackId: z.ZodOptional<z.ZodString>;
|
|
1563
1581
|
className: z.ZodString;
|
|
1564
|
-
id: z.
|
|
1582
|
+
id: z.ZodNumber;
|
|
1565
1583
|
deviceId: z.ZodNumber;
|
|
1566
1584
|
timestamp: z.ZodNumber;
|
|
1567
1585
|
score: z.ZodNumber;
|
|
@@ -2267,7 +2285,9 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
2267
2285
|
frameWidth: z.ZodOptional<z.ZodNumber>;
|
|
2268
2286
|
frameHeight: z.ZodOptional<z.ZodNumber>;
|
|
2269
2287
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
2270
|
-
|
|
2288
|
+
durationMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2289
|
+
edges: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
|
|
2290
|
+
id: z.ZodNumber;
|
|
2271
2291
|
deviceId: z.ZodNumber;
|
|
2272
2292
|
timestamp: z.ZodNumber;
|
|
2273
2293
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
@@ -2339,9 +2359,10 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
2339
2359
|
onboard: "onboard";
|
|
2340
2360
|
}>>;
|
|
2341
2361
|
frameId: z.ZodOptional<z.ZodString>;
|
|
2362
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
2342
2363
|
trackId: z.ZodOptional<z.ZodString>;
|
|
2343
2364
|
className: z.ZodString;
|
|
2344
|
-
id: z.
|
|
2365
|
+
id: z.ZodNumber;
|
|
2345
2366
|
deviceId: z.ZodNumber;
|
|
2346
2367
|
timestamp: z.ZodNumber;
|
|
2347
2368
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
@@ -2364,7 +2385,7 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
2364
2385
|
score: z.ZodNumber;
|
|
2365
2386
|
}, z.core.$strip>>;
|
|
2366
2387
|
mediaUrl: z.ZodOptional<z.ZodString>;
|
|
2367
|
-
id: z.
|
|
2388
|
+
id: z.ZodNumber;
|
|
2368
2389
|
deviceId: z.ZodNumber;
|
|
2369
2390
|
timestamp: z.ZodNumber;
|
|
2370
2391
|
}, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
@@ -4016,9 +4037,10 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
4016
4037
|
onboard: "onboard";
|
|
4017
4038
|
}>>;
|
|
4018
4039
|
frameId: z.ZodOptional<z.ZodString>;
|
|
4040
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
4019
4041
|
trackId: z.ZodOptional<z.ZodString>;
|
|
4020
4042
|
className: z.ZodString;
|
|
4021
|
-
id: z.
|
|
4043
|
+
id: z.ZodNumber;
|
|
4022
4044
|
deviceId: z.ZodNumber;
|
|
4023
4045
|
timestamp: z.ZodNumber;
|
|
4024
4046
|
score: z.ZodNumber;
|
|
@@ -200,10 +200,12 @@ export declare const settingsStoreCapability: {
|
|
|
200
200
|
namespace: z.ZodOptional<z.ZodString>;
|
|
201
201
|
collection: z.ZodString;
|
|
202
202
|
record: z.ZodObject<{
|
|
203
|
-
id: z.ZodString
|
|
203
|
+
id: z.ZodOptional<z.ZodString>;
|
|
204
204
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
205
205
|
}, z.core.$strip>;
|
|
206
|
-
}, z.core.$strip>, z.
|
|
206
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
207
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
208
|
+
}, z.core.$strip>, "mutation">;
|
|
207
209
|
/**
|
|
208
210
|
* Insert MANY records in ONE transaction, returning how many landed.
|
|
209
211
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './audio/audio-chunk-format.js';
|
|
2
|
+
export type { EventOwnerType, MediaOwnerKey, MediaOwnerKeyInput, MediaOwnerType, } from './media/media-owner-key.js';
|
|
3
|
+
export { EVENT_OWNER_TYPES, MEDIA_OWNER_TYPES, formatMediaOwnerKey, isEventOwnerType, parseMediaOwnerKey, } from './media/media-owner-key.js';
|
|
2
4
|
export type { CapabilitiesAccess } from './addon/base-addon.js';
|
|
3
5
|
export { BaseAddon, normalizeAddonInitResult } from './addon/base-addon.js';
|
|
4
6
|
export type { AddonRouteInvokeRequest, AddonRouteReplyEnvelope, } from './addon/build-addon-route-provider.js';
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,124 @@ const require_canonical_hash = require("./canonical-hash-DNV8S5ET.js");
|
|
|
5
5
|
const require_enums = require("./enums.js");
|
|
6
6
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
|
+
//#region src/media/media-owner-key.ts
|
|
9
|
+
/**
|
|
10
|
+
* The one place a media key is built and read.
|
|
11
|
+
*
|
|
12
|
+
* A media key addresses a file by its OWNER, in one grammar:
|
|
13
|
+
*
|
|
14
|
+
* ```
|
|
15
|
+
* <ownerType>:<ownerId>:<fileKind>[:<timestampMs>]
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* The owner type is a TABLE. That is already true of every owner on the live
|
|
19
|
+
* hub - `track`, `summary`, `face`, `identity`, `plate` - and the exception was
|
|
20
|
+
* `event`, which covered three tables at once. While event ids were UUIDs the
|
|
21
|
+
* ambiguity cost nothing, because a UUID is unique across tables. D474 made an
|
|
22
|
+
* event id a SQLite rowid alias, so each table numbers from 1 and `event:5`
|
|
23
|
+
* stopped naming one row. Splitting `event` into `motion` / `object` / `audio`
|
|
24
|
+
* restores uniqueness without a fifth segment and without a magic numbering
|
|
25
|
+
* offset, which would have hidden the same invariant somewhere nobody reads.
|
|
26
|
+
*
|
|
27
|
+
* Why this module exists at all, rather than a `split(':')` at each call site:
|
|
28
|
+
* the key is built in the addon, in `ui-library` and in the notification
|
|
29
|
+
* dispatcher, and read positionally in admin-ui (`split(':')[1]` for an owner
|
|
30
|
+
* id). Positional reads are silently wrong the moment a segment moves, and
|
|
31
|
+
* there is no compiler that notices. It lives in `@camstack/types` because both
|
|
32
|
+
* an addon and the UI packages must reach it, and addons may not import each
|
|
33
|
+
* other.
|
|
34
|
+
*
|
|
35
|
+
* `parseMediaOwnerKey` returns `null` for anything it cannot read, and never
|
|
36
|
+
* throws: it sits on the media READ path, where an exception takes out every
|
|
37
|
+
* thumbnail and a guess puts the wrong image on screen. A legacy `event:` key
|
|
38
|
+
* is therefore unreadable BY DESIGN - on this hub the 299 883 resolvable ones
|
|
39
|
+
* are rewritten by the D474 data migration, and the 676 that remain were
|
|
40
|
+
* already orphaned, their event having aged out before it.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Owner types, i.e. the tables that own media.
|
|
44
|
+
*
|
|
45
|
+
* `motion` / `object` / `audio` are the three event tables; `event` is
|
|
46
|
+
* deliberately absent and must not be re-added - it is the ambiguity this
|
|
47
|
+
* module exists to remove.
|
|
48
|
+
*
|
|
49
|
+
* This list must cover `OWNER_KINDS` in
|
|
50
|
+
* `addon-post-analysis/src/pipeline-analytics/store/media-store.ts`, which is
|
|
51
|
+
* the AUTHORITY on what may own media. I first derived it from the prefixes
|
|
52
|
+
* actually present on the live hub and so omitted `vehicle` and `scene`: both
|
|
53
|
+
* are declared owner kinds with no rows today, and the parser would have
|
|
54
|
+
* rejected their keys the day one appeared. A list derived from data is a list
|
|
55
|
+
* that is correct until the data changes.
|
|
56
|
+
*/
|
|
57
|
+
var MEDIA_OWNER_TYPES = [
|
|
58
|
+
"track",
|
|
59
|
+
"summary",
|
|
60
|
+
"face",
|
|
61
|
+
"identity",
|
|
62
|
+
"plate",
|
|
63
|
+
"vehicle",
|
|
64
|
+
"scene",
|
|
65
|
+
"motion",
|
|
66
|
+
"object",
|
|
67
|
+
"audio"
|
|
68
|
+
];
|
|
69
|
+
var OWNER_TYPES = new Set(MEDIA_OWNER_TYPES);
|
|
70
|
+
/** Digits only. `Number('')` is 0 and `Number(' ')` is 0, so neither is used. */
|
|
71
|
+
var DIGITS = /^\d+$/;
|
|
72
|
+
function isOwnerType(value) {
|
|
73
|
+
return OWNER_TYPES.has(value);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Read a media key. `null` when it is not one - an unknown owner type, a legacy
|
|
77
|
+
* `event:` key, a missing segment, or a fourth segment that is not a timestamp.
|
|
78
|
+
*
|
|
79
|
+
* `fileKind` is returned as a plain string rather than validated against
|
|
80
|
+
* `MediaFileKindEnum`: kinds have been RETIRED over time (`crop`,
|
|
81
|
+
* `fullFrameBoxed`) and rows carrying them still exist, so a parser that
|
|
82
|
+
* rejected them would make historical media unreadable while claiming the key
|
|
83
|
+
* was malformed.
|
|
84
|
+
*/
|
|
85
|
+
function parseMediaOwnerKey(key) {
|
|
86
|
+
const parts = key.split(":");
|
|
87
|
+
if (parts.length !== 3 && parts.length !== 4) return null;
|
|
88
|
+
const [ownerType, ownerId, fileKind, timestamp] = parts;
|
|
89
|
+
if (ownerType === void 0 || !isOwnerType(ownerType)) return null;
|
|
90
|
+
if (ownerId === void 0 || ownerId.length === 0) return null;
|
|
91
|
+
if (fileKind === void 0 || fileKind.length === 0) return null;
|
|
92
|
+
if (timestamp === void 0) return {
|
|
93
|
+
ownerType,
|
|
94
|
+
ownerId,
|
|
95
|
+
fileKind
|
|
96
|
+
};
|
|
97
|
+
if (!DIGITS.test(timestamp)) return null;
|
|
98
|
+
return {
|
|
99
|
+
ownerType,
|
|
100
|
+
ownerId,
|
|
101
|
+
fileKind,
|
|
102
|
+
timestampMs: Number(timestamp)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Build a media key. The timestamp segment is omitted when there is none. */
|
|
106
|
+
function formatMediaOwnerKey(key) {
|
|
107
|
+
const head = `${key.ownerType}:${key.ownerId}:${key.fileKind}`;
|
|
108
|
+
return key.timestampMs === void 0 ? head : `${head}:${key.timestampMs}`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The owner types that are event tables, in the order the event-media resolver
|
|
112
|
+
* should consider them. Exported so a consumer asking "is this key an event?"
|
|
113
|
+
* does not re-spell the list and drift from it.
|
|
114
|
+
*/
|
|
115
|
+
var EVENT_OWNER_TYPES = [
|
|
116
|
+
"motion",
|
|
117
|
+
"object",
|
|
118
|
+
"audio"
|
|
119
|
+
];
|
|
120
|
+
var EVENT_OWNER_TYPE_SET = new Set(EVENT_OWNER_TYPES);
|
|
121
|
+
/** True when this key's owner is one of the three event tables. */
|
|
122
|
+
function isEventOwnerType(ownerType) {
|
|
123
|
+
return EVENT_OWNER_TYPE_SET.has(ownerType);
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
8
126
|
//#region src/addon/build-addon-route-provider.ts
|
|
9
127
|
/**
|
|
10
128
|
* Build an `IAddonRouteProvider` from a list of routes. Implements
|
|
@@ -9723,8 +9841,17 @@ var settingsStoreCapability = {
|
|
|
9723
9841
|
insert: require_sleep.method(zod.z.object({
|
|
9724
9842
|
namespace: zod.z.string().optional(),
|
|
9725
9843
|
collection: zod.z.string(),
|
|
9726
|
-
record:
|
|
9727
|
-
|
|
9844
|
+
record: zod.z.object({
|
|
9845
|
+
id: zod.z.string().optional(),
|
|
9846
|
+
data: zod.z.record(zod.z.string(), zod.z.unknown())
|
|
9847
|
+
})
|
|
9848
|
+
}), zod.z.object({
|
|
9849
|
+
/**
|
|
9850
|
+
* The id the row ACTUALLY got (D473): the one supplied, the UUID minted
|
|
9851
|
+
* for an absent one, or the ROWID SQLite assigned on an `INTEGER`
|
|
9852
|
+
* primary key — which is the only place an auto key is knowable.
|
|
9853
|
+
*/
|
|
9854
|
+
id: zod.z.union([zod.z.string(), zod.z.number()]) }), { kind: "mutation" }),
|
|
9728
9855
|
/**
|
|
9729
9856
|
* Insert MANY records in ONE transaction, returning how many landed.
|
|
9730
9857
|
*
|
|
@@ -9987,8 +10114,17 @@ var dataStoreProviderCapability = {
|
|
|
9987
10114
|
insert: require_sleep.method(zod.z.object({
|
|
9988
10115
|
namespace: zod.z.string().optional(),
|
|
9989
10116
|
collection: zod.z.string(),
|
|
9990
|
-
record:
|
|
9991
|
-
|
|
10117
|
+
record: zod.z.object({
|
|
10118
|
+
id: zod.z.string().optional(),
|
|
10119
|
+
data: zod.z.record(zod.z.string(), zod.z.unknown())
|
|
10120
|
+
})
|
|
10121
|
+
}), zod.z.object({
|
|
10122
|
+
/**
|
|
10123
|
+
* The id the row ACTUALLY got (D473): the one supplied, the UUID minted
|
|
10124
|
+
* for an absent one, or the ROWID SQLite assigned on an `INTEGER`
|
|
10125
|
+
* primary key — which is the only place an auto key is knowable.
|
|
10126
|
+
*/
|
|
10127
|
+
id: zod.z.union([zod.z.string(), zod.z.number()]) }), {
|
|
9992
10128
|
kind: "mutation",
|
|
9993
10129
|
auth: "admin"
|
|
9994
10130
|
}),
|
|
@@ -19459,7 +19595,20 @@ var TrackSchema = zod.z.object({
|
|
|
19459
19595
|
...TrackRetrainFields
|
|
19460
19596
|
});
|
|
19461
19597
|
var BaseEventFields = {
|
|
19462
|
-
|
|
19598
|
+
/**
|
|
19599
|
+
* A SQLite ROWID, assigned by the database (D474).
|
|
19600
|
+
*
|
|
19601
|
+
* Was a 36-character UUID and cost 263 MB of a 1 117 MB database — paid
|
|
19602
|
+
* TWICE per row, in the row and in the primary-key index, across 2.1 million
|
|
19603
|
+
* motion, audio and object events. An `INTEGER PRIMARY KEY` in SQLite **is**
|
|
19604
|
+
* the rowid: the table itself is that B-tree, so the index stops existing
|
|
19605
|
+
* rather than getting smaller. No shorter string does that.
|
|
19606
|
+
*
|
|
19607
|
+
* Defined once here for all three event kinds, which is why they move
|
|
19608
|
+
* together: a per-table migration would have forked this and
|
|
19609
|
+
* `COMMON_BASE_COLUMNS` and reunited them two stages later.
|
|
19610
|
+
*/
|
|
19611
|
+
id: zod.z.number().int(),
|
|
19463
19612
|
deviceId: zod.z.number(),
|
|
19464
19613
|
timestamp: zod.z.number()
|
|
19465
19614
|
};
|
|
@@ -19478,7 +19627,34 @@ var MotionEventSchema = zod.z.object({
|
|
|
19478
19627
|
/** Omitted in slim projection. */
|
|
19479
19628
|
frameHeight: zod.z.number().optional(),
|
|
19480
19629
|
/** Populated by B5 (recording playback URL for this event). */
|
|
19481
|
-
mediaUrl: zod.z.string().optional()
|
|
19630
|
+
mediaUrl: zod.z.string().optional(),
|
|
19631
|
+
/**
|
|
19632
|
+
* One row per motion EPISODE, not one per push (D475). `null` while the
|
|
19633
|
+
* episode is still open — a further rising edge extends it in place rather
|
|
19634
|
+
* than inserting a new row. Set once, at close, to `lastOnAt - startedAt`
|
|
19635
|
+
* (the span from the first rising edge to the LAST one, deliberately NOT
|
|
19636
|
+
* `closedAt - startedAt` — the close delay is a quiet CONFIRMATION, not
|
|
19637
|
+
* movement, and folding it in would report `MOTION_CLOSE_AFTER_MS` of
|
|
19638
|
+
* motion for an instantaneous trigger).
|
|
19639
|
+
*
|
|
19640
|
+
* **Absent** (not merely `null`) on a row written before D475 — that means
|
|
19641
|
+
* "closed the old way, before this column existed", never "still open".
|
|
19642
|
+
* Nothing in this codebase may read an absent `durationMs` as an open
|
|
19643
|
+
* episode; only `null` means open.
|
|
19644
|
+
*/
|
|
19645
|
+
durationMs: zod.z.number().nullable().optional(),
|
|
19646
|
+
/**
|
|
19647
|
+
* Ms offsets from `timestamp` (the episode's own first rising edge, so the
|
|
19648
|
+
* first entry is always `0`) of every genuine off→on transition the
|
|
19649
|
+
* episode saw — "ogni evento on si deve salvare" (D475). NOT one entry per
|
|
19650
|
+
* push: a firmware source that keepalives at ~1 Hz for the whole burst
|
|
19651
|
+
* (Reolink, Hikvision) produces exactly one edge; a source that reports an
|
|
19652
|
+
* explicit `false` mid-episode and then resumes before the quiet window
|
|
19653
|
+
* elapses produces another. Stored compactly — see `motion-edge-codec.ts`
|
|
19654
|
+
* — and decoded back to this shape on read. Absent/empty on a legacy row,
|
|
19655
|
+
* which must never be read as "no episode happened here".
|
|
19656
|
+
*/
|
|
19657
|
+
edges: zod.z.array(zod.z.number()).readonly().optional()
|
|
19482
19658
|
});
|
|
19483
19659
|
/**
|
|
19484
19660
|
* Which detection SOURCE produced an object event. `pipeline` = the ML
|
|
@@ -19541,6 +19717,23 @@ var ObjectEventSchema = zod.z.object({
|
|
|
19541
19717
|
* includes it (it is light). Absent on rows written before this field.
|
|
19542
19718
|
*/
|
|
19543
19719
|
frameId: zod.z.string().optional(),
|
|
19720
|
+
/**
|
|
19721
|
+
* A PRODUCER-chosen key that makes a synthetic event's emission idempotent
|
|
19722
|
+
* (D474).
|
|
19723
|
+
*
|
|
19724
|
+
* Only the package detector writes it, and it exists because the event id
|
|
19725
|
+
* stopped being choosable: the delivery and pick-up rows used to BE their
|
|
19726
|
+
* dedupe key (`pa-pkg-<entryId>-delivered`), which is how "never emit a
|
|
19727
|
+
* second delivery for this entry" survived a restart. An `INTEGER` rowid is
|
|
19728
|
+
* assigned by SQLite, so that key had to move off the primary key rather
|
|
19729
|
+
* than be dropped — a detector that cannot recognise its own row re-delivers
|
|
19730
|
+
* every parcel on every boot.
|
|
19731
|
+
*
|
|
19732
|
+
* Absent on every other object event, and on every row written before this
|
|
19733
|
+
* field. Never a substitute for `id`: it is unique per (producer, occasion),
|
|
19734
|
+
* not per row, and nothing addresses a row by it.
|
|
19735
|
+
*/
|
|
19736
|
+
idempotencyKey: zod.z.string().optional(),
|
|
19544
19737
|
/** Omitted in slim projection. */
|
|
19545
19738
|
trackId: zod.z.string().optional(),
|
|
19546
19739
|
className: zod.z.string(),
|
|
@@ -30673,14 +30866,72 @@ authKey: zod.z.string().optional() }), zod.z.object({
|
|
|
30673
30866
|
* (alert-center, advanced-notifier) can subscribe once and receive
|
|
30674
30867
|
* motion from every camera.
|
|
30675
30868
|
*/
|
|
30869
|
+
/**
|
|
30870
|
+
* How long after a camera's last rising edge `pipeline-analytics` closes the
|
|
30871
|
+
* motion EPISODE row it kept open for it (D475) — "il delay della cap", in
|
|
30872
|
+
* the operator's words. One authority for the whole system: every provider
|
|
30873
|
+
* that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
|
|
30874
|
+
* constant while `detected: true` (never its own number — Hikvision used to
|
|
30875
|
+
* seed its internal 3 s inactivity timer here, which is a different clock for
|
|
30876
|
+
* a different purpose), and `MotionEpisodeTracker` imports it directly rather
|
|
30877
|
+
* than reading the live cap value on the hot path. A `Sensor` device (HA
|
|
30878
|
+
* binary sensor, Homematic) gets a genuine push both ways and has no episode
|
|
30879
|
+
* to close on a timer, so it writes `null`, never this constant.
|
|
30880
|
+
*/
|
|
30881
|
+
var MOTION_CLOSE_AFTER_MS = 15e3;
|
|
30676
30882
|
var MotionStatusSchema = zod.z.object({
|
|
30677
30883
|
detected: zod.z.boolean(),
|
|
30678
30884
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
30679
30885
|
lastDetectedAt: zod.z.number().nullable(),
|
|
30680
30886
|
/**
|
|
30681
|
-
*
|
|
30682
|
-
*
|
|
30683
|
-
*
|
|
30887
|
+
* `MOTION_CLOSE_AFTER_MS` while `detected: true` on a `Camera` device,
|
|
30888
|
+
* `null` while false and on every `Sensor` device (D475) — see that
|
|
30889
|
+
* constant's doc for the one-authority rule.
|
|
30890
|
+
*
|
|
30891
|
+
* ## Reading this field still arms nothing
|
|
30892
|
+
*
|
|
30893
|
+
* It reads like an instruction to the consumer ("revert after N ms if
|
|
30894
|
+
* no fresh push arrives") and it is not one: nothing in this repo reads
|
|
30895
|
+
* the LIVE cap value to drive a timer. `pipeline-analytics`'s motion-episode
|
|
30896
|
+
* close DOES now use the same number — `MOTION_CLOSE_AFTER_MS` — but as an
|
|
30897
|
+
* imported constant, not as a read of `device.state.motion.value`, so this
|
|
30898
|
+
* field stays what it always was: DESCRIPTIVE output, mirroring an answer
|
|
30899
|
+
* computed elsewhere. Building a self-clear timer out of a READ of this
|
|
30900
|
+
* field would add a second falling-edge authority beside whichever one
|
|
30901
|
+
* already owns the device, and two that can disagree are worse than one.
|
|
30902
|
+
* Consumers that need a falling edge SHAPED differently — held open across
|
|
30903
|
+
* a flapping source — debounce on their own side and say so, as
|
|
30904
|
+
* `addon-export-alexa/src/motion-clear-hold.ts` and
|
|
30905
|
+
* `addon-export-hap`'s `RESET_DEBOUNCE_MS` both do.
|
|
30906
|
+
*
|
|
30907
|
+
* ## Who writes it
|
|
30908
|
+
*
|
|
30909
|
+
* - **Cameras** — the runner's phase machine, `active → watching` on
|
|
30910
|
+
* `cooldown_expired`, which then writes this slice with
|
|
30911
|
+
* `detected: false` (`handlePhaseChanged` in
|
|
30912
|
+
* `pipeline-runner/index.ts`). It produces the FALLING edge, which
|
|
30913
|
+
* matters most for the sources that only ever push a rising one:
|
|
30914
|
+
* Reolink emits `MotionOnMotionChanged { detected: true }` and never
|
|
30915
|
+
* a false.
|
|
30916
|
+
* - **Sensors** (Home Assistant binary sensors, Homematic) — the
|
|
30917
|
+
* provider pushes the false itself, from the upstream system's own
|
|
30918
|
+
* state change. No phase machine is involved.
|
|
30919
|
+
*
|
|
30920
|
+
* ### The phase machine is CANONICAL, not sole — and that is a defect
|
|
30921
|
+
*
|
|
30922
|
+
* An earlier revision of this docblock (mine, 2026-09-12) claimed the
|
|
30923
|
+
* phase machine is the sole writer for a camera. It is not.
|
|
30924
|
+
* `hikvision-camera.ts:3464` and `amcrest-camera.ts:445` both call
|
|
30925
|
+
* `setCapSlice(motionCapability, …)` on their own rising edge, and
|
|
30926
|
+
* Hikvision's comment says why: it read THIS docblock, agreed the
|
|
30927
|
+
* runner is canonical, and wrote anyway to avoid per-tick churn. So
|
|
30928
|
+
* two authorities can disagree about one slice, which this repo
|
|
30929
|
+
* forbids, and the doc said otherwise — which is worse than saying
|
|
30930
|
+
* nothing, because it reads as verification.
|
|
30931
|
+
*
|
|
30932
|
+
* This predates D475 and is not fixed there: the fix touches every
|
|
30933
|
+
* camera provider. Recorded in D475's Consequences. Do not restore the
|
|
30934
|
+
* "sole writer" wording without also removing the other writers.
|
|
30684
30935
|
*/
|
|
30685
30936
|
autoClearAfterMs: zod.z.number().nullable()
|
|
30686
30937
|
});
|
|
@@ -30750,7 +31001,11 @@ onMotionChanged: { data: MotionOnMotionChangedDataSchema } },
|
|
|
30750
31001
|
*/
|
|
30751
31002
|
runtimeState: MotionStatusSchema,
|
|
30752
31003
|
/**
|
|
30753
|
-
* Runtime-state durability: **session** —
|
|
31004
|
+
* Runtime-state durability: **session** — every writer of this slice
|
|
31005
|
+
* writes only on an EDGE, so a restored `detected: true` would stay
|
|
31006
|
+
* frozen until the next one instead of being corrected. The next edge
|
|
31007
|
+
* re-publishes the real state. (On who the writers are, and why there
|
|
31008
|
+
* is more than one, see `autoClearAfterMs` above.)
|
|
30754
31009
|
*
|
|
30755
31010
|
* See `RuntimeStateDurability`. Enforced by
|
|
30756
31011
|
* `scripts/check-runtime-state-durability.ts`.
|
|
@@ -56032,6 +56287,7 @@ exports.DoorbellStatusSchema = DoorbellStatusSchema;
|
|
|
56032
56287
|
exports.EVENTFUL_CAP_NAMES = EVENTFUL_CAP_NAMES;
|
|
56033
56288
|
exports.EVENT_DENSITY_BATCH_MAX = EVENT_DENSITY_BATCH_MAX;
|
|
56034
56289
|
exports.EVENT_KIND_BY_CAP = EVENT_KIND_BY_CAP;
|
|
56290
|
+
exports.EVENT_OWNER_TYPES = EVENT_OWNER_TYPES;
|
|
56035
56291
|
exports.EVENT_PAD_MS = EVENT_PAD_MS;
|
|
56036
56292
|
exports.EVENT_TAXONOMY = EVENT_TAXONOMY;
|
|
56037
56293
|
exports.EXPORT_DENSE_MAX_RANGES = EXPORT_DENSE_MAX_RANGES;
|
|
@@ -56222,10 +56478,12 @@ exports.MAX_KEYS = MAX_KEYS;
|
|
|
56222
56478
|
exports.MAX_REASONS_PER_KEY = MAX_REASONS_PER_KEY;
|
|
56223
56479
|
exports.MAX_SENSOR_TRIGGER_DEVICES = MAX_SENSOR_TRIGGER_DEVICES;
|
|
56224
56480
|
exports.MAX_TRACK_DEBUG_NOTE_LEN = MAX_TRACK_DEBUG_NOTE_LEN;
|
|
56481
|
+
exports.MEDIA_OWNER_TYPES = MEDIA_OWNER_TYPES;
|
|
56225
56482
|
exports.METHOD_ACCESS_MAP = METHOD_ACCESS_MAP;
|
|
56226
56483
|
exports.METHOD_DEVICE_SELECTORS = METHOD_DEVICE_SELECTORS;
|
|
56227
56484
|
exports.MODEL_FORMATS = MODEL_FORMATS;
|
|
56228
56485
|
exports.MODEL_PROVIDER_IDS = MODEL_PROVIDER_IDS;
|
|
56486
|
+
exports.MOTION_CLOSE_AFTER_MS = MOTION_CLOSE_AFTER_MS;
|
|
56229
56487
|
exports.MOTION_TRIGGER_FEATURE = MOTION_TRIGGER_FEATURE;
|
|
56230
56488
|
exports.ManagedModelCatalogEntrySchema = ManagedModelCatalogEntrySchema;
|
|
56231
56489
|
exports.ManagedModelExtraFileSchema = ManagedModelExtraFileSchema;
|
|
@@ -56997,6 +57255,7 @@ exports.floodCapability = floodCapability;
|
|
|
56997
57255
|
exports.foldSnapshotByFunction = foldSnapshotByFunction;
|
|
56998
57256
|
exports.formatForBackend = formatForBackend;
|
|
56999
57257
|
exports.formatForRuntime = formatForRuntime;
|
|
57258
|
+
exports.formatMediaOwnerKey = formatMediaOwnerKey;
|
|
57000
57259
|
exports.gasCapability = gasCapability;
|
|
57001
57260
|
exports.gbToBytes = gbToBytes;
|
|
57002
57261
|
exports.generateAutomationBlock = generateAutomationBlock;
|
|
@@ -57032,6 +57291,7 @@ exports.isDetectionMacroClass = isDetectionMacroClass;
|
|
|
57032
57291
|
exports.isDeviceConfigCap = require_sleep.isDeviceConfigCap;
|
|
57033
57292
|
exports.isDeviceScopedCap = require_sleep.isDeviceScopedCap;
|
|
57034
57293
|
exports.isEvent = require_sleep.isEvent;
|
|
57294
|
+
exports.isEventOwnerType = isEventOwnerType;
|
|
57035
57295
|
exports.isFirstLevelMacroClass = isFirstLevelMacroClass;
|
|
57036
57296
|
exports.isIsolatedBuiltin = isIsolatedBuiltin;
|
|
57037
57297
|
exports.isLocationEnabled = isLocationEnabled;
|
|
@@ -57119,6 +57379,7 @@ exports.parseExpression = parseExpression;
|
|
|
57119
57379
|
exports.parseJsonArray = require_sleep.parseJsonArray;
|
|
57120
57380
|
exports.parseJsonObject = require_sleep.parseJsonObject;
|
|
57121
57381
|
exports.parseJsonUnknown = require_sleep.parseJsonUnknown;
|
|
57382
|
+
exports.parseMediaOwnerKey = parseMediaOwnerKey;
|
|
57122
57383
|
exports.parseProcStatus = parseProcStatus;
|
|
57123
57384
|
exports.parseProfileBrokerId = require_sleep.parseProfileBrokerId;
|
|
57124
57385
|
exports.parseRuleSection = parseRuleSection;
|
package/dist/index.mjs
CHANGED
|
@@ -4,6 +4,124 @@ import { a as buildAudioArgs, c as buildVideoArgs, d as logBannerArgs, f as pick
|
|
|
4
4
|
import { EventSourceType } from "./enums.mjs";
|
|
5
5
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
+
//#region src/media/media-owner-key.ts
|
|
8
|
+
/**
|
|
9
|
+
* The one place a media key is built and read.
|
|
10
|
+
*
|
|
11
|
+
* A media key addresses a file by its OWNER, in one grammar:
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* <ownerType>:<ownerId>:<fileKind>[:<timestampMs>]
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* The owner type is a TABLE. That is already true of every owner on the live
|
|
18
|
+
* hub - `track`, `summary`, `face`, `identity`, `plate` - and the exception was
|
|
19
|
+
* `event`, which covered three tables at once. While event ids were UUIDs the
|
|
20
|
+
* ambiguity cost nothing, because a UUID is unique across tables. D474 made an
|
|
21
|
+
* event id a SQLite rowid alias, so each table numbers from 1 and `event:5`
|
|
22
|
+
* stopped naming one row. Splitting `event` into `motion` / `object` / `audio`
|
|
23
|
+
* restores uniqueness without a fifth segment and without a magic numbering
|
|
24
|
+
* offset, which would have hidden the same invariant somewhere nobody reads.
|
|
25
|
+
*
|
|
26
|
+
* Why this module exists at all, rather than a `split(':')` at each call site:
|
|
27
|
+
* the key is built in the addon, in `ui-library` and in the notification
|
|
28
|
+
* dispatcher, and read positionally in admin-ui (`split(':')[1]` for an owner
|
|
29
|
+
* id). Positional reads are silently wrong the moment a segment moves, and
|
|
30
|
+
* there is no compiler that notices. It lives in `@camstack/types` because both
|
|
31
|
+
* an addon and the UI packages must reach it, and addons may not import each
|
|
32
|
+
* other.
|
|
33
|
+
*
|
|
34
|
+
* `parseMediaOwnerKey` returns `null` for anything it cannot read, and never
|
|
35
|
+
* throws: it sits on the media READ path, where an exception takes out every
|
|
36
|
+
* thumbnail and a guess puts the wrong image on screen. A legacy `event:` key
|
|
37
|
+
* is therefore unreadable BY DESIGN - on this hub the 299 883 resolvable ones
|
|
38
|
+
* are rewritten by the D474 data migration, and the 676 that remain were
|
|
39
|
+
* already orphaned, their event having aged out before it.
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Owner types, i.e. the tables that own media.
|
|
43
|
+
*
|
|
44
|
+
* `motion` / `object` / `audio` are the three event tables; `event` is
|
|
45
|
+
* deliberately absent and must not be re-added - it is the ambiguity this
|
|
46
|
+
* module exists to remove.
|
|
47
|
+
*
|
|
48
|
+
* This list must cover `OWNER_KINDS` in
|
|
49
|
+
* `addon-post-analysis/src/pipeline-analytics/store/media-store.ts`, which is
|
|
50
|
+
* the AUTHORITY on what may own media. I first derived it from the prefixes
|
|
51
|
+
* actually present on the live hub and so omitted `vehicle` and `scene`: both
|
|
52
|
+
* are declared owner kinds with no rows today, and the parser would have
|
|
53
|
+
* rejected their keys the day one appeared. A list derived from data is a list
|
|
54
|
+
* that is correct until the data changes.
|
|
55
|
+
*/
|
|
56
|
+
var MEDIA_OWNER_TYPES = [
|
|
57
|
+
"track",
|
|
58
|
+
"summary",
|
|
59
|
+
"face",
|
|
60
|
+
"identity",
|
|
61
|
+
"plate",
|
|
62
|
+
"vehicle",
|
|
63
|
+
"scene",
|
|
64
|
+
"motion",
|
|
65
|
+
"object",
|
|
66
|
+
"audio"
|
|
67
|
+
];
|
|
68
|
+
var OWNER_TYPES = new Set(MEDIA_OWNER_TYPES);
|
|
69
|
+
/** Digits only. `Number('')` is 0 and `Number(' ')` is 0, so neither is used. */
|
|
70
|
+
var DIGITS = /^\d+$/;
|
|
71
|
+
function isOwnerType(value) {
|
|
72
|
+
return OWNER_TYPES.has(value);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Read a media key. `null` when it is not one - an unknown owner type, a legacy
|
|
76
|
+
* `event:` key, a missing segment, or a fourth segment that is not a timestamp.
|
|
77
|
+
*
|
|
78
|
+
* `fileKind` is returned as a plain string rather than validated against
|
|
79
|
+
* `MediaFileKindEnum`: kinds have been RETIRED over time (`crop`,
|
|
80
|
+
* `fullFrameBoxed`) and rows carrying them still exist, so a parser that
|
|
81
|
+
* rejected them would make historical media unreadable while claiming the key
|
|
82
|
+
* was malformed.
|
|
83
|
+
*/
|
|
84
|
+
function parseMediaOwnerKey(key) {
|
|
85
|
+
const parts = key.split(":");
|
|
86
|
+
if (parts.length !== 3 && parts.length !== 4) return null;
|
|
87
|
+
const [ownerType, ownerId, fileKind, timestamp] = parts;
|
|
88
|
+
if (ownerType === void 0 || !isOwnerType(ownerType)) return null;
|
|
89
|
+
if (ownerId === void 0 || ownerId.length === 0) return null;
|
|
90
|
+
if (fileKind === void 0 || fileKind.length === 0) return null;
|
|
91
|
+
if (timestamp === void 0) return {
|
|
92
|
+
ownerType,
|
|
93
|
+
ownerId,
|
|
94
|
+
fileKind
|
|
95
|
+
};
|
|
96
|
+
if (!DIGITS.test(timestamp)) return null;
|
|
97
|
+
return {
|
|
98
|
+
ownerType,
|
|
99
|
+
ownerId,
|
|
100
|
+
fileKind,
|
|
101
|
+
timestampMs: Number(timestamp)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/** Build a media key. The timestamp segment is omitted when there is none. */
|
|
105
|
+
function formatMediaOwnerKey(key) {
|
|
106
|
+
const head = `${key.ownerType}:${key.ownerId}:${key.fileKind}`;
|
|
107
|
+
return key.timestampMs === void 0 ? head : `${head}:${key.timestampMs}`;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The owner types that are event tables, in the order the event-media resolver
|
|
111
|
+
* should consider them. Exported so a consumer asking "is this key an event?"
|
|
112
|
+
* does not re-spell the list and drift from it.
|
|
113
|
+
*/
|
|
114
|
+
var EVENT_OWNER_TYPES = [
|
|
115
|
+
"motion",
|
|
116
|
+
"object",
|
|
117
|
+
"audio"
|
|
118
|
+
];
|
|
119
|
+
var EVENT_OWNER_TYPE_SET = new Set(EVENT_OWNER_TYPES);
|
|
120
|
+
/** True when this key's owner is one of the three event tables. */
|
|
121
|
+
function isEventOwnerType(ownerType) {
|
|
122
|
+
return EVENT_OWNER_TYPE_SET.has(ownerType);
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
7
125
|
//#region src/addon/build-addon-route-provider.ts
|
|
8
126
|
/**
|
|
9
127
|
* Build an `IAddonRouteProvider` from a list of routes. Implements
|
|
@@ -9722,8 +9840,17 @@ var settingsStoreCapability = {
|
|
|
9722
9840
|
insert: method(z.object({
|
|
9723
9841
|
namespace: z.string().optional(),
|
|
9724
9842
|
collection: z.string(),
|
|
9725
|
-
record:
|
|
9726
|
-
|
|
9843
|
+
record: z.object({
|
|
9844
|
+
id: z.string().optional(),
|
|
9845
|
+
data: z.record(z.string(), z.unknown())
|
|
9846
|
+
})
|
|
9847
|
+
}), z.object({
|
|
9848
|
+
/**
|
|
9849
|
+
* The id the row ACTUALLY got (D473): the one supplied, the UUID minted
|
|
9850
|
+
* for an absent one, or the ROWID SQLite assigned on an `INTEGER`
|
|
9851
|
+
* primary key — which is the only place an auto key is knowable.
|
|
9852
|
+
*/
|
|
9853
|
+
id: z.union([z.string(), z.number()]) }), { kind: "mutation" }),
|
|
9727
9854
|
/**
|
|
9728
9855
|
* Insert MANY records in ONE transaction, returning how many landed.
|
|
9729
9856
|
*
|
|
@@ -9986,8 +10113,17 @@ var dataStoreProviderCapability = {
|
|
|
9986
10113
|
insert: method(z.object({
|
|
9987
10114
|
namespace: z.string().optional(),
|
|
9988
10115
|
collection: z.string(),
|
|
9989
|
-
record:
|
|
9990
|
-
|
|
10116
|
+
record: z.object({
|
|
10117
|
+
id: z.string().optional(),
|
|
10118
|
+
data: z.record(z.string(), z.unknown())
|
|
10119
|
+
})
|
|
10120
|
+
}), z.object({
|
|
10121
|
+
/**
|
|
10122
|
+
* The id the row ACTUALLY got (D473): the one supplied, the UUID minted
|
|
10123
|
+
* for an absent one, or the ROWID SQLite assigned on an `INTEGER`
|
|
10124
|
+
* primary key — which is the only place an auto key is knowable.
|
|
10125
|
+
*/
|
|
10126
|
+
id: z.union([z.string(), z.number()]) }), {
|
|
9991
10127
|
kind: "mutation",
|
|
9992
10128
|
auth: "admin"
|
|
9993
10129
|
}),
|
|
@@ -19458,7 +19594,20 @@ var TrackSchema = z.object({
|
|
|
19458
19594
|
...TrackRetrainFields
|
|
19459
19595
|
});
|
|
19460
19596
|
var BaseEventFields = {
|
|
19461
|
-
|
|
19597
|
+
/**
|
|
19598
|
+
* A SQLite ROWID, assigned by the database (D474).
|
|
19599
|
+
*
|
|
19600
|
+
* Was a 36-character UUID and cost 263 MB of a 1 117 MB database — paid
|
|
19601
|
+
* TWICE per row, in the row and in the primary-key index, across 2.1 million
|
|
19602
|
+
* motion, audio and object events. An `INTEGER PRIMARY KEY` in SQLite **is**
|
|
19603
|
+
* the rowid: the table itself is that B-tree, so the index stops existing
|
|
19604
|
+
* rather than getting smaller. No shorter string does that.
|
|
19605
|
+
*
|
|
19606
|
+
* Defined once here for all three event kinds, which is why they move
|
|
19607
|
+
* together: a per-table migration would have forked this and
|
|
19608
|
+
* `COMMON_BASE_COLUMNS` and reunited them two stages later.
|
|
19609
|
+
*/
|
|
19610
|
+
id: z.number().int(),
|
|
19462
19611
|
deviceId: z.number(),
|
|
19463
19612
|
timestamp: z.number()
|
|
19464
19613
|
};
|
|
@@ -19477,7 +19626,34 @@ var MotionEventSchema = z.object({
|
|
|
19477
19626
|
/** Omitted in slim projection. */
|
|
19478
19627
|
frameHeight: z.number().optional(),
|
|
19479
19628
|
/** Populated by B5 (recording playback URL for this event). */
|
|
19480
|
-
mediaUrl: z.string().optional()
|
|
19629
|
+
mediaUrl: z.string().optional(),
|
|
19630
|
+
/**
|
|
19631
|
+
* One row per motion EPISODE, not one per push (D475). `null` while the
|
|
19632
|
+
* episode is still open — a further rising edge extends it in place rather
|
|
19633
|
+
* than inserting a new row. Set once, at close, to `lastOnAt - startedAt`
|
|
19634
|
+
* (the span from the first rising edge to the LAST one, deliberately NOT
|
|
19635
|
+
* `closedAt - startedAt` — the close delay is a quiet CONFIRMATION, not
|
|
19636
|
+
* movement, and folding it in would report `MOTION_CLOSE_AFTER_MS` of
|
|
19637
|
+
* motion for an instantaneous trigger).
|
|
19638
|
+
*
|
|
19639
|
+
* **Absent** (not merely `null`) on a row written before D475 — that means
|
|
19640
|
+
* "closed the old way, before this column existed", never "still open".
|
|
19641
|
+
* Nothing in this codebase may read an absent `durationMs` as an open
|
|
19642
|
+
* episode; only `null` means open.
|
|
19643
|
+
*/
|
|
19644
|
+
durationMs: z.number().nullable().optional(),
|
|
19645
|
+
/**
|
|
19646
|
+
* Ms offsets from `timestamp` (the episode's own first rising edge, so the
|
|
19647
|
+
* first entry is always `0`) of every genuine off→on transition the
|
|
19648
|
+
* episode saw — "ogni evento on si deve salvare" (D475). NOT one entry per
|
|
19649
|
+
* push: a firmware source that keepalives at ~1 Hz for the whole burst
|
|
19650
|
+
* (Reolink, Hikvision) produces exactly one edge; a source that reports an
|
|
19651
|
+
* explicit `false` mid-episode and then resumes before the quiet window
|
|
19652
|
+
* elapses produces another. Stored compactly — see `motion-edge-codec.ts`
|
|
19653
|
+
* — and decoded back to this shape on read. Absent/empty on a legacy row,
|
|
19654
|
+
* which must never be read as "no episode happened here".
|
|
19655
|
+
*/
|
|
19656
|
+
edges: z.array(z.number()).readonly().optional()
|
|
19481
19657
|
});
|
|
19482
19658
|
/**
|
|
19483
19659
|
* Which detection SOURCE produced an object event. `pipeline` = the ML
|
|
@@ -19540,6 +19716,23 @@ var ObjectEventSchema = z.object({
|
|
|
19540
19716
|
* includes it (it is light). Absent on rows written before this field.
|
|
19541
19717
|
*/
|
|
19542
19718
|
frameId: z.string().optional(),
|
|
19719
|
+
/**
|
|
19720
|
+
* A PRODUCER-chosen key that makes a synthetic event's emission idempotent
|
|
19721
|
+
* (D474).
|
|
19722
|
+
*
|
|
19723
|
+
* Only the package detector writes it, and it exists because the event id
|
|
19724
|
+
* stopped being choosable: the delivery and pick-up rows used to BE their
|
|
19725
|
+
* dedupe key (`pa-pkg-<entryId>-delivered`), which is how "never emit a
|
|
19726
|
+
* second delivery for this entry" survived a restart. An `INTEGER` rowid is
|
|
19727
|
+
* assigned by SQLite, so that key had to move off the primary key rather
|
|
19728
|
+
* than be dropped — a detector that cannot recognise its own row re-delivers
|
|
19729
|
+
* every parcel on every boot.
|
|
19730
|
+
*
|
|
19731
|
+
* Absent on every other object event, and on every row written before this
|
|
19732
|
+
* field. Never a substitute for `id`: it is unique per (producer, occasion),
|
|
19733
|
+
* not per row, and nothing addresses a row by it.
|
|
19734
|
+
*/
|
|
19735
|
+
idempotencyKey: z.string().optional(),
|
|
19543
19736
|
/** Omitted in slim projection. */
|
|
19544
19737
|
trackId: z.string().optional(),
|
|
19545
19738
|
className: z.string(),
|
|
@@ -30672,14 +30865,72 @@ authKey: z.string().optional() }), z.object({
|
|
|
30672
30865
|
* (alert-center, advanced-notifier) can subscribe once and receive
|
|
30673
30866
|
* motion from every camera.
|
|
30674
30867
|
*/
|
|
30868
|
+
/**
|
|
30869
|
+
* How long after a camera's last rising edge `pipeline-analytics` closes the
|
|
30870
|
+
* motion EPISODE row it kept open for it (D475) — "il delay della cap", in
|
|
30871
|
+
* the operator's words. One authority for the whole system: every provider
|
|
30872
|
+
* that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
|
|
30873
|
+
* constant while `detected: true` (never its own number — Hikvision used to
|
|
30874
|
+
* seed its internal 3 s inactivity timer here, which is a different clock for
|
|
30875
|
+
* a different purpose), and `MotionEpisodeTracker` imports it directly rather
|
|
30876
|
+
* than reading the live cap value on the hot path. A `Sensor` device (HA
|
|
30877
|
+
* binary sensor, Homematic) gets a genuine push both ways and has no episode
|
|
30878
|
+
* to close on a timer, so it writes `null`, never this constant.
|
|
30879
|
+
*/
|
|
30880
|
+
var MOTION_CLOSE_AFTER_MS = 15e3;
|
|
30675
30881
|
var MotionStatusSchema = z.object({
|
|
30676
30882
|
detected: z.boolean(),
|
|
30677
30883
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
30678
30884
|
lastDetectedAt: z.number().nullable(),
|
|
30679
30885
|
/**
|
|
30680
|
-
*
|
|
30681
|
-
*
|
|
30682
|
-
*
|
|
30886
|
+
* `MOTION_CLOSE_AFTER_MS` while `detected: true` on a `Camera` device,
|
|
30887
|
+
* `null` while false and on every `Sensor` device (D475) — see that
|
|
30888
|
+
* constant's doc for the one-authority rule.
|
|
30889
|
+
*
|
|
30890
|
+
* ## Reading this field still arms nothing
|
|
30891
|
+
*
|
|
30892
|
+
* It reads like an instruction to the consumer ("revert after N ms if
|
|
30893
|
+
* no fresh push arrives") and it is not one: nothing in this repo reads
|
|
30894
|
+
* the LIVE cap value to drive a timer. `pipeline-analytics`'s motion-episode
|
|
30895
|
+
* close DOES now use the same number — `MOTION_CLOSE_AFTER_MS` — but as an
|
|
30896
|
+
* imported constant, not as a read of `device.state.motion.value`, so this
|
|
30897
|
+
* field stays what it always was: DESCRIPTIVE output, mirroring an answer
|
|
30898
|
+
* computed elsewhere. Building a self-clear timer out of a READ of this
|
|
30899
|
+
* field would add a second falling-edge authority beside whichever one
|
|
30900
|
+
* already owns the device, and two that can disagree are worse than one.
|
|
30901
|
+
* Consumers that need a falling edge SHAPED differently — held open across
|
|
30902
|
+
* a flapping source — debounce on their own side and say so, as
|
|
30903
|
+
* `addon-export-alexa/src/motion-clear-hold.ts` and
|
|
30904
|
+
* `addon-export-hap`'s `RESET_DEBOUNCE_MS` both do.
|
|
30905
|
+
*
|
|
30906
|
+
* ## Who writes it
|
|
30907
|
+
*
|
|
30908
|
+
* - **Cameras** — the runner's phase machine, `active → watching` on
|
|
30909
|
+
* `cooldown_expired`, which then writes this slice with
|
|
30910
|
+
* `detected: false` (`handlePhaseChanged` in
|
|
30911
|
+
* `pipeline-runner/index.ts`). It produces the FALLING edge, which
|
|
30912
|
+
* matters most for the sources that only ever push a rising one:
|
|
30913
|
+
* Reolink emits `MotionOnMotionChanged { detected: true }` and never
|
|
30914
|
+
* a false.
|
|
30915
|
+
* - **Sensors** (Home Assistant binary sensors, Homematic) — the
|
|
30916
|
+
* provider pushes the false itself, from the upstream system's own
|
|
30917
|
+
* state change. No phase machine is involved.
|
|
30918
|
+
*
|
|
30919
|
+
* ### The phase machine is CANONICAL, not sole — and that is a defect
|
|
30920
|
+
*
|
|
30921
|
+
* An earlier revision of this docblock (mine, 2026-09-12) claimed the
|
|
30922
|
+
* phase machine is the sole writer for a camera. It is not.
|
|
30923
|
+
* `hikvision-camera.ts:3464` and `amcrest-camera.ts:445` both call
|
|
30924
|
+
* `setCapSlice(motionCapability, …)` on their own rising edge, and
|
|
30925
|
+
* Hikvision's comment says why: it read THIS docblock, agreed the
|
|
30926
|
+
* runner is canonical, and wrote anyway to avoid per-tick churn. So
|
|
30927
|
+
* two authorities can disagree about one slice, which this repo
|
|
30928
|
+
* forbids, and the doc said otherwise — which is worse than saying
|
|
30929
|
+
* nothing, because it reads as verification.
|
|
30930
|
+
*
|
|
30931
|
+
* This predates D475 and is not fixed there: the fix touches every
|
|
30932
|
+
* camera provider. Recorded in D475's Consequences. Do not restore the
|
|
30933
|
+
* "sole writer" wording without also removing the other writers.
|
|
30683
30934
|
*/
|
|
30684
30935
|
autoClearAfterMs: z.number().nullable()
|
|
30685
30936
|
});
|
|
@@ -30749,7 +31000,11 @@ onMotionChanged: { data: MotionOnMotionChangedDataSchema } },
|
|
|
30749
31000
|
*/
|
|
30750
31001
|
runtimeState: MotionStatusSchema,
|
|
30751
31002
|
/**
|
|
30752
|
-
* Runtime-state durability: **session** —
|
|
31003
|
+
* Runtime-state durability: **session** — every writer of this slice
|
|
31004
|
+
* writes only on an EDGE, so a restored `detected: true` would stay
|
|
31005
|
+
* frozen until the next one instead of being corrected. The next edge
|
|
31006
|
+
* re-publishes the real state. (On who the writers are, and why there
|
|
31007
|
+
* is more than one, see `autoClearAfterMs` above.)
|
|
30753
31008
|
*
|
|
30754
31009
|
* See `RuntimeStateDurability`. Enforced by
|
|
30755
31010
|
* `scripts/check-runtime-state-durability.ts`.
|
|
@@ -55721,4 +55976,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
55721
55976
|
return out;
|
|
55722
55977
|
}
|
|
55723
55978
|
//#endregion
|
|
55724
|
-
export { ACCESSORY_LABEL, ACCESS_ROLES, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_CHUNK_FORMATS, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AUDIO_SCALE_EPOCH_ISO, AUDIO_SCALE_EPOCH_MS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, ArchivedDebugNoteQueryInputSchema, ArchivedDebugNoteSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioAttachDeviceInputSchema, AudioAttachDeviceResultSchema, AudioChunkFormatSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioDetachDeviceResultSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BIRTH_DECISION_DEFAULT_LIMIT, BOOT_RECOVERY_BACKOFF_MS, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BackupRunPhaseSchema, BackupRunSchema, BackupRunStateSchema, BackupTriggerResultSchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BirthDecisionQueryInputSchema, BirthDecisionRecordSchema, BirthDecisionVerdictSchema, 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, BulkRecordSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, CLASS_MAP_MACRO_TARGETS, CLUSTER_MODEL_SCOPED_STEPS, CLUSTER_MODEL_SECTION_ID, CLUSTER_STEP_SETTING_FIELDS, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CONTAINER_CHILD_PRIORITY, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraOccupancySnapshotForDeviceSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_CLUSTER_STEP_MODELS, DEFAULT_CLUSTER_STEP_SETTINGS, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_POOL_MEMORY_POLICY, DEFAULT_RECORDING_PROFILES, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_MACRO_CLASSES, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_CHILDREN_BATCH_MAX, DEVICE_PROFILES, DEVICE_RESTORE_RETRY_CONCURRENCY, DEVICE_RESTORE_RETRY_DELAYS_MS, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRestoreRetryScheduler, DeviceRole, DeviceRuntimeState, DeviceSelectorSchema, DeviceStatusSchema, DeviceType, DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DiskReconcileJobSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_DENSITY_BATCH_MAX, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventDensityBucketSchema, EventDensityForDeviceSchema, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportBytesSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FIRST_LEVEL_MACRO_CLASSES, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, G711_SCALE_CORRECTION_DB, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, INFERENCE_DEVICE_EXCLUSION_REASONS, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LEGACY_READ_ONLY_CONFIG_KEY, LOAD_CONTRIBUTION_ATTRIBUTIONS, LOAD_CONTRIBUTION_ROLES, LOG_CHANNEL_TICK_MS, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LedgerWalkDeviceReportSchema, LedgerWalkInputSchema, LedgerWalkRefusalSchema, LedgerWalkReportSchema, LedgerWalkSkipCountsSchema, LedgerWalkSkipReasonSchema, LegacyStorageLocationDefaultSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmDownloadProgressSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRetryPolicySchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmTimeoutDefaults, LlmUsageRollupSchema, LlmUsageSchema, LoadContributionSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogChannelApplyResultSchema, LogChannelDescriptorSchema, LogChannelGate, LogChannelLevelSchema, LogChannelRegistry, LogChannelWindowPatchSchema, LogChannelWindowSchema, LogChannelWindowStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_ARCHIVED_DEBUG_NOTES, MAX_BIRTH_DECISION_RECORDS, MAX_BIRTH_LATENCY_PROXY_MS, MAX_CLIP_EVENT_IDS, MAX_CLIP_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, MAX_KEYS, MAX_REASONS_PER_KEY, MAX_SENSOR_TRIGGER_DEVICES, MAX_TRACK_DEBUG_NOTE_LEN, METHOD_ACCESS_MAP, METHOD_DEVICE_SELECTORS, MODEL_FORMATS, MODEL_PROVIDER_IDS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MediaRelocateModeSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, MigrateDeviceResultSchema, MigrateSwitchOutcomeSchema, MigrateSwitchReportSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelProviderIdSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DBFS_FLOOR, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, NC_AUDIO_SEED, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SNOOZE_MAX_MINUTES, NC_SYSTEM_DELIVERY, NC_SYSTEM_EVENT_FILTER_KEYS, NC_TAXONOMY, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NavigationActionEntrySchema, NavigationActionIdSchema, NavigationEntryKindSchema, NavigationFeaturesSchema, NavigationLightModeSchema, NavigationModeSchema, NavigationMoveCommandSchema, NavigationPointSchema, NavigationRuntimeStateSchema, NavigationStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcSceneConditionSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NetworkLinkStatusSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPERATOR_WRITTEN_STALE_MS, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OVERFLOW_REASON, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, ParkRefusalSchema, ParkTrackFrameResultSchema, ParkedFrameKindSchema, ParkedTrackFrameSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, RECORDING_EXPORT_MAX_READ_BYTES, RECORDING_TIMELINE_BATCH_MAX, REDACTED_SECRET, RESERVED_BINDING_NAMES, RESTORED_CAP_NAMES, ROOT_BUCKET_KEY, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysForDeviceSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingObjectTriggerClassSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingSignalRuntimeStateSchema, RecordingSignalStatusSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocatableMediaCountInputSchema, RelocatableMediaCountSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RelocateResidueInputSchema, RelocateResidueSchema, RenderedAsSchema, ReportMotionInputSchema, ReportedFailureContributionSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, SCOPE_PRESETS, SENSOR_FEATURES, SENSOR_MAP, SHARE_VIEW_KINDS, SOURCE_CAPS, SOURCE_CAP_ACTIVE_FIELD, SOURCE_CAP_CHANGED_AT_FIELD, SOURCE_DEVICE_TYPES, SOURCE_INFO_METADATA_KEY, STORAGE_ACCESS_FALLBACK, STORAGE_BYTES_PER_GB, STORAGE_LOCATION_MODES, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, SYSTEM_CAP_NAMES, SYSTEM_SCOPE_DEVICE_METHODS, SceneCheckSchema, SceneConditionSchema, SceneConfirmSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, SceneReferenceSchema, SceneUnavailableSchema, SceneUncoveredPolicySchema, SceneVerdictSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, StorageAccessSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, StorageCleanupInputSchema, StorageCleanupJobSchema, StorageCleanupPhaseSchema, StorageCleanupStatusInputSchema, StorageDrainProgressSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, StorageEvictionPolicySchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationModeSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationDrainInputSchema, StorageMigrationFindingCodeSchema, StorageMigrationFindingSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLaneSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationModeSchema, StorageMigrationMoveProgressSchema, StorageMigrationMoveSchema, StorageMigrationMoverSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, StorageMigrationResidueSchema, StorageMigrationSourcesSchema, StorageOccupancyReportSchema, 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, SummarySchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VISIT_MERGE_GAP_MS, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, WrapperEvidenceSchema, WrapperIdentitySchema, WrapperKindSchema, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, __resetLogChannelRegistryForTests, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioChunkBytesPerSample, audioCodecCapability, audioIsFailClosed, audioKindId, audioLabelChoices, audioMetricsCapability, audioModeOf, audioOrDefaults, audioPlanFromEncodeProfile, audioScaleEraOf, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildRoleScopes, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, collectHydratedFieldEntries, collectHydratedFieldValues, collectSecretConfigKeys, colorCapability, colorForKind, commitWatchdogRestart, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, declareLogChannel, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeCustomActions, describeModelVariant, detectAccessRole, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, doorbellCapability, droppedConditionsForKind, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluatePoolMemory, evaluateSensorEdge, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, evictionPolicyForMode, evictionPolicyOfLocation, expandAudioChunkToF32le, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, foldSnapshotByFunction, formatForBackend, formatForRuntime, gasCapability, gbToBytes, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, inferModelProvider, initialPoolMemoryState, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isAudioChunkFormat, isAudioLabelSelected, isAudioRule, isBaseConditionKey, isBatteryPresenceFault, isClusterScopedStep, isCollectionArrayMethod, isDeployableToAgent, isDetectionMacroClass, isDeviceConfigCap, isDeviceScopedCap, isEvent, isFirstLevelMacroClass, isIsolatedBuiltin, isLocationEnabled, isNode, isObjectInput, isOccupancyRule, isRestoredCap, isSameAddonId, isScheduleActive, isSecretConfigField, isSoftwareDecode, isSourceCap, isStorageLocationMode, isSystemDelivery, isVoidInput, ituDbfsFromPreEpoch, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, legacyModeOf, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, loadContributionCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logChannelsCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mayReadLocation, mayWriteToLocation, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, migrateLegacyDeviceSignalConfig, modeMayRead, modeMayWrite, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, networkAccessCapability, networkLinkCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeTokenScopes, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, overlayClusterStepSettings, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProcStatus, parseProfileBrokerId, parseRuleSection, parseStreamParamsFormPatch, patchAudio, petFeederCapability, pickAccessoryControl, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, poolMemoryThreshold, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, recordingSignalCapability, rectsToCells, reducePoints, requiresPython, resetPoolBaseline, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveBucketMs, resolveCapMount, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveLocationMode, resolveMethodAuth, resolveModelFormat, resolveMutate, resolvePoolMemoryPolicy, resolveRecordingProfiles, resolveRunnerId, resolveVariantModelId, resolveViewableDeviceIds, roleSpec, ruleEditorSectionsForKind, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, runInferenceStep, runtimeDevices, runtimeStatePolicyFor, sceneMonitorCapability, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, signalPercentFromBars, signalPercentFromRssi, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageOccupancyCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, stripRetiredBandPreBufferSec, strippedOfLegacyReadOnly, subKindsOf, summarisePrivacyAudio, summarizeEffectiveScope, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, toggleAudioLabel, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, withLocationMode, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
|
|
55979
|
+
export { ACCESSORY_LABEL, ACCESS_ROLES, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_CHUNK_FORMATS, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AUDIO_SCALE_EPOCH_ISO, AUDIO_SCALE_EPOCH_MS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, ArchivedDebugNoteQueryInputSchema, ArchivedDebugNoteSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioAttachDeviceInputSchema, AudioAttachDeviceResultSchema, AudioChunkFormatSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioDetachDeviceResultSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BIRTH_DECISION_DEFAULT_LIMIT, BOOT_RECOVERY_BACKOFF_MS, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BackupRunPhaseSchema, BackupRunSchema, BackupRunStateSchema, BackupTriggerResultSchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BirthDecisionQueryInputSchema, BirthDecisionRecordSchema, BirthDecisionVerdictSchema, 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, BulkRecordSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, CLASS_MAP_MACRO_TARGETS, CLUSTER_MODEL_SCOPED_STEPS, CLUSTER_MODEL_SECTION_ID, CLUSTER_STEP_SETTING_FIELDS, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CONTAINER_CHILD_PRIORITY, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraOccupancySnapshotForDeviceSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_CLUSTER_STEP_MODELS, DEFAULT_CLUSTER_STEP_SETTINGS, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_POOL_MEMORY_POLICY, DEFAULT_RECORDING_PROFILES, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_MACRO_CLASSES, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_CHILDREN_BATCH_MAX, DEVICE_PROFILES, DEVICE_RESTORE_RETRY_CONCURRENCY, DEVICE_RESTORE_RETRY_DELAYS_MS, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRestoreRetryScheduler, DeviceRole, DeviceRuntimeState, DeviceSelectorSchema, DeviceStatusSchema, DeviceType, DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DiskReconcileJobSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_DENSITY_BATCH_MAX, EVENT_KIND_BY_CAP, EVENT_OWNER_TYPES, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventDensityBucketSchema, EventDensityForDeviceSchema, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportBytesSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FIRST_LEVEL_MACRO_CLASSES, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, G711_SCALE_CORRECTION_DB, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, INFERENCE_DEVICE_EXCLUSION_REASONS, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LEGACY_READ_ONLY_CONFIG_KEY, LOAD_CONTRIBUTION_ATTRIBUTIONS, LOAD_CONTRIBUTION_ROLES, LOG_CHANNEL_TICK_MS, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LedgerWalkDeviceReportSchema, LedgerWalkInputSchema, LedgerWalkRefusalSchema, LedgerWalkReportSchema, LedgerWalkSkipCountsSchema, LedgerWalkSkipReasonSchema, LegacyStorageLocationDefaultSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmDownloadProgressSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRetryPolicySchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmTimeoutDefaults, LlmUsageRollupSchema, LlmUsageSchema, LoadContributionSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogChannelApplyResultSchema, LogChannelDescriptorSchema, LogChannelGate, LogChannelLevelSchema, LogChannelRegistry, LogChannelWindowPatchSchema, LogChannelWindowSchema, LogChannelWindowStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_ARCHIVED_DEBUG_NOTES, MAX_BIRTH_DECISION_RECORDS, MAX_BIRTH_LATENCY_PROXY_MS, MAX_CLIP_EVENT_IDS, MAX_CLIP_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, MAX_KEYS, MAX_REASONS_PER_KEY, MAX_SENSOR_TRIGGER_DEVICES, MAX_TRACK_DEBUG_NOTE_LEN, MEDIA_OWNER_TYPES, METHOD_ACCESS_MAP, METHOD_DEVICE_SELECTORS, MODEL_FORMATS, MODEL_PROVIDER_IDS, MOTION_CLOSE_AFTER_MS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MediaRelocateModeSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, MigrateDeviceResultSchema, MigrateSwitchOutcomeSchema, MigrateSwitchReportSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelProviderIdSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DBFS_FLOOR, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, NC_AUDIO_SEED, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SNOOZE_MAX_MINUTES, NC_SYSTEM_DELIVERY, NC_SYSTEM_EVENT_FILTER_KEYS, NC_TAXONOMY, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NavigationActionEntrySchema, NavigationActionIdSchema, NavigationEntryKindSchema, NavigationFeaturesSchema, NavigationLightModeSchema, NavigationModeSchema, NavigationMoveCommandSchema, NavigationPointSchema, NavigationRuntimeStateSchema, NavigationStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcSceneConditionSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NetworkLinkStatusSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPERATOR_WRITTEN_STALE_MS, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OVERFLOW_REASON, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, ParkRefusalSchema, ParkTrackFrameResultSchema, ParkedFrameKindSchema, ParkedTrackFrameSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, RECORDING_EXPORT_MAX_READ_BYTES, RECORDING_TIMELINE_BATCH_MAX, REDACTED_SECRET, RESERVED_BINDING_NAMES, RESTORED_CAP_NAMES, ROOT_BUCKET_KEY, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysForDeviceSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingObjectTriggerClassSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingSignalRuntimeStateSchema, RecordingSignalStatusSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocatableMediaCountInputSchema, RelocatableMediaCountSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RelocateResidueInputSchema, RelocateResidueSchema, RenderedAsSchema, ReportMotionInputSchema, ReportedFailureContributionSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, SCOPE_PRESETS, SENSOR_FEATURES, SENSOR_MAP, SHARE_VIEW_KINDS, SOURCE_CAPS, SOURCE_CAP_ACTIVE_FIELD, SOURCE_CAP_CHANGED_AT_FIELD, SOURCE_DEVICE_TYPES, SOURCE_INFO_METADATA_KEY, STORAGE_ACCESS_FALLBACK, STORAGE_BYTES_PER_GB, STORAGE_LOCATION_MODES, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, SYSTEM_CAP_NAMES, SYSTEM_SCOPE_DEVICE_METHODS, SceneCheckSchema, SceneConditionSchema, SceneConfirmSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, SceneReferenceSchema, SceneUnavailableSchema, SceneUncoveredPolicySchema, SceneVerdictSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, StorageAccessSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, StorageCleanupInputSchema, StorageCleanupJobSchema, StorageCleanupPhaseSchema, StorageCleanupStatusInputSchema, StorageDrainProgressSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, StorageEvictionPolicySchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationModeSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationDrainInputSchema, StorageMigrationFindingCodeSchema, StorageMigrationFindingSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLaneSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationModeSchema, StorageMigrationMoveProgressSchema, StorageMigrationMoveSchema, StorageMigrationMoverSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, StorageMigrationResidueSchema, StorageMigrationSourcesSchema, StorageOccupancyReportSchema, 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, SummarySchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VISIT_MERGE_GAP_MS, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, WrapperEvidenceSchema, WrapperIdentitySchema, WrapperKindSchema, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, __resetLogChannelRegistryForTests, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioChunkBytesPerSample, audioCodecCapability, audioIsFailClosed, audioKindId, audioLabelChoices, audioMetricsCapability, audioModeOf, audioOrDefaults, audioPlanFromEncodeProfile, audioScaleEraOf, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildRoleScopes, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, collectHydratedFieldEntries, collectHydratedFieldValues, collectSecretConfigKeys, colorCapability, colorForKind, commitWatchdogRestart, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, declareLogChannel, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeCustomActions, describeModelVariant, detectAccessRole, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, doorbellCapability, droppedConditionsForKind, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluatePoolMemory, evaluateSensorEdge, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, evictionPolicyForMode, evictionPolicyOfLocation, expandAudioChunkToF32le, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, foldSnapshotByFunction, formatForBackend, formatForRuntime, formatMediaOwnerKey, gasCapability, gbToBytes, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, inferModelProvider, initialPoolMemoryState, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isAudioChunkFormat, isAudioLabelSelected, isAudioRule, isBaseConditionKey, isBatteryPresenceFault, isClusterScopedStep, isCollectionArrayMethod, isDeployableToAgent, isDetectionMacroClass, isDeviceConfigCap, isDeviceScopedCap, isEvent, isEventOwnerType, isFirstLevelMacroClass, isIsolatedBuiltin, isLocationEnabled, isNode, isObjectInput, isOccupancyRule, isRestoredCap, isSameAddonId, isScheduleActive, isSecretConfigField, isSoftwareDecode, isSourceCap, isStorageLocationMode, isSystemDelivery, isVoidInput, ituDbfsFromPreEpoch, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, legacyModeOf, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, loadContributionCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logChannelsCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mayReadLocation, mayWriteToLocation, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, migrateLegacyDeviceSignalConfig, modeMayRead, modeMayWrite, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, networkAccessCapability, networkLinkCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeTokenScopes, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, overlayClusterStepSettings, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseMediaOwnerKey, parseProcStatus, parseProfileBrokerId, parseRuleSection, parseStreamParamsFormPatch, patchAudio, petFeederCapability, pickAccessoryControl, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, poolMemoryThreshold, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, recordingSignalCapability, rectsToCells, reducePoints, requiresPython, resetPoolBaseline, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveBucketMs, resolveCapMount, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveLocationMode, resolveMethodAuth, resolveModelFormat, resolveMutate, resolvePoolMemoryPolicy, resolveRecordingProfiles, resolveRunnerId, resolveVariantModelId, resolveViewableDeviceIds, roleSpec, ruleEditorSectionsForKind, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, runInferenceStep, runtimeDevices, runtimeStatePolicyFor, sceneMonitorCapability, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, signalPercentFromBars, signalPercentFromRssi, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageOccupancyCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, stripRetiredBandPreBufferSec, strippedOfLegacyReadOnly, subKindsOf, summarisePrivacyAudio, summarizeEffectiveScope, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, toggleAudioLabel, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, withLocationMode, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
|
|
@@ -89,10 +89,25 @@ export interface SettingsQueryInput {
|
|
|
89
89
|
*/
|
|
90
90
|
readonly columns?: readonly string[];
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* A record as it is WRITTEN. `id` is optional here and required on
|
|
94
|
+
* {@link SettingsRecord}, which describes a record as it is READ — a stored row
|
|
95
|
+
* always has one, a row being written may not.
|
|
96
|
+
*
|
|
97
|
+
* The difference is not cosmetic: a collection whose primary key is `INTEGER`
|
|
98
|
+
* is a SQLite ROWID ALIAS, and SQLite assigns it only when the column is
|
|
99
|
+
* OMITTED from the insert. The backend has handled that since `autoPrimaryKey`
|
|
100
|
+
* existed, but this type demanded an id anyway, so the path was unreachable
|
|
101
|
+
* from TypeScript — wired at one end and closed at the other.
|
|
102
|
+
*/
|
|
103
|
+
export interface SettingsInsertRecord<T extends object = Record<string, unknown>> {
|
|
104
|
+
readonly id?: string;
|
|
105
|
+
readonly data: T;
|
|
106
|
+
}
|
|
92
107
|
export interface SettingsInsertInput<T extends object = Record<string, unknown>> {
|
|
93
108
|
readonly namespace?: string;
|
|
94
109
|
readonly collection: SettingsCollection;
|
|
95
|
-
readonly record:
|
|
110
|
+
readonly record: SettingsInsertRecord<T>;
|
|
96
111
|
}
|
|
97
112
|
export interface SettingsUpdateInput {
|
|
98
113
|
readonly namespace?: string;
|
|
@@ -164,7 +179,9 @@ export interface ISettingsBackend {
|
|
|
164
179
|
/** Get all entries matching an optional filter */
|
|
165
180
|
query<T extends object = Record<string, unknown>>(input: SettingsQueryInput): Promise<readonly SettingsRecord<T>[]>;
|
|
166
181
|
/** Insert a new record */
|
|
167
|
-
insert<T extends object = Record<string, unknown>>(input: SettingsInsertInput<T>): Promise<
|
|
182
|
+
insert<T extends object = Record<string, unknown>>(input: SettingsInsertInput<T>): Promise<{
|
|
183
|
+
readonly id: string | number;
|
|
184
|
+
}>;
|
|
168
185
|
/** Update an existing record by ID */
|
|
169
186
|
update(input: SettingsUpdateInput): Promise<void>;
|
|
170
187
|
/** Delete a record by key/ID */
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one place a media key is built and read.
|
|
3
|
+
*
|
|
4
|
+
* A media key addresses a file by its OWNER, in one grammar:
|
|
5
|
+
*
|
|
6
|
+
* ```
|
|
7
|
+
* <ownerType>:<ownerId>:<fileKind>[:<timestampMs>]
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* The owner type is a TABLE. That is already true of every owner on the live
|
|
11
|
+
* hub - `track`, `summary`, `face`, `identity`, `plate` - and the exception was
|
|
12
|
+
* `event`, which covered three tables at once. While event ids were UUIDs the
|
|
13
|
+
* ambiguity cost nothing, because a UUID is unique across tables. D474 made an
|
|
14
|
+
* event id a SQLite rowid alias, so each table numbers from 1 and `event:5`
|
|
15
|
+
* stopped naming one row. Splitting `event` into `motion` / `object` / `audio`
|
|
16
|
+
* restores uniqueness without a fifth segment and without a magic numbering
|
|
17
|
+
* offset, which would have hidden the same invariant somewhere nobody reads.
|
|
18
|
+
*
|
|
19
|
+
* Why this module exists at all, rather than a `split(':')` at each call site:
|
|
20
|
+
* the key is built in the addon, in `ui-library` and in the notification
|
|
21
|
+
* dispatcher, and read positionally in admin-ui (`split(':')[1]` for an owner
|
|
22
|
+
* id). Positional reads are silently wrong the moment a segment moves, and
|
|
23
|
+
* there is no compiler that notices. It lives in `@camstack/types` because both
|
|
24
|
+
* an addon and the UI packages must reach it, and addons may not import each
|
|
25
|
+
* other.
|
|
26
|
+
*
|
|
27
|
+
* `parseMediaOwnerKey` returns `null` for anything it cannot read, and never
|
|
28
|
+
* throws: it sits on the media READ path, where an exception takes out every
|
|
29
|
+
* thumbnail and a guess puts the wrong image on screen. A legacy `event:` key
|
|
30
|
+
* is therefore unreadable BY DESIGN - on this hub the 299 883 resolvable ones
|
|
31
|
+
* are rewritten by the D474 data migration, and the 676 that remain were
|
|
32
|
+
* already orphaned, their event having aged out before it.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Owner types, i.e. the tables that own media.
|
|
36
|
+
*
|
|
37
|
+
* `motion` / `object` / `audio` are the three event tables; `event` is
|
|
38
|
+
* deliberately absent and must not be re-added - it is the ambiguity this
|
|
39
|
+
* module exists to remove.
|
|
40
|
+
*
|
|
41
|
+
* This list must cover `OWNER_KINDS` in
|
|
42
|
+
* `addon-post-analysis/src/pipeline-analytics/store/media-store.ts`, which is
|
|
43
|
+
* the AUTHORITY on what may own media. I first derived it from the prefixes
|
|
44
|
+
* actually present on the live hub and so omitted `vehicle` and `scene`: both
|
|
45
|
+
* are declared owner kinds with no rows today, and the parser would have
|
|
46
|
+
* rejected their keys the day one appeared. A list derived from data is a list
|
|
47
|
+
* that is correct until the data changes.
|
|
48
|
+
*/
|
|
49
|
+
export declare const MEDIA_OWNER_TYPES: readonly ["track", "summary", "face", "identity", "plate", "vehicle", "scene", "motion", "object", "audio"];
|
|
50
|
+
export type MediaOwnerType = (typeof MEDIA_OWNER_TYPES)[number];
|
|
51
|
+
/** A parsed media key. `timestampMs` is absent for the three-segment form. */
|
|
52
|
+
export interface MediaOwnerKey {
|
|
53
|
+
readonly ownerType: MediaOwnerType;
|
|
54
|
+
readonly ownerId: string;
|
|
55
|
+
readonly fileKind: string;
|
|
56
|
+
readonly timestampMs?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* What a caller may hand `formatMediaOwnerKey`. `ownerId` widens to `number`
|
|
60
|
+
* because an event id IS a number now (D474) and stringifying at every call
|
|
61
|
+
* site is how the old `String(id)` sprawl started.
|
|
62
|
+
*/
|
|
63
|
+
export interface MediaOwnerKeyInput {
|
|
64
|
+
readonly ownerType: MediaOwnerType;
|
|
65
|
+
readonly ownerId: string | number;
|
|
66
|
+
readonly fileKind: string;
|
|
67
|
+
readonly timestampMs?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Read a media key. `null` when it is not one - an unknown owner type, a legacy
|
|
71
|
+
* `event:` key, a missing segment, or a fourth segment that is not a timestamp.
|
|
72
|
+
*
|
|
73
|
+
* `fileKind` is returned as a plain string rather than validated against
|
|
74
|
+
* `MediaFileKindEnum`: kinds have been RETIRED over time (`crop`,
|
|
75
|
+
* `fullFrameBoxed`) and rows carrying them still exist, so a parser that
|
|
76
|
+
* rejected them would make historical media unreadable while claiming the key
|
|
77
|
+
* was malformed.
|
|
78
|
+
*/
|
|
79
|
+
export declare function parseMediaOwnerKey(key: string): MediaOwnerKey | null;
|
|
80
|
+
/** Build a media key. The timestamp segment is omitted when there is none. */
|
|
81
|
+
export declare function formatMediaOwnerKey(key: MediaOwnerKeyInput): string;
|
|
82
|
+
/**
|
|
83
|
+
* The owner types that are event tables, in the order the event-media resolver
|
|
84
|
+
* should consider them. Exported so a consumer asking "is this key an event?"
|
|
85
|
+
* does not re-spell the list and drift from it.
|
|
86
|
+
*/
|
|
87
|
+
export declare const EVENT_OWNER_TYPES: readonly ["motion", "object", "audio"];
|
|
88
|
+
export type EventOwnerType = (typeof EVENT_OWNER_TYPES)[number];
|
|
89
|
+
/** True when this key's owner is one of the three event tables. */
|
|
90
|
+
export declare function isEventOwnerType(ownerType: MediaOwnerType): ownerType is EventOwnerType;
|