@camstack/addon-provider-tuya 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.
- package/dist/addon.js +357 -30
- package/dist/addon.mjs +357 -30
- 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",
|
|
17108
17188
|
auth: "admin"
|
|
17109
|
-
}), method(
|
|
17189
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
17190
|
+
kind: "mutation",
|
|
17191
|
+
auth: "admin"
|
|
17192
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
17193
|
+
kind: "mutation",
|
|
17194
|
+
auth: "admin"
|
|
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,7 +19512,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
19413
19512
|
label: string(),
|
|
19414
19513
|
description: string().optional()
|
|
19415
19514
|
});
|
|
19416
|
-
|
|
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
|
+
});
|
|
19537
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
19538
|
+
seq: number().int().positive(),
|
|
19539
|
+
kind: literal("data"),
|
|
19540
|
+
data: string()
|
|
19541
|
+
}), object({
|
|
19542
|
+
seq: number().int().positive(),
|
|
19543
|
+
kind: literal("exit"),
|
|
19544
|
+
exitCode: number().int(),
|
|
19545
|
+
signal: number().int().optional()
|
|
19546
|
+
})]);
|
|
19547
|
+
var TerminalOutputBatchSchema = object({
|
|
19548
|
+
cursor: number().int().nonnegative(),
|
|
19549
|
+
reset: boolean(),
|
|
19550
|
+
snapshot: string().optional(),
|
|
19551
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
19552
|
+
});
|
|
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({
|
|
19417
19576
|
profileId: string(),
|
|
19418
19577
|
cols: number().int().positive(),
|
|
19419
19578
|
rows: number().int().positive()
|
|
@@ -19427,6 +19586,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
19427
19586
|
}), _void(), {
|
|
19428
19587
|
kind: "mutation",
|
|
19429
19588
|
auth: "admin"
|
|
19589
|
+
}), method(object({
|
|
19590
|
+
sessionId: string(),
|
|
19591
|
+
afterSeq: number().int().nonnegative(),
|
|
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()
|
|
19599
|
+
}), TerminalOutputBatchSchema, {
|
|
19600
|
+
kind: "mutation",
|
|
19601
|
+
auth: "admin",
|
|
19602
|
+
timeoutMs: 15e3
|
|
19603
|
+
}), method(object({
|
|
19604
|
+
sessionId: string(),
|
|
19605
|
+
data: string().max(64 * 1024)
|
|
19606
|
+
}), _void(), {
|
|
19607
|
+
kind: "mutation",
|
|
19608
|
+
auth: "admin"
|
|
19430
19609
|
}), method(object({ sessionId: string() }), _void(), {
|
|
19431
19610
|
kind: "mutation",
|
|
19432
19611
|
auth: "admin"
|
|
@@ -21922,6 +22101,7 @@ var FaceInfoSchema = object({
|
|
|
21922
22101
|
var FaceFilterEnum = _enum([
|
|
21923
22102
|
"unassigned",
|
|
21924
22103
|
"recognized",
|
|
22104
|
+
"identified",
|
|
21925
22105
|
"all"
|
|
21926
22106
|
]);
|
|
21927
22107
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21950,6 +22130,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21950
22130
|
kind: "mutation",
|
|
21951
22131
|
auth: "admin"
|
|
21952
22132
|
}), method(object({
|
|
22133
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
22134
|
+
deviceId: number().int().optional(),
|
|
21953
22135
|
limit: number().int().positive().optional(),
|
|
21954
22136
|
filter: FaceFilterEnum.optional(),
|
|
21955
22137
|
/**
|
|
@@ -24179,6 +24361,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
24179
24361
|
capName: string().min(1).max(64),
|
|
24180
24362
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
24181
24363
|
valuePath: string().min(1).max(64)
|
|
24364
|
+
}),
|
|
24365
|
+
object({
|
|
24366
|
+
kind: literal("latest-recognition"),
|
|
24367
|
+
recognition: _enum(["person", "plate"])
|
|
24182
24368
|
})
|
|
24183
24369
|
]);
|
|
24184
24370
|
var OsdSlotBindingSchema = object({
|
|
@@ -24284,6 +24470,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
24284
24470
|
}), object({ success: literal(true) }), {
|
|
24285
24471
|
kind: "mutation",
|
|
24286
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"
|
|
24287
24482
|
}), method(object({
|
|
24288
24483
|
deviceId: number().int(),
|
|
24289
24484
|
slotId: string().min(1),
|
|
@@ -25381,13 +25576,19 @@ method(object({
|
|
|
25381
25576
|
}), {
|
|
25382
25577
|
kind: "mutation",
|
|
25383
25578
|
auth: "admin"
|
|
25384
|
-
}), method(
|
|
25579
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
25385
25580
|
kind: "mutation",
|
|
25386
25581
|
auth: "admin"
|
|
25387
|
-
}), method(object({
|
|
25388
|
-
kind: "
|
|
25582
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
25583
|
+
kind: "mutation",
|
|
25389
25584
|
auth: "admin"
|
|
25390
|
-
}), 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() }), {
|
|
25391
25592
|
kind: "mutation",
|
|
25392
25593
|
auth: "admin"
|
|
25393
25594
|
});
|
|
@@ -30993,6 +31194,12 @@ Object.freeze({
|
|
|
30993
31194
|
addonId: null,
|
|
30994
31195
|
access: "delete"
|
|
30995
31196
|
},
|
|
31197
|
+
"osdManager.copyDeviceConfiguration": {
|
|
31198
|
+
capName: "osd-manager",
|
|
31199
|
+
capScope: "system",
|
|
31200
|
+
addonId: null,
|
|
31201
|
+
access: "create"
|
|
31202
|
+
},
|
|
30996
31203
|
"osdManager.getConditionSupport": {
|
|
30997
31204
|
capName: "osd-manager",
|
|
30998
31205
|
capScope: "system",
|
|
@@ -31089,7 +31296,7 @@ Object.freeze({
|
|
|
31089
31296
|
addonId: null,
|
|
31090
31297
|
access: "create"
|
|
31091
31298
|
},
|
|
31092
|
-
"pipelineAnalytics.
|
|
31299
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
31093
31300
|
capName: "pipeline-analytics",
|
|
31094
31301
|
capScope: "device",
|
|
31095
31302
|
addonId: null,
|
|
@@ -31161,12 +31368,6 @@ Object.freeze({
|
|
|
31161
31368
|
addonId: null,
|
|
31162
31369
|
access: "view"
|
|
31163
31370
|
},
|
|
31164
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
31165
|
-
capName: "pipeline-analytics",
|
|
31166
|
-
capScope: "device",
|
|
31167
|
-
addonId: null,
|
|
31168
|
-
access: "view"
|
|
31169
|
-
},
|
|
31170
31371
|
"pipelineAnalytics.getMotionEvents": {
|
|
31171
31372
|
capName: "pipeline-analytics",
|
|
31172
31373
|
capScope: "device",
|
|
@@ -31203,6 +31404,12 @@ Object.freeze({
|
|
|
31203
31404
|
addonId: null,
|
|
31204
31405
|
access: "view"
|
|
31205
31406
|
},
|
|
31407
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
31408
|
+
capName: "pipeline-analytics",
|
|
31409
|
+
capScope: "device",
|
|
31410
|
+
addonId: null,
|
|
31411
|
+
access: "view"
|
|
31412
|
+
},
|
|
31206
31413
|
"pipelineAnalytics.getTrack": {
|
|
31207
31414
|
capName: "pipeline-analytics",
|
|
31208
31415
|
capScope: "device",
|
|
@@ -31281,6 +31488,12 @@ Object.freeze({
|
|
|
31281
31488
|
addonId: null,
|
|
31282
31489
|
access: "view"
|
|
31283
31490
|
},
|
|
31491
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
31492
|
+
capName: "pipeline-analytics",
|
|
31493
|
+
capScope: "device",
|
|
31494
|
+
addonId: null,
|
|
31495
|
+
access: "create"
|
|
31496
|
+
},
|
|
31284
31497
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
31285
31498
|
capName: "pipeline-analytics",
|
|
31286
31499
|
capScope: "device",
|
|
@@ -31311,7 +31524,7 @@ Object.freeze({
|
|
|
31311
31524
|
addonId: null,
|
|
31312
31525
|
access: "create"
|
|
31313
31526
|
},
|
|
31314
|
-
"pipelineAnalytics.
|
|
31527
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
31315
31528
|
capName: "pipeline-analytics",
|
|
31316
31529
|
capScope: "device",
|
|
31317
31530
|
addonId: null,
|
|
@@ -31323,6 +31536,12 @@ Object.freeze({
|
|
|
31323
31536
|
addonId: null,
|
|
31324
31537
|
access: "create"
|
|
31325
31538
|
},
|
|
31539
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
31540
|
+
capName: "pipeline-analytics",
|
|
31541
|
+
capScope: "device",
|
|
31542
|
+
addonId: null,
|
|
31543
|
+
access: "create"
|
|
31544
|
+
},
|
|
31326
31545
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
31327
31546
|
capName: "pipeline-analytics",
|
|
31328
31547
|
capScope: "device",
|
|
@@ -31347,6 +31566,12 @@ Object.freeze({
|
|
|
31347
31566
|
addonId: null,
|
|
31348
31567
|
access: "create"
|
|
31349
31568
|
},
|
|
31569
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
31570
|
+
capName: "pipeline-analytics",
|
|
31571
|
+
capScope: "device",
|
|
31572
|
+
addonId: null,
|
|
31573
|
+
access: "create"
|
|
31574
|
+
},
|
|
31350
31575
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
31351
31576
|
capName: "pipeline-analytics",
|
|
31352
31577
|
capScope: "device",
|
|
@@ -31713,6 +31938,12 @@ Object.freeze({
|
|
|
31713
31938
|
addonId: null,
|
|
31714
31939
|
access: "view"
|
|
31715
31940
|
},
|
|
31941
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31942
|
+
capName: "pipeline-orchestrator",
|
|
31943
|
+
capScope: "system",
|
|
31944
|
+
addonId: null,
|
|
31945
|
+
access: "create"
|
|
31946
|
+
},
|
|
31716
31947
|
"pipelineOrchestrator.rebalance": {
|
|
31717
31948
|
capName: "pipeline-orchestrator",
|
|
31718
31949
|
capScope: "system",
|
|
@@ -31737,6 +31968,12 @@ Object.freeze({
|
|
|
31737
31968
|
addonId: null,
|
|
31738
31969
|
access: "view"
|
|
31739
31970
|
},
|
|
31971
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31972
|
+
capName: "pipeline-orchestrator",
|
|
31973
|
+
capScope: "system",
|
|
31974
|
+
addonId: null,
|
|
31975
|
+
access: "create"
|
|
31976
|
+
},
|
|
31740
31977
|
"pipelineOrchestrator.saveTemplate": {
|
|
31741
31978
|
capName: "pipeline-orchestrator",
|
|
31742
31979
|
capScope: "system",
|
|
@@ -32133,7 +32370,7 @@ Object.freeze({
|
|
|
32133
32370
|
addonId: null,
|
|
32134
32371
|
access: "create"
|
|
32135
32372
|
},
|
|
32136
|
-
"recording.
|
|
32373
|
+
"recording.cancelStorageMigrationMove": {
|
|
32137
32374
|
capName: "recording",
|
|
32138
32375
|
capScope: "system",
|
|
32139
32376
|
addonId: null,
|
|
@@ -32169,7 +32406,7 @@ Object.freeze({
|
|
|
32169
32406
|
addonId: null,
|
|
32170
32407
|
access: "view"
|
|
32171
32408
|
},
|
|
32172
|
-
"recording.
|
|
32409
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
32173
32410
|
capName: "recording",
|
|
32174
32411
|
capScope: "system",
|
|
32175
32412
|
addonId: null,
|
|
@@ -32193,6 +32430,12 @@ Object.freeze({
|
|
|
32193
32430
|
addonId: null,
|
|
32194
32431
|
access: "view"
|
|
32195
32432
|
},
|
|
32433
|
+
"recording.pauseForStorageMigration": {
|
|
32434
|
+
capName: "recording",
|
|
32435
|
+
capScope: "system",
|
|
32436
|
+
addonId: null,
|
|
32437
|
+
access: "create"
|
|
32438
|
+
},
|
|
32196
32439
|
"recording.pruneFootage": {
|
|
32197
32440
|
capName: "recording",
|
|
32198
32441
|
capScope: "system",
|
|
@@ -32211,7 +32454,7 @@ Object.freeze({
|
|
|
32211
32454
|
addonId: null,
|
|
32212
32455
|
access: "view"
|
|
32213
32456
|
},
|
|
32214
|
-
"recording.
|
|
32457
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
32215
32458
|
capName: "recording",
|
|
32216
32459
|
capScope: "system",
|
|
32217
32460
|
addonId: null,
|
|
@@ -32235,12 +32478,24 @@ Object.freeze({
|
|
|
32235
32478
|
addonId: null,
|
|
32236
32479
|
access: "create"
|
|
32237
32480
|
},
|
|
32481
|
+
"recording.resumeForStorageMigration": {
|
|
32482
|
+
capName: "recording",
|
|
32483
|
+
capScope: "system",
|
|
32484
|
+
addonId: null,
|
|
32485
|
+
access: "create"
|
|
32486
|
+
},
|
|
32238
32487
|
"recording.setDeviceConfig": {
|
|
32239
32488
|
capName: "recording",
|
|
32240
32489
|
capScope: "system",
|
|
32241
32490
|
addonId: null,
|
|
32242
32491
|
access: "create"
|
|
32243
32492
|
},
|
|
32493
|
+
"recording.startStorageMigrationMove": {
|
|
32494
|
+
capName: "recording",
|
|
32495
|
+
capScope: "system",
|
|
32496
|
+
addonId: null,
|
|
32497
|
+
access: "create"
|
|
32498
|
+
},
|
|
32244
32499
|
"recordingExport.cancelExport": {
|
|
32245
32500
|
capName: "recordingExport",
|
|
32246
32501
|
capScope: "system",
|
|
@@ -32631,6 +32886,30 @@ Object.freeze({
|
|
|
32631
32886
|
addonId: null,
|
|
32632
32887
|
access: "view"
|
|
32633
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
|
+
},
|
|
32634
32913
|
"storageProvider.abortUpload": {
|
|
32635
32914
|
capName: "storage-provider",
|
|
32636
32915
|
capScope: "system",
|
|
@@ -33009,12 +33288,42 @@ Object.freeze({
|
|
|
33009
33288
|
addonId: null,
|
|
33010
33289
|
access: "create"
|
|
33011
33290
|
},
|
|
33291
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
33292
|
+
capName: "terminal-session",
|
|
33293
|
+
capScope: "system",
|
|
33294
|
+
addonId: null,
|
|
33295
|
+
access: "create"
|
|
33296
|
+
},
|
|
33012
33297
|
"terminalSession.close": {
|
|
33013
33298
|
capName: "terminal-session",
|
|
33014
33299
|
capScope: "system",
|
|
33015
33300
|
addonId: null,
|
|
33016
33301
|
access: "create"
|
|
33017
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
|
+
},
|
|
33018
33327
|
"terminalSession.listProfiles": {
|
|
33019
33328
|
capName: "terminal-session",
|
|
33020
33329
|
capScope: "system",
|
|
@@ -33033,12 +33342,30 @@ Object.freeze({
|
|
|
33033
33342
|
addonId: null,
|
|
33034
33343
|
access: "create"
|
|
33035
33344
|
},
|
|
33345
|
+
"terminalSession.pullOutput": {
|
|
33346
|
+
capName: "terminal-session",
|
|
33347
|
+
capScope: "system",
|
|
33348
|
+
addonId: null,
|
|
33349
|
+
access: "create"
|
|
33350
|
+
},
|
|
33036
33351
|
"terminalSession.resize": {
|
|
33037
33352
|
capName: "terminal-session",
|
|
33038
33353
|
capScope: "system",
|
|
33039
33354
|
addonId: null,
|
|
33040
33355
|
access: "create"
|
|
33041
33356
|
},
|
|
33357
|
+
"terminalSession.setInstanceEnabled": {
|
|
33358
|
+
capName: "terminal-session",
|
|
33359
|
+
capScope: "system",
|
|
33360
|
+
addonId: null,
|
|
33361
|
+
access: "create"
|
|
33362
|
+
},
|
|
33363
|
+
"terminalSession.writeInput": {
|
|
33364
|
+
capName: "terminal-session",
|
|
33365
|
+
capScope: "system",
|
|
33366
|
+
addonId: null,
|
|
33367
|
+
access: "create"
|
|
33368
|
+
},
|
|
33042
33369
|
"toast.onToast": {
|
|
33043
33370
|
capName: "toast",
|
|
33044
33371
|
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",
|
|
17107
17187
|
auth: "admin"
|
|
17108
|
-
}), method(
|
|
17188
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
17189
|
+
kind: "mutation",
|
|
17190
|
+
auth: "admin"
|
|
17191
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
17192
|
+
kind: "mutation",
|
|
17193
|
+
auth: "admin"
|
|
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,7 +19511,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
19412
19511
|
label: string(),
|
|
19413
19512
|
description: string().optional()
|
|
19414
19513
|
});
|
|
19415
|
-
|
|
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
|
+
});
|
|
19536
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
19537
|
+
seq: number().int().positive(),
|
|
19538
|
+
kind: literal("data"),
|
|
19539
|
+
data: string()
|
|
19540
|
+
}), object({
|
|
19541
|
+
seq: number().int().positive(),
|
|
19542
|
+
kind: literal("exit"),
|
|
19543
|
+
exitCode: number().int(),
|
|
19544
|
+
signal: number().int().optional()
|
|
19545
|
+
})]);
|
|
19546
|
+
var TerminalOutputBatchSchema = object({
|
|
19547
|
+
cursor: number().int().nonnegative(),
|
|
19548
|
+
reset: boolean(),
|
|
19549
|
+
snapshot: string().optional(),
|
|
19550
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
19551
|
+
});
|
|
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({
|
|
19416
19575
|
profileId: string(),
|
|
19417
19576
|
cols: number().int().positive(),
|
|
19418
19577
|
rows: number().int().positive()
|
|
@@ -19426,6 +19585,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
19426
19585
|
}), _void(), {
|
|
19427
19586
|
kind: "mutation",
|
|
19428
19587
|
auth: "admin"
|
|
19588
|
+
}), method(object({
|
|
19589
|
+
sessionId: string(),
|
|
19590
|
+
afterSeq: number().int().nonnegative(),
|
|
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()
|
|
19598
|
+
}), TerminalOutputBatchSchema, {
|
|
19599
|
+
kind: "mutation",
|
|
19600
|
+
auth: "admin",
|
|
19601
|
+
timeoutMs: 15e3
|
|
19602
|
+
}), method(object({
|
|
19603
|
+
sessionId: string(),
|
|
19604
|
+
data: string().max(64 * 1024)
|
|
19605
|
+
}), _void(), {
|
|
19606
|
+
kind: "mutation",
|
|
19607
|
+
auth: "admin"
|
|
19429
19608
|
}), method(object({ sessionId: string() }), _void(), {
|
|
19430
19609
|
kind: "mutation",
|
|
19431
19610
|
auth: "admin"
|
|
@@ -21921,6 +22100,7 @@ var FaceInfoSchema = object({
|
|
|
21921
22100
|
var FaceFilterEnum = _enum([
|
|
21922
22101
|
"unassigned",
|
|
21923
22102
|
"recognized",
|
|
22103
|
+
"identified",
|
|
21924
22104
|
"all"
|
|
21925
22105
|
]);
|
|
21926
22106
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21949,6 +22129,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21949
22129
|
kind: "mutation",
|
|
21950
22130
|
auth: "admin"
|
|
21951
22131
|
}), method(object({
|
|
22132
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
22133
|
+
deviceId: number().int().optional(),
|
|
21952
22134
|
limit: number().int().positive().optional(),
|
|
21953
22135
|
filter: FaceFilterEnum.optional(),
|
|
21954
22136
|
/**
|
|
@@ -24178,6 +24360,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
24178
24360
|
capName: string().min(1).max(64),
|
|
24179
24361
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
24180
24362
|
valuePath: string().min(1).max(64)
|
|
24363
|
+
}),
|
|
24364
|
+
object({
|
|
24365
|
+
kind: literal("latest-recognition"),
|
|
24366
|
+
recognition: _enum(["person", "plate"])
|
|
24181
24367
|
})
|
|
24182
24368
|
]);
|
|
24183
24369
|
var OsdSlotBindingSchema = object({
|
|
@@ -24283,6 +24469,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
24283
24469
|
}), object({ success: literal(true) }), {
|
|
24284
24470
|
kind: "mutation",
|
|
24285
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"
|
|
24286
24481
|
}), method(object({
|
|
24287
24482
|
deviceId: number().int(),
|
|
24288
24483
|
slotId: string().min(1),
|
|
@@ -25380,13 +25575,19 @@ method(object({
|
|
|
25380
25575
|
}), {
|
|
25381
25576
|
kind: "mutation",
|
|
25382
25577
|
auth: "admin"
|
|
25383
|
-
}), method(
|
|
25578
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
25384
25579
|
kind: "mutation",
|
|
25385
25580
|
auth: "admin"
|
|
25386
|
-
}), method(object({
|
|
25387
|
-
kind: "
|
|
25581
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
25582
|
+
kind: "mutation",
|
|
25388
25583
|
auth: "admin"
|
|
25389
|
-
}), 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() }), {
|
|
25390
25591
|
kind: "mutation",
|
|
25391
25592
|
auth: "admin"
|
|
25392
25593
|
});
|
|
@@ -30992,6 +31193,12 @@ Object.freeze({
|
|
|
30992
31193
|
addonId: null,
|
|
30993
31194
|
access: "delete"
|
|
30994
31195
|
},
|
|
31196
|
+
"osdManager.copyDeviceConfiguration": {
|
|
31197
|
+
capName: "osd-manager",
|
|
31198
|
+
capScope: "system",
|
|
31199
|
+
addonId: null,
|
|
31200
|
+
access: "create"
|
|
31201
|
+
},
|
|
30995
31202
|
"osdManager.getConditionSupport": {
|
|
30996
31203
|
capName: "osd-manager",
|
|
30997
31204
|
capScope: "system",
|
|
@@ -31088,7 +31295,7 @@ Object.freeze({
|
|
|
31088
31295
|
addonId: null,
|
|
31089
31296
|
access: "create"
|
|
31090
31297
|
},
|
|
31091
|
-
"pipelineAnalytics.
|
|
31298
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
31092
31299
|
capName: "pipeline-analytics",
|
|
31093
31300
|
capScope: "device",
|
|
31094
31301
|
addonId: null,
|
|
@@ -31160,12 +31367,6 @@ Object.freeze({
|
|
|
31160
31367
|
addonId: null,
|
|
31161
31368
|
access: "view"
|
|
31162
31369
|
},
|
|
31163
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
31164
|
-
capName: "pipeline-analytics",
|
|
31165
|
-
capScope: "device",
|
|
31166
|
-
addonId: null,
|
|
31167
|
-
access: "view"
|
|
31168
|
-
},
|
|
31169
31370
|
"pipelineAnalytics.getMotionEvents": {
|
|
31170
31371
|
capName: "pipeline-analytics",
|
|
31171
31372
|
capScope: "device",
|
|
@@ -31202,6 +31403,12 @@ Object.freeze({
|
|
|
31202
31403
|
addonId: null,
|
|
31203
31404
|
access: "view"
|
|
31204
31405
|
},
|
|
31406
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
31407
|
+
capName: "pipeline-analytics",
|
|
31408
|
+
capScope: "device",
|
|
31409
|
+
addonId: null,
|
|
31410
|
+
access: "view"
|
|
31411
|
+
},
|
|
31205
31412
|
"pipelineAnalytics.getTrack": {
|
|
31206
31413
|
capName: "pipeline-analytics",
|
|
31207
31414
|
capScope: "device",
|
|
@@ -31280,6 +31487,12 @@ Object.freeze({
|
|
|
31280
31487
|
addonId: null,
|
|
31281
31488
|
access: "view"
|
|
31282
31489
|
},
|
|
31490
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
31491
|
+
capName: "pipeline-analytics",
|
|
31492
|
+
capScope: "device",
|
|
31493
|
+
addonId: null,
|
|
31494
|
+
access: "create"
|
|
31495
|
+
},
|
|
31283
31496
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
31284
31497
|
capName: "pipeline-analytics",
|
|
31285
31498
|
capScope: "device",
|
|
@@ -31310,7 +31523,7 @@ Object.freeze({
|
|
|
31310
31523
|
addonId: null,
|
|
31311
31524
|
access: "create"
|
|
31312
31525
|
},
|
|
31313
|
-
"pipelineAnalytics.
|
|
31526
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
31314
31527
|
capName: "pipeline-analytics",
|
|
31315
31528
|
capScope: "device",
|
|
31316
31529
|
addonId: null,
|
|
@@ -31322,6 +31535,12 @@ Object.freeze({
|
|
|
31322
31535
|
addonId: null,
|
|
31323
31536
|
access: "create"
|
|
31324
31537
|
},
|
|
31538
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
31539
|
+
capName: "pipeline-analytics",
|
|
31540
|
+
capScope: "device",
|
|
31541
|
+
addonId: null,
|
|
31542
|
+
access: "create"
|
|
31543
|
+
},
|
|
31325
31544
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
31326
31545
|
capName: "pipeline-analytics",
|
|
31327
31546
|
capScope: "device",
|
|
@@ -31346,6 +31565,12 @@ Object.freeze({
|
|
|
31346
31565
|
addonId: null,
|
|
31347
31566
|
access: "create"
|
|
31348
31567
|
},
|
|
31568
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
31569
|
+
capName: "pipeline-analytics",
|
|
31570
|
+
capScope: "device",
|
|
31571
|
+
addonId: null,
|
|
31572
|
+
access: "create"
|
|
31573
|
+
},
|
|
31349
31574
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
31350
31575
|
capName: "pipeline-analytics",
|
|
31351
31576
|
capScope: "device",
|
|
@@ -31712,6 +31937,12 @@ Object.freeze({
|
|
|
31712
31937
|
addonId: null,
|
|
31713
31938
|
access: "view"
|
|
31714
31939
|
},
|
|
31940
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31941
|
+
capName: "pipeline-orchestrator",
|
|
31942
|
+
capScope: "system",
|
|
31943
|
+
addonId: null,
|
|
31944
|
+
access: "create"
|
|
31945
|
+
},
|
|
31715
31946
|
"pipelineOrchestrator.rebalance": {
|
|
31716
31947
|
capName: "pipeline-orchestrator",
|
|
31717
31948
|
capScope: "system",
|
|
@@ -31736,6 +31967,12 @@ Object.freeze({
|
|
|
31736
31967
|
addonId: null,
|
|
31737
31968
|
access: "view"
|
|
31738
31969
|
},
|
|
31970
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31971
|
+
capName: "pipeline-orchestrator",
|
|
31972
|
+
capScope: "system",
|
|
31973
|
+
addonId: null,
|
|
31974
|
+
access: "create"
|
|
31975
|
+
},
|
|
31739
31976
|
"pipelineOrchestrator.saveTemplate": {
|
|
31740
31977
|
capName: "pipeline-orchestrator",
|
|
31741
31978
|
capScope: "system",
|
|
@@ -32132,7 +32369,7 @@ Object.freeze({
|
|
|
32132
32369
|
addonId: null,
|
|
32133
32370
|
access: "create"
|
|
32134
32371
|
},
|
|
32135
|
-
"recording.
|
|
32372
|
+
"recording.cancelStorageMigrationMove": {
|
|
32136
32373
|
capName: "recording",
|
|
32137
32374
|
capScope: "system",
|
|
32138
32375
|
addonId: null,
|
|
@@ -32168,7 +32405,7 @@ Object.freeze({
|
|
|
32168
32405
|
addonId: null,
|
|
32169
32406
|
access: "view"
|
|
32170
32407
|
},
|
|
32171
|
-
"recording.
|
|
32408
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
32172
32409
|
capName: "recording",
|
|
32173
32410
|
capScope: "system",
|
|
32174
32411
|
addonId: null,
|
|
@@ -32192,6 +32429,12 @@ Object.freeze({
|
|
|
32192
32429
|
addonId: null,
|
|
32193
32430
|
access: "view"
|
|
32194
32431
|
},
|
|
32432
|
+
"recording.pauseForStorageMigration": {
|
|
32433
|
+
capName: "recording",
|
|
32434
|
+
capScope: "system",
|
|
32435
|
+
addonId: null,
|
|
32436
|
+
access: "create"
|
|
32437
|
+
},
|
|
32195
32438
|
"recording.pruneFootage": {
|
|
32196
32439
|
capName: "recording",
|
|
32197
32440
|
capScope: "system",
|
|
@@ -32210,7 +32453,7 @@ Object.freeze({
|
|
|
32210
32453
|
addonId: null,
|
|
32211
32454
|
access: "view"
|
|
32212
32455
|
},
|
|
32213
|
-
"recording.
|
|
32456
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
32214
32457
|
capName: "recording",
|
|
32215
32458
|
capScope: "system",
|
|
32216
32459
|
addonId: null,
|
|
@@ -32234,12 +32477,24 @@ Object.freeze({
|
|
|
32234
32477
|
addonId: null,
|
|
32235
32478
|
access: "create"
|
|
32236
32479
|
},
|
|
32480
|
+
"recording.resumeForStorageMigration": {
|
|
32481
|
+
capName: "recording",
|
|
32482
|
+
capScope: "system",
|
|
32483
|
+
addonId: null,
|
|
32484
|
+
access: "create"
|
|
32485
|
+
},
|
|
32237
32486
|
"recording.setDeviceConfig": {
|
|
32238
32487
|
capName: "recording",
|
|
32239
32488
|
capScope: "system",
|
|
32240
32489
|
addonId: null,
|
|
32241
32490
|
access: "create"
|
|
32242
32491
|
},
|
|
32492
|
+
"recording.startStorageMigrationMove": {
|
|
32493
|
+
capName: "recording",
|
|
32494
|
+
capScope: "system",
|
|
32495
|
+
addonId: null,
|
|
32496
|
+
access: "create"
|
|
32497
|
+
},
|
|
32243
32498
|
"recordingExport.cancelExport": {
|
|
32244
32499
|
capName: "recordingExport",
|
|
32245
32500
|
capScope: "system",
|
|
@@ -32630,6 +32885,30 @@ Object.freeze({
|
|
|
32630
32885
|
addonId: null,
|
|
32631
32886
|
access: "view"
|
|
32632
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
|
+
},
|
|
32633
32912
|
"storageProvider.abortUpload": {
|
|
32634
32913
|
capName: "storage-provider",
|
|
32635
32914
|
capScope: "system",
|
|
@@ -33008,12 +33287,42 @@ Object.freeze({
|
|
|
33008
33287
|
addonId: null,
|
|
33009
33288
|
access: "create"
|
|
33010
33289
|
},
|
|
33290
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
33291
|
+
capName: "terminal-session",
|
|
33292
|
+
capScope: "system",
|
|
33293
|
+
addonId: null,
|
|
33294
|
+
access: "create"
|
|
33295
|
+
},
|
|
33011
33296
|
"terminalSession.close": {
|
|
33012
33297
|
capName: "terminal-session",
|
|
33013
33298
|
capScope: "system",
|
|
33014
33299
|
addonId: null,
|
|
33015
33300
|
access: "create"
|
|
33016
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
|
+
},
|
|
33017
33326
|
"terminalSession.listProfiles": {
|
|
33018
33327
|
capName: "terminal-session",
|
|
33019
33328
|
capScope: "system",
|
|
@@ -33032,12 +33341,30 @@ Object.freeze({
|
|
|
33032
33341
|
addonId: null,
|
|
33033
33342
|
access: "create"
|
|
33034
33343
|
},
|
|
33344
|
+
"terminalSession.pullOutput": {
|
|
33345
|
+
capName: "terminal-session",
|
|
33346
|
+
capScope: "system",
|
|
33347
|
+
addonId: null,
|
|
33348
|
+
access: "create"
|
|
33349
|
+
},
|
|
33035
33350
|
"terminalSession.resize": {
|
|
33036
33351
|
capName: "terminal-session",
|
|
33037
33352
|
capScope: "system",
|
|
33038
33353
|
addonId: null,
|
|
33039
33354
|
access: "create"
|
|
33040
33355
|
},
|
|
33356
|
+
"terminalSession.setInstanceEnabled": {
|
|
33357
|
+
capName: "terminal-session",
|
|
33358
|
+
capScope: "system",
|
|
33359
|
+
addonId: null,
|
|
33360
|
+
access: "create"
|
|
33361
|
+
},
|
|
33362
|
+
"terminalSession.writeInput": {
|
|
33363
|
+
capName: "terminal-session",
|
|
33364
|
+
capScope: "system",
|
|
33365
|
+
addonId: null,
|
|
33366
|
+
access: "create"
|
|
33367
|
+
},
|
|
33041
33368
|
"toast.onToast": {
|
|
33042
33369
|
capName: "toast",
|
|
33043
33370
|
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",
|