@camstack/addon-decoder-nodeav 1.2.10 → 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 +357 -30
  2. package/dist/index.mjs +357 -30
  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",
16109
16189
  auth: "admin"
16110
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16190
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16191
+ kind: "mutation",
16192
+ auth: "admin"
16193
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16194
+ kind: "mutation",
16195
+ auth: "admin"
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,7 +18480,67 @@ var TerminalProfileInfoSchema = object({
18381
18480
  label: string(),
18382
18481
  description: string().optional()
18383
18482
  });
18384
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
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
+ });
18505
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18506
+ seq: number().int().positive(),
18507
+ kind: literal("data"),
18508
+ data: string()
18509
+ }), object({
18510
+ seq: number().int().positive(),
18511
+ kind: literal("exit"),
18512
+ exitCode: number().int(),
18513
+ signal: number().int().optional()
18514
+ })]);
18515
+ var TerminalOutputBatchSchema = object({
18516
+ cursor: number().int().nonnegative(),
18517
+ reset: boolean(),
18518
+ snapshot: string().optional(),
18519
+ events: array(TerminalOutputEventSchema).readonly()
18520
+ });
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({
18385
18544
  profileId: string(),
18386
18545
  cols: number().int().positive(),
18387
18546
  rows: number().int().positive()
@@ -18395,6 +18554,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18395
18554
  }), _void(), {
18396
18555
  kind: "mutation",
18397
18556
  auth: "admin"
18557
+ }), method(object({
18558
+ sessionId: string(),
18559
+ afterSeq: number().int().nonnegative(),
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()
18567
+ }), TerminalOutputBatchSchema, {
18568
+ kind: "mutation",
18569
+ auth: "admin",
18570
+ timeoutMs: 15e3
18571
+ }), method(object({
18572
+ sessionId: string(),
18573
+ data: string().max(64 * 1024)
18574
+ }), _void(), {
18575
+ kind: "mutation",
18576
+ auth: "admin"
18398
18577
  }), method(object({ sessionId: string() }), _void(), {
18399
18578
  kind: "mutation",
18400
18579
  auth: "admin"
@@ -20325,6 +20504,7 @@ var FaceInfoSchema = object({
20325
20504
  var FaceFilterEnum = _enum([
20326
20505
  "unassigned",
20327
20506
  "recognized",
20507
+ "identified",
20328
20508
  "all"
20329
20509
  ]);
20330
20510
  var MediaFileLiteSchema$1 = object({
@@ -20353,6 +20533,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20353
20533
  kind: "mutation",
20354
20534
  auth: "admin"
20355
20535
  }), method(object({
20536
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20537
+ deviceId: number().int().optional(),
20356
20538
  limit: number().int().positive().optional(),
20357
20539
  filter: FaceFilterEnum.optional(),
20358
20540
  /**
@@ -22118,6 +22300,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22118
22300
  capName: string().min(1).max(64),
22119
22301
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22120
22302
  valuePath: string().min(1).max(64)
22303
+ }),
22304
+ object({
22305
+ kind: literal("latest-recognition"),
22306
+ recognition: _enum(["person", "plate"])
22121
22307
  })
22122
22308
  ]);
22123
22309
  var OsdSlotBindingSchema = object({
@@ -22223,6 +22409,15 @@ method(object({ deviceId: number().int() }), object({
22223
22409
  }), object({ success: literal(true) }), {
22224
22410
  kind: "mutation",
22225
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"
22226
22421
  }), method(object({
22227
22422
  deviceId: number().int(),
22228
22423
  slotId: string().min(1),
@@ -23108,13 +23303,19 @@ method(object({
23108
23303
  }), {
23109
23304
  kind: "mutation",
23110
23305
  auth: "admin"
23111
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23306
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23112
23307
  kind: "mutation",
23113
23308
  auth: "admin"
23114
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23115
- kind: "query",
23309
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23310
+ kind: "mutation",
23116
23311
  auth: "admin"
23117
- }), 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() }), {
23118
23319
  kind: "mutation",
23119
23320
  auth: "admin"
23120
23321
  });
@@ -27236,6 +27437,12 @@ Object.freeze({
27236
27437
  addonId: null,
27237
27438
  access: "delete"
27238
27439
  },
27440
+ "osdManager.copyDeviceConfiguration": {
27441
+ capName: "osd-manager",
27442
+ capScope: "system",
27443
+ addonId: null,
27444
+ access: "create"
27445
+ },
27239
27446
  "osdManager.getConditionSupport": {
27240
27447
  capName: "osd-manager",
27241
27448
  capScope: "system",
@@ -27332,7 +27539,7 @@ Object.freeze({
27332
27539
  addonId: null,
27333
27540
  access: "create"
27334
27541
  },
27335
- "pipelineAnalytics.cancelMediaRelocate": {
27542
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27336
27543
  capName: "pipeline-analytics",
27337
27544
  capScope: "device",
27338
27545
  addonId: null,
@@ -27404,12 +27611,6 @@ Object.freeze({
27404
27611
  addonId: null,
27405
27612
  access: "view"
27406
27613
  },
27407
- "pipelineAnalytics.getMediaRelocateStatus": {
27408
- capName: "pipeline-analytics",
27409
- capScope: "device",
27410
- addonId: null,
27411
- access: "view"
27412
- },
27413
27614
  "pipelineAnalytics.getMotionEvents": {
27414
27615
  capName: "pipeline-analytics",
27415
27616
  capScope: "device",
@@ -27446,6 +27647,12 @@ Object.freeze({
27446
27647
  addonId: null,
27447
27648
  access: "view"
27448
27649
  },
27650
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27651
+ capName: "pipeline-analytics",
27652
+ capScope: "device",
27653
+ addonId: null,
27654
+ access: "view"
27655
+ },
27449
27656
  "pipelineAnalytics.getTrack": {
27450
27657
  capName: "pipeline-analytics",
27451
27658
  capScope: "device",
@@ -27524,6 +27731,12 @@ Object.freeze({
27524
27731
  addonId: null,
27525
27732
  access: "view"
27526
27733
  },
27734
+ "pipelineAnalytics.pauseForStorageMigration": {
27735
+ capName: "pipeline-analytics",
27736
+ capScope: "device",
27737
+ addonId: null,
27738
+ access: "create"
27739
+ },
27527
27740
  "pipelineAnalytics.proposeRetrainAnnotations": {
27528
27741
  capName: "pipeline-analytics",
27529
27742
  capScope: "device",
@@ -27554,7 +27767,7 @@ Object.freeze({
27554
27767
  addonId: null,
27555
27768
  access: "create"
27556
27769
  },
27557
- "pipelineAnalytics.relocateMedia": {
27770
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27558
27771
  capName: "pipeline-analytics",
27559
27772
  capScope: "device",
27560
27773
  addonId: null,
@@ -27566,6 +27779,12 @@ Object.freeze({
27566
27779
  addonId: null,
27567
27780
  access: "create"
27568
27781
  },
27782
+ "pipelineAnalytics.resumeForStorageMigration": {
27783
+ capName: "pipeline-analytics",
27784
+ capScope: "device",
27785
+ addonId: null,
27786
+ access: "create"
27787
+ },
27569
27788
  "pipelineAnalytics.saveRetrainAnnotations": {
27570
27789
  capName: "pipeline-analytics",
27571
27790
  capScope: "device",
@@ -27590,6 +27809,12 @@ Object.freeze({
27590
27809
  addonId: null,
27591
27810
  access: "create"
27592
27811
  },
27812
+ "pipelineAnalytics.startStorageMigrationMove": {
27813
+ capName: "pipeline-analytics",
27814
+ capScope: "device",
27815
+ addonId: null,
27816
+ access: "create"
27817
+ },
27593
27818
  "pipelineAnalytics.wipeAllAnalytics": {
27594
27819
  capName: "pipeline-analytics",
27595
27820
  capScope: "device",
@@ -27956,6 +28181,12 @@ Object.freeze({
27956
28181
  addonId: null,
27957
28182
  access: "view"
27958
28183
  },
28184
+ "pipelineOrchestrator.pauseForStorageMigration": {
28185
+ capName: "pipeline-orchestrator",
28186
+ capScope: "system",
28187
+ addonId: null,
28188
+ access: "create"
28189
+ },
27959
28190
  "pipelineOrchestrator.rebalance": {
27960
28191
  capName: "pipeline-orchestrator",
27961
28192
  capScope: "system",
@@ -27980,6 +28211,12 @@ Object.freeze({
27980
28211
  addonId: null,
27981
28212
  access: "view"
27982
28213
  },
28214
+ "pipelineOrchestrator.resumeForStorageMigration": {
28215
+ capName: "pipeline-orchestrator",
28216
+ capScope: "system",
28217
+ addonId: null,
28218
+ access: "create"
28219
+ },
27983
28220
  "pipelineOrchestrator.saveTemplate": {
27984
28221
  capName: "pipeline-orchestrator",
27985
28222
  capScope: "system",
@@ -28376,7 +28613,7 @@ Object.freeze({
28376
28613
  addonId: null,
28377
28614
  access: "create"
28378
28615
  },
28379
- "recording.cancelRelocate": {
28616
+ "recording.cancelStorageMigrationMove": {
28380
28617
  capName: "recording",
28381
28618
  capScope: "system",
28382
28619
  addonId: null,
@@ -28412,7 +28649,7 @@ Object.freeze({
28412
28649
  addonId: null,
28413
28650
  access: "view"
28414
28651
  },
28415
- "recording.getRelocateStatus": {
28652
+ "recording.getStorageMigrationMoveStatus": {
28416
28653
  capName: "recording",
28417
28654
  capScope: "system",
28418
28655
  addonId: null,
@@ -28436,6 +28673,12 @@ Object.freeze({
28436
28673
  addonId: null,
28437
28674
  access: "view"
28438
28675
  },
28676
+ "recording.pauseForStorageMigration": {
28677
+ capName: "recording",
28678
+ capScope: "system",
28679
+ addonId: null,
28680
+ access: "create"
28681
+ },
28439
28682
  "recording.pruneFootage": {
28440
28683
  capName: "recording",
28441
28684
  capScope: "system",
@@ -28454,7 +28697,7 @@ Object.freeze({
28454
28697
  addonId: null,
28455
28698
  access: "view"
28456
28699
  },
28457
- "recording.relocateFootage": {
28700
+ "recording.refreshStorageLocationsForMigration": {
28458
28701
  capName: "recording",
28459
28702
  capScope: "system",
28460
28703
  addonId: null,
@@ -28478,12 +28721,24 @@ Object.freeze({
28478
28721
  addonId: null,
28479
28722
  access: "create"
28480
28723
  },
28724
+ "recording.resumeForStorageMigration": {
28725
+ capName: "recording",
28726
+ capScope: "system",
28727
+ addonId: null,
28728
+ access: "create"
28729
+ },
28481
28730
  "recording.setDeviceConfig": {
28482
28731
  capName: "recording",
28483
28732
  capScope: "system",
28484
28733
  addonId: null,
28485
28734
  access: "create"
28486
28735
  },
28736
+ "recording.startStorageMigrationMove": {
28737
+ capName: "recording",
28738
+ capScope: "system",
28739
+ addonId: null,
28740
+ access: "create"
28741
+ },
28487
28742
  "recordingExport.cancelExport": {
28488
28743
  capName: "recordingExport",
28489
28744
  capScope: "system",
@@ -28874,6 +29129,30 @@ Object.freeze({
28874
29129
  addonId: null,
28875
29130
  access: "view"
28876
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
+ },
28877
29156
  "storageProvider.abortUpload": {
28878
29157
  capName: "storage-provider",
28879
29158
  capScope: "system",
@@ -29252,12 +29531,42 @@ Object.freeze({
29252
29531
  addonId: null,
29253
29532
  access: "create"
29254
29533
  },
29534
+ "terminalSession.adoptLegacyMonitor": {
29535
+ capName: "terminal-session",
29536
+ capScope: "system",
29537
+ addonId: null,
29538
+ access: "create"
29539
+ },
29255
29540
  "terminalSession.close": {
29256
29541
  capName: "terminal-session",
29257
29542
  capScope: "system",
29258
29543
  addonId: null,
29259
29544
  access: "create"
29260
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
+ },
29261
29570
  "terminalSession.listProfiles": {
29262
29571
  capName: "terminal-session",
29263
29572
  capScope: "system",
@@ -29276,12 +29585,30 @@ Object.freeze({
29276
29585
  addonId: null,
29277
29586
  access: "create"
29278
29587
  },
29588
+ "terminalSession.pullOutput": {
29589
+ capName: "terminal-session",
29590
+ capScope: "system",
29591
+ addonId: null,
29592
+ access: "create"
29593
+ },
29279
29594
  "terminalSession.resize": {
29280
29595
  capName: "terminal-session",
29281
29596
  capScope: "system",
29282
29597
  addonId: null,
29283
29598
  access: "create"
29284
29599
  },
29600
+ "terminalSession.setInstanceEnabled": {
29601
+ capName: "terminal-session",
29602
+ capScope: "system",
29603
+ addonId: null,
29604
+ access: "create"
29605
+ },
29606
+ "terminalSession.writeInput": {
29607
+ capName: "terminal-session",
29608
+ capScope: "system",
29609
+ addonId: null,
29610
+ access: "create"
29611
+ },
29285
29612
  "toast.onToast": {
29286
29613
  capName: "toast",
29287
29614
  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",
16105
16185
  auth: "admin"
16106
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16186
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16187
+ kind: "mutation",
16188
+ auth: "admin"
16189
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16190
+ kind: "mutation",
16191
+ auth: "admin"
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,7 +18476,67 @@ var TerminalProfileInfoSchema = object({
18377
18476
  label: string(),
18378
18477
  description: string().optional()
18379
18478
  });
18380
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
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
+ });
18501
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18502
+ seq: number().int().positive(),
18503
+ kind: literal("data"),
18504
+ data: string()
18505
+ }), object({
18506
+ seq: number().int().positive(),
18507
+ kind: literal("exit"),
18508
+ exitCode: number().int(),
18509
+ signal: number().int().optional()
18510
+ })]);
18511
+ var TerminalOutputBatchSchema = object({
18512
+ cursor: number().int().nonnegative(),
18513
+ reset: boolean(),
18514
+ snapshot: string().optional(),
18515
+ events: array(TerminalOutputEventSchema).readonly()
18516
+ });
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({
18381
18540
  profileId: string(),
18382
18541
  cols: number().int().positive(),
18383
18542
  rows: number().int().positive()
@@ -18391,6 +18550,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18391
18550
  }), _void(), {
18392
18551
  kind: "mutation",
18393
18552
  auth: "admin"
18553
+ }), method(object({
18554
+ sessionId: string(),
18555
+ afterSeq: number().int().nonnegative(),
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()
18563
+ }), TerminalOutputBatchSchema, {
18564
+ kind: "mutation",
18565
+ auth: "admin",
18566
+ timeoutMs: 15e3
18567
+ }), method(object({
18568
+ sessionId: string(),
18569
+ data: string().max(64 * 1024)
18570
+ }), _void(), {
18571
+ kind: "mutation",
18572
+ auth: "admin"
18394
18573
  }), method(object({ sessionId: string() }), _void(), {
18395
18574
  kind: "mutation",
18396
18575
  auth: "admin"
@@ -20321,6 +20500,7 @@ var FaceInfoSchema = object({
20321
20500
  var FaceFilterEnum = _enum([
20322
20501
  "unassigned",
20323
20502
  "recognized",
20503
+ "identified",
20324
20504
  "all"
20325
20505
  ]);
20326
20506
  var MediaFileLiteSchema$1 = object({
@@ -20349,6 +20529,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20349
20529
  kind: "mutation",
20350
20530
  auth: "admin"
20351
20531
  }), method(object({
20532
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20533
+ deviceId: number().int().optional(),
20352
20534
  limit: number().int().positive().optional(),
20353
20535
  filter: FaceFilterEnum.optional(),
20354
20536
  /**
@@ -22114,6 +22296,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22114
22296
  capName: string().min(1).max(64),
22115
22297
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22116
22298
  valuePath: string().min(1).max(64)
22299
+ }),
22300
+ object({
22301
+ kind: literal("latest-recognition"),
22302
+ recognition: _enum(["person", "plate"])
22117
22303
  })
22118
22304
  ]);
22119
22305
  var OsdSlotBindingSchema = object({
@@ -22219,6 +22405,15 @@ method(object({ deviceId: number().int() }), object({
22219
22405
  }), object({ success: literal(true) }), {
22220
22406
  kind: "mutation",
22221
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"
22222
22417
  }), method(object({
22223
22418
  deviceId: number().int(),
22224
22419
  slotId: string().min(1),
@@ -23104,13 +23299,19 @@ method(object({
23104
23299
  }), {
23105
23300
  kind: "mutation",
23106
23301
  auth: "admin"
23107
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23302
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23108
23303
  kind: "mutation",
23109
23304
  auth: "admin"
23110
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23111
- kind: "query",
23305
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23306
+ kind: "mutation",
23112
23307
  auth: "admin"
23113
- }), 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() }), {
23114
23315
  kind: "mutation",
23115
23316
  auth: "admin"
23116
23317
  });
@@ -27232,6 +27433,12 @@ Object.freeze({
27232
27433
  addonId: null,
27233
27434
  access: "delete"
27234
27435
  },
27436
+ "osdManager.copyDeviceConfiguration": {
27437
+ capName: "osd-manager",
27438
+ capScope: "system",
27439
+ addonId: null,
27440
+ access: "create"
27441
+ },
27235
27442
  "osdManager.getConditionSupport": {
27236
27443
  capName: "osd-manager",
27237
27444
  capScope: "system",
@@ -27328,7 +27535,7 @@ Object.freeze({
27328
27535
  addonId: null,
27329
27536
  access: "create"
27330
27537
  },
27331
- "pipelineAnalytics.cancelMediaRelocate": {
27538
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27332
27539
  capName: "pipeline-analytics",
27333
27540
  capScope: "device",
27334
27541
  addonId: null,
@@ -27400,12 +27607,6 @@ Object.freeze({
27400
27607
  addonId: null,
27401
27608
  access: "view"
27402
27609
  },
27403
- "pipelineAnalytics.getMediaRelocateStatus": {
27404
- capName: "pipeline-analytics",
27405
- capScope: "device",
27406
- addonId: null,
27407
- access: "view"
27408
- },
27409
27610
  "pipelineAnalytics.getMotionEvents": {
27410
27611
  capName: "pipeline-analytics",
27411
27612
  capScope: "device",
@@ -27442,6 +27643,12 @@ Object.freeze({
27442
27643
  addonId: null,
27443
27644
  access: "view"
27444
27645
  },
27646
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27647
+ capName: "pipeline-analytics",
27648
+ capScope: "device",
27649
+ addonId: null,
27650
+ access: "view"
27651
+ },
27445
27652
  "pipelineAnalytics.getTrack": {
27446
27653
  capName: "pipeline-analytics",
27447
27654
  capScope: "device",
@@ -27520,6 +27727,12 @@ Object.freeze({
27520
27727
  addonId: null,
27521
27728
  access: "view"
27522
27729
  },
27730
+ "pipelineAnalytics.pauseForStorageMigration": {
27731
+ capName: "pipeline-analytics",
27732
+ capScope: "device",
27733
+ addonId: null,
27734
+ access: "create"
27735
+ },
27523
27736
  "pipelineAnalytics.proposeRetrainAnnotations": {
27524
27737
  capName: "pipeline-analytics",
27525
27738
  capScope: "device",
@@ -27550,7 +27763,7 @@ Object.freeze({
27550
27763
  addonId: null,
27551
27764
  access: "create"
27552
27765
  },
27553
- "pipelineAnalytics.relocateMedia": {
27766
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27554
27767
  capName: "pipeline-analytics",
27555
27768
  capScope: "device",
27556
27769
  addonId: null,
@@ -27562,6 +27775,12 @@ Object.freeze({
27562
27775
  addonId: null,
27563
27776
  access: "create"
27564
27777
  },
27778
+ "pipelineAnalytics.resumeForStorageMigration": {
27779
+ capName: "pipeline-analytics",
27780
+ capScope: "device",
27781
+ addonId: null,
27782
+ access: "create"
27783
+ },
27565
27784
  "pipelineAnalytics.saveRetrainAnnotations": {
27566
27785
  capName: "pipeline-analytics",
27567
27786
  capScope: "device",
@@ -27586,6 +27805,12 @@ Object.freeze({
27586
27805
  addonId: null,
27587
27806
  access: "create"
27588
27807
  },
27808
+ "pipelineAnalytics.startStorageMigrationMove": {
27809
+ capName: "pipeline-analytics",
27810
+ capScope: "device",
27811
+ addonId: null,
27812
+ access: "create"
27813
+ },
27589
27814
  "pipelineAnalytics.wipeAllAnalytics": {
27590
27815
  capName: "pipeline-analytics",
27591
27816
  capScope: "device",
@@ -27952,6 +28177,12 @@ Object.freeze({
27952
28177
  addonId: null,
27953
28178
  access: "view"
27954
28179
  },
28180
+ "pipelineOrchestrator.pauseForStorageMigration": {
28181
+ capName: "pipeline-orchestrator",
28182
+ capScope: "system",
28183
+ addonId: null,
28184
+ access: "create"
28185
+ },
27955
28186
  "pipelineOrchestrator.rebalance": {
27956
28187
  capName: "pipeline-orchestrator",
27957
28188
  capScope: "system",
@@ -27976,6 +28207,12 @@ Object.freeze({
27976
28207
  addonId: null,
27977
28208
  access: "view"
27978
28209
  },
28210
+ "pipelineOrchestrator.resumeForStorageMigration": {
28211
+ capName: "pipeline-orchestrator",
28212
+ capScope: "system",
28213
+ addonId: null,
28214
+ access: "create"
28215
+ },
27979
28216
  "pipelineOrchestrator.saveTemplate": {
27980
28217
  capName: "pipeline-orchestrator",
27981
28218
  capScope: "system",
@@ -28372,7 +28609,7 @@ Object.freeze({
28372
28609
  addonId: null,
28373
28610
  access: "create"
28374
28611
  },
28375
- "recording.cancelRelocate": {
28612
+ "recording.cancelStorageMigrationMove": {
28376
28613
  capName: "recording",
28377
28614
  capScope: "system",
28378
28615
  addonId: null,
@@ -28408,7 +28645,7 @@ Object.freeze({
28408
28645
  addonId: null,
28409
28646
  access: "view"
28410
28647
  },
28411
- "recording.getRelocateStatus": {
28648
+ "recording.getStorageMigrationMoveStatus": {
28412
28649
  capName: "recording",
28413
28650
  capScope: "system",
28414
28651
  addonId: null,
@@ -28432,6 +28669,12 @@ Object.freeze({
28432
28669
  addonId: null,
28433
28670
  access: "view"
28434
28671
  },
28672
+ "recording.pauseForStorageMigration": {
28673
+ capName: "recording",
28674
+ capScope: "system",
28675
+ addonId: null,
28676
+ access: "create"
28677
+ },
28435
28678
  "recording.pruneFootage": {
28436
28679
  capName: "recording",
28437
28680
  capScope: "system",
@@ -28450,7 +28693,7 @@ Object.freeze({
28450
28693
  addonId: null,
28451
28694
  access: "view"
28452
28695
  },
28453
- "recording.relocateFootage": {
28696
+ "recording.refreshStorageLocationsForMigration": {
28454
28697
  capName: "recording",
28455
28698
  capScope: "system",
28456
28699
  addonId: null,
@@ -28474,12 +28717,24 @@ Object.freeze({
28474
28717
  addonId: null,
28475
28718
  access: "create"
28476
28719
  },
28720
+ "recording.resumeForStorageMigration": {
28721
+ capName: "recording",
28722
+ capScope: "system",
28723
+ addonId: null,
28724
+ access: "create"
28725
+ },
28477
28726
  "recording.setDeviceConfig": {
28478
28727
  capName: "recording",
28479
28728
  capScope: "system",
28480
28729
  addonId: null,
28481
28730
  access: "create"
28482
28731
  },
28732
+ "recording.startStorageMigrationMove": {
28733
+ capName: "recording",
28734
+ capScope: "system",
28735
+ addonId: null,
28736
+ access: "create"
28737
+ },
28483
28738
  "recordingExport.cancelExport": {
28484
28739
  capName: "recordingExport",
28485
28740
  capScope: "system",
@@ -28870,6 +29125,30 @@ Object.freeze({
28870
29125
  addonId: null,
28871
29126
  access: "view"
28872
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
+ },
28873
29152
  "storageProvider.abortUpload": {
28874
29153
  capName: "storage-provider",
28875
29154
  capScope: "system",
@@ -29248,12 +29527,42 @@ Object.freeze({
29248
29527
  addonId: null,
29249
29528
  access: "create"
29250
29529
  },
29530
+ "terminalSession.adoptLegacyMonitor": {
29531
+ capName: "terminal-session",
29532
+ capScope: "system",
29533
+ addonId: null,
29534
+ access: "create"
29535
+ },
29251
29536
  "terminalSession.close": {
29252
29537
  capName: "terminal-session",
29253
29538
  capScope: "system",
29254
29539
  addonId: null,
29255
29540
  access: "create"
29256
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
+ },
29257
29566
  "terminalSession.listProfiles": {
29258
29567
  capName: "terminal-session",
29259
29568
  capScope: "system",
@@ -29272,12 +29581,30 @@ Object.freeze({
29272
29581
  addonId: null,
29273
29582
  access: "create"
29274
29583
  },
29584
+ "terminalSession.pullOutput": {
29585
+ capName: "terminal-session",
29586
+ capScope: "system",
29587
+ addonId: null,
29588
+ access: "create"
29589
+ },
29275
29590
  "terminalSession.resize": {
29276
29591
  capName: "terminal-session",
29277
29592
  capScope: "system",
29278
29593
  addonId: null,
29279
29594
  access: "create"
29280
29595
  },
29596
+ "terminalSession.setInstanceEnabled": {
29597
+ capName: "terminal-session",
29598
+ capScope: "system",
29599
+ addonId: null,
29600
+ access: "create"
29601
+ },
29602
+ "terminalSession.writeInput": {
29603
+ capName: "terminal-session",
29604
+ capScope: "system",
29605
+ addonId: null,
29606
+ access: "create"
29607
+ },
29281
29608
  "toast.onToast": {
29282
29609
  capName: "toast",
29283
29610
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-nodeav",
3
- "version": "1.2.10",
3
+ "version": "1.2.12",
4
4
  "description": "Standalone in-process node-av decoder addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",