@camstack/addon-post-analysis 1.2.156 → 1.2.157

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.
@@ -8366,6 +8366,13 @@ var MediaRelocateModeSchema = _enum([
8366
8366
  ]);
8367
8367
  var RelocateMediaInputSchema = object({
8368
8368
  toLocationId: string(),
8369
+ /**
8370
+ * Restrict the pass to rows currently on this location. Omitted / `'*'` =
8371
+ * every row that is not already on `toLocationId` (the historical
8372
+ * behaviour). A named source is what a from→to migration needs: without it
8373
+ * "move events off disk 2" also emptied disk 1.
8374
+ */
8375
+ fromLocationId: string().optional(),
8369
8376
  throttleMbps: number().min(1).max(1e3).optional(),
8370
8377
  /** Omitted = `move`, the pre-existing behaviour. */
8371
8378
  mode: MediaRelocateModeSchema.optional()
@@ -8433,6 +8440,19 @@ var StorageMigrationDestinationsSchema = object({
8433
8440
  galleryMedia: string().min(1).optional()
8434
8441
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8435
8442
  /**
8443
+ * Optional named source per class. Omitted = the class's current default
8444
+ * (the historical behaviour). A named source that is NOT the default is a
8445
+ * drain of that disk: bytes move, the default stays, and the source is
8446
+ * disabled when the move finishes.
8447
+ */
8448
+ var StorageMigrationSourcesSchema = object({
8449
+ recordings: string().min(1).optional(),
8450
+ recordingsLow: string().min(1).optional(),
8451
+ eventMedia: string().min(1).optional(),
8452
+ backups: string().min(1).optional(),
8453
+ galleryMedia: string().min(1).optional()
8454
+ }).optional();
8455
+ /**
8436
8456
  * How a migration sequences the cutover against the byte move.
8437
8457
  *
8438
8458
  * - `blocking` — the historical order: pause, move every byte, repoint,
@@ -8454,6 +8474,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8454
8474
  /** Shared input for planning and starting an orchestrated storage migration. */
8455
8475
  var StorageMigrationInputSchema = object({
8456
8476
  destinations: StorageMigrationDestinationsSchema,
8477
+ /** Omitted = each class's current default. */
8478
+ sources: StorageMigrationSourcesSchema,
8457
8479
  throttleMbps: number().min(1).max(1e3).optional(),
8458
8480
  /** Omitted = `blocking`, which stays the default. */
8459
8481
  mode: StorageMigrationModeSchema.optional()
@@ -8533,6 +8555,13 @@ var StorageMigrationMoveSchema = object({
8533
8555
  storageClass: StorageMigrationClassSchema,
8534
8556
  fromLocationId: string(),
8535
8557
  toLocationId: string(),
8558
+ /**
8559
+ * True when `from` was NOT the class default at plan time. The move still
8560
+ * copies bytes, but the default is left alone and the source is disabled
8561
+ * once the copy verifies. Absent on jobs planned before this field existed
8562
+ * — those jobs always repointed, which is `false`.
8563
+ */
8564
+ freezeSource: boolean().optional(),
8536
8565
  moverJobId: string().nullable(),
8537
8566
  state: RelocateJobStateSchema.nullable(),
8538
8567
  error: string().nullable(),
@@ -8546,6 +8575,7 @@ var StorageMigrationJobSchema = object({
8546
8575
  * can tell a seconds-long cutover from a thirty-hour one. */
8547
8576
  mode: StorageMigrationModeSchema,
8548
8577
  destinations: StorageMigrationDestinationsSchema,
8578
+ sources: StorageMigrationSourcesSchema,
8549
8579
  throttleMbps: number(),
8550
8580
  moves: array(StorageMigrationMoveSchema),
8551
8581
  pauseLeaseId: string().nullable(),
@@ -8571,6 +8601,7 @@ var StorageMigrationFindingSchema = object({
8571
8601
  });
8572
8602
  var StorageMigrationPlanSchema = object({
8573
8603
  destinations: StorageMigrationDestinationsSchema,
8604
+ sources: StorageMigrationSourcesSchema,
8574
8605
  /** The mode this plan was built for. A plan is only valid for its mode: the
8575
8606
  * `eventMedia` seal gate and the single-cardinality refusal both depend on
8576
8607
  * it. */
@@ -8578,7 +8609,8 @@ var StorageMigrationPlanSchema = object({
8578
8609
  moves: array(object({
8579
8610
  storageClass: StorageMigrationClassSchema,
8580
8611
  fromLocationId: string(),
8581
- toLocationId: string()
8612
+ toLocationId: string(),
8613
+ freezeSource: boolean().optional()
8582
8614
  })),
8583
8615
  findings: array(StorageMigrationFindingSchema)
8584
8616
  });
@@ -8756,10 +8788,51 @@ var LedgerWalkReportSchema = object({
8756
8788
  var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
8757
8789
  var RelocatableMediaCountInputSchema = object({
8758
8790
  toLocationId: string().min(1),
8791
+ /** Restrict the count to one source; omitted / `'*'` = every non-target row. */
8792
+ fromLocationId: string().optional(),
8759
8793
  /** Omitted = `move`. */
8760
8794
  mode: MediaRelocateModeSchema.optional()
8761
8795
  });
8762
8796
  /**
8797
+ * Operator cleanup of leftover analytics rows, optional debug media, and
8798
+ * ghost ledger entries on frozen footage locations.
8799
+ *
8800
+ * A pass is tens of minutes on a standing backlog. The hub method RETURNS
8801
+ * `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
8802
+ * is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
8803
+ * with no operator-visible status.
8804
+ */
8805
+ var StorageCleanupPhaseSchema = _enum([
8806
+ "orphans",
8807
+ "debug-media",
8808
+ "ghost-ledger",
8809
+ "done",
8810
+ "failed",
8811
+ "cancelled"
8812
+ ]);
8813
+ var StorageCleanupInputSchema = object({
8814
+ /** Also walk motion stills / track filmstrips. Off by default. */
8815
+ includeDebugMedia: boolean().optional() });
8816
+ var StorageCleanupJobSchema = object({
8817
+ jobId: string(),
8818
+ phase: StorageCleanupPhaseSchema,
8819
+ includeDebugMedia: boolean(),
8820
+ orphansReclaimed: number().int().nonnegative(),
8821
+ orphanBytesReclaimed: number().int().nonnegative(),
8822
+ debugMediaReclaimed: number().int().nonnegative(),
8823
+ debugMediaBytesReclaimed: number().int().nonnegative(),
8824
+ ghostsForgotten: number().int().nonnegative(),
8825
+ ghostBytesForgotten: number().int().nonnegative(),
8826
+ /** Short operator-facing line: current collection, pass, or location. */
8827
+ detail: string().nullable(),
8828
+ cancelRequested: boolean(),
8829
+ startedAt: number(),
8830
+ updatedAt: number(),
8831
+ finishedAt: number().nullable(),
8832
+ error: string().nullable()
8833
+ });
8834
+ var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
8835
+ /**
8763
8836
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
8764
8837
  * storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
8765
8838
  * so the persisted record schema and the consumer-facing cap can both consume it
@@ -8787,11 +8860,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
8787
8860
  * The default location for a type uses `id === <type>:default` by
8788
8861
  * convention (the bare type ref like `'backups'` resolves to it).
8789
8862
  *
8790
- * `isSystem: true` marks a location as orchestrator-seeded and
8791
- * undeletable. The bootstrap-installed defaults (one per type) carry
8792
- * this flag; operator-added locations don't. Editing the config of
8793
- * a system location is allowed (path migration, provider swap) but
8794
- * deleting it is rejected at the cap level.
8863
+ * `isSystem` is a legacy persisted flag. Seed still creates the initial
8864
+ * `<type>:default` locations; the flag is no longer a lock, a badge, or a
8865
+ * prune selector. New writes leave it false. Deletion is gated on uniqueness
8866
+ * / last-enabled, not on this bit.
8795
8867
  */
8796
8868
  var StorageLocationSchema = object({
8797
8869
  id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
@@ -23113,7 +23185,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
23113
23185
  }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
23114
23186
  kind: "mutation",
23115
23187
  auth: "admin"
23116
- });
23188
+ }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
23189
+ kind: "mutation",
23190
+ auth: "admin"
23191
+ }), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23192
+ kind: "mutation",
23193
+ auth: "admin"
23194
+ }), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
23117
23195
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
23118
23196
  providerId: string().min(1),
23119
23197
  displayName: string().min(1),
@@ -30280,6 +30358,33 @@ var RecordingRebalanceInputSchema = object({
30280
30358
  minMoveGb: number().min(0).optional()
30281
30359
  });
30282
30360
  /**
30361
+ * Operator-facing placement of one camera onto a recordings location.
30362
+ *
30363
+ * `pinLocationId` is the operator instruction: a location id, or `null` for
30364
+ * Auto (the planner may move this camera). `locationId` is where high/mid
30365
+ * currently write — the plan, which may disagree with the pin when Auto.
30366
+ */
30367
+ var RecordingDevicePlacementSchema = object({
30368
+ deviceId: number().int(),
30369
+ profile: string(),
30370
+ locationId: string()
30371
+ });
30372
+ var RecordingDevicePinSchema = object({
30373
+ deviceId: number().int(),
30374
+ /** Recordings-class location this camera is pinned to. */
30375
+ locationId: string()
30376
+ });
30377
+ var RecordingPlacementViewSchema = object({
30378
+ assignments: array(RecordingDevicePlacementSchema),
30379
+ pins: array(RecordingDevicePinSchema),
30380
+ defaultLocations: record(string(), string())
30381
+ });
30382
+ var RecordingSetDevicePlacementInputSchema = object({
30383
+ deviceId: number().int(),
30384
+ /** `null` = Auto. Otherwise a `recordings:*` location id. */
30385
+ locationId: string().nullable()
30386
+ });
30387
+ /**
30283
30388
  * Result of locating footage at a wall-clock instant for one device/profile.
30284
30389
  * `segment` carries the covering segment's window; `gap` reports the forward
30285
30390
  * nearest covered edge (`null` past the end of footage / when none exists)
@@ -30505,6 +30610,12 @@ method(object({
30505
30610
  }), method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
30506
30611
  kind: "mutation",
30507
30612
  auth: "admin"
30613
+ }), method(object({}), RecordingPlacementViewSchema, {
30614
+ kind: "query",
30615
+ auth: "admin"
30616
+ }), method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
30617
+ kind: "mutation",
30618
+ auth: "admin"
30508
30619
  });
30509
30620
  /**
30510
30621
  * `recording-export` cap — render a footage time range into a single downloadable
@@ -38611,6 +38722,12 @@ Object.freeze({
38611
38722
  addonId: null,
38612
38723
  access: "view"
38613
38724
  },
38725
+ "recording.getPlacement": {
38726
+ capName: "recording",
38727
+ capScope: "system",
38728
+ addonId: null,
38729
+ access: "view"
38730
+ },
38614
38731
  "recording.getPlaybackManifest": {
38615
38732
  capName: "recording",
38616
38733
  capScope: "system",
@@ -38737,6 +38854,12 @@ Object.freeze({
38737
38854
  addonId: null,
38738
38855
  access: "create"
38739
38856
  },
38857
+ "recording.setDevicePlacement": {
38858
+ capName: "recording",
38859
+ capScope: "system",
38860
+ addonId: null,
38861
+ access: "create"
38862
+ },
38740
38863
  "recording.startStorageMigrationMove": {
38741
38864
  capName: "recording",
38742
38865
  capScope: "system",
@@ -39181,12 +39304,36 @@ Object.freeze({
39181
39304
  addonId: null,
39182
39305
  access: "create"
39183
39306
  },
39307
+ "storageMigration.cleanupCancel": {
39308
+ capName: "storage-migration",
39309
+ capScope: "system",
39310
+ addonId: null,
39311
+ access: "create"
39312
+ },
39313
+ "storageMigration.cleanupStart": {
39314
+ capName: "storage-migration",
39315
+ capScope: "system",
39316
+ addonId: null,
39317
+ access: "create"
39318
+ },
39319
+ "storageMigration.cleanupStatus": {
39320
+ capName: "storage-migration",
39321
+ capScope: "system",
39322
+ addonId: null,
39323
+ access: "view"
39324
+ },
39184
39325
  "storageMigration.drain": {
39185
39326
  capName: "storage-migration",
39186
39327
  capScope: "system",
39187
39328
  addonId: null,
39188
39329
  access: "create"
39189
39330
  },
39331
+ "storageMigration.history": {
39332
+ capName: "storage-migration",
39333
+ capScope: "system",
39334
+ addonId: null,
39335
+ access: "view"
39336
+ },
39190
39337
  "storageMigration.movers": {
39191
39338
  capName: "storage-migration",
39192
39339
  capScope: "system",
@@ -41673,6 +41820,11 @@ Object.freeze({
41673
41820
  form: "single",
41674
41821
  optional: false
41675
41822
  }],
41823
+ "recording.setDevicePlacement": [{
41824
+ name: "deviceId",
41825
+ form: "single",
41826
+ optional: false
41827
+ }],
41676
41828
  "recording.startStorageMigrationMove": [{
41677
41829
  name: "deviceId",
41678
41830
  form: "single",
@@ -8335,6 +8335,13 @@ var MediaRelocateModeSchema = _enum([
8335
8335
  ]);
8336
8336
  var RelocateMediaInputSchema = object({
8337
8337
  toLocationId: string(),
8338
+ /**
8339
+ * Restrict the pass to rows currently on this location. Omitted / `'*'` =
8340
+ * every row that is not already on `toLocationId` (the historical
8341
+ * behaviour). A named source is what a from→to migration needs: without it
8342
+ * "move events off disk 2" also emptied disk 1.
8343
+ */
8344
+ fromLocationId: string().optional(),
8338
8345
  throttleMbps: number().min(1).max(1e3).optional(),
8339
8346
  /** Omitted = `move`, the pre-existing behaviour. */
8340
8347
  mode: MediaRelocateModeSchema.optional()
@@ -8402,6 +8409,19 @@ var StorageMigrationDestinationsSchema = object({
8402
8409
  galleryMedia: string().min(1).optional()
8403
8410
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8404
8411
  /**
8412
+ * Optional named source per class. Omitted = the class's current default
8413
+ * (the historical behaviour). A named source that is NOT the default is a
8414
+ * drain of that disk: bytes move, the default stays, and the source is
8415
+ * disabled when the move finishes.
8416
+ */
8417
+ var StorageMigrationSourcesSchema = object({
8418
+ recordings: string().min(1).optional(),
8419
+ recordingsLow: string().min(1).optional(),
8420
+ eventMedia: string().min(1).optional(),
8421
+ backups: string().min(1).optional(),
8422
+ galleryMedia: string().min(1).optional()
8423
+ }).optional();
8424
+ /**
8405
8425
  * How a migration sequences the cutover against the byte move.
8406
8426
  *
8407
8427
  * - `blocking` — the historical order: pause, move every byte, repoint,
@@ -8423,6 +8443,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8423
8443
  /** Shared input for planning and starting an orchestrated storage migration. */
8424
8444
  var StorageMigrationInputSchema = object({
8425
8445
  destinations: StorageMigrationDestinationsSchema,
8446
+ /** Omitted = each class's current default. */
8447
+ sources: StorageMigrationSourcesSchema,
8426
8448
  throttleMbps: number().min(1).max(1e3).optional(),
8427
8449
  /** Omitted = `blocking`, which stays the default. */
8428
8450
  mode: StorageMigrationModeSchema.optional()
@@ -8502,6 +8524,13 @@ var StorageMigrationMoveSchema = object({
8502
8524
  storageClass: StorageMigrationClassSchema,
8503
8525
  fromLocationId: string(),
8504
8526
  toLocationId: string(),
8527
+ /**
8528
+ * True when `from` was NOT the class default at plan time. The move still
8529
+ * copies bytes, but the default is left alone and the source is disabled
8530
+ * once the copy verifies. Absent on jobs planned before this field existed
8531
+ * — those jobs always repointed, which is `false`.
8532
+ */
8533
+ freezeSource: boolean().optional(),
8505
8534
  moverJobId: string().nullable(),
8506
8535
  state: RelocateJobStateSchema.nullable(),
8507
8536
  error: string().nullable(),
@@ -8515,6 +8544,7 @@ var StorageMigrationJobSchema = object({
8515
8544
  * can tell a seconds-long cutover from a thirty-hour one. */
8516
8545
  mode: StorageMigrationModeSchema,
8517
8546
  destinations: StorageMigrationDestinationsSchema,
8547
+ sources: StorageMigrationSourcesSchema,
8518
8548
  throttleMbps: number(),
8519
8549
  moves: array(StorageMigrationMoveSchema),
8520
8550
  pauseLeaseId: string().nullable(),
@@ -8540,6 +8570,7 @@ var StorageMigrationFindingSchema = object({
8540
8570
  });
8541
8571
  var StorageMigrationPlanSchema = object({
8542
8572
  destinations: StorageMigrationDestinationsSchema,
8573
+ sources: StorageMigrationSourcesSchema,
8543
8574
  /** The mode this plan was built for. A plan is only valid for its mode: the
8544
8575
  * `eventMedia` seal gate and the single-cardinality refusal both depend on
8545
8576
  * it. */
@@ -8547,7 +8578,8 @@ var StorageMigrationPlanSchema = object({
8547
8578
  moves: array(object({
8548
8579
  storageClass: StorageMigrationClassSchema,
8549
8580
  fromLocationId: string(),
8550
- toLocationId: string()
8581
+ toLocationId: string(),
8582
+ freezeSource: boolean().optional()
8551
8583
  })),
8552
8584
  findings: array(StorageMigrationFindingSchema)
8553
8585
  });
@@ -8725,10 +8757,51 @@ var LedgerWalkReportSchema = object({
8725
8757
  var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
8726
8758
  var RelocatableMediaCountInputSchema = object({
8727
8759
  toLocationId: string().min(1),
8760
+ /** Restrict the count to one source; omitted / `'*'` = every non-target row. */
8761
+ fromLocationId: string().optional(),
8728
8762
  /** Omitted = `move`. */
8729
8763
  mode: MediaRelocateModeSchema.optional()
8730
8764
  });
8731
8765
  /**
8766
+ * Operator cleanup of leftover analytics rows, optional debug media, and
8767
+ * ghost ledger entries on frozen footage locations.
8768
+ *
8769
+ * A pass is tens of minutes on a standing backlog. The hub method RETURNS
8770
+ * `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
8771
+ * is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
8772
+ * with no operator-visible status.
8773
+ */
8774
+ var StorageCleanupPhaseSchema = _enum([
8775
+ "orphans",
8776
+ "debug-media",
8777
+ "ghost-ledger",
8778
+ "done",
8779
+ "failed",
8780
+ "cancelled"
8781
+ ]);
8782
+ var StorageCleanupInputSchema = object({
8783
+ /** Also walk motion stills / track filmstrips. Off by default. */
8784
+ includeDebugMedia: boolean().optional() });
8785
+ var StorageCleanupJobSchema = object({
8786
+ jobId: string(),
8787
+ phase: StorageCleanupPhaseSchema,
8788
+ includeDebugMedia: boolean(),
8789
+ orphansReclaimed: number().int().nonnegative(),
8790
+ orphanBytesReclaimed: number().int().nonnegative(),
8791
+ debugMediaReclaimed: number().int().nonnegative(),
8792
+ debugMediaBytesReclaimed: number().int().nonnegative(),
8793
+ ghostsForgotten: number().int().nonnegative(),
8794
+ ghostBytesForgotten: number().int().nonnegative(),
8795
+ /** Short operator-facing line: current collection, pass, or location. */
8796
+ detail: string().nullable(),
8797
+ cancelRequested: boolean(),
8798
+ startedAt: number(),
8799
+ updatedAt: number(),
8800
+ finishedAt: number().nullable(),
8801
+ error: string().nullable()
8802
+ });
8803
+ var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
8804
+ /**
8732
8805
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
8733
8806
  * storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
8734
8807
  * so the persisted record schema and the consumer-facing cap can both consume it
@@ -8756,11 +8829,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
8756
8829
  * The default location for a type uses `id === <type>:default` by
8757
8830
  * convention (the bare type ref like `'backups'` resolves to it).
8758
8831
  *
8759
- * `isSystem: true` marks a location as orchestrator-seeded and
8760
- * undeletable. The bootstrap-installed defaults (one per type) carry
8761
- * this flag; operator-added locations don't. Editing the config of
8762
- * a system location is allowed (path migration, provider swap) but
8763
- * deleting it is rejected at the cap level.
8832
+ * `isSystem` is a legacy persisted flag. Seed still creates the initial
8833
+ * `<type>:default` locations; the flag is no longer a lock, a badge, or a
8834
+ * prune selector. New writes leave it false. Deletion is gated on uniqueness
8835
+ * / last-enabled, not on this bit.
8764
8836
  */
8765
8837
  var StorageLocationSchema = object({
8766
8838
  id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
@@ -23082,7 +23154,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
23082
23154
  }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
23083
23155
  kind: "mutation",
23084
23156
  auth: "admin"
23085
- });
23157
+ }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
23158
+ kind: "mutation",
23159
+ auth: "admin"
23160
+ }), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23161
+ kind: "mutation",
23162
+ auth: "admin"
23163
+ }), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
23086
23164
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
23087
23165
  providerId: string().min(1),
23088
23166
  displayName: string().min(1),
@@ -30249,6 +30327,33 @@ var RecordingRebalanceInputSchema = object({
30249
30327
  minMoveGb: number().min(0).optional()
30250
30328
  });
30251
30329
  /**
30330
+ * Operator-facing placement of one camera onto a recordings location.
30331
+ *
30332
+ * `pinLocationId` is the operator instruction: a location id, or `null` for
30333
+ * Auto (the planner may move this camera). `locationId` is where high/mid
30334
+ * currently write — the plan, which may disagree with the pin when Auto.
30335
+ */
30336
+ var RecordingDevicePlacementSchema = object({
30337
+ deviceId: number().int(),
30338
+ profile: string(),
30339
+ locationId: string()
30340
+ });
30341
+ var RecordingDevicePinSchema = object({
30342
+ deviceId: number().int(),
30343
+ /** Recordings-class location this camera is pinned to. */
30344
+ locationId: string()
30345
+ });
30346
+ var RecordingPlacementViewSchema = object({
30347
+ assignments: array(RecordingDevicePlacementSchema),
30348
+ pins: array(RecordingDevicePinSchema),
30349
+ defaultLocations: record(string(), string())
30350
+ });
30351
+ var RecordingSetDevicePlacementInputSchema = object({
30352
+ deviceId: number().int(),
30353
+ /** `null` = Auto. Otherwise a `recordings:*` location id. */
30354
+ locationId: string().nullable()
30355
+ });
30356
+ /**
30252
30357
  * Result of locating footage at a wall-clock instant for one device/profile.
30253
30358
  * `segment` carries the covering segment's window; `gap` reports the forward
30254
30359
  * nearest covered edge (`null` past the end of footage / when none exists)
@@ -30474,6 +30579,12 @@ method(object({
30474
30579
  }), method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
30475
30580
  kind: "mutation",
30476
30581
  auth: "admin"
30582
+ }), method(object({}), RecordingPlacementViewSchema, {
30583
+ kind: "query",
30584
+ auth: "admin"
30585
+ }), method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
30586
+ kind: "mutation",
30587
+ auth: "admin"
30477
30588
  });
30478
30589
  /**
30479
30590
  * `recording-export` cap — render a footage time range into a single downloadable
@@ -38580,6 +38691,12 @@ Object.freeze({
38580
38691
  addonId: null,
38581
38692
  access: "view"
38582
38693
  },
38694
+ "recording.getPlacement": {
38695
+ capName: "recording",
38696
+ capScope: "system",
38697
+ addonId: null,
38698
+ access: "view"
38699
+ },
38583
38700
  "recording.getPlaybackManifest": {
38584
38701
  capName: "recording",
38585
38702
  capScope: "system",
@@ -38706,6 +38823,12 @@ Object.freeze({
38706
38823
  addonId: null,
38707
38824
  access: "create"
38708
38825
  },
38826
+ "recording.setDevicePlacement": {
38827
+ capName: "recording",
38828
+ capScope: "system",
38829
+ addonId: null,
38830
+ access: "create"
38831
+ },
38709
38832
  "recording.startStorageMigrationMove": {
38710
38833
  capName: "recording",
38711
38834
  capScope: "system",
@@ -39150,12 +39273,36 @@ Object.freeze({
39150
39273
  addonId: null,
39151
39274
  access: "create"
39152
39275
  },
39276
+ "storageMigration.cleanupCancel": {
39277
+ capName: "storage-migration",
39278
+ capScope: "system",
39279
+ addonId: null,
39280
+ access: "create"
39281
+ },
39282
+ "storageMigration.cleanupStart": {
39283
+ capName: "storage-migration",
39284
+ capScope: "system",
39285
+ addonId: null,
39286
+ access: "create"
39287
+ },
39288
+ "storageMigration.cleanupStatus": {
39289
+ capName: "storage-migration",
39290
+ capScope: "system",
39291
+ addonId: null,
39292
+ access: "view"
39293
+ },
39153
39294
  "storageMigration.drain": {
39154
39295
  capName: "storage-migration",
39155
39296
  capScope: "system",
39156
39297
  addonId: null,
39157
39298
  access: "create"
39158
39299
  },
39300
+ "storageMigration.history": {
39301
+ capName: "storage-migration",
39302
+ capScope: "system",
39303
+ addonId: null,
39304
+ access: "view"
39305
+ },
39159
39306
  "storageMigration.movers": {
39160
39307
  capName: "storage-migration",
39161
39308
  capScope: "system",
@@ -41642,6 +41789,11 @@ Object.freeze({
41642
41789
  form: "single",
41643
41790
  optional: false
41644
41791
  }],
41792
+ "recording.setDevicePlacement": [{
41793
+ name: "deviceId",
41794
+ form: "single",
41795
+ optional: false
41796
+ }],
41645
41797
  "recording.startStorageMigrationMove": [{
41646
41798
  name: "deviceId",
41647
41799
  form: "single",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-CXY233l4.js");
5
+ const require_dist = require("../dist-CLxPUxVN.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_dist.__toESM(node_fs);
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Ct as resolvePoolMemoryPolicy, I as PoolMemoryWatchdog, _t as parseProcStatus, dt as hfModelUrl, jt as BaseAddon, ot as embeddingEncoderCapability } from "../dist-DqNo8CCq.mjs";
1
+ import { Ct as resolvePoolMemoryPolicy, I as PoolMemoryWatchdog, _t as parseProcStatus, dt as hfModelUrl, jt as BaseAddon, ot as embeddingEncoderCapability } from "../dist-D_O7oxyS.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-C0AuF9av.mjs";
2
2
  import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
3
- import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-C8CZ3hb-.mjs";
3
+ import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B0wvjNmC.mjs";
4
4
  import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
5
5
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
6
6
  var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), y = (e) => {
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.131",
21
+ version: "1.2.132",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_analytics_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.94",
36
+ version: "1.2.95",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",
@@ -16,7 +16,7 @@ globalThis[r] ||= {
16
16
  remote: {}
17
17
  }, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
18
18
  var i = globalThis[r], a, o, s, c, l, u, d, f = (e) => {
19
- e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutomationHeroCard, e.AutomationInlineControl, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CARD_MODE_MIN_COLUMNS, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.Camera, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.DeviceMultiSelectField, e.DeviceSelectField, e.DeviceSelectorPicker, e.DeviceStepMatrix, e.Dialog, e.DialogBody, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EVENT_KIND_ICONS, e.EmptyState, e.ErrorBox, e.EventKindGlyph, e.EventStream, e.EyeOff, e.FILL, e.FLEET_LIST_GC_TIME_MS, e.FLEET_LIST_QUERY_KEY, e.FLEET_LIST_STALE_TIME_MS, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, a = e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageOff, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.Mic, e.MobileDrawer, e.ModelPicker, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECONNECT_POLICY, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROI_AREA_WARN_FRACTION, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.RotateCcw, e.SCENE_CAPTURE_VARIANTS, e.SCENE_CAPTURE_VARIANTS$1, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SETTING_ROW, e.SETTING_ROW_LABEL, e.SETTING_ROW_STACK_BREAKPOINT, e.SETTING_ROW_VALUE, e.SETTING_ROW_VALUE_TEXT, e.SNAPSHOT_MEDIA_PATH, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, o = e.STACK_GAP, e.STATE_COLOR, e.SceneMonitorEditor, e.ScopePicker, e.ScriptHeroCard, e.ScriptInlineControl, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.SettingRow, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.SortHeaderButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TABLE_SCROLL_MAX_H, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, s = e.WidgetSlot, e.ZoneEditingProvider, e.agentColumnKey, e.allDeviceTypeFilterOptions, e.applyFleetQueryDefaults, e.ariaSortForColumn, e.badgeFor, e.badgeFor$1, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.coverageLine, e.coverageLine$1, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.describeDeviceSelector, e.deviceMatchesFilter, e.deviceOptionLabel, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeLabel, e.deviceTypeMeta, e.deviceTypeMetaOf, e.devicesToOptions, e.ensureMfHostInit, e.eventKindLabel, e.filterDeviceOptions, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupAgentColumns, e.groupChildrenByLayout, e.hardwareLabel, e.humanDuration, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextReconnectAction, e.nextSort, e.nextSortDirection, e.nextTableSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolveEffectiveDefaultModel, e.resolveEffectiveStepModel, e.resolveEventKindIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.resolveStepDefaultModel, e.resolveTableLayout, e.roiTooLarge, e.roiTooLarge$1, e.scrubReducer, e.selectedDeviceOptions, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.shouldUseSingleNode, e.sortRows, e.sortRowsByColumn, e.statusIcons, e.statusLine, e.statusLine$1, e.stepHasModelForFormat, e.stepModelOptions, e.stripParentNamePrefix, e.tabForSelector, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsGetIntegrationSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupDeleteSchedule, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupListSchedules, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBackupUpsertSchedule, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useClusterTopology, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectionTestDescribeTest, e.useConnectionTestTestSettings, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoreBlocksCompile, e.useCoreBlocksCreate, e.useCoreBlocksDelete, e.useCoreBlocksGet, e.useCoreBlocksGetTypeDefs, e.useCoreBlocksList, e.useCoreBlocksRestart, e.useCoreBlocksSetEnabled, e.useCoreBlocksUpdate, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionCancelJob, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionListJobs, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAdoptionStartJob, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyDeviceSettingsPatch, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetBindingsBatch, e.useDeviceManagerGetChildren, e.useDeviceManagerGetChildrenBatch, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveContribution, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceSettingsContribution, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetDeviceStatusAggregateBatch, e.useDeviceManagerGetLinkedDevices, e.useDeviceManagerGetLinkedDevicesBatch, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, c = e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, e.useDeviceSnapshotImage$1, l = e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, u = e.useDeviceStateSlice, e.useDeviceStateSlice$1, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellApplyDeviceSettingsPatch, e.useDoorbellEvents, e.useDoorbellGetDeviceLiveContribution, e.useDoorbellGetDeviceSettingsContribution, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLlmCancel, e.useLlmDeleteModel, e.useLlmDeleteProfile, e.useLlmGenerate, e.useLlmGenerateVision, e.useLlmGetDefaults, e.useLlmGetRuntimeStatus, e.useLlmGetUsage, e.useLlmInstallModel, e.useLlmListModelCatalog, e.useLlmListModels, e.useLlmListNodeModels, e.useLlmListProfileKinds, e.useLlmListProfiles, e.useLlmListRuntimeNodes, e.useLlmResolveModelRef, e.useLlmSetDefault, e.useLlmStartRuntime, e.useLlmStopRuntime, e.useLlmTestProfile, e.useLlmUpsertProfile, e.useLocalNetworkDownloadCa, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetNotificationEndpoint, e.useLocalNetworkGetPreferred, e.useLocalNetworkGetTlsStatus, e.useLocalNetworkGetViewerEndpoints, e.useLocalNetworkList, e.useLocalNetworkRegenerateCertificate, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkRevertToGeneratedCertificate, e.useLocalNetworkSetAllowedAddresses, e.useLocalNetworkSetNotificationEndpoint, e.useLocalNetworkSetViewerEndpoints, e.useLocalNetworkUploadCertificate, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetLoadSeries, e.useMetricsProviderGetProcessStats, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotificationRulesCancelSnooze, e.useNotificationRulesCreateRule, e.useNotificationRulesCreateSnooze, e.useNotificationRulesDeleteRule, e.useNotificationRulesGetAlarmConfig, e.useNotificationRulesGetConditionCatalog, e.useNotificationRulesGetHistory, e.useNotificationRulesGetRule, e.useNotificationRulesListDeviceMutes, e.useNotificationRulesListRules, e.useNotificationRulesListSnoozes, e.useNotificationRulesResolveArtifactUrl, e.useNotificationRulesSetAlarmConfig, e.useNotificationRulesSetDeviceMuted, e.useNotificationRulesSetRuleEnabled, e.useNotificationRulesTestRule, e.useNotificationRulesUpdateRule, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdManagerClearSlotBinding, e.useOsdManagerCopyDeviceConfiguration, e.useOsdManagerGetConditionSupport, e.useOsdManagerGetDeviceOsd, e.useOsdManagerGetSourceCatalog, e.useOsdManagerPreviewSlot, e.useOsdManagerRenderDevice, e.useOsdManagerSetSlotBinding, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsCancelRelocateMedia, e.usePipelineAnalyticsCancelStorageMigrationMove, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsCompleteRetrainTrack, e.usePipelineAnalyticsCountRelocatableMedia, e.usePipelineAnalyticsCountUnstampedEventMedia, e.usePipelineAnalyticsDeleteDeviceEvents, e.usePipelineAnalyticsDeleteTracks, e.usePipelineAnalyticsDeselectRetrainFrame, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetEventMediaFootprintByKind, e.usePipelineAnalyticsGetEventStoreFootprint, e.usePipelineAnalyticsGetGroup, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetKeyEventsBatch, e.usePipelineAnalyticsGetMediaReclaimStatus, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetRetrainExportUrl, e.usePipelineAnalyticsGetRetrainFrameImage, e.usePipelineAnalyticsGetSensorEvents, e.usePipelineAnalyticsGetStorageMigrationMoveStatus, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsGetTrainingExportSummary, e.usePipelineAnalyticsGetTrainingExportUrl, e.usePipelineAnalyticsListEventKinds, e.usePipelineAnalyticsListEventKindsBatch, e.usePipelineAnalyticsListEventMedia, e.usePipelineAnalyticsListGroups, e.usePipelineAnalyticsListOpsLog, e.usePipelineAnalyticsListRecentTracks, e.usePipelineAnalyticsListRelocateMediaJobs, e.usePipelineAnalyticsListRetrainAnnotations, e.usePipelineAnalyticsListRetrainFrames, e.usePipelineAnalyticsListRetrainStaging, e.usePipelineAnalyticsListTrackMedia, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsPauseForStorageMigration, e.usePipelineAnalyticsProposeRetrainAnnotations, e.usePipelineAnalyticsPruneEvents, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsPruneTracksBefore, e.usePipelineAnalyticsRebuildObjectEmbeddings, e.usePipelineAnalyticsReclaimDebugMedia, e.usePipelineAnalyticsReconcileFromDisk, e.usePipelineAnalyticsRefreshStorageLocationsForMigration, e.usePipelineAnalyticsRelocateMedia, e.usePipelineAnalyticsRestageRetrainTrack, e.usePipelineAnalyticsResumeForStorageMigration, e.usePipelineAnalyticsRunReplayFrameProcessor, e.usePipelineAnalyticsSaveRetrainAnnotations, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineAnalyticsSelectRetrainFrames, e.usePipelineAnalyticsSetTrackFlags, e.usePipelineAnalyticsStartStorageMigrationMove, e.usePipelineAnalyticsWipeAllAnalytics, e.usePipelineAnalyticsWipeObjectEmbeddings, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetInferenceDeviceHealth, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorRearmInferenceDevice, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCameraSwitches, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetNodeInferenceDevices, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorGetPipelineDevicePin, e.usePipelineOrchestratorGetReconcileFromDiskStatus, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorPauseForStorageMigration, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorReconcileFromDisk, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorResumeForStorageMigration, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentInferenceDevices, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCameraSwitch, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorSetPipelineDevicePin, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerReportMotion, e.usePipelineRunnerRunDetailSubtree, e.usePipelineRunnerRunStatelessStep, e.usePlateGalleryAssignPlate, e.usePlateGalleryAssignPlates, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryCreateVehicle, e.usePlateGalleryDeletePlate, e.usePlateGalleryDeleteVehicle, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGalleryListVehicleSamples, e.usePlateGalleryListVehicles, e.usePlateGalleryRemoveVehicleSample, e.usePlateGalleryRenameVehicle, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlateGalleryUnassignPlate, e.usePlateGalleryUnassignPlates, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetAudioEnabled, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingCancelRelocateJob, e.useRecordingCancelStorageMigrationMove, e.useRecordingDeleteFootprint, e.useRecordingExportCancelExport, e.useRecordingExportCreateExport, e.useRecordingExportDeleteExport, e.useRecordingExportGetDownloadUrl, e.useRecordingExportGetExport, e.useRecordingExportListExports, e.useRecordingExportReadExportBytes, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlaybackManifest, e.useRecordingGetRelocateResidue, e.useRecordingGetStatus, e.useRecordingGetStorageMigrationMoveStatus, e.useRecordingGetStorageUsage, e.useRecordingListOpsLog, e.useRecordingListRelocateJobs, e.useRecordingLocateSegment, e.useRecordingPauseForStorageMigration, e.useRecordingPlanStorageRebalance, e.useRecordingPruneFootage, e.useRecordingReadGopBytes, e.useRecordingReadSegmentBytes, e.useRecordingReadWindowBytes, e.useRecordingReconcileLedgerAgainstDisk, e.useRecordingRefreshStorageLocationsForMigration, e.useRecordingRelocateFootage, e.useRecordingRenderClip, e.useRecordingRenderGif, e.useRecordingRescanStorage, e.useRecordingResumeForStorageMigration, e.useRecordingSetDeviceConfig, e.useRecordingStartStorageMigrationMove, e.useRecordingStartStorageRebalance, e.useRemoteComponent, e.useSceneMonitorCaptureReference, e.useSceneMonitorCreateScene, e.useSceneMonitorDeleteReference, e.useSceneMonitorDeleteScene, e.useSceneMonitorGetStatus, e.useSceneMonitorListScenes, e.useSceneMonitorListScenesBatch, e.useSceneMonitorRecheckNow, e.useSceneMonitorResetScene, e.useSceneMonitorUpdateScene, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreAggregate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreDeleteWhere, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreInsertMany, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSettingsStoreUpdateWhere, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDebugState, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotLinks, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageMigrationCancel, e.useStorageMigrationDrain, e.useStorageMigrationMovers, e.useStorageMigrationPlan, e.useStorageMigrationResidue, e.useStorageMigrationStart, e.useStorageMigrationStatus, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerAcquireEgressTranscode, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerFetchEventMedia, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceAudioMute, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerProduceEventMedia, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseEgressTranscode, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRenderPreBufferClip, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetDeviceAudioMute, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, d = e.useSystem, e.useSystem$1, e.useSystemDetectSiteLocation, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetFailureContributions, e.useSystemGetLoadContributions, e.useSystemGetLoggingSettings, e.useSystemGetRequestCensus, e.useSystemGetRetentionConfig, e.useSystemGetSiteLocation, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetLoggingSettings, e.useSystemSetRetentionConfig, e.useSystemSetSiteLocation, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useTerminalSessionAdoptLegacyMonitor, e.useTerminalSessionClose, e.useTerminalSessionCreateInstance, e.useTerminalSessionDeleteInstance, e.useTerminalSessionListInstances, e.useTerminalSessionListLegacyCameras, e.useTerminalSessionListProfiles, e.useTerminalSessionListSessions, e.useTerminalSessionOpenSession, e.useTerminalSessionPullOutput, e.useTerminalSessionResize, e.useTerminalSessionSetInstanceEnabled, e.useTerminalSessionUpdateInstance, e.useTerminalSessionWriteInput, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetCurrentSnapshotBatch, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.variantLabel, e.variantLabel$1, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
19
+ e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutomationHeroCard, e.AutomationInlineControl, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CARD_MODE_MIN_COLUMNS, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.Camera, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.DeviceMultiSelectField, e.DeviceSelectField, e.DeviceSelectorPicker, e.DeviceStepMatrix, e.Dialog, e.DialogBody, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EVENT_KIND_ICONS, e.EmptyState, e.ErrorBox, e.EventKindGlyph, e.EventStream, e.EyeOff, e.FILL, e.FLEET_LIST_GC_TIME_MS, e.FLEET_LIST_QUERY_KEY, e.FLEET_LIST_STALE_TIME_MS, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, a = e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageOff, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.Mic, e.MobileDrawer, e.ModelPicker, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECONNECT_POLICY, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROI_AREA_WARN_FRACTION, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.RotateCcw, e.SCENE_CAPTURE_VARIANTS, e.SCENE_CAPTURE_VARIANTS$1, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SETTING_ROW, e.SETTING_ROW_LABEL, e.SETTING_ROW_STACK_BREAKPOINT, e.SETTING_ROW_VALUE, e.SETTING_ROW_VALUE_TEXT, e.SNAPSHOT_MEDIA_PATH, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, o = e.STACK_GAP, e.STATE_COLOR, e.SceneMonitorEditor, e.ScopePicker, e.ScriptHeroCard, e.ScriptInlineControl, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.SettingRow, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.SortHeaderButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TABLE_SCROLL_MAX_H, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, s = e.WidgetSlot, e.ZoneEditingProvider, e.agentColumnKey, e.allDeviceTypeFilterOptions, e.applyFleetQueryDefaults, e.ariaSortForColumn, e.badgeFor, e.badgeFor$1, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.coverageLine, e.coverageLine$1, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.describeDeviceSelector, e.deviceMatchesFilter, e.deviceOptionLabel, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeLabel, e.deviceTypeMeta, e.deviceTypeMetaOf, e.devicesToOptions, e.ensureMfHostInit, e.eventKindLabel, e.filterDeviceOptions, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupAgentColumns, e.groupChildrenByLayout, e.hardwareLabel, e.humanDuration, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextReconnectAction, e.nextSort, e.nextSortDirection, e.nextTableSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolveEffectiveDefaultModel, e.resolveEffectiveStepModel, e.resolveEventKindIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.resolveStepDefaultModel, e.resolveTableLayout, e.roiTooLarge, e.roiTooLarge$1, e.scrubReducer, e.selectedDeviceOptions, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.shouldUseSingleNode, e.sortRows, e.sortRowsByColumn, e.statusIcons, e.statusLine, e.statusLine$1, e.stepHasModelForFormat, e.stepModelOptions, e.stripParentNamePrefix, e.tabForSelector, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsGetIntegrationSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupDeleteSchedule, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupListSchedules, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBackupUpsertSchedule, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useClusterTopology, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectionTestDescribeTest, e.useConnectionTestTestSettings, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoreBlocksCompile, e.useCoreBlocksCreate, e.useCoreBlocksDelete, e.useCoreBlocksGet, e.useCoreBlocksGetTypeDefs, e.useCoreBlocksList, e.useCoreBlocksRestart, e.useCoreBlocksSetEnabled, e.useCoreBlocksUpdate, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionCancelJob, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionListJobs, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAdoptionStartJob, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyDeviceSettingsPatch, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetBindingsBatch, e.useDeviceManagerGetChildren, e.useDeviceManagerGetChildrenBatch, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveContribution, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceSettingsContribution, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetDeviceStatusAggregateBatch, e.useDeviceManagerGetLinkedDevices, e.useDeviceManagerGetLinkedDevicesBatch, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, c = e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, e.useDeviceSnapshotImage$1, l = e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, u = e.useDeviceStateSlice, e.useDeviceStateSlice$1, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellApplyDeviceSettingsPatch, e.useDoorbellEvents, e.useDoorbellGetDeviceLiveContribution, e.useDoorbellGetDeviceSettingsContribution, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLlmCancel, e.useLlmDeleteModel, e.useLlmDeleteProfile, e.useLlmGenerate, e.useLlmGenerateVision, e.useLlmGetDefaults, e.useLlmGetRuntimeStatus, e.useLlmGetUsage, e.useLlmInstallModel, e.useLlmListModelCatalog, e.useLlmListModels, e.useLlmListNodeModels, e.useLlmListProfileKinds, e.useLlmListProfiles, e.useLlmListRuntimeNodes, e.useLlmResolveModelRef, e.useLlmSetDefault, e.useLlmStartRuntime, e.useLlmStopRuntime, e.useLlmTestProfile, e.useLlmUpsertProfile, e.useLocalNetworkDownloadCa, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetNotificationEndpoint, e.useLocalNetworkGetPreferred, e.useLocalNetworkGetTlsStatus, e.useLocalNetworkGetViewerEndpoints, e.useLocalNetworkList, e.useLocalNetworkRegenerateCertificate, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkRevertToGeneratedCertificate, e.useLocalNetworkSetAllowedAddresses, e.useLocalNetworkSetNotificationEndpoint, e.useLocalNetworkSetViewerEndpoints, e.useLocalNetworkUploadCertificate, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetLoadSeries, e.useMetricsProviderGetProcessStats, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotificationRulesCancelSnooze, e.useNotificationRulesCreateRule, e.useNotificationRulesCreateSnooze, e.useNotificationRulesDeleteRule, e.useNotificationRulesGetAlarmConfig, e.useNotificationRulesGetConditionCatalog, e.useNotificationRulesGetHistory, e.useNotificationRulesGetRule, e.useNotificationRulesListDeviceMutes, e.useNotificationRulesListRules, e.useNotificationRulesListSnoozes, e.useNotificationRulesResolveArtifactUrl, e.useNotificationRulesSetAlarmConfig, e.useNotificationRulesSetDeviceMuted, e.useNotificationRulesSetRuleEnabled, e.useNotificationRulesTestRule, e.useNotificationRulesUpdateRule, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdManagerClearSlotBinding, e.useOsdManagerCopyDeviceConfiguration, e.useOsdManagerGetConditionSupport, e.useOsdManagerGetDeviceOsd, e.useOsdManagerGetSourceCatalog, e.useOsdManagerPreviewSlot, e.useOsdManagerRenderDevice, e.useOsdManagerSetSlotBinding, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsCancelRelocateMedia, e.usePipelineAnalyticsCancelStorageMigrationMove, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsCompleteRetrainTrack, e.usePipelineAnalyticsCountRelocatableMedia, e.usePipelineAnalyticsCountUnstampedEventMedia, e.usePipelineAnalyticsDeleteDeviceEvents, e.usePipelineAnalyticsDeleteTracks, e.usePipelineAnalyticsDeselectRetrainFrame, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetEventMediaFootprintByKind, e.usePipelineAnalyticsGetEventStoreFootprint, e.usePipelineAnalyticsGetGroup, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetKeyEventsBatch, e.usePipelineAnalyticsGetMediaReclaimStatus, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetRetrainExportUrl, e.usePipelineAnalyticsGetRetrainFrameImage, e.usePipelineAnalyticsGetSensorEvents, e.usePipelineAnalyticsGetStorageMigrationMoveStatus, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsGetTrainingExportSummary, e.usePipelineAnalyticsGetTrainingExportUrl, e.usePipelineAnalyticsListEventKinds, e.usePipelineAnalyticsListEventKindsBatch, e.usePipelineAnalyticsListEventMedia, e.usePipelineAnalyticsListGroups, e.usePipelineAnalyticsListOpsLog, e.usePipelineAnalyticsListRecentTracks, e.usePipelineAnalyticsListRelocateMediaJobs, e.usePipelineAnalyticsListRetrainAnnotations, e.usePipelineAnalyticsListRetrainFrames, e.usePipelineAnalyticsListRetrainStaging, e.usePipelineAnalyticsListTrackMedia, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsPauseForStorageMigration, e.usePipelineAnalyticsProposeRetrainAnnotations, e.usePipelineAnalyticsPruneEvents, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsPruneTracksBefore, e.usePipelineAnalyticsRebuildObjectEmbeddings, e.usePipelineAnalyticsReclaimDebugMedia, e.usePipelineAnalyticsReconcileFromDisk, e.usePipelineAnalyticsRefreshStorageLocationsForMigration, e.usePipelineAnalyticsRelocateMedia, e.usePipelineAnalyticsRestageRetrainTrack, e.usePipelineAnalyticsResumeForStorageMigration, e.usePipelineAnalyticsRunReplayFrameProcessor, e.usePipelineAnalyticsSaveRetrainAnnotations, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineAnalyticsSelectRetrainFrames, e.usePipelineAnalyticsSetTrackFlags, e.usePipelineAnalyticsStartStorageMigrationMove, e.usePipelineAnalyticsWipeAllAnalytics, e.usePipelineAnalyticsWipeObjectEmbeddings, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetInferenceDeviceHealth, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorRearmInferenceDevice, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCameraSwitches, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetNodeInferenceDevices, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorGetPipelineDevicePin, e.usePipelineOrchestratorGetReconcileFromDiskStatus, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorPauseForStorageMigration, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorReconcileFromDisk, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorResumeForStorageMigration, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentInferenceDevices, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCameraSwitch, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorSetPipelineDevicePin, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerReportMotion, e.usePipelineRunnerRunDetailSubtree, e.usePipelineRunnerRunStatelessStep, e.usePlateGalleryAssignPlate, e.usePlateGalleryAssignPlates, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryCreateVehicle, e.usePlateGalleryDeletePlate, e.usePlateGalleryDeleteVehicle, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGalleryListVehicleSamples, e.usePlateGalleryListVehicles, e.usePlateGalleryRemoveVehicleSample, e.usePlateGalleryRenameVehicle, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlateGalleryUnassignPlate, e.usePlateGalleryUnassignPlates, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetAudioEnabled, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingCancelRelocateJob, e.useRecordingCancelStorageMigrationMove, e.useRecordingDeleteFootprint, e.useRecordingExportCancelExport, e.useRecordingExportCreateExport, e.useRecordingExportDeleteExport, e.useRecordingExportGetDownloadUrl, e.useRecordingExportGetExport, e.useRecordingExportListExports, e.useRecordingExportReadExportBytes, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlacement, e.useRecordingGetPlaybackManifest, e.useRecordingGetRelocateResidue, e.useRecordingGetStatus, e.useRecordingGetStorageMigrationMoveStatus, e.useRecordingGetStorageUsage, e.useRecordingListOpsLog, e.useRecordingListRelocateJobs, e.useRecordingLocateSegment, e.useRecordingPauseForStorageMigration, e.useRecordingPlanStorageRebalance, e.useRecordingPruneFootage, e.useRecordingReadGopBytes, e.useRecordingReadSegmentBytes, e.useRecordingReadWindowBytes, e.useRecordingReconcileLedgerAgainstDisk, e.useRecordingRefreshStorageLocationsForMigration, e.useRecordingRelocateFootage, e.useRecordingRenderClip, e.useRecordingRenderGif, e.useRecordingRescanStorage, e.useRecordingResumeForStorageMigration, e.useRecordingSetDeviceConfig, e.useRecordingSetDevicePlacement, e.useRecordingStartStorageMigrationMove, e.useRecordingStartStorageRebalance, e.useRemoteComponent, e.useSceneMonitorCaptureReference, e.useSceneMonitorCreateScene, e.useSceneMonitorDeleteReference, e.useSceneMonitorDeleteScene, e.useSceneMonitorGetStatus, e.useSceneMonitorListScenes, e.useSceneMonitorListScenesBatch, e.useSceneMonitorRecheckNow, e.useSceneMonitorResetScene, e.useSceneMonitorUpdateScene, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreAggregate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreDeleteWhere, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreInsertMany, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSettingsStoreUpdateWhere, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDebugState, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotLinks, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageMigrationCancel, e.useStorageMigrationCleanupCancel, e.useStorageMigrationCleanupStart, e.useStorageMigrationCleanupStatus, e.useStorageMigrationDrain, e.useStorageMigrationHistory, e.useStorageMigrationMovers, e.useStorageMigrationPlan, e.useStorageMigrationResidue, e.useStorageMigrationStart, e.useStorageMigrationStatus, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerAcquireEgressTranscode, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerFetchEventMedia, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceAudioMute, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerProduceEventMedia, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseEgressTranscode, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRenderPreBufferClip, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetDeviceAudioMute, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, d = e.useSystem, e.useSystem$1, e.useSystemDetectSiteLocation, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetFailureContributions, e.useSystemGetLoadContributions, e.useSystemGetLoggingSettings, e.useSystemGetRequestCensus, e.useSystemGetRetentionConfig, e.useSystemGetSiteLocation, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetLoggingSettings, e.useSystemSetRetentionConfig, e.useSystemSetSiteLocation, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useTerminalSessionAdoptLegacyMonitor, e.useTerminalSessionClose, e.useTerminalSessionCreateInstance, e.useTerminalSessionDeleteInstance, e.useTerminalSessionListInstances, e.useTerminalSessionListLegacyCameras, e.useTerminalSessionListProfiles, e.useTerminalSessionListSessions, e.useTerminalSessionOpenSession, e.useTerminalSessionPullOutput, e.useTerminalSessionResize, e.useTerminalSessionSetInstanceEnabled, e.useTerminalSessionUpdateInstance, e.useTerminalSessionWriteInput, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetCurrentSnapshotBatch, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.variantLabel, e.variantLabel$1, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
20
20
  }, p = i.share["default:@camstack/ui-library"];
21
21
  p === void 0 ? n.then(() => {
22
22
  if (p = i.share["default:@camstack/ui-library"], p === void 0) throw Error("[Module Federation] Shared module @camstack/ui-library was imported before federation bootstrap finished.");
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.131",
39
+ version: "1.2.132",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.94",
84
+ version: "1.2.95",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-CXY233l4.js");
5
+ const require_dist = require("../dist-CLxPUxVN.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_dist.__toESM(node_fs, 1);
8
8
  let node_path = require("node:path");
@@ -31977,7 +31977,7 @@ function pairRiders(detections) {
31977
31977
  * diagonal = 2.085) with the same ~10% headroom the old 1.35 gave it.
31978
31978
  */
31979
31979
  var GROWTH_CENTROID_FACTOR = 2.3;
31980
- function intersectionArea$1(a, b) {
31980
+ function intersectionArea$2(a, b) {
31981
31981
  const x1 = Math.max(a.x, b.x);
31982
31982
  const y1 = Math.max(a.y, b.y);
31983
31983
  const x2 = Math.min(a.x + a.w, b.x + b.w);
@@ -32015,7 +32015,7 @@ function growthAdjacentMatch(track, det, ctx) {
32015
32015
  const larger = Math.max(trackArea, detArea);
32016
32016
  const smaller = Math.min(trackArea, detArea);
32017
32017
  if (larger / smaller < 1.5) return false;
32018
- if (intersectionArea$1(track, det) / smaller >= .5) return false;
32018
+ if (intersectionArea$2(track, det) / smaller >= .5) return false;
32019
32019
  const tc = bboxCentroid(track);
32020
32020
  const dc = bboxCentroid(det);
32021
32021
  return Math.hypot(tc.x - dc.x, tc.y - dc.y) <= GROWTH_CENTROID_FACTOR * Math.hypot(track.w, track.h);
@@ -34283,7 +34283,7 @@ var TrackCloser = class {
34283
34283
  try {
34284
34284
  const trackStore = this.deps.trackStore();
34285
34285
  if (!trackStore) return;
34286
- const expired = await trackStore.expireStale(this.now());
34286
+ const expired = await trackStore.expireStale(this.now(), this.deps.isKnownParked !== void 0 ? { isKnownParked: this.deps.isKnownParked } : void 0);
34287
34287
  for (const t of expired) await this.closeExpired(t);
34288
34288
  } catch (err) {
34289
34289
  if (this.deps.isShuttingDown()) return;
@@ -47958,6 +47958,65 @@ function normaliseStationaryClass(className) {
47958
47958
  function centroidInside(b, p) {
47959
47959
  return p.x >= b.x && p.x <= b.x + b.w && p.y >= b.y && p.y <= b.y + b.h;
47960
47960
  }
47961
+ /** Parked-box coverage (intersection / entry area) that counts as swallowed. */
47962
+ var SWALLOW_MIN_COVERAGE = .5;
47963
+ function isSceneSizedBox(bbox, frameWidth, frameHeight) {
47964
+ const frame = frameWidth * frameHeight;
47965
+ return frame > 0 && bbox.w * bbox.h / frame >= .55;
47966
+ }
47967
+ function intersectionArea$1(a, b) {
47968
+ const ix1 = Math.max(a.x, b.x);
47969
+ const iy1 = Math.max(a.y, b.y);
47970
+ const ix2 = Math.min(a.x + a.w, b.x + b.w);
47971
+ const iy2 = Math.min(a.y + a.h, b.y + b.h);
47972
+ return Math.max(0, ix2 - ix1) * Math.max(0, iy2 - iy1);
47973
+ }
47974
+ /** True when `det` is a larger merged box that covers the parked object. */
47975
+ function detectionSwallowsEntry(det, parked) {
47976
+ const entryArea = parked.w * parked.h;
47977
+ const detArea = det.w * det.h;
47978
+ if (entryArea <= 0 || detArea < entryArea * 1.35) return false;
47979
+ if (!centroidInside(det, centroid(parked))) return false;
47980
+ return intersectionArea$1(parked, det) / entryArea >= SWALLOW_MIN_COVERAGE;
47981
+ }
47982
+ function parkedEntryHoldsDetection(entry, detBbox, config) {
47983
+ const overlap = iou(entry.bbox, detBbox);
47984
+ if (overlap >= config.suppressIou) return {
47985
+ strong: true,
47986
+ holds: true
47987
+ };
47988
+ if (detectionSwallowsEntry(detBbox, entry.bbox)) return {
47989
+ strong: false,
47990
+ holds: true
47991
+ };
47992
+ if (isSceneSizedBox(entry.bbox, entry.frameWidth, entry.frameHeight)) return {
47993
+ strong: false,
47994
+ holds: false
47995
+ };
47996
+ return {
47997
+ strong: false,
47998
+ holds: overlap >= config.wakeAssocIou && centroidInside(entry.bbox, centroid(detBbox))
47999
+ };
48000
+ }
48001
+ /** Close-time / best-shot: does this box read as a live parked entry? */
48002
+ function bboxMatchesParkedEntry(bbox, className, entries, suppressIou = SUPPRESS_IOU, wakeAssocIou = WAKE_ASSOC_IOU) {
48003
+ const cls = normaliseStationaryClass(className);
48004
+ const config = {
48005
+ suppressIou,
48006
+ wakeAssocIou
48007
+ };
48008
+ for (const e of entries) {
48009
+ if (normaliseStationaryClass(e.className) !== cls) continue;
48010
+ if (parkedEntryHoldsDetection(e, bbox, config).holds) return true;
48011
+ }
48012
+ return false;
48013
+ }
48014
+ /** Best-shot veto: current crop is a parked object the trail did not start on. */
48015
+ function thumbnailWouldShowParkedNotSubject(input) {
48016
+ if (!bboxMatchesParkedEntry(input.currentBbox, input.className, input.entries)) return false;
48017
+ if (bboxMatchesParkedEntry(input.firstBbox, input.className, input.entries)) return false;
48018
+ return true;
48019
+ }
47961
48020
  /**
47962
48021
  * Decide, per stationary entry, whether the current frame confirms it, wakes
47963
48022
  * it, or misses it (no matching detection — leave it for the TTL sweep).
@@ -47970,9 +48029,12 @@ function centroidInside(b, p) {
47970
48029
  *
47971
48030
  * - best IoU ≥ `suppressIou` → SUPPRESS (the parked object, near-identical box)
47972
48031
  * and mark the entry confirmed.
48032
+ * - a same-class detection that SWALLOWS the parked box (much larger, covers
48033
+ * it) → SUPPRESS and confirm. A merged mover+parked box is not a departure.
47973
48034
  * - `wakeAssocIou` ≤ best IoU < `suppressIou`, centroid still INSIDE the parked
47974
- * box → SUPPRESS (detector box jitter — the box shrank/grew around the same
47975
- * centre; still the parked object, must not spawn a duplicate track).
48035
+ * box, and the entry is NOT scene-sized → SUPPRESS (detector box jitter).
48036
+ * - a scene-sized entry (area ≳ 55% of the frame) holds ONLY on strong IoU:
48037
+ * centroid-inside would be true for almost every vehicle in view (3829).
47976
48038
  * - `wakeAssocIou` ≤ best IoU < `suppressIou`, centroid OUTSIDE the parked box
47977
48039
  * → DEPARTING (the object's box slid off its spot).
47978
48040
  * - best IoU < `wakeAssocIou` → MISS: no detection overlaps this entry (a
@@ -48081,7 +48143,32 @@ function partitionDetectionsAgainstRegistry(input) {
48081
48143
  reason: "expired"
48082
48144
  });
48083
48145
  const strike = stale ? void 0 : carried;
48084
- if (bestIdx < 0 || bestIou < config.wakeAssocIou) {
48146
+ let holdIdx = -1;
48147
+ let strong = false;
48148
+ if (bestIdx >= 0) {
48149
+ const held = parkedEntryHoldsDetection(entry, detections[bestIdx].bbox, config);
48150
+ if (held.holds) {
48151
+ holdIdx = bestIdx;
48152
+ strong = held.strong;
48153
+ }
48154
+ }
48155
+ if (holdIdx >= 0) {
48156
+ suppressed.add(holdIdx);
48157
+ confirmed.push({
48158
+ entryId: entry.id,
48159
+ className: entry.className,
48160
+ bbox: { ...entry.bbox },
48161
+ observedBbox: { ...detections[holdIdx].bbox },
48162
+ strong
48163
+ });
48164
+ if (strike !== void 0) strikeChanges.push({
48165
+ entryId: entry.id,
48166
+ strike: null,
48167
+ reason: strong ? "cancelled-strong" : "cancelled-weak"
48168
+ });
48169
+ continue;
48170
+ }
48171
+ if (isSceneSizedBox(entry.bbox, entry.frameWidth, entry.frameHeight) || bestIdx < 0 || bestIou < config.wakeAssocIou) {
48085
48172
  if (strike === void 0) continue;
48086
48173
  const absentReads = strike.absentReads + 1;
48087
48174
  if (strikeAgeMs >= departure.confirmMinGapMs && absentReads >= departure.absenceMinReads) {
@@ -48103,24 +48190,6 @@ function partitionDetectionsAgainstRegistry(input) {
48103
48190
  });
48104
48191
  continue;
48105
48192
  }
48106
- const detCentroid = centroid(detections[bestIdx].bbox);
48107
- const strong = bestIou >= config.suppressIou;
48108
- if (strong || centroidInside(entry.bbox, detCentroid)) {
48109
- suppressed.add(bestIdx);
48110
- confirmed.push({
48111
- entryId: entry.id,
48112
- className: entry.className,
48113
- bbox: { ...entry.bbox },
48114
- observedBbox: { ...detections[bestIdx].bbox },
48115
- strong
48116
- });
48117
- if (strike !== void 0) strikeChanges.push({
48118
- entryId: entry.id,
48119
- strike: null,
48120
- reason: strong ? "cancelled-strong" : "cancelled-weak"
48121
- });
48122
- continue;
48123
- }
48124
48193
  if (warmUp) {
48125
48194
  warmUpDepartureReads += 1;
48126
48195
  suppressed.add(bestIdx);
@@ -48166,9 +48235,7 @@ function partitionDetectionsAgainstRegistry(input) {
48166
48235
  for (let ei = 0; ei < entries.length; ei++) {
48167
48236
  const entry = entries[ei];
48168
48237
  if (entryClasses[ei] !== detClass || wokenIds.has(entry.id)) continue;
48169
- const o = iou(entry.bbox, det.bbox);
48170
- if (o < config.wakeAssocIou) continue;
48171
- if (o < config.suppressIou && !centroidInside(entry.bbox, centroid(det.bbox))) continue;
48238
+ if (!parkedEntryHoldsDetection(entry, det.bbox, config).holds) continue;
48172
48239
  suppressed.add(di);
48173
48240
  reachSuppressedCount += 1;
48174
48241
  break;
@@ -55394,12 +55461,12 @@ var TrackStore = class {
55394
55461
  }
55395
55462
  /** Expire tracks whose `lastSeen` is older than TTL. Persists each
55396
55463
  * expired track to the declared collection and returns them. */
55397
- async expireStale(nowMs) {
55464
+ async expireStale(nowMs, opts) {
55398
55465
  const expired = [];
55399
55466
  for (const [trackId, t] of this.active) {
55400
55467
  if (nowMs - t.lastSeen < this.config.ttlMs) continue;
55401
55468
  t.active = false;
55402
- if (t.positions.length > 0 && isShortMotionlessTrack(t.lastSeen - t.firstSeen, netDisplacementPx(t.positions), t.className)) t.closedReason = "stationary-promotion";
55469
+ if (t.positions.length > 0 && (opts?.isKnownParked?.(t) === true || isShortMotionlessTrack(t.lastSeen - t.firstSeen, netDisplacementPx(t.positions), t.className))) t.closedReason = "stationary-promotion";
55403
55470
  const record = cloneTrack(t);
55404
55471
  try {
55405
55472
  await this.persistCompleted(record);
@@ -65413,6 +65480,11 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends require_dist.B
65413
65480
  recordPendingPreviewUpgrade: (entry) => this.pendingPreviewUpgrades.record(entry),
65414
65481
  setPreviewMiss: async (_deviceId, trackId, reason) => {
65415
65482
  await this.trackStore?.setPreviewMiss(trackId, reason);
65483
+ },
65484
+ isKnownParked: (track) => {
65485
+ const last = track.positions.at(-1)?.bbox;
65486
+ if (!last) return false;
65487
+ return bboxMatchesParkedEntry(last, track.className, this.stationaryRegistry?.listViews(track.deviceId) ?? []);
65416
65488
  }
65417
65489
  });
65418
65490
  return this._trackCloser;
@@ -69705,7 +69777,13 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends require_dist.B
69705
69777
  W: frameWidth,
69706
69778
  H: frameHeight
69707
69779
  });
69708
- const isNewBest = this.residents.observeBestFrame(deviceId, t.trackId, t.confidence, timestamp, edgeClear, centerScore, containment, sizeScore, squareFraction, false);
69780
+ const firstBox = this.trackStore?.peekActive(t.trackId)?.positions[0]?.bbox;
69781
+ const isNewBest = firstBox !== void 0 && thumbnailWouldShowParkedNotSubject({
69782
+ currentBbox: t.bbox,
69783
+ firstBbox: firstBox,
69784
+ className: t.className,
69785
+ entries: this.stationaryRegistry?.listViews(deviceId) ?? []
69786
+ }) ? false : this.residents.observeBestFrame(deviceId, t.trackId, t.confidence, timestamp, edgeClear, centerScore, containment, sizeScore, squareFraction, false);
69709
69787
  this.maybeEmitTrackLifecycleUpdate(deviceId, t, timestamp, isNewBest);
69710
69788
  const plan = planPeriodicMedia({
69711
69789
  debugMediaEnabled: media.debugMediaEnabled,
@@ -1,4 +1,4 @@
1
- import { $ as audioMetricsCapability, A as NcSnoozeInputSchema, At as errMsg, B as SCENE_DEFAULT_ANCHOR_THRESHOLD, Bt as boolean, C as NC_TAXONOMY, D as NcRuleSchema, Dt as vectorDimFromBase64, E as NcRulePatchSchema, Et as systemEventFilterApplies, F as OpsLogEntrySchema, Ft as isDeviceScopedCap, G as TimelapseRuleInputSchema, Gt as partialRecord, H as SCENE_DIVERGED, Ht as literal, It as nodePin, J as TrackSourceSchema, Jt as unknown, K as TimelapseRulePatchSchema, Kt as record, L as RECORDING_EXPORT_MAX_READ_BYTES, Lt as sleep, M as NcSnoozeSuppressedSchema, Mt as DeviceType, N as NcSystemEventKindSchema, Nt as createEvent, O as NcRuleTargetSchema, Ot as videoclipsCapability, P as NcTaxonomySchema, Pt as hydrateSchema, Q as assertTimelapseCadences, R as RetrainStatusSchema, Rt as _enum, St as readTimelapseGeneratedAt, T as NcRuleInputSchema, Tt as subKindsOf, U as SceneMonitorSchema, Ut as number, V as SCENE_DEFAULT_UNCOVERED_POLICY, Vt as discriminatedUnion, W as TIMELAPSE_DENSE_FLOOR_SEC, Wt as object, X as addonWidgetsSourceCapability, Y as VISIT_MERGE_GAP_MS, Yt as EventCategory, Z as alarmPanelCapability, _ as MACRO_LABELS, a as COCO_TO_MACRO, at as deriveRecordingMode, b as NC_CONDITION_CATALOG, bt as plateGalleryCapability, ct as evaluateSensorEdge, d as DeclaredDevices, et as audioModeOf, f as EVENT_KIND_BY_CAP, ft as isDetectionMacroClass, g as LabelAttributionSchema, gt as notificationRulesCapability, h as FailureCounters, ht as kebabToCamel, i as CLUSTER_MODEL_SCOPED_STEPS, it as defineCustomActions, j as NcSnoozeSchema, jt as BaseAddon, k as NcScheduleSchema, kt as zoneAnalyticsCapability, l as DETECTION_MACRO_CLASSES, lt as faceGalleryCapability, m as FULL_IMAGE_BBOX, mt as isSourceCap, n as AnalyticsGroupRecordSchema, nt as cosineSimilarity$1, o as DEFAULT_EVENT_COLOR, p as EVENT_PAD_MS, pt as isScheduleActive, q as TimelapseRuleSchema, qt as string, r as BaseDevice, rt as customAction, st as encodeVectorBase64, t as AnalyticsGroupDetailSchema, tt as buildEventKindDescriptor, ut as failureContributionCapability, v as MediaFileKindEnum, vt as pickClusterStepModels, w as NcConditionDescriptorSchema, wt as sceneMonitorCapability, x as NC_DEFAULT_SNOOZE_MINUTES, xt as readDeviceStateFrom, y as NC_ALARM_SYSTEM_EVENT_KINDS, yt as pipelineAnalyticsCapability, zt as array } from "../dist-DqNo8CCq.mjs";
1
+ import { $ as audioMetricsCapability, A as NcSnoozeInputSchema, At as errMsg, B as SCENE_DEFAULT_ANCHOR_THRESHOLD, Bt as boolean, C as NC_TAXONOMY, D as NcRuleSchema, Dt as vectorDimFromBase64, E as NcRulePatchSchema, Et as systemEventFilterApplies, F as OpsLogEntrySchema, Ft as isDeviceScopedCap, G as TimelapseRuleInputSchema, Gt as partialRecord, H as SCENE_DIVERGED, Ht as literal, It as nodePin, J as TrackSourceSchema, Jt as unknown, K as TimelapseRulePatchSchema, Kt as record, L as RECORDING_EXPORT_MAX_READ_BYTES, Lt as sleep, M as NcSnoozeSuppressedSchema, Mt as DeviceType, N as NcSystemEventKindSchema, Nt as createEvent, O as NcRuleTargetSchema, Ot as videoclipsCapability, P as NcTaxonomySchema, Pt as hydrateSchema, Q as assertTimelapseCadences, R as RetrainStatusSchema, Rt as _enum, St as readTimelapseGeneratedAt, T as NcRuleInputSchema, Tt as subKindsOf, U as SceneMonitorSchema, Ut as number, V as SCENE_DEFAULT_UNCOVERED_POLICY, Vt as discriminatedUnion, W as TIMELAPSE_DENSE_FLOOR_SEC, Wt as object, X as addonWidgetsSourceCapability, Y as VISIT_MERGE_GAP_MS, Yt as EventCategory, Z as alarmPanelCapability, _ as MACRO_LABELS, a as COCO_TO_MACRO, at as deriveRecordingMode, b as NC_CONDITION_CATALOG, bt as plateGalleryCapability, ct as evaluateSensorEdge, d as DeclaredDevices, et as audioModeOf, f as EVENT_KIND_BY_CAP, ft as isDetectionMacroClass, g as LabelAttributionSchema, gt as notificationRulesCapability, h as FailureCounters, ht as kebabToCamel, i as CLUSTER_MODEL_SCOPED_STEPS, it as defineCustomActions, j as NcSnoozeSchema, jt as BaseAddon, k as NcScheduleSchema, kt as zoneAnalyticsCapability, l as DETECTION_MACRO_CLASSES, lt as faceGalleryCapability, m as FULL_IMAGE_BBOX, mt as isSourceCap, n as AnalyticsGroupRecordSchema, nt as cosineSimilarity$1, o as DEFAULT_EVENT_COLOR, p as EVENT_PAD_MS, pt as isScheduleActive, q as TimelapseRuleSchema, qt as string, r as BaseDevice, rt as customAction, st as encodeVectorBase64, t as AnalyticsGroupDetailSchema, tt as buildEventKindDescriptor, ut as failureContributionCapability, v as MediaFileKindEnum, vt as pickClusterStepModels, w as NcConditionDescriptorSchema, wt as sceneMonitorCapability, x as NC_DEFAULT_SNOOZE_MINUTES, xt as readDeviceStateFrom, y as NC_ALARM_SYSTEM_EVENT_KINDS, yt as pipelineAnalyticsCapability, zt as array } from "../dist-D_O7oxyS.mjs";
2
2
  import { t as __exportAll } from "../embedding-encoder/index.mjs";
3
3
  import * as fs from "node:fs";
4
4
  import { promises } from "node:fs";
@@ -31952,7 +31952,7 @@ function pairRiders(detections) {
31952
31952
  * diagonal = 2.085) with the same ~10% headroom the old 1.35 gave it.
31953
31953
  */
31954
31954
  var GROWTH_CENTROID_FACTOR = 2.3;
31955
- function intersectionArea$1(a, b) {
31955
+ function intersectionArea$2(a, b) {
31956
31956
  const x1 = Math.max(a.x, b.x);
31957
31957
  const y1 = Math.max(a.y, b.y);
31958
31958
  const x2 = Math.min(a.x + a.w, b.x + b.w);
@@ -31990,7 +31990,7 @@ function growthAdjacentMatch(track, det, ctx) {
31990
31990
  const larger = Math.max(trackArea, detArea);
31991
31991
  const smaller = Math.min(trackArea, detArea);
31992
31992
  if (larger / smaller < 1.5) return false;
31993
- if (intersectionArea$1(track, det) / smaller >= .5) return false;
31993
+ if (intersectionArea$2(track, det) / smaller >= .5) return false;
31994
31994
  const tc = bboxCentroid(track);
31995
31995
  const dc = bboxCentroid(det);
31996
31996
  return Math.hypot(tc.x - dc.x, tc.y - dc.y) <= GROWTH_CENTROID_FACTOR * Math.hypot(track.w, track.h);
@@ -34258,7 +34258,7 @@ var TrackCloser = class {
34258
34258
  try {
34259
34259
  const trackStore = this.deps.trackStore();
34260
34260
  if (!trackStore) return;
34261
- const expired = await trackStore.expireStale(this.now());
34261
+ const expired = await trackStore.expireStale(this.now(), this.deps.isKnownParked !== void 0 ? { isKnownParked: this.deps.isKnownParked } : void 0);
34262
34262
  for (const t of expired) await this.closeExpired(t);
34263
34263
  } catch (err) {
34264
34264
  if (this.deps.isShuttingDown()) return;
@@ -47873,6 +47873,65 @@ function normaliseStationaryClass(className) {
47873
47873
  function centroidInside(b, p) {
47874
47874
  return p.x >= b.x && p.x <= b.x + b.w && p.y >= b.y && p.y <= b.y + b.h;
47875
47875
  }
47876
+ /** Parked-box coverage (intersection / entry area) that counts as swallowed. */
47877
+ var SWALLOW_MIN_COVERAGE = .5;
47878
+ function isSceneSizedBox(bbox, frameWidth, frameHeight) {
47879
+ const frame = frameWidth * frameHeight;
47880
+ return frame > 0 && bbox.w * bbox.h / frame >= .55;
47881
+ }
47882
+ function intersectionArea$1(a, b) {
47883
+ const ix1 = Math.max(a.x, b.x);
47884
+ const iy1 = Math.max(a.y, b.y);
47885
+ const ix2 = Math.min(a.x + a.w, b.x + b.w);
47886
+ const iy2 = Math.min(a.y + a.h, b.y + b.h);
47887
+ return Math.max(0, ix2 - ix1) * Math.max(0, iy2 - iy1);
47888
+ }
47889
+ /** True when `det` is a larger merged box that covers the parked object. */
47890
+ function detectionSwallowsEntry(det, parked) {
47891
+ const entryArea = parked.w * parked.h;
47892
+ const detArea = det.w * det.h;
47893
+ if (entryArea <= 0 || detArea < entryArea * 1.35) return false;
47894
+ if (!centroidInside(det, centroid(parked))) return false;
47895
+ return intersectionArea$1(parked, det) / entryArea >= SWALLOW_MIN_COVERAGE;
47896
+ }
47897
+ function parkedEntryHoldsDetection(entry, detBbox, config) {
47898
+ const overlap = iou(entry.bbox, detBbox);
47899
+ if (overlap >= config.suppressIou) return {
47900
+ strong: true,
47901
+ holds: true
47902
+ };
47903
+ if (detectionSwallowsEntry(detBbox, entry.bbox)) return {
47904
+ strong: false,
47905
+ holds: true
47906
+ };
47907
+ if (isSceneSizedBox(entry.bbox, entry.frameWidth, entry.frameHeight)) return {
47908
+ strong: false,
47909
+ holds: false
47910
+ };
47911
+ return {
47912
+ strong: false,
47913
+ holds: overlap >= config.wakeAssocIou && centroidInside(entry.bbox, centroid(detBbox))
47914
+ };
47915
+ }
47916
+ /** Close-time / best-shot: does this box read as a live parked entry? */
47917
+ function bboxMatchesParkedEntry(bbox, className, entries, suppressIou = SUPPRESS_IOU, wakeAssocIou = WAKE_ASSOC_IOU) {
47918
+ const cls = normaliseStationaryClass(className);
47919
+ const config = {
47920
+ suppressIou,
47921
+ wakeAssocIou
47922
+ };
47923
+ for (const e of entries) {
47924
+ if (normaliseStationaryClass(e.className) !== cls) continue;
47925
+ if (parkedEntryHoldsDetection(e, bbox, config).holds) return true;
47926
+ }
47927
+ return false;
47928
+ }
47929
+ /** Best-shot veto: current crop is a parked object the trail did not start on. */
47930
+ function thumbnailWouldShowParkedNotSubject(input) {
47931
+ if (!bboxMatchesParkedEntry(input.currentBbox, input.className, input.entries)) return false;
47932
+ if (bboxMatchesParkedEntry(input.firstBbox, input.className, input.entries)) return false;
47933
+ return true;
47934
+ }
47876
47935
  /**
47877
47936
  * Decide, per stationary entry, whether the current frame confirms it, wakes
47878
47937
  * it, or misses it (no matching detection — leave it for the TTL sweep).
@@ -47885,9 +47944,12 @@ function centroidInside(b, p) {
47885
47944
  *
47886
47945
  * - best IoU ≥ `suppressIou` → SUPPRESS (the parked object, near-identical box)
47887
47946
  * and mark the entry confirmed.
47947
+ * - a same-class detection that SWALLOWS the parked box (much larger, covers
47948
+ * it) → SUPPRESS and confirm. A merged mover+parked box is not a departure.
47888
47949
  * - `wakeAssocIou` ≤ best IoU < `suppressIou`, centroid still INSIDE the parked
47889
- * box → SUPPRESS (detector box jitter — the box shrank/grew around the same
47890
- * centre; still the parked object, must not spawn a duplicate track).
47950
+ * box, and the entry is NOT scene-sized → SUPPRESS (detector box jitter).
47951
+ * - a scene-sized entry (area ≳ 55% of the frame) holds ONLY on strong IoU:
47952
+ * centroid-inside would be true for almost every vehicle in view (3829).
47891
47953
  * - `wakeAssocIou` ≤ best IoU < `suppressIou`, centroid OUTSIDE the parked box
47892
47954
  * → DEPARTING (the object's box slid off its spot).
47893
47955
  * - best IoU < `wakeAssocIou` → MISS: no detection overlaps this entry (a
@@ -47996,7 +48058,32 @@ function partitionDetectionsAgainstRegistry(input) {
47996
48058
  reason: "expired"
47997
48059
  });
47998
48060
  const strike = stale ? void 0 : carried;
47999
- if (bestIdx < 0 || bestIou < config.wakeAssocIou) {
48061
+ let holdIdx = -1;
48062
+ let strong = false;
48063
+ if (bestIdx >= 0) {
48064
+ const held = parkedEntryHoldsDetection(entry, detections[bestIdx].bbox, config);
48065
+ if (held.holds) {
48066
+ holdIdx = bestIdx;
48067
+ strong = held.strong;
48068
+ }
48069
+ }
48070
+ if (holdIdx >= 0) {
48071
+ suppressed.add(holdIdx);
48072
+ confirmed.push({
48073
+ entryId: entry.id,
48074
+ className: entry.className,
48075
+ bbox: { ...entry.bbox },
48076
+ observedBbox: { ...detections[holdIdx].bbox },
48077
+ strong
48078
+ });
48079
+ if (strike !== void 0) strikeChanges.push({
48080
+ entryId: entry.id,
48081
+ strike: null,
48082
+ reason: strong ? "cancelled-strong" : "cancelled-weak"
48083
+ });
48084
+ continue;
48085
+ }
48086
+ if (isSceneSizedBox(entry.bbox, entry.frameWidth, entry.frameHeight) || bestIdx < 0 || bestIou < config.wakeAssocIou) {
48000
48087
  if (strike === void 0) continue;
48001
48088
  const absentReads = strike.absentReads + 1;
48002
48089
  if (strikeAgeMs >= departure.confirmMinGapMs && absentReads >= departure.absenceMinReads) {
@@ -48018,24 +48105,6 @@ function partitionDetectionsAgainstRegistry(input) {
48018
48105
  });
48019
48106
  continue;
48020
48107
  }
48021
- const detCentroid = centroid(detections[bestIdx].bbox);
48022
- const strong = bestIou >= config.suppressIou;
48023
- if (strong || centroidInside(entry.bbox, detCentroid)) {
48024
- suppressed.add(bestIdx);
48025
- confirmed.push({
48026
- entryId: entry.id,
48027
- className: entry.className,
48028
- bbox: { ...entry.bbox },
48029
- observedBbox: { ...detections[bestIdx].bbox },
48030
- strong
48031
- });
48032
- if (strike !== void 0) strikeChanges.push({
48033
- entryId: entry.id,
48034
- strike: null,
48035
- reason: strong ? "cancelled-strong" : "cancelled-weak"
48036
- });
48037
- continue;
48038
- }
48039
48108
  if (warmUp) {
48040
48109
  warmUpDepartureReads += 1;
48041
48110
  suppressed.add(bestIdx);
@@ -48081,9 +48150,7 @@ function partitionDetectionsAgainstRegistry(input) {
48081
48150
  for (let ei = 0; ei < entries.length; ei++) {
48082
48151
  const entry = entries[ei];
48083
48152
  if (entryClasses[ei] !== detClass || wokenIds.has(entry.id)) continue;
48084
- const o = iou(entry.bbox, det.bbox);
48085
- if (o < config.wakeAssocIou) continue;
48086
- if (o < config.suppressIou && !centroidInside(entry.bbox, centroid(det.bbox))) continue;
48153
+ if (!parkedEntryHoldsDetection(entry, det.bbox, config).holds) continue;
48087
48154
  suppressed.add(di);
48088
48155
  reachSuppressedCount += 1;
48089
48156
  break;
@@ -55309,12 +55376,12 @@ var TrackStore = class {
55309
55376
  }
55310
55377
  /** Expire tracks whose `lastSeen` is older than TTL. Persists each
55311
55378
  * expired track to the declared collection and returns them. */
55312
- async expireStale(nowMs) {
55379
+ async expireStale(nowMs, opts) {
55313
55380
  const expired = [];
55314
55381
  for (const [trackId, t] of this.active) {
55315
55382
  if (nowMs - t.lastSeen < this.config.ttlMs) continue;
55316
55383
  t.active = false;
55317
- if (t.positions.length > 0 && isShortMotionlessTrack(t.lastSeen - t.firstSeen, netDisplacementPx(t.positions), t.className)) t.closedReason = "stationary-promotion";
55384
+ if (t.positions.length > 0 && (opts?.isKnownParked?.(t) === true || isShortMotionlessTrack(t.lastSeen - t.firstSeen, netDisplacementPx(t.positions), t.className))) t.closedReason = "stationary-promotion";
55318
55385
  const record = cloneTrack(t);
55319
55386
  try {
55320
55387
  await this.persistCompleted(record);
@@ -65328,6 +65395,11 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends BaseAddon {
65328
65395
  recordPendingPreviewUpgrade: (entry) => this.pendingPreviewUpgrades.record(entry),
65329
65396
  setPreviewMiss: async (_deviceId, trackId, reason) => {
65330
65397
  await this.trackStore?.setPreviewMiss(trackId, reason);
65398
+ },
65399
+ isKnownParked: (track) => {
65400
+ const last = track.positions.at(-1)?.bbox;
65401
+ if (!last) return false;
65402
+ return bboxMatchesParkedEntry(last, track.className, this.stationaryRegistry?.listViews(track.deviceId) ?? []);
65331
65403
  }
65332
65404
  });
65333
65405
  return this._trackCloser;
@@ -69620,7 +69692,13 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends BaseAddon {
69620
69692
  W: frameWidth,
69621
69693
  H: frameHeight
69622
69694
  });
69623
- const isNewBest = this.residents.observeBestFrame(deviceId, t.trackId, t.confidence, timestamp, edgeClear, centerScore, containment, sizeScore, squareFraction, false);
69695
+ const firstBox = this.trackStore?.peekActive(t.trackId)?.positions[0]?.bbox;
69696
+ const isNewBest = firstBox !== void 0 && thumbnailWouldShowParkedNotSubject({
69697
+ currentBbox: t.bbox,
69698
+ firstBbox: firstBox,
69699
+ className: t.className,
69700
+ entries: this.stationaryRegistry?.listViews(deviceId) ?? []
69701
+ }) ? false : this.residents.observeBestFrame(deviceId, t.trackId, t.confidence, timestamp, edgeClear, centerScore, containment, sizeScore, squareFraction, false);
69624
69702
  this.maybeEmitTrackLifecycleUpdate(deviceId, t, timestamp, isNewBest);
69625
69703
  const plan = planPeriodicMedia({
69626
69704
  debugMediaEnabled: media.debugMediaEnabled,
@@ -30,7 +30,7 @@ async function d(e) {
30
30
  }
31
31
  }
32
32
  async function f() {
33
- return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-rrVQlXbu.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-C6XQVZp9.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-post-analysis",
3
- "version": "1.2.156",
3
+ "version": "1.2.157",
4
4
  "description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
5
5
  "keywords": [
6
6
  "camstack",