@camstack/addon-static-turn 1.2.10 → 1.2.12
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/static-turn.addon.js +357 -30
- package/dist/static-turn.addon.mjs +357 -30
- package/package.json +1 -1
|
@@ -7535,12 +7535,11 @@ var RecordingConfigSchema = object({
|
|
|
7535
7535
|
/**
|
|
7536
7536
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7537
7537
|
*
|
|
7538
|
-
* One shape shared by the recorder
|
|
7539
|
-
*
|
|
7540
|
-
*
|
|
7541
|
-
*
|
|
7542
|
-
*
|
|
7543
|
-
* row on the owning addon's surface.
|
|
7538
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7539
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7540
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7541
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7542
|
+
* addon surface.
|
|
7544
7543
|
*/
|
|
7545
7544
|
var RelocateJobStateSchema = _enum([
|
|
7546
7545
|
"running",
|
|
@@ -7567,19 +7566,100 @@ var RelocateJobSchema = object({
|
|
|
7567
7566
|
finishedAt: number().nullable(),
|
|
7568
7567
|
error: string().nullable()
|
|
7569
7568
|
});
|
|
7569
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7570
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7571
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7570
7572
|
var RelocateFootageInputSchema = object({
|
|
7571
|
-
deviceId: number().optional(),
|
|
7572
7573
|
fromLocationId: string(),
|
|
7573
7574
|
toLocationId: string(),
|
|
7574
7575
|
entities: array(_enum(["segments"])).optional(),
|
|
7576
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7577
|
+
* pre-orchestration compatibility path. */
|
|
7578
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7575
7579
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7576
7580
|
* never allowed to starve live writers. */
|
|
7577
7581
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7578
7582
|
});
|
|
7579
|
-
|
|
7580
|
-
|
|
7583
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7584
|
+
* from persistent recording settings: a migration never changes
|
|
7585
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7586
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7587
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7588
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7581
7589
|
toLocationId: string(),
|
|
7582
7590
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7591
|
+
}).extend({ leaseId: string().min(1) });
|
|
7592
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7593
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7594
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7595
|
+
var StorageMigrationClassSchema = _enum([
|
|
7596
|
+
"recordings",
|
|
7597
|
+
"recordingsLow",
|
|
7598
|
+
"eventMedia"
|
|
7599
|
+
]);
|
|
7600
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7601
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7602
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7603
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7604
|
+
recordings: string().min(1).optional(),
|
|
7605
|
+
recordingsLow: string().min(1).optional(),
|
|
7606
|
+
eventMedia: string().min(1).optional()
|
|
7607
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7608
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7609
|
+
var StorageMigrationInputSchema = object({
|
|
7610
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7611
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7612
|
+
});
|
|
7613
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7614
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7615
|
+
* verified. */
|
|
7616
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7617
|
+
"planning",
|
|
7618
|
+
"pausing",
|
|
7619
|
+
"moving",
|
|
7620
|
+
"verifying",
|
|
7621
|
+
"repointing",
|
|
7622
|
+
"refreshing",
|
|
7623
|
+
"resuming",
|
|
7624
|
+
"done",
|
|
7625
|
+
"failed",
|
|
7626
|
+
"cancelled"
|
|
7627
|
+
]);
|
|
7628
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7629
|
+
"pipeline",
|
|
7630
|
+
"recorder",
|
|
7631
|
+
"analytics"
|
|
7632
|
+
]);
|
|
7633
|
+
var StorageMigrationMoveSchema = object({
|
|
7634
|
+
storageClass: StorageMigrationClassSchema,
|
|
7635
|
+
fromLocationId: string(),
|
|
7636
|
+
toLocationId: string(),
|
|
7637
|
+
moverJobId: string().nullable(),
|
|
7638
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7639
|
+
error: string().nullable()
|
|
7640
|
+
});
|
|
7641
|
+
var StorageMigrationJobSchema = object({
|
|
7642
|
+
jobId: string(),
|
|
7643
|
+
phase: StorageMigrationPhaseSchema,
|
|
7644
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7645
|
+
throttleMbps: number(),
|
|
7646
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7647
|
+
pauseLeaseId: string().nullable(),
|
|
7648
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7649
|
+
repointed: boolean(),
|
|
7650
|
+
cancelRequested: boolean(),
|
|
7651
|
+
startedAt: number(),
|
|
7652
|
+
updatedAt: number(),
|
|
7653
|
+
finishedAt: number().nullable(),
|
|
7654
|
+
error: string().nullable()
|
|
7655
|
+
});
|
|
7656
|
+
var StorageMigrationPlanSchema = object({
|
|
7657
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7658
|
+
moves: array(object({
|
|
7659
|
+
storageClass: StorageMigrationClassSchema,
|
|
7660
|
+
fromLocationId: string(),
|
|
7661
|
+
toLocationId: string()
|
|
7662
|
+
}))
|
|
7583
7663
|
});
|
|
7584
7664
|
/**
|
|
7585
7665
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15955,13 +16035,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15955
16035
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15956
16036
|
kind: "mutation",
|
|
15957
16037
|
auth: "admin"
|
|
15958
|
-
}), method(
|
|
16038
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15959
16039
|
kind: "mutation",
|
|
15960
16040
|
auth: "admin"
|
|
15961
|
-
}), method(object({
|
|
15962
|
-
kind: "
|
|
16041
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16042
|
+
kind: "mutation",
|
|
15963
16043
|
auth: "admin"
|
|
15964
|
-
}), method(
|
|
16044
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16045
|
+
kind: "mutation",
|
|
16046
|
+
auth: "admin"
|
|
16047
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16048
|
+
kind: "mutation",
|
|
16049
|
+
auth: "admin"
|
|
16050
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
15965
16051
|
kind: "mutation",
|
|
15966
16052
|
auth: "admin"
|
|
15967
16053
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17458,7 +17544,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17458
17544
|
reachable: boolean(),
|
|
17459
17545
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17460
17546
|
});
|
|
17461
|
-
method(object({
|
|
17547
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17548
|
+
kind: "mutation",
|
|
17549
|
+
auth: "admin"
|
|
17550
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17551
|
+
kind: "mutation",
|
|
17552
|
+
auth: "admin"
|
|
17553
|
+
}), method(object({
|
|
17462
17554
|
deviceId: number(),
|
|
17463
17555
|
agentNodeId: string()
|
|
17464
17556
|
}), object({ success: literal(true) }), {
|
|
@@ -18132,6 +18224,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18132
18224
|
locationId: string(),
|
|
18133
18225
|
targetBytes: number().int().positive()
|
|
18134
18226
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18227
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18228
|
+
kind: "mutation",
|
|
18229
|
+
auth: "admin"
|
|
18230
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18231
|
+
kind: "mutation",
|
|
18232
|
+
auth: "admin"
|
|
18233
|
+
});
|
|
18135
18234
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18136
18235
|
providerId: string().min(1),
|
|
18137
18236
|
displayName: string().min(1),
|
|
@@ -18235,7 +18334,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18235
18334
|
label: string(),
|
|
18236
18335
|
description: string().optional()
|
|
18237
18336
|
});
|
|
18238
|
-
|
|
18337
|
+
/**
|
|
18338
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18339
|
+
* an instance declares a camera.
|
|
18340
|
+
*/
|
|
18341
|
+
var TerminalInstanceInfoSchema = object({
|
|
18342
|
+
instanceId: string(),
|
|
18343
|
+
cameraStableId: string(),
|
|
18344
|
+
nodeId: string(),
|
|
18345
|
+
profileId: string(),
|
|
18346
|
+
profileLabel: string(),
|
|
18347
|
+
name: string(),
|
|
18348
|
+
enabled: boolean()
|
|
18349
|
+
});
|
|
18350
|
+
var TerminalLegacyCameraSchema = object({
|
|
18351
|
+
stableId: string(),
|
|
18352
|
+
nodeId: string(),
|
|
18353
|
+
profileId: string(),
|
|
18354
|
+
profileLabel: string(),
|
|
18355
|
+
name: string(),
|
|
18356
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18357
|
+
adoptable: boolean()
|
|
18358
|
+
});
|
|
18359
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18360
|
+
seq: number().int().positive(),
|
|
18361
|
+
kind: literal("data"),
|
|
18362
|
+
data: string()
|
|
18363
|
+
}), object({
|
|
18364
|
+
seq: number().int().positive(),
|
|
18365
|
+
kind: literal("exit"),
|
|
18366
|
+
exitCode: number().int(),
|
|
18367
|
+
signal: number().int().optional()
|
|
18368
|
+
})]);
|
|
18369
|
+
var TerminalOutputBatchSchema = object({
|
|
18370
|
+
cursor: number().int().nonnegative(),
|
|
18371
|
+
reset: boolean(),
|
|
18372
|
+
snapshot: string().optional(),
|
|
18373
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18374
|
+
});
|
|
18375
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18376
|
+
targetNodeId: string().min(1),
|
|
18377
|
+
profileId: string().min(1),
|
|
18378
|
+
name: string().trim().min(1).max(160).optional()
|
|
18379
|
+
}), TerminalInstanceInfoSchema, {
|
|
18380
|
+
kind: "mutation",
|
|
18381
|
+
auth: "admin"
|
|
18382
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18383
|
+
kind: "mutation",
|
|
18384
|
+
auth: "admin"
|
|
18385
|
+
}), method(object({
|
|
18386
|
+
instanceId: string().min(1),
|
|
18387
|
+
enabled: boolean()
|
|
18388
|
+
}), TerminalInstanceInfoSchema, {
|
|
18389
|
+
kind: "mutation",
|
|
18390
|
+
auth: "admin"
|
|
18391
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18392
|
+
stableId: string().min(1),
|
|
18393
|
+
name: string().trim().min(1).max(160).optional()
|
|
18394
|
+
}), TerminalInstanceInfoSchema, {
|
|
18395
|
+
kind: "mutation",
|
|
18396
|
+
auth: "admin"
|
|
18397
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18239
18398
|
profileId: string(),
|
|
18240
18399
|
cols: number().int().positive(),
|
|
18241
18400
|
rows: number().int().positive()
|
|
@@ -18249,6 +18408,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18249
18408
|
}), _void(), {
|
|
18250
18409
|
kind: "mutation",
|
|
18251
18410
|
auth: "admin"
|
|
18411
|
+
}), method(object({
|
|
18412
|
+
sessionId: string(),
|
|
18413
|
+
afterSeq: number().int().nonnegative(),
|
|
18414
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18415
|
+
/**
|
|
18416
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18417
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18418
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18419
|
+
*/
|
|
18420
|
+
waitForOutput: boolean().optional()
|
|
18421
|
+
}), TerminalOutputBatchSchema, {
|
|
18422
|
+
kind: "mutation",
|
|
18423
|
+
auth: "admin",
|
|
18424
|
+
timeoutMs: 15e3
|
|
18425
|
+
}), method(object({
|
|
18426
|
+
sessionId: string(),
|
|
18427
|
+
data: string().max(64 * 1024)
|
|
18428
|
+
}), _void(), {
|
|
18429
|
+
kind: "mutation",
|
|
18430
|
+
auth: "admin"
|
|
18252
18431
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18253
18432
|
kind: "mutation",
|
|
18254
18433
|
auth: "admin"
|
|
@@ -20202,6 +20381,7 @@ var FaceInfoSchema = object({
|
|
|
20202
20381
|
var FaceFilterEnum = _enum([
|
|
20203
20382
|
"unassigned",
|
|
20204
20383
|
"recognized",
|
|
20384
|
+
"identified",
|
|
20205
20385
|
"all"
|
|
20206
20386
|
]);
|
|
20207
20387
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20230,6 +20410,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20230
20410
|
kind: "mutation",
|
|
20231
20411
|
auth: "admin"
|
|
20232
20412
|
}), method(object({
|
|
20413
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20414
|
+
deviceId: number().int().optional(),
|
|
20233
20415
|
limit: number().int().positive().optional(),
|
|
20234
20416
|
filter: FaceFilterEnum.optional(),
|
|
20235
20417
|
/**
|
|
@@ -21995,6 +22177,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
21995
22177
|
capName: string().min(1).max(64),
|
|
21996
22178
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
21997
22179
|
valuePath: string().min(1).max(64)
|
|
22180
|
+
}),
|
|
22181
|
+
object({
|
|
22182
|
+
kind: literal("latest-recognition"),
|
|
22183
|
+
recognition: _enum(["person", "plate"])
|
|
21998
22184
|
})
|
|
21999
22185
|
]);
|
|
22000
22186
|
var OsdSlotBindingSchema = object({
|
|
@@ -22100,6 +22286,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22100
22286
|
}), object({ success: literal(true) }), {
|
|
22101
22287
|
kind: "mutation",
|
|
22102
22288
|
auth: "admin"
|
|
22289
|
+
}), method(object({
|
|
22290
|
+
sourceDeviceId: number().int(),
|
|
22291
|
+
targetDeviceId: number().int()
|
|
22292
|
+
}), object({
|
|
22293
|
+
copied: number().int().nonnegative(),
|
|
22294
|
+
skipped: number().int().nonnegative()
|
|
22295
|
+
}), {
|
|
22296
|
+
kind: "mutation",
|
|
22297
|
+
auth: "admin"
|
|
22103
22298
|
}), method(object({
|
|
22104
22299
|
deviceId: number().int(),
|
|
22105
22300
|
slotId: string().min(1),
|
|
@@ -22985,13 +23180,19 @@ method(object({
|
|
|
22985
23180
|
}), {
|
|
22986
23181
|
kind: "mutation",
|
|
22987
23182
|
auth: "admin"
|
|
22988
|
-
}), method(
|
|
23183
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
22989
23184
|
kind: "mutation",
|
|
22990
23185
|
auth: "admin"
|
|
22991
|
-
}), method(object({
|
|
22992
|
-
kind: "
|
|
23186
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23187
|
+
kind: "mutation",
|
|
22993
23188
|
auth: "admin"
|
|
22994
|
-
}), method(
|
|
23189
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23190
|
+
kind: "mutation",
|
|
23191
|
+
auth: "admin"
|
|
23192
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23193
|
+
kind: "mutation",
|
|
23194
|
+
auth: "admin"
|
|
23195
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
22995
23196
|
kind: "mutation",
|
|
22996
23197
|
auth: "admin"
|
|
22997
23198
|
});
|
|
@@ -27113,6 +27314,12 @@ Object.freeze({
|
|
|
27113
27314
|
addonId: null,
|
|
27114
27315
|
access: "delete"
|
|
27115
27316
|
},
|
|
27317
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27318
|
+
capName: "osd-manager",
|
|
27319
|
+
capScope: "system",
|
|
27320
|
+
addonId: null,
|
|
27321
|
+
access: "create"
|
|
27322
|
+
},
|
|
27116
27323
|
"osdManager.getConditionSupport": {
|
|
27117
27324
|
capName: "osd-manager",
|
|
27118
27325
|
capScope: "system",
|
|
@@ -27209,7 +27416,7 @@ Object.freeze({
|
|
|
27209
27416
|
addonId: null,
|
|
27210
27417
|
access: "create"
|
|
27211
27418
|
},
|
|
27212
|
-
"pipelineAnalytics.
|
|
27419
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27213
27420
|
capName: "pipeline-analytics",
|
|
27214
27421
|
capScope: "device",
|
|
27215
27422
|
addonId: null,
|
|
@@ -27281,12 +27488,6 @@ Object.freeze({
|
|
|
27281
27488
|
addonId: null,
|
|
27282
27489
|
access: "view"
|
|
27283
27490
|
},
|
|
27284
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27285
|
-
capName: "pipeline-analytics",
|
|
27286
|
-
capScope: "device",
|
|
27287
|
-
addonId: null,
|
|
27288
|
-
access: "view"
|
|
27289
|
-
},
|
|
27290
27491
|
"pipelineAnalytics.getMotionEvents": {
|
|
27291
27492
|
capName: "pipeline-analytics",
|
|
27292
27493
|
capScope: "device",
|
|
@@ -27323,6 +27524,12 @@ Object.freeze({
|
|
|
27323
27524
|
addonId: null,
|
|
27324
27525
|
access: "view"
|
|
27325
27526
|
},
|
|
27527
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27528
|
+
capName: "pipeline-analytics",
|
|
27529
|
+
capScope: "device",
|
|
27530
|
+
addonId: null,
|
|
27531
|
+
access: "view"
|
|
27532
|
+
},
|
|
27326
27533
|
"pipelineAnalytics.getTrack": {
|
|
27327
27534
|
capName: "pipeline-analytics",
|
|
27328
27535
|
capScope: "device",
|
|
@@ -27401,6 +27608,12 @@ Object.freeze({
|
|
|
27401
27608
|
addonId: null,
|
|
27402
27609
|
access: "view"
|
|
27403
27610
|
},
|
|
27611
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27612
|
+
capName: "pipeline-analytics",
|
|
27613
|
+
capScope: "device",
|
|
27614
|
+
addonId: null,
|
|
27615
|
+
access: "create"
|
|
27616
|
+
},
|
|
27404
27617
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27405
27618
|
capName: "pipeline-analytics",
|
|
27406
27619
|
capScope: "device",
|
|
@@ -27431,7 +27644,7 @@ Object.freeze({
|
|
|
27431
27644
|
addonId: null,
|
|
27432
27645
|
access: "create"
|
|
27433
27646
|
},
|
|
27434
|
-
"pipelineAnalytics.
|
|
27647
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27435
27648
|
capName: "pipeline-analytics",
|
|
27436
27649
|
capScope: "device",
|
|
27437
27650
|
addonId: null,
|
|
@@ -27443,6 +27656,12 @@ Object.freeze({
|
|
|
27443
27656
|
addonId: null,
|
|
27444
27657
|
access: "create"
|
|
27445
27658
|
},
|
|
27659
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27660
|
+
capName: "pipeline-analytics",
|
|
27661
|
+
capScope: "device",
|
|
27662
|
+
addonId: null,
|
|
27663
|
+
access: "create"
|
|
27664
|
+
},
|
|
27446
27665
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27447
27666
|
capName: "pipeline-analytics",
|
|
27448
27667
|
capScope: "device",
|
|
@@ -27467,6 +27686,12 @@ Object.freeze({
|
|
|
27467
27686
|
addonId: null,
|
|
27468
27687
|
access: "create"
|
|
27469
27688
|
},
|
|
27689
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27690
|
+
capName: "pipeline-analytics",
|
|
27691
|
+
capScope: "device",
|
|
27692
|
+
addonId: null,
|
|
27693
|
+
access: "create"
|
|
27694
|
+
},
|
|
27470
27695
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27471
27696
|
capName: "pipeline-analytics",
|
|
27472
27697
|
capScope: "device",
|
|
@@ -27833,6 +28058,12 @@ Object.freeze({
|
|
|
27833
28058
|
addonId: null,
|
|
27834
28059
|
access: "view"
|
|
27835
28060
|
},
|
|
28061
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28062
|
+
capName: "pipeline-orchestrator",
|
|
28063
|
+
capScope: "system",
|
|
28064
|
+
addonId: null,
|
|
28065
|
+
access: "create"
|
|
28066
|
+
},
|
|
27836
28067
|
"pipelineOrchestrator.rebalance": {
|
|
27837
28068
|
capName: "pipeline-orchestrator",
|
|
27838
28069
|
capScope: "system",
|
|
@@ -27857,6 +28088,12 @@ Object.freeze({
|
|
|
27857
28088
|
addonId: null,
|
|
27858
28089
|
access: "view"
|
|
27859
28090
|
},
|
|
28091
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28092
|
+
capName: "pipeline-orchestrator",
|
|
28093
|
+
capScope: "system",
|
|
28094
|
+
addonId: null,
|
|
28095
|
+
access: "create"
|
|
28096
|
+
},
|
|
27860
28097
|
"pipelineOrchestrator.saveTemplate": {
|
|
27861
28098
|
capName: "pipeline-orchestrator",
|
|
27862
28099
|
capScope: "system",
|
|
@@ -28253,7 +28490,7 @@ Object.freeze({
|
|
|
28253
28490
|
addonId: null,
|
|
28254
28491
|
access: "create"
|
|
28255
28492
|
},
|
|
28256
|
-
"recording.
|
|
28493
|
+
"recording.cancelStorageMigrationMove": {
|
|
28257
28494
|
capName: "recording",
|
|
28258
28495
|
capScope: "system",
|
|
28259
28496
|
addonId: null,
|
|
@@ -28289,7 +28526,7 @@ Object.freeze({
|
|
|
28289
28526
|
addonId: null,
|
|
28290
28527
|
access: "view"
|
|
28291
28528
|
},
|
|
28292
|
-
"recording.
|
|
28529
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28293
28530
|
capName: "recording",
|
|
28294
28531
|
capScope: "system",
|
|
28295
28532
|
addonId: null,
|
|
@@ -28313,6 +28550,12 @@ Object.freeze({
|
|
|
28313
28550
|
addonId: null,
|
|
28314
28551
|
access: "view"
|
|
28315
28552
|
},
|
|
28553
|
+
"recording.pauseForStorageMigration": {
|
|
28554
|
+
capName: "recording",
|
|
28555
|
+
capScope: "system",
|
|
28556
|
+
addonId: null,
|
|
28557
|
+
access: "create"
|
|
28558
|
+
},
|
|
28316
28559
|
"recording.pruneFootage": {
|
|
28317
28560
|
capName: "recording",
|
|
28318
28561
|
capScope: "system",
|
|
@@ -28331,7 +28574,7 @@ Object.freeze({
|
|
|
28331
28574
|
addonId: null,
|
|
28332
28575
|
access: "view"
|
|
28333
28576
|
},
|
|
28334
|
-
"recording.
|
|
28577
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28335
28578
|
capName: "recording",
|
|
28336
28579
|
capScope: "system",
|
|
28337
28580
|
addonId: null,
|
|
@@ -28355,12 +28598,24 @@ Object.freeze({
|
|
|
28355
28598
|
addonId: null,
|
|
28356
28599
|
access: "create"
|
|
28357
28600
|
},
|
|
28601
|
+
"recording.resumeForStorageMigration": {
|
|
28602
|
+
capName: "recording",
|
|
28603
|
+
capScope: "system",
|
|
28604
|
+
addonId: null,
|
|
28605
|
+
access: "create"
|
|
28606
|
+
},
|
|
28358
28607
|
"recording.setDeviceConfig": {
|
|
28359
28608
|
capName: "recording",
|
|
28360
28609
|
capScope: "system",
|
|
28361
28610
|
addonId: null,
|
|
28362
28611
|
access: "create"
|
|
28363
28612
|
},
|
|
28613
|
+
"recording.startStorageMigrationMove": {
|
|
28614
|
+
capName: "recording",
|
|
28615
|
+
capScope: "system",
|
|
28616
|
+
addonId: null,
|
|
28617
|
+
access: "create"
|
|
28618
|
+
},
|
|
28364
28619
|
"recordingExport.cancelExport": {
|
|
28365
28620
|
capName: "recordingExport",
|
|
28366
28621
|
capScope: "system",
|
|
@@ -28751,6 +29006,30 @@ Object.freeze({
|
|
|
28751
29006
|
addonId: null,
|
|
28752
29007
|
access: "view"
|
|
28753
29008
|
},
|
|
29009
|
+
"storageMigration.cancel": {
|
|
29010
|
+
capName: "storage-migration",
|
|
29011
|
+
capScope: "system",
|
|
29012
|
+
addonId: null,
|
|
29013
|
+
access: "create"
|
|
29014
|
+
},
|
|
29015
|
+
"storageMigration.plan": {
|
|
29016
|
+
capName: "storage-migration",
|
|
29017
|
+
capScope: "system",
|
|
29018
|
+
addonId: null,
|
|
29019
|
+
access: "view"
|
|
29020
|
+
},
|
|
29021
|
+
"storageMigration.start": {
|
|
29022
|
+
capName: "storage-migration",
|
|
29023
|
+
capScope: "system",
|
|
29024
|
+
addonId: null,
|
|
29025
|
+
access: "create"
|
|
29026
|
+
},
|
|
29027
|
+
"storageMigration.status": {
|
|
29028
|
+
capName: "storage-migration",
|
|
29029
|
+
capScope: "system",
|
|
29030
|
+
addonId: null,
|
|
29031
|
+
access: "view"
|
|
29032
|
+
},
|
|
28754
29033
|
"storageProvider.abortUpload": {
|
|
28755
29034
|
capName: "storage-provider",
|
|
28756
29035
|
capScope: "system",
|
|
@@ -29129,12 +29408,42 @@ Object.freeze({
|
|
|
29129
29408
|
addonId: null,
|
|
29130
29409
|
access: "create"
|
|
29131
29410
|
},
|
|
29411
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29412
|
+
capName: "terminal-session",
|
|
29413
|
+
capScope: "system",
|
|
29414
|
+
addonId: null,
|
|
29415
|
+
access: "create"
|
|
29416
|
+
},
|
|
29132
29417
|
"terminalSession.close": {
|
|
29133
29418
|
capName: "terminal-session",
|
|
29134
29419
|
capScope: "system",
|
|
29135
29420
|
addonId: null,
|
|
29136
29421
|
access: "create"
|
|
29137
29422
|
},
|
|
29423
|
+
"terminalSession.createInstance": {
|
|
29424
|
+
capName: "terminal-session",
|
|
29425
|
+
capScope: "system",
|
|
29426
|
+
addonId: null,
|
|
29427
|
+
access: "create"
|
|
29428
|
+
},
|
|
29429
|
+
"terminalSession.deleteInstance": {
|
|
29430
|
+
capName: "terminal-session",
|
|
29431
|
+
capScope: "system",
|
|
29432
|
+
addonId: null,
|
|
29433
|
+
access: "delete"
|
|
29434
|
+
},
|
|
29435
|
+
"terminalSession.listInstances": {
|
|
29436
|
+
capName: "terminal-session",
|
|
29437
|
+
capScope: "system",
|
|
29438
|
+
addonId: null,
|
|
29439
|
+
access: "view"
|
|
29440
|
+
},
|
|
29441
|
+
"terminalSession.listLegacyCameras": {
|
|
29442
|
+
capName: "terminal-session",
|
|
29443
|
+
capScope: "system",
|
|
29444
|
+
addonId: null,
|
|
29445
|
+
access: "view"
|
|
29446
|
+
},
|
|
29138
29447
|
"terminalSession.listProfiles": {
|
|
29139
29448
|
capName: "terminal-session",
|
|
29140
29449
|
capScope: "system",
|
|
@@ -29153,12 +29462,30 @@ Object.freeze({
|
|
|
29153
29462
|
addonId: null,
|
|
29154
29463
|
access: "create"
|
|
29155
29464
|
},
|
|
29465
|
+
"terminalSession.pullOutput": {
|
|
29466
|
+
capName: "terminal-session",
|
|
29467
|
+
capScope: "system",
|
|
29468
|
+
addonId: null,
|
|
29469
|
+
access: "create"
|
|
29470
|
+
},
|
|
29156
29471
|
"terminalSession.resize": {
|
|
29157
29472
|
capName: "terminal-session",
|
|
29158
29473
|
capScope: "system",
|
|
29159
29474
|
addonId: null,
|
|
29160
29475
|
access: "create"
|
|
29161
29476
|
},
|
|
29477
|
+
"terminalSession.setInstanceEnabled": {
|
|
29478
|
+
capName: "terminal-session",
|
|
29479
|
+
capScope: "system",
|
|
29480
|
+
addonId: null,
|
|
29481
|
+
access: "create"
|
|
29482
|
+
},
|
|
29483
|
+
"terminalSession.writeInput": {
|
|
29484
|
+
capName: "terminal-session",
|
|
29485
|
+
capScope: "system",
|
|
29486
|
+
addonId: null,
|
|
29487
|
+
access: "create"
|
|
29488
|
+
},
|
|
29162
29489
|
"toast.onToast": {
|
|
29163
29490
|
capName: "toast",
|
|
29164
29491
|
capScope: "system",
|
|
@@ -7534,12 +7534,11 @@ var RecordingConfigSchema = object({
|
|
|
7534
7534
|
/**
|
|
7535
7535
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7536
7536
|
*
|
|
7537
|
-
* One shape shared by the recorder
|
|
7538
|
-
*
|
|
7539
|
-
*
|
|
7540
|
-
*
|
|
7541
|
-
*
|
|
7542
|
-
* row on the owning addon's surface.
|
|
7537
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7538
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7539
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7540
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7541
|
+
* addon surface.
|
|
7543
7542
|
*/
|
|
7544
7543
|
var RelocateJobStateSchema = _enum([
|
|
7545
7544
|
"running",
|
|
@@ -7566,19 +7565,100 @@ var RelocateJobSchema = object({
|
|
|
7566
7565
|
finishedAt: number().nullable(),
|
|
7567
7566
|
error: string().nullable()
|
|
7568
7567
|
});
|
|
7568
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7569
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7570
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7569
7571
|
var RelocateFootageInputSchema = object({
|
|
7570
|
-
deviceId: number().optional(),
|
|
7571
7572
|
fromLocationId: string(),
|
|
7572
7573
|
toLocationId: string(),
|
|
7573
7574
|
entities: array(_enum(["segments"])).optional(),
|
|
7575
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7576
|
+
* pre-orchestration compatibility path. */
|
|
7577
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7574
7578
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7575
7579
|
* never allowed to starve live writers. */
|
|
7576
7580
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7577
7581
|
});
|
|
7578
|
-
|
|
7579
|
-
|
|
7582
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7583
|
+
* from persistent recording settings: a migration never changes
|
|
7584
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7585
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7586
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7587
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7580
7588
|
toLocationId: string(),
|
|
7581
7589
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7590
|
+
}).extend({ leaseId: string().min(1) });
|
|
7591
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7592
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7593
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7594
|
+
var StorageMigrationClassSchema = _enum([
|
|
7595
|
+
"recordings",
|
|
7596
|
+
"recordingsLow",
|
|
7597
|
+
"eventMedia"
|
|
7598
|
+
]);
|
|
7599
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7600
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7601
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7602
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7603
|
+
recordings: string().min(1).optional(),
|
|
7604
|
+
recordingsLow: string().min(1).optional(),
|
|
7605
|
+
eventMedia: string().min(1).optional()
|
|
7606
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7607
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7608
|
+
var StorageMigrationInputSchema = object({
|
|
7609
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7610
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7611
|
+
});
|
|
7612
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7613
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7614
|
+
* verified. */
|
|
7615
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7616
|
+
"planning",
|
|
7617
|
+
"pausing",
|
|
7618
|
+
"moving",
|
|
7619
|
+
"verifying",
|
|
7620
|
+
"repointing",
|
|
7621
|
+
"refreshing",
|
|
7622
|
+
"resuming",
|
|
7623
|
+
"done",
|
|
7624
|
+
"failed",
|
|
7625
|
+
"cancelled"
|
|
7626
|
+
]);
|
|
7627
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7628
|
+
"pipeline",
|
|
7629
|
+
"recorder",
|
|
7630
|
+
"analytics"
|
|
7631
|
+
]);
|
|
7632
|
+
var StorageMigrationMoveSchema = object({
|
|
7633
|
+
storageClass: StorageMigrationClassSchema,
|
|
7634
|
+
fromLocationId: string(),
|
|
7635
|
+
toLocationId: string(),
|
|
7636
|
+
moverJobId: string().nullable(),
|
|
7637
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7638
|
+
error: string().nullable()
|
|
7639
|
+
});
|
|
7640
|
+
var StorageMigrationJobSchema = object({
|
|
7641
|
+
jobId: string(),
|
|
7642
|
+
phase: StorageMigrationPhaseSchema,
|
|
7643
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7644
|
+
throttleMbps: number(),
|
|
7645
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7646
|
+
pauseLeaseId: string().nullable(),
|
|
7647
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7648
|
+
repointed: boolean(),
|
|
7649
|
+
cancelRequested: boolean(),
|
|
7650
|
+
startedAt: number(),
|
|
7651
|
+
updatedAt: number(),
|
|
7652
|
+
finishedAt: number().nullable(),
|
|
7653
|
+
error: string().nullable()
|
|
7654
|
+
});
|
|
7655
|
+
var StorageMigrationPlanSchema = object({
|
|
7656
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7657
|
+
moves: array(object({
|
|
7658
|
+
storageClass: StorageMigrationClassSchema,
|
|
7659
|
+
fromLocationId: string(),
|
|
7660
|
+
toLocationId: string()
|
|
7661
|
+
}))
|
|
7582
7662
|
});
|
|
7583
7663
|
/**
|
|
7584
7664
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15954,13 +16034,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15954
16034
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15955
16035
|
kind: "mutation",
|
|
15956
16036
|
auth: "admin"
|
|
15957
|
-
}), method(
|
|
16037
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15958
16038
|
kind: "mutation",
|
|
15959
16039
|
auth: "admin"
|
|
15960
|
-
}), method(object({
|
|
15961
|
-
kind: "
|
|
16040
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16041
|
+
kind: "mutation",
|
|
15962
16042
|
auth: "admin"
|
|
15963
|
-
}), method(
|
|
16043
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16044
|
+
kind: "mutation",
|
|
16045
|
+
auth: "admin"
|
|
16046
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16047
|
+
kind: "mutation",
|
|
16048
|
+
auth: "admin"
|
|
16049
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
15964
16050
|
kind: "mutation",
|
|
15965
16051
|
auth: "admin"
|
|
15966
16052
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17457,7 +17543,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17457
17543
|
reachable: boolean(),
|
|
17458
17544
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17459
17545
|
});
|
|
17460
|
-
method(object({
|
|
17546
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17547
|
+
kind: "mutation",
|
|
17548
|
+
auth: "admin"
|
|
17549
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17550
|
+
kind: "mutation",
|
|
17551
|
+
auth: "admin"
|
|
17552
|
+
}), method(object({
|
|
17461
17553
|
deviceId: number(),
|
|
17462
17554
|
agentNodeId: string()
|
|
17463
17555
|
}), object({ success: literal(true) }), {
|
|
@@ -18131,6 +18223,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18131
18223
|
locationId: string(),
|
|
18132
18224
|
targetBytes: number().int().positive()
|
|
18133
18225
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18226
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18227
|
+
kind: "mutation",
|
|
18228
|
+
auth: "admin"
|
|
18229
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18230
|
+
kind: "mutation",
|
|
18231
|
+
auth: "admin"
|
|
18232
|
+
});
|
|
18134
18233
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18135
18234
|
providerId: string().min(1),
|
|
18136
18235
|
displayName: string().min(1),
|
|
@@ -18234,7 +18333,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18234
18333
|
label: string(),
|
|
18235
18334
|
description: string().optional()
|
|
18236
18335
|
});
|
|
18237
|
-
|
|
18336
|
+
/**
|
|
18337
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18338
|
+
* an instance declares a camera.
|
|
18339
|
+
*/
|
|
18340
|
+
var TerminalInstanceInfoSchema = object({
|
|
18341
|
+
instanceId: string(),
|
|
18342
|
+
cameraStableId: string(),
|
|
18343
|
+
nodeId: string(),
|
|
18344
|
+
profileId: string(),
|
|
18345
|
+
profileLabel: string(),
|
|
18346
|
+
name: string(),
|
|
18347
|
+
enabled: boolean()
|
|
18348
|
+
});
|
|
18349
|
+
var TerminalLegacyCameraSchema = object({
|
|
18350
|
+
stableId: string(),
|
|
18351
|
+
nodeId: string(),
|
|
18352
|
+
profileId: string(),
|
|
18353
|
+
profileLabel: string(),
|
|
18354
|
+
name: string(),
|
|
18355
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18356
|
+
adoptable: boolean()
|
|
18357
|
+
});
|
|
18358
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18359
|
+
seq: number().int().positive(),
|
|
18360
|
+
kind: literal("data"),
|
|
18361
|
+
data: string()
|
|
18362
|
+
}), object({
|
|
18363
|
+
seq: number().int().positive(),
|
|
18364
|
+
kind: literal("exit"),
|
|
18365
|
+
exitCode: number().int(),
|
|
18366
|
+
signal: number().int().optional()
|
|
18367
|
+
})]);
|
|
18368
|
+
var TerminalOutputBatchSchema = object({
|
|
18369
|
+
cursor: number().int().nonnegative(),
|
|
18370
|
+
reset: boolean(),
|
|
18371
|
+
snapshot: string().optional(),
|
|
18372
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18373
|
+
});
|
|
18374
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18375
|
+
targetNodeId: string().min(1),
|
|
18376
|
+
profileId: string().min(1),
|
|
18377
|
+
name: string().trim().min(1).max(160).optional()
|
|
18378
|
+
}), TerminalInstanceInfoSchema, {
|
|
18379
|
+
kind: "mutation",
|
|
18380
|
+
auth: "admin"
|
|
18381
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18382
|
+
kind: "mutation",
|
|
18383
|
+
auth: "admin"
|
|
18384
|
+
}), method(object({
|
|
18385
|
+
instanceId: string().min(1),
|
|
18386
|
+
enabled: boolean()
|
|
18387
|
+
}), TerminalInstanceInfoSchema, {
|
|
18388
|
+
kind: "mutation",
|
|
18389
|
+
auth: "admin"
|
|
18390
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18391
|
+
stableId: string().min(1),
|
|
18392
|
+
name: string().trim().min(1).max(160).optional()
|
|
18393
|
+
}), TerminalInstanceInfoSchema, {
|
|
18394
|
+
kind: "mutation",
|
|
18395
|
+
auth: "admin"
|
|
18396
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18238
18397
|
profileId: string(),
|
|
18239
18398
|
cols: number().int().positive(),
|
|
18240
18399
|
rows: number().int().positive()
|
|
@@ -18248,6 +18407,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18248
18407
|
}), _void(), {
|
|
18249
18408
|
kind: "mutation",
|
|
18250
18409
|
auth: "admin"
|
|
18410
|
+
}), method(object({
|
|
18411
|
+
sessionId: string(),
|
|
18412
|
+
afterSeq: number().int().nonnegative(),
|
|
18413
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18414
|
+
/**
|
|
18415
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18416
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18417
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18418
|
+
*/
|
|
18419
|
+
waitForOutput: boolean().optional()
|
|
18420
|
+
}), TerminalOutputBatchSchema, {
|
|
18421
|
+
kind: "mutation",
|
|
18422
|
+
auth: "admin",
|
|
18423
|
+
timeoutMs: 15e3
|
|
18424
|
+
}), method(object({
|
|
18425
|
+
sessionId: string(),
|
|
18426
|
+
data: string().max(64 * 1024)
|
|
18427
|
+
}), _void(), {
|
|
18428
|
+
kind: "mutation",
|
|
18429
|
+
auth: "admin"
|
|
18251
18430
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18252
18431
|
kind: "mutation",
|
|
18253
18432
|
auth: "admin"
|
|
@@ -20201,6 +20380,7 @@ var FaceInfoSchema = object({
|
|
|
20201
20380
|
var FaceFilterEnum = _enum([
|
|
20202
20381
|
"unassigned",
|
|
20203
20382
|
"recognized",
|
|
20383
|
+
"identified",
|
|
20204
20384
|
"all"
|
|
20205
20385
|
]);
|
|
20206
20386
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20229,6 +20409,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20229
20409
|
kind: "mutation",
|
|
20230
20410
|
auth: "admin"
|
|
20231
20411
|
}), method(object({
|
|
20412
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20413
|
+
deviceId: number().int().optional(),
|
|
20232
20414
|
limit: number().int().positive().optional(),
|
|
20233
20415
|
filter: FaceFilterEnum.optional(),
|
|
20234
20416
|
/**
|
|
@@ -21994,6 +22176,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
21994
22176
|
capName: string().min(1).max(64),
|
|
21995
22177
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
21996
22178
|
valuePath: string().min(1).max(64)
|
|
22179
|
+
}),
|
|
22180
|
+
object({
|
|
22181
|
+
kind: literal("latest-recognition"),
|
|
22182
|
+
recognition: _enum(["person", "plate"])
|
|
21997
22183
|
})
|
|
21998
22184
|
]);
|
|
21999
22185
|
var OsdSlotBindingSchema = object({
|
|
@@ -22099,6 +22285,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22099
22285
|
}), object({ success: literal(true) }), {
|
|
22100
22286
|
kind: "mutation",
|
|
22101
22287
|
auth: "admin"
|
|
22288
|
+
}), method(object({
|
|
22289
|
+
sourceDeviceId: number().int(),
|
|
22290
|
+
targetDeviceId: number().int()
|
|
22291
|
+
}), object({
|
|
22292
|
+
copied: number().int().nonnegative(),
|
|
22293
|
+
skipped: number().int().nonnegative()
|
|
22294
|
+
}), {
|
|
22295
|
+
kind: "mutation",
|
|
22296
|
+
auth: "admin"
|
|
22102
22297
|
}), method(object({
|
|
22103
22298
|
deviceId: number().int(),
|
|
22104
22299
|
slotId: string().min(1),
|
|
@@ -22984,13 +23179,19 @@ method(object({
|
|
|
22984
23179
|
}), {
|
|
22985
23180
|
kind: "mutation",
|
|
22986
23181
|
auth: "admin"
|
|
22987
|
-
}), method(
|
|
23182
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
22988
23183
|
kind: "mutation",
|
|
22989
23184
|
auth: "admin"
|
|
22990
|
-
}), method(object({
|
|
22991
|
-
kind: "
|
|
23185
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23186
|
+
kind: "mutation",
|
|
22992
23187
|
auth: "admin"
|
|
22993
|
-
}), method(
|
|
23188
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23189
|
+
kind: "mutation",
|
|
23190
|
+
auth: "admin"
|
|
23191
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23192
|
+
kind: "mutation",
|
|
23193
|
+
auth: "admin"
|
|
23194
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
22994
23195
|
kind: "mutation",
|
|
22995
23196
|
auth: "admin"
|
|
22996
23197
|
});
|
|
@@ -27112,6 +27313,12 @@ Object.freeze({
|
|
|
27112
27313
|
addonId: null,
|
|
27113
27314
|
access: "delete"
|
|
27114
27315
|
},
|
|
27316
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27317
|
+
capName: "osd-manager",
|
|
27318
|
+
capScope: "system",
|
|
27319
|
+
addonId: null,
|
|
27320
|
+
access: "create"
|
|
27321
|
+
},
|
|
27115
27322
|
"osdManager.getConditionSupport": {
|
|
27116
27323
|
capName: "osd-manager",
|
|
27117
27324
|
capScope: "system",
|
|
@@ -27208,7 +27415,7 @@ Object.freeze({
|
|
|
27208
27415
|
addonId: null,
|
|
27209
27416
|
access: "create"
|
|
27210
27417
|
},
|
|
27211
|
-
"pipelineAnalytics.
|
|
27418
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27212
27419
|
capName: "pipeline-analytics",
|
|
27213
27420
|
capScope: "device",
|
|
27214
27421
|
addonId: null,
|
|
@@ -27280,12 +27487,6 @@ Object.freeze({
|
|
|
27280
27487
|
addonId: null,
|
|
27281
27488
|
access: "view"
|
|
27282
27489
|
},
|
|
27283
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27284
|
-
capName: "pipeline-analytics",
|
|
27285
|
-
capScope: "device",
|
|
27286
|
-
addonId: null,
|
|
27287
|
-
access: "view"
|
|
27288
|
-
},
|
|
27289
27490
|
"pipelineAnalytics.getMotionEvents": {
|
|
27290
27491
|
capName: "pipeline-analytics",
|
|
27291
27492
|
capScope: "device",
|
|
@@ -27322,6 +27523,12 @@ Object.freeze({
|
|
|
27322
27523
|
addonId: null,
|
|
27323
27524
|
access: "view"
|
|
27324
27525
|
},
|
|
27526
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27527
|
+
capName: "pipeline-analytics",
|
|
27528
|
+
capScope: "device",
|
|
27529
|
+
addonId: null,
|
|
27530
|
+
access: "view"
|
|
27531
|
+
},
|
|
27325
27532
|
"pipelineAnalytics.getTrack": {
|
|
27326
27533
|
capName: "pipeline-analytics",
|
|
27327
27534
|
capScope: "device",
|
|
@@ -27400,6 +27607,12 @@ Object.freeze({
|
|
|
27400
27607
|
addonId: null,
|
|
27401
27608
|
access: "view"
|
|
27402
27609
|
},
|
|
27610
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27611
|
+
capName: "pipeline-analytics",
|
|
27612
|
+
capScope: "device",
|
|
27613
|
+
addonId: null,
|
|
27614
|
+
access: "create"
|
|
27615
|
+
},
|
|
27403
27616
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27404
27617
|
capName: "pipeline-analytics",
|
|
27405
27618
|
capScope: "device",
|
|
@@ -27430,7 +27643,7 @@ Object.freeze({
|
|
|
27430
27643
|
addonId: null,
|
|
27431
27644
|
access: "create"
|
|
27432
27645
|
},
|
|
27433
|
-
"pipelineAnalytics.
|
|
27646
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27434
27647
|
capName: "pipeline-analytics",
|
|
27435
27648
|
capScope: "device",
|
|
27436
27649
|
addonId: null,
|
|
@@ -27442,6 +27655,12 @@ Object.freeze({
|
|
|
27442
27655
|
addonId: null,
|
|
27443
27656
|
access: "create"
|
|
27444
27657
|
},
|
|
27658
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27659
|
+
capName: "pipeline-analytics",
|
|
27660
|
+
capScope: "device",
|
|
27661
|
+
addonId: null,
|
|
27662
|
+
access: "create"
|
|
27663
|
+
},
|
|
27445
27664
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27446
27665
|
capName: "pipeline-analytics",
|
|
27447
27666
|
capScope: "device",
|
|
@@ -27466,6 +27685,12 @@ Object.freeze({
|
|
|
27466
27685
|
addonId: null,
|
|
27467
27686
|
access: "create"
|
|
27468
27687
|
},
|
|
27688
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27689
|
+
capName: "pipeline-analytics",
|
|
27690
|
+
capScope: "device",
|
|
27691
|
+
addonId: null,
|
|
27692
|
+
access: "create"
|
|
27693
|
+
},
|
|
27469
27694
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27470
27695
|
capName: "pipeline-analytics",
|
|
27471
27696
|
capScope: "device",
|
|
@@ -27832,6 +28057,12 @@ Object.freeze({
|
|
|
27832
28057
|
addonId: null,
|
|
27833
28058
|
access: "view"
|
|
27834
28059
|
},
|
|
28060
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28061
|
+
capName: "pipeline-orchestrator",
|
|
28062
|
+
capScope: "system",
|
|
28063
|
+
addonId: null,
|
|
28064
|
+
access: "create"
|
|
28065
|
+
},
|
|
27835
28066
|
"pipelineOrchestrator.rebalance": {
|
|
27836
28067
|
capName: "pipeline-orchestrator",
|
|
27837
28068
|
capScope: "system",
|
|
@@ -27856,6 +28087,12 @@ Object.freeze({
|
|
|
27856
28087
|
addonId: null,
|
|
27857
28088
|
access: "view"
|
|
27858
28089
|
},
|
|
28090
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28091
|
+
capName: "pipeline-orchestrator",
|
|
28092
|
+
capScope: "system",
|
|
28093
|
+
addonId: null,
|
|
28094
|
+
access: "create"
|
|
28095
|
+
},
|
|
27859
28096
|
"pipelineOrchestrator.saveTemplate": {
|
|
27860
28097
|
capName: "pipeline-orchestrator",
|
|
27861
28098
|
capScope: "system",
|
|
@@ -28252,7 +28489,7 @@ Object.freeze({
|
|
|
28252
28489
|
addonId: null,
|
|
28253
28490
|
access: "create"
|
|
28254
28491
|
},
|
|
28255
|
-
"recording.
|
|
28492
|
+
"recording.cancelStorageMigrationMove": {
|
|
28256
28493
|
capName: "recording",
|
|
28257
28494
|
capScope: "system",
|
|
28258
28495
|
addonId: null,
|
|
@@ -28288,7 +28525,7 @@ Object.freeze({
|
|
|
28288
28525
|
addonId: null,
|
|
28289
28526
|
access: "view"
|
|
28290
28527
|
},
|
|
28291
|
-
"recording.
|
|
28528
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28292
28529
|
capName: "recording",
|
|
28293
28530
|
capScope: "system",
|
|
28294
28531
|
addonId: null,
|
|
@@ -28312,6 +28549,12 @@ Object.freeze({
|
|
|
28312
28549
|
addonId: null,
|
|
28313
28550
|
access: "view"
|
|
28314
28551
|
},
|
|
28552
|
+
"recording.pauseForStorageMigration": {
|
|
28553
|
+
capName: "recording",
|
|
28554
|
+
capScope: "system",
|
|
28555
|
+
addonId: null,
|
|
28556
|
+
access: "create"
|
|
28557
|
+
},
|
|
28315
28558
|
"recording.pruneFootage": {
|
|
28316
28559
|
capName: "recording",
|
|
28317
28560
|
capScope: "system",
|
|
@@ -28330,7 +28573,7 @@ Object.freeze({
|
|
|
28330
28573
|
addonId: null,
|
|
28331
28574
|
access: "view"
|
|
28332
28575
|
},
|
|
28333
|
-
"recording.
|
|
28576
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28334
28577
|
capName: "recording",
|
|
28335
28578
|
capScope: "system",
|
|
28336
28579
|
addonId: null,
|
|
@@ -28354,12 +28597,24 @@ Object.freeze({
|
|
|
28354
28597
|
addonId: null,
|
|
28355
28598
|
access: "create"
|
|
28356
28599
|
},
|
|
28600
|
+
"recording.resumeForStorageMigration": {
|
|
28601
|
+
capName: "recording",
|
|
28602
|
+
capScope: "system",
|
|
28603
|
+
addonId: null,
|
|
28604
|
+
access: "create"
|
|
28605
|
+
},
|
|
28357
28606
|
"recording.setDeviceConfig": {
|
|
28358
28607
|
capName: "recording",
|
|
28359
28608
|
capScope: "system",
|
|
28360
28609
|
addonId: null,
|
|
28361
28610
|
access: "create"
|
|
28362
28611
|
},
|
|
28612
|
+
"recording.startStorageMigrationMove": {
|
|
28613
|
+
capName: "recording",
|
|
28614
|
+
capScope: "system",
|
|
28615
|
+
addonId: null,
|
|
28616
|
+
access: "create"
|
|
28617
|
+
},
|
|
28363
28618
|
"recordingExport.cancelExport": {
|
|
28364
28619
|
capName: "recordingExport",
|
|
28365
28620
|
capScope: "system",
|
|
@@ -28750,6 +29005,30 @@ Object.freeze({
|
|
|
28750
29005
|
addonId: null,
|
|
28751
29006
|
access: "view"
|
|
28752
29007
|
},
|
|
29008
|
+
"storageMigration.cancel": {
|
|
29009
|
+
capName: "storage-migration",
|
|
29010
|
+
capScope: "system",
|
|
29011
|
+
addonId: null,
|
|
29012
|
+
access: "create"
|
|
29013
|
+
},
|
|
29014
|
+
"storageMigration.plan": {
|
|
29015
|
+
capName: "storage-migration",
|
|
29016
|
+
capScope: "system",
|
|
29017
|
+
addonId: null,
|
|
29018
|
+
access: "view"
|
|
29019
|
+
},
|
|
29020
|
+
"storageMigration.start": {
|
|
29021
|
+
capName: "storage-migration",
|
|
29022
|
+
capScope: "system",
|
|
29023
|
+
addonId: null,
|
|
29024
|
+
access: "create"
|
|
29025
|
+
},
|
|
29026
|
+
"storageMigration.status": {
|
|
29027
|
+
capName: "storage-migration",
|
|
29028
|
+
capScope: "system",
|
|
29029
|
+
addonId: null,
|
|
29030
|
+
access: "view"
|
|
29031
|
+
},
|
|
28753
29032
|
"storageProvider.abortUpload": {
|
|
28754
29033
|
capName: "storage-provider",
|
|
28755
29034
|
capScope: "system",
|
|
@@ -29128,12 +29407,42 @@ Object.freeze({
|
|
|
29128
29407
|
addonId: null,
|
|
29129
29408
|
access: "create"
|
|
29130
29409
|
},
|
|
29410
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29411
|
+
capName: "terminal-session",
|
|
29412
|
+
capScope: "system",
|
|
29413
|
+
addonId: null,
|
|
29414
|
+
access: "create"
|
|
29415
|
+
},
|
|
29131
29416
|
"terminalSession.close": {
|
|
29132
29417
|
capName: "terminal-session",
|
|
29133
29418
|
capScope: "system",
|
|
29134
29419
|
addonId: null,
|
|
29135
29420
|
access: "create"
|
|
29136
29421
|
},
|
|
29422
|
+
"terminalSession.createInstance": {
|
|
29423
|
+
capName: "terminal-session",
|
|
29424
|
+
capScope: "system",
|
|
29425
|
+
addonId: null,
|
|
29426
|
+
access: "create"
|
|
29427
|
+
},
|
|
29428
|
+
"terminalSession.deleteInstance": {
|
|
29429
|
+
capName: "terminal-session",
|
|
29430
|
+
capScope: "system",
|
|
29431
|
+
addonId: null,
|
|
29432
|
+
access: "delete"
|
|
29433
|
+
},
|
|
29434
|
+
"terminalSession.listInstances": {
|
|
29435
|
+
capName: "terminal-session",
|
|
29436
|
+
capScope: "system",
|
|
29437
|
+
addonId: null,
|
|
29438
|
+
access: "view"
|
|
29439
|
+
},
|
|
29440
|
+
"terminalSession.listLegacyCameras": {
|
|
29441
|
+
capName: "terminal-session",
|
|
29442
|
+
capScope: "system",
|
|
29443
|
+
addonId: null,
|
|
29444
|
+
access: "view"
|
|
29445
|
+
},
|
|
29137
29446
|
"terminalSession.listProfiles": {
|
|
29138
29447
|
capName: "terminal-session",
|
|
29139
29448
|
capScope: "system",
|
|
@@ -29152,12 +29461,30 @@ Object.freeze({
|
|
|
29152
29461
|
addonId: null,
|
|
29153
29462
|
access: "create"
|
|
29154
29463
|
},
|
|
29464
|
+
"terminalSession.pullOutput": {
|
|
29465
|
+
capName: "terminal-session",
|
|
29466
|
+
capScope: "system",
|
|
29467
|
+
addonId: null,
|
|
29468
|
+
access: "create"
|
|
29469
|
+
},
|
|
29155
29470
|
"terminalSession.resize": {
|
|
29156
29471
|
capName: "terminal-session",
|
|
29157
29472
|
capScope: "system",
|
|
29158
29473
|
addonId: null,
|
|
29159
29474
|
access: "create"
|
|
29160
29475
|
},
|
|
29476
|
+
"terminalSession.setInstanceEnabled": {
|
|
29477
|
+
capName: "terminal-session",
|
|
29478
|
+
capScope: "system",
|
|
29479
|
+
addonId: null,
|
|
29480
|
+
access: "create"
|
|
29481
|
+
},
|
|
29482
|
+
"terminalSession.writeInput": {
|
|
29483
|
+
capName: "terminal-session",
|
|
29484
|
+
capScope: "system",
|
|
29485
|
+
addonId: null,
|
|
29486
|
+
access: "create"
|
|
29487
|
+
},
|
|
29161
29488
|
"toast.onToast": {
|
|
29162
29489
|
capName: "toast",
|
|
29163
29490
|
capScope: "system",
|