@camstack/addon-decoder-nodeav 1.2.11 → 1.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +316 -31
  2. package/dist/index.mjs +316 -31
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -7551,12 +7551,11 @@ var RecordingConfigSchema = object({
7551
7551
  /**
7552
7552
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7553
7553
  *
7554
- * One shape shared by the recorder's `relocateFootage` (segments) and
7555
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7556
- * page renders both movers with one component. Jobs are in-RAM (a restart
7557
- * forgets them re-running is safe by construction: copy-if-absent, delete
7558
- * after verify) and each completed/failed run also lands one durable ops-log
7559
- * row on the owning addon's surface.
7554
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7555
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7556
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7557
+ * Each completed/failed run also lands one durable ops-log row on its owning
7558
+ * addon surface.
7560
7559
  */
7561
7560
  var RelocateJobStateSchema = _enum([
7562
7561
  "running",
@@ -7583,19 +7582,100 @@ var RelocateJobSchema = object({
7583
7582
  finishedAt: number().nullable(),
7584
7583
  error: string().nullable()
7585
7584
  });
7585
+ /** Profile-derived footage selection used only by the migration coordinator:
7586
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7587
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7586
7588
  var RelocateFootageInputSchema = object({
7587
- deviceId: number().optional(),
7588
7589
  fromLocationId: string(),
7589
7590
  toLocationId: string(),
7590
7591
  entities: array(_enum(["segments"])).optional(),
7592
+ /** Limits relocation to the logical profile class. Omit only for the
7593
+ * pre-orchestration compatibility path. */
7594
+ footageClass: RelocateFootageClassSchema.optional(),
7591
7595
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7592
7596
  * never allowed to starve live writers. */
7593
7597
  throttleMbps: number().min(1).max(1e3).optional()
7594
7598
  });
7595
- var RelocateMediaInputSchema = object({
7596
- deviceId: number().optional(),
7599
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7600
+ * from persistent recording settings: a migration never changes
7601
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7602
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7603
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7604
+ var StorageMigrationMediaMoveInputSchema = object({
7597
7605
  toLocationId: string(),
7598
7606
  throttleMbps: number().min(1).max(1e3).optional()
7607
+ }).extend({ leaseId: string().min(1) });
7608
+ /** The independently selectable logical storage classes. `recordings`
7609
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7610
+ * segments; `eventMedia` is post-analysis blobs. */
7611
+ var StorageMigrationClassSchema = _enum([
7612
+ "recordings",
7613
+ "recordingsLow",
7614
+ "eventMedia"
7615
+ ]);
7616
+ /** A destination is always an existing, fully-qualified location id. The
7617
+ * migration API intentionally never changes a source location's `basePath`:
7618
+ * callers create a new `<type>:<slug>` location, then select it here. */
7619
+ var StorageMigrationDestinationsSchema = object({
7620
+ recordings: string().min(1).optional(),
7621
+ recordingsLow: string().min(1).optional(),
7622
+ eventMedia: string().min(1).optional()
7623
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7624
+ /** Shared input for planning and starting an orchestrated storage migration. */
7625
+ var StorageMigrationInputSchema = object({
7626
+ destinations: StorageMigrationDestinationsSchema,
7627
+ throttleMbps: number().min(1).max(1e3).optional()
7628
+ });
7629
+ /** The durable coordinator state machine. The only phase that changes default
7630
+ * locations is `repointing`, after every selected mover has completed and been
7631
+ * verified. */
7632
+ var StorageMigrationPhaseSchema = _enum([
7633
+ "planning",
7634
+ "pausing",
7635
+ "moving",
7636
+ "verifying",
7637
+ "repointing",
7638
+ "refreshing",
7639
+ "resuming",
7640
+ "done",
7641
+ "failed",
7642
+ "cancelled"
7643
+ ]);
7644
+ var StorageMigrationParticipantSchema = _enum([
7645
+ "pipeline",
7646
+ "recorder",
7647
+ "analytics"
7648
+ ]);
7649
+ var StorageMigrationMoveSchema = object({
7650
+ storageClass: StorageMigrationClassSchema,
7651
+ fromLocationId: string(),
7652
+ toLocationId: string(),
7653
+ moverJobId: string().nullable(),
7654
+ state: RelocateJobStateSchema.nullable(),
7655
+ error: string().nullable()
7656
+ });
7657
+ var StorageMigrationJobSchema = object({
7658
+ jobId: string(),
7659
+ phase: StorageMigrationPhaseSchema,
7660
+ destinations: StorageMigrationDestinationsSchema,
7661
+ throttleMbps: number(),
7662
+ moves: array(StorageMigrationMoveSchema),
7663
+ pauseLeaseId: string().nullable(),
7664
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7665
+ repointed: boolean(),
7666
+ cancelRequested: boolean(),
7667
+ startedAt: number(),
7668
+ updatedAt: number(),
7669
+ finishedAt: number().nullable(),
7670
+ error: string().nullable()
7671
+ });
7672
+ var StorageMigrationPlanSchema = object({
7673
+ destinations: StorageMigrationDestinationsSchema,
7674
+ moves: array(object({
7675
+ storageClass: StorageMigrationClassSchema,
7676
+ fromLocationId: string(),
7677
+ toLocationId: string()
7678
+ }))
7599
7679
  });
7600
7680
  /**
7601
7681
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16101,13 +16181,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16101
16181
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16102
16182
  kind: "mutation",
16103
16183
  auth: "admin"
16104
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16184
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16105
16185
  kind: "mutation",
16106
16186
  auth: "admin"
16107
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16108
- kind: "query",
16187
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16188
+ kind: "mutation",
16189
+ auth: "admin"
16190
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16191
+ kind: "mutation",
16192
+ auth: "admin"
16193
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16194
+ kind: "mutation",
16109
16195
  auth: "admin"
16110
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16196
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16111
16197
  kind: "mutation",
16112
16198
  auth: "admin"
16113
16199
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17604,7 +17690,13 @@ var NodeInferenceDevicesSchema = object({
17604
17690
  reachable: boolean(),
17605
17691
  devices: array(NodeInferenceDeviceSchema).readonly()
17606
17692
  });
17607
- method(object({
17693
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17694
+ kind: "mutation",
17695
+ auth: "admin"
17696
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17697
+ kind: "mutation",
17698
+ auth: "admin"
17699
+ }), method(object({
17608
17700
  deviceId: number(),
17609
17701
  agentNodeId: string()
17610
17702
  }), object({ success: literal(true) }), {
@@ -18278,6 +18370,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18278
18370
  locationId: string(),
18279
18371
  targetBytes: number().int().positive()
18280
18372
  }), EvictResultSchema, { kind: "mutation" });
18373
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18374
+ kind: "mutation",
18375
+ auth: "admin"
18376
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18377
+ kind: "mutation",
18378
+ auth: "admin"
18379
+ });
18281
18380
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18282
18381
  providerId: string().min(1),
18283
18382
  displayName: string().min(1),
@@ -18381,6 +18480,28 @@ var TerminalProfileInfoSchema = object({
18381
18480
  label: string(),
18382
18481
  description: string().optional()
18383
18482
  });
18483
+ /**
18484
+ * A durable operator-created Terminal instance. Profiles are templates; only
18485
+ * an instance declares a camera.
18486
+ */
18487
+ var TerminalInstanceInfoSchema = object({
18488
+ instanceId: string(),
18489
+ cameraStableId: string(),
18490
+ nodeId: string(),
18491
+ profileId: string(),
18492
+ profileLabel: string(),
18493
+ name: string(),
18494
+ enabled: boolean()
18495
+ });
18496
+ var TerminalLegacyCameraSchema = object({
18497
+ stableId: string(),
18498
+ nodeId: string(),
18499
+ profileId: string(),
18500
+ profileLabel: string(),
18501
+ name: string(),
18502
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18503
+ adoptable: boolean()
18504
+ });
18384
18505
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18385
18506
  seq: number().int().positive(),
18386
18507
  kind: literal("data"),
@@ -18397,7 +18518,29 @@ var TerminalOutputBatchSchema = object({
18397
18518
  snapshot: string().optional(),
18398
18519
  events: array(TerminalOutputEventSchema).readonly()
18399
18520
  });
18400
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18521
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18522
+ targetNodeId: string().min(1),
18523
+ profileId: string().min(1),
18524
+ name: string().trim().min(1).max(160).optional()
18525
+ }), TerminalInstanceInfoSchema, {
18526
+ kind: "mutation",
18527
+ auth: "admin"
18528
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18529
+ kind: "mutation",
18530
+ auth: "admin"
18531
+ }), method(object({
18532
+ instanceId: string().min(1),
18533
+ enabled: boolean()
18534
+ }), TerminalInstanceInfoSchema, {
18535
+ kind: "mutation",
18536
+ auth: "admin"
18537
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18538
+ stableId: string().min(1),
18539
+ name: string().trim().min(1).max(160).optional()
18540
+ }), TerminalInstanceInfoSchema, {
18541
+ kind: "mutation",
18542
+ auth: "admin"
18543
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18401
18544
  profileId: string(),
18402
18545
  cols: number().int().positive(),
18403
18546
  rows: number().int().positive()
@@ -18414,7 +18557,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18414
18557
  }), method(object({
18415
18558
  sessionId: string(),
18416
18559
  afterSeq: number().int().nonnegative(),
18417
- waitMs: number().int().min(0).max(2e3).default(0)
18560
+ waitMs: number().int().min(0).max(2e3).default(0),
18561
+ /**
18562
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18563
+ * browser's initial repaint remains immediate; the camera snapshot
18564
+ * relay uses it to avoid encoding a blank startup frame.
18565
+ */
18566
+ waitForOutput: boolean().optional()
18418
18567
  }), TerminalOutputBatchSchema, {
18419
18568
  kind: "mutation",
18420
18569
  auth: "admin",
@@ -20355,6 +20504,7 @@ var FaceInfoSchema = object({
20355
20504
  var FaceFilterEnum = _enum([
20356
20505
  "unassigned",
20357
20506
  "recognized",
20507
+ "identified",
20358
20508
  "all"
20359
20509
  ]);
20360
20510
  var MediaFileLiteSchema$1 = object({
@@ -20383,6 +20533,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20383
20533
  kind: "mutation",
20384
20534
  auth: "admin"
20385
20535
  }), method(object({
20536
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20537
+ deviceId: number().int().optional(),
20386
20538
  limit: number().int().positive().optional(),
20387
20539
  filter: FaceFilterEnum.optional(),
20388
20540
  /**
@@ -22148,6 +22300,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22148
22300
  capName: string().min(1).max(64),
22149
22301
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22150
22302
  valuePath: string().min(1).max(64)
22303
+ }),
22304
+ object({
22305
+ kind: literal("latest-recognition"),
22306
+ recognition: _enum(["person", "plate"])
22151
22307
  })
22152
22308
  ]);
22153
22309
  var OsdSlotBindingSchema = object({
@@ -22253,6 +22409,15 @@ method(object({ deviceId: number().int() }), object({
22253
22409
  }), object({ success: literal(true) }), {
22254
22410
  kind: "mutation",
22255
22411
  auth: "admin"
22412
+ }), method(object({
22413
+ sourceDeviceId: number().int(),
22414
+ targetDeviceId: number().int()
22415
+ }), object({
22416
+ copied: number().int().nonnegative(),
22417
+ skipped: number().int().nonnegative()
22418
+ }), {
22419
+ kind: "mutation",
22420
+ auth: "admin"
22256
22421
  }), method(object({
22257
22422
  deviceId: number().int(),
22258
22423
  slotId: string().min(1),
@@ -23138,13 +23303,19 @@ method(object({
23138
23303
  }), {
23139
23304
  kind: "mutation",
23140
23305
  auth: "admin"
23141
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23306
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23142
23307
  kind: "mutation",
23143
23308
  auth: "admin"
23144
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23145
- kind: "query",
23309
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23310
+ kind: "mutation",
23146
23311
  auth: "admin"
23147
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23312
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23313
+ kind: "mutation",
23314
+ auth: "admin"
23315
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23316
+ kind: "mutation",
23317
+ auth: "admin"
23318
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23148
23319
  kind: "mutation",
23149
23320
  auth: "admin"
23150
23321
  });
@@ -27266,6 +27437,12 @@ Object.freeze({
27266
27437
  addonId: null,
27267
27438
  access: "delete"
27268
27439
  },
27440
+ "osdManager.copyDeviceConfiguration": {
27441
+ capName: "osd-manager",
27442
+ capScope: "system",
27443
+ addonId: null,
27444
+ access: "create"
27445
+ },
27269
27446
  "osdManager.getConditionSupport": {
27270
27447
  capName: "osd-manager",
27271
27448
  capScope: "system",
@@ -27362,7 +27539,7 @@ Object.freeze({
27362
27539
  addonId: null,
27363
27540
  access: "create"
27364
27541
  },
27365
- "pipelineAnalytics.cancelMediaRelocate": {
27542
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27366
27543
  capName: "pipeline-analytics",
27367
27544
  capScope: "device",
27368
27545
  addonId: null,
@@ -27434,12 +27611,6 @@ Object.freeze({
27434
27611
  addonId: null,
27435
27612
  access: "view"
27436
27613
  },
27437
- "pipelineAnalytics.getMediaRelocateStatus": {
27438
- capName: "pipeline-analytics",
27439
- capScope: "device",
27440
- addonId: null,
27441
- access: "view"
27442
- },
27443
27614
  "pipelineAnalytics.getMotionEvents": {
27444
27615
  capName: "pipeline-analytics",
27445
27616
  capScope: "device",
@@ -27476,6 +27647,12 @@ Object.freeze({
27476
27647
  addonId: null,
27477
27648
  access: "view"
27478
27649
  },
27650
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27651
+ capName: "pipeline-analytics",
27652
+ capScope: "device",
27653
+ addonId: null,
27654
+ access: "view"
27655
+ },
27479
27656
  "pipelineAnalytics.getTrack": {
27480
27657
  capName: "pipeline-analytics",
27481
27658
  capScope: "device",
@@ -27554,6 +27731,12 @@ Object.freeze({
27554
27731
  addonId: null,
27555
27732
  access: "view"
27556
27733
  },
27734
+ "pipelineAnalytics.pauseForStorageMigration": {
27735
+ capName: "pipeline-analytics",
27736
+ capScope: "device",
27737
+ addonId: null,
27738
+ access: "create"
27739
+ },
27557
27740
  "pipelineAnalytics.proposeRetrainAnnotations": {
27558
27741
  capName: "pipeline-analytics",
27559
27742
  capScope: "device",
@@ -27584,7 +27767,7 @@ Object.freeze({
27584
27767
  addonId: null,
27585
27768
  access: "create"
27586
27769
  },
27587
- "pipelineAnalytics.relocateMedia": {
27770
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27588
27771
  capName: "pipeline-analytics",
27589
27772
  capScope: "device",
27590
27773
  addonId: null,
@@ -27596,6 +27779,12 @@ Object.freeze({
27596
27779
  addonId: null,
27597
27780
  access: "create"
27598
27781
  },
27782
+ "pipelineAnalytics.resumeForStorageMigration": {
27783
+ capName: "pipeline-analytics",
27784
+ capScope: "device",
27785
+ addonId: null,
27786
+ access: "create"
27787
+ },
27599
27788
  "pipelineAnalytics.saveRetrainAnnotations": {
27600
27789
  capName: "pipeline-analytics",
27601
27790
  capScope: "device",
@@ -27620,6 +27809,12 @@ Object.freeze({
27620
27809
  addonId: null,
27621
27810
  access: "create"
27622
27811
  },
27812
+ "pipelineAnalytics.startStorageMigrationMove": {
27813
+ capName: "pipeline-analytics",
27814
+ capScope: "device",
27815
+ addonId: null,
27816
+ access: "create"
27817
+ },
27623
27818
  "pipelineAnalytics.wipeAllAnalytics": {
27624
27819
  capName: "pipeline-analytics",
27625
27820
  capScope: "device",
@@ -27986,6 +28181,12 @@ Object.freeze({
27986
28181
  addonId: null,
27987
28182
  access: "view"
27988
28183
  },
28184
+ "pipelineOrchestrator.pauseForStorageMigration": {
28185
+ capName: "pipeline-orchestrator",
28186
+ capScope: "system",
28187
+ addonId: null,
28188
+ access: "create"
28189
+ },
27989
28190
  "pipelineOrchestrator.rebalance": {
27990
28191
  capName: "pipeline-orchestrator",
27991
28192
  capScope: "system",
@@ -28010,6 +28211,12 @@ Object.freeze({
28010
28211
  addonId: null,
28011
28212
  access: "view"
28012
28213
  },
28214
+ "pipelineOrchestrator.resumeForStorageMigration": {
28215
+ capName: "pipeline-orchestrator",
28216
+ capScope: "system",
28217
+ addonId: null,
28218
+ access: "create"
28219
+ },
28013
28220
  "pipelineOrchestrator.saveTemplate": {
28014
28221
  capName: "pipeline-orchestrator",
28015
28222
  capScope: "system",
@@ -28406,7 +28613,7 @@ Object.freeze({
28406
28613
  addonId: null,
28407
28614
  access: "create"
28408
28615
  },
28409
- "recording.cancelRelocate": {
28616
+ "recording.cancelStorageMigrationMove": {
28410
28617
  capName: "recording",
28411
28618
  capScope: "system",
28412
28619
  addonId: null,
@@ -28442,7 +28649,7 @@ Object.freeze({
28442
28649
  addonId: null,
28443
28650
  access: "view"
28444
28651
  },
28445
- "recording.getRelocateStatus": {
28652
+ "recording.getStorageMigrationMoveStatus": {
28446
28653
  capName: "recording",
28447
28654
  capScope: "system",
28448
28655
  addonId: null,
@@ -28466,6 +28673,12 @@ Object.freeze({
28466
28673
  addonId: null,
28467
28674
  access: "view"
28468
28675
  },
28676
+ "recording.pauseForStorageMigration": {
28677
+ capName: "recording",
28678
+ capScope: "system",
28679
+ addonId: null,
28680
+ access: "create"
28681
+ },
28469
28682
  "recording.pruneFootage": {
28470
28683
  capName: "recording",
28471
28684
  capScope: "system",
@@ -28484,7 +28697,7 @@ Object.freeze({
28484
28697
  addonId: null,
28485
28698
  access: "view"
28486
28699
  },
28487
- "recording.relocateFootage": {
28700
+ "recording.refreshStorageLocationsForMigration": {
28488
28701
  capName: "recording",
28489
28702
  capScope: "system",
28490
28703
  addonId: null,
@@ -28508,12 +28721,24 @@ Object.freeze({
28508
28721
  addonId: null,
28509
28722
  access: "create"
28510
28723
  },
28724
+ "recording.resumeForStorageMigration": {
28725
+ capName: "recording",
28726
+ capScope: "system",
28727
+ addonId: null,
28728
+ access: "create"
28729
+ },
28511
28730
  "recording.setDeviceConfig": {
28512
28731
  capName: "recording",
28513
28732
  capScope: "system",
28514
28733
  addonId: null,
28515
28734
  access: "create"
28516
28735
  },
28736
+ "recording.startStorageMigrationMove": {
28737
+ capName: "recording",
28738
+ capScope: "system",
28739
+ addonId: null,
28740
+ access: "create"
28741
+ },
28517
28742
  "recordingExport.cancelExport": {
28518
28743
  capName: "recordingExport",
28519
28744
  capScope: "system",
@@ -28904,6 +29129,30 @@ Object.freeze({
28904
29129
  addonId: null,
28905
29130
  access: "view"
28906
29131
  },
29132
+ "storageMigration.cancel": {
29133
+ capName: "storage-migration",
29134
+ capScope: "system",
29135
+ addonId: null,
29136
+ access: "create"
29137
+ },
29138
+ "storageMigration.plan": {
29139
+ capName: "storage-migration",
29140
+ capScope: "system",
29141
+ addonId: null,
29142
+ access: "view"
29143
+ },
29144
+ "storageMigration.start": {
29145
+ capName: "storage-migration",
29146
+ capScope: "system",
29147
+ addonId: null,
29148
+ access: "create"
29149
+ },
29150
+ "storageMigration.status": {
29151
+ capName: "storage-migration",
29152
+ capScope: "system",
29153
+ addonId: null,
29154
+ access: "view"
29155
+ },
28907
29156
  "storageProvider.abortUpload": {
28908
29157
  capName: "storage-provider",
28909
29158
  capScope: "system",
@@ -29282,12 +29531,42 @@ Object.freeze({
29282
29531
  addonId: null,
29283
29532
  access: "create"
29284
29533
  },
29534
+ "terminalSession.adoptLegacyMonitor": {
29535
+ capName: "terminal-session",
29536
+ capScope: "system",
29537
+ addonId: null,
29538
+ access: "create"
29539
+ },
29285
29540
  "terminalSession.close": {
29286
29541
  capName: "terminal-session",
29287
29542
  capScope: "system",
29288
29543
  addonId: null,
29289
29544
  access: "create"
29290
29545
  },
29546
+ "terminalSession.createInstance": {
29547
+ capName: "terminal-session",
29548
+ capScope: "system",
29549
+ addonId: null,
29550
+ access: "create"
29551
+ },
29552
+ "terminalSession.deleteInstance": {
29553
+ capName: "terminal-session",
29554
+ capScope: "system",
29555
+ addonId: null,
29556
+ access: "delete"
29557
+ },
29558
+ "terminalSession.listInstances": {
29559
+ capName: "terminal-session",
29560
+ capScope: "system",
29561
+ addonId: null,
29562
+ access: "view"
29563
+ },
29564
+ "terminalSession.listLegacyCameras": {
29565
+ capName: "terminal-session",
29566
+ capScope: "system",
29567
+ addonId: null,
29568
+ access: "view"
29569
+ },
29291
29570
  "terminalSession.listProfiles": {
29292
29571
  capName: "terminal-session",
29293
29572
  capScope: "system",
@@ -29318,6 +29597,12 @@ Object.freeze({
29318
29597
  addonId: null,
29319
29598
  access: "create"
29320
29599
  },
29600
+ "terminalSession.setInstanceEnabled": {
29601
+ capName: "terminal-session",
29602
+ capScope: "system",
29603
+ addonId: null,
29604
+ access: "create"
29605
+ },
29321
29606
  "terminalSession.writeInput": {
29322
29607
  capName: "terminal-session",
29323
29608
  capScope: "system",
package/dist/index.mjs CHANGED
@@ -7547,12 +7547,11 @@ var RecordingConfigSchema = object({
7547
7547
  /**
7548
7548
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7549
7549
  *
7550
- * One shape shared by the recorder's `relocateFootage` (segments) and
7551
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7552
- * page renders both movers with one component. Jobs are in-RAM (a restart
7553
- * forgets them re-running is safe by construction: copy-if-absent, delete
7554
- * after verify) and each completed/failed run also lands one durable ops-log
7555
- * row on the owning addon's surface.
7550
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7551
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7552
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7553
+ * Each completed/failed run also lands one durable ops-log row on its owning
7554
+ * addon surface.
7556
7555
  */
7557
7556
  var RelocateJobStateSchema = _enum([
7558
7557
  "running",
@@ -7579,19 +7578,100 @@ var RelocateJobSchema = object({
7579
7578
  finishedAt: number().nullable(),
7580
7579
  error: string().nullable()
7581
7580
  });
7581
+ /** Profile-derived footage selection used only by the migration coordinator:
7582
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7583
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7582
7584
  var RelocateFootageInputSchema = object({
7583
- deviceId: number().optional(),
7584
7585
  fromLocationId: string(),
7585
7586
  toLocationId: string(),
7586
7587
  entities: array(_enum(["segments"])).optional(),
7588
+ /** Limits relocation to the logical profile class. Omit only for the
7589
+ * pre-orchestration compatibility path. */
7590
+ footageClass: RelocateFootageClassSchema.optional(),
7587
7591
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7588
7592
  * never allowed to starve live writers. */
7589
7593
  throttleMbps: number().min(1).max(1e3).optional()
7590
7594
  });
7591
- var RelocateMediaInputSchema = object({
7592
- deviceId: number().optional(),
7595
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7596
+ * from persistent recording settings: a migration never changes
7597
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7598
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7599
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7600
+ var StorageMigrationMediaMoveInputSchema = object({
7593
7601
  toLocationId: string(),
7594
7602
  throttleMbps: number().min(1).max(1e3).optional()
7603
+ }).extend({ leaseId: string().min(1) });
7604
+ /** The independently selectable logical storage classes. `recordings`
7605
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7606
+ * segments; `eventMedia` is post-analysis blobs. */
7607
+ var StorageMigrationClassSchema = _enum([
7608
+ "recordings",
7609
+ "recordingsLow",
7610
+ "eventMedia"
7611
+ ]);
7612
+ /** A destination is always an existing, fully-qualified location id. The
7613
+ * migration API intentionally never changes a source location's `basePath`:
7614
+ * callers create a new `<type>:<slug>` location, then select it here. */
7615
+ var StorageMigrationDestinationsSchema = object({
7616
+ recordings: string().min(1).optional(),
7617
+ recordingsLow: string().min(1).optional(),
7618
+ eventMedia: string().min(1).optional()
7619
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7620
+ /** Shared input for planning and starting an orchestrated storage migration. */
7621
+ var StorageMigrationInputSchema = object({
7622
+ destinations: StorageMigrationDestinationsSchema,
7623
+ throttleMbps: number().min(1).max(1e3).optional()
7624
+ });
7625
+ /** The durable coordinator state machine. The only phase that changes default
7626
+ * locations is `repointing`, after every selected mover has completed and been
7627
+ * verified. */
7628
+ var StorageMigrationPhaseSchema = _enum([
7629
+ "planning",
7630
+ "pausing",
7631
+ "moving",
7632
+ "verifying",
7633
+ "repointing",
7634
+ "refreshing",
7635
+ "resuming",
7636
+ "done",
7637
+ "failed",
7638
+ "cancelled"
7639
+ ]);
7640
+ var StorageMigrationParticipantSchema = _enum([
7641
+ "pipeline",
7642
+ "recorder",
7643
+ "analytics"
7644
+ ]);
7645
+ var StorageMigrationMoveSchema = object({
7646
+ storageClass: StorageMigrationClassSchema,
7647
+ fromLocationId: string(),
7648
+ toLocationId: string(),
7649
+ moverJobId: string().nullable(),
7650
+ state: RelocateJobStateSchema.nullable(),
7651
+ error: string().nullable()
7652
+ });
7653
+ var StorageMigrationJobSchema = object({
7654
+ jobId: string(),
7655
+ phase: StorageMigrationPhaseSchema,
7656
+ destinations: StorageMigrationDestinationsSchema,
7657
+ throttleMbps: number(),
7658
+ moves: array(StorageMigrationMoveSchema),
7659
+ pauseLeaseId: string().nullable(),
7660
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7661
+ repointed: boolean(),
7662
+ cancelRequested: boolean(),
7663
+ startedAt: number(),
7664
+ updatedAt: number(),
7665
+ finishedAt: number().nullable(),
7666
+ error: string().nullable()
7667
+ });
7668
+ var StorageMigrationPlanSchema = object({
7669
+ destinations: StorageMigrationDestinationsSchema,
7670
+ moves: array(object({
7671
+ storageClass: StorageMigrationClassSchema,
7672
+ fromLocationId: string(),
7673
+ toLocationId: string()
7674
+ }))
7595
7675
  });
7596
7676
  /**
7597
7677
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16097,13 +16177,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16097
16177
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16098
16178
  kind: "mutation",
16099
16179
  auth: "admin"
16100
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16180
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16101
16181
  kind: "mutation",
16102
16182
  auth: "admin"
16103
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16104
- kind: "query",
16183
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16184
+ kind: "mutation",
16185
+ auth: "admin"
16186
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16187
+ kind: "mutation",
16188
+ auth: "admin"
16189
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16190
+ kind: "mutation",
16105
16191
  auth: "admin"
16106
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16192
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16107
16193
  kind: "mutation",
16108
16194
  auth: "admin"
16109
16195
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17600,7 +17686,13 @@ var NodeInferenceDevicesSchema = object({
17600
17686
  reachable: boolean(),
17601
17687
  devices: array(NodeInferenceDeviceSchema).readonly()
17602
17688
  });
17603
- method(object({
17689
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17690
+ kind: "mutation",
17691
+ auth: "admin"
17692
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17693
+ kind: "mutation",
17694
+ auth: "admin"
17695
+ }), method(object({
17604
17696
  deviceId: number(),
17605
17697
  agentNodeId: string()
17606
17698
  }), object({ success: literal(true) }), {
@@ -18274,6 +18366,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18274
18366
  locationId: string(),
18275
18367
  targetBytes: number().int().positive()
18276
18368
  }), EvictResultSchema, { kind: "mutation" });
18369
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18370
+ kind: "mutation",
18371
+ auth: "admin"
18372
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18373
+ kind: "mutation",
18374
+ auth: "admin"
18375
+ });
18277
18376
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18278
18377
  providerId: string().min(1),
18279
18378
  displayName: string().min(1),
@@ -18377,6 +18476,28 @@ var TerminalProfileInfoSchema = object({
18377
18476
  label: string(),
18378
18477
  description: string().optional()
18379
18478
  });
18479
+ /**
18480
+ * A durable operator-created Terminal instance. Profiles are templates; only
18481
+ * an instance declares a camera.
18482
+ */
18483
+ var TerminalInstanceInfoSchema = object({
18484
+ instanceId: string(),
18485
+ cameraStableId: string(),
18486
+ nodeId: string(),
18487
+ profileId: string(),
18488
+ profileLabel: string(),
18489
+ name: string(),
18490
+ enabled: boolean()
18491
+ });
18492
+ var TerminalLegacyCameraSchema = object({
18493
+ stableId: string(),
18494
+ nodeId: string(),
18495
+ profileId: string(),
18496
+ profileLabel: string(),
18497
+ name: string(),
18498
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18499
+ adoptable: boolean()
18500
+ });
18380
18501
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18381
18502
  seq: number().int().positive(),
18382
18503
  kind: literal("data"),
@@ -18393,7 +18514,29 @@ var TerminalOutputBatchSchema = object({
18393
18514
  snapshot: string().optional(),
18394
18515
  events: array(TerminalOutputEventSchema).readonly()
18395
18516
  });
18396
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18517
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18518
+ targetNodeId: string().min(1),
18519
+ profileId: string().min(1),
18520
+ name: string().trim().min(1).max(160).optional()
18521
+ }), TerminalInstanceInfoSchema, {
18522
+ kind: "mutation",
18523
+ auth: "admin"
18524
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18525
+ kind: "mutation",
18526
+ auth: "admin"
18527
+ }), method(object({
18528
+ instanceId: string().min(1),
18529
+ enabled: boolean()
18530
+ }), TerminalInstanceInfoSchema, {
18531
+ kind: "mutation",
18532
+ auth: "admin"
18533
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18534
+ stableId: string().min(1),
18535
+ name: string().trim().min(1).max(160).optional()
18536
+ }), TerminalInstanceInfoSchema, {
18537
+ kind: "mutation",
18538
+ auth: "admin"
18539
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18397
18540
  profileId: string(),
18398
18541
  cols: number().int().positive(),
18399
18542
  rows: number().int().positive()
@@ -18410,7 +18553,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18410
18553
  }), method(object({
18411
18554
  sessionId: string(),
18412
18555
  afterSeq: number().int().nonnegative(),
18413
- waitMs: number().int().min(0).max(2e3).default(0)
18556
+ waitMs: number().int().min(0).max(2e3).default(0),
18557
+ /**
18558
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18559
+ * browser's initial repaint remains immediate; the camera snapshot
18560
+ * relay uses it to avoid encoding a blank startup frame.
18561
+ */
18562
+ waitForOutput: boolean().optional()
18414
18563
  }), TerminalOutputBatchSchema, {
18415
18564
  kind: "mutation",
18416
18565
  auth: "admin",
@@ -20351,6 +20500,7 @@ var FaceInfoSchema = object({
20351
20500
  var FaceFilterEnum = _enum([
20352
20501
  "unassigned",
20353
20502
  "recognized",
20503
+ "identified",
20354
20504
  "all"
20355
20505
  ]);
20356
20506
  var MediaFileLiteSchema$1 = object({
@@ -20379,6 +20529,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20379
20529
  kind: "mutation",
20380
20530
  auth: "admin"
20381
20531
  }), method(object({
20532
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20533
+ deviceId: number().int().optional(),
20382
20534
  limit: number().int().positive().optional(),
20383
20535
  filter: FaceFilterEnum.optional(),
20384
20536
  /**
@@ -22144,6 +22296,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22144
22296
  capName: string().min(1).max(64),
22145
22297
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22146
22298
  valuePath: string().min(1).max(64)
22299
+ }),
22300
+ object({
22301
+ kind: literal("latest-recognition"),
22302
+ recognition: _enum(["person", "plate"])
22147
22303
  })
22148
22304
  ]);
22149
22305
  var OsdSlotBindingSchema = object({
@@ -22249,6 +22405,15 @@ method(object({ deviceId: number().int() }), object({
22249
22405
  }), object({ success: literal(true) }), {
22250
22406
  kind: "mutation",
22251
22407
  auth: "admin"
22408
+ }), method(object({
22409
+ sourceDeviceId: number().int(),
22410
+ targetDeviceId: number().int()
22411
+ }), object({
22412
+ copied: number().int().nonnegative(),
22413
+ skipped: number().int().nonnegative()
22414
+ }), {
22415
+ kind: "mutation",
22416
+ auth: "admin"
22252
22417
  }), method(object({
22253
22418
  deviceId: number().int(),
22254
22419
  slotId: string().min(1),
@@ -23134,13 +23299,19 @@ method(object({
23134
23299
  }), {
23135
23300
  kind: "mutation",
23136
23301
  auth: "admin"
23137
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23302
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23138
23303
  kind: "mutation",
23139
23304
  auth: "admin"
23140
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23141
- kind: "query",
23305
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23306
+ kind: "mutation",
23142
23307
  auth: "admin"
23143
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23308
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23309
+ kind: "mutation",
23310
+ auth: "admin"
23311
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23312
+ kind: "mutation",
23313
+ auth: "admin"
23314
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23144
23315
  kind: "mutation",
23145
23316
  auth: "admin"
23146
23317
  });
@@ -27262,6 +27433,12 @@ Object.freeze({
27262
27433
  addonId: null,
27263
27434
  access: "delete"
27264
27435
  },
27436
+ "osdManager.copyDeviceConfiguration": {
27437
+ capName: "osd-manager",
27438
+ capScope: "system",
27439
+ addonId: null,
27440
+ access: "create"
27441
+ },
27265
27442
  "osdManager.getConditionSupport": {
27266
27443
  capName: "osd-manager",
27267
27444
  capScope: "system",
@@ -27358,7 +27535,7 @@ Object.freeze({
27358
27535
  addonId: null,
27359
27536
  access: "create"
27360
27537
  },
27361
- "pipelineAnalytics.cancelMediaRelocate": {
27538
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27362
27539
  capName: "pipeline-analytics",
27363
27540
  capScope: "device",
27364
27541
  addonId: null,
@@ -27430,12 +27607,6 @@ Object.freeze({
27430
27607
  addonId: null,
27431
27608
  access: "view"
27432
27609
  },
27433
- "pipelineAnalytics.getMediaRelocateStatus": {
27434
- capName: "pipeline-analytics",
27435
- capScope: "device",
27436
- addonId: null,
27437
- access: "view"
27438
- },
27439
27610
  "pipelineAnalytics.getMotionEvents": {
27440
27611
  capName: "pipeline-analytics",
27441
27612
  capScope: "device",
@@ -27472,6 +27643,12 @@ Object.freeze({
27472
27643
  addonId: null,
27473
27644
  access: "view"
27474
27645
  },
27646
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27647
+ capName: "pipeline-analytics",
27648
+ capScope: "device",
27649
+ addonId: null,
27650
+ access: "view"
27651
+ },
27475
27652
  "pipelineAnalytics.getTrack": {
27476
27653
  capName: "pipeline-analytics",
27477
27654
  capScope: "device",
@@ -27550,6 +27727,12 @@ Object.freeze({
27550
27727
  addonId: null,
27551
27728
  access: "view"
27552
27729
  },
27730
+ "pipelineAnalytics.pauseForStorageMigration": {
27731
+ capName: "pipeline-analytics",
27732
+ capScope: "device",
27733
+ addonId: null,
27734
+ access: "create"
27735
+ },
27553
27736
  "pipelineAnalytics.proposeRetrainAnnotations": {
27554
27737
  capName: "pipeline-analytics",
27555
27738
  capScope: "device",
@@ -27580,7 +27763,7 @@ Object.freeze({
27580
27763
  addonId: null,
27581
27764
  access: "create"
27582
27765
  },
27583
- "pipelineAnalytics.relocateMedia": {
27766
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27584
27767
  capName: "pipeline-analytics",
27585
27768
  capScope: "device",
27586
27769
  addonId: null,
@@ -27592,6 +27775,12 @@ Object.freeze({
27592
27775
  addonId: null,
27593
27776
  access: "create"
27594
27777
  },
27778
+ "pipelineAnalytics.resumeForStorageMigration": {
27779
+ capName: "pipeline-analytics",
27780
+ capScope: "device",
27781
+ addonId: null,
27782
+ access: "create"
27783
+ },
27595
27784
  "pipelineAnalytics.saveRetrainAnnotations": {
27596
27785
  capName: "pipeline-analytics",
27597
27786
  capScope: "device",
@@ -27616,6 +27805,12 @@ Object.freeze({
27616
27805
  addonId: null,
27617
27806
  access: "create"
27618
27807
  },
27808
+ "pipelineAnalytics.startStorageMigrationMove": {
27809
+ capName: "pipeline-analytics",
27810
+ capScope: "device",
27811
+ addonId: null,
27812
+ access: "create"
27813
+ },
27619
27814
  "pipelineAnalytics.wipeAllAnalytics": {
27620
27815
  capName: "pipeline-analytics",
27621
27816
  capScope: "device",
@@ -27982,6 +28177,12 @@ Object.freeze({
27982
28177
  addonId: null,
27983
28178
  access: "view"
27984
28179
  },
28180
+ "pipelineOrchestrator.pauseForStorageMigration": {
28181
+ capName: "pipeline-orchestrator",
28182
+ capScope: "system",
28183
+ addonId: null,
28184
+ access: "create"
28185
+ },
27985
28186
  "pipelineOrchestrator.rebalance": {
27986
28187
  capName: "pipeline-orchestrator",
27987
28188
  capScope: "system",
@@ -28006,6 +28207,12 @@ Object.freeze({
28006
28207
  addonId: null,
28007
28208
  access: "view"
28008
28209
  },
28210
+ "pipelineOrchestrator.resumeForStorageMigration": {
28211
+ capName: "pipeline-orchestrator",
28212
+ capScope: "system",
28213
+ addonId: null,
28214
+ access: "create"
28215
+ },
28009
28216
  "pipelineOrchestrator.saveTemplate": {
28010
28217
  capName: "pipeline-orchestrator",
28011
28218
  capScope: "system",
@@ -28402,7 +28609,7 @@ Object.freeze({
28402
28609
  addonId: null,
28403
28610
  access: "create"
28404
28611
  },
28405
- "recording.cancelRelocate": {
28612
+ "recording.cancelStorageMigrationMove": {
28406
28613
  capName: "recording",
28407
28614
  capScope: "system",
28408
28615
  addonId: null,
@@ -28438,7 +28645,7 @@ Object.freeze({
28438
28645
  addonId: null,
28439
28646
  access: "view"
28440
28647
  },
28441
- "recording.getRelocateStatus": {
28648
+ "recording.getStorageMigrationMoveStatus": {
28442
28649
  capName: "recording",
28443
28650
  capScope: "system",
28444
28651
  addonId: null,
@@ -28462,6 +28669,12 @@ Object.freeze({
28462
28669
  addonId: null,
28463
28670
  access: "view"
28464
28671
  },
28672
+ "recording.pauseForStorageMigration": {
28673
+ capName: "recording",
28674
+ capScope: "system",
28675
+ addonId: null,
28676
+ access: "create"
28677
+ },
28465
28678
  "recording.pruneFootage": {
28466
28679
  capName: "recording",
28467
28680
  capScope: "system",
@@ -28480,7 +28693,7 @@ Object.freeze({
28480
28693
  addonId: null,
28481
28694
  access: "view"
28482
28695
  },
28483
- "recording.relocateFootage": {
28696
+ "recording.refreshStorageLocationsForMigration": {
28484
28697
  capName: "recording",
28485
28698
  capScope: "system",
28486
28699
  addonId: null,
@@ -28504,12 +28717,24 @@ Object.freeze({
28504
28717
  addonId: null,
28505
28718
  access: "create"
28506
28719
  },
28720
+ "recording.resumeForStorageMigration": {
28721
+ capName: "recording",
28722
+ capScope: "system",
28723
+ addonId: null,
28724
+ access: "create"
28725
+ },
28507
28726
  "recording.setDeviceConfig": {
28508
28727
  capName: "recording",
28509
28728
  capScope: "system",
28510
28729
  addonId: null,
28511
28730
  access: "create"
28512
28731
  },
28732
+ "recording.startStorageMigrationMove": {
28733
+ capName: "recording",
28734
+ capScope: "system",
28735
+ addonId: null,
28736
+ access: "create"
28737
+ },
28513
28738
  "recordingExport.cancelExport": {
28514
28739
  capName: "recordingExport",
28515
28740
  capScope: "system",
@@ -28900,6 +29125,30 @@ Object.freeze({
28900
29125
  addonId: null,
28901
29126
  access: "view"
28902
29127
  },
29128
+ "storageMigration.cancel": {
29129
+ capName: "storage-migration",
29130
+ capScope: "system",
29131
+ addonId: null,
29132
+ access: "create"
29133
+ },
29134
+ "storageMigration.plan": {
29135
+ capName: "storage-migration",
29136
+ capScope: "system",
29137
+ addonId: null,
29138
+ access: "view"
29139
+ },
29140
+ "storageMigration.start": {
29141
+ capName: "storage-migration",
29142
+ capScope: "system",
29143
+ addonId: null,
29144
+ access: "create"
29145
+ },
29146
+ "storageMigration.status": {
29147
+ capName: "storage-migration",
29148
+ capScope: "system",
29149
+ addonId: null,
29150
+ access: "view"
29151
+ },
28903
29152
  "storageProvider.abortUpload": {
28904
29153
  capName: "storage-provider",
28905
29154
  capScope: "system",
@@ -29278,12 +29527,42 @@ Object.freeze({
29278
29527
  addonId: null,
29279
29528
  access: "create"
29280
29529
  },
29530
+ "terminalSession.adoptLegacyMonitor": {
29531
+ capName: "terminal-session",
29532
+ capScope: "system",
29533
+ addonId: null,
29534
+ access: "create"
29535
+ },
29281
29536
  "terminalSession.close": {
29282
29537
  capName: "terminal-session",
29283
29538
  capScope: "system",
29284
29539
  addonId: null,
29285
29540
  access: "create"
29286
29541
  },
29542
+ "terminalSession.createInstance": {
29543
+ capName: "terminal-session",
29544
+ capScope: "system",
29545
+ addonId: null,
29546
+ access: "create"
29547
+ },
29548
+ "terminalSession.deleteInstance": {
29549
+ capName: "terminal-session",
29550
+ capScope: "system",
29551
+ addonId: null,
29552
+ access: "delete"
29553
+ },
29554
+ "terminalSession.listInstances": {
29555
+ capName: "terminal-session",
29556
+ capScope: "system",
29557
+ addonId: null,
29558
+ access: "view"
29559
+ },
29560
+ "terminalSession.listLegacyCameras": {
29561
+ capName: "terminal-session",
29562
+ capScope: "system",
29563
+ addonId: null,
29564
+ access: "view"
29565
+ },
29287
29566
  "terminalSession.listProfiles": {
29288
29567
  capName: "terminal-session",
29289
29568
  capScope: "system",
@@ -29314,6 +29593,12 @@ Object.freeze({
29314
29593
  addonId: null,
29315
29594
  access: "create"
29316
29595
  },
29596
+ "terminalSession.setInstanceEnabled": {
29597
+ capName: "terminal-session",
29598
+ capScope: "system",
29599
+ addonId: null,
29600
+ access: "create"
29601
+ },
29317
29602
  "terminalSession.writeInput": {
29318
29603
  capName: "terminal-session",
29319
29604
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-nodeav",
3
- "version": "1.2.11",
3
+ "version": "1.2.12",
4
4
  "description": "Standalone in-process node-av decoder addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",