@camstack/addon-mqtt-broker 1.2.11 → 1.2.13

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.
@@ -7580,12 +7580,11 @@ var RecordingConfigSchema = object({
7580
7580
  /**
7581
7581
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7582
7582
  *
7583
- * One shape shared by the recorder's `relocateFootage` (segments) and
7584
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7585
- * page renders both movers with one component. Jobs are in-RAM (a restart
7586
- * forgets them re-running is safe by construction: copy-if-absent, delete
7587
- * after verify) and each completed/failed run also lands one durable ops-log
7588
- * row on the owning addon's surface.
7583
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7584
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7585
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7586
+ * Each completed/failed run also lands one durable ops-log row on its owning
7587
+ * addon surface.
7589
7588
  */
7590
7589
  var RelocateJobStateSchema = _enum([
7591
7590
  "running",
@@ -7612,19 +7611,100 @@ var RelocateJobSchema = object({
7612
7611
  finishedAt: number().nullable(),
7613
7612
  error: string().nullable()
7614
7613
  });
7614
+ /** Profile-derived footage selection used only by the migration coordinator:
7615
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7616
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7615
7617
  var RelocateFootageInputSchema = object({
7616
- deviceId: number().optional(),
7617
7618
  fromLocationId: string(),
7618
7619
  toLocationId: string(),
7619
7620
  entities: array(_enum(["segments"])).optional(),
7621
+ /** Limits relocation to the logical profile class. Omit only for the
7622
+ * pre-orchestration compatibility path. */
7623
+ footageClass: RelocateFootageClassSchema.optional(),
7620
7624
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7621
7625
  * never allowed to starve live writers. */
7622
7626
  throttleMbps: number().min(1).max(1e3).optional()
7623
7627
  });
7624
- var RelocateMediaInputSchema = object({
7625
- deviceId: number().optional(),
7628
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7629
+ * from persistent recording settings: a migration never changes
7630
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7631
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7632
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7633
+ var StorageMigrationMediaMoveInputSchema = object({
7626
7634
  toLocationId: string(),
7627
7635
  throttleMbps: number().min(1).max(1e3).optional()
7636
+ }).extend({ leaseId: string().min(1) });
7637
+ /** The independently selectable logical storage classes. `recordings`
7638
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7639
+ * segments; `eventMedia` is post-analysis blobs. */
7640
+ var StorageMigrationClassSchema = _enum([
7641
+ "recordings",
7642
+ "recordingsLow",
7643
+ "eventMedia"
7644
+ ]);
7645
+ /** A destination is always an existing, fully-qualified location id. The
7646
+ * migration API intentionally never changes a source location's `basePath`:
7647
+ * callers create a new `<type>:<slug>` location, then select it here. */
7648
+ var StorageMigrationDestinationsSchema = object({
7649
+ recordings: string().min(1).optional(),
7650
+ recordingsLow: string().min(1).optional(),
7651
+ eventMedia: string().min(1).optional()
7652
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7653
+ /** Shared input for planning and starting an orchestrated storage migration. */
7654
+ var StorageMigrationInputSchema = object({
7655
+ destinations: StorageMigrationDestinationsSchema,
7656
+ throttleMbps: number().min(1).max(1e3).optional()
7657
+ });
7658
+ /** The durable coordinator state machine. The only phase that changes default
7659
+ * locations is `repointing`, after every selected mover has completed and been
7660
+ * verified. */
7661
+ var StorageMigrationPhaseSchema = _enum([
7662
+ "planning",
7663
+ "pausing",
7664
+ "moving",
7665
+ "verifying",
7666
+ "repointing",
7667
+ "refreshing",
7668
+ "resuming",
7669
+ "done",
7670
+ "failed",
7671
+ "cancelled"
7672
+ ]);
7673
+ var StorageMigrationParticipantSchema = _enum([
7674
+ "pipeline",
7675
+ "recorder",
7676
+ "analytics"
7677
+ ]);
7678
+ var StorageMigrationMoveSchema = object({
7679
+ storageClass: StorageMigrationClassSchema,
7680
+ fromLocationId: string(),
7681
+ toLocationId: string(),
7682
+ moverJobId: string().nullable(),
7683
+ state: RelocateJobStateSchema.nullable(),
7684
+ error: string().nullable()
7685
+ });
7686
+ var StorageMigrationJobSchema = object({
7687
+ jobId: string(),
7688
+ phase: StorageMigrationPhaseSchema,
7689
+ destinations: StorageMigrationDestinationsSchema,
7690
+ throttleMbps: number(),
7691
+ moves: array(StorageMigrationMoveSchema),
7692
+ pauseLeaseId: string().nullable(),
7693
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7694
+ repointed: boolean(),
7695
+ cancelRequested: boolean(),
7696
+ startedAt: number(),
7697
+ updatedAt: number(),
7698
+ finishedAt: number().nullable(),
7699
+ error: string().nullable()
7700
+ });
7701
+ var StorageMigrationPlanSchema = object({
7702
+ destinations: StorageMigrationDestinationsSchema,
7703
+ moves: array(object({
7704
+ storageClass: StorageMigrationClassSchema,
7705
+ fromLocationId: string(),
7706
+ toLocationId: string()
7707
+ }))
7628
7708
  });
7629
7709
  /**
7630
7710
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16068,13 +16148,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16068
16148
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16069
16149
  kind: "mutation",
16070
16150
  auth: "admin"
16071
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16151
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16072
16152
  kind: "mutation",
16073
16153
  auth: "admin"
16074
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16075
- kind: "query",
16154
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16155
+ kind: "mutation",
16076
16156
  auth: "admin"
16077
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16157
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16158
+ kind: "mutation",
16159
+ auth: "admin"
16160
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16161
+ kind: "mutation",
16162
+ auth: "admin"
16163
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16078
16164
  kind: "mutation",
16079
16165
  auth: "admin"
16080
16166
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17571,7 +17657,13 @@ var NodeInferenceDevicesSchema = object({
17571
17657
  reachable: boolean(),
17572
17658
  devices: array(NodeInferenceDeviceSchema).readonly()
17573
17659
  });
17574
- method(object({
17660
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17661
+ kind: "mutation",
17662
+ auth: "admin"
17663
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17664
+ kind: "mutation",
17665
+ auth: "admin"
17666
+ }), method(object({
17575
17667
  deviceId: number(),
17576
17668
  agentNodeId: string()
17577
17669
  }), object({ success: literal(true) }), {
@@ -18245,6 +18337,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18245
18337
  locationId: string(),
18246
18338
  targetBytes: number().int().positive()
18247
18339
  }), EvictResultSchema, { kind: "mutation" });
18340
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18341
+ kind: "mutation",
18342
+ auth: "admin"
18343
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18344
+ kind: "mutation",
18345
+ auth: "admin"
18346
+ });
18248
18347
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18249
18348
  providerId: string().min(1),
18250
18349
  displayName: string().min(1),
@@ -18348,7 +18447,67 @@ var TerminalProfileInfoSchema = object({
18348
18447
  label: string(),
18349
18448
  description: string().optional()
18350
18449
  });
18351
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18450
+ /**
18451
+ * A durable operator-created Terminal instance. Profiles are templates; only
18452
+ * an instance declares a camera.
18453
+ */
18454
+ var TerminalInstanceInfoSchema = object({
18455
+ instanceId: string(),
18456
+ cameraStableId: string(),
18457
+ nodeId: string(),
18458
+ profileId: string(),
18459
+ profileLabel: string(),
18460
+ name: string(),
18461
+ enabled: boolean()
18462
+ });
18463
+ var TerminalLegacyCameraSchema = object({
18464
+ stableId: string(),
18465
+ nodeId: string(),
18466
+ profileId: string(),
18467
+ profileLabel: string(),
18468
+ name: string(),
18469
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18470
+ adoptable: boolean()
18471
+ });
18472
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18473
+ seq: number().int().positive(),
18474
+ kind: literal("data"),
18475
+ data: string()
18476
+ }), object({
18477
+ seq: number().int().positive(),
18478
+ kind: literal("exit"),
18479
+ exitCode: number().int(),
18480
+ signal: number().int().optional()
18481
+ })]);
18482
+ var TerminalOutputBatchSchema = object({
18483
+ cursor: number().int().nonnegative(),
18484
+ reset: boolean(),
18485
+ snapshot: string().optional(),
18486
+ events: array(TerminalOutputEventSchema).readonly()
18487
+ });
18488
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18489
+ targetNodeId: string().min(1),
18490
+ profileId: string().min(1),
18491
+ name: string().trim().min(1).max(160).optional()
18492
+ }), TerminalInstanceInfoSchema, {
18493
+ kind: "mutation",
18494
+ auth: "admin"
18495
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18496
+ kind: "mutation",
18497
+ auth: "admin"
18498
+ }), method(object({
18499
+ instanceId: string().min(1),
18500
+ enabled: boolean()
18501
+ }), TerminalInstanceInfoSchema, {
18502
+ kind: "mutation",
18503
+ auth: "admin"
18504
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18505
+ stableId: string().min(1),
18506
+ name: string().trim().min(1).max(160).optional()
18507
+ }), TerminalInstanceInfoSchema, {
18508
+ kind: "mutation",
18509
+ auth: "admin"
18510
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18352
18511
  profileId: string(),
18353
18512
  cols: number().int().positive(),
18354
18513
  rows: number().int().positive()
@@ -18362,6 +18521,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18362
18521
  }), _void(), {
18363
18522
  kind: "mutation",
18364
18523
  auth: "admin"
18524
+ }), method(object({
18525
+ sessionId: string(),
18526
+ afterSeq: number().int().nonnegative(),
18527
+ waitMs: number().int().min(0).max(2e3).default(0),
18528
+ /**
18529
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18530
+ * browser's initial repaint remains immediate; the camera snapshot
18531
+ * relay uses it to avoid encoding a blank startup frame.
18532
+ */
18533
+ waitForOutput: boolean().optional()
18534
+ }), TerminalOutputBatchSchema, {
18535
+ kind: "mutation",
18536
+ auth: "admin",
18537
+ timeoutMs: 15e3
18538
+ }), method(object({
18539
+ sessionId: string(),
18540
+ data: string().max(64 * 1024)
18541
+ }), _void(), {
18542
+ kind: "mutation",
18543
+ auth: "admin"
18365
18544
  }), method(object({ sessionId: string() }), _void(), {
18366
18545
  kind: "mutation",
18367
18546
  auth: "admin"
@@ -20292,6 +20471,7 @@ var FaceInfoSchema = object({
20292
20471
  var FaceFilterEnum = _enum([
20293
20472
  "unassigned",
20294
20473
  "recognized",
20474
+ "identified",
20295
20475
  "all"
20296
20476
  ]);
20297
20477
  var MediaFileLiteSchema$1 = object({
@@ -20320,6 +20500,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20320
20500
  kind: "mutation",
20321
20501
  auth: "admin"
20322
20502
  }), method(object({
20503
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20504
+ deviceId: number().int().optional(),
20323
20505
  limit: number().int().positive().optional(),
20324
20506
  filter: FaceFilterEnum.optional(),
20325
20507
  /**
@@ -22085,6 +22267,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22085
22267
  capName: string().min(1).max(64),
22086
22268
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22087
22269
  valuePath: string().min(1).max(64)
22270
+ }),
22271
+ object({
22272
+ kind: literal("latest-recognition"),
22273
+ recognition: _enum(["person", "plate"])
22088
22274
  })
22089
22275
  ]);
22090
22276
  var OsdSlotBindingSchema = object({
@@ -22190,6 +22376,15 @@ method(object({ deviceId: number().int() }), object({
22190
22376
  }), object({ success: literal(true) }), {
22191
22377
  kind: "mutation",
22192
22378
  auth: "admin"
22379
+ }), method(object({
22380
+ sourceDeviceId: number().int(),
22381
+ targetDeviceId: number().int()
22382
+ }), object({
22383
+ copied: number().int().nonnegative(),
22384
+ skipped: number().int().nonnegative()
22385
+ }), {
22386
+ kind: "mutation",
22387
+ auth: "admin"
22193
22388
  }), method(object({
22194
22389
  deviceId: number().int(),
22195
22390
  slotId: string().min(1),
@@ -23075,13 +23270,19 @@ method(object({
23075
23270
  }), {
23076
23271
  kind: "mutation",
23077
23272
  auth: "admin"
23078
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23273
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23079
23274
  kind: "mutation",
23080
23275
  auth: "admin"
23081
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23082
- kind: "query",
23276
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23277
+ kind: "mutation",
23083
23278
  auth: "admin"
23084
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23279
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23280
+ kind: "mutation",
23281
+ auth: "admin"
23282
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23283
+ kind: "mutation",
23284
+ auth: "admin"
23285
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23085
23286
  kind: "mutation",
23086
23287
  auth: "admin"
23087
23288
  });
@@ -27203,6 +27404,12 @@ Object.freeze({
27203
27404
  addonId: null,
27204
27405
  access: "delete"
27205
27406
  },
27407
+ "osdManager.copyDeviceConfiguration": {
27408
+ capName: "osd-manager",
27409
+ capScope: "system",
27410
+ addonId: null,
27411
+ access: "create"
27412
+ },
27206
27413
  "osdManager.getConditionSupport": {
27207
27414
  capName: "osd-manager",
27208
27415
  capScope: "system",
@@ -27299,7 +27506,7 @@ Object.freeze({
27299
27506
  addonId: null,
27300
27507
  access: "create"
27301
27508
  },
27302
- "pipelineAnalytics.cancelMediaRelocate": {
27509
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27303
27510
  capName: "pipeline-analytics",
27304
27511
  capScope: "device",
27305
27512
  addonId: null,
@@ -27371,12 +27578,6 @@ Object.freeze({
27371
27578
  addonId: null,
27372
27579
  access: "view"
27373
27580
  },
27374
- "pipelineAnalytics.getMediaRelocateStatus": {
27375
- capName: "pipeline-analytics",
27376
- capScope: "device",
27377
- addonId: null,
27378
- access: "view"
27379
- },
27380
27581
  "pipelineAnalytics.getMotionEvents": {
27381
27582
  capName: "pipeline-analytics",
27382
27583
  capScope: "device",
@@ -27413,6 +27614,12 @@ Object.freeze({
27413
27614
  addonId: null,
27414
27615
  access: "view"
27415
27616
  },
27617
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27618
+ capName: "pipeline-analytics",
27619
+ capScope: "device",
27620
+ addonId: null,
27621
+ access: "view"
27622
+ },
27416
27623
  "pipelineAnalytics.getTrack": {
27417
27624
  capName: "pipeline-analytics",
27418
27625
  capScope: "device",
@@ -27491,6 +27698,12 @@ Object.freeze({
27491
27698
  addonId: null,
27492
27699
  access: "view"
27493
27700
  },
27701
+ "pipelineAnalytics.pauseForStorageMigration": {
27702
+ capName: "pipeline-analytics",
27703
+ capScope: "device",
27704
+ addonId: null,
27705
+ access: "create"
27706
+ },
27494
27707
  "pipelineAnalytics.proposeRetrainAnnotations": {
27495
27708
  capName: "pipeline-analytics",
27496
27709
  capScope: "device",
@@ -27521,7 +27734,7 @@ Object.freeze({
27521
27734
  addonId: null,
27522
27735
  access: "create"
27523
27736
  },
27524
- "pipelineAnalytics.relocateMedia": {
27737
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27525
27738
  capName: "pipeline-analytics",
27526
27739
  capScope: "device",
27527
27740
  addonId: null,
@@ -27533,6 +27746,12 @@ Object.freeze({
27533
27746
  addonId: null,
27534
27747
  access: "create"
27535
27748
  },
27749
+ "pipelineAnalytics.resumeForStorageMigration": {
27750
+ capName: "pipeline-analytics",
27751
+ capScope: "device",
27752
+ addonId: null,
27753
+ access: "create"
27754
+ },
27536
27755
  "pipelineAnalytics.saveRetrainAnnotations": {
27537
27756
  capName: "pipeline-analytics",
27538
27757
  capScope: "device",
@@ -27557,6 +27776,12 @@ Object.freeze({
27557
27776
  addonId: null,
27558
27777
  access: "create"
27559
27778
  },
27779
+ "pipelineAnalytics.startStorageMigrationMove": {
27780
+ capName: "pipeline-analytics",
27781
+ capScope: "device",
27782
+ addonId: null,
27783
+ access: "create"
27784
+ },
27560
27785
  "pipelineAnalytics.wipeAllAnalytics": {
27561
27786
  capName: "pipeline-analytics",
27562
27787
  capScope: "device",
@@ -27923,6 +28148,12 @@ Object.freeze({
27923
28148
  addonId: null,
27924
28149
  access: "view"
27925
28150
  },
28151
+ "pipelineOrchestrator.pauseForStorageMigration": {
28152
+ capName: "pipeline-orchestrator",
28153
+ capScope: "system",
28154
+ addonId: null,
28155
+ access: "create"
28156
+ },
27926
28157
  "pipelineOrchestrator.rebalance": {
27927
28158
  capName: "pipeline-orchestrator",
27928
28159
  capScope: "system",
@@ -27947,6 +28178,12 @@ Object.freeze({
27947
28178
  addonId: null,
27948
28179
  access: "view"
27949
28180
  },
28181
+ "pipelineOrchestrator.resumeForStorageMigration": {
28182
+ capName: "pipeline-orchestrator",
28183
+ capScope: "system",
28184
+ addonId: null,
28185
+ access: "create"
28186
+ },
27950
28187
  "pipelineOrchestrator.saveTemplate": {
27951
28188
  capName: "pipeline-orchestrator",
27952
28189
  capScope: "system",
@@ -28343,7 +28580,7 @@ Object.freeze({
28343
28580
  addonId: null,
28344
28581
  access: "create"
28345
28582
  },
28346
- "recording.cancelRelocate": {
28583
+ "recording.cancelStorageMigrationMove": {
28347
28584
  capName: "recording",
28348
28585
  capScope: "system",
28349
28586
  addonId: null,
@@ -28379,7 +28616,7 @@ Object.freeze({
28379
28616
  addonId: null,
28380
28617
  access: "view"
28381
28618
  },
28382
- "recording.getRelocateStatus": {
28619
+ "recording.getStorageMigrationMoveStatus": {
28383
28620
  capName: "recording",
28384
28621
  capScope: "system",
28385
28622
  addonId: null,
@@ -28403,6 +28640,12 @@ Object.freeze({
28403
28640
  addonId: null,
28404
28641
  access: "view"
28405
28642
  },
28643
+ "recording.pauseForStorageMigration": {
28644
+ capName: "recording",
28645
+ capScope: "system",
28646
+ addonId: null,
28647
+ access: "create"
28648
+ },
28406
28649
  "recording.pruneFootage": {
28407
28650
  capName: "recording",
28408
28651
  capScope: "system",
@@ -28421,7 +28664,7 @@ Object.freeze({
28421
28664
  addonId: null,
28422
28665
  access: "view"
28423
28666
  },
28424
- "recording.relocateFootage": {
28667
+ "recording.refreshStorageLocationsForMigration": {
28425
28668
  capName: "recording",
28426
28669
  capScope: "system",
28427
28670
  addonId: null,
@@ -28445,12 +28688,24 @@ Object.freeze({
28445
28688
  addonId: null,
28446
28689
  access: "create"
28447
28690
  },
28691
+ "recording.resumeForStorageMigration": {
28692
+ capName: "recording",
28693
+ capScope: "system",
28694
+ addonId: null,
28695
+ access: "create"
28696
+ },
28448
28697
  "recording.setDeviceConfig": {
28449
28698
  capName: "recording",
28450
28699
  capScope: "system",
28451
28700
  addonId: null,
28452
28701
  access: "create"
28453
28702
  },
28703
+ "recording.startStorageMigrationMove": {
28704
+ capName: "recording",
28705
+ capScope: "system",
28706
+ addonId: null,
28707
+ access: "create"
28708
+ },
28454
28709
  "recordingExport.cancelExport": {
28455
28710
  capName: "recordingExport",
28456
28711
  capScope: "system",
@@ -28841,6 +29096,30 @@ Object.freeze({
28841
29096
  addonId: null,
28842
29097
  access: "view"
28843
29098
  },
29099
+ "storageMigration.cancel": {
29100
+ capName: "storage-migration",
29101
+ capScope: "system",
29102
+ addonId: null,
29103
+ access: "create"
29104
+ },
29105
+ "storageMigration.plan": {
29106
+ capName: "storage-migration",
29107
+ capScope: "system",
29108
+ addonId: null,
29109
+ access: "view"
29110
+ },
29111
+ "storageMigration.start": {
29112
+ capName: "storage-migration",
29113
+ capScope: "system",
29114
+ addonId: null,
29115
+ access: "create"
29116
+ },
29117
+ "storageMigration.status": {
29118
+ capName: "storage-migration",
29119
+ capScope: "system",
29120
+ addonId: null,
29121
+ access: "view"
29122
+ },
28844
29123
  "storageProvider.abortUpload": {
28845
29124
  capName: "storage-provider",
28846
29125
  capScope: "system",
@@ -29219,12 +29498,42 @@ Object.freeze({
29219
29498
  addonId: null,
29220
29499
  access: "create"
29221
29500
  },
29501
+ "terminalSession.adoptLegacyMonitor": {
29502
+ capName: "terminal-session",
29503
+ capScope: "system",
29504
+ addonId: null,
29505
+ access: "create"
29506
+ },
29222
29507
  "terminalSession.close": {
29223
29508
  capName: "terminal-session",
29224
29509
  capScope: "system",
29225
29510
  addonId: null,
29226
29511
  access: "create"
29227
29512
  },
29513
+ "terminalSession.createInstance": {
29514
+ capName: "terminal-session",
29515
+ capScope: "system",
29516
+ addonId: null,
29517
+ access: "create"
29518
+ },
29519
+ "terminalSession.deleteInstance": {
29520
+ capName: "terminal-session",
29521
+ capScope: "system",
29522
+ addonId: null,
29523
+ access: "delete"
29524
+ },
29525
+ "terminalSession.listInstances": {
29526
+ capName: "terminal-session",
29527
+ capScope: "system",
29528
+ addonId: null,
29529
+ access: "view"
29530
+ },
29531
+ "terminalSession.listLegacyCameras": {
29532
+ capName: "terminal-session",
29533
+ capScope: "system",
29534
+ addonId: null,
29535
+ access: "view"
29536
+ },
29228
29537
  "terminalSession.listProfiles": {
29229
29538
  capName: "terminal-session",
29230
29539
  capScope: "system",
@@ -29243,12 +29552,30 @@ Object.freeze({
29243
29552
  addonId: null,
29244
29553
  access: "create"
29245
29554
  },
29555
+ "terminalSession.pullOutput": {
29556
+ capName: "terminal-session",
29557
+ capScope: "system",
29558
+ addonId: null,
29559
+ access: "create"
29560
+ },
29246
29561
  "terminalSession.resize": {
29247
29562
  capName: "terminal-session",
29248
29563
  capScope: "system",
29249
29564
  addonId: null,
29250
29565
  access: "create"
29251
29566
  },
29567
+ "terminalSession.setInstanceEnabled": {
29568
+ capName: "terminal-session",
29569
+ capScope: "system",
29570
+ addonId: null,
29571
+ access: "create"
29572
+ },
29573
+ "terminalSession.writeInput": {
29574
+ capName: "terminal-session",
29575
+ capScope: "system",
29576
+ addonId: null,
29577
+ access: "create"
29578
+ },
29252
29579
  "toast.onToast": {
29253
29580
  capName: "toast",
29254
29581
  capScope: "system",
@@ -7575,12 +7575,11 @@ var RecordingConfigSchema = object({
7575
7575
  /**
7576
7576
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7577
7577
  *
7578
- * One shape shared by the recorder's `relocateFootage` (segments) and
7579
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7580
- * page renders both movers with one component. Jobs are in-RAM (a restart
7581
- * forgets them re-running is safe by construction: copy-if-absent, delete
7582
- * after verify) and each completed/failed run also lands one durable ops-log
7583
- * row on the owning addon's surface.
7578
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7579
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7580
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7581
+ * Each completed/failed run also lands one durable ops-log row on its owning
7582
+ * addon surface.
7584
7583
  */
7585
7584
  var RelocateJobStateSchema = _enum([
7586
7585
  "running",
@@ -7607,19 +7606,100 @@ var RelocateJobSchema = object({
7607
7606
  finishedAt: number().nullable(),
7608
7607
  error: string().nullable()
7609
7608
  });
7609
+ /** Profile-derived footage selection used only by the migration coordinator:
7610
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7611
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7610
7612
  var RelocateFootageInputSchema = object({
7611
- deviceId: number().optional(),
7612
7613
  fromLocationId: string(),
7613
7614
  toLocationId: string(),
7614
7615
  entities: array(_enum(["segments"])).optional(),
7616
+ /** Limits relocation to the logical profile class. Omit only for the
7617
+ * pre-orchestration compatibility path. */
7618
+ footageClass: RelocateFootageClassSchema.optional(),
7615
7619
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7616
7620
  * never allowed to starve live writers. */
7617
7621
  throttleMbps: number().min(1).max(1e3).optional()
7618
7622
  });
7619
- var RelocateMediaInputSchema = object({
7620
- deviceId: number().optional(),
7623
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7624
+ * from persistent recording settings: a migration never changes
7625
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7626
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7627
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7628
+ var StorageMigrationMediaMoveInputSchema = object({
7621
7629
  toLocationId: string(),
7622
7630
  throttleMbps: number().min(1).max(1e3).optional()
7631
+ }).extend({ leaseId: string().min(1) });
7632
+ /** The independently selectable logical storage classes. `recordings`
7633
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7634
+ * segments; `eventMedia` is post-analysis blobs. */
7635
+ var StorageMigrationClassSchema = _enum([
7636
+ "recordings",
7637
+ "recordingsLow",
7638
+ "eventMedia"
7639
+ ]);
7640
+ /** A destination is always an existing, fully-qualified location id. The
7641
+ * migration API intentionally never changes a source location's `basePath`:
7642
+ * callers create a new `<type>:<slug>` location, then select it here. */
7643
+ var StorageMigrationDestinationsSchema = object({
7644
+ recordings: string().min(1).optional(),
7645
+ recordingsLow: string().min(1).optional(),
7646
+ eventMedia: string().min(1).optional()
7647
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7648
+ /** Shared input for planning and starting an orchestrated storage migration. */
7649
+ var StorageMigrationInputSchema = object({
7650
+ destinations: StorageMigrationDestinationsSchema,
7651
+ throttleMbps: number().min(1).max(1e3).optional()
7652
+ });
7653
+ /** The durable coordinator state machine. The only phase that changes default
7654
+ * locations is `repointing`, after every selected mover has completed and been
7655
+ * verified. */
7656
+ var StorageMigrationPhaseSchema = _enum([
7657
+ "planning",
7658
+ "pausing",
7659
+ "moving",
7660
+ "verifying",
7661
+ "repointing",
7662
+ "refreshing",
7663
+ "resuming",
7664
+ "done",
7665
+ "failed",
7666
+ "cancelled"
7667
+ ]);
7668
+ var StorageMigrationParticipantSchema = _enum([
7669
+ "pipeline",
7670
+ "recorder",
7671
+ "analytics"
7672
+ ]);
7673
+ var StorageMigrationMoveSchema = object({
7674
+ storageClass: StorageMigrationClassSchema,
7675
+ fromLocationId: string(),
7676
+ toLocationId: string(),
7677
+ moverJobId: string().nullable(),
7678
+ state: RelocateJobStateSchema.nullable(),
7679
+ error: string().nullable()
7680
+ });
7681
+ var StorageMigrationJobSchema = object({
7682
+ jobId: string(),
7683
+ phase: StorageMigrationPhaseSchema,
7684
+ destinations: StorageMigrationDestinationsSchema,
7685
+ throttleMbps: number(),
7686
+ moves: array(StorageMigrationMoveSchema),
7687
+ pauseLeaseId: string().nullable(),
7688
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7689
+ repointed: boolean(),
7690
+ cancelRequested: boolean(),
7691
+ startedAt: number(),
7692
+ updatedAt: number(),
7693
+ finishedAt: number().nullable(),
7694
+ error: string().nullable()
7695
+ });
7696
+ var StorageMigrationPlanSchema = object({
7697
+ destinations: StorageMigrationDestinationsSchema,
7698
+ moves: array(object({
7699
+ storageClass: StorageMigrationClassSchema,
7700
+ fromLocationId: string(),
7701
+ toLocationId: string()
7702
+ }))
7623
7703
  });
7624
7704
  /**
7625
7705
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16063,13 +16143,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16063
16143
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16064
16144
  kind: "mutation",
16065
16145
  auth: "admin"
16066
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16146
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16067
16147
  kind: "mutation",
16068
16148
  auth: "admin"
16069
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16070
- kind: "query",
16149
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16150
+ kind: "mutation",
16071
16151
  auth: "admin"
16072
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16152
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16153
+ kind: "mutation",
16154
+ auth: "admin"
16155
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16156
+ kind: "mutation",
16157
+ auth: "admin"
16158
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16073
16159
  kind: "mutation",
16074
16160
  auth: "admin"
16075
16161
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17566,7 +17652,13 @@ var NodeInferenceDevicesSchema = object({
17566
17652
  reachable: boolean(),
17567
17653
  devices: array(NodeInferenceDeviceSchema).readonly()
17568
17654
  });
17569
- method(object({
17655
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17656
+ kind: "mutation",
17657
+ auth: "admin"
17658
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17659
+ kind: "mutation",
17660
+ auth: "admin"
17661
+ }), method(object({
17570
17662
  deviceId: number(),
17571
17663
  agentNodeId: string()
17572
17664
  }), object({ success: literal(true) }), {
@@ -18240,6 +18332,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18240
18332
  locationId: string(),
18241
18333
  targetBytes: number().int().positive()
18242
18334
  }), EvictResultSchema, { kind: "mutation" });
18335
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18336
+ kind: "mutation",
18337
+ auth: "admin"
18338
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18339
+ kind: "mutation",
18340
+ auth: "admin"
18341
+ });
18243
18342
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18244
18343
  providerId: string().min(1),
18245
18344
  displayName: string().min(1),
@@ -18343,7 +18442,67 @@ var TerminalProfileInfoSchema = object({
18343
18442
  label: string(),
18344
18443
  description: string().optional()
18345
18444
  });
18346
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18445
+ /**
18446
+ * A durable operator-created Terminal instance. Profiles are templates; only
18447
+ * an instance declares a camera.
18448
+ */
18449
+ var TerminalInstanceInfoSchema = object({
18450
+ instanceId: string(),
18451
+ cameraStableId: string(),
18452
+ nodeId: string(),
18453
+ profileId: string(),
18454
+ profileLabel: string(),
18455
+ name: string(),
18456
+ enabled: boolean()
18457
+ });
18458
+ var TerminalLegacyCameraSchema = object({
18459
+ stableId: string(),
18460
+ nodeId: string(),
18461
+ profileId: string(),
18462
+ profileLabel: string(),
18463
+ name: string(),
18464
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18465
+ adoptable: boolean()
18466
+ });
18467
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18468
+ seq: number().int().positive(),
18469
+ kind: literal("data"),
18470
+ data: string()
18471
+ }), object({
18472
+ seq: number().int().positive(),
18473
+ kind: literal("exit"),
18474
+ exitCode: number().int(),
18475
+ signal: number().int().optional()
18476
+ })]);
18477
+ var TerminalOutputBatchSchema = object({
18478
+ cursor: number().int().nonnegative(),
18479
+ reset: boolean(),
18480
+ snapshot: string().optional(),
18481
+ events: array(TerminalOutputEventSchema).readonly()
18482
+ });
18483
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18484
+ targetNodeId: string().min(1),
18485
+ profileId: string().min(1),
18486
+ name: string().trim().min(1).max(160).optional()
18487
+ }), TerminalInstanceInfoSchema, {
18488
+ kind: "mutation",
18489
+ auth: "admin"
18490
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18491
+ kind: "mutation",
18492
+ auth: "admin"
18493
+ }), method(object({
18494
+ instanceId: string().min(1),
18495
+ enabled: boolean()
18496
+ }), TerminalInstanceInfoSchema, {
18497
+ kind: "mutation",
18498
+ auth: "admin"
18499
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18500
+ stableId: string().min(1),
18501
+ name: string().trim().min(1).max(160).optional()
18502
+ }), TerminalInstanceInfoSchema, {
18503
+ kind: "mutation",
18504
+ auth: "admin"
18505
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18347
18506
  profileId: string(),
18348
18507
  cols: number().int().positive(),
18349
18508
  rows: number().int().positive()
@@ -18357,6 +18516,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18357
18516
  }), _void(), {
18358
18517
  kind: "mutation",
18359
18518
  auth: "admin"
18519
+ }), method(object({
18520
+ sessionId: string(),
18521
+ afterSeq: number().int().nonnegative(),
18522
+ waitMs: number().int().min(0).max(2e3).default(0),
18523
+ /**
18524
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18525
+ * browser's initial repaint remains immediate; the camera snapshot
18526
+ * relay uses it to avoid encoding a blank startup frame.
18527
+ */
18528
+ waitForOutput: boolean().optional()
18529
+ }), TerminalOutputBatchSchema, {
18530
+ kind: "mutation",
18531
+ auth: "admin",
18532
+ timeoutMs: 15e3
18533
+ }), method(object({
18534
+ sessionId: string(),
18535
+ data: string().max(64 * 1024)
18536
+ }), _void(), {
18537
+ kind: "mutation",
18538
+ auth: "admin"
18360
18539
  }), method(object({ sessionId: string() }), _void(), {
18361
18540
  kind: "mutation",
18362
18541
  auth: "admin"
@@ -20287,6 +20466,7 @@ var FaceInfoSchema = object({
20287
20466
  var FaceFilterEnum = _enum([
20288
20467
  "unassigned",
20289
20468
  "recognized",
20469
+ "identified",
20290
20470
  "all"
20291
20471
  ]);
20292
20472
  var MediaFileLiteSchema$1 = object({
@@ -20315,6 +20495,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20315
20495
  kind: "mutation",
20316
20496
  auth: "admin"
20317
20497
  }), method(object({
20498
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20499
+ deviceId: number().int().optional(),
20318
20500
  limit: number().int().positive().optional(),
20319
20501
  filter: FaceFilterEnum.optional(),
20320
20502
  /**
@@ -22080,6 +22262,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22080
22262
  capName: string().min(1).max(64),
22081
22263
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22082
22264
  valuePath: string().min(1).max(64)
22265
+ }),
22266
+ object({
22267
+ kind: literal("latest-recognition"),
22268
+ recognition: _enum(["person", "plate"])
22083
22269
  })
22084
22270
  ]);
22085
22271
  var OsdSlotBindingSchema = object({
@@ -22185,6 +22371,15 @@ method(object({ deviceId: number().int() }), object({
22185
22371
  }), object({ success: literal(true) }), {
22186
22372
  kind: "mutation",
22187
22373
  auth: "admin"
22374
+ }), method(object({
22375
+ sourceDeviceId: number().int(),
22376
+ targetDeviceId: number().int()
22377
+ }), object({
22378
+ copied: number().int().nonnegative(),
22379
+ skipped: number().int().nonnegative()
22380
+ }), {
22381
+ kind: "mutation",
22382
+ auth: "admin"
22188
22383
  }), method(object({
22189
22384
  deviceId: number().int(),
22190
22385
  slotId: string().min(1),
@@ -23070,13 +23265,19 @@ method(object({
23070
23265
  }), {
23071
23266
  kind: "mutation",
23072
23267
  auth: "admin"
23073
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23268
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23074
23269
  kind: "mutation",
23075
23270
  auth: "admin"
23076
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23077
- kind: "query",
23271
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23272
+ kind: "mutation",
23078
23273
  auth: "admin"
23079
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23274
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23275
+ kind: "mutation",
23276
+ auth: "admin"
23277
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23278
+ kind: "mutation",
23279
+ auth: "admin"
23280
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23080
23281
  kind: "mutation",
23081
23282
  auth: "admin"
23082
23283
  });
@@ -27198,6 +27399,12 @@ Object.freeze({
27198
27399
  addonId: null,
27199
27400
  access: "delete"
27200
27401
  },
27402
+ "osdManager.copyDeviceConfiguration": {
27403
+ capName: "osd-manager",
27404
+ capScope: "system",
27405
+ addonId: null,
27406
+ access: "create"
27407
+ },
27201
27408
  "osdManager.getConditionSupport": {
27202
27409
  capName: "osd-manager",
27203
27410
  capScope: "system",
@@ -27294,7 +27501,7 @@ Object.freeze({
27294
27501
  addonId: null,
27295
27502
  access: "create"
27296
27503
  },
27297
- "pipelineAnalytics.cancelMediaRelocate": {
27504
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27298
27505
  capName: "pipeline-analytics",
27299
27506
  capScope: "device",
27300
27507
  addonId: null,
@@ -27366,12 +27573,6 @@ Object.freeze({
27366
27573
  addonId: null,
27367
27574
  access: "view"
27368
27575
  },
27369
- "pipelineAnalytics.getMediaRelocateStatus": {
27370
- capName: "pipeline-analytics",
27371
- capScope: "device",
27372
- addonId: null,
27373
- access: "view"
27374
- },
27375
27576
  "pipelineAnalytics.getMotionEvents": {
27376
27577
  capName: "pipeline-analytics",
27377
27578
  capScope: "device",
@@ -27408,6 +27609,12 @@ Object.freeze({
27408
27609
  addonId: null,
27409
27610
  access: "view"
27410
27611
  },
27612
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27613
+ capName: "pipeline-analytics",
27614
+ capScope: "device",
27615
+ addonId: null,
27616
+ access: "view"
27617
+ },
27411
27618
  "pipelineAnalytics.getTrack": {
27412
27619
  capName: "pipeline-analytics",
27413
27620
  capScope: "device",
@@ -27486,6 +27693,12 @@ Object.freeze({
27486
27693
  addonId: null,
27487
27694
  access: "view"
27488
27695
  },
27696
+ "pipelineAnalytics.pauseForStorageMigration": {
27697
+ capName: "pipeline-analytics",
27698
+ capScope: "device",
27699
+ addonId: null,
27700
+ access: "create"
27701
+ },
27489
27702
  "pipelineAnalytics.proposeRetrainAnnotations": {
27490
27703
  capName: "pipeline-analytics",
27491
27704
  capScope: "device",
@@ -27516,7 +27729,7 @@ Object.freeze({
27516
27729
  addonId: null,
27517
27730
  access: "create"
27518
27731
  },
27519
- "pipelineAnalytics.relocateMedia": {
27732
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27520
27733
  capName: "pipeline-analytics",
27521
27734
  capScope: "device",
27522
27735
  addonId: null,
@@ -27528,6 +27741,12 @@ Object.freeze({
27528
27741
  addonId: null,
27529
27742
  access: "create"
27530
27743
  },
27744
+ "pipelineAnalytics.resumeForStorageMigration": {
27745
+ capName: "pipeline-analytics",
27746
+ capScope: "device",
27747
+ addonId: null,
27748
+ access: "create"
27749
+ },
27531
27750
  "pipelineAnalytics.saveRetrainAnnotations": {
27532
27751
  capName: "pipeline-analytics",
27533
27752
  capScope: "device",
@@ -27552,6 +27771,12 @@ Object.freeze({
27552
27771
  addonId: null,
27553
27772
  access: "create"
27554
27773
  },
27774
+ "pipelineAnalytics.startStorageMigrationMove": {
27775
+ capName: "pipeline-analytics",
27776
+ capScope: "device",
27777
+ addonId: null,
27778
+ access: "create"
27779
+ },
27555
27780
  "pipelineAnalytics.wipeAllAnalytics": {
27556
27781
  capName: "pipeline-analytics",
27557
27782
  capScope: "device",
@@ -27918,6 +28143,12 @@ Object.freeze({
27918
28143
  addonId: null,
27919
28144
  access: "view"
27920
28145
  },
28146
+ "pipelineOrchestrator.pauseForStorageMigration": {
28147
+ capName: "pipeline-orchestrator",
28148
+ capScope: "system",
28149
+ addonId: null,
28150
+ access: "create"
28151
+ },
27921
28152
  "pipelineOrchestrator.rebalance": {
27922
28153
  capName: "pipeline-orchestrator",
27923
28154
  capScope: "system",
@@ -27942,6 +28173,12 @@ Object.freeze({
27942
28173
  addonId: null,
27943
28174
  access: "view"
27944
28175
  },
28176
+ "pipelineOrchestrator.resumeForStorageMigration": {
28177
+ capName: "pipeline-orchestrator",
28178
+ capScope: "system",
28179
+ addonId: null,
28180
+ access: "create"
28181
+ },
27945
28182
  "pipelineOrchestrator.saveTemplate": {
27946
28183
  capName: "pipeline-orchestrator",
27947
28184
  capScope: "system",
@@ -28338,7 +28575,7 @@ Object.freeze({
28338
28575
  addonId: null,
28339
28576
  access: "create"
28340
28577
  },
28341
- "recording.cancelRelocate": {
28578
+ "recording.cancelStorageMigrationMove": {
28342
28579
  capName: "recording",
28343
28580
  capScope: "system",
28344
28581
  addonId: null,
@@ -28374,7 +28611,7 @@ Object.freeze({
28374
28611
  addonId: null,
28375
28612
  access: "view"
28376
28613
  },
28377
- "recording.getRelocateStatus": {
28614
+ "recording.getStorageMigrationMoveStatus": {
28378
28615
  capName: "recording",
28379
28616
  capScope: "system",
28380
28617
  addonId: null,
@@ -28398,6 +28635,12 @@ Object.freeze({
28398
28635
  addonId: null,
28399
28636
  access: "view"
28400
28637
  },
28638
+ "recording.pauseForStorageMigration": {
28639
+ capName: "recording",
28640
+ capScope: "system",
28641
+ addonId: null,
28642
+ access: "create"
28643
+ },
28401
28644
  "recording.pruneFootage": {
28402
28645
  capName: "recording",
28403
28646
  capScope: "system",
@@ -28416,7 +28659,7 @@ Object.freeze({
28416
28659
  addonId: null,
28417
28660
  access: "view"
28418
28661
  },
28419
- "recording.relocateFootage": {
28662
+ "recording.refreshStorageLocationsForMigration": {
28420
28663
  capName: "recording",
28421
28664
  capScope: "system",
28422
28665
  addonId: null,
@@ -28440,12 +28683,24 @@ Object.freeze({
28440
28683
  addonId: null,
28441
28684
  access: "create"
28442
28685
  },
28686
+ "recording.resumeForStorageMigration": {
28687
+ capName: "recording",
28688
+ capScope: "system",
28689
+ addonId: null,
28690
+ access: "create"
28691
+ },
28443
28692
  "recording.setDeviceConfig": {
28444
28693
  capName: "recording",
28445
28694
  capScope: "system",
28446
28695
  addonId: null,
28447
28696
  access: "create"
28448
28697
  },
28698
+ "recording.startStorageMigrationMove": {
28699
+ capName: "recording",
28700
+ capScope: "system",
28701
+ addonId: null,
28702
+ access: "create"
28703
+ },
28449
28704
  "recordingExport.cancelExport": {
28450
28705
  capName: "recordingExport",
28451
28706
  capScope: "system",
@@ -28836,6 +29091,30 @@ Object.freeze({
28836
29091
  addonId: null,
28837
29092
  access: "view"
28838
29093
  },
29094
+ "storageMigration.cancel": {
29095
+ capName: "storage-migration",
29096
+ capScope: "system",
29097
+ addonId: null,
29098
+ access: "create"
29099
+ },
29100
+ "storageMigration.plan": {
29101
+ capName: "storage-migration",
29102
+ capScope: "system",
29103
+ addonId: null,
29104
+ access: "view"
29105
+ },
29106
+ "storageMigration.start": {
29107
+ capName: "storage-migration",
29108
+ capScope: "system",
29109
+ addonId: null,
29110
+ access: "create"
29111
+ },
29112
+ "storageMigration.status": {
29113
+ capName: "storage-migration",
29114
+ capScope: "system",
29115
+ addonId: null,
29116
+ access: "view"
29117
+ },
28839
29118
  "storageProvider.abortUpload": {
28840
29119
  capName: "storage-provider",
28841
29120
  capScope: "system",
@@ -29214,12 +29493,42 @@ Object.freeze({
29214
29493
  addonId: null,
29215
29494
  access: "create"
29216
29495
  },
29496
+ "terminalSession.adoptLegacyMonitor": {
29497
+ capName: "terminal-session",
29498
+ capScope: "system",
29499
+ addonId: null,
29500
+ access: "create"
29501
+ },
29217
29502
  "terminalSession.close": {
29218
29503
  capName: "terminal-session",
29219
29504
  capScope: "system",
29220
29505
  addonId: null,
29221
29506
  access: "create"
29222
29507
  },
29508
+ "terminalSession.createInstance": {
29509
+ capName: "terminal-session",
29510
+ capScope: "system",
29511
+ addonId: null,
29512
+ access: "create"
29513
+ },
29514
+ "terminalSession.deleteInstance": {
29515
+ capName: "terminal-session",
29516
+ capScope: "system",
29517
+ addonId: null,
29518
+ access: "delete"
29519
+ },
29520
+ "terminalSession.listInstances": {
29521
+ capName: "terminal-session",
29522
+ capScope: "system",
29523
+ addonId: null,
29524
+ access: "view"
29525
+ },
29526
+ "terminalSession.listLegacyCameras": {
29527
+ capName: "terminal-session",
29528
+ capScope: "system",
29529
+ addonId: null,
29530
+ access: "view"
29531
+ },
29223
29532
  "terminalSession.listProfiles": {
29224
29533
  capName: "terminal-session",
29225
29534
  capScope: "system",
@@ -29238,12 +29547,30 @@ Object.freeze({
29238
29547
  addonId: null,
29239
29548
  access: "create"
29240
29549
  },
29550
+ "terminalSession.pullOutput": {
29551
+ capName: "terminal-session",
29552
+ capScope: "system",
29553
+ addonId: null,
29554
+ access: "create"
29555
+ },
29241
29556
  "terminalSession.resize": {
29242
29557
  capName: "terminal-session",
29243
29558
  capScope: "system",
29244
29559
  addonId: null,
29245
29560
  access: "create"
29246
29561
  },
29562
+ "terminalSession.setInstanceEnabled": {
29563
+ capName: "terminal-session",
29564
+ capScope: "system",
29565
+ addonId: null,
29566
+ access: "create"
29567
+ },
29568
+ "terminalSession.writeInput": {
29569
+ capName: "terminal-session",
29570
+ capScope: "system",
29571
+ addonId: null,
29572
+ access: "create"
29573
+ },
29247
29574
  "toast.onToast": {
29248
29575
  capName: "toast",
29249
29576
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-mqtt-broker",
3
- "version": "1.2.11",
3
+ "version": "1.2.13",
4
4
  "description": "MQTT broker registry addon for CamStack — manages external broker entries + an optional embedded aedes broker. Consumers spin up their own `mqtt.js` clients via the `mqtt-broker` cap.",
5
5
  "keywords": [
6
6
  "camstack",