@camstack/addon-matter-broker 0.2.11 → 0.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/addon.js +316 -31
  2. package/dist/addon.mjs +316 -31
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -7579,12 +7579,11 @@ var RecordingConfigSchema = object({
7579
7579
  /**
7580
7580
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7581
7581
  *
7582
- * One shape shared by the recorder's `relocateFootage` (segments) and
7583
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7584
- * page renders both movers with one component. Jobs are in-RAM (a restart
7585
- * forgets them — re-running is safe by construction: copy-if-absent, delete
7586
- * after verify) and each completed/failed run also lands one durable ops-log
7587
- * row on the owning addon's surface.
7582
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7583
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7584
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7585
+ * Each completed/failed run also lands one durable ops-log row on its owning
7586
+ * addon surface.
7588
7587
  */
7589
7588
  var RelocateJobStateSchema = _enum([
7590
7589
  "running",
@@ -7611,19 +7610,100 @@ var RelocateJobSchema = object({
7611
7610
  finishedAt: number().nullable(),
7612
7611
  error: string$2().nullable()
7613
7612
  });
7613
+ /** Profile-derived footage selection used only by the migration coordinator:
7614
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7615
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7614
7616
  var RelocateFootageInputSchema = object({
7615
- deviceId: number().optional(),
7616
7617
  fromLocationId: string$2(),
7617
7618
  toLocationId: string$2(),
7618
7619
  entities: array(_enum(["segments"])).optional(),
7620
+ /** Limits relocation to the logical profile class. Omit only for the
7621
+ * pre-orchestration compatibility path. */
7622
+ footageClass: RelocateFootageClassSchema.optional(),
7619
7623
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7620
7624
  * never allowed to starve live writers. */
7621
7625
  throttleMbps: number().min(1).max(1e3).optional()
7622
7626
  });
7623
- var RelocateMediaInputSchema = object({
7624
- deviceId: number().optional(),
7627
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7628
+ * from persistent recording settings: a migration never changes
7629
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7630
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string$2().min(1) });
7631
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string$2().min(1) });
7632
+ var StorageMigrationMediaMoveInputSchema = object({
7625
7633
  toLocationId: string$2(),
7626
7634
  throttleMbps: number().min(1).max(1e3).optional()
7635
+ }).extend({ leaseId: string$2().min(1) });
7636
+ /** The independently selectable logical storage classes. `recordings`
7637
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7638
+ * segments; `eventMedia` is post-analysis blobs. */
7639
+ var StorageMigrationClassSchema = _enum([
7640
+ "recordings",
7641
+ "recordingsLow",
7642
+ "eventMedia"
7643
+ ]);
7644
+ /** A destination is always an existing, fully-qualified location id. The
7645
+ * migration API intentionally never changes a source location's `basePath`:
7646
+ * callers create a new `<type>:<slug>` location, then select it here. */
7647
+ var StorageMigrationDestinationsSchema = object({
7648
+ recordings: string$2().min(1).optional(),
7649
+ recordingsLow: string$2().min(1).optional(),
7650
+ eventMedia: string$2().min(1).optional()
7651
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7652
+ /** Shared input for planning and starting an orchestrated storage migration. */
7653
+ var StorageMigrationInputSchema = object({
7654
+ destinations: StorageMigrationDestinationsSchema,
7655
+ throttleMbps: number().min(1).max(1e3).optional()
7656
+ });
7657
+ /** The durable coordinator state machine. The only phase that changes default
7658
+ * locations is `repointing`, after every selected mover has completed and been
7659
+ * verified. */
7660
+ var StorageMigrationPhaseSchema = _enum([
7661
+ "planning",
7662
+ "pausing",
7663
+ "moving",
7664
+ "verifying",
7665
+ "repointing",
7666
+ "refreshing",
7667
+ "resuming",
7668
+ "done",
7669
+ "failed",
7670
+ "cancelled"
7671
+ ]);
7672
+ var StorageMigrationParticipantSchema = _enum([
7673
+ "pipeline",
7674
+ "recorder",
7675
+ "analytics"
7676
+ ]);
7677
+ var StorageMigrationMoveSchema = object({
7678
+ storageClass: StorageMigrationClassSchema,
7679
+ fromLocationId: string$2(),
7680
+ toLocationId: string$2(),
7681
+ moverJobId: string$2().nullable(),
7682
+ state: RelocateJobStateSchema.nullable(),
7683
+ error: string$2().nullable()
7684
+ });
7685
+ var StorageMigrationJobSchema = object({
7686
+ jobId: string$2(),
7687
+ phase: StorageMigrationPhaseSchema,
7688
+ destinations: StorageMigrationDestinationsSchema,
7689
+ throttleMbps: number(),
7690
+ moves: array(StorageMigrationMoveSchema),
7691
+ pauseLeaseId: string$2().nullable(),
7692
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7693
+ repointed: boolean(),
7694
+ cancelRequested: boolean(),
7695
+ startedAt: number(),
7696
+ updatedAt: number(),
7697
+ finishedAt: number().nullable(),
7698
+ error: string$2().nullable()
7699
+ });
7700
+ var StorageMigrationPlanSchema = object({
7701
+ destinations: StorageMigrationDestinationsSchema,
7702
+ moves: array(object({
7703
+ storageClass: StorageMigrationClassSchema,
7704
+ fromLocationId: string$2(),
7705
+ toLocationId: string$2()
7706
+ }))
7627
7707
  });
7628
7708
  /**
7629
7709
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16343,13 +16423,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16343
16423
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16344
16424
  kind: "mutation",
16345
16425
  auth: "admin"
16346
- }), method(RelocateMediaInputSchema, object({ jobId: string$2() }), {
16426
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16347
16427
  kind: "mutation",
16348
16428
  auth: "admin"
16349
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16350
- kind: "query",
16429
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16430
+ kind: "mutation",
16431
+ auth: "admin"
16432
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16433
+ kind: "mutation",
16434
+ auth: "admin"
16435
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string$2() }), {
16436
+ kind: "mutation",
16351
16437
  auth: "admin"
16352
- }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
16438
+ }), method(object({ jobId: string$2() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
16353
16439
  kind: "mutation",
16354
16440
  auth: "admin"
16355
16441
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17879,7 +17965,13 @@ var NodeInferenceDevicesSchema = object({
17879
17965
  reachable: boolean(),
17880
17966
  devices: array(NodeInferenceDeviceSchema).readonly()
17881
17967
  });
17882
- method(object({
17968
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17969
+ kind: "mutation",
17970
+ auth: "admin"
17971
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17972
+ kind: "mutation",
17973
+ auth: "admin"
17974
+ }), method(object({
17883
17975
  deviceId: number(),
17884
17976
  agentNodeId: string$2()
17885
17977
  }), object({ success: literal(true) }), {
@@ -18553,6 +18645,13 @@ method(object({ locationId: string$2() }), EvictableUsageSchema), method(object(
18553
18645
  locationId: string$2(),
18554
18646
  targetBytes: number().int().positive()
18555
18647
  }), EvictResultSchema, { kind: "mutation" });
18648
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string$2() }), {
18649
+ kind: "mutation",
18650
+ auth: "admin"
18651
+ }), method(object({ jobId: string$2().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
18652
+ kind: "mutation",
18653
+ auth: "admin"
18654
+ });
18556
18655
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18557
18656
  providerId: string$2().min(1),
18558
18657
  displayName: string$2().min(1),
@@ -18656,6 +18755,28 @@ var TerminalProfileInfoSchema = object({
18656
18755
  label: string$2(),
18657
18756
  description: string$2().optional()
18658
18757
  });
18758
+ /**
18759
+ * A durable operator-created Terminal instance. Profiles are templates; only
18760
+ * an instance declares a camera.
18761
+ */
18762
+ var TerminalInstanceInfoSchema = object({
18763
+ instanceId: string$2(),
18764
+ cameraStableId: string$2(),
18765
+ nodeId: string$2(),
18766
+ profileId: string$2(),
18767
+ profileLabel: string$2(),
18768
+ name: string$2(),
18769
+ enabled: boolean()
18770
+ });
18771
+ var TerminalLegacyCameraSchema = object({
18772
+ stableId: string$2(),
18773
+ nodeId: string$2(),
18774
+ profileId: string$2(),
18775
+ profileLabel: string$2(),
18776
+ name: string$2(),
18777
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18778
+ adoptable: boolean()
18779
+ });
18659
18780
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18660
18781
  seq: number().int().positive(),
18661
18782
  kind: literal("data"),
@@ -18672,7 +18793,29 @@ var TerminalOutputBatchSchema = object({
18672
18793
  snapshot: string$2().optional(),
18673
18794
  events: array(TerminalOutputEventSchema).readonly()
18674
18795
  });
18675
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18796
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18797
+ targetNodeId: string$2().min(1),
18798
+ profileId: string$2().min(1),
18799
+ name: string$2().trim().min(1).max(160).optional()
18800
+ }), TerminalInstanceInfoSchema, {
18801
+ kind: "mutation",
18802
+ auth: "admin"
18803
+ }), method(object({ instanceId: string$2().min(1) }), _void(), {
18804
+ kind: "mutation",
18805
+ auth: "admin"
18806
+ }), method(object({
18807
+ instanceId: string$2().min(1),
18808
+ enabled: boolean()
18809
+ }), TerminalInstanceInfoSchema, {
18810
+ kind: "mutation",
18811
+ auth: "admin"
18812
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18813
+ stableId: string$2().min(1),
18814
+ name: string$2().trim().min(1).max(160).optional()
18815
+ }), TerminalInstanceInfoSchema, {
18816
+ kind: "mutation",
18817
+ auth: "admin"
18818
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18676
18819
  profileId: string$2(),
18677
18820
  cols: number().int().positive(),
18678
18821
  rows: number().int().positive()
@@ -18689,7 +18832,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18689
18832
  }), method(object({
18690
18833
  sessionId: string$2(),
18691
18834
  afterSeq: number().int().nonnegative(),
18692
- waitMs: number().int().min(0).max(2e3).default(0)
18835
+ waitMs: number().int().min(0).max(2e3).default(0),
18836
+ /**
18837
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18838
+ * browser's initial repaint remains immediate; the camera snapshot
18839
+ * relay uses it to avoid encoding a blank startup frame.
18840
+ */
18841
+ waitForOutput: boolean().optional()
18693
18842
  }), TerminalOutputBatchSchema, {
18694
18843
  kind: "mutation",
18695
18844
  auth: "admin",
@@ -21204,6 +21353,7 @@ var FaceInfoSchema = object({
21204
21353
  var FaceFilterEnum = _enum([
21205
21354
  "unassigned",
21206
21355
  "recognized",
21356
+ "identified",
21207
21357
  "all"
21208
21358
  ]);
21209
21359
  var MediaFileLiteSchema$1 = object({
@@ -21232,6 +21382,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string$
21232
21382
  kind: "mutation",
21233
21383
  auth: "admin"
21234
21384
  }), method(object({
21385
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21386
+ deviceId: number().int().optional(),
21235
21387
  limit: number().int().positive().optional(),
21236
21388
  filter: FaceFilterEnum.optional(),
21237
21389
  /**
@@ -23461,6 +23613,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23461
23613
  capName: string$2().min(1).max(64),
23462
23614
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23463
23615
  valuePath: string$2().min(1).max(64)
23616
+ }),
23617
+ object({
23618
+ kind: literal("latest-recognition"),
23619
+ recognition: _enum(["person", "plate"])
23464
23620
  })
23465
23621
  ]);
23466
23622
  var OsdSlotBindingSchema = object({
@@ -23566,6 +23722,15 @@ method(object({ deviceId: number().int() }), object({
23566
23722
  }), object({ success: literal(true) }), {
23567
23723
  kind: "mutation",
23568
23724
  auth: "admin"
23725
+ }), method(object({
23726
+ sourceDeviceId: number().int(),
23727
+ targetDeviceId: number().int()
23728
+ }), object({
23729
+ copied: number().int().nonnegative(),
23730
+ skipped: number().int().nonnegative()
23731
+ }), {
23732
+ kind: "mutation",
23733
+ auth: "admin"
23569
23734
  }), method(object({
23570
23735
  deviceId: number().int(),
23571
23736
  slotId: string$2().min(1),
@@ -24663,13 +24828,19 @@ method(object({
24663
24828
  }), {
24664
24829
  kind: "mutation",
24665
24830
  auth: "admin"
24666
- }), method(RelocateFootageInputSchema, object({ jobId: string$2() }), {
24831
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24667
24832
  kind: "mutation",
24668
24833
  auth: "admin"
24669
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24670
- kind: "query",
24834
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24835
+ kind: "mutation",
24671
24836
  auth: "admin"
24672
- }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
24837
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
24838
+ kind: "mutation",
24839
+ auth: "admin"
24840
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string$2() }), {
24841
+ kind: "mutation",
24842
+ auth: "admin"
24843
+ }), method(object({ jobId: string$2() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
24673
24844
  kind: "mutation",
24674
24845
  auth: "admin"
24675
24846
  });
@@ -30275,6 +30446,12 @@ Object.freeze({
30275
30446
  addonId: null,
30276
30447
  access: "delete"
30277
30448
  },
30449
+ "osdManager.copyDeviceConfiguration": {
30450
+ capName: "osd-manager",
30451
+ capScope: "system",
30452
+ addonId: null,
30453
+ access: "create"
30454
+ },
30278
30455
  "osdManager.getConditionSupport": {
30279
30456
  capName: "osd-manager",
30280
30457
  capScope: "system",
@@ -30371,7 +30548,7 @@ Object.freeze({
30371
30548
  addonId: null,
30372
30549
  access: "create"
30373
30550
  },
30374
- "pipelineAnalytics.cancelMediaRelocate": {
30551
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30375
30552
  capName: "pipeline-analytics",
30376
30553
  capScope: "device",
30377
30554
  addonId: null,
@@ -30443,12 +30620,6 @@ Object.freeze({
30443
30620
  addonId: null,
30444
30621
  access: "view"
30445
30622
  },
30446
- "pipelineAnalytics.getMediaRelocateStatus": {
30447
- capName: "pipeline-analytics",
30448
- capScope: "device",
30449
- addonId: null,
30450
- access: "view"
30451
- },
30452
30623
  "pipelineAnalytics.getMotionEvents": {
30453
30624
  capName: "pipeline-analytics",
30454
30625
  capScope: "device",
@@ -30485,6 +30656,12 @@ Object.freeze({
30485
30656
  addonId: null,
30486
30657
  access: "view"
30487
30658
  },
30659
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30660
+ capName: "pipeline-analytics",
30661
+ capScope: "device",
30662
+ addonId: null,
30663
+ access: "view"
30664
+ },
30488
30665
  "pipelineAnalytics.getTrack": {
30489
30666
  capName: "pipeline-analytics",
30490
30667
  capScope: "device",
@@ -30563,6 +30740,12 @@ Object.freeze({
30563
30740
  addonId: null,
30564
30741
  access: "view"
30565
30742
  },
30743
+ "pipelineAnalytics.pauseForStorageMigration": {
30744
+ capName: "pipeline-analytics",
30745
+ capScope: "device",
30746
+ addonId: null,
30747
+ access: "create"
30748
+ },
30566
30749
  "pipelineAnalytics.proposeRetrainAnnotations": {
30567
30750
  capName: "pipeline-analytics",
30568
30751
  capScope: "device",
@@ -30593,7 +30776,7 @@ Object.freeze({
30593
30776
  addonId: null,
30594
30777
  access: "create"
30595
30778
  },
30596
- "pipelineAnalytics.relocateMedia": {
30779
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30597
30780
  capName: "pipeline-analytics",
30598
30781
  capScope: "device",
30599
30782
  addonId: null,
@@ -30605,6 +30788,12 @@ Object.freeze({
30605
30788
  addonId: null,
30606
30789
  access: "create"
30607
30790
  },
30791
+ "pipelineAnalytics.resumeForStorageMigration": {
30792
+ capName: "pipeline-analytics",
30793
+ capScope: "device",
30794
+ addonId: null,
30795
+ access: "create"
30796
+ },
30608
30797
  "pipelineAnalytics.saveRetrainAnnotations": {
30609
30798
  capName: "pipeline-analytics",
30610
30799
  capScope: "device",
@@ -30629,6 +30818,12 @@ Object.freeze({
30629
30818
  addonId: null,
30630
30819
  access: "create"
30631
30820
  },
30821
+ "pipelineAnalytics.startStorageMigrationMove": {
30822
+ capName: "pipeline-analytics",
30823
+ capScope: "device",
30824
+ addonId: null,
30825
+ access: "create"
30826
+ },
30632
30827
  "pipelineAnalytics.wipeAllAnalytics": {
30633
30828
  capName: "pipeline-analytics",
30634
30829
  capScope: "device",
@@ -30995,6 +31190,12 @@ Object.freeze({
30995
31190
  addonId: null,
30996
31191
  access: "view"
30997
31192
  },
31193
+ "pipelineOrchestrator.pauseForStorageMigration": {
31194
+ capName: "pipeline-orchestrator",
31195
+ capScope: "system",
31196
+ addonId: null,
31197
+ access: "create"
31198
+ },
30998
31199
  "pipelineOrchestrator.rebalance": {
30999
31200
  capName: "pipeline-orchestrator",
31000
31201
  capScope: "system",
@@ -31019,6 +31220,12 @@ Object.freeze({
31019
31220
  addonId: null,
31020
31221
  access: "view"
31021
31222
  },
31223
+ "pipelineOrchestrator.resumeForStorageMigration": {
31224
+ capName: "pipeline-orchestrator",
31225
+ capScope: "system",
31226
+ addonId: null,
31227
+ access: "create"
31228
+ },
31022
31229
  "pipelineOrchestrator.saveTemplate": {
31023
31230
  capName: "pipeline-orchestrator",
31024
31231
  capScope: "system",
@@ -31415,7 +31622,7 @@ Object.freeze({
31415
31622
  addonId: null,
31416
31623
  access: "create"
31417
31624
  },
31418
- "recording.cancelRelocate": {
31625
+ "recording.cancelStorageMigrationMove": {
31419
31626
  capName: "recording",
31420
31627
  capScope: "system",
31421
31628
  addonId: null,
@@ -31451,7 +31658,7 @@ Object.freeze({
31451
31658
  addonId: null,
31452
31659
  access: "view"
31453
31660
  },
31454
- "recording.getRelocateStatus": {
31661
+ "recording.getStorageMigrationMoveStatus": {
31455
31662
  capName: "recording",
31456
31663
  capScope: "system",
31457
31664
  addonId: null,
@@ -31475,6 +31682,12 @@ Object.freeze({
31475
31682
  addonId: null,
31476
31683
  access: "view"
31477
31684
  },
31685
+ "recording.pauseForStorageMigration": {
31686
+ capName: "recording",
31687
+ capScope: "system",
31688
+ addonId: null,
31689
+ access: "create"
31690
+ },
31478
31691
  "recording.pruneFootage": {
31479
31692
  capName: "recording",
31480
31693
  capScope: "system",
@@ -31493,7 +31706,7 @@ Object.freeze({
31493
31706
  addonId: null,
31494
31707
  access: "view"
31495
31708
  },
31496
- "recording.relocateFootage": {
31709
+ "recording.refreshStorageLocationsForMigration": {
31497
31710
  capName: "recording",
31498
31711
  capScope: "system",
31499
31712
  addonId: null,
@@ -31517,12 +31730,24 @@ Object.freeze({
31517
31730
  addonId: null,
31518
31731
  access: "create"
31519
31732
  },
31733
+ "recording.resumeForStorageMigration": {
31734
+ capName: "recording",
31735
+ capScope: "system",
31736
+ addonId: null,
31737
+ access: "create"
31738
+ },
31520
31739
  "recording.setDeviceConfig": {
31521
31740
  capName: "recording",
31522
31741
  capScope: "system",
31523
31742
  addonId: null,
31524
31743
  access: "create"
31525
31744
  },
31745
+ "recording.startStorageMigrationMove": {
31746
+ capName: "recording",
31747
+ capScope: "system",
31748
+ addonId: null,
31749
+ access: "create"
31750
+ },
31526
31751
  "recordingExport.cancelExport": {
31527
31752
  capName: "recordingExport",
31528
31753
  capScope: "system",
@@ -31913,6 +32138,30 @@ Object.freeze({
31913
32138
  addonId: null,
31914
32139
  access: "view"
31915
32140
  },
32141
+ "storageMigration.cancel": {
32142
+ capName: "storage-migration",
32143
+ capScope: "system",
32144
+ addonId: null,
32145
+ access: "create"
32146
+ },
32147
+ "storageMigration.plan": {
32148
+ capName: "storage-migration",
32149
+ capScope: "system",
32150
+ addonId: null,
32151
+ access: "view"
32152
+ },
32153
+ "storageMigration.start": {
32154
+ capName: "storage-migration",
32155
+ capScope: "system",
32156
+ addonId: null,
32157
+ access: "create"
32158
+ },
32159
+ "storageMigration.status": {
32160
+ capName: "storage-migration",
32161
+ capScope: "system",
32162
+ addonId: null,
32163
+ access: "view"
32164
+ },
31916
32165
  "storageProvider.abortUpload": {
31917
32166
  capName: "storage-provider",
31918
32167
  capScope: "system",
@@ -32291,12 +32540,42 @@ Object.freeze({
32291
32540
  addonId: null,
32292
32541
  access: "create"
32293
32542
  },
32543
+ "terminalSession.adoptLegacyMonitor": {
32544
+ capName: "terminal-session",
32545
+ capScope: "system",
32546
+ addonId: null,
32547
+ access: "create"
32548
+ },
32294
32549
  "terminalSession.close": {
32295
32550
  capName: "terminal-session",
32296
32551
  capScope: "system",
32297
32552
  addonId: null,
32298
32553
  access: "create"
32299
32554
  },
32555
+ "terminalSession.createInstance": {
32556
+ capName: "terminal-session",
32557
+ capScope: "system",
32558
+ addonId: null,
32559
+ access: "create"
32560
+ },
32561
+ "terminalSession.deleteInstance": {
32562
+ capName: "terminal-session",
32563
+ capScope: "system",
32564
+ addonId: null,
32565
+ access: "delete"
32566
+ },
32567
+ "terminalSession.listInstances": {
32568
+ capName: "terminal-session",
32569
+ capScope: "system",
32570
+ addonId: null,
32571
+ access: "view"
32572
+ },
32573
+ "terminalSession.listLegacyCameras": {
32574
+ capName: "terminal-session",
32575
+ capScope: "system",
32576
+ addonId: null,
32577
+ access: "view"
32578
+ },
32300
32579
  "terminalSession.listProfiles": {
32301
32580
  capName: "terminal-session",
32302
32581
  capScope: "system",
@@ -32327,6 +32606,12 @@ Object.freeze({
32327
32606
  addonId: null,
32328
32607
  access: "create"
32329
32608
  },
32609
+ "terminalSession.setInstanceEnabled": {
32610
+ capName: "terminal-session",
32611
+ capScope: "system",
32612
+ addonId: null,
32613
+ access: "create"
32614
+ },
32330
32615
  "terminalSession.writeInput": {
32331
32616
  capName: "terminal-session",
32332
32617
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -7577,12 +7577,11 @@ var RecordingConfigSchema = object({
7577
7577
  /**
7578
7578
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7579
7579
  *
7580
- * One shape shared by the recorder's `relocateFootage` (segments) and
7581
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7582
- * page renders both movers with one component. Jobs are in-RAM (a restart
7583
- * forgets them — re-running is safe by construction: copy-if-absent, delete
7584
- * after verify) and each completed/failed run also lands one durable ops-log
7585
- * row on the owning addon's surface.
7580
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7581
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7582
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7583
+ * Each completed/failed run also lands one durable ops-log row on its owning
7584
+ * addon surface.
7586
7585
  */
7587
7586
  var RelocateJobStateSchema = _enum([
7588
7587
  "running",
@@ -7609,19 +7608,100 @@ var RelocateJobSchema = object({
7609
7608
  finishedAt: number().nullable(),
7610
7609
  error: string$2().nullable()
7611
7610
  });
7611
+ /** Profile-derived footage selection used only by the migration coordinator:
7612
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7613
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7612
7614
  var RelocateFootageInputSchema = object({
7613
- deviceId: number().optional(),
7614
7615
  fromLocationId: string$2(),
7615
7616
  toLocationId: string$2(),
7616
7617
  entities: array(_enum(["segments"])).optional(),
7618
+ /** Limits relocation to the logical profile class. Omit only for the
7619
+ * pre-orchestration compatibility path. */
7620
+ footageClass: RelocateFootageClassSchema.optional(),
7617
7621
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7618
7622
  * never allowed to starve live writers. */
7619
7623
  throttleMbps: number().min(1).max(1e3).optional()
7620
7624
  });
7621
- var RelocateMediaInputSchema = object({
7622
- deviceId: number().optional(),
7625
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7626
+ * from persistent recording settings: a migration never changes
7627
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7628
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string$2().min(1) });
7629
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string$2().min(1) });
7630
+ var StorageMigrationMediaMoveInputSchema = object({
7623
7631
  toLocationId: string$2(),
7624
7632
  throttleMbps: number().min(1).max(1e3).optional()
7633
+ }).extend({ leaseId: string$2().min(1) });
7634
+ /** The independently selectable logical storage classes. `recordings`
7635
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7636
+ * segments; `eventMedia` is post-analysis blobs. */
7637
+ var StorageMigrationClassSchema = _enum([
7638
+ "recordings",
7639
+ "recordingsLow",
7640
+ "eventMedia"
7641
+ ]);
7642
+ /** A destination is always an existing, fully-qualified location id. The
7643
+ * migration API intentionally never changes a source location's `basePath`:
7644
+ * callers create a new `<type>:<slug>` location, then select it here. */
7645
+ var StorageMigrationDestinationsSchema = object({
7646
+ recordings: string$2().min(1).optional(),
7647
+ recordingsLow: string$2().min(1).optional(),
7648
+ eventMedia: string$2().min(1).optional()
7649
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7650
+ /** Shared input for planning and starting an orchestrated storage migration. */
7651
+ var StorageMigrationInputSchema = object({
7652
+ destinations: StorageMigrationDestinationsSchema,
7653
+ throttleMbps: number().min(1).max(1e3).optional()
7654
+ });
7655
+ /** The durable coordinator state machine. The only phase that changes default
7656
+ * locations is `repointing`, after every selected mover has completed and been
7657
+ * verified. */
7658
+ var StorageMigrationPhaseSchema = _enum([
7659
+ "planning",
7660
+ "pausing",
7661
+ "moving",
7662
+ "verifying",
7663
+ "repointing",
7664
+ "refreshing",
7665
+ "resuming",
7666
+ "done",
7667
+ "failed",
7668
+ "cancelled"
7669
+ ]);
7670
+ var StorageMigrationParticipantSchema = _enum([
7671
+ "pipeline",
7672
+ "recorder",
7673
+ "analytics"
7674
+ ]);
7675
+ var StorageMigrationMoveSchema = object({
7676
+ storageClass: StorageMigrationClassSchema,
7677
+ fromLocationId: string$2(),
7678
+ toLocationId: string$2(),
7679
+ moverJobId: string$2().nullable(),
7680
+ state: RelocateJobStateSchema.nullable(),
7681
+ error: string$2().nullable()
7682
+ });
7683
+ var StorageMigrationJobSchema = object({
7684
+ jobId: string$2(),
7685
+ phase: StorageMigrationPhaseSchema,
7686
+ destinations: StorageMigrationDestinationsSchema,
7687
+ throttleMbps: number(),
7688
+ moves: array(StorageMigrationMoveSchema),
7689
+ pauseLeaseId: string$2().nullable(),
7690
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7691
+ repointed: boolean(),
7692
+ cancelRequested: boolean(),
7693
+ startedAt: number(),
7694
+ updatedAt: number(),
7695
+ finishedAt: number().nullable(),
7696
+ error: string$2().nullable()
7697
+ });
7698
+ var StorageMigrationPlanSchema = object({
7699
+ destinations: StorageMigrationDestinationsSchema,
7700
+ moves: array(object({
7701
+ storageClass: StorageMigrationClassSchema,
7702
+ fromLocationId: string$2(),
7703
+ toLocationId: string$2()
7704
+ }))
7625
7705
  });
7626
7706
  /**
7627
7707
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16341,13 +16421,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16341
16421
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16342
16422
  kind: "mutation",
16343
16423
  auth: "admin"
16344
- }), method(RelocateMediaInputSchema, object({ jobId: string$2() }), {
16424
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16345
16425
  kind: "mutation",
16346
16426
  auth: "admin"
16347
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16348
- kind: "query",
16427
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16428
+ kind: "mutation",
16429
+ auth: "admin"
16430
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16431
+ kind: "mutation",
16432
+ auth: "admin"
16433
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string$2() }), {
16434
+ kind: "mutation",
16349
16435
  auth: "admin"
16350
- }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
16436
+ }), method(object({ jobId: string$2() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
16351
16437
  kind: "mutation",
16352
16438
  auth: "admin"
16353
16439
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17877,7 +17963,13 @@ var NodeInferenceDevicesSchema = object({
17877
17963
  reachable: boolean(),
17878
17964
  devices: array(NodeInferenceDeviceSchema).readonly()
17879
17965
  });
17880
- method(object({
17966
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17967
+ kind: "mutation",
17968
+ auth: "admin"
17969
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17970
+ kind: "mutation",
17971
+ auth: "admin"
17972
+ }), method(object({
17881
17973
  deviceId: number(),
17882
17974
  agentNodeId: string$2()
17883
17975
  }), object({ success: literal(true) }), {
@@ -18551,6 +18643,13 @@ method(object({ locationId: string$2() }), EvictableUsageSchema), method(object(
18551
18643
  locationId: string$2(),
18552
18644
  targetBytes: number().int().positive()
18553
18645
  }), EvictResultSchema, { kind: "mutation" });
18646
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string$2() }), {
18647
+ kind: "mutation",
18648
+ auth: "admin"
18649
+ }), method(object({ jobId: string$2().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
18650
+ kind: "mutation",
18651
+ auth: "admin"
18652
+ });
18554
18653
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18555
18654
  providerId: string$2().min(1),
18556
18655
  displayName: string$2().min(1),
@@ -18654,6 +18753,28 @@ var TerminalProfileInfoSchema = object({
18654
18753
  label: string$2(),
18655
18754
  description: string$2().optional()
18656
18755
  });
18756
+ /**
18757
+ * A durable operator-created Terminal instance. Profiles are templates; only
18758
+ * an instance declares a camera.
18759
+ */
18760
+ var TerminalInstanceInfoSchema = object({
18761
+ instanceId: string$2(),
18762
+ cameraStableId: string$2(),
18763
+ nodeId: string$2(),
18764
+ profileId: string$2(),
18765
+ profileLabel: string$2(),
18766
+ name: string$2(),
18767
+ enabled: boolean()
18768
+ });
18769
+ var TerminalLegacyCameraSchema = object({
18770
+ stableId: string$2(),
18771
+ nodeId: string$2(),
18772
+ profileId: string$2(),
18773
+ profileLabel: string$2(),
18774
+ name: string$2(),
18775
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18776
+ adoptable: boolean()
18777
+ });
18657
18778
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18658
18779
  seq: number().int().positive(),
18659
18780
  kind: literal("data"),
@@ -18670,7 +18791,29 @@ var TerminalOutputBatchSchema = object({
18670
18791
  snapshot: string$2().optional(),
18671
18792
  events: array(TerminalOutputEventSchema).readonly()
18672
18793
  });
18673
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18794
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18795
+ targetNodeId: string$2().min(1),
18796
+ profileId: string$2().min(1),
18797
+ name: string$2().trim().min(1).max(160).optional()
18798
+ }), TerminalInstanceInfoSchema, {
18799
+ kind: "mutation",
18800
+ auth: "admin"
18801
+ }), method(object({ instanceId: string$2().min(1) }), _void(), {
18802
+ kind: "mutation",
18803
+ auth: "admin"
18804
+ }), method(object({
18805
+ instanceId: string$2().min(1),
18806
+ enabled: boolean()
18807
+ }), TerminalInstanceInfoSchema, {
18808
+ kind: "mutation",
18809
+ auth: "admin"
18810
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18811
+ stableId: string$2().min(1),
18812
+ name: string$2().trim().min(1).max(160).optional()
18813
+ }), TerminalInstanceInfoSchema, {
18814
+ kind: "mutation",
18815
+ auth: "admin"
18816
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18674
18817
  profileId: string$2(),
18675
18818
  cols: number().int().positive(),
18676
18819
  rows: number().int().positive()
@@ -18687,7 +18830,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18687
18830
  }), method(object({
18688
18831
  sessionId: string$2(),
18689
18832
  afterSeq: number().int().nonnegative(),
18690
- waitMs: number().int().min(0).max(2e3).default(0)
18833
+ waitMs: number().int().min(0).max(2e3).default(0),
18834
+ /**
18835
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18836
+ * browser's initial repaint remains immediate; the camera snapshot
18837
+ * relay uses it to avoid encoding a blank startup frame.
18838
+ */
18839
+ waitForOutput: boolean().optional()
18691
18840
  }), TerminalOutputBatchSchema, {
18692
18841
  kind: "mutation",
18693
18842
  auth: "admin",
@@ -21202,6 +21351,7 @@ var FaceInfoSchema = object({
21202
21351
  var FaceFilterEnum = _enum([
21203
21352
  "unassigned",
21204
21353
  "recognized",
21354
+ "identified",
21205
21355
  "all"
21206
21356
  ]);
21207
21357
  var MediaFileLiteSchema$1 = object({
@@ -21230,6 +21380,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string$
21230
21380
  kind: "mutation",
21231
21381
  auth: "admin"
21232
21382
  }), method(object({
21383
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21384
+ deviceId: number().int().optional(),
21233
21385
  limit: number().int().positive().optional(),
21234
21386
  filter: FaceFilterEnum.optional(),
21235
21387
  /**
@@ -23459,6 +23611,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23459
23611
  capName: string$2().min(1).max(64),
23460
23612
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23461
23613
  valuePath: string$2().min(1).max(64)
23614
+ }),
23615
+ object({
23616
+ kind: literal("latest-recognition"),
23617
+ recognition: _enum(["person", "plate"])
23462
23618
  })
23463
23619
  ]);
23464
23620
  var OsdSlotBindingSchema = object({
@@ -23564,6 +23720,15 @@ method(object({ deviceId: number().int() }), object({
23564
23720
  }), object({ success: literal(true) }), {
23565
23721
  kind: "mutation",
23566
23722
  auth: "admin"
23723
+ }), method(object({
23724
+ sourceDeviceId: number().int(),
23725
+ targetDeviceId: number().int()
23726
+ }), object({
23727
+ copied: number().int().nonnegative(),
23728
+ skipped: number().int().nonnegative()
23729
+ }), {
23730
+ kind: "mutation",
23731
+ auth: "admin"
23567
23732
  }), method(object({
23568
23733
  deviceId: number().int(),
23569
23734
  slotId: string$2().min(1),
@@ -24661,13 +24826,19 @@ method(object({
24661
24826
  }), {
24662
24827
  kind: "mutation",
24663
24828
  auth: "admin"
24664
- }), method(RelocateFootageInputSchema, object({ jobId: string$2() }), {
24829
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24665
24830
  kind: "mutation",
24666
24831
  auth: "admin"
24667
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24668
- kind: "query",
24832
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24833
+ kind: "mutation",
24669
24834
  auth: "admin"
24670
- }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
24835
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
24836
+ kind: "mutation",
24837
+ auth: "admin"
24838
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string$2() }), {
24839
+ kind: "mutation",
24840
+ auth: "admin"
24841
+ }), method(object({ jobId: string$2() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string$2() }), object({ cancelled: boolean() }), {
24671
24842
  kind: "mutation",
24672
24843
  auth: "admin"
24673
24844
  });
@@ -30273,6 +30444,12 @@ Object.freeze({
30273
30444
  addonId: null,
30274
30445
  access: "delete"
30275
30446
  },
30447
+ "osdManager.copyDeviceConfiguration": {
30448
+ capName: "osd-manager",
30449
+ capScope: "system",
30450
+ addonId: null,
30451
+ access: "create"
30452
+ },
30276
30453
  "osdManager.getConditionSupport": {
30277
30454
  capName: "osd-manager",
30278
30455
  capScope: "system",
@@ -30369,7 +30546,7 @@ Object.freeze({
30369
30546
  addonId: null,
30370
30547
  access: "create"
30371
30548
  },
30372
- "pipelineAnalytics.cancelMediaRelocate": {
30549
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30373
30550
  capName: "pipeline-analytics",
30374
30551
  capScope: "device",
30375
30552
  addonId: null,
@@ -30441,12 +30618,6 @@ Object.freeze({
30441
30618
  addonId: null,
30442
30619
  access: "view"
30443
30620
  },
30444
- "pipelineAnalytics.getMediaRelocateStatus": {
30445
- capName: "pipeline-analytics",
30446
- capScope: "device",
30447
- addonId: null,
30448
- access: "view"
30449
- },
30450
30621
  "pipelineAnalytics.getMotionEvents": {
30451
30622
  capName: "pipeline-analytics",
30452
30623
  capScope: "device",
@@ -30483,6 +30654,12 @@ Object.freeze({
30483
30654
  addonId: null,
30484
30655
  access: "view"
30485
30656
  },
30657
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30658
+ capName: "pipeline-analytics",
30659
+ capScope: "device",
30660
+ addonId: null,
30661
+ access: "view"
30662
+ },
30486
30663
  "pipelineAnalytics.getTrack": {
30487
30664
  capName: "pipeline-analytics",
30488
30665
  capScope: "device",
@@ -30561,6 +30738,12 @@ Object.freeze({
30561
30738
  addonId: null,
30562
30739
  access: "view"
30563
30740
  },
30741
+ "pipelineAnalytics.pauseForStorageMigration": {
30742
+ capName: "pipeline-analytics",
30743
+ capScope: "device",
30744
+ addonId: null,
30745
+ access: "create"
30746
+ },
30564
30747
  "pipelineAnalytics.proposeRetrainAnnotations": {
30565
30748
  capName: "pipeline-analytics",
30566
30749
  capScope: "device",
@@ -30591,7 +30774,7 @@ Object.freeze({
30591
30774
  addonId: null,
30592
30775
  access: "create"
30593
30776
  },
30594
- "pipelineAnalytics.relocateMedia": {
30777
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30595
30778
  capName: "pipeline-analytics",
30596
30779
  capScope: "device",
30597
30780
  addonId: null,
@@ -30603,6 +30786,12 @@ Object.freeze({
30603
30786
  addonId: null,
30604
30787
  access: "create"
30605
30788
  },
30789
+ "pipelineAnalytics.resumeForStorageMigration": {
30790
+ capName: "pipeline-analytics",
30791
+ capScope: "device",
30792
+ addonId: null,
30793
+ access: "create"
30794
+ },
30606
30795
  "pipelineAnalytics.saveRetrainAnnotations": {
30607
30796
  capName: "pipeline-analytics",
30608
30797
  capScope: "device",
@@ -30627,6 +30816,12 @@ Object.freeze({
30627
30816
  addonId: null,
30628
30817
  access: "create"
30629
30818
  },
30819
+ "pipelineAnalytics.startStorageMigrationMove": {
30820
+ capName: "pipeline-analytics",
30821
+ capScope: "device",
30822
+ addonId: null,
30823
+ access: "create"
30824
+ },
30630
30825
  "pipelineAnalytics.wipeAllAnalytics": {
30631
30826
  capName: "pipeline-analytics",
30632
30827
  capScope: "device",
@@ -30993,6 +31188,12 @@ Object.freeze({
30993
31188
  addonId: null,
30994
31189
  access: "view"
30995
31190
  },
31191
+ "pipelineOrchestrator.pauseForStorageMigration": {
31192
+ capName: "pipeline-orchestrator",
31193
+ capScope: "system",
31194
+ addonId: null,
31195
+ access: "create"
31196
+ },
30996
31197
  "pipelineOrchestrator.rebalance": {
30997
31198
  capName: "pipeline-orchestrator",
30998
31199
  capScope: "system",
@@ -31017,6 +31218,12 @@ Object.freeze({
31017
31218
  addonId: null,
31018
31219
  access: "view"
31019
31220
  },
31221
+ "pipelineOrchestrator.resumeForStorageMigration": {
31222
+ capName: "pipeline-orchestrator",
31223
+ capScope: "system",
31224
+ addonId: null,
31225
+ access: "create"
31226
+ },
31020
31227
  "pipelineOrchestrator.saveTemplate": {
31021
31228
  capName: "pipeline-orchestrator",
31022
31229
  capScope: "system",
@@ -31413,7 +31620,7 @@ Object.freeze({
31413
31620
  addonId: null,
31414
31621
  access: "create"
31415
31622
  },
31416
- "recording.cancelRelocate": {
31623
+ "recording.cancelStorageMigrationMove": {
31417
31624
  capName: "recording",
31418
31625
  capScope: "system",
31419
31626
  addonId: null,
@@ -31449,7 +31656,7 @@ Object.freeze({
31449
31656
  addonId: null,
31450
31657
  access: "view"
31451
31658
  },
31452
- "recording.getRelocateStatus": {
31659
+ "recording.getStorageMigrationMoveStatus": {
31453
31660
  capName: "recording",
31454
31661
  capScope: "system",
31455
31662
  addonId: null,
@@ -31473,6 +31680,12 @@ Object.freeze({
31473
31680
  addonId: null,
31474
31681
  access: "view"
31475
31682
  },
31683
+ "recording.pauseForStorageMigration": {
31684
+ capName: "recording",
31685
+ capScope: "system",
31686
+ addonId: null,
31687
+ access: "create"
31688
+ },
31476
31689
  "recording.pruneFootage": {
31477
31690
  capName: "recording",
31478
31691
  capScope: "system",
@@ -31491,7 +31704,7 @@ Object.freeze({
31491
31704
  addonId: null,
31492
31705
  access: "view"
31493
31706
  },
31494
- "recording.relocateFootage": {
31707
+ "recording.refreshStorageLocationsForMigration": {
31495
31708
  capName: "recording",
31496
31709
  capScope: "system",
31497
31710
  addonId: null,
@@ -31515,12 +31728,24 @@ Object.freeze({
31515
31728
  addonId: null,
31516
31729
  access: "create"
31517
31730
  },
31731
+ "recording.resumeForStorageMigration": {
31732
+ capName: "recording",
31733
+ capScope: "system",
31734
+ addonId: null,
31735
+ access: "create"
31736
+ },
31518
31737
  "recording.setDeviceConfig": {
31519
31738
  capName: "recording",
31520
31739
  capScope: "system",
31521
31740
  addonId: null,
31522
31741
  access: "create"
31523
31742
  },
31743
+ "recording.startStorageMigrationMove": {
31744
+ capName: "recording",
31745
+ capScope: "system",
31746
+ addonId: null,
31747
+ access: "create"
31748
+ },
31524
31749
  "recordingExport.cancelExport": {
31525
31750
  capName: "recordingExport",
31526
31751
  capScope: "system",
@@ -31911,6 +32136,30 @@ Object.freeze({
31911
32136
  addonId: null,
31912
32137
  access: "view"
31913
32138
  },
32139
+ "storageMigration.cancel": {
32140
+ capName: "storage-migration",
32141
+ capScope: "system",
32142
+ addonId: null,
32143
+ access: "create"
32144
+ },
32145
+ "storageMigration.plan": {
32146
+ capName: "storage-migration",
32147
+ capScope: "system",
32148
+ addonId: null,
32149
+ access: "view"
32150
+ },
32151
+ "storageMigration.start": {
32152
+ capName: "storage-migration",
32153
+ capScope: "system",
32154
+ addonId: null,
32155
+ access: "create"
32156
+ },
32157
+ "storageMigration.status": {
32158
+ capName: "storage-migration",
32159
+ capScope: "system",
32160
+ addonId: null,
32161
+ access: "view"
32162
+ },
31914
32163
  "storageProvider.abortUpload": {
31915
32164
  capName: "storage-provider",
31916
32165
  capScope: "system",
@@ -32289,12 +32538,42 @@ Object.freeze({
32289
32538
  addonId: null,
32290
32539
  access: "create"
32291
32540
  },
32541
+ "terminalSession.adoptLegacyMonitor": {
32542
+ capName: "terminal-session",
32543
+ capScope: "system",
32544
+ addonId: null,
32545
+ access: "create"
32546
+ },
32292
32547
  "terminalSession.close": {
32293
32548
  capName: "terminal-session",
32294
32549
  capScope: "system",
32295
32550
  addonId: null,
32296
32551
  access: "create"
32297
32552
  },
32553
+ "terminalSession.createInstance": {
32554
+ capName: "terminal-session",
32555
+ capScope: "system",
32556
+ addonId: null,
32557
+ access: "create"
32558
+ },
32559
+ "terminalSession.deleteInstance": {
32560
+ capName: "terminal-session",
32561
+ capScope: "system",
32562
+ addonId: null,
32563
+ access: "delete"
32564
+ },
32565
+ "terminalSession.listInstances": {
32566
+ capName: "terminal-session",
32567
+ capScope: "system",
32568
+ addonId: null,
32569
+ access: "view"
32570
+ },
32571
+ "terminalSession.listLegacyCameras": {
32572
+ capName: "terminal-session",
32573
+ capScope: "system",
32574
+ addonId: null,
32575
+ access: "view"
32576
+ },
32298
32577
  "terminalSession.listProfiles": {
32299
32578
  capName: "terminal-session",
32300
32579
  capScope: "system",
@@ -32325,6 +32604,12 @@ Object.freeze({
32325
32604
  addonId: null,
32326
32605
  access: "create"
32327
32606
  },
32607
+ "terminalSession.setInstanceEnabled": {
32608
+ capName: "terminal-session",
32609
+ capScope: "system",
32610
+ addonId: null,
32611
+ access: "create"
32612
+ },
32328
32613
  "terminalSession.writeInput": {
32329
32614
  capName: "terminal-session",
32330
32615
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-matter-broker",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
5
5
  "keywords": [
6
6
  "camstack",