@camstack/addon-provider-rtsp 1.2.12 → 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.
Files changed (3) hide show
  1. package/dist/addon.js +316 -31
  2. package/dist/addon.mjs +316 -31
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -7621,12 +7621,11 @@ var RecordingConfigSchema = object({
7621
7621
  /**
7622
7622
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7623
7623
  *
7624
- * One shape shared by the recorder's `relocateFootage` (segments) and
7625
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7626
- * page renders both movers with one component. Jobs are in-RAM (a restart
7627
- * forgets them re-running is safe by construction: copy-if-absent, delete
7628
- * after verify) and each completed/failed run also lands one durable ops-log
7629
- * row on the owning addon's surface.
7624
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7625
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7626
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7627
+ * Each completed/failed run also lands one durable ops-log row on its owning
7628
+ * addon surface.
7630
7629
  */
7631
7630
  var RelocateJobStateSchema = _enum([
7632
7631
  "running",
@@ -7653,19 +7652,100 @@ var RelocateJobSchema = object({
7653
7652
  finishedAt: number().nullable(),
7654
7653
  error: string().nullable()
7655
7654
  });
7655
+ /** Profile-derived footage selection used only by the migration coordinator:
7656
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7657
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7656
7658
  var RelocateFootageInputSchema = object({
7657
- deviceId: number().optional(),
7658
7659
  fromLocationId: string(),
7659
7660
  toLocationId: string(),
7660
7661
  entities: array(_enum(["segments"])).optional(),
7662
+ /** Limits relocation to the logical profile class. Omit only for the
7663
+ * pre-orchestration compatibility path. */
7664
+ footageClass: RelocateFootageClassSchema.optional(),
7661
7665
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7662
7666
  * never allowed to starve live writers. */
7663
7667
  throttleMbps: number().min(1).max(1e3).optional()
7664
7668
  });
7665
- var RelocateMediaInputSchema = object({
7666
- deviceId: number().optional(),
7669
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7670
+ * from persistent recording settings: a migration never changes
7671
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7672
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7673
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7674
+ var StorageMigrationMediaMoveInputSchema = object({
7667
7675
  toLocationId: string(),
7668
7676
  throttleMbps: number().min(1).max(1e3).optional()
7677
+ }).extend({ leaseId: string().min(1) });
7678
+ /** The independently selectable logical storage classes. `recordings`
7679
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7680
+ * segments; `eventMedia` is post-analysis blobs. */
7681
+ var StorageMigrationClassSchema = _enum([
7682
+ "recordings",
7683
+ "recordingsLow",
7684
+ "eventMedia"
7685
+ ]);
7686
+ /** A destination is always an existing, fully-qualified location id. The
7687
+ * migration API intentionally never changes a source location's `basePath`:
7688
+ * callers create a new `<type>:<slug>` location, then select it here. */
7689
+ var StorageMigrationDestinationsSchema = object({
7690
+ recordings: string().min(1).optional(),
7691
+ recordingsLow: string().min(1).optional(),
7692
+ eventMedia: string().min(1).optional()
7693
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7694
+ /** Shared input for planning and starting an orchestrated storage migration. */
7695
+ var StorageMigrationInputSchema = object({
7696
+ destinations: StorageMigrationDestinationsSchema,
7697
+ throttleMbps: number().min(1).max(1e3).optional()
7698
+ });
7699
+ /** The durable coordinator state machine. The only phase that changes default
7700
+ * locations is `repointing`, after every selected mover has completed and been
7701
+ * verified. */
7702
+ var StorageMigrationPhaseSchema = _enum([
7703
+ "planning",
7704
+ "pausing",
7705
+ "moving",
7706
+ "verifying",
7707
+ "repointing",
7708
+ "refreshing",
7709
+ "resuming",
7710
+ "done",
7711
+ "failed",
7712
+ "cancelled"
7713
+ ]);
7714
+ var StorageMigrationParticipantSchema = _enum([
7715
+ "pipeline",
7716
+ "recorder",
7717
+ "analytics"
7718
+ ]);
7719
+ var StorageMigrationMoveSchema = object({
7720
+ storageClass: StorageMigrationClassSchema,
7721
+ fromLocationId: string(),
7722
+ toLocationId: string(),
7723
+ moverJobId: string().nullable(),
7724
+ state: RelocateJobStateSchema.nullable(),
7725
+ error: string().nullable()
7726
+ });
7727
+ var StorageMigrationJobSchema = object({
7728
+ jobId: string(),
7729
+ phase: StorageMigrationPhaseSchema,
7730
+ destinations: StorageMigrationDestinationsSchema,
7731
+ throttleMbps: number(),
7732
+ moves: array(StorageMigrationMoveSchema),
7733
+ pauseLeaseId: string().nullable(),
7734
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7735
+ repointed: boolean(),
7736
+ cancelRequested: boolean(),
7737
+ startedAt: number(),
7738
+ updatedAt: number(),
7739
+ finishedAt: number().nullable(),
7740
+ error: string().nullable()
7741
+ });
7742
+ var StorageMigrationPlanSchema = object({
7743
+ destinations: StorageMigrationDestinationsSchema,
7744
+ moves: array(object({
7745
+ storageClass: StorageMigrationClassSchema,
7746
+ fromLocationId: string(),
7747
+ toLocationId: string()
7748
+ }))
7669
7749
  });
7670
7750
  /**
7671
7751
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16319,13 +16399,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16319
16399
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16320
16400
  kind: "mutation",
16321
16401
  auth: "admin"
16322
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16402
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16323
16403
  kind: "mutation",
16324
16404
  auth: "admin"
16325
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16326
- kind: "query",
16405
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16406
+ kind: "mutation",
16407
+ auth: "admin"
16408
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16409
+ kind: "mutation",
16410
+ auth: "admin"
16411
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16412
+ kind: "mutation",
16327
16413
  auth: "admin"
16328
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16414
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16329
16415
  kind: "mutation",
16330
16416
  auth: "admin"
16331
16417
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17855,7 +17941,13 @@ var NodeInferenceDevicesSchema = object({
17855
17941
  reachable: boolean(),
17856
17942
  devices: array(NodeInferenceDeviceSchema).readonly()
17857
17943
  });
17858
- method(object({
17944
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17945
+ kind: "mutation",
17946
+ auth: "admin"
17947
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17948
+ kind: "mutation",
17949
+ auth: "admin"
17950
+ }), method(object({
17859
17951
  deviceId: number(),
17860
17952
  agentNodeId: string()
17861
17953
  }), object({ success: literal(true) }), {
@@ -18620,6 +18712,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18620
18712
  locationId: string(),
18621
18713
  targetBytes: number().int().positive()
18622
18714
  }), EvictResultSchema, { kind: "mutation" });
18715
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18716
+ kind: "mutation",
18717
+ auth: "admin"
18718
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18719
+ kind: "mutation",
18720
+ auth: "admin"
18721
+ });
18623
18722
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18624
18723
  providerId: string().min(1),
18625
18724
  displayName: string().min(1),
@@ -18723,6 +18822,28 @@ var TerminalProfileInfoSchema = object({
18723
18822
  label: string(),
18724
18823
  description: string().optional()
18725
18824
  });
18825
+ /**
18826
+ * A durable operator-created Terminal instance. Profiles are templates; only
18827
+ * an instance declares a camera.
18828
+ */
18829
+ var TerminalInstanceInfoSchema = object({
18830
+ instanceId: string(),
18831
+ cameraStableId: string(),
18832
+ nodeId: string(),
18833
+ profileId: string(),
18834
+ profileLabel: string(),
18835
+ name: string(),
18836
+ enabled: boolean()
18837
+ });
18838
+ var TerminalLegacyCameraSchema = object({
18839
+ stableId: string(),
18840
+ nodeId: string(),
18841
+ profileId: string(),
18842
+ profileLabel: string(),
18843
+ name: string(),
18844
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18845
+ adoptable: boolean()
18846
+ });
18726
18847
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18727
18848
  seq: number().int().positive(),
18728
18849
  kind: literal("data"),
@@ -18739,7 +18860,29 @@ var TerminalOutputBatchSchema = object({
18739
18860
  snapshot: string().optional(),
18740
18861
  events: array(TerminalOutputEventSchema).readonly()
18741
18862
  });
18742
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18863
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18864
+ targetNodeId: string().min(1),
18865
+ profileId: string().min(1),
18866
+ name: string().trim().min(1).max(160).optional()
18867
+ }), TerminalInstanceInfoSchema, {
18868
+ kind: "mutation",
18869
+ auth: "admin"
18870
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18871
+ kind: "mutation",
18872
+ auth: "admin"
18873
+ }), method(object({
18874
+ instanceId: string().min(1),
18875
+ enabled: boolean()
18876
+ }), TerminalInstanceInfoSchema, {
18877
+ kind: "mutation",
18878
+ auth: "admin"
18879
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18880
+ stableId: string().min(1),
18881
+ name: string().trim().min(1).max(160).optional()
18882
+ }), TerminalInstanceInfoSchema, {
18883
+ kind: "mutation",
18884
+ auth: "admin"
18885
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18743
18886
  profileId: string(),
18744
18887
  cols: number().int().positive(),
18745
18888
  rows: number().int().positive()
@@ -18756,7 +18899,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18756
18899
  }), method(object({
18757
18900
  sessionId: string(),
18758
18901
  afterSeq: number().int().nonnegative(),
18759
- waitMs: number().int().min(0).max(2e3).default(0)
18902
+ waitMs: number().int().min(0).max(2e3).default(0),
18903
+ /**
18904
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18905
+ * browser's initial repaint remains immediate; the camera snapshot
18906
+ * relay uses it to avoid encoding a blank startup frame.
18907
+ */
18908
+ waitForOutput: boolean().optional()
18760
18909
  }), TerminalOutputBatchSchema, {
18761
18910
  kind: "mutation",
18762
18911
  auth: "admin",
@@ -21262,6 +21411,7 @@ var FaceInfoSchema = object({
21262
21411
  var FaceFilterEnum = _enum([
21263
21412
  "unassigned",
21264
21413
  "recognized",
21414
+ "identified",
21265
21415
  "all"
21266
21416
  ]);
21267
21417
  var MediaFileLiteSchema$1 = object({
@@ -21290,6 +21440,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21290
21440
  kind: "mutation",
21291
21441
  auth: "admin"
21292
21442
  }), method(object({
21443
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21444
+ deviceId: number().int().optional(),
21293
21445
  limit: number().int().positive().optional(),
21294
21446
  filter: FaceFilterEnum.optional(),
21295
21447
  /**
@@ -23519,6 +23671,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23519
23671
  capName: string().min(1).max(64),
23520
23672
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23521
23673
  valuePath: string().min(1).max(64)
23674
+ }),
23675
+ object({
23676
+ kind: literal("latest-recognition"),
23677
+ recognition: _enum(["person", "plate"])
23522
23678
  })
23523
23679
  ]);
23524
23680
  var OsdSlotBindingSchema = object({
@@ -23624,6 +23780,15 @@ method(object({ deviceId: number().int() }), object({
23624
23780
  }), object({ success: literal(true) }), {
23625
23781
  kind: "mutation",
23626
23782
  auth: "admin"
23783
+ }), method(object({
23784
+ sourceDeviceId: number().int(),
23785
+ targetDeviceId: number().int()
23786
+ }), object({
23787
+ copied: number().int().nonnegative(),
23788
+ skipped: number().int().nonnegative()
23789
+ }), {
23790
+ kind: "mutation",
23791
+ auth: "admin"
23627
23792
  }), method(object({
23628
23793
  deviceId: number().int(),
23629
23794
  slotId: string().min(1),
@@ -24721,13 +24886,19 @@ method(object({
24721
24886
  }), {
24722
24887
  kind: "mutation",
24723
24888
  auth: "admin"
24724
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
24889
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24725
24890
  kind: "mutation",
24726
24891
  auth: "admin"
24727
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24728
- kind: "query",
24892
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24893
+ kind: "mutation",
24729
24894
  auth: "admin"
24730
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24895
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
24896
+ kind: "mutation",
24897
+ auth: "admin"
24898
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
24899
+ kind: "mutation",
24900
+ auth: "admin"
24901
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24731
24902
  kind: "mutation",
24732
24903
  auth: "admin"
24733
24904
  });
@@ -30412,6 +30583,12 @@ Object.freeze({
30412
30583
  addonId: null,
30413
30584
  access: "delete"
30414
30585
  },
30586
+ "osdManager.copyDeviceConfiguration": {
30587
+ capName: "osd-manager",
30588
+ capScope: "system",
30589
+ addonId: null,
30590
+ access: "create"
30591
+ },
30415
30592
  "osdManager.getConditionSupport": {
30416
30593
  capName: "osd-manager",
30417
30594
  capScope: "system",
@@ -30508,7 +30685,7 @@ Object.freeze({
30508
30685
  addonId: null,
30509
30686
  access: "create"
30510
30687
  },
30511
- "pipelineAnalytics.cancelMediaRelocate": {
30688
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30512
30689
  capName: "pipeline-analytics",
30513
30690
  capScope: "device",
30514
30691
  addonId: null,
@@ -30580,12 +30757,6 @@ Object.freeze({
30580
30757
  addonId: null,
30581
30758
  access: "view"
30582
30759
  },
30583
- "pipelineAnalytics.getMediaRelocateStatus": {
30584
- capName: "pipeline-analytics",
30585
- capScope: "device",
30586
- addonId: null,
30587
- access: "view"
30588
- },
30589
30760
  "pipelineAnalytics.getMotionEvents": {
30590
30761
  capName: "pipeline-analytics",
30591
30762
  capScope: "device",
@@ -30622,6 +30793,12 @@ Object.freeze({
30622
30793
  addonId: null,
30623
30794
  access: "view"
30624
30795
  },
30796
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30797
+ capName: "pipeline-analytics",
30798
+ capScope: "device",
30799
+ addonId: null,
30800
+ access: "view"
30801
+ },
30625
30802
  "pipelineAnalytics.getTrack": {
30626
30803
  capName: "pipeline-analytics",
30627
30804
  capScope: "device",
@@ -30700,6 +30877,12 @@ Object.freeze({
30700
30877
  addonId: null,
30701
30878
  access: "view"
30702
30879
  },
30880
+ "pipelineAnalytics.pauseForStorageMigration": {
30881
+ capName: "pipeline-analytics",
30882
+ capScope: "device",
30883
+ addonId: null,
30884
+ access: "create"
30885
+ },
30703
30886
  "pipelineAnalytics.proposeRetrainAnnotations": {
30704
30887
  capName: "pipeline-analytics",
30705
30888
  capScope: "device",
@@ -30730,7 +30913,7 @@ Object.freeze({
30730
30913
  addonId: null,
30731
30914
  access: "create"
30732
30915
  },
30733
- "pipelineAnalytics.relocateMedia": {
30916
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30734
30917
  capName: "pipeline-analytics",
30735
30918
  capScope: "device",
30736
30919
  addonId: null,
@@ -30742,6 +30925,12 @@ Object.freeze({
30742
30925
  addonId: null,
30743
30926
  access: "create"
30744
30927
  },
30928
+ "pipelineAnalytics.resumeForStorageMigration": {
30929
+ capName: "pipeline-analytics",
30930
+ capScope: "device",
30931
+ addonId: null,
30932
+ access: "create"
30933
+ },
30745
30934
  "pipelineAnalytics.saveRetrainAnnotations": {
30746
30935
  capName: "pipeline-analytics",
30747
30936
  capScope: "device",
@@ -30766,6 +30955,12 @@ Object.freeze({
30766
30955
  addonId: null,
30767
30956
  access: "create"
30768
30957
  },
30958
+ "pipelineAnalytics.startStorageMigrationMove": {
30959
+ capName: "pipeline-analytics",
30960
+ capScope: "device",
30961
+ addonId: null,
30962
+ access: "create"
30963
+ },
30769
30964
  "pipelineAnalytics.wipeAllAnalytics": {
30770
30965
  capName: "pipeline-analytics",
30771
30966
  capScope: "device",
@@ -31132,6 +31327,12 @@ Object.freeze({
31132
31327
  addonId: null,
31133
31328
  access: "view"
31134
31329
  },
31330
+ "pipelineOrchestrator.pauseForStorageMigration": {
31331
+ capName: "pipeline-orchestrator",
31332
+ capScope: "system",
31333
+ addonId: null,
31334
+ access: "create"
31335
+ },
31135
31336
  "pipelineOrchestrator.rebalance": {
31136
31337
  capName: "pipeline-orchestrator",
31137
31338
  capScope: "system",
@@ -31156,6 +31357,12 @@ Object.freeze({
31156
31357
  addonId: null,
31157
31358
  access: "view"
31158
31359
  },
31360
+ "pipelineOrchestrator.resumeForStorageMigration": {
31361
+ capName: "pipeline-orchestrator",
31362
+ capScope: "system",
31363
+ addonId: null,
31364
+ access: "create"
31365
+ },
31159
31366
  "pipelineOrchestrator.saveTemplate": {
31160
31367
  capName: "pipeline-orchestrator",
31161
31368
  capScope: "system",
@@ -31552,7 +31759,7 @@ Object.freeze({
31552
31759
  addonId: null,
31553
31760
  access: "create"
31554
31761
  },
31555
- "recording.cancelRelocate": {
31762
+ "recording.cancelStorageMigrationMove": {
31556
31763
  capName: "recording",
31557
31764
  capScope: "system",
31558
31765
  addonId: null,
@@ -31588,7 +31795,7 @@ Object.freeze({
31588
31795
  addonId: null,
31589
31796
  access: "view"
31590
31797
  },
31591
- "recording.getRelocateStatus": {
31798
+ "recording.getStorageMigrationMoveStatus": {
31592
31799
  capName: "recording",
31593
31800
  capScope: "system",
31594
31801
  addonId: null,
@@ -31612,6 +31819,12 @@ Object.freeze({
31612
31819
  addonId: null,
31613
31820
  access: "view"
31614
31821
  },
31822
+ "recording.pauseForStorageMigration": {
31823
+ capName: "recording",
31824
+ capScope: "system",
31825
+ addonId: null,
31826
+ access: "create"
31827
+ },
31615
31828
  "recording.pruneFootage": {
31616
31829
  capName: "recording",
31617
31830
  capScope: "system",
@@ -31630,7 +31843,7 @@ Object.freeze({
31630
31843
  addonId: null,
31631
31844
  access: "view"
31632
31845
  },
31633
- "recording.relocateFootage": {
31846
+ "recording.refreshStorageLocationsForMigration": {
31634
31847
  capName: "recording",
31635
31848
  capScope: "system",
31636
31849
  addonId: null,
@@ -31654,12 +31867,24 @@ Object.freeze({
31654
31867
  addonId: null,
31655
31868
  access: "create"
31656
31869
  },
31870
+ "recording.resumeForStorageMigration": {
31871
+ capName: "recording",
31872
+ capScope: "system",
31873
+ addonId: null,
31874
+ access: "create"
31875
+ },
31657
31876
  "recording.setDeviceConfig": {
31658
31877
  capName: "recording",
31659
31878
  capScope: "system",
31660
31879
  addonId: null,
31661
31880
  access: "create"
31662
31881
  },
31882
+ "recording.startStorageMigrationMove": {
31883
+ capName: "recording",
31884
+ capScope: "system",
31885
+ addonId: null,
31886
+ access: "create"
31887
+ },
31663
31888
  "recordingExport.cancelExport": {
31664
31889
  capName: "recordingExport",
31665
31890
  capScope: "system",
@@ -32050,6 +32275,30 @@ Object.freeze({
32050
32275
  addonId: null,
32051
32276
  access: "view"
32052
32277
  },
32278
+ "storageMigration.cancel": {
32279
+ capName: "storage-migration",
32280
+ capScope: "system",
32281
+ addonId: null,
32282
+ access: "create"
32283
+ },
32284
+ "storageMigration.plan": {
32285
+ capName: "storage-migration",
32286
+ capScope: "system",
32287
+ addonId: null,
32288
+ access: "view"
32289
+ },
32290
+ "storageMigration.start": {
32291
+ capName: "storage-migration",
32292
+ capScope: "system",
32293
+ addonId: null,
32294
+ access: "create"
32295
+ },
32296
+ "storageMigration.status": {
32297
+ capName: "storage-migration",
32298
+ capScope: "system",
32299
+ addonId: null,
32300
+ access: "view"
32301
+ },
32053
32302
  "storageProvider.abortUpload": {
32054
32303
  capName: "storage-provider",
32055
32304
  capScope: "system",
@@ -32428,12 +32677,42 @@ Object.freeze({
32428
32677
  addonId: null,
32429
32678
  access: "create"
32430
32679
  },
32680
+ "terminalSession.adoptLegacyMonitor": {
32681
+ capName: "terminal-session",
32682
+ capScope: "system",
32683
+ addonId: null,
32684
+ access: "create"
32685
+ },
32431
32686
  "terminalSession.close": {
32432
32687
  capName: "terminal-session",
32433
32688
  capScope: "system",
32434
32689
  addonId: null,
32435
32690
  access: "create"
32436
32691
  },
32692
+ "terminalSession.createInstance": {
32693
+ capName: "terminal-session",
32694
+ capScope: "system",
32695
+ addonId: null,
32696
+ access: "create"
32697
+ },
32698
+ "terminalSession.deleteInstance": {
32699
+ capName: "terminal-session",
32700
+ capScope: "system",
32701
+ addonId: null,
32702
+ access: "delete"
32703
+ },
32704
+ "terminalSession.listInstances": {
32705
+ capName: "terminal-session",
32706
+ capScope: "system",
32707
+ addonId: null,
32708
+ access: "view"
32709
+ },
32710
+ "terminalSession.listLegacyCameras": {
32711
+ capName: "terminal-session",
32712
+ capScope: "system",
32713
+ addonId: null,
32714
+ access: "view"
32715
+ },
32437
32716
  "terminalSession.listProfiles": {
32438
32717
  capName: "terminal-session",
32439
32718
  capScope: "system",
@@ -32464,6 +32743,12 @@ Object.freeze({
32464
32743
  addonId: null,
32465
32744
  access: "create"
32466
32745
  },
32746
+ "terminalSession.setInstanceEnabled": {
32747
+ capName: "terminal-session",
32748
+ capScope: "system",
32749
+ addonId: null,
32750
+ access: "create"
32751
+ },
32467
32752
  "terminalSession.writeInput": {
32468
32753
  capName: "terminal-session",
32469
32754
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -7597,12 +7597,11 @@ var RecordingConfigSchema = object({
7597
7597
  /**
7598
7598
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7599
7599
  *
7600
- * One shape shared by the recorder's `relocateFootage` (segments) and
7601
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7602
- * page renders both movers with one component. Jobs are in-RAM (a restart
7603
- * forgets them re-running is safe by construction: copy-if-absent, delete
7604
- * after verify) and each completed/failed run also lands one durable ops-log
7605
- * row on the owning addon's surface.
7600
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7601
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7602
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7603
+ * Each completed/failed run also lands one durable ops-log row on its owning
7604
+ * addon surface.
7606
7605
  */
7607
7606
  var RelocateJobStateSchema = _enum([
7608
7607
  "running",
@@ -7629,19 +7628,100 @@ var RelocateJobSchema = object({
7629
7628
  finishedAt: number().nullable(),
7630
7629
  error: string().nullable()
7631
7630
  });
7631
+ /** Profile-derived footage selection used only by the migration coordinator:
7632
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7633
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7632
7634
  var RelocateFootageInputSchema = object({
7633
- deviceId: number().optional(),
7634
7635
  fromLocationId: string(),
7635
7636
  toLocationId: string(),
7636
7637
  entities: array(_enum(["segments"])).optional(),
7638
+ /** Limits relocation to the logical profile class. Omit only for the
7639
+ * pre-orchestration compatibility path. */
7640
+ footageClass: RelocateFootageClassSchema.optional(),
7637
7641
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7638
7642
  * never allowed to starve live writers. */
7639
7643
  throttleMbps: number().min(1).max(1e3).optional()
7640
7644
  });
7641
- var RelocateMediaInputSchema = object({
7642
- deviceId: number().optional(),
7645
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7646
+ * from persistent recording settings: a migration never changes
7647
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7648
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7649
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7650
+ var StorageMigrationMediaMoveInputSchema = object({
7643
7651
  toLocationId: string(),
7644
7652
  throttleMbps: number().min(1).max(1e3).optional()
7653
+ }).extend({ leaseId: string().min(1) });
7654
+ /** The independently selectable logical storage classes. `recordings`
7655
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7656
+ * segments; `eventMedia` is post-analysis blobs. */
7657
+ var StorageMigrationClassSchema = _enum([
7658
+ "recordings",
7659
+ "recordingsLow",
7660
+ "eventMedia"
7661
+ ]);
7662
+ /** A destination is always an existing, fully-qualified location id. The
7663
+ * migration API intentionally never changes a source location's `basePath`:
7664
+ * callers create a new `<type>:<slug>` location, then select it here. */
7665
+ var StorageMigrationDestinationsSchema = object({
7666
+ recordings: string().min(1).optional(),
7667
+ recordingsLow: string().min(1).optional(),
7668
+ eventMedia: string().min(1).optional()
7669
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7670
+ /** Shared input for planning and starting an orchestrated storage migration. */
7671
+ var StorageMigrationInputSchema = object({
7672
+ destinations: StorageMigrationDestinationsSchema,
7673
+ throttleMbps: number().min(1).max(1e3).optional()
7674
+ });
7675
+ /** The durable coordinator state machine. The only phase that changes default
7676
+ * locations is `repointing`, after every selected mover has completed and been
7677
+ * verified. */
7678
+ var StorageMigrationPhaseSchema = _enum([
7679
+ "planning",
7680
+ "pausing",
7681
+ "moving",
7682
+ "verifying",
7683
+ "repointing",
7684
+ "refreshing",
7685
+ "resuming",
7686
+ "done",
7687
+ "failed",
7688
+ "cancelled"
7689
+ ]);
7690
+ var StorageMigrationParticipantSchema = _enum([
7691
+ "pipeline",
7692
+ "recorder",
7693
+ "analytics"
7694
+ ]);
7695
+ var StorageMigrationMoveSchema = object({
7696
+ storageClass: StorageMigrationClassSchema,
7697
+ fromLocationId: string(),
7698
+ toLocationId: string(),
7699
+ moverJobId: string().nullable(),
7700
+ state: RelocateJobStateSchema.nullable(),
7701
+ error: string().nullable()
7702
+ });
7703
+ var StorageMigrationJobSchema = object({
7704
+ jobId: string(),
7705
+ phase: StorageMigrationPhaseSchema,
7706
+ destinations: StorageMigrationDestinationsSchema,
7707
+ throttleMbps: number(),
7708
+ moves: array(StorageMigrationMoveSchema),
7709
+ pauseLeaseId: string().nullable(),
7710
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7711
+ repointed: boolean(),
7712
+ cancelRequested: boolean(),
7713
+ startedAt: number(),
7714
+ updatedAt: number(),
7715
+ finishedAt: number().nullable(),
7716
+ error: string().nullable()
7717
+ });
7718
+ var StorageMigrationPlanSchema = object({
7719
+ destinations: StorageMigrationDestinationsSchema,
7720
+ moves: array(object({
7721
+ storageClass: StorageMigrationClassSchema,
7722
+ fromLocationId: string(),
7723
+ toLocationId: string()
7724
+ }))
7645
7725
  });
7646
7726
  /**
7647
7727
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16295,13 +16375,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16295
16375
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16296
16376
  kind: "mutation",
16297
16377
  auth: "admin"
16298
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16378
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16299
16379
  kind: "mutation",
16300
16380
  auth: "admin"
16301
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16302
- kind: "query",
16381
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16382
+ kind: "mutation",
16383
+ auth: "admin"
16384
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16385
+ kind: "mutation",
16386
+ auth: "admin"
16387
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16388
+ kind: "mutation",
16303
16389
  auth: "admin"
16304
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16390
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16305
16391
  kind: "mutation",
16306
16392
  auth: "admin"
16307
16393
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17831,7 +17917,13 @@ var NodeInferenceDevicesSchema = object({
17831
17917
  reachable: boolean(),
17832
17918
  devices: array(NodeInferenceDeviceSchema).readonly()
17833
17919
  });
17834
- method(object({
17920
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17921
+ kind: "mutation",
17922
+ auth: "admin"
17923
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17924
+ kind: "mutation",
17925
+ auth: "admin"
17926
+ }), method(object({
17835
17927
  deviceId: number(),
17836
17928
  agentNodeId: string()
17837
17929
  }), object({ success: literal(true) }), {
@@ -18596,6 +18688,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18596
18688
  locationId: string(),
18597
18689
  targetBytes: number().int().positive()
18598
18690
  }), EvictResultSchema, { kind: "mutation" });
18691
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18692
+ kind: "mutation",
18693
+ auth: "admin"
18694
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18695
+ kind: "mutation",
18696
+ auth: "admin"
18697
+ });
18599
18698
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18600
18699
  providerId: string().min(1),
18601
18700
  displayName: string().min(1),
@@ -18699,6 +18798,28 @@ var TerminalProfileInfoSchema = object({
18699
18798
  label: string(),
18700
18799
  description: string().optional()
18701
18800
  });
18801
+ /**
18802
+ * A durable operator-created Terminal instance. Profiles are templates; only
18803
+ * an instance declares a camera.
18804
+ */
18805
+ var TerminalInstanceInfoSchema = object({
18806
+ instanceId: string(),
18807
+ cameraStableId: string(),
18808
+ nodeId: string(),
18809
+ profileId: string(),
18810
+ profileLabel: string(),
18811
+ name: string(),
18812
+ enabled: boolean()
18813
+ });
18814
+ var TerminalLegacyCameraSchema = object({
18815
+ stableId: string(),
18816
+ nodeId: string(),
18817
+ profileId: string(),
18818
+ profileLabel: string(),
18819
+ name: string(),
18820
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18821
+ adoptable: boolean()
18822
+ });
18702
18823
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18703
18824
  seq: number().int().positive(),
18704
18825
  kind: literal("data"),
@@ -18715,7 +18836,29 @@ var TerminalOutputBatchSchema = object({
18715
18836
  snapshot: string().optional(),
18716
18837
  events: array(TerminalOutputEventSchema).readonly()
18717
18838
  });
18718
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18839
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18840
+ targetNodeId: string().min(1),
18841
+ profileId: string().min(1),
18842
+ name: string().trim().min(1).max(160).optional()
18843
+ }), TerminalInstanceInfoSchema, {
18844
+ kind: "mutation",
18845
+ auth: "admin"
18846
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18847
+ kind: "mutation",
18848
+ auth: "admin"
18849
+ }), method(object({
18850
+ instanceId: string().min(1),
18851
+ enabled: boolean()
18852
+ }), TerminalInstanceInfoSchema, {
18853
+ kind: "mutation",
18854
+ auth: "admin"
18855
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18856
+ stableId: string().min(1),
18857
+ name: string().trim().min(1).max(160).optional()
18858
+ }), TerminalInstanceInfoSchema, {
18859
+ kind: "mutation",
18860
+ auth: "admin"
18861
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18719
18862
  profileId: string(),
18720
18863
  cols: number().int().positive(),
18721
18864
  rows: number().int().positive()
@@ -18732,7 +18875,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18732
18875
  }), method(object({
18733
18876
  sessionId: string(),
18734
18877
  afterSeq: number().int().nonnegative(),
18735
- waitMs: number().int().min(0).max(2e3).default(0)
18878
+ waitMs: number().int().min(0).max(2e3).default(0),
18879
+ /**
18880
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18881
+ * browser's initial repaint remains immediate; the camera snapshot
18882
+ * relay uses it to avoid encoding a blank startup frame.
18883
+ */
18884
+ waitForOutput: boolean().optional()
18736
18885
  }), TerminalOutputBatchSchema, {
18737
18886
  kind: "mutation",
18738
18887
  auth: "admin",
@@ -21238,6 +21387,7 @@ var FaceInfoSchema = object({
21238
21387
  var FaceFilterEnum = _enum([
21239
21388
  "unassigned",
21240
21389
  "recognized",
21390
+ "identified",
21241
21391
  "all"
21242
21392
  ]);
21243
21393
  var MediaFileLiteSchema$1 = object({
@@ -21266,6 +21416,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21266
21416
  kind: "mutation",
21267
21417
  auth: "admin"
21268
21418
  }), method(object({
21419
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21420
+ deviceId: number().int().optional(),
21269
21421
  limit: number().int().positive().optional(),
21270
21422
  filter: FaceFilterEnum.optional(),
21271
21423
  /**
@@ -23495,6 +23647,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23495
23647
  capName: string().min(1).max(64),
23496
23648
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23497
23649
  valuePath: string().min(1).max(64)
23650
+ }),
23651
+ object({
23652
+ kind: literal("latest-recognition"),
23653
+ recognition: _enum(["person", "plate"])
23498
23654
  })
23499
23655
  ]);
23500
23656
  var OsdSlotBindingSchema = object({
@@ -23600,6 +23756,15 @@ method(object({ deviceId: number().int() }), object({
23600
23756
  }), object({ success: literal(true) }), {
23601
23757
  kind: "mutation",
23602
23758
  auth: "admin"
23759
+ }), method(object({
23760
+ sourceDeviceId: number().int(),
23761
+ targetDeviceId: number().int()
23762
+ }), object({
23763
+ copied: number().int().nonnegative(),
23764
+ skipped: number().int().nonnegative()
23765
+ }), {
23766
+ kind: "mutation",
23767
+ auth: "admin"
23603
23768
  }), method(object({
23604
23769
  deviceId: number().int(),
23605
23770
  slotId: string().min(1),
@@ -24697,13 +24862,19 @@ method(object({
24697
24862
  }), {
24698
24863
  kind: "mutation",
24699
24864
  auth: "admin"
24700
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
24865
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24701
24866
  kind: "mutation",
24702
24867
  auth: "admin"
24703
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24704
- kind: "query",
24868
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24869
+ kind: "mutation",
24705
24870
  auth: "admin"
24706
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24871
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
24872
+ kind: "mutation",
24873
+ auth: "admin"
24874
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
24875
+ kind: "mutation",
24876
+ auth: "admin"
24877
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24707
24878
  kind: "mutation",
24708
24879
  auth: "admin"
24709
24880
  });
@@ -30388,6 +30559,12 @@ Object.freeze({
30388
30559
  addonId: null,
30389
30560
  access: "delete"
30390
30561
  },
30562
+ "osdManager.copyDeviceConfiguration": {
30563
+ capName: "osd-manager",
30564
+ capScope: "system",
30565
+ addonId: null,
30566
+ access: "create"
30567
+ },
30391
30568
  "osdManager.getConditionSupport": {
30392
30569
  capName: "osd-manager",
30393
30570
  capScope: "system",
@@ -30484,7 +30661,7 @@ Object.freeze({
30484
30661
  addonId: null,
30485
30662
  access: "create"
30486
30663
  },
30487
- "pipelineAnalytics.cancelMediaRelocate": {
30664
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30488
30665
  capName: "pipeline-analytics",
30489
30666
  capScope: "device",
30490
30667
  addonId: null,
@@ -30556,12 +30733,6 @@ Object.freeze({
30556
30733
  addonId: null,
30557
30734
  access: "view"
30558
30735
  },
30559
- "pipelineAnalytics.getMediaRelocateStatus": {
30560
- capName: "pipeline-analytics",
30561
- capScope: "device",
30562
- addonId: null,
30563
- access: "view"
30564
- },
30565
30736
  "pipelineAnalytics.getMotionEvents": {
30566
30737
  capName: "pipeline-analytics",
30567
30738
  capScope: "device",
@@ -30598,6 +30769,12 @@ Object.freeze({
30598
30769
  addonId: null,
30599
30770
  access: "view"
30600
30771
  },
30772
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30773
+ capName: "pipeline-analytics",
30774
+ capScope: "device",
30775
+ addonId: null,
30776
+ access: "view"
30777
+ },
30601
30778
  "pipelineAnalytics.getTrack": {
30602
30779
  capName: "pipeline-analytics",
30603
30780
  capScope: "device",
@@ -30676,6 +30853,12 @@ Object.freeze({
30676
30853
  addonId: null,
30677
30854
  access: "view"
30678
30855
  },
30856
+ "pipelineAnalytics.pauseForStorageMigration": {
30857
+ capName: "pipeline-analytics",
30858
+ capScope: "device",
30859
+ addonId: null,
30860
+ access: "create"
30861
+ },
30679
30862
  "pipelineAnalytics.proposeRetrainAnnotations": {
30680
30863
  capName: "pipeline-analytics",
30681
30864
  capScope: "device",
@@ -30706,7 +30889,7 @@ Object.freeze({
30706
30889
  addonId: null,
30707
30890
  access: "create"
30708
30891
  },
30709
- "pipelineAnalytics.relocateMedia": {
30892
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30710
30893
  capName: "pipeline-analytics",
30711
30894
  capScope: "device",
30712
30895
  addonId: null,
@@ -30718,6 +30901,12 @@ Object.freeze({
30718
30901
  addonId: null,
30719
30902
  access: "create"
30720
30903
  },
30904
+ "pipelineAnalytics.resumeForStorageMigration": {
30905
+ capName: "pipeline-analytics",
30906
+ capScope: "device",
30907
+ addonId: null,
30908
+ access: "create"
30909
+ },
30721
30910
  "pipelineAnalytics.saveRetrainAnnotations": {
30722
30911
  capName: "pipeline-analytics",
30723
30912
  capScope: "device",
@@ -30742,6 +30931,12 @@ Object.freeze({
30742
30931
  addonId: null,
30743
30932
  access: "create"
30744
30933
  },
30934
+ "pipelineAnalytics.startStorageMigrationMove": {
30935
+ capName: "pipeline-analytics",
30936
+ capScope: "device",
30937
+ addonId: null,
30938
+ access: "create"
30939
+ },
30745
30940
  "pipelineAnalytics.wipeAllAnalytics": {
30746
30941
  capName: "pipeline-analytics",
30747
30942
  capScope: "device",
@@ -31108,6 +31303,12 @@ Object.freeze({
31108
31303
  addonId: null,
31109
31304
  access: "view"
31110
31305
  },
31306
+ "pipelineOrchestrator.pauseForStorageMigration": {
31307
+ capName: "pipeline-orchestrator",
31308
+ capScope: "system",
31309
+ addonId: null,
31310
+ access: "create"
31311
+ },
31111
31312
  "pipelineOrchestrator.rebalance": {
31112
31313
  capName: "pipeline-orchestrator",
31113
31314
  capScope: "system",
@@ -31132,6 +31333,12 @@ Object.freeze({
31132
31333
  addonId: null,
31133
31334
  access: "view"
31134
31335
  },
31336
+ "pipelineOrchestrator.resumeForStorageMigration": {
31337
+ capName: "pipeline-orchestrator",
31338
+ capScope: "system",
31339
+ addonId: null,
31340
+ access: "create"
31341
+ },
31135
31342
  "pipelineOrchestrator.saveTemplate": {
31136
31343
  capName: "pipeline-orchestrator",
31137
31344
  capScope: "system",
@@ -31528,7 +31735,7 @@ Object.freeze({
31528
31735
  addonId: null,
31529
31736
  access: "create"
31530
31737
  },
31531
- "recording.cancelRelocate": {
31738
+ "recording.cancelStorageMigrationMove": {
31532
31739
  capName: "recording",
31533
31740
  capScope: "system",
31534
31741
  addonId: null,
@@ -31564,7 +31771,7 @@ Object.freeze({
31564
31771
  addonId: null,
31565
31772
  access: "view"
31566
31773
  },
31567
- "recording.getRelocateStatus": {
31774
+ "recording.getStorageMigrationMoveStatus": {
31568
31775
  capName: "recording",
31569
31776
  capScope: "system",
31570
31777
  addonId: null,
@@ -31588,6 +31795,12 @@ Object.freeze({
31588
31795
  addonId: null,
31589
31796
  access: "view"
31590
31797
  },
31798
+ "recording.pauseForStorageMigration": {
31799
+ capName: "recording",
31800
+ capScope: "system",
31801
+ addonId: null,
31802
+ access: "create"
31803
+ },
31591
31804
  "recording.pruneFootage": {
31592
31805
  capName: "recording",
31593
31806
  capScope: "system",
@@ -31606,7 +31819,7 @@ Object.freeze({
31606
31819
  addonId: null,
31607
31820
  access: "view"
31608
31821
  },
31609
- "recording.relocateFootage": {
31822
+ "recording.refreshStorageLocationsForMigration": {
31610
31823
  capName: "recording",
31611
31824
  capScope: "system",
31612
31825
  addonId: null,
@@ -31630,12 +31843,24 @@ Object.freeze({
31630
31843
  addonId: null,
31631
31844
  access: "create"
31632
31845
  },
31846
+ "recording.resumeForStorageMigration": {
31847
+ capName: "recording",
31848
+ capScope: "system",
31849
+ addonId: null,
31850
+ access: "create"
31851
+ },
31633
31852
  "recording.setDeviceConfig": {
31634
31853
  capName: "recording",
31635
31854
  capScope: "system",
31636
31855
  addonId: null,
31637
31856
  access: "create"
31638
31857
  },
31858
+ "recording.startStorageMigrationMove": {
31859
+ capName: "recording",
31860
+ capScope: "system",
31861
+ addonId: null,
31862
+ access: "create"
31863
+ },
31639
31864
  "recordingExport.cancelExport": {
31640
31865
  capName: "recordingExport",
31641
31866
  capScope: "system",
@@ -32026,6 +32251,30 @@ Object.freeze({
32026
32251
  addonId: null,
32027
32252
  access: "view"
32028
32253
  },
32254
+ "storageMigration.cancel": {
32255
+ capName: "storage-migration",
32256
+ capScope: "system",
32257
+ addonId: null,
32258
+ access: "create"
32259
+ },
32260
+ "storageMigration.plan": {
32261
+ capName: "storage-migration",
32262
+ capScope: "system",
32263
+ addonId: null,
32264
+ access: "view"
32265
+ },
32266
+ "storageMigration.start": {
32267
+ capName: "storage-migration",
32268
+ capScope: "system",
32269
+ addonId: null,
32270
+ access: "create"
32271
+ },
32272
+ "storageMigration.status": {
32273
+ capName: "storage-migration",
32274
+ capScope: "system",
32275
+ addonId: null,
32276
+ access: "view"
32277
+ },
32029
32278
  "storageProvider.abortUpload": {
32030
32279
  capName: "storage-provider",
32031
32280
  capScope: "system",
@@ -32404,12 +32653,42 @@ Object.freeze({
32404
32653
  addonId: null,
32405
32654
  access: "create"
32406
32655
  },
32656
+ "terminalSession.adoptLegacyMonitor": {
32657
+ capName: "terminal-session",
32658
+ capScope: "system",
32659
+ addonId: null,
32660
+ access: "create"
32661
+ },
32407
32662
  "terminalSession.close": {
32408
32663
  capName: "terminal-session",
32409
32664
  capScope: "system",
32410
32665
  addonId: null,
32411
32666
  access: "create"
32412
32667
  },
32668
+ "terminalSession.createInstance": {
32669
+ capName: "terminal-session",
32670
+ capScope: "system",
32671
+ addonId: null,
32672
+ access: "create"
32673
+ },
32674
+ "terminalSession.deleteInstance": {
32675
+ capName: "terminal-session",
32676
+ capScope: "system",
32677
+ addonId: null,
32678
+ access: "delete"
32679
+ },
32680
+ "terminalSession.listInstances": {
32681
+ capName: "terminal-session",
32682
+ capScope: "system",
32683
+ addonId: null,
32684
+ access: "view"
32685
+ },
32686
+ "terminalSession.listLegacyCameras": {
32687
+ capName: "terminal-session",
32688
+ capScope: "system",
32689
+ addonId: null,
32690
+ access: "view"
32691
+ },
32413
32692
  "terminalSession.listProfiles": {
32414
32693
  capName: "terminal-session",
32415
32694
  capScope: "system",
@@ -32440,6 +32719,12 @@ Object.freeze({
32440
32719
  addonId: null,
32441
32720
  access: "create"
32442
32721
  },
32722
+ "terminalSession.setInstanceEnabled": {
32723
+ capName: "terminal-session",
32724
+ capScope: "system",
32725
+ addonId: null,
32726
+ access: "create"
32727
+ },
32443
32728
  "terminalSession.writeInput": {
32444
32729
  capName: "terminal-session",
32445
32730
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-rtsp",
3
- "version": "1.2.12",
3
+ "version": "1.2.13",
4
4
  "description": "Generic RTSP camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",