@camstack/addon-post-analysis 1.2.63 → 1.2.64

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.
@@ -7786,12 +7786,11 @@ var RecordingConfigSchema = object({
7786
7786
  /**
7787
7787
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7788
7788
  *
7789
- * One shape shared by the recorder's `relocateFootage` (segments) and
7790
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7791
- * page renders both movers with one component. Jobs are in-RAM (a restart
7792
- * forgets them — re-running is safe by construction: copy-if-absent, delete
7793
- * after verify) and each completed/failed run also lands one durable ops-log
7794
- * row on the owning addon's surface.
7789
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7790
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7791
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7792
+ * Each completed/failed run also lands one durable ops-log row on its owning
7793
+ * addon surface.
7795
7794
  */
7796
7795
  var RelocateJobStateSchema = _enum([
7797
7796
  "running",
@@ -7818,19 +7817,100 @@ var RelocateJobSchema = object({
7818
7817
  finishedAt: number().nullable(),
7819
7818
  error: string().nullable()
7820
7819
  });
7820
+ /** Profile-derived footage selection used only by the migration coordinator:
7821
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7822
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7821
7823
  var RelocateFootageInputSchema = object({
7822
- deviceId: number().optional(),
7823
7824
  fromLocationId: string(),
7824
7825
  toLocationId: string(),
7825
7826
  entities: array(_enum(["segments"])).optional(),
7827
+ /** Limits relocation to the logical profile class. Omit only for the
7828
+ * pre-orchestration compatibility path. */
7829
+ footageClass: RelocateFootageClassSchema.optional(),
7826
7830
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7827
7831
  * never allowed to starve live writers. */
7828
7832
  throttleMbps: number().min(1).max(1e3).optional()
7829
7833
  });
7830
- var RelocateMediaInputSchema = object({
7831
- deviceId: number().optional(),
7834
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7835
+ * from persistent recording settings: a migration never changes
7836
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7837
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7838
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7839
+ var StorageMigrationMediaMoveInputSchema = object({
7832
7840
  toLocationId: string(),
7833
7841
  throttleMbps: number().min(1).max(1e3).optional()
7842
+ }).extend({ leaseId: string().min(1) });
7843
+ /** The independently selectable logical storage classes. `recordings`
7844
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7845
+ * segments; `eventMedia` is post-analysis blobs. */
7846
+ var StorageMigrationClassSchema = _enum([
7847
+ "recordings",
7848
+ "recordingsLow",
7849
+ "eventMedia"
7850
+ ]);
7851
+ /** A destination is always an existing, fully-qualified location id. The
7852
+ * migration API intentionally never changes a source location's `basePath`:
7853
+ * callers create a new `<type>:<slug>` location, then select it here. */
7854
+ var StorageMigrationDestinationsSchema = object({
7855
+ recordings: string().min(1).optional(),
7856
+ recordingsLow: string().min(1).optional(),
7857
+ eventMedia: string().min(1).optional()
7858
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7859
+ /** Shared input for planning and starting an orchestrated storage migration. */
7860
+ var StorageMigrationInputSchema = object({
7861
+ destinations: StorageMigrationDestinationsSchema,
7862
+ throttleMbps: number().min(1).max(1e3).optional()
7863
+ });
7864
+ /** The durable coordinator state machine. The only phase that changes default
7865
+ * locations is `repointing`, after every selected mover has completed and been
7866
+ * verified. */
7867
+ var StorageMigrationPhaseSchema = _enum([
7868
+ "planning",
7869
+ "pausing",
7870
+ "moving",
7871
+ "verifying",
7872
+ "repointing",
7873
+ "refreshing",
7874
+ "resuming",
7875
+ "done",
7876
+ "failed",
7877
+ "cancelled"
7878
+ ]);
7879
+ var StorageMigrationParticipantSchema = _enum([
7880
+ "pipeline",
7881
+ "recorder",
7882
+ "analytics"
7883
+ ]);
7884
+ var StorageMigrationMoveSchema = object({
7885
+ storageClass: StorageMigrationClassSchema,
7886
+ fromLocationId: string(),
7887
+ toLocationId: string(),
7888
+ moverJobId: string().nullable(),
7889
+ state: RelocateJobStateSchema.nullable(),
7890
+ error: string().nullable()
7891
+ });
7892
+ var StorageMigrationJobSchema = object({
7893
+ jobId: string(),
7894
+ phase: StorageMigrationPhaseSchema,
7895
+ destinations: StorageMigrationDestinationsSchema,
7896
+ throttleMbps: number(),
7897
+ moves: array(StorageMigrationMoveSchema),
7898
+ pauseLeaseId: string().nullable(),
7899
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7900
+ repointed: boolean(),
7901
+ cancelRequested: boolean(),
7902
+ startedAt: number(),
7903
+ updatedAt: number(),
7904
+ finishedAt: number().nullable(),
7905
+ error: string().nullable()
7906
+ });
7907
+ var StorageMigrationPlanSchema = object({
7908
+ destinations: StorageMigrationDestinationsSchema,
7909
+ moves: array(object({
7910
+ storageClass: StorageMigrationClassSchema,
7911
+ fromLocationId: string(),
7912
+ toLocationId: string()
7913
+ }))
7834
7914
  });
7835
7915
  /**
7836
7916
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -17149,20 +17229,28 @@ var pipelineAnalyticsCapability = {
17149
17229
  }),
17150
17230
  /** The events ops-log rows (newest-first), optionally scoped to one camera.
17151
17231
  * Backed by a declared pipeline-analytics SQLite collection. */
17152
- /**
17153
- * Move event-media blobs onto `toLocationId` (entity-routing spec Phase
17154
- * 4): per-row copy → stamp row.locationId → delete old blob. Rows already
17155
- * at the target are skipped, so a re-run resumes. Single-flight.
17156
- */
17157
- relocateMedia: method(RelocateMediaInputSchema, object({ jobId: string() }), {
17232
+ /** Internal migration-participant lease. It drains active MediaStore
17233
+ * writes and refuses new ones without changing analytics bindings. */
17234
+ pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17158
17235
  kind: "mutation",
17159
17236
  auth: "admin"
17160
17237
  }),
17161
- getMediaRelocateStatus: method(object({}), array(RelocateJobSchema).readonly(), {
17162
- kind: "query",
17238
+ resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17239
+ kind: "mutation",
17240
+ auth: "admin"
17241
+ }),
17242
+ /** Drops cached location roots after the storage coordinator repoints a
17243
+ * default so future event-media writes use the new root. */
17244
+ refreshStorageLocationsForMigration: method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
17245
+ kind: "mutation",
17246
+ auth: "admin"
17247
+ }),
17248
+ startStorageMigrationMove: method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
17249
+ kind: "mutation",
17163
17250
  auth: "admin"
17164
17251
  }),
17165
- cancelMediaRelocate: method(object({ jobId: string() }), object({ cancelled: boolean() }), {
17252
+ getStorageMigrationMoveStatus: method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
17253
+ cancelStorageMigrationMove: method(object({ jobId: string() }), object({ cancelled: boolean() }), {
17166
17254
  kind: "mutation",
17167
17255
  auth: "admin"
17168
17256
  }),
@@ -18898,7 +18986,13 @@ var NodeInferenceDevicesSchema = object({
18898
18986
  reachable: boolean(),
18899
18987
  devices: array(NodeInferenceDeviceSchema).readonly()
18900
18988
  });
18901
- method(object({
18989
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
18990
+ kind: "mutation",
18991
+ auth: "admin"
18992
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
18993
+ kind: "mutation",
18994
+ auth: "admin"
18995
+ }), method(object({
18902
18996
  deviceId: number(),
18903
18997
  agentNodeId: string()
18904
18998
  }), object({ success: literal(true) }), {
@@ -19602,6 +19696,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
19602
19696
  locationId: string(),
19603
19697
  targetBytes: number().int().positive()
19604
19698
  }), EvictResultSchema, { kind: "mutation" });
19699
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
19700
+ kind: "mutation",
19701
+ auth: "admin"
19702
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
19703
+ kind: "mutation",
19704
+ auth: "admin"
19705
+ });
19605
19706
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
19606
19707
  providerId: string().min(1),
19607
19708
  displayName: string().min(1),
@@ -19705,6 +19806,28 @@ var TerminalProfileInfoSchema = object({
19705
19806
  label: string(),
19706
19807
  description: string().optional()
19707
19808
  });
19809
+ /**
19810
+ * A durable operator-created Terminal instance. Profiles are templates; only
19811
+ * an instance declares a camera.
19812
+ */
19813
+ var TerminalInstanceInfoSchema = object({
19814
+ instanceId: string(),
19815
+ cameraStableId: string(),
19816
+ nodeId: string(),
19817
+ profileId: string(),
19818
+ profileLabel: string(),
19819
+ name: string(),
19820
+ enabled: boolean()
19821
+ });
19822
+ var TerminalLegacyCameraSchema = object({
19823
+ stableId: string(),
19824
+ nodeId: string(),
19825
+ profileId: string(),
19826
+ profileLabel: string(),
19827
+ name: string(),
19828
+ /** Only legacy monitor cameras can retain their historic stable identity. */
19829
+ adoptable: boolean()
19830
+ });
19708
19831
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
19709
19832
  seq: number().int().positive(),
19710
19833
  kind: literal("data"),
@@ -19721,7 +19844,29 @@ var TerminalOutputBatchSchema = object({
19721
19844
  snapshot: string().optional(),
19722
19845
  events: array(TerminalOutputEventSchema).readonly()
19723
19846
  });
19724
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
19847
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
19848
+ targetNodeId: string().min(1),
19849
+ profileId: string().min(1),
19850
+ name: string().trim().min(1).max(160).optional()
19851
+ }), TerminalInstanceInfoSchema, {
19852
+ kind: "mutation",
19853
+ auth: "admin"
19854
+ }), method(object({ instanceId: string().min(1) }), _void(), {
19855
+ kind: "mutation",
19856
+ auth: "admin"
19857
+ }), method(object({
19858
+ instanceId: string().min(1),
19859
+ enabled: boolean()
19860
+ }), TerminalInstanceInfoSchema, {
19861
+ kind: "mutation",
19862
+ auth: "admin"
19863
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
19864
+ stableId: string().min(1),
19865
+ name: string().trim().min(1).max(160).optional()
19866
+ }), TerminalInstanceInfoSchema, {
19867
+ kind: "mutation",
19868
+ auth: "admin"
19869
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
19725
19870
  profileId: string(),
19726
19871
  cols: number().int().positive(),
19727
19872
  rows: number().int().positive()
@@ -19738,7 +19883,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
19738
19883
  }), method(object({
19739
19884
  sessionId: string(),
19740
19885
  afterSeq: number().int().nonnegative(),
19741
- waitMs: number().int().min(0).max(2e3).default(0)
19886
+ waitMs: number().int().min(0).max(2e3).default(0),
19887
+ /**
19888
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
19889
+ * browser's initial repaint remains immediate; the camera snapshot
19890
+ * relay uses it to avoid encoding a blank startup frame.
19891
+ */
19892
+ waitForOutput: boolean().optional()
19742
19893
  }), TerminalOutputBatchSchema, {
19743
19894
  kind: "mutation",
19744
19895
  auth: "admin",
@@ -25785,13 +25936,19 @@ method(object({
25785
25936
  }), {
25786
25937
  kind: "mutation",
25787
25938
  auth: "admin"
25788
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
25939
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
25789
25940
  kind: "mutation",
25790
25941
  auth: "admin"
25791
- }), method(object({}), array(RelocateJobSchema).readonly(), {
25792
- kind: "query",
25942
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
25943
+ kind: "mutation",
25793
25944
  auth: "admin"
25794
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
25945
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
25946
+ kind: "mutation",
25947
+ auth: "admin"
25948
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
25949
+ kind: "mutation",
25950
+ auth: "admin"
25951
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
25795
25952
  kind: "mutation",
25796
25953
  auth: "admin"
25797
25954
  });
@@ -31524,7 +31681,7 @@ Object.freeze({
31524
31681
  addonId: null,
31525
31682
  access: "create"
31526
31683
  },
31527
- "pipelineAnalytics.cancelMediaRelocate": {
31684
+ "pipelineAnalytics.cancelStorageMigrationMove": {
31528
31685
  capName: "pipeline-analytics",
31529
31686
  capScope: "device",
31530
31687
  addonId: null,
@@ -31596,12 +31753,6 @@ Object.freeze({
31596
31753
  addonId: null,
31597
31754
  access: "view"
31598
31755
  },
31599
- "pipelineAnalytics.getMediaRelocateStatus": {
31600
- capName: "pipeline-analytics",
31601
- capScope: "device",
31602
- addonId: null,
31603
- access: "view"
31604
- },
31605
31756
  "pipelineAnalytics.getMotionEvents": {
31606
31757
  capName: "pipeline-analytics",
31607
31758
  capScope: "device",
@@ -31638,6 +31789,12 @@ Object.freeze({
31638
31789
  addonId: null,
31639
31790
  access: "view"
31640
31791
  },
31792
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
31793
+ capName: "pipeline-analytics",
31794
+ capScope: "device",
31795
+ addonId: null,
31796
+ access: "view"
31797
+ },
31641
31798
  "pipelineAnalytics.getTrack": {
31642
31799
  capName: "pipeline-analytics",
31643
31800
  capScope: "device",
@@ -31716,6 +31873,12 @@ Object.freeze({
31716
31873
  addonId: null,
31717
31874
  access: "view"
31718
31875
  },
31876
+ "pipelineAnalytics.pauseForStorageMigration": {
31877
+ capName: "pipeline-analytics",
31878
+ capScope: "device",
31879
+ addonId: null,
31880
+ access: "create"
31881
+ },
31719
31882
  "pipelineAnalytics.proposeRetrainAnnotations": {
31720
31883
  capName: "pipeline-analytics",
31721
31884
  capScope: "device",
@@ -31746,7 +31909,7 @@ Object.freeze({
31746
31909
  addonId: null,
31747
31910
  access: "create"
31748
31911
  },
31749
- "pipelineAnalytics.relocateMedia": {
31912
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
31750
31913
  capName: "pipeline-analytics",
31751
31914
  capScope: "device",
31752
31915
  addonId: null,
@@ -31758,6 +31921,12 @@ Object.freeze({
31758
31921
  addonId: null,
31759
31922
  access: "create"
31760
31923
  },
31924
+ "pipelineAnalytics.resumeForStorageMigration": {
31925
+ capName: "pipeline-analytics",
31926
+ capScope: "device",
31927
+ addonId: null,
31928
+ access: "create"
31929
+ },
31761
31930
  "pipelineAnalytics.saveRetrainAnnotations": {
31762
31931
  capName: "pipeline-analytics",
31763
31932
  capScope: "device",
@@ -31782,6 +31951,12 @@ Object.freeze({
31782
31951
  addonId: null,
31783
31952
  access: "create"
31784
31953
  },
31954
+ "pipelineAnalytics.startStorageMigrationMove": {
31955
+ capName: "pipeline-analytics",
31956
+ capScope: "device",
31957
+ addonId: null,
31958
+ access: "create"
31959
+ },
31785
31960
  "pipelineAnalytics.wipeAllAnalytics": {
31786
31961
  capName: "pipeline-analytics",
31787
31962
  capScope: "device",
@@ -32148,6 +32323,12 @@ Object.freeze({
32148
32323
  addonId: null,
32149
32324
  access: "view"
32150
32325
  },
32326
+ "pipelineOrchestrator.pauseForStorageMigration": {
32327
+ capName: "pipeline-orchestrator",
32328
+ capScope: "system",
32329
+ addonId: null,
32330
+ access: "create"
32331
+ },
32151
32332
  "pipelineOrchestrator.rebalance": {
32152
32333
  capName: "pipeline-orchestrator",
32153
32334
  capScope: "system",
@@ -32172,6 +32353,12 @@ Object.freeze({
32172
32353
  addonId: null,
32173
32354
  access: "view"
32174
32355
  },
32356
+ "pipelineOrchestrator.resumeForStorageMigration": {
32357
+ capName: "pipeline-orchestrator",
32358
+ capScope: "system",
32359
+ addonId: null,
32360
+ access: "create"
32361
+ },
32175
32362
  "pipelineOrchestrator.saveTemplate": {
32176
32363
  capName: "pipeline-orchestrator",
32177
32364
  capScope: "system",
@@ -32568,7 +32755,7 @@ Object.freeze({
32568
32755
  addonId: null,
32569
32756
  access: "create"
32570
32757
  },
32571
- "recording.cancelRelocate": {
32758
+ "recording.cancelStorageMigrationMove": {
32572
32759
  capName: "recording",
32573
32760
  capScope: "system",
32574
32761
  addonId: null,
@@ -32604,7 +32791,7 @@ Object.freeze({
32604
32791
  addonId: null,
32605
32792
  access: "view"
32606
32793
  },
32607
- "recording.getRelocateStatus": {
32794
+ "recording.getStorageMigrationMoveStatus": {
32608
32795
  capName: "recording",
32609
32796
  capScope: "system",
32610
32797
  addonId: null,
@@ -32628,6 +32815,12 @@ Object.freeze({
32628
32815
  addonId: null,
32629
32816
  access: "view"
32630
32817
  },
32818
+ "recording.pauseForStorageMigration": {
32819
+ capName: "recording",
32820
+ capScope: "system",
32821
+ addonId: null,
32822
+ access: "create"
32823
+ },
32631
32824
  "recording.pruneFootage": {
32632
32825
  capName: "recording",
32633
32826
  capScope: "system",
@@ -32646,7 +32839,7 @@ Object.freeze({
32646
32839
  addonId: null,
32647
32840
  access: "view"
32648
32841
  },
32649
- "recording.relocateFootage": {
32842
+ "recording.refreshStorageLocationsForMigration": {
32650
32843
  capName: "recording",
32651
32844
  capScope: "system",
32652
32845
  addonId: null,
@@ -32670,12 +32863,24 @@ Object.freeze({
32670
32863
  addonId: null,
32671
32864
  access: "create"
32672
32865
  },
32866
+ "recording.resumeForStorageMigration": {
32867
+ capName: "recording",
32868
+ capScope: "system",
32869
+ addonId: null,
32870
+ access: "create"
32871
+ },
32673
32872
  "recording.setDeviceConfig": {
32674
32873
  capName: "recording",
32675
32874
  capScope: "system",
32676
32875
  addonId: null,
32677
32876
  access: "create"
32678
32877
  },
32878
+ "recording.startStorageMigrationMove": {
32879
+ capName: "recording",
32880
+ capScope: "system",
32881
+ addonId: null,
32882
+ access: "create"
32883
+ },
32679
32884
  "recordingExport.cancelExport": {
32680
32885
  capName: "recordingExport",
32681
32886
  capScope: "system",
@@ -33066,6 +33271,30 @@ Object.freeze({
33066
33271
  addonId: null,
33067
33272
  access: "view"
33068
33273
  },
33274
+ "storageMigration.cancel": {
33275
+ capName: "storage-migration",
33276
+ capScope: "system",
33277
+ addonId: null,
33278
+ access: "create"
33279
+ },
33280
+ "storageMigration.plan": {
33281
+ capName: "storage-migration",
33282
+ capScope: "system",
33283
+ addonId: null,
33284
+ access: "view"
33285
+ },
33286
+ "storageMigration.start": {
33287
+ capName: "storage-migration",
33288
+ capScope: "system",
33289
+ addonId: null,
33290
+ access: "create"
33291
+ },
33292
+ "storageMigration.status": {
33293
+ capName: "storage-migration",
33294
+ capScope: "system",
33295
+ addonId: null,
33296
+ access: "view"
33297
+ },
33069
33298
  "storageProvider.abortUpload": {
33070
33299
  capName: "storage-provider",
33071
33300
  capScope: "system",
@@ -33444,12 +33673,42 @@ Object.freeze({
33444
33673
  addonId: null,
33445
33674
  access: "create"
33446
33675
  },
33676
+ "terminalSession.adoptLegacyMonitor": {
33677
+ capName: "terminal-session",
33678
+ capScope: "system",
33679
+ addonId: null,
33680
+ access: "create"
33681
+ },
33447
33682
  "terminalSession.close": {
33448
33683
  capName: "terminal-session",
33449
33684
  capScope: "system",
33450
33685
  addonId: null,
33451
33686
  access: "create"
33452
33687
  },
33688
+ "terminalSession.createInstance": {
33689
+ capName: "terminal-session",
33690
+ capScope: "system",
33691
+ addonId: null,
33692
+ access: "create"
33693
+ },
33694
+ "terminalSession.deleteInstance": {
33695
+ capName: "terminal-session",
33696
+ capScope: "system",
33697
+ addonId: null,
33698
+ access: "delete"
33699
+ },
33700
+ "terminalSession.listInstances": {
33701
+ capName: "terminal-session",
33702
+ capScope: "system",
33703
+ addonId: null,
33704
+ access: "view"
33705
+ },
33706
+ "terminalSession.listLegacyCameras": {
33707
+ capName: "terminal-session",
33708
+ capScope: "system",
33709
+ addonId: null,
33710
+ access: "view"
33711
+ },
33453
33712
  "terminalSession.listProfiles": {
33454
33713
  capName: "terminal-session",
33455
33714
  capScope: "system",
@@ -33480,6 +33739,12 @@ Object.freeze({
33480
33739
  addonId: null,
33481
33740
  access: "create"
33482
33741
  },
33742
+ "terminalSession.setInstanceEnabled": {
33743
+ capName: "terminal-session",
33744
+ capScope: "system",
33745
+ addonId: null,
33746
+ access: "create"
33747
+ },
33483
33748
  "terminalSession.writeInput": {
33484
33749
  capName: "terminal-session",
33485
33750
  capScope: "system",