@camstack/addon-provider-dreame 0.2.11 → 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 +357 -30
  2. package/dist/addon.mjs +357 -30
  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",
66793
66873
  auth: "admin"
66794
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
66874
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
66875
+ kind: "mutation",
66876
+ auth: "admin"
66877
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
66878
+ kind: "mutation",
66879
+ auth: "admin"
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,7 +69197,67 @@ var TerminalProfileInfoSchema = object({
69098
69197
  label: string(),
69099
69198
  description: string().optional()
69100
69199
  });
69101
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
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
+ });
69222
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
69223
+ seq: number().int().positive(),
69224
+ kind: literal("data"),
69225
+ data: string()
69226
+ }), object({
69227
+ seq: number().int().positive(),
69228
+ kind: literal("exit"),
69229
+ exitCode: number().int(),
69230
+ signal: number().int().optional()
69231
+ })]);
69232
+ var TerminalOutputBatchSchema = object({
69233
+ cursor: number().int().nonnegative(),
69234
+ reset: boolean(),
69235
+ snapshot: string().optional(),
69236
+ events: array(TerminalOutputEventSchema).readonly()
69237
+ });
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({
69102
69261
  profileId: string(),
69103
69262
  cols: number().int().positive(),
69104
69263
  rows: number().int().positive()
@@ -69112,6 +69271,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
69112
69271
  }), _void(), {
69113
69272
  kind: "mutation",
69114
69273
  auth: "admin"
69274
+ }), method(object({
69275
+ sessionId: string(),
69276
+ afterSeq: number().int().nonnegative(),
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()
69284
+ }), TerminalOutputBatchSchema, {
69285
+ kind: "mutation",
69286
+ auth: "admin",
69287
+ timeoutMs: 15e3
69288
+ }), method(object({
69289
+ sessionId: string(),
69290
+ data: string().max(64 * 1024)
69291
+ }), _void(), {
69292
+ kind: "mutation",
69293
+ auth: "admin"
69115
69294
  }), method(object({ sessionId: string() }), _void(), {
69116
69295
  kind: "mutation",
69117
69296
  auth: "admin"
@@ -71624,6 +71803,7 @@ var FaceInfoSchema = object({
71624
71803
  var FaceFilterEnum = _enum([
71625
71804
  "unassigned",
71626
71805
  "recognized",
71806
+ "identified",
71627
71807
  "all"
71628
71808
  ]);
71629
71809
  var MediaFileLiteSchema$1 = object({
@@ -71652,6 +71832,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
71652
71832
  kind: "mutation",
71653
71833
  auth: "admin"
71654
71834
  }), method(object({
71835
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
71836
+ deviceId: number().int().optional(),
71655
71837
  limit: number().int().positive().optional(),
71656
71838
  filter: FaceFilterEnum.optional(),
71657
71839
  /**
@@ -73881,6 +74063,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
73881
74063
  capName: string().min(1).max(64),
73882
74064
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
73883
74065
  valuePath: string().min(1).max(64)
74066
+ }),
74067
+ object({
74068
+ kind: literal("latest-recognition"),
74069
+ recognition: _enum(["person", "plate"])
73884
74070
  })
73885
74071
  ]);
73886
74072
  var OsdSlotBindingSchema = object({
@@ -73986,6 +74172,15 @@ method(object({ deviceId: number().int() }), object({
73986
74172
  }), object({ success: literal(true) }), {
73987
74173
  kind: "mutation",
73988
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"
73989
74184
  }), method(object({
73990
74185
  deviceId: number().int(),
73991
74186
  slotId: string().min(1),
@@ -75083,13 +75278,19 @@ method(object({
75083
75278
  }), {
75084
75279
  kind: "mutation",
75085
75280
  auth: "admin"
75086
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
75281
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
75087
75282
  kind: "mutation",
75088
75283
  auth: "admin"
75089
- }), method(object({}), array(RelocateJobSchema).readonly(), {
75090
- kind: "query",
75284
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
75285
+ kind: "mutation",
75091
75286
  auth: "admin"
75092
- }), 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() }), {
75093
75294
  kind: "mutation",
75094
75295
  auth: "admin"
75095
75296
  });
@@ -80695,6 +80896,12 @@ Object.freeze({
80695
80896
  addonId: null,
80696
80897
  access: "delete"
80697
80898
  },
80899
+ "osdManager.copyDeviceConfiguration": {
80900
+ capName: "osd-manager",
80901
+ capScope: "system",
80902
+ addonId: null,
80903
+ access: "create"
80904
+ },
80698
80905
  "osdManager.getConditionSupport": {
80699
80906
  capName: "osd-manager",
80700
80907
  capScope: "system",
@@ -80791,7 +80998,7 @@ Object.freeze({
80791
80998
  addonId: null,
80792
80999
  access: "create"
80793
81000
  },
80794
- "pipelineAnalytics.cancelMediaRelocate": {
81001
+ "pipelineAnalytics.cancelStorageMigrationMove": {
80795
81002
  capName: "pipeline-analytics",
80796
81003
  capScope: "device",
80797
81004
  addonId: null,
@@ -80863,12 +81070,6 @@ Object.freeze({
80863
81070
  addonId: null,
80864
81071
  access: "view"
80865
81072
  },
80866
- "pipelineAnalytics.getMediaRelocateStatus": {
80867
- capName: "pipeline-analytics",
80868
- capScope: "device",
80869
- addonId: null,
80870
- access: "view"
80871
- },
80872
81073
  "pipelineAnalytics.getMotionEvents": {
80873
81074
  capName: "pipeline-analytics",
80874
81075
  capScope: "device",
@@ -80905,6 +81106,12 @@ Object.freeze({
80905
81106
  addonId: null,
80906
81107
  access: "view"
80907
81108
  },
81109
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
81110
+ capName: "pipeline-analytics",
81111
+ capScope: "device",
81112
+ addonId: null,
81113
+ access: "view"
81114
+ },
80908
81115
  "pipelineAnalytics.getTrack": {
80909
81116
  capName: "pipeline-analytics",
80910
81117
  capScope: "device",
@@ -80983,6 +81190,12 @@ Object.freeze({
80983
81190
  addonId: null,
80984
81191
  access: "view"
80985
81192
  },
81193
+ "pipelineAnalytics.pauseForStorageMigration": {
81194
+ capName: "pipeline-analytics",
81195
+ capScope: "device",
81196
+ addonId: null,
81197
+ access: "create"
81198
+ },
80986
81199
  "pipelineAnalytics.proposeRetrainAnnotations": {
80987
81200
  capName: "pipeline-analytics",
80988
81201
  capScope: "device",
@@ -81013,7 +81226,7 @@ Object.freeze({
81013
81226
  addonId: null,
81014
81227
  access: "create"
81015
81228
  },
81016
- "pipelineAnalytics.relocateMedia": {
81229
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
81017
81230
  capName: "pipeline-analytics",
81018
81231
  capScope: "device",
81019
81232
  addonId: null,
@@ -81025,6 +81238,12 @@ Object.freeze({
81025
81238
  addonId: null,
81026
81239
  access: "create"
81027
81240
  },
81241
+ "pipelineAnalytics.resumeForStorageMigration": {
81242
+ capName: "pipeline-analytics",
81243
+ capScope: "device",
81244
+ addonId: null,
81245
+ access: "create"
81246
+ },
81028
81247
  "pipelineAnalytics.saveRetrainAnnotations": {
81029
81248
  capName: "pipeline-analytics",
81030
81249
  capScope: "device",
@@ -81049,6 +81268,12 @@ Object.freeze({
81049
81268
  addonId: null,
81050
81269
  access: "create"
81051
81270
  },
81271
+ "pipelineAnalytics.startStorageMigrationMove": {
81272
+ capName: "pipeline-analytics",
81273
+ capScope: "device",
81274
+ addonId: null,
81275
+ access: "create"
81276
+ },
81052
81277
  "pipelineAnalytics.wipeAllAnalytics": {
81053
81278
  capName: "pipeline-analytics",
81054
81279
  capScope: "device",
@@ -81415,6 +81640,12 @@ Object.freeze({
81415
81640
  addonId: null,
81416
81641
  access: "view"
81417
81642
  },
81643
+ "pipelineOrchestrator.pauseForStorageMigration": {
81644
+ capName: "pipeline-orchestrator",
81645
+ capScope: "system",
81646
+ addonId: null,
81647
+ access: "create"
81648
+ },
81418
81649
  "pipelineOrchestrator.rebalance": {
81419
81650
  capName: "pipeline-orchestrator",
81420
81651
  capScope: "system",
@@ -81439,6 +81670,12 @@ Object.freeze({
81439
81670
  addonId: null,
81440
81671
  access: "view"
81441
81672
  },
81673
+ "pipelineOrchestrator.resumeForStorageMigration": {
81674
+ capName: "pipeline-orchestrator",
81675
+ capScope: "system",
81676
+ addonId: null,
81677
+ access: "create"
81678
+ },
81442
81679
  "pipelineOrchestrator.saveTemplate": {
81443
81680
  capName: "pipeline-orchestrator",
81444
81681
  capScope: "system",
@@ -81835,7 +82072,7 @@ Object.freeze({
81835
82072
  addonId: null,
81836
82073
  access: "create"
81837
82074
  },
81838
- "recording.cancelRelocate": {
82075
+ "recording.cancelStorageMigrationMove": {
81839
82076
  capName: "recording",
81840
82077
  capScope: "system",
81841
82078
  addonId: null,
@@ -81871,7 +82108,7 @@ Object.freeze({
81871
82108
  addonId: null,
81872
82109
  access: "view"
81873
82110
  },
81874
- "recording.getRelocateStatus": {
82111
+ "recording.getStorageMigrationMoveStatus": {
81875
82112
  capName: "recording",
81876
82113
  capScope: "system",
81877
82114
  addonId: null,
@@ -81895,6 +82132,12 @@ Object.freeze({
81895
82132
  addonId: null,
81896
82133
  access: "view"
81897
82134
  },
82135
+ "recording.pauseForStorageMigration": {
82136
+ capName: "recording",
82137
+ capScope: "system",
82138
+ addonId: null,
82139
+ access: "create"
82140
+ },
81898
82141
  "recording.pruneFootage": {
81899
82142
  capName: "recording",
81900
82143
  capScope: "system",
@@ -81913,7 +82156,7 @@ Object.freeze({
81913
82156
  addonId: null,
81914
82157
  access: "view"
81915
82158
  },
81916
- "recording.relocateFootage": {
82159
+ "recording.refreshStorageLocationsForMigration": {
81917
82160
  capName: "recording",
81918
82161
  capScope: "system",
81919
82162
  addonId: null,
@@ -81937,12 +82180,24 @@ Object.freeze({
81937
82180
  addonId: null,
81938
82181
  access: "create"
81939
82182
  },
82183
+ "recording.resumeForStorageMigration": {
82184
+ capName: "recording",
82185
+ capScope: "system",
82186
+ addonId: null,
82187
+ access: "create"
82188
+ },
81940
82189
  "recording.setDeviceConfig": {
81941
82190
  capName: "recording",
81942
82191
  capScope: "system",
81943
82192
  addonId: null,
81944
82193
  access: "create"
81945
82194
  },
82195
+ "recording.startStorageMigrationMove": {
82196
+ capName: "recording",
82197
+ capScope: "system",
82198
+ addonId: null,
82199
+ access: "create"
82200
+ },
81946
82201
  "recordingExport.cancelExport": {
81947
82202
  capName: "recordingExport",
81948
82203
  capScope: "system",
@@ -82333,6 +82588,30 @@ Object.freeze({
82333
82588
  addonId: null,
82334
82589
  access: "view"
82335
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
+ },
82336
82615
  "storageProvider.abortUpload": {
82337
82616
  capName: "storage-provider",
82338
82617
  capScope: "system",
@@ -82711,12 +82990,42 @@ Object.freeze({
82711
82990
  addonId: null,
82712
82991
  access: "create"
82713
82992
  },
82993
+ "terminalSession.adoptLegacyMonitor": {
82994
+ capName: "terminal-session",
82995
+ capScope: "system",
82996
+ addonId: null,
82997
+ access: "create"
82998
+ },
82714
82999
  "terminalSession.close": {
82715
83000
  capName: "terminal-session",
82716
83001
  capScope: "system",
82717
83002
  addonId: null,
82718
83003
  access: "create"
82719
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
+ },
82720
83029
  "terminalSession.listProfiles": {
82721
83030
  capName: "terminal-session",
82722
83031
  capScope: "system",
@@ -82735,12 +83044,30 @@ Object.freeze({
82735
83044
  addonId: null,
82736
83045
  access: "create"
82737
83046
  },
83047
+ "terminalSession.pullOutput": {
83048
+ capName: "terminal-session",
83049
+ capScope: "system",
83050
+ addonId: null,
83051
+ access: "create"
83052
+ },
82738
83053
  "terminalSession.resize": {
82739
83054
  capName: "terminal-session",
82740
83055
  capScope: "system",
82741
83056
  addonId: null,
82742
83057
  access: "create"
82743
83058
  },
83059
+ "terminalSession.setInstanceEnabled": {
83060
+ capName: "terminal-session",
83061
+ capScope: "system",
83062
+ addonId: null,
83063
+ access: "create"
83064
+ },
83065
+ "terminalSession.writeInput": {
83066
+ capName: "terminal-session",
83067
+ capScope: "system",
83068
+ addonId: null,
83069
+ access: "create"
83070
+ },
82744
83071
  "toast.onToast": {
82745
83072
  capName: "toast",
82746
83073
  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",
66793
66873
  auth: "admin"
66794
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
66874
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
66875
+ kind: "mutation",
66876
+ auth: "admin"
66877
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
66878
+ kind: "mutation",
66879
+ auth: "admin"
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,7 +69197,67 @@ var TerminalProfileInfoSchema = object({
69098
69197
  label: string(),
69099
69198
  description: string().optional()
69100
69199
  });
69101
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
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
+ });
69222
+ var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
69223
+ seq: number().int().positive(),
69224
+ kind: literal("data"),
69225
+ data: string()
69226
+ }), object({
69227
+ seq: number().int().positive(),
69228
+ kind: literal("exit"),
69229
+ exitCode: number().int(),
69230
+ signal: number().int().optional()
69231
+ })]);
69232
+ var TerminalOutputBatchSchema = object({
69233
+ cursor: number().int().nonnegative(),
69234
+ reset: boolean(),
69235
+ snapshot: string().optional(),
69236
+ events: array(TerminalOutputEventSchema).readonly()
69237
+ });
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({
69102
69261
  profileId: string(),
69103
69262
  cols: number().int().positive(),
69104
69263
  rows: number().int().positive()
@@ -69112,6 +69271,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
69112
69271
  }), _void(), {
69113
69272
  kind: "mutation",
69114
69273
  auth: "admin"
69274
+ }), method(object({
69275
+ sessionId: string(),
69276
+ afterSeq: number().int().nonnegative(),
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()
69284
+ }), TerminalOutputBatchSchema, {
69285
+ kind: "mutation",
69286
+ auth: "admin",
69287
+ timeoutMs: 15e3
69288
+ }), method(object({
69289
+ sessionId: string(),
69290
+ data: string().max(64 * 1024)
69291
+ }), _void(), {
69292
+ kind: "mutation",
69293
+ auth: "admin"
69115
69294
  }), method(object({ sessionId: string() }), _void(), {
69116
69295
  kind: "mutation",
69117
69296
  auth: "admin"
@@ -71624,6 +71803,7 @@ var FaceInfoSchema = object({
71624
71803
  var FaceFilterEnum = _enum([
71625
71804
  "unassigned",
71626
71805
  "recognized",
71806
+ "identified",
71627
71807
  "all"
71628
71808
  ]);
71629
71809
  var MediaFileLiteSchema$1 = object({
@@ -71652,6 +71832,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
71652
71832
  kind: "mutation",
71653
71833
  auth: "admin"
71654
71834
  }), method(object({
71835
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
71836
+ deviceId: number().int().optional(),
71655
71837
  limit: number().int().positive().optional(),
71656
71838
  filter: FaceFilterEnum.optional(),
71657
71839
  /**
@@ -73881,6 +74063,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
73881
74063
  capName: string().min(1).max(64),
73882
74064
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
73883
74065
  valuePath: string().min(1).max(64)
74066
+ }),
74067
+ object({
74068
+ kind: literal("latest-recognition"),
74069
+ recognition: _enum(["person", "plate"])
73884
74070
  })
73885
74071
  ]);
73886
74072
  var OsdSlotBindingSchema = object({
@@ -73986,6 +74172,15 @@ method(object({ deviceId: number().int() }), object({
73986
74172
  }), object({ success: literal(true) }), {
73987
74173
  kind: "mutation",
73988
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"
73989
74184
  }), method(object({
73990
74185
  deviceId: number().int(),
73991
74186
  slotId: string().min(1),
@@ -75083,13 +75278,19 @@ method(object({
75083
75278
  }), {
75084
75279
  kind: "mutation",
75085
75280
  auth: "admin"
75086
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
75281
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
75087
75282
  kind: "mutation",
75088
75283
  auth: "admin"
75089
- }), method(object({}), array(RelocateJobSchema).readonly(), {
75090
- kind: "query",
75284
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
75285
+ kind: "mutation",
75091
75286
  auth: "admin"
75092
- }), 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() }), {
75093
75294
  kind: "mutation",
75094
75295
  auth: "admin"
75095
75296
  });
@@ -80695,6 +80896,12 @@ Object.freeze({
80695
80896
  addonId: null,
80696
80897
  access: "delete"
80697
80898
  },
80899
+ "osdManager.copyDeviceConfiguration": {
80900
+ capName: "osd-manager",
80901
+ capScope: "system",
80902
+ addonId: null,
80903
+ access: "create"
80904
+ },
80698
80905
  "osdManager.getConditionSupport": {
80699
80906
  capName: "osd-manager",
80700
80907
  capScope: "system",
@@ -80791,7 +80998,7 @@ Object.freeze({
80791
80998
  addonId: null,
80792
80999
  access: "create"
80793
81000
  },
80794
- "pipelineAnalytics.cancelMediaRelocate": {
81001
+ "pipelineAnalytics.cancelStorageMigrationMove": {
80795
81002
  capName: "pipeline-analytics",
80796
81003
  capScope: "device",
80797
81004
  addonId: null,
@@ -80863,12 +81070,6 @@ Object.freeze({
80863
81070
  addonId: null,
80864
81071
  access: "view"
80865
81072
  },
80866
- "pipelineAnalytics.getMediaRelocateStatus": {
80867
- capName: "pipeline-analytics",
80868
- capScope: "device",
80869
- addonId: null,
80870
- access: "view"
80871
- },
80872
81073
  "pipelineAnalytics.getMotionEvents": {
80873
81074
  capName: "pipeline-analytics",
80874
81075
  capScope: "device",
@@ -80905,6 +81106,12 @@ Object.freeze({
80905
81106
  addonId: null,
80906
81107
  access: "view"
80907
81108
  },
81109
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
81110
+ capName: "pipeline-analytics",
81111
+ capScope: "device",
81112
+ addonId: null,
81113
+ access: "view"
81114
+ },
80908
81115
  "pipelineAnalytics.getTrack": {
80909
81116
  capName: "pipeline-analytics",
80910
81117
  capScope: "device",
@@ -80983,6 +81190,12 @@ Object.freeze({
80983
81190
  addonId: null,
80984
81191
  access: "view"
80985
81192
  },
81193
+ "pipelineAnalytics.pauseForStorageMigration": {
81194
+ capName: "pipeline-analytics",
81195
+ capScope: "device",
81196
+ addonId: null,
81197
+ access: "create"
81198
+ },
80986
81199
  "pipelineAnalytics.proposeRetrainAnnotations": {
80987
81200
  capName: "pipeline-analytics",
80988
81201
  capScope: "device",
@@ -81013,7 +81226,7 @@ Object.freeze({
81013
81226
  addonId: null,
81014
81227
  access: "create"
81015
81228
  },
81016
- "pipelineAnalytics.relocateMedia": {
81229
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
81017
81230
  capName: "pipeline-analytics",
81018
81231
  capScope: "device",
81019
81232
  addonId: null,
@@ -81025,6 +81238,12 @@ Object.freeze({
81025
81238
  addonId: null,
81026
81239
  access: "create"
81027
81240
  },
81241
+ "pipelineAnalytics.resumeForStorageMigration": {
81242
+ capName: "pipeline-analytics",
81243
+ capScope: "device",
81244
+ addonId: null,
81245
+ access: "create"
81246
+ },
81028
81247
  "pipelineAnalytics.saveRetrainAnnotations": {
81029
81248
  capName: "pipeline-analytics",
81030
81249
  capScope: "device",
@@ -81049,6 +81268,12 @@ Object.freeze({
81049
81268
  addonId: null,
81050
81269
  access: "create"
81051
81270
  },
81271
+ "pipelineAnalytics.startStorageMigrationMove": {
81272
+ capName: "pipeline-analytics",
81273
+ capScope: "device",
81274
+ addonId: null,
81275
+ access: "create"
81276
+ },
81052
81277
  "pipelineAnalytics.wipeAllAnalytics": {
81053
81278
  capName: "pipeline-analytics",
81054
81279
  capScope: "device",
@@ -81415,6 +81640,12 @@ Object.freeze({
81415
81640
  addonId: null,
81416
81641
  access: "view"
81417
81642
  },
81643
+ "pipelineOrchestrator.pauseForStorageMigration": {
81644
+ capName: "pipeline-orchestrator",
81645
+ capScope: "system",
81646
+ addonId: null,
81647
+ access: "create"
81648
+ },
81418
81649
  "pipelineOrchestrator.rebalance": {
81419
81650
  capName: "pipeline-orchestrator",
81420
81651
  capScope: "system",
@@ -81439,6 +81670,12 @@ Object.freeze({
81439
81670
  addonId: null,
81440
81671
  access: "view"
81441
81672
  },
81673
+ "pipelineOrchestrator.resumeForStorageMigration": {
81674
+ capName: "pipeline-orchestrator",
81675
+ capScope: "system",
81676
+ addonId: null,
81677
+ access: "create"
81678
+ },
81442
81679
  "pipelineOrchestrator.saveTemplate": {
81443
81680
  capName: "pipeline-orchestrator",
81444
81681
  capScope: "system",
@@ -81835,7 +82072,7 @@ Object.freeze({
81835
82072
  addonId: null,
81836
82073
  access: "create"
81837
82074
  },
81838
- "recording.cancelRelocate": {
82075
+ "recording.cancelStorageMigrationMove": {
81839
82076
  capName: "recording",
81840
82077
  capScope: "system",
81841
82078
  addonId: null,
@@ -81871,7 +82108,7 @@ Object.freeze({
81871
82108
  addonId: null,
81872
82109
  access: "view"
81873
82110
  },
81874
- "recording.getRelocateStatus": {
82111
+ "recording.getStorageMigrationMoveStatus": {
81875
82112
  capName: "recording",
81876
82113
  capScope: "system",
81877
82114
  addonId: null,
@@ -81895,6 +82132,12 @@ Object.freeze({
81895
82132
  addonId: null,
81896
82133
  access: "view"
81897
82134
  },
82135
+ "recording.pauseForStorageMigration": {
82136
+ capName: "recording",
82137
+ capScope: "system",
82138
+ addonId: null,
82139
+ access: "create"
82140
+ },
81898
82141
  "recording.pruneFootage": {
81899
82142
  capName: "recording",
81900
82143
  capScope: "system",
@@ -81913,7 +82156,7 @@ Object.freeze({
81913
82156
  addonId: null,
81914
82157
  access: "view"
81915
82158
  },
81916
- "recording.relocateFootage": {
82159
+ "recording.refreshStorageLocationsForMigration": {
81917
82160
  capName: "recording",
81918
82161
  capScope: "system",
81919
82162
  addonId: null,
@@ -81937,12 +82180,24 @@ Object.freeze({
81937
82180
  addonId: null,
81938
82181
  access: "create"
81939
82182
  },
82183
+ "recording.resumeForStorageMigration": {
82184
+ capName: "recording",
82185
+ capScope: "system",
82186
+ addonId: null,
82187
+ access: "create"
82188
+ },
81940
82189
  "recording.setDeviceConfig": {
81941
82190
  capName: "recording",
81942
82191
  capScope: "system",
81943
82192
  addonId: null,
81944
82193
  access: "create"
81945
82194
  },
82195
+ "recording.startStorageMigrationMove": {
82196
+ capName: "recording",
82197
+ capScope: "system",
82198
+ addonId: null,
82199
+ access: "create"
82200
+ },
81946
82201
  "recordingExport.cancelExport": {
81947
82202
  capName: "recordingExport",
81948
82203
  capScope: "system",
@@ -82333,6 +82588,30 @@ Object.freeze({
82333
82588
  addonId: null,
82334
82589
  access: "view"
82335
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
+ },
82336
82615
  "storageProvider.abortUpload": {
82337
82616
  capName: "storage-provider",
82338
82617
  capScope: "system",
@@ -82711,12 +82990,42 @@ Object.freeze({
82711
82990
  addonId: null,
82712
82991
  access: "create"
82713
82992
  },
82993
+ "terminalSession.adoptLegacyMonitor": {
82994
+ capName: "terminal-session",
82995
+ capScope: "system",
82996
+ addonId: null,
82997
+ access: "create"
82998
+ },
82714
82999
  "terminalSession.close": {
82715
83000
  capName: "terminal-session",
82716
83001
  capScope: "system",
82717
83002
  addonId: null,
82718
83003
  access: "create"
82719
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
+ },
82720
83029
  "terminalSession.listProfiles": {
82721
83030
  capName: "terminal-session",
82722
83031
  capScope: "system",
@@ -82735,12 +83044,30 @@ Object.freeze({
82735
83044
  addonId: null,
82736
83045
  access: "create"
82737
83046
  },
83047
+ "terminalSession.pullOutput": {
83048
+ capName: "terminal-session",
83049
+ capScope: "system",
83050
+ addonId: null,
83051
+ access: "create"
83052
+ },
82738
83053
  "terminalSession.resize": {
82739
83054
  capName: "terminal-session",
82740
83055
  capScope: "system",
82741
83056
  addonId: null,
82742
83057
  access: "create"
82743
83058
  },
83059
+ "terminalSession.setInstanceEnabled": {
83060
+ capName: "terminal-session",
83061
+ capScope: "system",
83062
+ addonId: null,
83063
+ access: "create"
83064
+ },
83065
+ "terminalSession.writeInput": {
83066
+ capName: "terminal-session",
83067
+ capScope: "system",
83068
+ addonId: null,
83069
+ access: "create"
83070
+ },
82744
83071
  "toast.onToast": {
82745
83072
  capName: "toast",
82746
83073
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-dreame",
3
- "version": "0.2.11",
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",