@camstack/addon-static-turn 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.
@@ -7535,12 +7535,11 @@ var RecordingConfigSchema = object({
7535
7535
  /**
7536
7536
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7537
7537
  *
7538
- * One shape shared by the recorder's `relocateFootage` (segments) and
7539
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7540
- * page renders both movers with one component. Jobs are in-RAM (a restart
7541
- * forgets them re-running is safe by construction: copy-if-absent, delete
7542
- * after verify) and each completed/failed run also lands one durable ops-log
7543
- * row on the owning addon's surface.
7538
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7539
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7540
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7541
+ * Each completed/failed run also lands one durable ops-log row on its owning
7542
+ * addon surface.
7544
7543
  */
7545
7544
  var RelocateJobStateSchema = _enum([
7546
7545
  "running",
@@ -7567,19 +7566,100 @@ var RelocateJobSchema = object({
7567
7566
  finishedAt: number().nullable(),
7568
7567
  error: string().nullable()
7569
7568
  });
7569
+ /** Profile-derived footage selection used only by the migration coordinator:
7570
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7571
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7570
7572
  var RelocateFootageInputSchema = object({
7571
- deviceId: number().optional(),
7572
7573
  fromLocationId: string(),
7573
7574
  toLocationId: string(),
7574
7575
  entities: array(_enum(["segments"])).optional(),
7576
+ /** Limits relocation to the logical profile class. Omit only for the
7577
+ * pre-orchestration compatibility path. */
7578
+ footageClass: RelocateFootageClassSchema.optional(),
7575
7579
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7576
7580
  * never allowed to starve live writers. */
7577
7581
  throttleMbps: number().min(1).max(1e3).optional()
7578
7582
  });
7579
- var RelocateMediaInputSchema = object({
7580
- deviceId: number().optional(),
7583
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7584
+ * from persistent recording settings: a migration never changes
7585
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7586
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7587
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7588
+ var StorageMigrationMediaMoveInputSchema = object({
7581
7589
  toLocationId: string(),
7582
7590
  throttleMbps: number().min(1).max(1e3).optional()
7591
+ }).extend({ leaseId: string().min(1) });
7592
+ /** The independently selectable logical storage classes. `recordings`
7593
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7594
+ * segments; `eventMedia` is post-analysis blobs. */
7595
+ var StorageMigrationClassSchema = _enum([
7596
+ "recordings",
7597
+ "recordingsLow",
7598
+ "eventMedia"
7599
+ ]);
7600
+ /** A destination is always an existing, fully-qualified location id. The
7601
+ * migration API intentionally never changes a source location's `basePath`:
7602
+ * callers create a new `<type>:<slug>` location, then select it here. */
7603
+ var StorageMigrationDestinationsSchema = object({
7604
+ recordings: string().min(1).optional(),
7605
+ recordingsLow: string().min(1).optional(),
7606
+ eventMedia: string().min(1).optional()
7607
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7608
+ /** Shared input for planning and starting an orchestrated storage migration. */
7609
+ var StorageMigrationInputSchema = object({
7610
+ destinations: StorageMigrationDestinationsSchema,
7611
+ throttleMbps: number().min(1).max(1e3).optional()
7612
+ });
7613
+ /** The durable coordinator state machine. The only phase that changes default
7614
+ * locations is `repointing`, after every selected mover has completed and been
7615
+ * verified. */
7616
+ var StorageMigrationPhaseSchema = _enum([
7617
+ "planning",
7618
+ "pausing",
7619
+ "moving",
7620
+ "verifying",
7621
+ "repointing",
7622
+ "refreshing",
7623
+ "resuming",
7624
+ "done",
7625
+ "failed",
7626
+ "cancelled"
7627
+ ]);
7628
+ var StorageMigrationParticipantSchema = _enum([
7629
+ "pipeline",
7630
+ "recorder",
7631
+ "analytics"
7632
+ ]);
7633
+ var StorageMigrationMoveSchema = object({
7634
+ storageClass: StorageMigrationClassSchema,
7635
+ fromLocationId: string(),
7636
+ toLocationId: string(),
7637
+ moverJobId: string().nullable(),
7638
+ state: RelocateJobStateSchema.nullable(),
7639
+ error: string().nullable()
7640
+ });
7641
+ var StorageMigrationJobSchema = object({
7642
+ jobId: string(),
7643
+ phase: StorageMigrationPhaseSchema,
7644
+ destinations: StorageMigrationDestinationsSchema,
7645
+ throttleMbps: number(),
7646
+ moves: array(StorageMigrationMoveSchema),
7647
+ pauseLeaseId: string().nullable(),
7648
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7649
+ repointed: boolean(),
7650
+ cancelRequested: boolean(),
7651
+ startedAt: number(),
7652
+ updatedAt: number(),
7653
+ finishedAt: number().nullable(),
7654
+ error: string().nullable()
7655
+ });
7656
+ var StorageMigrationPlanSchema = object({
7657
+ destinations: StorageMigrationDestinationsSchema,
7658
+ moves: array(object({
7659
+ storageClass: StorageMigrationClassSchema,
7660
+ fromLocationId: string(),
7661
+ toLocationId: string()
7662
+ }))
7583
7663
  });
7584
7664
  /**
7585
7665
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -15955,13 +16035,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
15955
16035
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
15956
16036
  kind: "mutation",
15957
16037
  auth: "admin"
15958
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16038
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
15959
16039
  kind: "mutation",
15960
16040
  auth: "admin"
15961
- }), method(object({}), array(RelocateJobSchema).readonly(), {
15962
- kind: "query",
16041
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16042
+ kind: "mutation",
15963
16043
  auth: "admin"
15964
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16044
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16045
+ kind: "mutation",
16046
+ auth: "admin"
16047
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16048
+ kind: "mutation",
16049
+ auth: "admin"
16050
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
15965
16051
  kind: "mutation",
15966
16052
  auth: "admin"
15967
16053
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17458,7 +17544,13 @@ var NodeInferenceDevicesSchema = object({
17458
17544
  reachable: boolean(),
17459
17545
  devices: array(NodeInferenceDeviceSchema).readonly()
17460
17546
  });
17461
- method(object({
17547
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17548
+ kind: "mutation",
17549
+ auth: "admin"
17550
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17551
+ kind: "mutation",
17552
+ auth: "admin"
17553
+ }), method(object({
17462
17554
  deviceId: number(),
17463
17555
  agentNodeId: string()
17464
17556
  }), object({ success: literal(true) }), {
@@ -18132,6 +18224,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18132
18224
  locationId: string(),
18133
18225
  targetBytes: number().int().positive()
18134
18226
  }), EvictResultSchema, { kind: "mutation" });
18227
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18228
+ kind: "mutation",
18229
+ auth: "admin"
18230
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18231
+ kind: "mutation",
18232
+ auth: "admin"
18233
+ });
18135
18234
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18136
18235
  providerId: string().min(1),
18137
18236
  displayName: string().min(1),
@@ -18235,7 +18334,67 @@ var TerminalProfileInfoSchema = object({
18235
18334
  label: string(),
18236
18335
  description: string().optional()
18237
18336
  });
18238
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18337
+ /**
18338
+ * A durable operator-created Terminal instance. Profiles are templates; only
18339
+ * an instance declares a camera.
18340
+ */
18341
+ var TerminalInstanceInfoSchema = object({
18342
+ instanceId: string(),
18343
+ cameraStableId: string(),
18344
+ nodeId: string(),
18345
+ profileId: string(),
18346
+ profileLabel: string(),
18347
+ name: string(),
18348
+ enabled: boolean()
18349
+ });
18350
+ var TerminalLegacyCameraSchema = object({
18351
+ stableId: string(),
18352
+ nodeId: string(),
18353
+ profileId: string(),
18354
+ profileLabel: string(),
18355
+ name: string(),
18356
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18357
+ adoptable: boolean()
18358
+ });
18359
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18360
+ seq: number().int().positive(),
18361
+ kind: literal("data"),
18362
+ data: string()
18363
+ }), object({
18364
+ seq: number().int().positive(),
18365
+ kind: literal("exit"),
18366
+ exitCode: number().int(),
18367
+ signal: number().int().optional()
18368
+ })]);
18369
+ var TerminalOutputBatchSchema = object({
18370
+ cursor: number().int().nonnegative(),
18371
+ reset: boolean(),
18372
+ snapshot: string().optional(),
18373
+ events: array(TerminalOutputEventSchema).readonly()
18374
+ });
18375
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18376
+ targetNodeId: string().min(1),
18377
+ profileId: string().min(1),
18378
+ name: string().trim().min(1).max(160).optional()
18379
+ }), TerminalInstanceInfoSchema, {
18380
+ kind: "mutation",
18381
+ auth: "admin"
18382
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18383
+ kind: "mutation",
18384
+ auth: "admin"
18385
+ }), method(object({
18386
+ instanceId: string().min(1),
18387
+ enabled: boolean()
18388
+ }), TerminalInstanceInfoSchema, {
18389
+ kind: "mutation",
18390
+ auth: "admin"
18391
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18392
+ stableId: string().min(1),
18393
+ name: string().trim().min(1).max(160).optional()
18394
+ }), TerminalInstanceInfoSchema, {
18395
+ kind: "mutation",
18396
+ auth: "admin"
18397
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18239
18398
  profileId: string(),
18240
18399
  cols: number().int().positive(),
18241
18400
  rows: number().int().positive()
@@ -18249,6 +18408,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18249
18408
  }), _void(), {
18250
18409
  kind: "mutation",
18251
18410
  auth: "admin"
18411
+ }), method(object({
18412
+ sessionId: string(),
18413
+ afterSeq: number().int().nonnegative(),
18414
+ waitMs: number().int().min(0).max(2e3).default(0),
18415
+ /**
18416
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18417
+ * browser's initial repaint remains immediate; the camera snapshot
18418
+ * relay uses it to avoid encoding a blank startup frame.
18419
+ */
18420
+ waitForOutput: boolean().optional()
18421
+ }), TerminalOutputBatchSchema, {
18422
+ kind: "mutation",
18423
+ auth: "admin",
18424
+ timeoutMs: 15e3
18425
+ }), method(object({
18426
+ sessionId: string(),
18427
+ data: string().max(64 * 1024)
18428
+ }), _void(), {
18429
+ kind: "mutation",
18430
+ auth: "admin"
18252
18431
  }), method(object({ sessionId: string() }), _void(), {
18253
18432
  kind: "mutation",
18254
18433
  auth: "admin"
@@ -20202,6 +20381,7 @@ var FaceInfoSchema = object({
20202
20381
  var FaceFilterEnum = _enum([
20203
20382
  "unassigned",
20204
20383
  "recognized",
20384
+ "identified",
20205
20385
  "all"
20206
20386
  ]);
20207
20387
  var MediaFileLiteSchema$1 = object({
@@ -20230,6 +20410,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20230
20410
  kind: "mutation",
20231
20411
  auth: "admin"
20232
20412
  }), method(object({
20413
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20414
+ deviceId: number().int().optional(),
20233
20415
  limit: number().int().positive().optional(),
20234
20416
  filter: FaceFilterEnum.optional(),
20235
20417
  /**
@@ -21995,6 +22177,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
21995
22177
  capName: string().min(1).max(64),
21996
22178
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
21997
22179
  valuePath: string().min(1).max(64)
22180
+ }),
22181
+ object({
22182
+ kind: literal("latest-recognition"),
22183
+ recognition: _enum(["person", "plate"])
21998
22184
  })
21999
22185
  ]);
22000
22186
  var OsdSlotBindingSchema = object({
@@ -22100,6 +22286,15 @@ method(object({ deviceId: number().int() }), object({
22100
22286
  }), object({ success: literal(true) }), {
22101
22287
  kind: "mutation",
22102
22288
  auth: "admin"
22289
+ }), method(object({
22290
+ sourceDeviceId: number().int(),
22291
+ targetDeviceId: number().int()
22292
+ }), object({
22293
+ copied: number().int().nonnegative(),
22294
+ skipped: number().int().nonnegative()
22295
+ }), {
22296
+ kind: "mutation",
22297
+ auth: "admin"
22103
22298
  }), method(object({
22104
22299
  deviceId: number().int(),
22105
22300
  slotId: string().min(1),
@@ -22985,13 +23180,19 @@ method(object({
22985
23180
  }), {
22986
23181
  kind: "mutation",
22987
23182
  auth: "admin"
22988
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23183
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22989
23184
  kind: "mutation",
22990
23185
  auth: "admin"
22991
- }), method(object({}), array(RelocateJobSchema).readonly(), {
22992
- kind: "query",
23186
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23187
+ kind: "mutation",
22993
23188
  auth: "admin"
22994
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23189
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23190
+ kind: "mutation",
23191
+ auth: "admin"
23192
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23193
+ kind: "mutation",
23194
+ auth: "admin"
23195
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
22995
23196
  kind: "mutation",
22996
23197
  auth: "admin"
22997
23198
  });
@@ -27113,6 +27314,12 @@ Object.freeze({
27113
27314
  addonId: null,
27114
27315
  access: "delete"
27115
27316
  },
27317
+ "osdManager.copyDeviceConfiguration": {
27318
+ capName: "osd-manager",
27319
+ capScope: "system",
27320
+ addonId: null,
27321
+ access: "create"
27322
+ },
27116
27323
  "osdManager.getConditionSupport": {
27117
27324
  capName: "osd-manager",
27118
27325
  capScope: "system",
@@ -27209,7 +27416,7 @@ Object.freeze({
27209
27416
  addonId: null,
27210
27417
  access: "create"
27211
27418
  },
27212
- "pipelineAnalytics.cancelMediaRelocate": {
27419
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27213
27420
  capName: "pipeline-analytics",
27214
27421
  capScope: "device",
27215
27422
  addonId: null,
@@ -27281,12 +27488,6 @@ Object.freeze({
27281
27488
  addonId: null,
27282
27489
  access: "view"
27283
27490
  },
27284
- "pipelineAnalytics.getMediaRelocateStatus": {
27285
- capName: "pipeline-analytics",
27286
- capScope: "device",
27287
- addonId: null,
27288
- access: "view"
27289
- },
27290
27491
  "pipelineAnalytics.getMotionEvents": {
27291
27492
  capName: "pipeline-analytics",
27292
27493
  capScope: "device",
@@ -27323,6 +27524,12 @@ Object.freeze({
27323
27524
  addonId: null,
27324
27525
  access: "view"
27325
27526
  },
27527
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27528
+ capName: "pipeline-analytics",
27529
+ capScope: "device",
27530
+ addonId: null,
27531
+ access: "view"
27532
+ },
27326
27533
  "pipelineAnalytics.getTrack": {
27327
27534
  capName: "pipeline-analytics",
27328
27535
  capScope: "device",
@@ -27401,6 +27608,12 @@ Object.freeze({
27401
27608
  addonId: null,
27402
27609
  access: "view"
27403
27610
  },
27611
+ "pipelineAnalytics.pauseForStorageMigration": {
27612
+ capName: "pipeline-analytics",
27613
+ capScope: "device",
27614
+ addonId: null,
27615
+ access: "create"
27616
+ },
27404
27617
  "pipelineAnalytics.proposeRetrainAnnotations": {
27405
27618
  capName: "pipeline-analytics",
27406
27619
  capScope: "device",
@@ -27431,7 +27644,7 @@ Object.freeze({
27431
27644
  addonId: null,
27432
27645
  access: "create"
27433
27646
  },
27434
- "pipelineAnalytics.relocateMedia": {
27647
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27435
27648
  capName: "pipeline-analytics",
27436
27649
  capScope: "device",
27437
27650
  addonId: null,
@@ -27443,6 +27656,12 @@ Object.freeze({
27443
27656
  addonId: null,
27444
27657
  access: "create"
27445
27658
  },
27659
+ "pipelineAnalytics.resumeForStorageMigration": {
27660
+ capName: "pipeline-analytics",
27661
+ capScope: "device",
27662
+ addonId: null,
27663
+ access: "create"
27664
+ },
27446
27665
  "pipelineAnalytics.saveRetrainAnnotations": {
27447
27666
  capName: "pipeline-analytics",
27448
27667
  capScope: "device",
@@ -27467,6 +27686,12 @@ Object.freeze({
27467
27686
  addonId: null,
27468
27687
  access: "create"
27469
27688
  },
27689
+ "pipelineAnalytics.startStorageMigrationMove": {
27690
+ capName: "pipeline-analytics",
27691
+ capScope: "device",
27692
+ addonId: null,
27693
+ access: "create"
27694
+ },
27470
27695
  "pipelineAnalytics.wipeAllAnalytics": {
27471
27696
  capName: "pipeline-analytics",
27472
27697
  capScope: "device",
@@ -27833,6 +28058,12 @@ Object.freeze({
27833
28058
  addonId: null,
27834
28059
  access: "view"
27835
28060
  },
28061
+ "pipelineOrchestrator.pauseForStorageMigration": {
28062
+ capName: "pipeline-orchestrator",
28063
+ capScope: "system",
28064
+ addonId: null,
28065
+ access: "create"
28066
+ },
27836
28067
  "pipelineOrchestrator.rebalance": {
27837
28068
  capName: "pipeline-orchestrator",
27838
28069
  capScope: "system",
@@ -27857,6 +28088,12 @@ Object.freeze({
27857
28088
  addonId: null,
27858
28089
  access: "view"
27859
28090
  },
28091
+ "pipelineOrchestrator.resumeForStorageMigration": {
28092
+ capName: "pipeline-orchestrator",
28093
+ capScope: "system",
28094
+ addonId: null,
28095
+ access: "create"
28096
+ },
27860
28097
  "pipelineOrchestrator.saveTemplate": {
27861
28098
  capName: "pipeline-orchestrator",
27862
28099
  capScope: "system",
@@ -28253,7 +28490,7 @@ Object.freeze({
28253
28490
  addonId: null,
28254
28491
  access: "create"
28255
28492
  },
28256
- "recording.cancelRelocate": {
28493
+ "recording.cancelStorageMigrationMove": {
28257
28494
  capName: "recording",
28258
28495
  capScope: "system",
28259
28496
  addonId: null,
@@ -28289,7 +28526,7 @@ Object.freeze({
28289
28526
  addonId: null,
28290
28527
  access: "view"
28291
28528
  },
28292
- "recording.getRelocateStatus": {
28529
+ "recording.getStorageMigrationMoveStatus": {
28293
28530
  capName: "recording",
28294
28531
  capScope: "system",
28295
28532
  addonId: null,
@@ -28313,6 +28550,12 @@ Object.freeze({
28313
28550
  addonId: null,
28314
28551
  access: "view"
28315
28552
  },
28553
+ "recording.pauseForStorageMigration": {
28554
+ capName: "recording",
28555
+ capScope: "system",
28556
+ addonId: null,
28557
+ access: "create"
28558
+ },
28316
28559
  "recording.pruneFootage": {
28317
28560
  capName: "recording",
28318
28561
  capScope: "system",
@@ -28331,7 +28574,7 @@ Object.freeze({
28331
28574
  addonId: null,
28332
28575
  access: "view"
28333
28576
  },
28334
- "recording.relocateFootage": {
28577
+ "recording.refreshStorageLocationsForMigration": {
28335
28578
  capName: "recording",
28336
28579
  capScope: "system",
28337
28580
  addonId: null,
@@ -28355,12 +28598,24 @@ Object.freeze({
28355
28598
  addonId: null,
28356
28599
  access: "create"
28357
28600
  },
28601
+ "recording.resumeForStorageMigration": {
28602
+ capName: "recording",
28603
+ capScope: "system",
28604
+ addonId: null,
28605
+ access: "create"
28606
+ },
28358
28607
  "recording.setDeviceConfig": {
28359
28608
  capName: "recording",
28360
28609
  capScope: "system",
28361
28610
  addonId: null,
28362
28611
  access: "create"
28363
28612
  },
28613
+ "recording.startStorageMigrationMove": {
28614
+ capName: "recording",
28615
+ capScope: "system",
28616
+ addonId: null,
28617
+ access: "create"
28618
+ },
28364
28619
  "recordingExport.cancelExport": {
28365
28620
  capName: "recordingExport",
28366
28621
  capScope: "system",
@@ -28751,6 +29006,30 @@ Object.freeze({
28751
29006
  addonId: null,
28752
29007
  access: "view"
28753
29008
  },
29009
+ "storageMigration.cancel": {
29010
+ capName: "storage-migration",
29011
+ capScope: "system",
29012
+ addonId: null,
29013
+ access: "create"
29014
+ },
29015
+ "storageMigration.plan": {
29016
+ capName: "storage-migration",
29017
+ capScope: "system",
29018
+ addonId: null,
29019
+ access: "view"
29020
+ },
29021
+ "storageMigration.start": {
29022
+ capName: "storage-migration",
29023
+ capScope: "system",
29024
+ addonId: null,
29025
+ access: "create"
29026
+ },
29027
+ "storageMigration.status": {
29028
+ capName: "storage-migration",
29029
+ capScope: "system",
29030
+ addonId: null,
29031
+ access: "view"
29032
+ },
28754
29033
  "storageProvider.abortUpload": {
28755
29034
  capName: "storage-provider",
28756
29035
  capScope: "system",
@@ -29129,12 +29408,42 @@ Object.freeze({
29129
29408
  addonId: null,
29130
29409
  access: "create"
29131
29410
  },
29411
+ "terminalSession.adoptLegacyMonitor": {
29412
+ capName: "terminal-session",
29413
+ capScope: "system",
29414
+ addonId: null,
29415
+ access: "create"
29416
+ },
29132
29417
  "terminalSession.close": {
29133
29418
  capName: "terminal-session",
29134
29419
  capScope: "system",
29135
29420
  addonId: null,
29136
29421
  access: "create"
29137
29422
  },
29423
+ "terminalSession.createInstance": {
29424
+ capName: "terminal-session",
29425
+ capScope: "system",
29426
+ addonId: null,
29427
+ access: "create"
29428
+ },
29429
+ "terminalSession.deleteInstance": {
29430
+ capName: "terminal-session",
29431
+ capScope: "system",
29432
+ addonId: null,
29433
+ access: "delete"
29434
+ },
29435
+ "terminalSession.listInstances": {
29436
+ capName: "terminal-session",
29437
+ capScope: "system",
29438
+ addonId: null,
29439
+ access: "view"
29440
+ },
29441
+ "terminalSession.listLegacyCameras": {
29442
+ capName: "terminal-session",
29443
+ capScope: "system",
29444
+ addonId: null,
29445
+ access: "view"
29446
+ },
29138
29447
  "terminalSession.listProfiles": {
29139
29448
  capName: "terminal-session",
29140
29449
  capScope: "system",
@@ -29153,12 +29462,30 @@ Object.freeze({
29153
29462
  addonId: null,
29154
29463
  access: "create"
29155
29464
  },
29465
+ "terminalSession.pullOutput": {
29466
+ capName: "terminal-session",
29467
+ capScope: "system",
29468
+ addonId: null,
29469
+ access: "create"
29470
+ },
29156
29471
  "terminalSession.resize": {
29157
29472
  capName: "terminal-session",
29158
29473
  capScope: "system",
29159
29474
  addonId: null,
29160
29475
  access: "create"
29161
29476
  },
29477
+ "terminalSession.setInstanceEnabled": {
29478
+ capName: "terminal-session",
29479
+ capScope: "system",
29480
+ addonId: null,
29481
+ access: "create"
29482
+ },
29483
+ "terminalSession.writeInput": {
29484
+ capName: "terminal-session",
29485
+ capScope: "system",
29486
+ addonId: null,
29487
+ access: "create"
29488
+ },
29162
29489
  "toast.onToast": {
29163
29490
  capName: "toast",
29164
29491
  capScope: "system",
@@ -7534,12 +7534,11 @@ var RecordingConfigSchema = object({
7534
7534
  /**
7535
7535
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7536
7536
  *
7537
- * One shape shared by the recorder's `relocateFootage` (segments) and
7538
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7539
- * page renders both movers with one component. Jobs are in-RAM (a restart
7540
- * forgets them re-running is safe by construction: copy-if-absent, delete
7541
- * after verify) and each completed/failed run also lands one durable ops-log
7542
- * row on the owning addon's surface.
7537
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7538
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7539
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7540
+ * Each completed/failed run also lands one durable ops-log row on its owning
7541
+ * addon surface.
7543
7542
  */
7544
7543
  var RelocateJobStateSchema = _enum([
7545
7544
  "running",
@@ -7566,19 +7565,100 @@ var RelocateJobSchema = object({
7566
7565
  finishedAt: number().nullable(),
7567
7566
  error: string().nullable()
7568
7567
  });
7568
+ /** Profile-derived footage selection used only by the migration coordinator:
7569
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7570
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7569
7571
  var RelocateFootageInputSchema = object({
7570
- deviceId: number().optional(),
7571
7572
  fromLocationId: string(),
7572
7573
  toLocationId: string(),
7573
7574
  entities: array(_enum(["segments"])).optional(),
7575
+ /** Limits relocation to the logical profile class. Omit only for the
7576
+ * pre-orchestration compatibility path. */
7577
+ footageClass: RelocateFootageClassSchema.optional(),
7574
7578
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7575
7579
  * never allowed to starve live writers. */
7576
7580
  throttleMbps: number().min(1).max(1e3).optional()
7577
7581
  });
7578
- var RelocateMediaInputSchema = object({
7579
- deviceId: number().optional(),
7582
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7583
+ * from persistent recording settings: a migration never changes
7584
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7585
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7586
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7587
+ var StorageMigrationMediaMoveInputSchema = object({
7580
7588
  toLocationId: string(),
7581
7589
  throttleMbps: number().min(1).max(1e3).optional()
7590
+ }).extend({ leaseId: string().min(1) });
7591
+ /** The independently selectable logical storage classes. `recordings`
7592
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7593
+ * segments; `eventMedia` is post-analysis blobs. */
7594
+ var StorageMigrationClassSchema = _enum([
7595
+ "recordings",
7596
+ "recordingsLow",
7597
+ "eventMedia"
7598
+ ]);
7599
+ /** A destination is always an existing, fully-qualified location id. The
7600
+ * migration API intentionally never changes a source location's `basePath`:
7601
+ * callers create a new `<type>:<slug>` location, then select it here. */
7602
+ var StorageMigrationDestinationsSchema = object({
7603
+ recordings: string().min(1).optional(),
7604
+ recordingsLow: string().min(1).optional(),
7605
+ eventMedia: string().min(1).optional()
7606
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7607
+ /** Shared input for planning and starting an orchestrated storage migration. */
7608
+ var StorageMigrationInputSchema = object({
7609
+ destinations: StorageMigrationDestinationsSchema,
7610
+ throttleMbps: number().min(1).max(1e3).optional()
7611
+ });
7612
+ /** The durable coordinator state machine. The only phase that changes default
7613
+ * locations is `repointing`, after every selected mover has completed and been
7614
+ * verified. */
7615
+ var StorageMigrationPhaseSchema = _enum([
7616
+ "planning",
7617
+ "pausing",
7618
+ "moving",
7619
+ "verifying",
7620
+ "repointing",
7621
+ "refreshing",
7622
+ "resuming",
7623
+ "done",
7624
+ "failed",
7625
+ "cancelled"
7626
+ ]);
7627
+ var StorageMigrationParticipantSchema = _enum([
7628
+ "pipeline",
7629
+ "recorder",
7630
+ "analytics"
7631
+ ]);
7632
+ var StorageMigrationMoveSchema = object({
7633
+ storageClass: StorageMigrationClassSchema,
7634
+ fromLocationId: string(),
7635
+ toLocationId: string(),
7636
+ moverJobId: string().nullable(),
7637
+ state: RelocateJobStateSchema.nullable(),
7638
+ error: string().nullable()
7639
+ });
7640
+ var StorageMigrationJobSchema = object({
7641
+ jobId: string(),
7642
+ phase: StorageMigrationPhaseSchema,
7643
+ destinations: StorageMigrationDestinationsSchema,
7644
+ throttleMbps: number(),
7645
+ moves: array(StorageMigrationMoveSchema),
7646
+ pauseLeaseId: string().nullable(),
7647
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7648
+ repointed: boolean(),
7649
+ cancelRequested: boolean(),
7650
+ startedAt: number(),
7651
+ updatedAt: number(),
7652
+ finishedAt: number().nullable(),
7653
+ error: string().nullable()
7654
+ });
7655
+ var StorageMigrationPlanSchema = object({
7656
+ destinations: StorageMigrationDestinationsSchema,
7657
+ moves: array(object({
7658
+ storageClass: StorageMigrationClassSchema,
7659
+ fromLocationId: string(),
7660
+ toLocationId: string()
7661
+ }))
7582
7662
  });
7583
7663
  /**
7584
7664
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -15954,13 +16034,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
15954
16034
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
15955
16035
  kind: "mutation",
15956
16036
  auth: "admin"
15957
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16037
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
15958
16038
  kind: "mutation",
15959
16039
  auth: "admin"
15960
- }), method(object({}), array(RelocateJobSchema).readonly(), {
15961
- kind: "query",
16040
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16041
+ kind: "mutation",
15962
16042
  auth: "admin"
15963
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16043
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16044
+ kind: "mutation",
16045
+ auth: "admin"
16046
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16047
+ kind: "mutation",
16048
+ auth: "admin"
16049
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
15964
16050
  kind: "mutation",
15965
16051
  auth: "admin"
15966
16052
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17457,7 +17543,13 @@ var NodeInferenceDevicesSchema = object({
17457
17543
  reachable: boolean(),
17458
17544
  devices: array(NodeInferenceDeviceSchema).readonly()
17459
17545
  });
17460
- method(object({
17546
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17547
+ kind: "mutation",
17548
+ auth: "admin"
17549
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17550
+ kind: "mutation",
17551
+ auth: "admin"
17552
+ }), method(object({
17461
17553
  deviceId: number(),
17462
17554
  agentNodeId: string()
17463
17555
  }), object({ success: literal(true) }), {
@@ -18131,6 +18223,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18131
18223
  locationId: string(),
18132
18224
  targetBytes: number().int().positive()
18133
18225
  }), EvictResultSchema, { kind: "mutation" });
18226
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18227
+ kind: "mutation",
18228
+ auth: "admin"
18229
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18230
+ kind: "mutation",
18231
+ auth: "admin"
18232
+ });
18134
18233
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18135
18234
  providerId: string().min(1),
18136
18235
  displayName: string().min(1),
@@ -18234,7 +18333,67 @@ var TerminalProfileInfoSchema = object({
18234
18333
  label: string(),
18235
18334
  description: string().optional()
18236
18335
  });
18237
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18336
+ /**
18337
+ * A durable operator-created Terminal instance. Profiles are templates; only
18338
+ * an instance declares a camera.
18339
+ */
18340
+ var TerminalInstanceInfoSchema = object({
18341
+ instanceId: string(),
18342
+ cameraStableId: string(),
18343
+ nodeId: string(),
18344
+ profileId: string(),
18345
+ profileLabel: string(),
18346
+ name: string(),
18347
+ enabled: boolean()
18348
+ });
18349
+ var TerminalLegacyCameraSchema = object({
18350
+ stableId: string(),
18351
+ nodeId: string(),
18352
+ profileId: string(),
18353
+ profileLabel: string(),
18354
+ name: string(),
18355
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18356
+ adoptable: boolean()
18357
+ });
18358
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18359
+ seq: number().int().positive(),
18360
+ kind: literal("data"),
18361
+ data: string()
18362
+ }), object({
18363
+ seq: number().int().positive(),
18364
+ kind: literal("exit"),
18365
+ exitCode: number().int(),
18366
+ signal: number().int().optional()
18367
+ })]);
18368
+ var TerminalOutputBatchSchema = object({
18369
+ cursor: number().int().nonnegative(),
18370
+ reset: boolean(),
18371
+ snapshot: string().optional(),
18372
+ events: array(TerminalOutputEventSchema).readonly()
18373
+ });
18374
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18375
+ targetNodeId: string().min(1),
18376
+ profileId: string().min(1),
18377
+ name: string().trim().min(1).max(160).optional()
18378
+ }), TerminalInstanceInfoSchema, {
18379
+ kind: "mutation",
18380
+ auth: "admin"
18381
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18382
+ kind: "mutation",
18383
+ auth: "admin"
18384
+ }), method(object({
18385
+ instanceId: string().min(1),
18386
+ enabled: boolean()
18387
+ }), TerminalInstanceInfoSchema, {
18388
+ kind: "mutation",
18389
+ auth: "admin"
18390
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18391
+ stableId: string().min(1),
18392
+ name: string().trim().min(1).max(160).optional()
18393
+ }), TerminalInstanceInfoSchema, {
18394
+ kind: "mutation",
18395
+ auth: "admin"
18396
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18238
18397
  profileId: string(),
18239
18398
  cols: number().int().positive(),
18240
18399
  rows: number().int().positive()
@@ -18248,6 +18407,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18248
18407
  }), _void(), {
18249
18408
  kind: "mutation",
18250
18409
  auth: "admin"
18410
+ }), method(object({
18411
+ sessionId: string(),
18412
+ afterSeq: number().int().nonnegative(),
18413
+ waitMs: number().int().min(0).max(2e3).default(0),
18414
+ /**
18415
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18416
+ * browser's initial repaint remains immediate; the camera snapshot
18417
+ * relay uses it to avoid encoding a blank startup frame.
18418
+ */
18419
+ waitForOutput: boolean().optional()
18420
+ }), TerminalOutputBatchSchema, {
18421
+ kind: "mutation",
18422
+ auth: "admin",
18423
+ timeoutMs: 15e3
18424
+ }), method(object({
18425
+ sessionId: string(),
18426
+ data: string().max(64 * 1024)
18427
+ }), _void(), {
18428
+ kind: "mutation",
18429
+ auth: "admin"
18251
18430
  }), method(object({ sessionId: string() }), _void(), {
18252
18431
  kind: "mutation",
18253
18432
  auth: "admin"
@@ -20201,6 +20380,7 @@ var FaceInfoSchema = object({
20201
20380
  var FaceFilterEnum = _enum([
20202
20381
  "unassigned",
20203
20382
  "recognized",
20383
+ "identified",
20204
20384
  "all"
20205
20385
  ]);
20206
20386
  var MediaFileLiteSchema$1 = object({
@@ -20229,6 +20409,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20229
20409
  kind: "mutation",
20230
20410
  auth: "admin"
20231
20411
  }), method(object({
20412
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20413
+ deviceId: number().int().optional(),
20232
20414
  limit: number().int().positive().optional(),
20233
20415
  filter: FaceFilterEnum.optional(),
20234
20416
  /**
@@ -21994,6 +22176,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
21994
22176
  capName: string().min(1).max(64),
21995
22177
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
21996
22178
  valuePath: string().min(1).max(64)
22179
+ }),
22180
+ object({
22181
+ kind: literal("latest-recognition"),
22182
+ recognition: _enum(["person", "plate"])
21997
22183
  })
21998
22184
  ]);
21999
22185
  var OsdSlotBindingSchema = object({
@@ -22099,6 +22285,15 @@ method(object({ deviceId: number().int() }), object({
22099
22285
  }), object({ success: literal(true) }), {
22100
22286
  kind: "mutation",
22101
22287
  auth: "admin"
22288
+ }), method(object({
22289
+ sourceDeviceId: number().int(),
22290
+ targetDeviceId: number().int()
22291
+ }), object({
22292
+ copied: number().int().nonnegative(),
22293
+ skipped: number().int().nonnegative()
22294
+ }), {
22295
+ kind: "mutation",
22296
+ auth: "admin"
22102
22297
  }), method(object({
22103
22298
  deviceId: number().int(),
22104
22299
  slotId: string().min(1),
@@ -22984,13 +23179,19 @@ method(object({
22984
23179
  }), {
22985
23180
  kind: "mutation",
22986
23181
  auth: "admin"
22987
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23182
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
22988
23183
  kind: "mutation",
22989
23184
  auth: "admin"
22990
- }), method(object({}), array(RelocateJobSchema).readonly(), {
22991
- kind: "query",
23185
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23186
+ kind: "mutation",
22992
23187
  auth: "admin"
22993
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23188
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23189
+ kind: "mutation",
23190
+ auth: "admin"
23191
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23192
+ kind: "mutation",
23193
+ auth: "admin"
23194
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
22994
23195
  kind: "mutation",
22995
23196
  auth: "admin"
22996
23197
  });
@@ -27112,6 +27313,12 @@ Object.freeze({
27112
27313
  addonId: null,
27113
27314
  access: "delete"
27114
27315
  },
27316
+ "osdManager.copyDeviceConfiguration": {
27317
+ capName: "osd-manager",
27318
+ capScope: "system",
27319
+ addonId: null,
27320
+ access: "create"
27321
+ },
27115
27322
  "osdManager.getConditionSupport": {
27116
27323
  capName: "osd-manager",
27117
27324
  capScope: "system",
@@ -27208,7 +27415,7 @@ Object.freeze({
27208
27415
  addonId: null,
27209
27416
  access: "create"
27210
27417
  },
27211
- "pipelineAnalytics.cancelMediaRelocate": {
27418
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27212
27419
  capName: "pipeline-analytics",
27213
27420
  capScope: "device",
27214
27421
  addonId: null,
@@ -27280,12 +27487,6 @@ Object.freeze({
27280
27487
  addonId: null,
27281
27488
  access: "view"
27282
27489
  },
27283
- "pipelineAnalytics.getMediaRelocateStatus": {
27284
- capName: "pipeline-analytics",
27285
- capScope: "device",
27286
- addonId: null,
27287
- access: "view"
27288
- },
27289
27490
  "pipelineAnalytics.getMotionEvents": {
27290
27491
  capName: "pipeline-analytics",
27291
27492
  capScope: "device",
@@ -27322,6 +27523,12 @@ Object.freeze({
27322
27523
  addonId: null,
27323
27524
  access: "view"
27324
27525
  },
27526
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27527
+ capName: "pipeline-analytics",
27528
+ capScope: "device",
27529
+ addonId: null,
27530
+ access: "view"
27531
+ },
27325
27532
  "pipelineAnalytics.getTrack": {
27326
27533
  capName: "pipeline-analytics",
27327
27534
  capScope: "device",
@@ -27400,6 +27607,12 @@ Object.freeze({
27400
27607
  addonId: null,
27401
27608
  access: "view"
27402
27609
  },
27610
+ "pipelineAnalytics.pauseForStorageMigration": {
27611
+ capName: "pipeline-analytics",
27612
+ capScope: "device",
27613
+ addonId: null,
27614
+ access: "create"
27615
+ },
27403
27616
  "pipelineAnalytics.proposeRetrainAnnotations": {
27404
27617
  capName: "pipeline-analytics",
27405
27618
  capScope: "device",
@@ -27430,7 +27643,7 @@ Object.freeze({
27430
27643
  addonId: null,
27431
27644
  access: "create"
27432
27645
  },
27433
- "pipelineAnalytics.relocateMedia": {
27646
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27434
27647
  capName: "pipeline-analytics",
27435
27648
  capScope: "device",
27436
27649
  addonId: null,
@@ -27442,6 +27655,12 @@ Object.freeze({
27442
27655
  addonId: null,
27443
27656
  access: "create"
27444
27657
  },
27658
+ "pipelineAnalytics.resumeForStorageMigration": {
27659
+ capName: "pipeline-analytics",
27660
+ capScope: "device",
27661
+ addonId: null,
27662
+ access: "create"
27663
+ },
27445
27664
  "pipelineAnalytics.saveRetrainAnnotations": {
27446
27665
  capName: "pipeline-analytics",
27447
27666
  capScope: "device",
@@ -27466,6 +27685,12 @@ Object.freeze({
27466
27685
  addonId: null,
27467
27686
  access: "create"
27468
27687
  },
27688
+ "pipelineAnalytics.startStorageMigrationMove": {
27689
+ capName: "pipeline-analytics",
27690
+ capScope: "device",
27691
+ addonId: null,
27692
+ access: "create"
27693
+ },
27469
27694
  "pipelineAnalytics.wipeAllAnalytics": {
27470
27695
  capName: "pipeline-analytics",
27471
27696
  capScope: "device",
@@ -27832,6 +28057,12 @@ Object.freeze({
27832
28057
  addonId: null,
27833
28058
  access: "view"
27834
28059
  },
28060
+ "pipelineOrchestrator.pauseForStorageMigration": {
28061
+ capName: "pipeline-orchestrator",
28062
+ capScope: "system",
28063
+ addonId: null,
28064
+ access: "create"
28065
+ },
27835
28066
  "pipelineOrchestrator.rebalance": {
27836
28067
  capName: "pipeline-orchestrator",
27837
28068
  capScope: "system",
@@ -27856,6 +28087,12 @@ Object.freeze({
27856
28087
  addonId: null,
27857
28088
  access: "view"
27858
28089
  },
28090
+ "pipelineOrchestrator.resumeForStorageMigration": {
28091
+ capName: "pipeline-orchestrator",
28092
+ capScope: "system",
28093
+ addonId: null,
28094
+ access: "create"
28095
+ },
27859
28096
  "pipelineOrchestrator.saveTemplate": {
27860
28097
  capName: "pipeline-orchestrator",
27861
28098
  capScope: "system",
@@ -28252,7 +28489,7 @@ Object.freeze({
28252
28489
  addonId: null,
28253
28490
  access: "create"
28254
28491
  },
28255
- "recording.cancelRelocate": {
28492
+ "recording.cancelStorageMigrationMove": {
28256
28493
  capName: "recording",
28257
28494
  capScope: "system",
28258
28495
  addonId: null,
@@ -28288,7 +28525,7 @@ Object.freeze({
28288
28525
  addonId: null,
28289
28526
  access: "view"
28290
28527
  },
28291
- "recording.getRelocateStatus": {
28528
+ "recording.getStorageMigrationMoveStatus": {
28292
28529
  capName: "recording",
28293
28530
  capScope: "system",
28294
28531
  addonId: null,
@@ -28312,6 +28549,12 @@ Object.freeze({
28312
28549
  addonId: null,
28313
28550
  access: "view"
28314
28551
  },
28552
+ "recording.pauseForStorageMigration": {
28553
+ capName: "recording",
28554
+ capScope: "system",
28555
+ addonId: null,
28556
+ access: "create"
28557
+ },
28315
28558
  "recording.pruneFootage": {
28316
28559
  capName: "recording",
28317
28560
  capScope: "system",
@@ -28330,7 +28573,7 @@ Object.freeze({
28330
28573
  addonId: null,
28331
28574
  access: "view"
28332
28575
  },
28333
- "recording.relocateFootage": {
28576
+ "recording.refreshStorageLocationsForMigration": {
28334
28577
  capName: "recording",
28335
28578
  capScope: "system",
28336
28579
  addonId: null,
@@ -28354,12 +28597,24 @@ Object.freeze({
28354
28597
  addonId: null,
28355
28598
  access: "create"
28356
28599
  },
28600
+ "recording.resumeForStorageMigration": {
28601
+ capName: "recording",
28602
+ capScope: "system",
28603
+ addonId: null,
28604
+ access: "create"
28605
+ },
28357
28606
  "recording.setDeviceConfig": {
28358
28607
  capName: "recording",
28359
28608
  capScope: "system",
28360
28609
  addonId: null,
28361
28610
  access: "create"
28362
28611
  },
28612
+ "recording.startStorageMigrationMove": {
28613
+ capName: "recording",
28614
+ capScope: "system",
28615
+ addonId: null,
28616
+ access: "create"
28617
+ },
28363
28618
  "recordingExport.cancelExport": {
28364
28619
  capName: "recordingExport",
28365
28620
  capScope: "system",
@@ -28750,6 +29005,30 @@ Object.freeze({
28750
29005
  addonId: null,
28751
29006
  access: "view"
28752
29007
  },
29008
+ "storageMigration.cancel": {
29009
+ capName: "storage-migration",
29010
+ capScope: "system",
29011
+ addonId: null,
29012
+ access: "create"
29013
+ },
29014
+ "storageMigration.plan": {
29015
+ capName: "storage-migration",
29016
+ capScope: "system",
29017
+ addonId: null,
29018
+ access: "view"
29019
+ },
29020
+ "storageMigration.start": {
29021
+ capName: "storage-migration",
29022
+ capScope: "system",
29023
+ addonId: null,
29024
+ access: "create"
29025
+ },
29026
+ "storageMigration.status": {
29027
+ capName: "storage-migration",
29028
+ capScope: "system",
29029
+ addonId: null,
29030
+ access: "view"
29031
+ },
28753
29032
  "storageProvider.abortUpload": {
28754
29033
  capName: "storage-provider",
28755
29034
  capScope: "system",
@@ -29128,12 +29407,42 @@ Object.freeze({
29128
29407
  addonId: null,
29129
29408
  access: "create"
29130
29409
  },
29410
+ "terminalSession.adoptLegacyMonitor": {
29411
+ capName: "terminal-session",
29412
+ capScope: "system",
29413
+ addonId: null,
29414
+ access: "create"
29415
+ },
29131
29416
  "terminalSession.close": {
29132
29417
  capName: "terminal-session",
29133
29418
  capScope: "system",
29134
29419
  addonId: null,
29135
29420
  access: "create"
29136
29421
  },
29422
+ "terminalSession.createInstance": {
29423
+ capName: "terminal-session",
29424
+ capScope: "system",
29425
+ addonId: null,
29426
+ access: "create"
29427
+ },
29428
+ "terminalSession.deleteInstance": {
29429
+ capName: "terminal-session",
29430
+ capScope: "system",
29431
+ addonId: null,
29432
+ access: "delete"
29433
+ },
29434
+ "terminalSession.listInstances": {
29435
+ capName: "terminal-session",
29436
+ capScope: "system",
29437
+ addonId: null,
29438
+ access: "view"
29439
+ },
29440
+ "terminalSession.listLegacyCameras": {
29441
+ capName: "terminal-session",
29442
+ capScope: "system",
29443
+ addonId: null,
29444
+ access: "view"
29445
+ },
29137
29446
  "terminalSession.listProfiles": {
29138
29447
  capName: "terminal-session",
29139
29448
  capScope: "system",
@@ -29152,12 +29461,30 @@ Object.freeze({
29152
29461
  addonId: null,
29153
29462
  access: "create"
29154
29463
  },
29464
+ "terminalSession.pullOutput": {
29465
+ capName: "terminal-session",
29466
+ capScope: "system",
29467
+ addonId: null,
29468
+ access: "create"
29469
+ },
29155
29470
  "terminalSession.resize": {
29156
29471
  capName: "terminal-session",
29157
29472
  capScope: "system",
29158
29473
  addonId: null,
29159
29474
  access: "create"
29160
29475
  },
29476
+ "terminalSession.setInstanceEnabled": {
29477
+ capName: "terminal-session",
29478
+ capScope: "system",
29479
+ addonId: null,
29480
+ access: "create"
29481
+ },
29482
+ "terminalSession.writeInput": {
29483
+ capName: "terminal-session",
29484
+ capScope: "system",
29485
+ addonId: null,
29486
+ access: "create"
29487
+ },
29161
29488
  "toast.onToast": {
29162
29489
  capName: "toast",
29163
29490
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-static-turn",
3
- "version": "1.2.10",
3
+ "version": "1.2.12",
4
4
  "description": "Static / self-hosted (coturn) TURN provider for CamStack",
5
5
  "keywords": [
6
6
  "camstack",