@camstack/addon-import-alexa 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
@@ -7723,12 +7723,11 @@ var RecordingConfigSchema = object({
7723
7723
  /**
7724
7724
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7725
7725
  *
7726
- * One shape shared by the recorder's `relocateFootage` (segments) and
7727
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7728
- * page renders both movers with one component. Jobs are in-RAM (a restart
7729
- * forgets them re-running is safe by construction: copy-if-absent, delete
7730
- * after verify) and each completed/failed run also lands one durable ops-log
7731
- * row on the owning addon's surface.
7726
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7727
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7728
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7729
+ * Each completed/failed run also lands one durable ops-log row on its owning
7730
+ * addon surface.
7732
7731
  */
7733
7732
  var RelocateJobStateSchema = _enum([
7734
7733
  "running",
@@ -7755,19 +7754,100 @@ var RelocateJobSchema = object({
7755
7754
  finishedAt: number().nullable(),
7756
7755
  error: string().nullable()
7757
7756
  });
7757
+ /** Profile-derived footage selection used only by the migration coordinator:
7758
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7759
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7758
7760
  var RelocateFootageInputSchema = object({
7759
- deviceId: number().optional(),
7760
7761
  fromLocationId: string(),
7761
7762
  toLocationId: string(),
7762
7763
  entities: array(_enum(["segments"])).optional(),
7764
+ /** Limits relocation to the logical profile class. Omit only for the
7765
+ * pre-orchestration compatibility path. */
7766
+ footageClass: RelocateFootageClassSchema.optional(),
7763
7767
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7764
7768
  * never allowed to starve live writers. */
7765
7769
  throttleMbps: number().min(1).max(1e3).optional()
7766
7770
  });
7767
- var RelocateMediaInputSchema = object({
7768
- deviceId: number().optional(),
7771
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7772
+ * from persistent recording settings: a migration never changes
7773
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7774
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7775
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7776
+ var StorageMigrationMediaMoveInputSchema = object({
7769
7777
  toLocationId: string(),
7770
7778
  throttleMbps: number().min(1).max(1e3).optional()
7779
+ }).extend({ leaseId: string().min(1) });
7780
+ /** The independently selectable logical storage classes. `recordings`
7781
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7782
+ * segments; `eventMedia` is post-analysis blobs. */
7783
+ var StorageMigrationClassSchema = _enum([
7784
+ "recordings",
7785
+ "recordingsLow",
7786
+ "eventMedia"
7787
+ ]);
7788
+ /** A destination is always an existing, fully-qualified location id. The
7789
+ * migration API intentionally never changes a source location's `basePath`:
7790
+ * callers create a new `<type>:<slug>` location, then select it here. */
7791
+ var StorageMigrationDestinationsSchema = object({
7792
+ recordings: string().min(1).optional(),
7793
+ recordingsLow: string().min(1).optional(),
7794
+ eventMedia: string().min(1).optional()
7795
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7796
+ /** Shared input for planning and starting an orchestrated storage migration. */
7797
+ var StorageMigrationInputSchema = object({
7798
+ destinations: StorageMigrationDestinationsSchema,
7799
+ throttleMbps: number().min(1).max(1e3).optional()
7800
+ });
7801
+ /** The durable coordinator state machine. The only phase that changes default
7802
+ * locations is `repointing`, after every selected mover has completed and been
7803
+ * verified. */
7804
+ var StorageMigrationPhaseSchema = _enum([
7805
+ "planning",
7806
+ "pausing",
7807
+ "moving",
7808
+ "verifying",
7809
+ "repointing",
7810
+ "refreshing",
7811
+ "resuming",
7812
+ "done",
7813
+ "failed",
7814
+ "cancelled"
7815
+ ]);
7816
+ var StorageMigrationParticipantSchema = _enum([
7817
+ "pipeline",
7818
+ "recorder",
7819
+ "analytics"
7820
+ ]);
7821
+ var StorageMigrationMoveSchema = object({
7822
+ storageClass: StorageMigrationClassSchema,
7823
+ fromLocationId: string(),
7824
+ toLocationId: string(),
7825
+ moverJobId: string().nullable(),
7826
+ state: RelocateJobStateSchema.nullable(),
7827
+ error: string().nullable()
7828
+ });
7829
+ var StorageMigrationJobSchema = object({
7830
+ jobId: string(),
7831
+ phase: StorageMigrationPhaseSchema,
7832
+ destinations: StorageMigrationDestinationsSchema,
7833
+ throttleMbps: number(),
7834
+ moves: array(StorageMigrationMoveSchema),
7835
+ pauseLeaseId: string().nullable(),
7836
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7837
+ repointed: boolean(),
7838
+ cancelRequested: boolean(),
7839
+ startedAt: number(),
7840
+ updatedAt: number(),
7841
+ finishedAt: number().nullable(),
7842
+ error: string().nullable()
7843
+ });
7844
+ var StorageMigrationPlanSchema = object({
7845
+ destinations: StorageMigrationDestinationsSchema,
7846
+ moves: array(object({
7847
+ storageClass: StorageMigrationClassSchema,
7848
+ fromLocationId: string(),
7849
+ toLocationId: string()
7850
+ }))
7771
7851
  });
7772
7852
  /**
7773
7853
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16506,13 +16586,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16506
16586
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16507
16587
  kind: "mutation",
16508
16588
  auth: "admin"
16509
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16589
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16510
16590
  kind: "mutation",
16511
16591
  auth: "admin"
16512
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16513
- kind: "query",
16592
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16593
+ kind: "mutation",
16594
+ auth: "admin"
16595
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16596
+ kind: "mutation",
16597
+ auth: "admin"
16598
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16599
+ kind: "mutation",
16514
16600
  auth: "admin"
16515
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16601
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16516
16602
  kind: "mutation",
16517
16603
  auth: "admin"
16518
16604
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -18042,7 +18128,13 @@ var NodeInferenceDevicesSchema = object({
18042
18128
  reachable: boolean(),
18043
18129
  devices: array(NodeInferenceDeviceSchema).readonly()
18044
18130
  });
18045
- method(object({
18131
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
18132
+ kind: "mutation",
18133
+ auth: "admin"
18134
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
18135
+ kind: "mutation",
18136
+ auth: "admin"
18137
+ }), method(object({
18046
18138
  deviceId: number(),
18047
18139
  agentNodeId: string()
18048
18140
  }), object({ success: literal(true) }), {
@@ -18716,6 +18808,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18716
18808
  locationId: string(),
18717
18809
  targetBytes: number().int().positive()
18718
18810
  }), EvictResultSchema, { kind: "mutation" });
18811
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18812
+ kind: "mutation",
18813
+ auth: "admin"
18814
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18815
+ kind: "mutation",
18816
+ auth: "admin"
18817
+ });
18719
18818
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18720
18819
  providerId: string().min(1),
18721
18820
  displayName: string().min(1),
@@ -18819,6 +18918,28 @@ var TerminalProfileInfoSchema = object({
18819
18918
  label: string(),
18820
18919
  description: string().optional()
18821
18920
  });
18921
+ /**
18922
+ * A durable operator-created Terminal instance. Profiles are templates; only
18923
+ * an instance declares a camera.
18924
+ */
18925
+ var TerminalInstanceInfoSchema = object({
18926
+ instanceId: string(),
18927
+ cameraStableId: string(),
18928
+ nodeId: string(),
18929
+ profileId: string(),
18930
+ profileLabel: string(),
18931
+ name: string(),
18932
+ enabled: boolean()
18933
+ });
18934
+ var TerminalLegacyCameraSchema = object({
18935
+ stableId: string(),
18936
+ nodeId: string(),
18937
+ profileId: string(),
18938
+ profileLabel: string(),
18939
+ name: string(),
18940
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18941
+ adoptable: boolean()
18942
+ });
18822
18943
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18823
18944
  seq: number().int().positive(),
18824
18945
  kind: literal("data"),
@@ -18835,7 +18956,29 @@ var TerminalOutputBatchSchema = object({
18835
18956
  snapshot: string().optional(),
18836
18957
  events: array(TerminalOutputEventSchema).readonly()
18837
18958
  });
18838
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18959
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18960
+ targetNodeId: string().min(1),
18961
+ profileId: string().min(1),
18962
+ name: string().trim().min(1).max(160).optional()
18963
+ }), TerminalInstanceInfoSchema, {
18964
+ kind: "mutation",
18965
+ auth: "admin"
18966
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18967
+ kind: "mutation",
18968
+ auth: "admin"
18969
+ }), method(object({
18970
+ instanceId: string().min(1),
18971
+ enabled: boolean()
18972
+ }), TerminalInstanceInfoSchema, {
18973
+ kind: "mutation",
18974
+ auth: "admin"
18975
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18976
+ stableId: string().min(1),
18977
+ name: string().trim().min(1).max(160).optional()
18978
+ }), TerminalInstanceInfoSchema, {
18979
+ kind: "mutation",
18980
+ auth: "admin"
18981
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18839
18982
  profileId: string(),
18840
18983
  cols: number().int().positive(),
18841
18984
  rows: number().int().positive()
@@ -18852,7 +18995,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18852
18995
  }), method(object({
18853
18996
  sessionId: string(),
18854
18997
  afterSeq: number().int().nonnegative(),
18855
- waitMs: number().int().min(0).max(2e3).default(0)
18998
+ waitMs: number().int().min(0).max(2e3).default(0),
18999
+ /**
19000
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
19001
+ * browser's initial repaint remains immediate; the camera snapshot
19002
+ * relay uses it to avoid encoding a blank startup frame.
19003
+ */
19004
+ waitForOutput: boolean().optional()
18856
19005
  }), TerminalOutputBatchSchema, {
18857
19006
  kind: "mutation",
18858
19007
  auth: "admin",
@@ -21367,6 +21516,7 @@ var FaceInfoSchema = object({
21367
21516
  var FaceFilterEnum = _enum([
21368
21517
  "unassigned",
21369
21518
  "recognized",
21519
+ "identified",
21370
21520
  "all"
21371
21521
  ]);
21372
21522
  var MediaFileLiteSchema$1 = object({
@@ -21395,6 +21545,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21395
21545
  kind: "mutation",
21396
21546
  auth: "admin"
21397
21547
  }), method(object({
21548
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21549
+ deviceId: number().int().optional(),
21398
21550
  limit: number().int().positive().optional(),
21399
21551
  filter: FaceFilterEnum.optional(),
21400
21552
  /**
@@ -23624,6 +23776,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23624
23776
  capName: string().min(1).max(64),
23625
23777
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23626
23778
  valuePath: string().min(1).max(64)
23779
+ }),
23780
+ object({
23781
+ kind: literal("latest-recognition"),
23782
+ recognition: _enum(["person", "plate"])
23627
23783
  })
23628
23784
  ]);
23629
23785
  var OsdSlotBindingSchema = object({
@@ -23729,6 +23885,15 @@ method(object({ deviceId: number().int() }), object({
23729
23885
  }), object({ success: literal(true) }), {
23730
23886
  kind: "mutation",
23731
23887
  auth: "admin"
23888
+ }), method(object({
23889
+ sourceDeviceId: number().int(),
23890
+ targetDeviceId: number().int()
23891
+ }), object({
23892
+ copied: number().int().nonnegative(),
23893
+ skipped: number().int().nonnegative()
23894
+ }), {
23895
+ kind: "mutation",
23896
+ auth: "admin"
23732
23897
  }), method(object({
23733
23898
  deviceId: number().int(),
23734
23899
  slotId: string().min(1),
@@ -24826,13 +24991,19 @@ method(object({
24826
24991
  }), {
24827
24992
  kind: "mutation",
24828
24993
  auth: "admin"
24829
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
24994
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24830
24995
  kind: "mutation",
24831
24996
  auth: "admin"
24832
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24833
- kind: "query",
24997
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24998
+ kind: "mutation",
24834
24999
  auth: "admin"
24835
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
25000
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
25001
+ kind: "mutation",
25002
+ auth: "admin"
25003
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
25004
+ kind: "mutation",
25005
+ auth: "admin"
25006
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24836
25007
  kind: "mutation",
24837
25008
  auth: "admin"
24838
25009
  });
@@ -30438,6 +30609,12 @@ Object.freeze({
30438
30609
  addonId: null,
30439
30610
  access: "delete"
30440
30611
  },
30612
+ "osdManager.copyDeviceConfiguration": {
30613
+ capName: "osd-manager",
30614
+ capScope: "system",
30615
+ addonId: null,
30616
+ access: "create"
30617
+ },
30441
30618
  "osdManager.getConditionSupport": {
30442
30619
  capName: "osd-manager",
30443
30620
  capScope: "system",
@@ -30534,7 +30711,7 @@ Object.freeze({
30534
30711
  addonId: null,
30535
30712
  access: "create"
30536
30713
  },
30537
- "pipelineAnalytics.cancelMediaRelocate": {
30714
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30538
30715
  capName: "pipeline-analytics",
30539
30716
  capScope: "device",
30540
30717
  addonId: null,
@@ -30606,12 +30783,6 @@ Object.freeze({
30606
30783
  addonId: null,
30607
30784
  access: "view"
30608
30785
  },
30609
- "pipelineAnalytics.getMediaRelocateStatus": {
30610
- capName: "pipeline-analytics",
30611
- capScope: "device",
30612
- addonId: null,
30613
- access: "view"
30614
- },
30615
30786
  "pipelineAnalytics.getMotionEvents": {
30616
30787
  capName: "pipeline-analytics",
30617
30788
  capScope: "device",
@@ -30648,6 +30819,12 @@ Object.freeze({
30648
30819
  addonId: null,
30649
30820
  access: "view"
30650
30821
  },
30822
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30823
+ capName: "pipeline-analytics",
30824
+ capScope: "device",
30825
+ addonId: null,
30826
+ access: "view"
30827
+ },
30651
30828
  "pipelineAnalytics.getTrack": {
30652
30829
  capName: "pipeline-analytics",
30653
30830
  capScope: "device",
@@ -30726,6 +30903,12 @@ Object.freeze({
30726
30903
  addonId: null,
30727
30904
  access: "view"
30728
30905
  },
30906
+ "pipelineAnalytics.pauseForStorageMigration": {
30907
+ capName: "pipeline-analytics",
30908
+ capScope: "device",
30909
+ addonId: null,
30910
+ access: "create"
30911
+ },
30729
30912
  "pipelineAnalytics.proposeRetrainAnnotations": {
30730
30913
  capName: "pipeline-analytics",
30731
30914
  capScope: "device",
@@ -30756,7 +30939,7 @@ Object.freeze({
30756
30939
  addonId: null,
30757
30940
  access: "create"
30758
30941
  },
30759
- "pipelineAnalytics.relocateMedia": {
30942
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30760
30943
  capName: "pipeline-analytics",
30761
30944
  capScope: "device",
30762
30945
  addonId: null,
@@ -30768,6 +30951,12 @@ Object.freeze({
30768
30951
  addonId: null,
30769
30952
  access: "create"
30770
30953
  },
30954
+ "pipelineAnalytics.resumeForStorageMigration": {
30955
+ capName: "pipeline-analytics",
30956
+ capScope: "device",
30957
+ addonId: null,
30958
+ access: "create"
30959
+ },
30771
30960
  "pipelineAnalytics.saveRetrainAnnotations": {
30772
30961
  capName: "pipeline-analytics",
30773
30962
  capScope: "device",
@@ -30792,6 +30981,12 @@ Object.freeze({
30792
30981
  addonId: null,
30793
30982
  access: "create"
30794
30983
  },
30984
+ "pipelineAnalytics.startStorageMigrationMove": {
30985
+ capName: "pipeline-analytics",
30986
+ capScope: "device",
30987
+ addonId: null,
30988
+ access: "create"
30989
+ },
30795
30990
  "pipelineAnalytics.wipeAllAnalytics": {
30796
30991
  capName: "pipeline-analytics",
30797
30992
  capScope: "device",
@@ -31158,6 +31353,12 @@ Object.freeze({
31158
31353
  addonId: null,
31159
31354
  access: "view"
31160
31355
  },
31356
+ "pipelineOrchestrator.pauseForStorageMigration": {
31357
+ capName: "pipeline-orchestrator",
31358
+ capScope: "system",
31359
+ addonId: null,
31360
+ access: "create"
31361
+ },
31161
31362
  "pipelineOrchestrator.rebalance": {
31162
31363
  capName: "pipeline-orchestrator",
31163
31364
  capScope: "system",
@@ -31182,6 +31383,12 @@ Object.freeze({
31182
31383
  addonId: null,
31183
31384
  access: "view"
31184
31385
  },
31386
+ "pipelineOrchestrator.resumeForStorageMigration": {
31387
+ capName: "pipeline-orchestrator",
31388
+ capScope: "system",
31389
+ addonId: null,
31390
+ access: "create"
31391
+ },
31185
31392
  "pipelineOrchestrator.saveTemplate": {
31186
31393
  capName: "pipeline-orchestrator",
31187
31394
  capScope: "system",
@@ -31578,7 +31785,7 @@ Object.freeze({
31578
31785
  addonId: null,
31579
31786
  access: "create"
31580
31787
  },
31581
- "recording.cancelRelocate": {
31788
+ "recording.cancelStorageMigrationMove": {
31582
31789
  capName: "recording",
31583
31790
  capScope: "system",
31584
31791
  addonId: null,
@@ -31614,7 +31821,7 @@ Object.freeze({
31614
31821
  addonId: null,
31615
31822
  access: "view"
31616
31823
  },
31617
- "recording.getRelocateStatus": {
31824
+ "recording.getStorageMigrationMoveStatus": {
31618
31825
  capName: "recording",
31619
31826
  capScope: "system",
31620
31827
  addonId: null,
@@ -31638,6 +31845,12 @@ Object.freeze({
31638
31845
  addonId: null,
31639
31846
  access: "view"
31640
31847
  },
31848
+ "recording.pauseForStorageMigration": {
31849
+ capName: "recording",
31850
+ capScope: "system",
31851
+ addonId: null,
31852
+ access: "create"
31853
+ },
31641
31854
  "recording.pruneFootage": {
31642
31855
  capName: "recording",
31643
31856
  capScope: "system",
@@ -31656,7 +31869,7 @@ Object.freeze({
31656
31869
  addonId: null,
31657
31870
  access: "view"
31658
31871
  },
31659
- "recording.relocateFootage": {
31872
+ "recording.refreshStorageLocationsForMigration": {
31660
31873
  capName: "recording",
31661
31874
  capScope: "system",
31662
31875
  addonId: null,
@@ -31680,12 +31893,24 @@ Object.freeze({
31680
31893
  addonId: null,
31681
31894
  access: "create"
31682
31895
  },
31896
+ "recording.resumeForStorageMigration": {
31897
+ capName: "recording",
31898
+ capScope: "system",
31899
+ addonId: null,
31900
+ access: "create"
31901
+ },
31683
31902
  "recording.setDeviceConfig": {
31684
31903
  capName: "recording",
31685
31904
  capScope: "system",
31686
31905
  addonId: null,
31687
31906
  access: "create"
31688
31907
  },
31908
+ "recording.startStorageMigrationMove": {
31909
+ capName: "recording",
31910
+ capScope: "system",
31911
+ addonId: null,
31912
+ access: "create"
31913
+ },
31689
31914
  "recordingExport.cancelExport": {
31690
31915
  capName: "recordingExport",
31691
31916
  capScope: "system",
@@ -32076,6 +32301,30 @@ Object.freeze({
32076
32301
  addonId: null,
32077
32302
  access: "view"
32078
32303
  },
32304
+ "storageMigration.cancel": {
32305
+ capName: "storage-migration",
32306
+ capScope: "system",
32307
+ addonId: null,
32308
+ access: "create"
32309
+ },
32310
+ "storageMigration.plan": {
32311
+ capName: "storage-migration",
32312
+ capScope: "system",
32313
+ addonId: null,
32314
+ access: "view"
32315
+ },
32316
+ "storageMigration.start": {
32317
+ capName: "storage-migration",
32318
+ capScope: "system",
32319
+ addonId: null,
32320
+ access: "create"
32321
+ },
32322
+ "storageMigration.status": {
32323
+ capName: "storage-migration",
32324
+ capScope: "system",
32325
+ addonId: null,
32326
+ access: "view"
32327
+ },
32079
32328
  "storageProvider.abortUpload": {
32080
32329
  capName: "storage-provider",
32081
32330
  capScope: "system",
@@ -32454,12 +32703,42 @@ Object.freeze({
32454
32703
  addonId: null,
32455
32704
  access: "create"
32456
32705
  },
32706
+ "terminalSession.adoptLegacyMonitor": {
32707
+ capName: "terminal-session",
32708
+ capScope: "system",
32709
+ addonId: null,
32710
+ access: "create"
32711
+ },
32457
32712
  "terminalSession.close": {
32458
32713
  capName: "terminal-session",
32459
32714
  capScope: "system",
32460
32715
  addonId: null,
32461
32716
  access: "create"
32462
32717
  },
32718
+ "terminalSession.createInstance": {
32719
+ capName: "terminal-session",
32720
+ capScope: "system",
32721
+ addonId: null,
32722
+ access: "create"
32723
+ },
32724
+ "terminalSession.deleteInstance": {
32725
+ capName: "terminal-session",
32726
+ capScope: "system",
32727
+ addonId: null,
32728
+ access: "delete"
32729
+ },
32730
+ "terminalSession.listInstances": {
32731
+ capName: "terminal-session",
32732
+ capScope: "system",
32733
+ addonId: null,
32734
+ access: "view"
32735
+ },
32736
+ "terminalSession.listLegacyCameras": {
32737
+ capName: "terminal-session",
32738
+ capScope: "system",
32739
+ addonId: null,
32740
+ access: "view"
32741
+ },
32463
32742
  "terminalSession.listProfiles": {
32464
32743
  capName: "terminal-session",
32465
32744
  capScope: "system",
@@ -32490,6 +32769,12 @@ Object.freeze({
32490
32769
  addonId: null,
32491
32770
  access: "create"
32492
32771
  },
32772
+ "terminalSession.setInstanceEnabled": {
32773
+ capName: "terminal-session",
32774
+ capScope: "system",
32775
+ addonId: null,
32776
+ access: "create"
32777
+ },
32493
32778
  "terminalSession.writeInput": {
32494
32779
  capName: "terminal-session",
32495
32780
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -7723,12 +7723,11 @@ var RecordingConfigSchema = object({
7723
7723
  /**
7724
7724
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7725
7725
  *
7726
- * One shape shared by the recorder's `relocateFootage` (segments) and
7727
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7728
- * page renders both movers with one component. Jobs are in-RAM (a restart
7729
- * forgets them re-running is safe by construction: copy-if-absent, delete
7730
- * after verify) and each completed/failed run also lands one durable ops-log
7731
- * row on the owning addon's surface.
7726
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7727
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7728
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7729
+ * Each completed/failed run also lands one durable ops-log row on its owning
7730
+ * addon surface.
7732
7731
  */
7733
7732
  var RelocateJobStateSchema = _enum([
7734
7733
  "running",
@@ -7755,19 +7754,100 @@ var RelocateJobSchema = object({
7755
7754
  finishedAt: number().nullable(),
7756
7755
  error: string().nullable()
7757
7756
  });
7757
+ /** Profile-derived footage selection used only by the migration coordinator:
7758
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7759
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7758
7760
  var RelocateFootageInputSchema = object({
7759
- deviceId: number().optional(),
7760
7761
  fromLocationId: string(),
7761
7762
  toLocationId: string(),
7762
7763
  entities: array(_enum(["segments"])).optional(),
7764
+ /** Limits relocation to the logical profile class. Omit only for the
7765
+ * pre-orchestration compatibility path. */
7766
+ footageClass: RelocateFootageClassSchema.optional(),
7763
7767
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7764
7768
  * never allowed to starve live writers. */
7765
7769
  throttleMbps: number().min(1).max(1e3).optional()
7766
7770
  });
7767
- var RelocateMediaInputSchema = object({
7768
- deviceId: number().optional(),
7771
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7772
+ * from persistent recording settings: a migration never changes
7773
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7774
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7775
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7776
+ var StorageMigrationMediaMoveInputSchema = object({
7769
7777
  toLocationId: string(),
7770
7778
  throttleMbps: number().min(1).max(1e3).optional()
7779
+ }).extend({ leaseId: string().min(1) });
7780
+ /** The independently selectable logical storage classes. `recordings`
7781
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7782
+ * segments; `eventMedia` is post-analysis blobs. */
7783
+ var StorageMigrationClassSchema = _enum([
7784
+ "recordings",
7785
+ "recordingsLow",
7786
+ "eventMedia"
7787
+ ]);
7788
+ /** A destination is always an existing, fully-qualified location id. The
7789
+ * migration API intentionally never changes a source location's `basePath`:
7790
+ * callers create a new `<type>:<slug>` location, then select it here. */
7791
+ var StorageMigrationDestinationsSchema = object({
7792
+ recordings: string().min(1).optional(),
7793
+ recordingsLow: string().min(1).optional(),
7794
+ eventMedia: string().min(1).optional()
7795
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7796
+ /** Shared input for planning and starting an orchestrated storage migration. */
7797
+ var StorageMigrationInputSchema = object({
7798
+ destinations: StorageMigrationDestinationsSchema,
7799
+ throttleMbps: number().min(1).max(1e3).optional()
7800
+ });
7801
+ /** The durable coordinator state machine. The only phase that changes default
7802
+ * locations is `repointing`, after every selected mover has completed and been
7803
+ * verified. */
7804
+ var StorageMigrationPhaseSchema = _enum([
7805
+ "planning",
7806
+ "pausing",
7807
+ "moving",
7808
+ "verifying",
7809
+ "repointing",
7810
+ "refreshing",
7811
+ "resuming",
7812
+ "done",
7813
+ "failed",
7814
+ "cancelled"
7815
+ ]);
7816
+ var StorageMigrationParticipantSchema = _enum([
7817
+ "pipeline",
7818
+ "recorder",
7819
+ "analytics"
7820
+ ]);
7821
+ var StorageMigrationMoveSchema = object({
7822
+ storageClass: StorageMigrationClassSchema,
7823
+ fromLocationId: string(),
7824
+ toLocationId: string(),
7825
+ moverJobId: string().nullable(),
7826
+ state: RelocateJobStateSchema.nullable(),
7827
+ error: string().nullable()
7828
+ });
7829
+ var StorageMigrationJobSchema = object({
7830
+ jobId: string(),
7831
+ phase: StorageMigrationPhaseSchema,
7832
+ destinations: StorageMigrationDestinationsSchema,
7833
+ throttleMbps: number(),
7834
+ moves: array(StorageMigrationMoveSchema),
7835
+ pauseLeaseId: string().nullable(),
7836
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7837
+ repointed: boolean(),
7838
+ cancelRequested: boolean(),
7839
+ startedAt: number(),
7840
+ updatedAt: number(),
7841
+ finishedAt: number().nullable(),
7842
+ error: string().nullable()
7843
+ });
7844
+ var StorageMigrationPlanSchema = object({
7845
+ destinations: StorageMigrationDestinationsSchema,
7846
+ moves: array(object({
7847
+ storageClass: StorageMigrationClassSchema,
7848
+ fromLocationId: string(),
7849
+ toLocationId: string()
7850
+ }))
7771
7851
  });
7772
7852
  /**
7773
7853
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16506,13 +16586,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16506
16586
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16507
16587
  kind: "mutation",
16508
16588
  auth: "admin"
16509
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16589
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16510
16590
  kind: "mutation",
16511
16591
  auth: "admin"
16512
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16513
- kind: "query",
16592
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16593
+ kind: "mutation",
16594
+ auth: "admin"
16595
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16596
+ kind: "mutation",
16597
+ auth: "admin"
16598
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16599
+ kind: "mutation",
16514
16600
  auth: "admin"
16515
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16601
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16516
16602
  kind: "mutation",
16517
16603
  auth: "admin"
16518
16604
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -18042,7 +18128,13 @@ var NodeInferenceDevicesSchema = object({
18042
18128
  reachable: boolean(),
18043
18129
  devices: array(NodeInferenceDeviceSchema).readonly()
18044
18130
  });
18045
- method(object({
18131
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
18132
+ kind: "mutation",
18133
+ auth: "admin"
18134
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
18135
+ kind: "mutation",
18136
+ auth: "admin"
18137
+ }), method(object({
18046
18138
  deviceId: number(),
18047
18139
  agentNodeId: string()
18048
18140
  }), object({ success: literal(true) }), {
@@ -18716,6 +18808,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18716
18808
  locationId: string(),
18717
18809
  targetBytes: number().int().positive()
18718
18810
  }), EvictResultSchema, { kind: "mutation" });
18811
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18812
+ kind: "mutation",
18813
+ auth: "admin"
18814
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18815
+ kind: "mutation",
18816
+ auth: "admin"
18817
+ });
18719
18818
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18720
18819
  providerId: string().min(1),
18721
18820
  displayName: string().min(1),
@@ -18819,6 +18918,28 @@ var TerminalProfileInfoSchema = object({
18819
18918
  label: string(),
18820
18919
  description: string().optional()
18821
18920
  });
18921
+ /**
18922
+ * A durable operator-created Terminal instance. Profiles are templates; only
18923
+ * an instance declares a camera.
18924
+ */
18925
+ var TerminalInstanceInfoSchema = object({
18926
+ instanceId: string(),
18927
+ cameraStableId: string(),
18928
+ nodeId: string(),
18929
+ profileId: string(),
18930
+ profileLabel: string(),
18931
+ name: string(),
18932
+ enabled: boolean()
18933
+ });
18934
+ var TerminalLegacyCameraSchema = object({
18935
+ stableId: string(),
18936
+ nodeId: string(),
18937
+ profileId: string(),
18938
+ profileLabel: string(),
18939
+ name: string(),
18940
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18941
+ adoptable: boolean()
18942
+ });
18822
18943
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18823
18944
  seq: number().int().positive(),
18824
18945
  kind: literal("data"),
@@ -18835,7 +18956,29 @@ var TerminalOutputBatchSchema = object({
18835
18956
  snapshot: string().optional(),
18836
18957
  events: array(TerminalOutputEventSchema).readonly()
18837
18958
  });
18838
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18959
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18960
+ targetNodeId: string().min(1),
18961
+ profileId: string().min(1),
18962
+ name: string().trim().min(1).max(160).optional()
18963
+ }), TerminalInstanceInfoSchema, {
18964
+ kind: "mutation",
18965
+ auth: "admin"
18966
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18967
+ kind: "mutation",
18968
+ auth: "admin"
18969
+ }), method(object({
18970
+ instanceId: string().min(1),
18971
+ enabled: boolean()
18972
+ }), TerminalInstanceInfoSchema, {
18973
+ kind: "mutation",
18974
+ auth: "admin"
18975
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18976
+ stableId: string().min(1),
18977
+ name: string().trim().min(1).max(160).optional()
18978
+ }), TerminalInstanceInfoSchema, {
18979
+ kind: "mutation",
18980
+ auth: "admin"
18981
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18839
18982
  profileId: string(),
18840
18983
  cols: number().int().positive(),
18841
18984
  rows: number().int().positive()
@@ -18852,7 +18995,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18852
18995
  }), method(object({
18853
18996
  sessionId: string(),
18854
18997
  afterSeq: number().int().nonnegative(),
18855
- waitMs: number().int().min(0).max(2e3).default(0)
18998
+ waitMs: number().int().min(0).max(2e3).default(0),
18999
+ /**
19000
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
19001
+ * browser's initial repaint remains immediate; the camera snapshot
19002
+ * relay uses it to avoid encoding a blank startup frame.
19003
+ */
19004
+ waitForOutput: boolean().optional()
18856
19005
  }), TerminalOutputBatchSchema, {
18857
19006
  kind: "mutation",
18858
19007
  auth: "admin",
@@ -21367,6 +21516,7 @@ var FaceInfoSchema = object({
21367
21516
  var FaceFilterEnum = _enum([
21368
21517
  "unassigned",
21369
21518
  "recognized",
21519
+ "identified",
21370
21520
  "all"
21371
21521
  ]);
21372
21522
  var MediaFileLiteSchema$1 = object({
@@ -21395,6 +21545,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
21395
21545
  kind: "mutation",
21396
21546
  auth: "admin"
21397
21547
  }), method(object({
21548
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
21549
+ deviceId: number().int().optional(),
21398
21550
  limit: number().int().positive().optional(),
21399
21551
  filter: FaceFilterEnum.optional(),
21400
21552
  /**
@@ -23624,6 +23776,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
23624
23776
  capName: string().min(1).max(64),
23625
23777
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
23626
23778
  valuePath: string().min(1).max(64)
23779
+ }),
23780
+ object({
23781
+ kind: literal("latest-recognition"),
23782
+ recognition: _enum(["person", "plate"])
23627
23783
  })
23628
23784
  ]);
23629
23785
  var OsdSlotBindingSchema = object({
@@ -23729,6 +23885,15 @@ method(object({ deviceId: number().int() }), object({
23729
23885
  }), object({ success: literal(true) }), {
23730
23886
  kind: "mutation",
23731
23887
  auth: "admin"
23888
+ }), method(object({
23889
+ sourceDeviceId: number().int(),
23890
+ targetDeviceId: number().int()
23891
+ }), object({
23892
+ copied: number().int().nonnegative(),
23893
+ skipped: number().int().nonnegative()
23894
+ }), {
23895
+ kind: "mutation",
23896
+ auth: "admin"
23732
23897
  }), method(object({
23733
23898
  deviceId: number().int(),
23734
23899
  slotId: string().min(1),
@@ -24826,13 +24991,19 @@ method(object({
24826
24991
  }), {
24827
24992
  kind: "mutation",
24828
24993
  auth: "admin"
24829
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
24994
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24830
24995
  kind: "mutation",
24831
24996
  auth: "admin"
24832
- }), method(object({}), array(RelocateJobSchema).readonly(), {
24833
- kind: "query",
24997
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
24998
+ kind: "mutation",
24834
24999
  auth: "admin"
24835
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
25000
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
25001
+ kind: "mutation",
25002
+ auth: "admin"
25003
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
25004
+ kind: "mutation",
25005
+ auth: "admin"
25006
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
24836
25007
  kind: "mutation",
24837
25008
  auth: "admin"
24838
25009
  });
@@ -30438,6 +30609,12 @@ Object.freeze({
30438
30609
  addonId: null,
30439
30610
  access: "delete"
30440
30611
  },
30612
+ "osdManager.copyDeviceConfiguration": {
30613
+ capName: "osd-manager",
30614
+ capScope: "system",
30615
+ addonId: null,
30616
+ access: "create"
30617
+ },
30441
30618
  "osdManager.getConditionSupport": {
30442
30619
  capName: "osd-manager",
30443
30620
  capScope: "system",
@@ -30534,7 +30711,7 @@ Object.freeze({
30534
30711
  addonId: null,
30535
30712
  access: "create"
30536
30713
  },
30537
- "pipelineAnalytics.cancelMediaRelocate": {
30714
+ "pipelineAnalytics.cancelStorageMigrationMove": {
30538
30715
  capName: "pipeline-analytics",
30539
30716
  capScope: "device",
30540
30717
  addonId: null,
@@ -30606,12 +30783,6 @@ Object.freeze({
30606
30783
  addonId: null,
30607
30784
  access: "view"
30608
30785
  },
30609
- "pipelineAnalytics.getMediaRelocateStatus": {
30610
- capName: "pipeline-analytics",
30611
- capScope: "device",
30612
- addonId: null,
30613
- access: "view"
30614
- },
30615
30786
  "pipelineAnalytics.getMotionEvents": {
30616
30787
  capName: "pipeline-analytics",
30617
30788
  capScope: "device",
@@ -30648,6 +30819,12 @@ Object.freeze({
30648
30819
  addonId: null,
30649
30820
  access: "view"
30650
30821
  },
30822
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
30823
+ capName: "pipeline-analytics",
30824
+ capScope: "device",
30825
+ addonId: null,
30826
+ access: "view"
30827
+ },
30651
30828
  "pipelineAnalytics.getTrack": {
30652
30829
  capName: "pipeline-analytics",
30653
30830
  capScope: "device",
@@ -30726,6 +30903,12 @@ Object.freeze({
30726
30903
  addonId: null,
30727
30904
  access: "view"
30728
30905
  },
30906
+ "pipelineAnalytics.pauseForStorageMigration": {
30907
+ capName: "pipeline-analytics",
30908
+ capScope: "device",
30909
+ addonId: null,
30910
+ access: "create"
30911
+ },
30729
30912
  "pipelineAnalytics.proposeRetrainAnnotations": {
30730
30913
  capName: "pipeline-analytics",
30731
30914
  capScope: "device",
@@ -30756,7 +30939,7 @@ Object.freeze({
30756
30939
  addonId: null,
30757
30940
  access: "create"
30758
30941
  },
30759
- "pipelineAnalytics.relocateMedia": {
30942
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
30760
30943
  capName: "pipeline-analytics",
30761
30944
  capScope: "device",
30762
30945
  addonId: null,
@@ -30768,6 +30951,12 @@ Object.freeze({
30768
30951
  addonId: null,
30769
30952
  access: "create"
30770
30953
  },
30954
+ "pipelineAnalytics.resumeForStorageMigration": {
30955
+ capName: "pipeline-analytics",
30956
+ capScope: "device",
30957
+ addonId: null,
30958
+ access: "create"
30959
+ },
30771
30960
  "pipelineAnalytics.saveRetrainAnnotations": {
30772
30961
  capName: "pipeline-analytics",
30773
30962
  capScope: "device",
@@ -30792,6 +30981,12 @@ Object.freeze({
30792
30981
  addonId: null,
30793
30982
  access: "create"
30794
30983
  },
30984
+ "pipelineAnalytics.startStorageMigrationMove": {
30985
+ capName: "pipeline-analytics",
30986
+ capScope: "device",
30987
+ addonId: null,
30988
+ access: "create"
30989
+ },
30795
30990
  "pipelineAnalytics.wipeAllAnalytics": {
30796
30991
  capName: "pipeline-analytics",
30797
30992
  capScope: "device",
@@ -31158,6 +31353,12 @@ Object.freeze({
31158
31353
  addonId: null,
31159
31354
  access: "view"
31160
31355
  },
31356
+ "pipelineOrchestrator.pauseForStorageMigration": {
31357
+ capName: "pipeline-orchestrator",
31358
+ capScope: "system",
31359
+ addonId: null,
31360
+ access: "create"
31361
+ },
31161
31362
  "pipelineOrchestrator.rebalance": {
31162
31363
  capName: "pipeline-orchestrator",
31163
31364
  capScope: "system",
@@ -31182,6 +31383,12 @@ Object.freeze({
31182
31383
  addonId: null,
31183
31384
  access: "view"
31184
31385
  },
31386
+ "pipelineOrchestrator.resumeForStorageMigration": {
31387
+ capName: "pipeline-orchestrator",
31388
+ capScope: "system",
31389
+ addonId: null,
31390
+ access: "create"
31391
+ },
31185
31392
  "pipelineOrchestrator.saveTemplate": {
31186
31393
  capName: "pipeline-orchestrator",
31187
31394
  capScope: "system",
@@ -31578,7 +31785,7 @@ Object.freeze({
31578
31785
  addonId: null,
31579
31786
  access: "create"
31580
31787
  },
31581
- "recording.cancelRelocate": {
31788
+ "recording.cancelStorageMigrationMove": {
31582
31789
  capName: "recording",
31583
31790
  capScope: "system",
31584
31791
  addonId: null,
@@ -31614,7 +31821,7 @@ Object.freeze({
31614
31821
  addonId: null,
31615
31822
  access: "view"
31616
31823
  },
31617
- "recording.getRelocateStatus": {
31824
+ "recording.getStorageMigrationMoveStatus": {
31618
31825
  capName: "recording",
31619
31826
  capScope: "system",
31620
31827
  addonId: null,
@@ -31638,6 +31845,12 @@ Object.freeze({
31638
31845
  addonId: null,
31639
31846
  access: "view"
31640
31847
  },
31848
+ "recording.pauseForStorageMigration": {
31849
+ capName: "recording",
31850
+ capScope: "system",
31851
+ addonId: null,
31852
+ access: "create"
31853
+ },
31641
31854
  "recording.pruneFootage": {
31642
31855
  capName: "recording",
31643
31856
  capScope: "system",
@@ -31656,7 +31869,7 @@ Object.freeze({
31656
31869
  addonId: null,
31657
31870
  access: "view"
31658
31871
  },
31659
- "recording.relocateFootage": {
31872
+ "recording.refreshStorageLocationsForMigration": {
31660
31873
  capName: "recording",
31661
31874
  capScope: "system",
31662
31875
  addonId: null,
@@ -31680,12 +31893,24 @@ Object.freeze({
31680
31893
  addonId: null,
31681
31894
  access: "create"
31682
31895
  },
31896
+ "recording.resumeForStorageMigration": {
31897
+ capName: "recording",
31898
+ capScope: "system",
31899
+ addonId: null,
31900
+ access: "create"
31901
+ },
31683
31902
  "recording.setDeviceConfig": {
31684
31903
  capName: "recording",
31685
31904
  capScope: "system",
31686
31905
  addonId: null,
31687
31906
  access: "create"
31688
31907
  },
31908
+ "recording.startStorageMigrationMove": {
31909
+ capName: "recording",
31910
+ capScope: "system",
31911
+ addonId: null,
31912
+ access: "create"
31913
+ },
31689
31914
  "recordingExport.cancelExport": {
31690
31915
  capName: "recordingExport",
31691
31916
  capScope: "system",
@@ -32076,6 +32301,30 @@ Object.freeze({
32076
32301
  addonId: null,
32077
32302
  access: "view"
32078
32303
  },
32304
+ "storageMigration.cancel": {
32305
+ capName: "storage-migration",
32306
+ capScope: "system",
32307
+ addonId: null,
32308
+ access: "create"
32309
+ },
32310
+ "storageMigration.plan": {
32311
+ capName: "storage-migration",
32312
+ capScope: "system",
32313
+ addonId: null,
32314
+ access: "view"
32315
+ },
32316
+ "storageMigration.start": {
32317
+ capName: "storage-migration",
32318
+ capScope: "system",
32319
+ addonId: null,
32320
+ access: "create"
32321
+ },
32322
+ "storageMigration.status": {
32323
+ capName: "storage-migration",
32324
+ capScope: "system",
32325
+ addonId: null,
32326
+ access: "view"
32327
+ },
32079
32328
  "storageProvider.abortUpload": {
32080
32329
  capName: "storage-provider",
32081
32330
  capScope: "system",
@@ -32454,12 +32703,42 @@ Object.freeze({
32454
32703
  addonId: null,
32455
32704
  access: "create"
32456
32705
  },
32706
+ "terminalSession.adoptLegacyMonitor": {
32707
+ capName: "terminal-session",
32708
+ capScope: "system",
32709
+ addonId: null,
32710
+ access: "create"
32711
+ },
32457
32712
  "terminalSession.close": {
32458
32713
  capName: "terminal-session",
32459
32714
  capScope: "system",
32460
32715
  addonId: null,
32461
32716
  access: "create"
32462
32717
  },
32718
+ "terminalSession.createInstance": {
32719
+ capName: "terminal-session",
32720
+ capScope: "system",
32721
+ addonId: null,
32722
+ access: "create"
32723
+ },
32724
+ "terminalSession.deleteInstance": {
32725
+ capName: "terminal-session",
32726
+ capScope: "system",
32727
+ addonId: null,
32728
+ access: "delete"
32729
+ },
32730
+ "terminalSession.listInstances": {
32731
+ capName: "terminal-session",
32732
+ capScope: "system",
32733
+ addonId: null,
32734
+ access: "view"
32735
+ },
32736
+ "terminalSession.listLegacyCameras": {
32737
+ capName: "terminal-session",
32738
+ capScope: "system",
32739
+ addonId: null,
32740
+ access: "view"
32741
+ },
32463
32742
  "terminalSession.listProfiles": {
32464
32743
  capName: "terminal-session",
32465
32744
  capScope: "system",
@@ -32490,6 +32769,12 @@ Object.freeze({
32490
32769
  addonId: null,
32491
32770
  access: "create"
32492
32771
  },
32772
+ "terminalSession.setInstanceEnabled": {
32773
+ capName: "terminal-session",
32774
+ capScope: "system",
32775
+ addonId: null,
32776
+ access: "create"
32777
+ },
32493
32778
  "terminalSession.writeInput": {
32494
32779
  capName: "terminal-session",
32495
32780
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-import-alexa",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "Alexa device-import provider for CamStack — imports the smart-home devices in a user's Alexa account via the unofficial alexa-remote2 cookie/token client (the inverse of the Alexa exporter)",
5
5
  "keywords": [
6
6
  "camstack",