@camstack/addon-provider-tuya 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.
- package/dist/addon.js +316 -31
- package/dist/addon.mjs +316 -31
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -8385,12 +8385,11 @@ var RecordingConfigSchema = object({
|
|
|
8385
8385
|
/**
|
|
8386
8386
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
8387
8387
|
*
|
|
8388
|
-
* One shape shared by the recorder
|
|
8389
|
-
*
|
|
8390
|
-
*
|
|
8391
|
-
*
|
|
8392
|
-
*
|
|
8393
|
-
* row on the owning addon's surface.
|
|
8388
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
8389
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
8390
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
8391
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
8392
|
+
* addon surface.
|
|
8394
8393
|
*/
|
|
8395
8394
|
var RelocateJobStateSchema = _enum([
|
|
8396
8395
|
"running",
|
|
@@ -8417,19 +8416,100 @@ var RelocateJobSchema = object({
|
|
|
8417
8416
|
finishedAt: number().nullable(),
|
|
8418
8417
|
error: string().nullable()
|
|
8419
8418
|
});
|
|
8419
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
8420
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
8421
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
8420
8422
|
var RelocateFootageInputSchema = object({
|
|
8421
|
-
deviceId: number().optional(),
|
|
8422
8423
|
fromLocationId: string(),
|
|
8423
8424
|
toLocationId: string(),
|
|
8424
8425
|
entities: array(_enum(["segments"])).optional(),
|
|
8426
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
8427
|
+
* pre-orchestration compatibility path. */
|
|
8428
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
8425
8429
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
8426
8430
|
* never allowed to starve live writers. */
|
|
8427
8431
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8428
8432
|
});
|
|
8429
|
-
|
|
8430
|
-
|
|
8433
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
8434
|
+
* from persistent recording settings: a migration never changes
|
|
8435
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
8436
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
8437
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
8438
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
8431
8439
|
toLocationId: string(),
|
|
8432
8440
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8441
|
+
}).extend({ leaseId: string().min(1) });
|
|
8442
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
8443
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
8444
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
8445
|
+
var StorageMigrationClassSchema = _enum([
|
|
8446
|
+
"recordings",
|
|
8447
|
+
"recordingsLow",
|
|
8448
|
+
"eventMedia"
|
|
8449
|
+
]);
|
|
8450
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
8451
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
8452
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
8453
|
+
var StorageMigrationDestinationsSchema = object({
|
|
8454
|
+
recordings: string().min(1).optional(),
|
|
8455
|
+
recordingsLow: string().min(1).optional(),
|
|
8456
|
+
eventMedia: string().min(1).optional()
|
|
8457
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8458
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8459
|
+
var StorageMigrationInputSchema = object({
|
|
8460
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8461
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
8462
|
+
});
|
|
8463
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
8464
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
8465
|
+
* verified. */
|
|
8466
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
8467
|
+
"planning",
|
|
8468
|
+
"pausing",
|
|
8469
|
+
"moving",
|
|
8470
|
+
"verifying",
|
|
8471
|
+
"repointing",
|
|
8472
|
+
"refreshing",
|
|
8473
|
+
"resuming",
|
|
8474
|
+
"done",
|
|
8475
|
+
"failed",
|
|
8476
|
+
"cancelled"
|
|
8477
|
+
]);
|
|
8478
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
8479
|
+
"pipeline",
|
|
8480
|
+
"recorder",
|
|
8481
|
+
"analytics"
|
|
8482
|
+
]);
|
|
8483
|
+
var StorageMigrationMoveSchema = object({
|
|
8484
|
+
storageClass: StorageMigrationClassSchema,
|
|
8485
|
+
fromLocationId: string(),
|
|
8486
|
+
toLocationId: string(),
|
|
8487
|
+
moverJobId: string().nullable(),
|
|
8488
|
+
state: RelocateJobStateSchema.nullable(),
|
|
8489
|
+
error: string().nullable()
|
|
8490
|
+
});
|
|
8491
|
+
var StorageMigrationJobSchema = object({
|
|
8492
|
+
jobId: string(),
|
|
8493
|
+
phase: StorageMigrationPhaseSchema,
|
|
8494
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8495
|
+
throttleMbps: number(),
|
|
8496
|
+
moves: array(StorageMigrationMoveSchema),
|
|
8497
|
+
pauseLeaseId: string().nullable(),
|
|
8498
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
8499
|
+
repointed: boolean(),
|
|
8500
|
+
cancelRequested: boolean(),
|
|
8501
|
+
startedAt: number(),
|
|
8502
|
+
updatedAt: number(),
|
|
8503
|
+
finishedAt: number().nullable(),
|
|
8504
|
+
error: string().nullable()
|
|
8505
|
+
});
|
|
8506
|
+
var StorageMigrationPlanSchema = object({
|
|
8507
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8508
|
+
moves: array(object({
|
|
8509
|
+
storageClass: StorageMigrationClassSchema,
|
|
8510
|
+
fromLocationId: string(),
|
|
8511
|
+
toLocationId: string()
|
|
8512
|
+
}))
|
|
8433
8513
|
});
|
|
8434
8514
|
/**
|
|
8435
8515
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -17100,13 +17180,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
17100
17180
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
17101
17181
|
kind: "mutation",
|
|
17102
17182
|
auth: "admin"
|
|
17103
|
-
}), method(
|
|
17183
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17104
17184
|
kind: "mutation",
|
|
17105
17185
|
auth: "admin"
|
|
17106
|
-
}), method(object({
|
|
17107
|
-
kind: "
|
|
17186
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17187
|
+
kind: "mutation",
|
|
17188
|
+
auth: "admin"
|
|
17189
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
17190
|
+
kind: "mutation",
|
|
17191
|
+
auth: "admin"
|
|
17192
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
17193
|
+
kind: "mutation",
|
|
17108
17194
|
auth: "admin"
|
|
17109
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
17195
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
17110
17196
|
kind: "mutation",
|
|
17111
17197
|
auth: "admin"
|
|
17112
17198
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -18636,7 +18722,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
18636
18722
|
reachable: boolean(),
|
|
18637
18723
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
18638
18724
|
});
|
|
18639
|
-
method(object({
|
|
18725
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
18726
|
+
kind: "mutation",
|
|
18727
|
+
auth: "admin"
|
|
18728
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
18729
|
+
kind: "mutation",
|
|
18730
|
+
auth: "admin"
|
|
18731
|
+
}), method(object({
|
|
18640
18732
|
deviceId: number(),
|
|
18641
18733
|
agentNodeId: string()
|
|
18642
18734
|
}), object({ success: literal(true) }), {
|
|
@@ -19310,6 +19402,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
19310
19402
|
locationId: string(),
|
|
19311
19403
|
targetBytes: number().int().positive()
|
|
19312
19404
|
}), EvictResultSchema, { kind: "mutation" });
|
|
19405
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
19406
|
+
kind: "mutation",
|
|
19407
|
+
auth: "admin"
|
|
19408
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
19409
|
+
kind: "mutation",
|
|
19410
|
+
auth: "admin"
|
|
19411
|
+
});
|
|
19313
19412
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
19314
19413
|
providerId: string().min(1),
|
|
19315
19414
|
displayName: string().min(1),
|
|
@@ -19413,6 +19512,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
19413
19512
|
label: string(),
|
|
19414
19513
|
description: string().optional()
|
|
19415
19514
|
});
|
|
19515
|
+
/**
|
|
19516
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
19517
|
+
* an instance declares a camera.
|
|
19518
|
+
*/
|
|
19519
|
+
var TerminalInstanceInfoSchema = object({
|
|
19520
|
+
instanceId: string(),
|
|
19521
|
+
cameraStableId: string(),
|
|
19522
|
+
nodeId: string(),
|
|
19523
|
+
profileId: string(),
|
|
19524
|
+
profileLabel: string(),
|
|
19525
|
+
name: string(),
|
|
19526
|
+
enabled: boolean()
|
|
19527
|
+
});
|
|
19528
|
+
var TerminalLegacyCameraSchema = object({
|
|
19529
|
+
stableId: string(),
|
|
19530
|
+
nodeId: string(),
|
|
19531
|
+
profileId: string(),
|
|
19532
|
+
profileLabel: string(),
|
|
19533
|
+
name: string(),
|
|
19534
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
19535
|
+
adoptable: boolean()
|
|
19536
|
+
});
|
|
19416
19537
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
19417
19538
|
seq: number().int().positive(),
|
|
19418
19539
|
kind: literal("data"),
|
|
@@ -19429,7 +19550,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
19429
19550
|
snapshot: string().optional(),
|
|
19430
19551
|
events: array(TerminalOutputEventSchema).readonly()
|
|
19431
19552
|
});
|
|
19432
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
19553
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19554
|
+
targetNodeId: string().min(1),
|
|
19555
|
+
profileId: string().min(1),
|
|
19556
|
+
name: string().trim().min(1).max(160).optional()
|
|
19557
|
+
}), TerminalInstanceInfoSchema, {
|
|
19558
|
+
kind: "mutation",
|
|
19559
|
+
auth: "admin"
|
|
19560
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
19561
|
+
kind: "mutation",
|
|
19562
|
+
auth: "admin"
|
|
19563
|
+
}), method(object({
|
|
19564
|
+
instanceId: string().min(1),
|
|
19565
|
+
enabled: boolean()
|
|
19566
|
+
}), TerminalInstanceInfoSchema, {
|
|
19567
|
+
kind: "mutation",
|
|
19568
|
+
auth: "admin"
|
|
19569
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
19570
|
+
stableId: string().min(1),
|
|
19571
|
+
name: string().trim().min(1).max(160).optional()
|
|
19572
|
+
}), TerminalInstanceInfoSchema, {
|
|
19573
|
+
kind: "mutation",
|
|
19574
|
+
auth: "admin"
|
|
19575
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19433
19576
|
profileId: string(),
|
|
19434
19577
|
cols: number().int().positive(),
|
|
19435
19578
|
rows: number().int().positive()
|
|
@@ -19446,7 +19589,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
19446
19589
|
}), method(object({
|
|
19447
19590
|
sessionId: string(),
|
|
19448
19591
|
afterSeq: number().int().nonnegative(),
|
|
19449
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
19592
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
19593
|
+
/**
|
|
19594
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
19595
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
19596
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
19597
|
+
*/
|
|
19598
|
+
waitForOutput: boolean().optional()
|
|
19450
19599
|
}), TerminalOutputBatchSchema, {
|
|
19451
19600
|
kind: "mutation",
|
|
19452
19601
|
auth: "admin",
|
|
@@ -21952,6 +22101,7 @@ var FaceInfoSchema = object({
|
|
|
21952
22101
|
var FaceFilterEnum = _enum([
|
|
21953
22102
|
"unassigned",
|
|
21954
22103
|
"recognized",
|
|
22104
|
+
"identified",
|
|
21955
22105
|
"all"
|
|
21956
22106
|
]);
|
|
21957
22107
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21980,6 +22130,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21980
22130
|
kind: "mutation",
|
|
21981
22131
|
auth: "admin"
|
|
21982
22132
|
}), method(object({
|
|
22133
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
22134
|
+
deviceId: number().int().optional(),
|
|
21983
22135
|
limit: number().int().positive().optional(),
|
|
21984
22136
|
filter: FaceFilterEnum.optional(),
|
|
21985
22137
|
/**
|
|
@@ -24209,6 +24361,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
24209
24361
|
capName: string().min(1).max(64),
|
|
24210
24362
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
24211
24363
|
valuePath: string().min(1).max(64)
|
|
24364
|
+
}),
|
|
24365
|
+
object({
|
|
24366
|
+
kind: literal("latest-recognition"),
|
|
24367
|
+
recognition: _enum(["person", "plate"])
|
|
24212
24368
|
})
|
|
24213
24369
|
]);
|
|
24214
24370
|
var OsdSlotBindingSchema = object({
|
|
@@ -24314,6 +24470,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
24314
24470
|
}), object({ success: literal(true) }), {
|
|
24315
24471
|
kind: "mutation",
|
|
24316
24472
|
auth: "admin"
|
|
24473
|
+
}), method(object({
|
|
24474
|
+
sourceDeviceId: number().int(),
|
|
24475
|
+
targetDeviceId: number().int()
|
|
24476
|
+
}), object({
|
|
24477
|
+
copied: number().int().nonnegative(),
|
|
24478
|
+
skipped: number().int().nonnegative()
|
|
24479
|
+
}), {
|
|
24480
|
+
kind: "mutation",
|
|
24481
|
+
auth: "admin"
|
|
24317
24482
|
}), method(object({
|
|
24318
24483
|
deviceId: number().int(),
|
|
24319
24484
|
slotId: string().min(1),
|
|
@@ -25411,13 +25576,19 @@ method(object({
|
|
|
25411
25576
|
}), {
|
|
25412
25577
|
kind: "mutation",
|
|
25413
25578
|
auth: "admin"
|
|
25414
|
-
}), method(
|
|
25579
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
25415
25580
|
kind: "mutation",
|
|
25416
25581
|
auth: "admin"
|
|
25417
|
-
}), method(object({
|
|
25418
|
-
kind: "
|
|
25582
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
25583
|
+
kind: "mutation",
|
|
25419
25584
|
auth: "admin"
|
|
25420
|
-
}), method(
|
|
25585
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
25586
|
+
kind: "mutation",
|
|
25587
|
+
auth: "admin"
|
|
25588
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
25589
|
+
kind: "mutation",
|
|
25590
|
+
auth: "admin"
|
|
25591
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
25421
25592
|
kind: "mutation",
|
|
25422
25593
|
auth: "admin"
|
|
25423
25594
|
});
|
|
@@ -31023,6 +31194,12 @@ Object.freeze({
|
|
|
31023
31194
|
addonId: null,
|
|
31024
31195
|
access: "delete"
|
|
31025
31196
|
},
|
|
31197
|
+
"osdManager.copyDeviceConfiguration": {
|
|
31198
|
+
capName: "osd-manager",
|
|
31199
|
+
capScope: "system",
|
|
31200
|
+
addonId: null,
|
|
31201
|
+
access: "create"
|
|
31202
|
+
},
|
|
31026
31203
|
"osdManager.getConditionSupport": {
|
|
31027
31204
|
capName: "osd-manager",
|
|
31028
31205
|
capScope: "system",
|
|
@@ -31119,7 +31296,7 @@ Object.freeze({
|
|
|
31119
31296
|
addonId: null,
|
|
31120
31297
|
access: "create"
|
|
31121
31298
|
},
|
|
31122
|
-
"pipelineAnalytics.
|
|
31299
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
31123
31300
|
capName: "pipeline-analytics",
|
|
31124
31301
|
capScope: "device",
|
|
31125
31302
|
addonId: null,
|
|
@@ -31191,12 +31368,6 @@ Object.freeze({
|
|
|
31191
31368
|
addonId: null,
|
|
31192
31369
|
access: "view"
|
|
31193
31370
|
},
|
|
31194
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
31195
|
-
capName: "pipeline-analytics",
|
|
31196
|
-
capScope: "device",
|
|
31197
|
-
addonId: null,
|
|
31198
|
-
access: "view"
|
|
31199
|
-
},
|
|
31200
31371
|
"pipelineAnalytics.getMotionEvents": {
|
|
31201
31372
|
capName: "pipeline-analytics",
|
|
31202
31373
|
capScope: "device",
|
|
@@ -31233,6 +31404,12 @@ Object.freeze({
|
|
|
31233
31404
|
addonId: null,
|
|
31234
31405
|
access: "view"
|
|
31235
31406
|
},
|
|
31407
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
31408
|
+
capName: "pipeline-analytics",
|
|
31409
|
+
capScope: "device",
|
|
31410
|
+
addonId: null,
|
|
31411
|
+
access: "view"
|
|
31412
|
+
},
|
|
31236
31413
|
"pipelineAnalytics.getTrack": {
|
|
31237
31414
|
capName: "pipeline-analytics",
|
|
31238
31415
|
capScope: "device",
|
|
@@ -31311,6 +31488,12 @@ Object.freeze({
|
|
|
31311
31488
|
addonId: null,
|
|
31312
31489
|
access: "view"
|
|
31313
31490
|
},
|
|
31491
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
31492
|
+
capName: "pipeline-analytics",
|
|
31493
|
+
capScope: "device",
|
|
31494
|
+
addonId: null,
|
|
31495
|
+
access: "create"
|
|
31496
|
+
},
|
|
31314
31497
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
31315
31498
|
capName: "pipeline-analytics",
|
|
31316
31499
|
capScope: "device",
|
|
@@ -31341,7 +31524,7 @@ Object.freeze({
|
|
|
31341
31524
|
addonId: null,
|
|
31342
31525
|
access: "create"
|
|
31343
31526
|
},
|
|
31344
|
-
"pipelineAnalytics.
|
|
31527
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
31345
31528
|
capName: "pipeline-analytics",
|
|
31346
31529
|
capScope: "device",
|
|
31347
31530
|
addonId: null,
|
|
@@ -31353,6 +31536,12 @@ Object.freeze({
|
|
|
31353
31536
|
addonId: null,
|
|
31354
31537
|
access: "create"
|
|
31355
31538
|
},
|
|
31539
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
31540
|
+
capName: "pipeline-analytics",
|
|
31541
|
+
capScope: "device",
|
|
31542
|
+
addonId: null,
|
|
31543
|
+
access: "create"
|
|
31544
|
+
},
|
|
31356
31545
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
31357
31546
|
capName: "pipeline-analytics",
|
|
31358
31547
|
capScope: "device",
|
|
@@ -31377,6 +31566,12 @@ Object.freeze({
|
|
|
31377
31566
|
addonId: null,
|
|
31378
31567
|
access: "create"
|
|
31379
31568
|
},
|
|
31569
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
31570
|
+
capName: "pipeline-analytics",
|
|
31571
|
+
capScope: "device",
|
|
31572
|
+
addonId: null,
|
|
31573
|
+
access: "create"
|
|
31574
|
+
},
|
|
31380
31575
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
31381
31576
|
capName: "pipeline-analytics",
|
|
31382
31577
|
capScope: "device",
|
|
@@ -31743,6 +31938,12 @@ Object.freeze({
|
|
|
31743
31938
|
addonId: null,
|
|
31744
31939
|
access: "view"
|
|
31745
31940
|
},
|
|
31941
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31942
|
+
capName: "pipeline-orchestrator",
|
|
31943
|
+
capScope: "system",
|
|
31944
|
+
addonId: null,
|
|
31945
|
+
access: "create"
|
|
31946
|
+
},
|
|
31746
31947
|
"pipelineOrchestrator.rebalance": {
|
|
31747
31948
|
capName: "pipeline-orchestrator",
|
|
31748
31949
|
capScope: "system",
|
|
@@ -31767,6 +31968,12 @@ Object.freeze({
|
|
|
31767
31968
|
addonId: null,
|
|
31768
31969
|
access: "view"
|
|
31769
31970
|
},
|
|
31971
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31972
|
+
capName: "pipeline-orchestrator",
|
|
31973
|
+
capScope: "system",
|
|
31974
|
+
addonId: null,
|
|
31975
|
+
access: "create"
|
|
31976
|
+
},
|
|
31770
31977
|
"pipelineOrchestrator.saveTemplate": {
|
|
31771
31978
|
capName: "pipeline-orchestrator",
|
|
31772
31979
|
capScope: "system",
|
|
@@ -32163,7 +32370,7 @@ Object.freeze({
|
|
|
32163
32370
|
addonId: null,
|
|
32164
32371
|
access: "create"
|
|
32165
32372
|
},
|
|
32166
|
-
"recording.
|
|
32373
|
+
"recording.cancelStorageMigrationMove": {
|
|
32167
32374
|
capName: "recording",
|
|
32168
32375
|
capScope: "system",
|
|
32169
32376
|
addonId: null,
|
|
@@ -32199,7 +32406,7 @@ Object.freeze({
|
|
|
32199
32406
|
addonId: null,
|
|
32200
32407
|
access: "view"
|
|
32201
32408
|
},
|
|
32202
|
-
"recording.
|
|
32409
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
32203
32410
|
capName: "recording",
|
|
32204
32411
|
capScope: "system",
|
|
32205
32412
|
addonId: null,
|
|
@@ -32223,6 +32430,12 @@ Object.freeze({
|
|
|
32223
32430
|
addonId: null,
|
|
32224
32431
|
access: "view"
|
|
32225
32432
|
},
|
|
32433
|
+
"recording.pauseForStorageMigration": {
|
|
32434
|
+
capName: "recording",
|
|
32435
|
+
capScope: "system",
|
|
32436
|
+
addonId: null,
|
|
32437
|
+
access: "create"
|
|
32438
|
+
},
|
|
32226
32439
|
"recording.pruneFootage": {
|
|
32227
32440
|
capName: "recording",
|
|
32228
32441
|
capScope: "system",
|
|
@@ -32241,7 +32454,7 @@ Object.freeze({
|
|
|
32241
32454
|
addonId: null,
|
|
32242
32455
|
access: "view"
|
|
32243
32456
|
},
|
|
32244
|
-
"recording.
|
|
32457
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
32245
32458
|
capName: "recording",
|
|
32246
32459
|
capScope: "system",
|
|
32247
32460
|
addonId: null,
|
|
@@ -32265,12 +32478,24 @@ Object.freeze({
|
|
|
32265
32478
|
addonId: null,
|
|
32266
32479
|
access: "create"
|
|
32267
32480
|
},
|
|
32481
|
+
"recording.resumeForStorageMigration": {
|
|
32482
|
+
capName: "recording",
|
|
32483
|
+
capScope: "system",
|
|
32484
|
+
addonId: null,
|
|
32485
|
+
access: "create"
|
|
32486
|
+
},
|
|
32268
32487
|
"recording.setDeviceConfig": {
|
|
32269
32488
|
capName: "recording",
|
|
32270
32489
|
capScope: "system",
|
|
32271
32490
|
addonId: null,
|
|
32272
32491
|
access: "create"
|
|
32273
32492
|
},
|
|
32493
|
+
"recording.startStorageMigrationMove": {
|
|
32494
|
+
capName: "recording",
|
|
32495
|
+
capScope: "system",
|
|
32496
|
+
addonId: null,
|
|
32497
|
+
access: "create"
|
|
32498
|
+
},
|
|
32274
32499
|
"recordingExport.cancelExport": {
|
|
32275
32500
|
capName: "recordingExport",
|
|
32276
32501
|
capScope: "system",
|
|
@@ -32661,6 +32886,30 @@ Object.freeze({
|
|
|
32661
32886
|
addonId: null,
|
|
32662
32887
|
access: "view"
|
|
32663
32888
|
},
|
|
32889
|
+
"storageMigration.cancel": {
|
|
32890
|
+
capName: "storage-migration",
|
|
32891
|
+
capScope: "system",
|
|
32892
|
+
addonId: null,
|
|
32893
|
+
access: "create"
|
|
32894
|
+
},
|
|
32895
|
+
"storageMigration.plan": {
|
|
32896
|
+
capName: "storage-migration",
|
|
32897
|
+
capScope: "system",
|
|
32898
|
+
addonId: null,
|
|
32899
|
+
access: "view"
|
|
32900
|
+
},
|
|
32901
|
+
"storageMigration.start": {
|
|
32902
|
+
capName: "storage-migration",
|
|
32903
|
+
capScope: "system",
|
|
32904
|
+
addonId: null,
|
|
32905
|
+
access: "create"
|
|
32906
|
+
},
|
|
32907
|
+
"storageMigration.status": {
|
|
32908
|
+
capName: "storage-migration",
|
|
32909
|
+
capScope: "system",
|
|
32910
|
+
addonId: null,
|
|
32911
|
+
access: "view"
|
|
32912
|
+
},
|
|
32664
32913
|
"storageProvider.abortUpload": {
|
|
32665
32914
|
capName: "storage-provider",
|
|
32666
32915
|
capScope: "system",
|
|
@@ -33039,12 +33288,42 @@ Object.freeze({
|
|
|
33039
33288
|
addonId: null,
|
|
33040
33289
|
access: "create"
|
|
33041
33290
|
},
|
|
33291
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
33292
|
+
capName: "terminal-session",
|
|
33293
|
+
capScope: "system",
|
|
33294
|
+
addonId: null,
|
|
33295
|
+
access: "create"
|
|
33296
|
+
},
|
|
33042
33297
|
"terminalSession.close": {
|
|
33043
33298
|
capName: "terminal-session",
|
|
33044
33299
|
capScope: "system",
|
|
33045
33300
|
addonId: null,
|
|
33046
33301
|
access: "create"
|
|
33047
33302
|
},
|
|
33303
|
+
"terminalSession.createInstance": {
|
|
33304
|
+
capName: "terminal-session",
|
|
33305
|
+
capScope: "system",
|
|
33306
|
+
addonId: null,
|
|
33307
|
+
access: "create"
|
|
33308
|
+
},
|
|
33309
|
+
"terminalSession.deleteInstance": {
|
|
33310
|
+
capName: "terminal-session",
|
|
33311
|
+
capScope: "system",
|
|
33312
|
+
addonId: null,
|
|
33313
|
+
access: "delete"
|
|
33314
|
+
},
|
|
33315
|
+
"terminalSession.listInstances": {
|
|
33316
|
+
capName: "terminal-session",
|
|
33317
|
+
capScope: "system",
|
|
33318
|
+
addonId: null,
|
|
33319
|
+
access: "view"
|
|
33320
|
+
},
|
|
33321
|
+
"terminalSession.listLegacyCameras": {
|
|
33322
|
+
capName: "terminal-session",
|
|
33323
|
+
capScope: "system",
|
|
33324
|
+
addonId: null,
|
|
33325
|
+
access: "view"
|
|
33326
|
+
},
|
|
33048
33327
|
"terminalSession.listProfiles": {
|
|
33049
33328
|
capName: "terminal-session",
|
|
33050
33329
|
capScope: "system",
|
|
@@ -33075,6 +33354,12 @@ Object.freeze({
|
|
|
33075
33354
|
addonId: null,
|
|
33076
33355
|
access: "create"
|
|
33077
33356
|
},
|
|
33357
|
+
"terminalSession.setInstanceEnabled": {
|
|
33358
|
+
capName: "terminal-session",
|
|
33359
|
+
capScope: "system",
|
|
33360
|
+
addonId: null,
|
|
33361
|
+
access: "create"
|
|
33362
|
+
},
|
|
33078
33363
|
"terminalSession.writeInput": {
|
|
33079
33364
|
capName: "terminal-session",
|
|
33080
33365
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -8384,12 +8384,11 @@ var RecordingConfigSchema = object({
|
|
|
8384
8384
|
/**
|
|
8385
8385
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
8386
8386
|
*
|
|
8387
|
-
* One shape shared by the recorder
|
|
8388
|
-
*
|
|
8389
|
-
*
|
|
8390
|
-
*
|
|
8391
|
-
*
|
|
8392
|
-
* row on the owning addon's surface.
|
|
8387
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
8388
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
8389
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
8390
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
8391
|
+
* addon surface.
|
|
8393
8392
|
*/
|
|
8394
8393
|
var RelocateJobStateSchema = _enum([
|
|
8395
8394
|
"running",
|
|
@@ -8416,19 +8415,100 @@ var RelocateJobSchema = object({
|
|
|
8416
8415
|
finishedAt: number().nullable(),
|
|
8417
8416
|
error: string().nullable()
|
|
8418
8417
|
});
|
|
8418
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
8419
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
8420
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
8419
8421
|
var RelocateFootageInputSchema = object({
|
|
8420
|
-
deviceId: number().optional(),
|
|
8421
8422
|
fromLocationId: string(),
|
|
8422
8423
|
toLocationId: string(),
|
|
8423
8424
|
entities: array(_enum(["segments"])).optional(),
|
|
8425
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
8426
|
+
* pre-orchestration compatibility path. */
|
|
8427
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
8424
8428
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
8425
8429
|
* never allowed to starve live writers. */
|
|
8426
8430
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8427
8431
|
});
|
|
8428
|
-
|
|
8429
|
-
|
|
8432
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
8433
|
+
* from persistent recording settings: a migration never changes
|
|
8434
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
8435
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
8436
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
8437
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
8430
8438
|
toLocationId: string(),
|
|
8431
8439
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8440
|
+
}).extend({ leaseId: string().min(1) });
|
|
8441
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
8442
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
8443
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
8444
|
+
var StorageMigrationClassSchema = _enum([
|
|
8445
|
+
"recordings",
|
|
8446
|
+
"recordingsLow",
|
|
8447
|
+
"eventMedia"
|
|
8448
|
+
]);
|
|
8449
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
8450
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
8451
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
8452
|
+
var StorageMigrationDestinationsSchema = object({
|
|
8453
|
+
recordings: string().min(1).optional(),
|
|
8454
|
+
recordingsLow: string().min(1).optional(),
|
|
8455
|
+
eventMedia: string().min(1).optional()
|
|
8456
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8457
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8458
|
+
var StorageMigrationInputSchema = object({
|
|
8459
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8460
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
8461
|
+
});
|
|
8462
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
8463
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
8464
|
+
* verified. */
|
|
8465
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
8466
|
+
"planning",
|
|
8467
|
+
"pausing",
|
|
8468
|
+
"moving",
|
|
8469
|
+
"verifying",
|
|
8470
|
+
"repointing",
|
|
8471
|
+
"refreshing",
|
|
8472
|
+
"resuming",
|
|
8473
|
+
"done",
|
|
8474
|
+
"failed",
|
|
8475
|
+
"cancelled"
|
|
8476
|
+
]);
|
|
8477
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
8478
|
+
"pipeline",
|
|
8479
|
+
"recorder",
|
|
8480
|
+
"analytics"
|
|
8481
|
+
]);
|
|
8482
|
+
var StorageMigrationMoveSchema = object({
|
|
8483
|
+
storageClass: StorageMigrationClassSchema,
|
|
8484
|
+
fromLocationId: string(),
|
|
8485
|
+
toLocationId: string(),
|
|
8486
|
+
moverJobId: string().nullable(),
|
|
8487
|
+
state: RelocateJobStateSchema.nullable(),
|
|
8488
|
+
error: string().nullable()
|
|
8489
|
+
});
|
|
8490
|
+
var StorageMigrationJobSchema = object({
|
|
8491
|
+
jobId: string(),
|
|
8492
|
+
phase: StorageMigrationPhaseSchema,
|
|
8493
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8494
|
+
throttleMbps: number(),
|
|
8495
|
+
moves: array(StorageMigrationMoveSchema),
|
|
8496
|
+
pauseLeaseId: string().nullable(),
|
|
8497
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
8498
|
+
repointed: boolean(),
|
|
8499
|
+
cancelRequested: boolean(),
|
|
8500
|
+
startedAt: number(),
|
|
8501
|
+
updatedAt: number(),
|
|
8502
|
+
finishedAt: number().nullable(),
|
|
8503
|
+
error: string().nullable()
|
|
8504
|
+
});
|
|
8505
|
+
var StorageMigrationPlanSchema = object({
|
|
8506
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8507
|
+
moves: array(object({
|
|
8508
|
+
storageClass: StorageMigrationClassSchema,
|
|
8509
|
+
fromLocationId: string(),
|
|
8510
|
+
toLocationId: string()
|
|
8511
|
+
}))
|
|
8432
8512
|
});
|
|
8433
8513
|
/**
|
|
8434
8514
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -17099,13 +17179,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
17099
17179
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
17100
17180
|
kind: "mutation",
|
|
17101
17181
|
auth: "admin"
|
|
17102
|
-
}), method(
|
|
17182
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17103
17183
|
kind: "mutation",
|
|
17104
17184
|
auth: "admin"
|
|
17105
|
-
}), method(object({
|
|
17106
|
-
kind: "
|
|
17185
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17186
|
+
kind: "mutation",
|
|
17187
|
+
auth: "admin"
|
|
17188
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
17189
|
+
kind: "mutation",
|
|
17190
|
+
auth: "admin"
|
|
17191
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
17192
|
+
kind: "mutation",
|
|
17107
17193
|
auth: "admin"
|
|
17108
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
17194
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
17109
17195
|
kind: "mutation",
|
|
17110
17196
|
auth: "admin"
|
|
17111
17197
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -18635,7 +18721,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
18635
18721
|
reachable: boolean(),
|
|
18636
18722
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
18637
18723
|
});
|
|
18638
|
-
method(object({
|
|
18724
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
18725
|
+
kind: "mutation",
|
|
18726
|
+
auth: "admin"
|
|
18727
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
18728
|
+
kind: "mutation",
|
|
18729
|
+
auth: "admin"
|
|
18730
|
+
}), method(object({
|
|
18639
18731
|
deviceId: number(),
|
|
18640
18732
|
agentNodeId: string()
|
|
18641
18733
|
}), object({ success: literal(true) }), {
|
|
@@ -19309,6 +19401,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
19309
19401
|
locationId: string(),
|
|
19310
19402
|
targetBytes: number().int().positive()
|
|
19311
19403
|
}), EvictResultSchema, { kind: "mutation" });
|
|
19404
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
19405
|
+
kind: "mutation",
|
|
19406
|
+
auth: "admin"
|
|
19407
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
19408
|
+
kind: "mutation",
|
|
19409
|
+
auth: "admin"
|
|
19410
|
+
});
|
|
19312
19411
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
19313
19412
|
providerId: string().min(1),
|
|
19314
19413
|
displayName: string().min(1),
|
|
@@ -19412,6 +19511,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
19412
19511
|
label: string(),
|
|
19413
19512
|
description: string().optional()
|
|
19414
19513
|
});
|
|
19514
|
+
/**
|
|
19515
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
19516
|
+
* an instance declares a camera.
|
|
19517
|
+
*/
|
|
19518
|
+
var TerminalInstanceInfoSchema = object({
|
|
19519
|
+
instanceId: string(),
|
|
19520
|
+
cameraStableId: string(),
|
|
19521
|
+
nodeId: string(),
|
|
19522
|
+
profileId: string(),
|
|
19523
|
+
profileLabel: string(),
|
|
19524
|
+
name: string(),
|
|
19525
|
+
enabled: boolean()
|
|
19526
|
+
});
|
|
19527
|
+
var TerminalLegacyCameraSchema = object({
|
|
19528
|
+
stableId: string(),
|
|
19529
|
+
nodeId: string(),
|
|
19530
|
+
profileId: string(),
|
|
19531
|
+
profileLabel: string(),
|
|
19532
|
+
name: string(),
|
|
19533
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
19534
|
+
adoptable: boolean()
|
|
19535
|
+
});
|
|
19415
19536
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
19416
19537
|
seq: number().int().positive(),
|
|
19417
19538
|
kind: literal("data"),
|
|
@@ -19428,7 +19549,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
19428
19549
|
snapshot: string().optional(),
|
|
19429
19550
|
events: array(TerminalOutputEventSchema).readonly()
|
|
19430
19551
|
});
|
|
19431
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
19552
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19553
|
+
targetNodeId: string().min(1),
|
|
19554
|
+
profileId: string().min(1),
|
|
19555
|
+
name: string().trim().min(1).max(160).optional()
|
|
19556
|
+
}), TerminalInstanceInfoSchema, {
|
|
19557
|
+
kind: "mutation",
|
|
19558
|
+
auth: "admin"
|
|
19559
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
19560
|
+
kind: "mutation",
|
|
19561
|
+
auth: "admin"
|
|
19562
|
+
}), method(object({
|
|
19563
|
+
instanceId: string().min(1),
|
|
19564
|
+
enabled: boolean()
|
|
19565
|
+
}), TerminalInstanceInfoSchema, {
|
|
19566
|
+
kind: "mutation",
|
|
19567
|
+
auth: "admin"
|
|
19568
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
19569
|
+
stableId: string().min(1),
|
|
19570
|
+
name: string().trim().min(1).max(160).optional()
|
|
19571
|
+
}), TerminalInstanceInfoSchema, {
|
|
19572
|
+
kind: "mutation",
|
|
19573
|
+
auth: "admin"
|
|
19574
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19432
19575
|
profileId: string(),
|
|
19433
19576
|
cols: number().int().positive(),
|
|
19434
19577
|
rows: number().int().positive()
|
|
@@ -19445,7 +19588,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
19445
19588
|
}), method(object({
|
|
19446
19589
|
sessionId: string(),
|
|
19447
19590
|
afterSeq: number().int().nonnegative(),
|
|
19448
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
19591
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
19592
|
+
/**
|
|
19593
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
19594
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
19595
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
19596
|
+
*/
|
|
19597
|
+
waitForOutput: boolean().optional()
|
|
19449
19598
|
}), TerminalOutputBatchSchema, {
|
|
19450
19599
|
kind: "mutation",
|
|
19451
19600
|
auth: "admin",
|
|
@@ -21951,6 +22100,7 @@ var FaceInfoSchema = object({
|
|
|
21951
22100
|
var FaceFilterEnum = _enum([
|
|
21952
22101
|
"unassigned",
|
|
21953
22102
|
"recognized",
|
|
22103
|
+
"identified",
|
|
21954
22104
|
"all"
|
|
21955
22105
|
]);
|
|
21956
22106
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21979,6 +22129,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21979
22129
|
kind: "mutation",
|
|
21980
22130
|
auth: "admin"
|
|
21981
22131
|
}), method(object({
|
|
22132
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
22133
|
+
deviceId: number().int().optional(),
|
|
21982
22134
|
limit: number().int().positive().optional(),
|
|
21983
22135
|
filter: FaceFilterEnum.optional(),
|
|
21984
22136
|
/**
|
|
@@ -24208,6 +24360,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
24208
24360
|
capName: string().min(1).max(64),
|
|
24209
24361
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
24210
24362
|
valuePath: string().min(1).max(64)
|
|
24363
|
+
}),
|
|
24364
|
+
object({
|
|
24365
|
+
kind: literal("latest-recognition"),
|
|
24366
|
+
recognition: _enum(["person", "plate"])
|
|
24211
24367
|
})
|
|
24212
24368
|
]);
|
|
24213
24369
|
var OsdSlotBindingSchema = object({
|
|
@@ -24313,6 +24469,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
24313
24469
|
}), object({ success: literal(true) }), {
|
|
24314
24470
|
kind: "mutation",
|
|
24315
24471
|
auth: "admin"
|
|
24472
|
+
}), method(object({
|
|
24473
|
+
sourceDeviceId: number().int(),
|
|
24474
|
+
targetDeviceId: number().int()
|
|
24475
|
+
}), object({
|
|
24476
|
+
copied: number().int().nonnegative(),
|
|
24477
|
+
skipped: number().int().nonnegative()
|
|
24478
|
+
}), {
|
|
24479
|
+
kind: "mutation",
|
|
24480
|
+
auth: "admin"
|
|
24316
24481
|
}), method(object({
|
|
24317
24482
|
deviceId: number().int(),
|
|
24318
24483
|
slotId: string().min(1),
|
|
@@ -25410,13 +25575,19 @@ method(object({
|
|
|
25410
25575
|
}), {
|
|
25411
25576
|
kind: "mutation",
|
|
25412
25577
|
auth: "admin"
|
|
25413
|
-
}), method(
|
|
25578
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
25414
25579
|
kind: "mutation",
|
|
25415
25580
|
auth: "admin"
|
|
25416
|
-
}), method(object({
|
|
25417
|
-
kind: "
|
|
25581
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
25582
|
+
kind: "mutation",
|
|
25418
25583
|
auth: "admin"
|
|
25419
|
-
}), method(
|
|
25584
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
25585
|
+
kind: "mutation",
|
|
25586
|
+
auth: "admin"
|
|
25587
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
25588
|
+
kind: "mutation",
|
|
25589
|
+
auth: "admin"
|
|
25590
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
25420
25591
|
kind: "mutation",
|
|
25421
25592
|
auth: "admin"
|
|
25422
25593
|
});
|
|
@@ -31022,6 +31193,12 @@ Object.freeze({
|
|
|
31022
31193
|
addonId: null,
|
|
31023
31194
|
access: "delete"
|
|
31024
31195
|
},
|
|
31196
|
+
"osdManager.copyDeviceConfiguration": {
|
|
31197
|
+
capName: "osd-manager",
|
|
31198
|
+
capScope: "system",
|
|
31199
|
+
addonId: null,
|
|
31200
|
+
access: "create"
|
|
31201
|
+
},
|
|
31025
31202
|
"osdManager.getConditionSupport": {
|
|
31026
31203
|
capName: "osd-manager",
|
|
31027
31204
|
capScope: "system",
|
|
@@ -31118,7 +31295,7 @@ Object.freeze({
|
|
|
31118
31295
|
addonId: null,
|
|
31119
31296
|
access: "create"
|
|
31120
31297
|
},
|
|
31121
|
-
"pipelineAnalytics.
|
|
31298
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
31122
31299
|
capName: "pipeline-analytics",
|
|
31123
31300
|
capScope: "device",
|
|
31124
31301
|
addonId: null,
|
|
@@ -31190,12 +31367,6 @@ Object.freeze({
|
|
|
31190
31367
|
addonId: null,
|
|
31191
31368
|
access: "view"
|
|
31192
31369
|
},
|
|
31193
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
31194
|
-
capName: "pipeline-analytics",
|
|
31195
|
-
capScope: "device",
|
|
31196
|
-
addonId: null,
|
|
31197
|
-
access: "view"
|
|
31198
|
-
},
|
|
31199
31370
|
"pipelineAnalytics.getMotionEvents": {
|
|
31200
31371
|
capName: "pipeline-analytics",
|
|
31201
31372
|
capScope: "device",
|
|
@@ -31232,6 +31403,12 @@ Object.freeze({
|
|
|
31232
31403
|
addonId: null,
|
|
31233
31404
|
access: "view"
|
|
31234
31405
|
},
|
|
31406
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
31407
|
+
capName: "pipeline-analytics",
|
|
31408
|
+
capScope: "device",
|
|
31409
|
+
addonId: null,
|
|
31410
|
+
access: "view"
|
|
31411
|
+
},
|
|
31235
31412
|
"pipelineAnalytics.getTrack": {
|
|
31236
31413
|
capName: "pipeline-analytics",
|
|
31237
31414
|
capScope: "device",
|
|
@@ -31310,6 +31487,12 @@ Object.freeze({
|
|
|
31310
31487
|
addonId: null,
|
|
31311
31488
|
access: "view"
|
|
31312
31489
|
},
|
|
31490
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
31491
|
+
capName: "pipeline-analytics",
|
|
31492
|
+
capScope: "device",
|
|
31493
|
+
addonId: null,
|
|
31494
|
+
access: "create"
|
|
31495
|
+
},
|
|
31313
31496
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
31314
31497
|
capName: "pipeline-analytics",
|
|
31315
31498
|
capScope: "device",
|
|
@@ -31340,7 +31523,7 @@ Object.freeze({
|
|
|
31340
31523
|
addonId: null,
|
|
31341
31524
|
access: "create"
|
|
31342
31525
|
},
|
|
31343
|
-
"pipelineAnalytics.
|
|
31526
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
31344
31527
|
capName: "pipeline-analytics",
|
|
31345
31528
|
capScope: "device",
|
|
31346
31529
|
addonId: null,
|
|
@@ -31352,6 +31535,12 @@ Object.freeze({
|
|
|
31352
31535
|
addonId: null,
|
|
31353
31536
|
access: "create"
|
|
31354
31537
|
},
|
|
31538
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
31539
|
+
capName: "pipeline-analytics",
|
|
31540
|
+
capScope: "device",
|
|
31541
|
+
addonId: null,
|
|
31542
|
+
access: "create"
|
|
31543
|
+
},
|
|
31355
31544
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
31356
31545
|
capName: "pipeline-analytics",
|
|
31357
31546
|
capScope: "device",
|
|
@@ -31376,6 +31565,12 @@ Object.freeze({
|
|
|
31376
31565
|
addonId: null,
|
|
31377
31566
|
access: "create"
|
|
31378
31567
|
},
|
|
31568
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
31569
|
+
capName: "pipeline-analytics",
|
|
31570
|
+
capScope: "device",
|
|
31571
|
+
addonId: null,
|
|
31572
|
+
access: "create"
|
|
31573
|
+
},
|
|
31379
31574
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
31380
31575
|
capName: "pipeline-analytics",
|
|
31381
31576
|
capScope: "device",
|
|
@@ -31742,6 +31937,12 @@ Object.freeze({
|
|
|
31742
31937
|
addonId: null,
|
|
31743
31938
|
access: "view"
|
|
31744
31939
|
},
|
|
31940
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31941
|
+
capName: "pipeline-orchestrator",
|
|
31942
|
+
capScope: "system",
|
|
31943
|
+
addonId: null,
|
|
31944
|
+
access: "create"
|
|
31945
|
+
},
|
|
31745
31946
|
"pipelineOrchestrator.rebalance": {
|
|
31746
31947
|
capName: "pipeline-orchestrator",
|
|
31747
31948
|
capScope: "system",
|
|
@@ -31766,6 +31967,12 @@ Object.freeze({
|
|
|
31766
31967
|
addonId: null,
|
|
31767
31968
|
access: "view"
|
|
31768
31969
|
},
|
|
31970
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31971
|
+
capName: "pipeline-orchestrator",
|
|
31972
|
+
capScope: "system",
|
|
31973
|
+
addonId: null,
|
|
31974
|
+
access: "create"
|
|
31975
|
+
},
|
|
31769
31976
|
"pipelineOrchestrator.saveTemplate": {
|
|
31770
31977
|
capName: "pipeline-orchestrator",
|
|
31771
31978
|
capScope: "system",
|
|
@@ -32162,7 +32369,7 @@ Object.freeze({
|
|
|
32162
32369
|
addonId: null,
|
|
32163
32370
|
access: "create"
|
|
32164
32371
|
},
|
|
32165
|
-
"recording.
|
|
32372
|
+
"recording.cancelStorageMigrationMove": {
|
|
32166
32373
|
capName: "recording",
|
|
32167
32374
|
capScope: "system",
|
|
32168
32375
|
addonId: null,
|
|
@@ -32198,7 +32405,7 @@ Object.freeze({
|
|
|
32198
32405
|
addonId: null,
|
|
32199
32406
|
access: "view"
|
|
32200
32407
|
},
|
|
32201
|
-
"recording.
|
|
32408
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
32202
32409
|
capName: "recording",
|
|
32203
32410
|
capScope: "system",
|
|
32204
32411
|
addonId: null,
|
|
@@ -32222,6 +32429,12 @@ Object.freeze({
|
|
|
32222
32429
|
addonId: null,
|
|
32223
32430
|
access: "view"
|
|
32224
32431
|
},
|
|
32432
|
+
"recording.pauseForStorageMigration": {
|
|
32433
|
+
capName: "recording",
|
|
32434
|
+
capScope: "system",
|
|
32435
|
+
addonId: null,
|
|
32436
|
+
access: "create"
|
|
32437
|
+
},
|
|
32225
32438
|
"recording.pruneFootage": {
|
|
32226
32439
|
capName: "recording",
|
|
32227
32440
|
capScope: "system",
|
|
@@ -32240,7 +32453,7 @@ Object.freeze({
|
|
|
32240
32453
|
addonId: null,
|
|
32241
32454
|
access: "view"
|
|
32242
32455
|
},
|
|
32243
|
-
"recording.
|
|
32456
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
32244
32457
|
capName: "recording",
|
|
32245
32458
|
capScope: "system",
|
|
32246
32459
|
addonId: null,
|
|
@@ -32264,12 +32477,24 @@ Object.freeze({
|
|
|
32264
32477
|
addonId: null,
|
|
32265
32478
|
access: "create"
|
|
32266
32479
|
},
|
|
32480
|
+
"recording.resumeForStorageMigration": {
|
|
32481
|
+
capName: "recording",
|
|
32482
|
+
capScope: "system",
|
|
32483
|
+
addonId: null,
|
|
32484
|
+
access: "create"
|
|
32485
|
+
},
|
|
32267
32486
|
"recording.setDeviceConfig": {
|
|
32268
32487
|
capName: "recording",
|
|
32269
32488
|
capScope: "system",
|
|
32270
32489
|
addonId: null,
|
|
32271
32490
|
access: "create"
|
|
32272
32491
|
},
|
|
32492
|
+
"recording.startStorageMigrationMove": {
|
|
32493
|
+
capName: "recording",
|
|
32494
|
+
capScope: "system",
|
|
32495
|
+
addonId: null,
|
|
32496
|
+
access: "create"
|
|
32497
|
+
},
|
|
32273
32498
|
"recordingExport.cancelExport": {
|
|
32274
32499
|
capName: "recordingExport",
|
|
32275
32500
|
capScope: "system",
|
|
@@ -32660,6 +32885,30 @@ Object.freeze({
|
|
|
32660
32885
|
addonId: null,
|
|
32661
32886
|
access: "view"
|
|
32662
32887
|
},
|
|
32888
|
+
"storageMigration.cancel": {
|
|
32889
|
+
capName: "storage-migration",
|
|
32890
|
+
capScope: "system",
|
|
32891
|
+
addonId: null,
|
|
32892
|
+
access: "create"
|
|
32893
|
+
},
|
|
32894
|
+
"storageMigration.plan": {
|
|
32895
|
+
capName: "storage-migration",
|
|
32896
|
+
capScope: "system",
|
|
32897
|
+
addonId: null,
|
|
32898
|
+
access: "view"
|
|
32899
|
+
},
|
|
32900
|
+
"storageMigration.start": {
|
|
32901
|
+
capName: "storage-migration",
|
|
32902
|
+
capScope: "system",
|
|
32903
|
+
addonId: null,
|
|
32904
|
+
access: "create"
|
|
32905
|
+
},
|
|
32906
|
+
"storageMigration.status": {
|
|
32907
|
+
capName: "storage-migration",
|
|
32908
|
+
capScope: "system",
|
|
32909
|
+
addonId: null,
|
|
32910
|
+
access: "view"
|
|
32911
|
+
},
|
|
32663
32912
|
"storageProvider.abortUpload": {
|
|
32664
32913
|
capName: "storage-provider",
|
|
32665
32914
|
capScope: "system",
|
|
@@ -33038,12 +33287,42 @@ Object.freeze({
|
|
|
33038
33287
|
addonId: null,
|
|
33039
33288
|
access: "create"
|
|
33040
33289
|
},
|
|
33290
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
33291
|
+
capName: "terminal-session",
|
|
33292
|
+
capScope: "system",
|
|
33293
|
+
addonId: null,
|
|
33294
|
+
access: "create"
|
|
33295
|
+
},
|
|
33041
33296
|
"terminalSession.close": {
|
|
33042
33297
|
capName: "terminal-session",
|
|
33043
33298
|
capScope: "system",
|
|
33044
33299
|
addonId: null,
|
|
33045
33300
|
access: "create"
|
|
33046
33301
|
},
|
|
33302
|
+
"terminalSession.createInstance": {
|
|
33303
|
+
capName: "terminal-session",
|
|
33304
|
+
capScope: "system",
|
|
33305
|
+
addonId: null,
|
|
33306
|
+
access: "create"
|
|
33307
|
+
},
|
|
33308
|
+
"terminalSession.deleteInstance": {
|
|
33309
|
+
capName: "terminal-session",
|
|
33310
|
+
capScope: "system",
|
|
33311
|
+
addonId: null,
|
|
33312
|
+
access: "delete"
|
|
33313
|
+
},
|
|
33314
|
+
"terminalSession.listInstances": {
|
|
33315
|
+
capName: "terminal-session",
|
|
33316
|
+
capScope: "system",
|
|
33317
|
+
addonId: null,
|
|
33318
|
+
access: "view"
|
|
33319
|
+
},
|
|
33320
|
+
"terminalSession.listLegacyCameras": {
|
|
33321
|
+
capName: "terminal-session",
|
|
33322
|
+
capScope: "system",
|
|
33323
|
+
addonId: null,
|
|
33324
|
+
access: "view"
|
|
33325
|
+
},
|
|
33047
33326
|
"terminalSession.listProfiles": {
|
|
33048
33327
|
capName: "terminal-session",
|
|
33049
33328
|
capScope: "system",
|
|
@@ -33074,6 +33353,12 @@ Object.freeze({
|
|
|
33074
33353
|
addonId: null,
|
|
33075
33354
|
access: "create"
|
|
33076
33355
|
},
|
|
33356
|
+
"terminalSession.setInstanceEnabled": {
|
|
33357
|
+
capName: "terminal-session",
|
|
33358
|
+
capScope: "system",
|
|
33359
|
+
addonId: null,
|
|
33360
|
+
access: "create"
|
|
33361
|
+
},
|
|
33077
33362
|
"terminalSession.writeInput": {
|
|
33078
33363
|
capName: "terminal-session",
|
|
33079
33364
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-tuya",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
4
4
|
"description": "Tuya / Smart Life device-provider addon for CamStack — account-onboarded (Tuya IoT cloud fetch of device localKeys) + LOCAL DP control via the @apocaliss92/nodetuya encrypted-LAN client, exposing switch / water-heater-family kettle entities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|