@camstack/addon-provider-dreame 0.2.12 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/addon.js +316 -31
  2. package/dist/addon.mjs +316 -31
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -58070,12 +58070,11 @@ var RecordingConfigSchema = object({
58070
58070
  /**
58071
58071
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
58072
58072
  *
58073
- * One shape shared by the recorder's `relocateFootage` (segments) and
58074
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
58075
- * page renders both movers with one component. Jobs are in-RAM (a restart
58076
- * forgets them re-running is safe by construction: copy-if-absent, delete
58077
- * after verify) and each completed/failed run also lands one durable ops-log
58078
- * row on the owning addon's surface.
58073
+ * One shape shared by the recorder and pipeline-analytics internal movers.
58074
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
58075
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
58076
+ * Each completed/failed run also lands one durable ops-log row on its owning
58077
+ * addon surface.
58079
58078
  */
58080
58079
  var RelocateJobStateSchema = _enum([
58081
58080
  "running",
@@ -58102,19 +58101,100 @@ var RelocateJobSchema = object({
58102
58101
  finishedAt: number().nullable(),
58103
58102
  error: string().nullable()
58104
58103
  });
58104
+ /** Profile-derived footage selection used only by the migration coordinator:
58105
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
58106
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
58105
58107
  var RelocateFootageInputSchema = object({
58106
- deviceId: number().optional(),
58107
58108
  fromLocationId: string(),
58108
58109
  toLocationId: string(),
58109
58110
  entities: array(_enum(["segments"])).optional(),
58111
+ /** Limits relocation to the logical profile class. Omit only for the
58112
+ * pre-orchestration compatibility path. */
58113
+ footageClass: RelocateFootageClassSchema.optional(),
58110
58114
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
58111
58115
  * never allowed to starve live writers. */
58112
58116
  throttleMbps: number().min(1).max(1e3).optional()
58113
58117
  });
58114
- var RelocateMediaInputSchema = object({
58115
- deviceId: number().optional(),
58118
+ /** Internal, lease-scoped participant operation. It is intentionally separate
58119
+ * from persistent recording settings: a migration never changes
58120
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
58121
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
58122
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
58123
+ var StorageMigrationMediaMoveInputSchema = object({
58116
58124
  toLocationId: string(),
58117
58125
  throttleMbps: number().min(1).max(1e3).optional()
58126
+ }).extend({ leaseId: string().min(1) });
58127
+ /** The independently selectable logical storage classes. `recordings`
58128
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
58129
+ * segments; `eventMedia` is post-analysis blobs. */
58130
+ var StorageMigrationClassSchema = _enum([
58131
+ "recordings",
58132
+ "recordingsLow",
58133
+ "eventMedia"
58134
+ ]);
58135
+ /** A destination is always an existing, fully-qualified location id. The
58136
+ * migration API intentionally never changes a source location's `basePath`:
58137
+ * callers create a new `<type>:<slug>` location, then select it here. */
58138
+ var StorageMigrationDestinationsSchema = object({
58139
+ recordings: string().min(1).optional(),
58140
+ recordingsLow: string().min(1).optional(),
58141
+ eventMedia: string().min(1).optional()
58142
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
58143
+ /** Shared input for planning and starting an orchestrated storage migration. */
58144
+ var StorageMigrationInputSchema = object({
58145
+ destinations: StorageMigrationDestinationsSchema,
58146
+ throttleMbps: number().min(1).max(1e3).optional()
58147
+ });
58148
+ /** The durable coordinator state machine. The only phase that changes default
58149
+ * locations is `repointing`, after every selected mover has completed and been
58150
+ * verified. */
58151
+ var StorageMigrationPhaseSchema = _enum([
58152
+ "planning",
58153
+ "pausing",
58154
+ "moving",
58155
+ "verifying",
58156
+ "repointing",
58157
+ "refreshing",
58158
+ "resuming",
58159
+ "done",
58160
+ "failed",
58161
+ "cancelled"
58162
+ ]);
58163
+ var StorageMigrationParticipantSchema = _enum([
58164
+ "pipeline",
58165
+ "recorder",
58166
+ "analytics"
58167
+ ]);
58168
+ var StorageMigrationMoveSchema = object({
58169
+ storageClass: StorageMigrationClassSchema,
58170
+ fromLocationId: string(),
58171
+ toLocationId: string(),
58172
+ moverJobId: string().nullable(),
58173
+ state: RelocateJobStateSchema.nullable(),
58174
+ error: string().nullable()
58175
+ });
58176
+ var StorageMigrationJobSchema = object({
58177
+ jobId: string(),
58178
+ phase: StorageMigrationPhaseSchema,
58179
+ destinations: StorageMigrationDestinationsSchema,
58180
+ throttleMbps: number(),
58181
+ moves: array(StorageMigrationMoveSchema),
58182
+ pauseLeaseId: string().nullable(),
58183
+ pausedParticipants: array(StorageMigrationParticipantSchema),
58184
+ repointed: boolean(),
58185
+ cancelRequested: boolean(),
58186
+ startedAt: number(),
58187
+ updatedAt: number(),
58188
+ finishedAt: number().nullable(),
58189
+ error: string().nullable()
58190
+ });
58191
+ var StorageMigrationPlanSchema = object({
58192
+ destinations: StorageMigrationDestinationsSchema,
58193
+ moves: array(object({
58194
+ storageClass: StorageMigrationClassSchema,
58195
+ fromLocationId: string(),
58196
+ toLocationId: string()
58197
+ }))
58118
58198
  });
58119
58199
  /**
58120
58200
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -66785,13 +66865,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
66785
66865
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
66786
66866
  kind: "mutation",
66787
66867
  auth: "admin"
66788
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
66868
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
66789
66869
  kind: "mutation",
66790
66870
  auth: "admin"
66791
- }), method(object({}), array(RelocateJobSchema).readonly(), {
66792
- kind: "query",
66871
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
66872
+ kind: "mutation",
66873
+ auth: "admin"
66874
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
66875
+ kind: "mutation",
66876
+ auth: "admin"
66877
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
66878
+ kind: "mutation",
66793
66879
  auth: "admin"
66794
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
66880
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
66795
66881
  kind: "mutation",
66796
66882
  auth: "admin"
66797
66883
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -68321,7 +68407,13 @@ var NodeInferenceDevicesSchema = object({
68321
68407
  reachable: boolean(),
68322
68408
  devices: array(NodeInferenceDeviceSchema).readonly()
68323
68409
  });
68324
- method(object({
68410
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
68411
+ kind: "mutation",
68412
+ auth: "admin"
68413
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
68414
+ kind: "mutation",
68415
+ auth: "admin"
68416
+ }), method(object({
68325
68417
  deviceId: number(),
68326
68418
  agentNodeId: string()
68327
68419
  }), object({ success: literal(true) }), {
@@ -68995,6 +69087,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
68995
69087
  locationId: string(),
68996
69088
  targetBytes: number().int().positive()
68997
69089
  }), EvictResultSchema, { kind: "mutation" });
69090
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
69091
+ kind: "mutation",
69092
+ auth: "admin"
69093
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
69094
+ kind: "mutation",
69095
+ auth: "admin"
69096
+ });
68998
69097
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
68999
69098
  providerId: string().min(1),
69000
69099
  displayName: string().min(1),
@@ -69098,6 +69197,28 @@ var TerminalProfileInfoSchema = object({
69098
69197
  label: string(),
69099
69198
  description: string().optional()
69100
69199
  });
69200
+ /**
69201
+ * A durable operator-created Terminal instance. Profiles are templates; only
69202
+ * an instance declares a camera.
69203
+ */
69204
+ var TerminalInstanceInfoSchema = object({
69205
+ instanceId: string(),
69206
+ cameraStableId: string(),
69207
+ nodeId: string(),
69208
+ profileId: string(),
69209
+ profileLabel: string(),
69210
+ name: string(),
69211
+ enabled: boolean()
69212
+ });
69213
+ var TerminalLegacyCameraSchema = object({
69214
+ stableId: string(),
69215
+ nodeId: string(),
69216
+ profileId: string(),
69217
+ profileLabel: string(),
69218
+ name: string(),
69219
+ /** Only legacy monitor cameras can retain their historic stable identity. */
69220
+ adoptable: boolean()
69221
+ });
69101
69222
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
69102
69223
  seq: number().int().positive(),
69103
69224
  kind: literal("data"),
@@ -69114,7 +69235,29 @@ var TerminalOutputBatchSchema = object({
69114
69235
  snapshot: string().optional(),
69115
69236
  events: array(TerminalOutputEventSchema).readonly()
69116
69237
  });
69117
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
69238
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
69239
+ targetNodeId: string().min(1),
69240
+ profileId: string().min(1),
69241
+ name: string().trim().min(1).max(160).optional()
69242
+ }), TerminalInstanceInfoSchema, {
69243
+ kind: "mutation",
69244
+ auth: "admin"
69245
+ }), method(object({ instanceId: string().min(1) }), _void(), {
69246
+ kind: "mutation",
69247
+ auth: "admin"
69248
+ }), method(object({
69249
+ instanceId: string().min(1),
69250
+ enabled: boolean()
69251
+ }), TerminalInstanceInfoSchema, {
69252
+ kind: "mutation",
69253
+ auth: "admin"
69254
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
69255
+ stableId: string().min(1),
69256
+ name: string().trim().min(1).max(160).optional()
69257
+ }), TerminalInstanceInfoSchema, {
69258
+ kind: "mutation",
69259
+ auth: "admin"
69260
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
69118
69261
  profileId: string(),
69119
69262
  cols: number().int().positive(),
69120
69263
  rows: number().int().positive()
@@ -69131,7 +69274,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
69131
69274
  }), method(object({
69132
69275
  sessionId: string(),
69133
69276
  afterSeq: number().int().nonnegative(),
69134
- waitMs: number().int().min(0).max(2e3).default(0)
69277
+ waitMs: number().int().min(0).max(2e3).default(0),
69278
+ /**
69279
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
69280
+ * browser's initial repaint remains immediate; the camera snapshot
69281
+ * relay uses it to avoid encoding a blank startup frame.
69282
+ */
69283
+ waitForOutput: boolean().optional()
69135
69284
  }), TerminalOutputBatchSchema, {
69136
69285
  kind: "mutation",
69137
69286
  auth: "admin",
@@ -71654,6 +71803,7 @@ var FaceInfoSchema = object({
71654
71803
  var FaceFilterEnum = _enum([
71655
71804
  "unassigned",
71656
71805
  "recognized",
71806
+ "identified",
71657
71807
  "all"
71658
71808
  ]);
71659
71809
  var MediaFileLiteSchema$1 = object({
@@ -71682,6 +71832,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
71682
71832
  kind: "mutation",
71683
71833
  auth: "admin"
71684
71834
  }), method(object({
71835
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
71836
+ deviceId: number().int().optional(),
71685
71837
  limit: number().int().positive().optional(),
71686
71838
  filter: FaceFilterEnum.optional(),
71687
71839
  /**
@@ -73911,6 +74063,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
73911
74063
  capName: string().min(1).max(64),
73912
74064
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
73913
74065
  valuePath: string().min(1).max(64)
74066
+ }),
74067
+ object({
74068
+ kind: literal("latest-recognition"),
74069
+ recognition: _enum(["person", "plate"])
73914
74070
  })
73915
74071
  ]);
73916
74072
  var OsdSlotBindingSchema = object({
@@ -74016,6 +74172,15 @@ method(object({ deviceId: number().int() }), object({
74016
74172
  }), object({ success: literal(true) }), {
74017
74173
  kind: "mutation",
74018
74174
  auth: "admin"
74175
+ }), method(object({
74176
+ sourceDeviceId: number().int(),
74177
+ targetDeviceId: number().int()
74178
+ }), object({
74179
+ copied: number().int().nonnegative(),
74180
+ skipped: number().int().nonnegative()
74181
+ }), {
74182
+ kind: "mutation",
74183
+ auth: "admin"
74019
74184
  }), method(object({
74020
74185
  deviceId: number().int(),
74021
74186
  slotId: string().min(1),
@@ -75113,13 +75278,19 @@ method(object({
75113
75278
  }), {
75114
75279
  kind: "mutation",
75115
75280
  auth: "admin"
75116
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
75281
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
75117
75282
  kind: "mutation",
75118
75283
  auth: "admin"
75119
- }), method(object({}), array(RelocateJobSchema).readonly(), {
75120
- kind: "query",
75284
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
75285
+ kind: "mutation",
75121
75286
  auth: "admin"
75122
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
75287
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
75288
+ kind: "mutation",
75289
+ auth: "admin"
75290
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
75291
+ kind: "mutation",
75292
+ auth: "admin"
75293
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
75123
75294
  kind: "mutation",
75124
75295
  auth: "admin"
75125
75296
  });
@@ -80725,6 +80896,12 @@ Object.freeze({
80725
80896
  addonId: null,
80726
80897
  access: "delete"
80727
80898
  },
80899
+ "osdManager.copyDeviceConfiguration": {
80900
+ capName: "osd-manager",
80901
+ capScope: "system",
80902
+ addonId: null,
80903
+ access: "create"
80904
+ },
80728
80905
  "osdManager.getConditionSupport": {
80729
80906
  capName: "osd-manager",
80730
80907
  capScope: "system",
@@ -80821,7 +80998,7 @@ Object.freeze({
80821
80998
  addonId: null,
80822
80999
  access: "create"
80823
81000
  },
80824
- "pipelineAnalytics.cancelMediaRelocate": {
81001
+ "pipelineAnalytics.cancelStorageMigrationMove": {
80825
81002
  capName: "pipeline-analytics",
80826
81003
  capScope: "device",
80827
81004
  addonId: null,
@@ -80893,12 +81070,6 @@ Object.freeze({
80893
81070
  addonId: null,
80894
81071
  access: "view"
80895
81072
  },
80896
- "pipelineAnalytics.getMediaRelocateStatus": {
80897
- capName: "pipeline-analytics",
80898
- capScope: "device",
80899
- addonId: null,
80900
- access: "view"
80901
- },
80902
81073
  "pipelineAnalytics.getMotionEvents": {
80903
81074
  capName: "pipeline-analytics",
80904
81075
  capScope: "device",
@@ -80935,6 +81106,12 @@ Object.freeze({
80935
81106
  addonId: null,
80936
81107
  access: "view"
80937
81108
  },
81109
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
81110
+ capName: "pipeline-analytics",
81111
+ capScope: "device",
81112
+ addonId: null,
81113
+ access: "view"
81114
+ },
80938
81115
  "pipelineAnalytics.getTrack": {
80939
81116
  capName: "pipeline-analytics",
80940
81117
  capScope: "device",
@@ -81013,6 +81190,12 @@ Object.freeze({
81013
81190
  addonId: null,
81014
81191
  access: "view"
81015
81192
  },
81193
+ "pipelineAnalytics.pauseForStorageMigration": {
81194
+ capName: "pipeline-analytics",
81195
+ capScope: "device",
81196
+ addonId: null,
81197
+ access: "create"
81198
+ },
81016
81199
  "pipelineAnalytics.proposeRetrainAnnotations": {
81017
81200
  capName: "pipeline-analytics",
81018
81201
  capScope: "device",
@@ -81043,7 +81226,7 @@ Object.freeze({
81043
81226
  addonId: null,
81044
81227
  access: "create"
81045
81228
  },
81046
- "pipelineAnalytics.relocateMedia": {
81229
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
81047
81230
  capName: "pipeline-analytics",
81048
81231
  capScope: "device",
81049
81232
  addonId: null,
@@ -81055,6 +81238,12 @@ Object.freeze({
81055
81238
  addonId: null,
81056
81239
  access: "create"
81057
81240
  },
81241
+ "pipelineAnalytics.resumeForStorageMigration": {
81242
+ capName: "pipeline-analytics",
81243
+ capScope: "device",
81244
+ addonId: null,
81245
+ access: "create"
81246
+ },
81058
81247
  "pipelineAnalytics.saveRetrainAnnotations": {
81059
81248
  capName: "pipeline-analytics",
81060
81249
  capScope: "device",
@@ -81079,6 +81268,12 @@ Object.freeze({
81079
81268
  addonId: null,
81080
81269
  access: "create"
81081
81270
  },
81271
+ "pipelineAnalytics.startStorageMigrationMove": {
81272
+ capName: "pipeline-analytics",
81273
+ capScope: "device",
81274
+ addonId: null,
81275
+ access: "create"
81276
+ },
81082
81277
  "pipelineAnalytics.wipeAllAnalytics": {
81083
81278
  capName: "pipeline-analytics",
81084
81279
  capScope: "device",
@@ -81445,6 +81640,12 @@ Object.freeze({
81445
81640
  addonId: null,
81446
81641
  access: "view"
81447
81642
  },
81643
+ "pipelineOrchestrator.pauseForStorageMigration": {
81644
+ capName: "pipeline-orchestrator",
81645
+ capScope: "system",
81646
+ addonId: null,
81647
+ access: "create"
81648
+ },
81448
81649
  "pipelineOrchestrator.rebalance": {
81449
81650
  capName: "pipeline-orchestrator",
81450
81651
  capScope: "system",
@@ -81469,6 +81670,12 @@ Object.freeze({
81469
81670
  addonId: null,
81470
81671
  access: "view"
81471
81672
  },
81673
+ "pipelineOrchestrator.resumeForStorageMigration": {
81674
+ capName: "pipeline-orchestrator",
81675
+ capScope: "system",
81676
+ addonId: null,
81677
+ access: "create"
81678
+ },
81472
81679
  "pipelineOrchestrator.saveTemplate": {
81473
81680
  capName: "pipeline-orchestrator",
81474
81681
  capScope: "system",
@@ -81865,7 +82072,7 @@ Object.freeze({
81865
82072
  addonId: null,
81866
82073
  access: "create"
81867
82074
  },
81868
- "recording.cancelRelocate": {
82075
+ "recording.cancelStorageMigrationMove": {
81869
82076
  capName: "recording",
81870
82077
  capScope: "system",
81871
82078
  addonId: null,
@@ -81901,7 +82108,7 @@ Object.freeze({
81901
82108
  addonId: null,
81902
82109
  access: "view"
81903
82110
  },
81904
- "recording.getRelocateStatus": {
82111
+ "recording.getStorageMigrationMoveStatus": {
81905
82112
  capName: "recording",
81906
82113
  capScope: "system",
81907
82114
  addonId: null,
@@ -81925,6 +82132,12 @@ Object.freeze({
81925
82132
  addonId: null,
81926
82133
  access: "view"
81927
82134
  },
82135
+ "recording.pauseForStorageMigration": {
82136
+ capName: "recording",
82137
+ capScope: "system",
82138
+ addonId: null,
82139
+ access: "create"
82140
+ },
81928
82141
  "recording.pruneFootage": {
81929
82142
  capName: "recording",
81930
82143
  capScope: "system",
@@ -81943,7 +82156,7 @@ Object.freeze({
81943
82156
  addonId: null,
81944
82157
  access: "view"
81945
82158
  },
81946
- "recording.relocateFootage": {
82159
+ "recording.refreshStorageLocationsForMigration": {
81947
82160
  capName: "recording",
81948
82161
  capScope: "system",
81949
82162
  addonId: null,
@@ -81967,12 +82180,24 @@ Object.freeze({
81967
82180
  addonId: null,
81968
82181
  access: "create"
81969
82182
  },
82183
+ "recording.resumeForStorageMigration": {
82184
+ capName: "recording",
82185
+ capScope: "system",
82186
+ addonId: null,
82187
+ access: "create"
82188
+ },
81970
82189
  "recording.setDeviceConfig": {
81971
82190
  capName: "recording",
81972
82191
  capScope: "system",
81973
82192
  addonId: null,
81974
82193
  access: "create"
81975
82194
  },
82195
+ "recording.startStorageMigrationMove": {
82196
+ capName: "recording",
82197
+ capScope: "system",
82198
+ addonId: null,
82199
+ access: "create"
82200
+ },
81976
82201
  "recordingExport.cancelExport": {
81977
82202
  capName: "recordingExport",
81978
82203
  capScope: "system",
@@ -82363,6 +82588,30 @@ Object.freeze({
82363
82588
  addonId: null,
82364
82589
  access: "view"
82365
82590
  },
82591
+ "storageMigration.cancel": {
82592
+ capName: "storage-migration",
82593
+ capScope: "system",
82594
+ addonId: null,
82595
+ access: "create"
82596
+ },
82597
+ "storageMigration.plan": {
82598
+ capName: "storage-migration",
82599
+ capScope: "system",
82600
+ addonId: null,
82601
+ access: "view"
82602
+ },
82603
+ "storageMigration.start": {
82604
+ capName: "storage-migration",
82605
+ capScope: "system",
82606
+ addonId: null,
82607
+ access: "create"
82608
+ },
82609
+ "storageMigration.status": {
82610
+ capName: "storage-migration",
82611
+ capScope: "system",
82612
+ addonId: null,
82613
+ access: "view"
82614
+ },
82366
82615
  "storageProvider.abortUpload": {
82367
82616
  capName: "storage-provider",
82368
82617
  capScope: "system",
@@ -82741,12 +82990,42 @@ Object.freeze({
82741
82990
  addonId: null,
82742
82991
  access: "create"
82743
82992
  },
82993
+ "terminalSession.adoptLegacyMonitor": {
82994
+ capName: "terminal-session",
82995
+ capScope: "system",
82996
+ addonId: null,
82997
+ access: "create"
82998
+ },
82744
82999
  "terminalSession.close": {
82745
83000
  capName: "terminal-session",
82746
83001
  capScope: "system",
82747
83002
  addonId: null,
82748
83003
  access: "create"
82749
83004
  },
83005
+ "terminalSession.createInstance": {
83006
+ capName: "terminal-session",
83007
+ capScope: "system",
83008
+ addonId: null,
83009
+ access: "create"
83010
+ },
83011
+ "terminalSession.deleteInstance": {
83012
+ capName: "terminal-session",
83013
+ capScope: "system",
83014
+ addonId: null,
83015
+ access: "delete"
83016
+ },
83017
+ "terminalSession.listInstances": {
83018
+ capName: "terminal-session",
83019
+ capScope: "system",
83020
+ addonId: null,
83021
+ access: "view"
83022
+ },
83023
+ "terminalSession.listLegacyCameras": {
83024
+ capName: "terminal-session",
83025
+ capScope: "system",
83026
+ addonId: null,
83027
+ access: "view"
83028
+ },
82750
83029
  "terminalSession.listProfiles": {
82751
83030
  capName: "terminal-session",
82752
83031
  capScope: "system",
@@ -82777,6 +83056,12 @@ Object.freeze({
82777
83056
  addonId: null,
82778
83057
  access: "create"
82779
83058
  },
83059
+ "terminalSession.setInstanceEnabled": {
83060
+ capName: "terminal-session",
83061
+ capScope: "system",
83062
+ addonId: null,
83063
+ access: "create"
83064
+ },
82780
83065
  "terminalSession.writeInput": {
82781
83066
  capName: "terminal-session",
82782
83067
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -58070,12 +58070,11 @@ var RecordingConfigSchema = object({
58070
58070
  /**
58071
58071
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
58072
58072
  *
58073
- * One shape shared by the recorder's `relocateFootage` (segments) and
58074
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
58075
- * page renders both movers with one component. Jobs are in-RAM (a restart
58076
- * forgets them re-running is safe by construction: copy-if-absent, delete
58077
- * after verify) and each completed/failed run also lands one durable ops-log
58078
- * row on the owning addon's surface.
58073
+ * One shape shared by the recorder and pipeline-analytics internal movers.
58074
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
58075
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
58076
+ * Each completed/failed run also lands one durable ops-log row on its owning
58077
+ * addon surface.
58079
58078
  */
58080
58079
  var RelocateJobStateSchema = _enum([
58081
58080
  "running",
@@ -58102,19 +58101,100 @@ var RelocateJobSchema = object({
58102
58101
  finishedAt: number().nullable(),
58103
58102
  error: string().nullable()
58104
58103
  });
58104
+ /** Profile-derived footage selection used only by the migration coordinator:
58105
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
58106
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
58105
58107
  var RelocateFootageInputSchema = object({
58106
- deviceId: number().optional(),
58107
58108
  fromLocationId: string(),
58108
58109
  toLocationId: string(),
58109
58110
  entities: array(_enum(["segments"])).optional(),
58111
+ /** Limits relocation to the logical profile class. Omit only for the
58112
+ * pre-orchestration compatibility path. */
58113
+ footageClass: RelocateFootageClassSchema.optional(),
58110
58114
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
58111
58115
  * never allowed to starve live writers. */
58112
58116
  throttleMbps: number().min(1).max(1e3).optional()
58113
58117
  });
58114
- var RelocateMediaInputSchema = object({
58115
- deviceId: number().optional(),
58118
+ /** Internal, lease-scoped participant operation. It is intentionally separate
58119
+ * from persistent recording settings: a migration never changes
58120
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
58121
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
58122
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
58123
+ var StorageMigrationMediaMoveInputSchema = object({
58116
58124
  toLocationId: string(),
58117
58125
  throttleMbps: number().min(1).max(1e3).optional()
58126
+ }).extend({ leaseId: string().min(1) });
58127
+ /** The independently selectable logical storage classes. `recordings`
58128
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
58129
+ * segments; `eventMedia` is post-analysis blobs. */
58130
+ var StorageMigrationClassSchema = _enum([
58131
+ "recordings",
58132
+ "recordingsLow",
58133
+ "eventMedia"
58134
+ ]);
58135
+ /** A destination is always an existing, fully-qualified location id. The
58136
+ * migration API intentionally never changes a source location's `basePath`:
58137
+ * callers create a new `<type>:<slug>` location, then select it here. */
58138
+ var StorageMigrationDestinationsSchema = object({
58139
+ recordings: string().min(1).optional(),
58140
+ recordingsLow: string().min(1).optional(),
58141
+ eventMedia: string().min(1).optional()
58142
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
58143
+ /** Shared input for planning and starting an orchestrated storage migration. */
58144
+ var StorageMigrationInputSchema = object({
58145
+ destinations: StorageMigrationDestinationsSchema,
58146
+ throttleMbps: number().min(1).max(1e3).optional()
58147
+ });
58148
+ /** The durable coordinator state machine. The only phase that changes default
58149
+ * locations is `repointing`, after every selected mover has completed and been
58150
+ * verified. */
58151
+ var StorageMigrationPhaseSchema = _enum([
58152
+ "planning",
58153
+ "pausing",
58154
+ "moving",
58155
+ "verifying",
58156
+ "repointing",
58157
+ "refreshing",
58158
+ "resuming",
58159
+ "done",
58160
+ "failed",
58161
+ "cancelled"
58162
+ ]);
58163
+ var StorageMigrationParticipantSchema = _enum([
58164
+ "pipeline",
58165
+ "recorder",
58166
+ "analytics"
58167
+ ]);
58168
+ var StorageMigrationMoveSchema = object({
58169
+ storageClass: StorageMigrationClassSchema,
58170
+ fromLocationId: string(),
58171
+ toLocationId: string(),
58172
+ moverJobId: string().nullable(),
58173
+ state: RelocateJobStateSchema.nullable(),
58174
+ error: string().nullable()
58175
+ });
58176
+ var StorageMigrationJobSchema = object({
58177
+ jobId: string(),
58178
+ phase: StorageMigrationPhaseSchema,
58179
+ destinations: StorageMigrationDestinationsSchema,
58180
+ throttleMbps: number(),
58181
+ moves: array(StorageMigrationMoveSchema),
58182
+ pauseLeaseId: string().nullable(),
58183
+ pausedParticipants: array(StorageMigrationParticipantSchema),
58184
+ repointed: boolean(),
58185
+ cancelRequested: boolean(),
58186
+ startedAt: number(),
58187
+ updatedAt: number(),
58188
+ finishedAt: number().nullable(),
58189
+ error: string().nullable()
58190
+ });
58191
+ var StorageMigrationPlanSchema = object({
58192
+ destinations: StorageMigrationDestinationsSchema,
58193
+ moves: array(object({
58194
+ storageClass: StorageMigrationClassSchema,
58195
+ fromLocationId: string(),
58196
+ toLocationId: string()
58197
+ }))
58118
58198
  });
58119
58199
  /**
58120
58200
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -66785,13 +66865,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
66785
66865
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
66786
66866
  kind: "mutation",
66787
66867
  auth: "admin"
66788
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
66868
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
66789
66869
  kind: "mutation",
66790
66870
  auth: "admin"
66791
- }), method(object({}), array(RelocateJobSchema).readonly(), {
66792
- kind: "query",
66871
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
66872
+ kind: "mutation",
66873
+ auth: "admin"
66874
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
66875
+ kind: "mutation",
66876
+ auth: "admin"
66877
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
66878
+ kind: "mutation",
66793
66879
  auth: "admin"
66794
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
66880
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
66795
66881
  kind: "mutation",
66796
66882
  auth: "admin"
66797
66883
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -68321,7 +68407,13 @@ var NodeInferenceDevicesSchema = object({
68321
68407
  reachable: boolean(),
68322
68408
  devices: array(NodeInferenceDeviceSchema).readonly()
68323
68409
  });
68324
- method(object({
68410
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
68411
+ kind: "mutation",
68412
+ auth: "admin"
68413
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
68414
+ kind: "mutation",
68415
+ auth: "admin"
68416
+ }), method(object({
68325
68417
  deviceId: number(),
68326
68418
  agentNodeId: string()
68327
68419
  }), object({ success: literal(true) }), {
@@ -68995,6 +69087,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
68995
69087
  locationId: string(),
68996
69088
  targetBytes: number().int().positive()
68997
69089
  }), EvictResultSchema, { kind: "mutation" });
69090
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
69091
+ kind: "mutation",
69092
+ auth: "admin"
69093
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
69094
+ kind: "mutation",
69095
+ auth: "admin"
69096
+ });
68998
69097
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
68999
69098
  providerId: string().min(1),
69000
69099
  displayName: string().min(1),
@@ -69098,6 +69197,28 @@ var TerminalProfileInfoSchema = object({
69098
69197
  label: string(),
69099
69198
  description: string().optional()
69100
69199
  });
69200
+ /**
69201
+ * A durable operator-created Terminal instance. Profiles are templates; only
69202
+ * an instance declares a camera.
69203
+ */
69204
+ var TerminalInstanceInfoSchema = object({
69205
+ instanceId: string(),
69206
+ cameraStableId: string(),
69207
+ nodeId: string(),
69208
+ profileId: string(),
69209
+ profileLabel: string(),
69210
+ name: string(),
69211
+ enabled: boolean()
69212
+ });
69213
+ var TerminalLegacyCameraSchema = object({
69214
+ stableId: string(),
69215
+ nodeId: string(),
69216
+ profileId: string(),
69217
+ profileLabel: string(),
69218
+ name: string(),
69219
+ /** Only legacy monitor cameras can retain their historic stable identity. */
69220
+ adoptable: boolean()
69221
+ });
69101
69222
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
69102
69223
  seq: number().int().positive(),
69103
69224
  kind: literal("data"),
@@ -69114,7 +69235,29 @@ var TerminalOutputBatchSchema = object({
69114
69235
  snapshot: string().optional(),
69115
69236
  events: array(TerminalOutputEventSchema).readonly()
69116
69237
  });
69117
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
69238
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
69239
+ targetNodeId: string().min(1),
69240
+ profileId: string().min(1),
69241
+ name: string().trim().min(1).max(160).optional()
69242
+ }), TerminalInstanceInfoSchema, {
69243
+ kind: "mutation",
69244
+ auth: "admin"
69245
+ }), method(object({ instanceId: string().min(1) }), _void(), {
69246
+ kind: "mutation",
69247
+ auth: "admin"
69248
+ }), method(object({
69249
+ instanceId: string().min(1),
69250
+ enabled: boolean()
69251
+ }), TerminalInstanceInfoSchema, {
69252
+ kind: "mutation",
69253
+ auth: "admin"
69254
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
69255
+ stableId: string().min(1),
69256
+ name: string().trim().min(1).max(160).optional()
69257
+ }), TerminalInstanceInfoSchema, {
69258
+ kind: "mutation",
69259
+ auth: "admin"
69260
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
69118
69261
  profileId: string(),
69119
69262
  cols: number().int().positive(),
69120
69263
  rows: number().int().positive()
@@ -69131,7 +69274,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
69131
69274
  }), method(object({
69132
69275
  sessionId: string(),
69133
69276
  afterSeq: number().int().nonnegative(),
69134
- waitMs: number().int().min(0).max(2e3).default(0)
69277
+ waitMs: number().int().min(0).max(2e3).default(0),
69278
+ /**
69279
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
69280
+ * browser's initial repaint remains immediate; the camera snapshot
69281
+ * relay uses it to avoid encoding a blank startup frame.
69282
+ */
69283
+ waitForOutput: boolean().optional()
69135
69284
  }), TerminalOutputBatchSchema, {
69136
69285
  kind: "mutation",
69137
69286
  auth: "admin",
@@ -71654,6 +71803,7 @@ var FaceInfoSchema = object({
71654
71803
  var FaceFilterEnum = _enum([
71655
71804
  "unassigned",
71656
71805
  "recognized",
71806
+ "identified",
71657
71807
  "all"
71658
71808
  ]);
71659
71809
  var MediaFileLiteSchema$1 = object({
@@ -71682,6 +71832,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
71682
71832
  kind: "mutation",
71683
71833
  auth: "admin"
71684
71834
  }), method(object({
71835
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
71836
+ deviceId: number().int().optional(),
71685
71837
  limit: number().int().positive().optional(),
71686
71838
  filter: FaceFilterEnum.optional(),
71687
71839
  /**
@@ -73911,6 +74063,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
73911
74063
  capName: string().min(1).max(64),
73912
74064
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
73913
74065
  valuePath: string().min(1).max(64)
74066
+ }),
74067
+ object({
74068
+ kind: literal("latest-recognition"),
74069
+ recognition: _enum(["person", "plate"])
73914
74070
  })
73915
74071
  ]);
73916
74072
  var OsdSlotBindingSchema = object({
@@ -74016,6 +74172,15 @@ method(object({ deviceId: number().int() }), object({
74016
74172
  }), object({ success: literal(true) }), {
74017
74173
  kind: "mutation",
74018
74174
  auth: "admin"
74175
+ }), method(object({
74176
+ sourceDeviceId: number().int(),
74177
+ targetDeviceId: number().int()
74178
+ }), object({
74179
+ copied: number().int().nonnegative(),
74180
+ skipped: number().int().nonnegative()
74181
+ }), {
74182
+ kind: "mutation",
74183
+ auth: "admin"
74019
74184
  }), method(object({
74020
74185
  deviceId: number().int(),
74021
74186
  slotId: string().min(1),
@@ -75113,13 +75278,19 @@ method(object({
75113
75278
  }), {
75114
75279
  kind: "mutation",
75115
75280
  auth: "admin"
75116
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
75281
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
75117
75282
  kind: "mutation",
75118
75283
  auth: "admin"
75119
- }), method(object({}), array(RelocateJobSchema).readonly(), {
75120
- kind: "query",
75284
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
75285
+ kind: "mutation",
75121
75286
  auth: "admin"
75122
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
75287
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
75288
+ kind: "mutation",
75289
+ auth: "admin"
75290
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
75291
+ kind: "mutation",
75292
+ auth: "admin"
75293
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
75123
75294
  kind: "mutation",
75124
75295
  auth: "admin"
75125
75296
  });
@@ -80725,6 +80896,12 @@ Object.freeze({
80725
80896
  addonId: null,
80726
80897
  access: "delete"
80727
80898
  },
80899
+ "osdManager.copyDeviceConfiguration": {
80900
+ capName: "osd-manager",
80901
+ capScope: "system",
80902
+ addonId: null,
80903
+ access: "create"
80904
+ },
80728
80905
  "osdManager.getConditionSupport": {
80729
80906
  capName: "osd-manager",
80730
80907
  capScope: "system",
@@ -80821,7 +80998,7 @@ Object.freeze({
80821
80998
  addonId: null,
80822
80999
  access: "create"
80823
81000
  },
80824
- "pipelineAnalytics.cancelMediaRelocate": {
81001
+ "pipelineAnalytics.cancelStorageMigrationMove": {
80825
81002
  capName: "pipeline-analytics",
80826
81003
  capScope: "device",
80827
81004
  addonId: null,
@@ -80893,12 +81070,6 @@ Object.freeze({
80893
81070
  addonId: null,
80894
81071
  access: "view"
80895
81072
  },
80896
- "pipelineAnalytics.getMediaRelocateStatus": {
80897
- capName: "pipeline-analytics",
80898
- capScope: "device",
80899
- addonId: null,
80900
- access: "view"
80901
- },
80902
81073
  "pipelineAnalytics.getMotionEvents": {
80903
81074
  capName: "pipeline-analytics",
80904
81075
  capScope: "device",
@@ -80935,6 +81106,12 @@ Object.freeze({
80935
81106
  addonId: null,
80936
81107
  access: "view"
80937
81108
  },
81109
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
81110
+ capName: "pipeline-analytics",
81111
+ capScope: "device",
81112
+ addonId: null,
81113
+ access: "view"
81114
+ },
80938
81115
  "pipelineAnalytics.getTrack": {
80939
81116
  capName: "pipeline-analytics",
80940
81117
  capScope: "device",
@@ -81013,6 +81190,12 @@ Object.freeze({
81013
81190
  addonId: null,
81014
81191
  access: "view"
81015
81192
  },
81193
+ "pipelineAnalytics.pauseForStorageMigration": {
81194
+ capName: "pipeline-analytics",
81195
+ capScope: "device",
81196
+ addonId: null,
81197
+ access: "create"
81198
+ },
81016
81199
  "pipelineAnalytics.proposeRetrainAnnotations": {
81017
81200
  capName: "pipeline-analytics",
81018
81201
  capScope: "device",
@@ -81043,7 +81226,7 @@ Object.freeze({
81043
81226
  addonId: null,
81044
81227
  access: "create"
81045
81228
  },
81046
- "pipelineAnalytics.relocateMedia": {
81229
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
81047
81230
  capName: "pipeline-analytics",
81048
81231
  capScope: "device",
81049
81232
  addonId: null,
@@ -81055,6 +81238,12 @@ Object.freeze({
81055
81238
  addonId: null,
81056
81239
  access: "create"
81057
81240
  },
81241
+ "pipelineAnalytics.resumeForStorageMigration": {
81242
+ capName: "pipeline-analytics",
81243
+ capScope: "device",
81244
+ addonId: null,
81245
+ access: "create"
81246
+ },
81058
81247
  "pipelineAnalytics.saveRetrainAnnotations": {
81059
81248
  capName: "pipeline-analytics",
81060
81249
  capScope: "device",
@@ -81079,6 +81268,12 @@ Object.freeze({
81079
81268
  addonId: null,
81080
81269
  access: "create"
81081
81270
  },
81271
+ "pipelineAnalytics.startStorageMigrationMove": {
81272
+ capName: "pipeline-analytics",
81273
+ capScope: "device",
81274
+ addonId: null,
81275
+ access: "create"
81276
+ },
81082
81277
  "pipelineAnalytics.wipeAllAnalytics": {
81083
81278
  capName: "pipeline-analytics",
81084
81279
  capScope: "device",
@@ -81445,6 +81640,12 @@ Object.freeze({
81445
81640
  addonId: null,
81446
81641
  access: "view"
81447
81642
  },
81643
+ "pipelineOrchestrator.pauseForStorageMigration": {
81644
+ capName: "pipeline-orchestrator",
81645
+ capScope: "system",
81646
+ addonId: null,
81647
+ access: "create"
81648
+ },
81448
81649
  "pipelineOrchestrator.rebalance": {
81449
81650
  capName: "pipeline-orchestrator",
81450
81651
  capScope: "system",
@@ -81469,6 +81670,12 @@ Object.freeze({
81469
81670
  addonId: null,
81470
81671
  access: "view"
81471
81672
  },
81673
+ "pipelineOrchestrator.resumeForStorageMigration": {
81674
+ capName: "pipeline-orchestrator",
81675
+ capScope: "system",
81676
+ addonId: null,
81677
+ access: "create"
81678
+ },
81472
81679
  "pipelineOrchestrator.saveTemplate": {
81473
81680
  capName: "pipeline-orchestrator",
81474
81681
  capScope: "system",
@@ -81865,7 +82072,7 @@ Object.freeze({
81865
82072
  addonId: null,
81866
82073
  access: "create"
81867
82074
  },
81868
- "recording.cancelRelocate": {
82075
+ "recording.cancelStorageMigrationMove": {
81869
82076
  capName: "recording",
81870
82077
  capScope: "system",
81871
82078
  addonId: null,
@@ -81901,7 +82108,7 @@ Object.freeze({
81901
82108
  addonId: null,
81902
82109
  access: "view"
81903
82110
  },
81904
- "recording.getRelocateStatus": {
82111
+ "recording.getStorageMigrationMoveStatus": {
81905
82112
  capName: "recording",
81906
82113
  capScope: "system",
81907
82114
  addonId: null,
@@ -81925,6 +82132,12 @@ Object.freeze({
81925
82132
  addonId: null,
81926
82133
  access: "view"
81927
82134
  },
82135
+ "recording.pauseForStorageMigration": {
82136
+ capName: "recording",
82137
+ capScope: "system",
82138
+ addonId: null,
82139
+ access: "create"
82140
+ },
81928
82141
  "recording.pruneFootage": {
81929
82142
  capName: "recording",
81930
82143
  capScope: "system",
@@ -81943,7 +82156,7 @@ Object.freeze({
81943
82156
  addonId: null,
81944
82157
  access: "view"
81945
82158
  },
81946
- "recording.relocateFootage": {
82159
+ "recording.refreshStorageLocationsForMigration": {
81947
82160
  capName: "recording",
81948
82161
  capScope: "system",
81949
82162
  addonId: null,
@@ -81967,12 +82180,24 @@ Object.freeze({
81967
82180
  addonId: null,
81968
82181
  access: "create"
81969
82182
  },
82183
+ "recording.resumeForStorageMigration": {
82184
+ capName: "recording",
82185
+ capScope: "system",
82186
+ addonId: null,
82187
+ access: "create"
82188
+ },
81970
82189
  "recording.setDeviceConfig": {
81971
82190
  capName: "recording",
81972
82191
  capScope: "system",
81973
82192
  addonId: null,
81974
82193
  access: "create"
81975
82194
  },
82195
+ "recording.startStorageMigrationMove": {
82196
+ capName: "recording",
82197
+ capScope: "system",
82198
+ addonId: null,
82199
+ access: "create"
82200
+ },
81976
82201
  "recordingExport.cancelExport": {
81977
82202
  capName: "recordingExport",
81978
82203
  capScope: "system",
@@ -82363,6 +82588,30 @@ Object.freeze({
82363
82588
  addonId: null,
82364
82589
  access: "view"
82365
82590
  },
82591
+ "storageMigration.cancel": {
82592
+ capName: "storage-migration",
82593
+ capScope: "system",
82594
+ addonId: null,
82595
+ access: "create"
82596
+ },
82597
+ "storageMigration.plan": {
82598
+ capName: "storage-migration",
82599
+ capScope: "system",
82600
+ addonId: null,
82601
+ access: "view"
82602
+ },
82603
+ "storageMigration.start": {
82604
+ capName: "storage-migration",
82605
+ capScope: "system",
82606
+ addonId: null,
82607
+ access: "create"
82608
+ },
82609
+ "storageMigration.status": {
82610
+ capName: "storage-migration",
82611
+ capScope: "system",
82612
+ addonId: null,
82613
+ access: "view"
82614
+ },
82366
82615
  "storageProvider.abortUpload": {
82367
82616
  capName: "storage-provider",
82368
82617
  capScope: "system",
@@ -82741,12 +82990,42 @@ Object.freeze({
82741
82990
  addonId: null,
82742
82991
  access: "create"
82743
82992
  },
82993
+ "terminalSession.adoptLegacyMonitor": {
82994
+ capName: "terminal-session",
82995
+ capScope: "system",
82996
+ addonId: null,
82997
+ access: "create"
82998
+ },
82744
82999
  "terminalSession.close": {
82745
83000
  capName: "terminal-session",
82746
83001
  capScope: "system",
82747
83002
  addonId: null,
82748
83003
  access: "create"
82749
83004
  },
83005
+ "terminalSession.createInstance": {
83006
+ capName: "terminal-session",
83007
+ capScope: "system",
83008
+ addonId: null,
83009
+ access: "create"
83010
+ },
83011
+ "terminalSession.deleteInstance": {
83012
+ capName: "terminal-session",
83013
+ capScope: "system",
83014
+ addonId: null,
83015
+ access: "delete"
83016
+ },
83017
+ "terminalSession.listInstances": {
83018
+ capName: "terminal-session",
83019
+ capScope: "system",
83020
+ addonId: null,
83021
+ access: "view"
83022
+ },
83023
+ "terminalSession.listLegacyCameras": {
83024
+ capName: "terminal-session",
83025
+ capScope: "system",
83026
+ addonId: null,
83027
+ access: "view"
83028
+ },
82750
83029
  "terminalSession.listProfiles": {
82751
83030
  capName: "terminal-session",
82752
83031
  capScope: "system",
@@ -82777,6 +83056,12 @@ Object.freeze({
82777
83056
  addonId: null,
82778
83057
  access: "create"
82779
83058
  },
83059
+ "terminalSession.setInstanceEnabled": {
83060
+ capName: "terminal-session",
83061
+ capScope: "system",
83062
+ addonId: null,
83063
+ access: "create"
83064
+ },
82780
83065
  "terminalSession.writeInput": {
82781
83066
  capName: "terminal-session",
82782
83067
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-dreame",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "Dreame robot-vacuum / lawn-mower device-provider addon for CamStack — wraps the @apocaliss92/nodedreame Dreamehome cloud client",
5
5
  "keywords": [
6
6
  "camstack",