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