@camstack/addon-provider-homematic 1.2.12 → 1.2.14

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 +357 -30
  2. package/dist/addon.mjs +357 -30
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -7574,12 +7574,11 @@ var RecordingConfigSchema = object({
7574
7574
  /**
7575
7575
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7576
7576
  *
7577
- * One shape shared by the recorder's `relocateFootage` (segments) and
7578
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7579
- * page renders both movers with one component. Jobs are in-RAM (a restart
7580
- * forgets them — re-running is safe by construction: copy-if-absent, delete
7581
- * after verify) and each completed/failed run also lands one durable ops-log
7582
- * row on the owning addon's surface.
7577
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7578
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7579
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7580
+ * Each completed/failed run also lands one durable ops-log row on its owning
7581
+ * addon surface.
7583
7582
  */
7584
7583
  var RelocateJobStateSchema = _enum([
7585
7584
  "running",
@@ -7606,19 +7605,100 @@ var RelocateJobSchema = object({
7606
7605
  finishedAt: number().nullable(),
7607
7606
  error: string().nullable()
7608
7607
  });
7608
+ /** Profile-derived footage selection used only by the migration coordinator:
7609
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7610
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7609
7611
  var RelocateFootageInputSchema = object({
7610
- deviceId: number().optional(),
7611
7612
  fromLocationId: string(),
7612
7613
  toLocationId: string(),
7613
7614
  entities: array(_enum(["segments"])).optional(),
7615
+ /** Limits relocation to the logical profile class. Omit only for the
7616
+ * pre-orchestration compatibility path. */
7617
+ footageClass: RelocateFootageClassSchema.optional(),
7614
7618
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7615
7619
  * never allowed to starve live writers. */
7616
7620
  throttleMbps: number().min(1).max(1e3).optional()
7617
7621
  });
7618
- var RelocateMediaInputSchema = object({
7619
- deviceId: number().optional(),
7622
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7623
+ * from persistent recording settings: a migration never changes
7624
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7625
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7626
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7627
+ var StorageMigrationMediaMoveInputSchema = object({
7620
7628
  toLocationId: string(),
7621
7629
  throttleMbps: number().min(1).max(1e3).optional()
7630
+ }).extend({ leaseId: string().min(1) });
7631
+ /** The independently selectable logical storage classes. `recordings`
7632
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7633
+ * segments; `eventMedia` is post-analysis blobs. */
7634
+ var StorageMigrationClassSchema = _enum([
7635
+ "recordings",
7636
+ "recordingsLow",
7637
+ "eventMedia"
7638
+ ]);
7639
+ /** A destination is always an existing, fully-qualified location id. The
7640
+ * migration API intentionally never changes a source location's `basePath`:
7641
+ * callers create a new `<type>:<slug>` location, then select it here. */
7642
+ var StorageMigrationDestinationsSchema = object({
7643
+ recordings: string().min(1).optional(),
7644
+ recordingsLow: string().min(1).optional(),
7645
+ eventMedia: string().min(1).optional()
7646
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7647
+ /** Shared input for planning and starting an orchestrated storage migration. */
7648
+ var StorageMigrationInputSchema = object({
7649
+ destinations: StorageMigrationDestinationsSchema,
7650
+ throttleMbps: number().min(1).max(1e3).optional()
7651
+ });
7652
+ /** The durable coordinator state machine. The only phase that changes default
7653
+ * locations is `repointing`, after every selected mover has completed and been
7654
+ * verified. */
7655
+ var StorageMigrationPhaseSchema = _enum([
7656
+ "planning",
7657
+ "pausing",
7658
+ "moving",
7659
+ "verifying",
7660
+ "repointing",
7661
+ "refreshing",
7662
+ "resuming",
7663
+ "done",
7664
+ "failed",
7665
+ "cancelled"
7666
+ ]);
7667
+ var StorageMigrationParticipantSchema = _enum([
7668
+ "pipeline",
7669
+ "recorder",
7670
+ "analytics"
7671
+ ]);
7672
+ var StorageMigrationMoveSchema = object({
7673
+ storageClass: StorageMigrationClassSchema,
7674
+ fromLocationId: string(),
7675
+ toLocationId: string(),
7676
+ moverJobId: string().nullable(),
7677
+ state: RelocateJobStateSchema.nullable(),
7678
+ error: string().nullable()
7679
+ });
7680
+ var StorageMigrationJobSchema = object({
7681
+ jobId: string(),
7682
+ phase: StorageMigrationPhaseSchema,
7683
+ destinations: StorageMigrationDestinationsSchema,
7684
+ throttleMbps: number(),
7685
+ moves: array(StorageMigrationMoveSchema),
7686
+ pauseLeaseId: string().nullable(),
7687
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7688
+ repointed: boolean(),
7689
+ cancelRequested: boolean(),
7690
+ startedAt: number(),
7691
+ updatedAt: number(),
7692
+ finishedAt: number().nullable(),
7693
+ error: string().nullable()
7694
+ });
7695
+ var StorageMigrationPlanSchema = object({
7696
+ destinations: StorageMigrationDestinationsSchema,
7697
+ moves: array(object({
7698
+ storageClass: StorageMigrationClassSchema,
7699
+ fromLocationId: string(),
7700
+ toLocationId: string()
7701
+ }))
7622
7702
  });
7623
7703
  /**
7624
7704
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16338,13 +16418,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16338
16418
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16339
16419
  kind: "mutation",
16340
16420
  auth: "admin"
16341
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16421
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16342
16422
  kind: "mutation",
16343
16423
  auth: "admin"
16344
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16345
- kind: "query",
16424
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16425
+ kind: "mutation",
16346
16426
  auth: "admin"
16347
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16427
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16428
+ kind: "mutation",
16429
+ auth: "admin"
16430
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16431
+ kind: "mutation",
16432
+ auth: "admin"
16433
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16348
16434
  kind: "mutation",
16349
16435
  auth: "admin"
16350
16436
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17874,7 +17960,13 @@ var NodeInferenceDevicesSchema = object({
17874
17960
  reachable: boolean(),
17875
17961
  devices: array(NodeInferenceDeviceSchema).readonly()
17876
17962
  });
17877
- method(object({
17963
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17964
+ kind: "mutation",
17965
+ auth: "admin"
17966
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17967
+ kind: "mutation",
17968
+ auth: "admin"
17969
+ }), method(object({
17878
17970
  deviceId: number(),
17879
17971
  agentNodeId: string()
17880
17972
  }), object({ success: literal(true) }), {
@@ -18548,6 +18640,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18548
18640
  locationId: string(),
18549
18641
  targetBytes: number().int().positive()
18550
18642
  }), EvictResultSchema, { kind: "mutation" });
18643
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18644
+ kind: "mutation",
18645
+ auth: "admin"
18646
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18647
+ kind: "mutation",
18648
+ auth: "admin"
18649
+ });
18551
18650
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18552
18651
  providerId: string().min(1),
18553
18652
  displayName: string().min(1),
@@ -18651,7 +18750,67 @@ var TerminalProfileInfoSchema = object({
18651
18750
  label: string(),
18652
18751
  description: string().optional()
18653
18752
  });
18654
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18753
+ /**
18754
+ * A durable operator-created Terminal instance. Profiles are templates; only
18755
+ * an instance declares a camera.
18756
+ */
18757
+ var TerminalInstanceInfoSchema = object({
18758
+ instanceId: string(),
18759
+ cameraStableId: string(),
18760
+ nodeId: string(),
18761
+ profileId: string(),
18762
+ profileLabel: string(),
18763
+ name: string(),
18764
+ enabled: boolean()
18765
+ });
18766
+ var TerminalLegacyCameraSchema = object({
18767
+ stableId: string(),
18768
+ nodeId: string(),
18769
+ profileId: string(),
18770
+ profileLabel: string(),
18771
+ name: string(),
18772
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18773
+ adoptable: boolean()
18774
+ });
18775
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18776
+ seq: number().int().positive(),
18777
+ kind: literal("data"),
18778
+ data: string()
18779
+ }), object({
18780
+ seq: number().int().positive(),
18781
+ kind: literal("exit"),
18782
+ exitCode: number().int(),
18783
+ signal: number().int().optional()
18784
+ })]);
18785
+ var TerminalOutputBatchSchema = object({
18786
+ cursor: number().int().nonnegative(),
18787
+ reset: boolean(),
18788
+ snapshot: string().optional(),
18789
+ events: array(TerminalOutputEventSchema).readonly()
18790
+ });
18791
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18792
+ targetNodeId: string().min(1),
18793
+ profileId: string().min(1),
18794
+ name: string().trim().min(1).max(160).optional()
18795
+ }), TerminalInstanceInfoSchema, {
18796
+ kind: "mutation",
18797
+ auth: "admin"
18798
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18799
+ kind: "mutation",
18800
+ auth: "admin"
18801
+ }), method(object({
18802
+ instanceId: string().min(1),
18803
+ enabled: boolean()
18804
+ }), TerminalInstanceInfoSchema, {
18805
+ kind: "mutation",
18806
+ auth: "admin"
18807
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18808
+ stableId: string().min(1),
18809
+ name: string().trim().min(1).max(160).optional()
18810
+ }), TerminalInstanceInfoSchema, {
18811
+ kind: "mutation",
18812
+ auth: "admin"
18813
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18655
18814
  profileId: string(),
18656
18815
  cols: number().int().positive(),
18657
18816
  rows: number().int().positive()
@@ -18665,6 +18824,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18665
18824
  }), _void(), {
18666
18825
  kind: "mutation",
18667
18826
  auth: "admin"
18827
+ }), method(object({
18828
+ sessionId: string(),
18829
+ afterSeq: number().int().nonnegative(),
18830
+ waitMs: number().int().min(0).max(2e3).default(0),
18831
+ /**
18832
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18833
+ * browser's initial repaint remains immediate; the camera snapshot
18834
+ * relay uses it to avoid encoding a blank startup frame.
18835
+ */
18836
+ waitForOutput: boolean().optional()
18837
+ }), TerminalOutputBatchSchema, {
18838
+ kind: "mutation",
18839
+ auth: "admin",
18840
+ timeoutMs: 15e3
18841
+ }), method(object({
18842
+ sessionId: string(),
18843
+ data: string().max(64 * 1024)
18844
+ }), _void(), {
18845
+ kind: "mutation",
18846
+ auth: "admin"
18668
18847
  }), method(object({ sessionId: string() }), _void(), {
18669
18848
  kind: "mutation",
18670
18849
  auth: "admin"
@@ -21152,6 +21331,7 @@ var FaceInfoSchema = object({
21152
21331
  var FaceFilterEnum = _enum([
21153
21332
  "unassigned",
21154
21333
  "recognized",
21334
+ "identified",
21155
21335
  "all"
21156
21336
  ]);
21157
21337
  var MediaFileLiteSchema$1 = object({
@@ -21180,6 +21360,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21180
21360
  kind: "mutation",
21181
21361
  auth: "admin"
21182
21362
  }), method(object({
21363
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21364
+ deviceId: number().int().optional(),
21183
21365
  limit: number().int().positive().optional(),
21184
21366
  filter: FaceFilterEnum.optional(),
21185
21367
  /**
@@ -23409,6 +23591,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23409
23591
  capName: string().min(1).max(64),
23410
23592
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23411
23593
  valuePath: string().min(1).max(64)
23594
+ }),
23595
+ object({
23596
+ kind: literal("latest-recognition"),
23597
+ recognition: _enum(["person", "plate"])
23412
23598
  })
23413
23599
  ]);
23414
23600
  var OsdSlotBindingSchema = object({
@@ -23514,6 +23700,15 @@ method(object({ deviceId: number().int() }), object({
23514
23700
  }), object({ success: literal(true) }), {
23515
23701
  kind: "mutation",
23516
23702
  auth: "admin"
23703
+ }), method(object({
23704
+ sourceDeviceId: number().int(),
23705
+ targetDeviceId: number().int()
23706
+ }), object({
23707
+ copied: number().int().nonnegative(),
23708
+ skipped: number().int().nonnegative()
23709
+ }), {
23710
+ kind: "mutation",
23711
+ auth: "admin"
23517
23712
  }), method(object({
23518
23713
  deviceId: number().int(),
23519
23714
  slotId: string().min(1),
@@ -24611,13 +24806,19 @@ method(object({
24611
24806
  }), {
24612
24807
  kind: "mutation",
24613
24808
  auth: "admin"
24614
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
24809
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24615
24810
  kind: "mutation",
24616
24811
  auth: "admin"
24617
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24618
- kind: "query",
24812
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24813
+ kind: "mutation",
24619
24814
  auth: "admin"
24620
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24815
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
24816
+ kind: "mutation",
24817
+ auth: "admin"
24818
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
24819
+ kind: "mutation",
24820
+ auth: "admin"
24821
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24621
24822
  kind: "mutation",
24622
24823
  auth: "admin"
24623
24824
  });
@@ -30223,6 +30424,12 @@ Object.freeze({
30223
30424
  addonId: null,
30224
30425
  access: "delete"
30225
30426
  },
30427
+ "osdManager.copyDeviceConfiguration": {
30428
+ capName: "osd-manager",
30429
+ capScope: "system",
30430
+ addonId: null,
30431
+ access: "create"
30432
+ },
30226
30433
  "osdManager.getConditionSupport": {
30227
30434
  capName: "osd-manager",
30228
30435
  capScope: "system",
@@ -30319,7 +30526,7 @@ Object.freeze({
30319
30526
  addonId: null,
30320
30527
  access: "create"
30321
30528
  },
30322
- "pipelineAnalytics.cancelMediaRelocate": {
30529
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30323
30530
  capName: "pipeline-analytics",
30324
30531
  capScope: "device",
30325
30532
  addonId: null,
@@ -30391,12 +30598,6 @@ Object.freeze({
30391
30598
  addonId: null,
30392
30599
  access: "view"
30393
30600
  },
30394
- "pipelineAnalytics.getMediaRelocateStatus": {
30395
- capName: "pipeline-analytics",
30396
- capScope: "device",
30397
- addonId: null,
30398
- access: "view"
30399
- },
30400
30601
  "pipelineAnalytics.getMotionEvents": {
30401
30602
  capName: "pipeline-analytics",
30402
30603
  capScope: "device",
@@ -30433,6 +30634,12 @@ Object.freeze({
30433
30634
  addonId: null,
30434
30635
  access: "view"
30435
30636
  },
30637
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30638
+ capName: "pipeline-analytics",
30639
+ capScope: "device",
30640
+ addonId: null,
30641
+ access: "view"
30642
+ },
30436
30643
  "pipelineAnalytics.getTrack": {
30437
30644
  capName: "pipeline-analytics",
30438
30645
  capScope: "device",
@@ -30511,6 +30718,12 @@ Object.freeze({
30511
30718
  addonId: null,
30512
30719
  access: "view"
30513
30720
  },
30721
+ "pipelineAnalytics.pauseForStorageMigration": {
30722
+ capName: "pipeline-analytics",
30723
+ capScope: "device",
30724
+ addonId: null,
30725
+ access: "create"
30726
+ },
30514
30727
  "pipelineAnalytics.proposeRetrainAnnotations": {
30515
30728
  capName: "pipeline-analytics",
30516
30729
  capScope: "device",
@@ -30541,7 +30754,7 @@ Object.freeze({
30541
30754
  addonId: null,
30542
30755
  access: "create"
30543
30756
  },
30544
- "pipelineAnalytics.relocateMedia": {
30757
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30545
30758
  capName: "pipeline-analytics",
30546
30759
  capScope: "device",
30547
30760
  addonId: null,
@@ -30553,6 +30766,12 @@ Object.freeze({
30553
30766
  addonId: null,
30554
30767
  access: "create"
30555
30768
  },
30769
+ "pipelineAnalytics.resumeForStorageMigration": {
30770
+ capName: "pipeline-analytics",
30771
+ capScope: "device",
30772
+ addonId: null,
30773
+ access: "create"
30774
+ },
30556
30775
  "pipelineAnalytics.saveRetrainAnnotations": {
30557
30776
  capName: "pipeline-analytics",
30558
30777
  capScope: "device",
@@ -30577,6 +30796,12 @@ Object.freeze({
30577
30796
  addonId: null,
30578
30797
  access: "create"
30579
30798
  },
30799
+ "pipelineAnalytics.startStorageMigrationMove": {
30800
+ capName: "pipeline-analytics",
30801
+ capScope: "device",
30802
+ addonId: null,
30803
+ access: "create"
30804
+ },
30580
30805
  "pipelineAnalytics.wipeAllAnalytics": {
30581
30806
  capName: "pipeline-analytics",
30582
30807
  capScope: "device",
@@ -30943,6 +31168,12 @@ Object.freeze({
30943
31168
  addonId: null,
30944
31169
  access: "view"
30945
31170
  },
31171
+ "pipelineOrchestrator.pauseForStorageMigration": {
31172
+ capName: "pipeline-orchestrator",
31173
+ capScope: "system",
31174
+ addonId: null,
31175
+ access: "create"
31176
+ },
30946
31177
  "pipelineOrchestrator.rebalance": {
30947
31178
  capName: "pipeline-orchestrator",
30948
31179
  capScope: "system",
@@ -30967,6 +31198,12 @@ Object.freeze({
30967
31198
  addonId: null,
30968
31199
  access: "view"
30969
31200
  },
31201
+ "pipelineOrchestrator.resumeForStorageMigration": {
31202
+ capName: "pipeline-orchestrator",
31203
+ capScope: "system",
31204
+ addonId: null,
31205
+ access: "create"
31206
+ },
30970
31207
  "pipelineOrchestrator.saveTemplate": {
30971
31208
  capName: "pipeline-orchestrator",
30972
31209
  capScope: "system",
@@ -31363,7 +31600,7 @@ Object.freeze({
31363
31600
  addonId: null,
31364
31601
  access: "create"
31365
31602
  },
31366
- "recording.cancelRelocate": {
31603
+ "recording.cancelStorageMigrationMove": {
31367
31604
  capName: "recording",
31368
31605
  capScope: "system",
31369
31606
  addonId: null,
@@ -31399,7 +31636,7 @@ Object.freeze({
31399
31636
  addonId: null,
31400
31637
  access: "view"
31401
31638
  },
31402
- "recording.getRelocateStatus": {
31639
+ "recording.getStorageMigrationMoveStatus": {
31403
31640
  capName: "recording",
31404
31641
  capScope: "system",
31405
31642
  addonId: null,
@@ -31423,6 +31660,12 @@ Object.freeze({
31423
31660
  addonId: null,
31424
31661
  access: "view"
31425
31662
  },
31663
+ "recording.pauseForStorageMigration": {
31664
+ capName: "recording",
31665
+ capScope: "system",
31666
+ addonId: null,
31667
+ access: "create"
31668
+ },
31426
31669
  "recording.pruneFootage": {
31427
31670
  capName: "recording",
31428
31671
  capScope: "system",
@@ -31441,7 +31684,7 @@ Object.freeze({
31441
31684
  addonId: null,
31442
31685
  access: "view"
31443
31686
  },
31444
- "recording.relocateFootage": {
31687
+ "recording.refreshStorageLocationsForMigration": {
31445
31688
  capName: "recording",
31446
31689
  capScope: "system",
31447
31690
  addonId: null,
@@ -31465,12 +31708,24 @@ Object.freeze({
31465
31708
  addonId: null,
31466
31709
  access: "create"
31467
31710
  },
31711
+ "recording.resumeForStorageMigration": {
31712
+ capName: "recording",
31713
+ capScope: "system",
31714
+ addonId: null,
31715
+ access: "create"
31716
+ },
31468
31717
  "recording.setDeviceConfig": {
31469
31718
  capName: "recording",
31470
31719
  capScope: "system",
31471
31720
  addonId: null,
31472
31721
  access: "create"
31473
31722
  },
31723
+ "recording.startStorageMigrationMove": {
31724
+ capName: "recording",
31725
+ capScope: "system",
31726
+ addonId: null,
31727
+ access: "create"
31728
+ },
31474
31729
  "recordingExport.cancelExport": {
31475
31730
  capName: "recordingExport",
31476
31731
  capScope: "system",
@@ -31861,6 +32116,30 @@ Object.freeze({
31861
32116
  addonId: null,
31862
32117
  access: "view"
31863
32118
  },
32119
+ "storageMigration.cancel": {
32120
+ capName: "storage-migration",
32121
+ capScope: "system",
32122
+ addonId: null,
32123
+ access: "create"
32124
+ },
32125
+ "storageMigration.plan": {
32126
+ capName: "storage-migration",
32127
+ capScope: "system",
32128
+ addonId: null,
32129
+ access: "view"
32130
+ },
32131
+ "storageMigration.start": {
32132
+ capName: "storage-migration",
32133
+ capScope: "system",
32134
+ addonId: null,
32135
+ access: "create"
32136
+ },
32137
+ "storageMigration.status": {
32138
+ capName: "storage-migration",
32139
+ capScope: "system",
32140
+ addonId: null,
32141
+ access: "view"
32142
+ },
31864
32143
  "storageProvider.abortUpload": {
31865
32144
  capName: "storage-provider",
31866
32145
  capScope: "system",
@@ -32239,12 +32518,42 @@ Object.freeze({
32239
32518
  addonId: null,
32240
32519
  access: "create"
32241
32520
  },
32521
+ "terminalSession.adoptLegacyMonitor": {
32522
+ capName: "terminal-session",
32523
+ capScope: "system",
32524
+ addonId: null,
32525
+ access: "create"
32526
+ },
32242
32527
  "terminalSession.close": {
32243
32528
  capName: "terminal-session",
32244
32529
  capScope: "system",
32245
32530
  addonId: null,
32246
32531
  access: "create"
32247
32532
  },
32533
+ "terminalSession.createInstance": {
32534
+ capName: "terminal-session",
32535
+ capScope: "system",
32536
+ addonId: null,
32537
+ access: "create"
32538
+ },
32539
+ "terminalSession.deleteInstance": {
32540
+ capName: "terminal-session",
32541
+ capScope: "system",
32542
+ addonId: null,
32543
+ access: "delete"
32544
+ },
32545
+ "terminalSession.listInstances": {
32546
+ capName: "terminal-session",
32547
+ capScope: "system",
32548
+ addonId: null,
32549
+ access: "view"
32550
+ },
32551
+ "terminalSession.listLegacyCameras": {
32552
+ capName: "terminal-session",
32553
+ capScope: "system",
32554
+ addonId: null,
32555
+ access: "view"
32556
+ },
32248
32557
  "terminalSession.listProfiles": {
32249
32558
  capName: "terminal-session",
32250
32559
  capScope: "system",
@@ -32263,12 +32572,30 @@ Object.freeze({
32263
32572
  addonId: null,
32264
32573
  access: "create"
32265
32574
  },
32575
+ "terminalSession.pullOutput": {
32576
+ capName: "terminal-session",
32577
+ capScope: "system",
32578
+ addonId: null,
32579
+ access: "create"
32580
+ },
32266
32581
  "terminalSession.resize": {
32267
32582
  capName: "terminal-session",
32268
32583
  capScope: "system",
32269
32584
  addonId: null,
32270
32585
  access: "create"
32271
32586
  },
32587
+ "terminalSession.setInstanceEnabled": {
32588
+ capName: "terminal-session",
32589
+ capScope: "system",
32590
+ addonId: null,
32591
+ access: "create"
32592
+ },
32593
+ "terminalSession.writeInput": {
32594
+ capName: "terminal-session",
32595
+ capScope: "system",
32596
+ addonId: null,
32597
+ access: "create"
32598
+ },
32272
32599
  "toast.onToast": {
32273
32600
  capName: "toast",
32274
32601
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -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
@@ -16339,13 +16419,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16339
16419
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16340
16420
  kind: "mutation",
16341
16421
  auth: "admin"
16342
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16422
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16343
16423
  kind: "mutation",
16344
16424
  auth: "admin"
16345
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16346
- kind: "query",
16425
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16426
+ kind: "mutation",
16347
16427
  auth: "admin"
16348
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16428
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16429
+ kind: "mutation",
16430
+ auth: "admin"
16431
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16432
+ kind: "mutation",
16433
+ auth: "admin"
16434
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16349
16435
  kind: "mutation",
16350
16436
  auth: "admin"
16351
16437
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17875,7 +17961,13 @@ var NodeInferenceDevicesSchema = object({
17875
17961
  reachable: boolean(),
17876
17962
  devices: array(NodeInferenceDeviceSchema).readonly()
17877
17963
  });
17878
- method(object({
17964
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17965
+ kind: "mutation",
17966
+ auth: "admin"
17967
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17968
+ kind: "mutation",
17969
+ auth: "admin"
17970
+ }), method(object({
17879
17971
  deviceId: number(),
17880
17972
  agentNodeId: string()
17881
17973
  }), object({ success: literal(true) }), {
@@ -18549,6 +18641,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18549
18641
  locationId: string(),
18550
18642
  targetBytes: number().int().positive()
18551
18643
  }), EvictResultSchema, { kind: "mutation" });
18644
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18645
+ kind: "mutation",
18646
+ auth: "admin"
18647
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18648
+ kind: "mutation",
18649
+ auth: "admin"
18650
+ });
18552
18651
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18553
18652
  providerId: string().min(1),
18554
18653
  displayName: string().min(1),
@@ -18652,7 +18751,67 @@ var TerminalProfileInfoSchema = object({
18652
18751
  label: string(),
18653
18752
  description: string().optional()
18654
18753
  });
18655
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18754
+ /**
18755
+ * A durable operator-created Terminal instance. Profiles are templates; only
18756
+ * an instance declares a camera.
18757
+ */
18758
+ var TerminalInstanceInfoSchema = object({
18759
+ instanceId: string(),
18760
+ cameraStableId: string(),
18761
+ nodeId: string(),
18762
+ profileId: string(),
18763
+ profileLabel: string(),
18764
+ name: string(),
18765
+ enabled: boolean()
18766
+ });
18767
+ var TerminalLegacyCameraSchema = object({
18768
+ stableId: string(),
18769
+ nodeId: string(),
18770
+ profileId: string(),
18771
+ profileLabel: string(),
18772
+ name: string(),
18773
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18774
+ adoptable: boolean()
18775
+ });
18776
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18777
+ seq: number().int().positive(),
18778
+ kind: literal("data"),
18779
+ data: string()
18780
+ }), object({
18781
+ seq: number().int().positive(),
18782
+ kind: literal("exit"),
18783
+ exitCode: number().int(),
18784
+ signal: number().int().optional()
18785
+ })]);
18786
+ var TerminalOutputBatchSchema = object({
18787
+ cursor: number().int().nonnegative(),
18788
+ reset: boolean(),
18789
+ snapshot: string().optional(),
18790
+ events: array(TerminalOutputEventSchema).readonly()
18791
+ });
18792
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18793
+ targetNodeId: string().min(1),
18794
+ profileId: string().min(1),
18795
+ name: string().trim().min(1).max(160).optional()
18796
+ }), TerminalInstanceInfoSchema, {
18797
+ kind: "mutation",
18798
+ auth: "admin"
18799
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18800
+ kind: "mutation",
18801
+ auth: "admin"
18802
+ }), method(object({
18803
+ instanceId: string().min(1),
18804
+ enabled: boolean()
18805
+ }), TerminalInstanceInfoSchema, {
18806
+ kind: "mutation",
18807
+ auth: "admin"
18808
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18809
+ stableId: string().min(1),
18810
+ name: string().trim().min(1).max(160).optional()
18811
+ }), TerminalInstanceInfoSchema, {
18812
+ kind: "mutation",
18813
+ auth: "admin"
18814
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18656
18815
  profileId: string(),
18657
18816
  cols: number().int().positive(),
18658
18817
  rows: number().int().positive()
@@ -18666,6 +18825,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18666
18825
  }), _void(), {
18667
18826
  kind: "mutation",
18668
18827
  auth: "admin"
18828
+ }), method(object({
18829
+ sessionId: string(),
18830
+ afterSeq: number().int().nonnegative(),
18831
+ waitMs: number().int().min(0).max(2e3).default(0),
18832
+ /**
18833
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18834
+ * browser's initial repaint remains immediate; the camera snapshot
18835
+ * relay uses it to avoid encoding a blank startup frame.
18836
+ */
18837
+ waitForOutput: boolean().optional()
18838
+ }), TerminalOutputBatchSchema, {
18839
+ kind: "mutation",
18840
+ auth: "admin",
18841
+ timeoutMs: 15e3
18842
+ }), method(object({
18843
+ sessionId: string(),
18844
+ data: string().max(64 * 1024)
18845
+ }), _void(), {
18846
+ kind: "mutation",
18847
+ auth: "admin"
18669
18848
  }), method(object({ sessionId: string() }), _void(), {
18670
18849
  kind: "mutation",
18671
18850
  auth: "admin"
@@ -21153,6 +21332,7 @@ var FaceInfoSchema = object({
21153
21332
  var FaceFilterEnum = _enum([
21154
21333
  "unassigned",
21155
21334
  "recognized",
21335
+ "identified",
21156
21336
  "all"
21157
21337
  ]);
21158
21338
  var MediaFileLiteSchema$1 = object({
@@ -21181,6 +21361,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21181
21361
  kind: "mutation",
21182
21362
  auth: "admin"
21183
21363
  }), method(object({
21364
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21365
+ deviceId: number().int().optional(),
21184
21366
  limit: number().int().positive().optional(),
21185
21367
  filter: FaceFilterEnum.optional(),
21186
21368
  /**
@@ -23410,6 +23592,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23410
23592
  capName: string().min(1).max(64),
23411
23593
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23412
23594
  valuePath: string().min(1).max(64)
23595
+ }),
23596
+ object({
23597
+ kind: literal("latest-recognition"),
23598
+ recognition: _enum(["person", "plate"])
23413
23599
  })
23414
23600
  ]);
23415
23601
  var OsdSlotBindingSchema = object({
@@ -23515,6 +23701,15 @@ method(object({ deviceId: number().int() }), object({
23515
23701
  }), object({ success: literal(true) }), {
23516
23702
  kind: "mutation",
23517
23703
  auth: "admin"
23704
+ }), method(object({
23705
+ sourceDeviceId: number().int(),
23706
+ targetDeviceId: number().int()
23707
+ }), object({
23708
+ copied: number().int().nonnegative(),
23709
+ skipped: number().int().nonnegative()
23710
+ }), {
23711
+ kind: "mutation",
23712
+ auth: "admin"
23518
23713
  }), method(object({
23519
23714
  deviceId: number().int(),
23520
23715
  slotId: string().min(1),
@@ -24612,13 +24807,19 @@ method(object({
24612
24807
  }), {
24613
24808
  kind: "mutation",
24614
24809
  auth: "admin"
24615
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
24810
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24616
24811
  kind: "mutation",
24617
24812
  auth: "admin"
24618
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24619
- kind: "query",
24813
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24814
+ kind: "mutation",
24620
24815
  auth: "admin"
24621
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24816
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
24817
+ kind: "mutation",
24818
+ auth: "admin"
24819
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
24820
+ kind: "mutation",
24821
+ auth: "admin"
24822
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24622
24823
  kind: "mutation",
24623
24824
  auth: "admin"
24624
24825
  });
@@ -30224,6 +30425,12 @@ Object.freeze({
30224
30425
  addonId: null,
30225
30426
  access: "delete"
30226
30427
  },
30428
+ "osdManager.copyDeviceConfiguration": {
30429
+ capName: "osd-manager",
30430
+ capScope: "system",
30431
+ addonId: null,
30432
+ access: "create"
30433
+ },
30227
30434
  "osdManager.getConditionSupport": {
30228
30435
  capName: "osd-manager",
30229
30436
  capScope: "system",
@@ -30320,7 +30527,7 @@ Object.freeze({
30320
30527
  addonId: null,
30321
30528
  access: "create"
30322
30529
  },
30323
- "pipelineAnalytics.cancelMediaRelocate": {
30530
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30324
30531
  capName: "pipeline-analytics",
30325
30532
  capScope: "device",
30326
30533
  addonId: null,
@@ -30392,12 +30599,6 @@ Object.freeze({
30392
30599
  addonId: null,
30393
30600
  access: "view"
30394
30601
  },
30395
- "pipelineAnalytics.getMediaRelocateStatus": {
30396
- capName: "pipeline-analytics",
30397
- capScope: "device",
30398
- addonId: null,
30399
- access: "view"
30400
- },
30401
30602
  "pipelineAnalytics.getMotionEvents": {
30402
30603
  capName: "pipeline-analytics",
30403
30604
  capScope: "device",
@@ -30434,6 +30635,12 @@ Object.freeze({
30434
30635
  addonId: null,
30435
30636
  access: "view"
30436
30637
  },
30638
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30639
+ capName: "pipeline-analytics",
30640
+ capScope: "device",
30641
+ addonId: null,
30642
+ access: "view"
30643
+ },
30437
30644
  "pipelineAnalytics.getTrack": {
30438
30645
  capName: "pipeline-analytics",
30439
30646
  capScope: "device",
@@ -30512,6 +30719,12 @@ Object.freeze({
30512
30719
  addonId: null,
30513
30720
  access: "view"
30514
30721
  },
30722
+ "pipelineAnalytics.pauseForStorageMigration": {
30723
+ capName: "pipeline-analytics",
30724
+ capScope: "device",
30725
+ addonId: null,
30726
+ access: "create"
30727
+ },
30515
30728
  "pipelineAnalytics.proposeRetrainAnnotations": {
30516
30729
  capName: "pipeline-analytics",
30517
30730
  capScope: "device",
@@ -30542,7 +30755,7 @@ Object.freeze({
30542
30755
  addonId: null,
30543
30756
  access: "create"
30544
30757
  },
30545
- "pipelineAnalytics.relocateMedia": {
30758
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30546
30759
  capName: "pipeline-analytics",
30547
30760
  capScope: "device",
30548
30761
  addonId: null,
@@ -30554,6 +30767,12 @@ Object.freeze({
30554
30767
  addonId: null,
30555
30768
  access: "create"
30556
30769
  },
30770
+ "pipelineAnalytics.resumeForStorageMigration": {
30771
+ capName: "pipeline-analytics",
30772
+ capScope: "device",
30773
+ addonId: null,
30774
+ access: "create"
30775
+ },
30557
30776
  "pipelineAnalytics.saveRetrainAnnotations": {
30558
30777
  capName: "pipeline-analytics",
30559
30778
  capScope: "device",
@@ -30578,6 +30797,12 @@ Object.freeze({
30578
30797
  addonId: null,
30579
30798
  access: "create"
30580
30799
  },
30800
+ "pipelineAnalytics.startStorageMigrationMove": {
30801
+ capName: "pipeline-analytics",
30802
+ capScope: "device",
30803
+ addonId: null,
30804
+ access: "create"
30805
+ },
30581
30806
  "pipelineAnalytics.wipeAllAnalytics": {
30582
30807
  capName: "pipeline-analytics",
30583
30808
  capScope: "device",
@@ -30944,6 +31169,12 @@ Object.freeze({
30944
31169
  addonId: null,
30945
31170
  access: "view"
30946
31171
  },
31172
+ "pipelineOrchestrator.pauseForStorageMigration": {
31173
+ capName: "pipeline-orchestrator",
31174
+ capScope: "system",
31175
+ addonId: null,
31176
+ access: "create"
31177
+ },
30947
31178
  "pipelineOrchestrator.rebalance": {
30948
31179
  capName: "pipeline-orchestrator",
30949
31180
  capScope: "system",
@@ -30968,6 +31199,12 @@ Object.freeze({
30968
31199
  addonId: null,
30969
31200
  access: "view"
30970
31201
  },
31202
+ "pipelineOrchestrator.resumeForStorageMigration": {
31203
+ capName: "pipeline-orchestrator",
31204
+ capScope: "system",
31205
+ addonId: null,
31206
+ access: "create"
31207
+ },
30971
31208
  "pipelineOrchestrator.saveTemplate": {
30972
31209
  capName: "pipeline-orchestrator",
30973
31210
  capScope: "system",
@@ -31364,7 +31601,7 @@ Object.freeze({
31364
31601
  addonId: null,
31365
31602
  access: "create"
31366
31603
  },
31367
- "recording.cancelRelocate": {
31604
+ "recording.cancelStorageMigrationMove": {
31368
31605
  capName: "recording",
31369
31606
  capScope: "system",
31370
31607
  addonId: null,
@@ -31400,7 +31637,7 @@ Object.freeze({
31400
31637
  addonId: null,
31401
31638
  access: "view"
31402
31639
  },
31403
- "recording.getRelocateStatus": {
31640
+ "recording.getStorageMigrationMoveStatus": {
31404
31641
  capName: "recording",
31405
31642
  capScope: "system",
31406
31643
  addonId: null,
@@ -31424,6 +31661,12 @@ Object.freeze({
31424
31661
  addonId: null,
31425
31662
  access: "view"
31426
31663
  },
31664
+ "recording.pauseForStorageMigration": {
31665
+ capName: "recording",
31666
+ capScope: "system",
31667
+ addonId: null,
31668
+ access: "create"
31669
+ },
31427
31670
  "recording.pruneFootage": {
31428
31671
  capName: "recording",
31429
31672
  capScope: "system",
@@ -31442,7 +31685,7 @@ Object.freeze({
31442
31685
  addonId: null,
31443
31686
  access: "view"
31444
31687
  },
31445
- "recording.relocateFootage": {
31688
+ "recording.refreshStorageLocationsForMigration": {
31446
31689
  capName: "recording",
31447
31690
  capScope: "system",
31448
31691
  addonId: null,
@@ -31466,12 +31709,24 @@ Object.freeze({
31466
31709
  addonId: null,
31467
31710
  access: "create"
31468
31711
  },
31712
+ "recording.resumeForStorageMigration": {
31713
+ capName: "recording",
31714
+ capScope: "system",
31715
+ addonId: null,
31716
+ access: "create"
31717
+ },
31469
31718
  "recording.setDeviceConfig": {
31470
31719
  capName: "recording",
31471
31720
  capScope: "system",
31472
31721
  addonId: null,
31473
31722
  access: "create"
31474
31723
  },
31724
+ "recording.startStorageMigrationMove": {
31725
+ capName: "recording",
31726
+ capScope: "system",
31727
+ addonId: null,
31728
+ access: "create"
31729
+ },
31475
31730
  "recordingExport.cancelExport": {
31476
31731
  capName: "recordingExport",
31477
31732
  capScope: "system",
@@ -31862,6 +32117,30 @@ Object.freeze({
31862
32117
  addonId: null,
31863
32118
  access: "view"
31864
32119
  },
32120
+ "storageMigration.cancel": {
32121
+ capName: "storage-migration",
32122
+ capScope: "system",
32123
+ addonId: null,
32124
+ access: "create"
32125
+ },
32126
+ "storageMigration.plan": {
32127
+ capName: "storage-migration",
32128
+ capScope: "system",
32129
+ addonId: null,
32130
+ access: "view"
32131
+ },
32132
+ "storageMigration.start": {
32133
+ capName: "storage-migration",
32134
+ capScope: "system",
32135
+ addonId: null,
32136
+ access: "create"
32137
+ },
32138
+ "storageMigration.status": {
32139
+ capName: "storage-migration",
32140
+ capScope: "system",
32141
+ addonId: null,
32142
+ access: "view"
32143
+ },
31865
32144
  "storageProvider.abortUpload": {
31866
32145
  capName: "storage-provider",
31867
32146
  capScope: "system",
@@ -32240,12 +32519,42 @@ Object.freeze({
32240
32519
  addonId: null,
32241
32520
  access: "create"
32242
32521
  },
32522
+ "terminalSession.adoptLegacyMonitor": {
32523
+ capName: "terminal-session",
32524
+ capScope: "system",
32525
+ addonId: null,
32526
+ access: "create"
32527
+ },
32243
32528
  "terminalSession.close": {
32244
32529
  capName: "terminal-session",
32245
32530
  capScope: "system",
32246
32531
  addonId: null,
32247
32532
  access: "create"
32248
32533
  },
32534
+ "terminalSession.createInstance": {
32535
+ capName: "terminal-session",
32536
+ capScope: "system",
32537
+ addonId: null,
32538
+ access: "create"
32539
+ },
32540
+ "terminalSession.deleteInstance": {
32541
+ capName: "terminal-session",
32542
+ capScope: "system",
32543
+ addonId: null,
32544
+ access: "delete"
32545
+ },
32546
+ "terminalSession.listInstances": {
32547
+ capName: "terminal-session",
32548
+ capScope: "system",
32549
+ addonId: null,
32550
+ access: "view"
32551
+ },
32552
+ "terminalSession.listLegacyCameras": {
32553
+ capName: "terminal-session",
32554
+ capScope: "system",
32555
+ addonId: null,
32556
+ access: "view"
32557
+ },
32249
32558
  "terminalSession.listProfiles": {
32250
32559
  capName: "terminal-session",
32251
32560
  capScope: "system",
@@ -32264,12 +32573,30 @@ Object.freeze({
32264
32573
  addonId: null,
32265
32574
  access: "create"
32266
32575
  },
32576
+ "terminalSession.pullOutput": {
32577
+ capName: "terminal-session",
32578
+ capScope: "system",
32579
+ addonId: null,
32580
+ access: "create"
32581
+ },
32267
32582
  "terminalSession.resize": {
32268
32583
  capName: "terminal-session",
32269
32584
  capScope: "system",
32270
32585
  addonId: null,
32271
32586
  access: "create"
32272
32587
  },
32588
+ "terminalSession.setInstanceEnabled": {
32589
+ capName: "terminal-session",
32590
+ capScope: "system",
32591
+ addonId: null,
32592
+ access: "create"
32593
+ },
32594
+ "terminalSession.writeInput": {
32595
+ capName: "terminal-session",
32596
+ capScope: "system",
32597
+ addonId: null,
32598
+ access: "create"
32599
+ },
32273
32600
  "toast.onToast": {
32274
32601
  capName: "toast",
32275
32602
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homematic",
3
- "version": "1.2.12",
3
+ "version": "1.2.14",
4
4
  "description": "Homematic / HomematicIP (CCU3 / RaspberryMatic) device-provider addon for CamStack — wraps the nodehomematic library",
5
5
  "keywords": [
6
6
  "camstack",