@camstack/addon-mqtt-broker 1.2.11 → 1.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/mqtt-broker.addon.js +357 -30
- package/dist/mqtt-broker.addon.mjs +357 -30
- package/package.json +1 -1
|
@@ -7580,12 +7580,11 @@ var RecordingConfigSchema = object({
|
|
|
7580
7580
|
/**
|
|
7581
7581
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7582
7582
|
*
|
|
7583
|
-
* One shape shared by the recorder
|
|
7584
|
-
*
|
|
7585
|
-
*
|
|
7586
|
-
*
|
|
7587
|
-
*
|
|
7588
|
-
* row on the owning addon's surface.
|
|
7583
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7584
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7585
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7586
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7587
|
+
* addon surface.
|
|
7589
7588
|
*/
|
|
7590
7589
|
var RelocateJobStateSchema = _enum([
|
|
7591
7590
|
"running",
|
|
@@ -7612,19 +7611,100 @@ var RelocateJobSchema = object({
|
|
|
7612
7611
|
finishedAt: number().nullable(),
|
|
7613
7612
|
error: string().nullable()
|
|
7614
7613
|
});
|
|
7614
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7615
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7616
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7615
7617
|
var RelocateFootageInputSchema = object({
|
|
7616
|
-
deviceId: number().optional(),
|
|
7617
7618
|
fromLocationId: string(),
|
|
7618
7619
|
toLocationId: string(),
|
|
7619
7620
|
entities: array(_enum(["segments"])).optional(),
|
|
7621
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7622
|
+
* pre-orchestration compatibility path. */
|
|
7623
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7620
7624
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7621
7625
|
* never allowed to starve live writers. */
|
|
7622
7626
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7623
7627
|
});
|
|
7624
|
-
|
|
7625
|
-
|
|
7628
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7629
|
+
* from persistent recording settings: a migration never changes
|
|
7630
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7631
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7632
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7633
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7626
7634
|
toLocationId: string(),
|
|
7627
7635
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7636
|
+
}).extend({ leaseId: string().min(1) });
|
|
7637
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7638
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7639
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7640
|
+
var StorageMigrationClassSchema = _enum([
|
|
7641
|
+
"recordings",
|
|
7642
|
+
"recordingsLow",
|
|
7643
|
+
"eventMedia"
|
|
7644
|
+
]);
|
|
7645
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7646
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7647
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7648
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7649
|
+
recordings: string().min(1).optional(),
|
|
7650
|
+
recordingsLow: string().min(1).optional(),
|
|
7651
|
+
eventMedia: string().min(1).optional()
|
|
7652
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7653
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7654
|
+
var StorageMigrationInputSchema = object({
|
|
7655
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7656
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7657
|
+
});
|
|
7658
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7659
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7660
|
+
* verified. */
|
|
7661
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7662
|
+
"planning",
|
|
7663
|
+
"pausing",
|
|
7664
|
+
"moving",
|
|
7665
|
+
"verifying",
|
|
7666
|
+
"repointing",
|
|
7667
|
+
"refreshing",
|
|
7668
|
+
"resuming",
|
|
7669
|
+
"done",
|
|
7670
|
+
"failed",
|
|
7671
|
+
"cancelled"
|
|
7672
|
+
]);
|
|
7673
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7674
|
+
"pipeline",
|
|
7675
|
+
"recorder",
|
|
7676
|
+
"analytics"
|
|
7677
|
+
]);
|
|
7678
|
+
var StorageMigrationMoveSchema = object({
|
|
7679
|
+
storageClass: StorageMigrationClassSchema,
|
|
7680
|
+
fromLocationId: string(),
|
|
7681
|
+
toLocationId: string(),
|
|
7682
|
+
moverJobId: string().nullable(),
|
|
7683
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7684
|
+
error: string().nullable()
|
|
7685
|
+
});
|
|
7686
|
+
var StorageMigrationJobSchema = object({
|
|
7687
|
+
jobId: string(),
|
|
7688
|
+
phase: StorageMigrationPhaseSchema,
|
|
7689
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7690
|
+
throttleMbps: number(),
|
|
7691
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7692
|
+
pauseLeaseId: string().nullable(),
|
|
7693
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7694
|
+
repointed: boolean(),
|
|
7695
|
+
cancelRequested: boolean(),
|
|
7696
|
+
startedAt: number(),
|
|
7697
|
+
updatedAt: number(),
|
|
7698
|
+
finishedAt: number().nullable(),
|
|
7699
|
+
error: string().nullable()
|
|
7700
|
+
});
|
|
7701
|
+
var StorageMigrationPlanSchema = object({
|
|
7702
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7703
|
+
moves: array(object({
|
|
7704
|
+
storageClass: StorageMigrationClassSchema,
|
|
7705
|
+
fromLocationId: string(),
|
|
7706
|
+
toLocationId: string()
|
|
7707
|
+
}))
|
|
7628
7708
|
});
|
|
7629
7709
|
/**
|
|
7630
7710
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16068,13 +16148,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16068
16148
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16069
16149
|
kind: "mutation",
|
|
16070
16150
|
auth: "admin"
|
|
16071
|
-
}), method(
|
|
16151
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16072
16152
|
kind: "mutation",
|
|
16073
16153
|
auth: "admin"
|
|
16074
|
-
}), method(object({
|
|
16075
|
-
kind: "
|
|
16154
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16155
|
+
kind: "mutation",
|
|
16076
16156
|
auth: "admin"
|
|
16077
|
-
}), method(
|
|
16157
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16158
|
+
kind: "mutation",
|
|
16159
|
+
auth: "admin"
|
|
16160
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16161
|
+
kind: "mutation",
|
|
16162
|
+
auth: "admin"
|
|
16163
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16078
16164
|
kind: "mutation",
|
|
16079
16165
|
auth: "admin"
|
|
16080
16166
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17571,7 +17657,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17571
17657
|
reachable: boolean(),
|
|
17572
17658
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17573
17659
|
});
|
|
17574
|
-
method(object({
|
|
17660
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17661
|
+
kind: "mutation",
|
|
17662
|
+
auth: "admin"
|
|
17663
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17664
|
+
kind: "mutation",
|
|
17665
|
+
auth: "admin"
|
|
17666
|
+
}), method(object({
|
|
17575
17667
|
deviceId: number(),
|
|
17576
17668
|
agentNodeId: string()
|
|
17577
17669
|
}), object({ success: literal(true) }), {
|
|
@@ -18245,6 +18337,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18245
18337
|
locationId: string(),
|
|
18246
18338
|
targetBytes: number().int().positive()
|
|
18247
18339
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18340
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18341
|
+
kind: "mutation",
|
|
18342
|
+
auth: "admin"
|
|
18343
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18344
|
+
kind: "mutation",
|
|
18345
|
+
auth: "admin"
|
|
18346
|
+
});
|
|
18248
18347
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18249
18348
|
providerId: string().min(1),
|
|
18250
18349
|
displayName: string().min(1),
|
|
@@ -18348,7 +18447,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18348
18447
|
label: string(),
|
|
18349
18448
|
description: string().optional()
|
|
18350
18449
|
});
|
|
18351
|
-
|
|
18450
|
+
/**
|
|
18451
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18452
|
+
* an instance declares a camera.
|
|
18453
|
+
*/
|
|
18454
|
+
var TerminalInstanceInfoSchema = object({
|
|
18455
|
+
instanceId: string(),
|
|
18456
|
+
cameraStableId: string(),
|
|
18457
|
+
nodeId: string(),
|
|
18458
|
+
profileId: string(),
|
|
18459
|
+
profileLabel: string(),
|
|
18460
|
+
name: string(),
|
|
18461
|
+
enabled: boolean()
|
|
18462
|
+
});
|
|
18463
|
+
var TerminalLegacyCameraSchema = object({
|
|
18464
|
+
stableId: string(),
|
|
18465
|
+
nodeId: string(),
|
|
18466
|
+
profileId: string(),
|
|
18467
|
+
profileLabel: string(),
|
|
18468
|
+
name: string(),
|
|
18469
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18470
|
+
adoptable: boolean()
|
|
18471
|
+
});
|
|
18472
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18473
|
+
seq: number().int().positive(),
|
|
18474
|
+
kind: literal("data"),
|
|
18475
|
+
data: string()
|
|
18476
|
+
}), object({
|
|
18477
|
+
seq: number().int().positive(),
|
|
18478
|
+
kind: literal("exit"),
|
|
18479
|
+
exitCode: number().int(),
|
|
18480
|
+
signal: number().int().optional()
|
|
18481
|
+
})]);
|
|
18482
|
+
var TerminalOutputBatchSchema = object({
|
|
18483
|
+
cursor: number().int().nonnegative(),
|
|
18484
|
+
reset: boolean(),
|
|
18485
|
+
snapshot: string().optional(),
|
|
18486
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18487
|
+
});
|
|
18488
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18489
|
+
targetNodeId: string().min(1),
|
|
18490
|
+
profileId: string().min(1),
|
|
18491
|
+
name: string().trim().min(1).max(160).optional()
|
|
18492
|
+
}), TerminalInstanceInfoSchema, {
|
|
18493
|
+
kind: "mutation",
|
|
18494
|
+
auth: "admin"
|
|
18495
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18496
|
+
kind: "mutation",
|
|
18497
|
+
auth: "admin"
|
|
18498
|
+
}), method(object({
|
|
18499
|
+
instanceId: string().min(1),
|
|
18500
|
+
enabled: boolean()
|
|
18501
|
+
}), TerminalInstanceInfoSchema, {
|
|
18502
|
+
kind: "mutation",
|
|
18503
|
+
auth: "admin"
|
|
18504
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18505
|
+
stableId: string().min(1),
|
|
18506
|
+
name: string().trim().min(1).max(160).optional()
|
|
18507
|
+
}), TerminalInstanceInfoSchema, {
|
|
18508
|
+
kind: "mutation",
|
|
18509
|
+
auth: "admin"
|
|
18510
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18352
18511
|
profileId: string(),
|
|
18353
18512
|
cols: number().int().positive(),
|
|
18354
18513
|
rows: number().int().positive()
|
|
@@ -18362,6 +18521,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18362
18521
|
}), _void(), {
|
|
18363
18522
|
kind: "mutation",
|
|
18364
18523
|
auth: "admin"
|
|
18524
|
+
}), method(object({
|
|
18525
|
+
sessionId: string(),
|
|
18526
|
+
afterSeq: number().int().nonnegative(),
|
|
18527
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18528
|
+
/**
|
|
18529
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18530
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18531
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18532
|
+
*/
|
|
18533
|
+
waitForOutput: boolean().optional()
|
|
18534
|
+
}), TerminalOutputBatchSchema, {
|
|
18535
|
+
kind: "mutation",
|
|
18536
|
+
auth: "admin",
|
|
18537
|
+
timeoutMs: 15e3
|
|
18538
|
+
}), method(object({
|
|
18539
|
+
sessionId: string(),
|
|
18540
|
+
data: string().max(64 * 1024)
|
|
18541
|
+
}), _void(), {
|
|
18542
|
+
kind: "mutation",
|
|
18543
|
+
auth: "admin"
|
|
18365
18544
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18366
18545
|
kind: "mutation",
|
|
18367
18546
|
auth: "admin"
|
|
@@ -20292,6 +20471,7 @@ var FaceInfoSchema = object({
|
|
|
20292
20471
|
var FaceFilterEnum = _enum([
|
|
20293
20472
|
"unassigned",
|
|
20294
20473
|
"recognized",
|
|
20474
|
+
"identified",
|
|
20295
20475
|
"all"
|
|
20296
20476
|
]);
|
|
20297
20477
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20320,6 +20500,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20320
20500
|
kind: "mutation",
|
|
20321
20501
|
auth: "admin"
|
|
20322
20502
|
}), method(object({
|
|
20503
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20504
|
+
deviceId: number().int().optional(),
|
|
20323
20505
|
limit: number().int().positive().optional(),
|
|
20324
20506
|
filter: FaceFilterEnum.optional(),
|
|
20325
20507
|
/**
|
|
@@ -22085,6 +22267,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22085
22267
|
capName: string().min(1).max(64),
|
|
22086
22268
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22087
22269
|
valuePath: string().min(1).max(64)
|
|
22270
|
+
}),
|
|
22271
|
+
object({
|
|
22272
|
+
kind: literal("latest-recognition"),
|
|
22273
|
+
recognition: _enum(["person", "plate"])
|
|
22088
22274
|
})
|
|
22089
22275
|
]);
|
|
22090
22276
|
var OsdSlotBindingSchema = object({
|
|
@@ -22190,6 +22376,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22190
22376
|
}), object({ success: literal(true) }), {
|
|
22191
22377
|
kind: "mutation",
|
|
22192
22378
|
auth: "admin"
|
|
22379
|
+
}), method(object({
|
|
22380
|
+
sourceDeviceId: number().int(),
|
|
22381
|
+
targetDeviceId: number().int()
|
|
22382
|
+
}), object({
|
|
22383
|
+
copied: number().int().nonnegative(),
|
|
22384
|
+
skipped: number().int().nonnegative()
|
|
22385
|
+
}), {
|
|
22386
|
+
kind: "mutation",
|
|
22387
|
+
auth: "admin"
|
|
22193
22388
|
}), method(object({
|
|
22194
22389
|
deviceId: number().int(),
|
|
22195
22390
|
slotId: string().min(1),
|
|
@@ -23075,13 +23270,19 @@ method(object({
|
|
|
23075
23270
|
}), {
|
|
23076
23271
|
kind: "mutation",
|
|
23077
23272
|
auth: "admin"
|
|
23078
|
-
}), method(
|
|
23273
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23079
23274
|
kind: "mutation",
|
|
23080
23275
|
auth: "admin"
|
|
23081
|
-
}), method(object({
|
|
23082
|
-
kind: "
|
|
23276
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23277
|
+
kind: "mutation",
|
|
23083
23278
|
auth: "admin"
|
|
23084
|
-
}), method(
|
|
23279
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23280
|
+
kind: "mutation",
|
|
23281
|
+
auth: "admin"
|
|
23282
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23283
|
+
kind: "mutation",
|
|
23284
|
+
auth: "admin"
|
|
23285
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23085
23286
|
kind: "mutation",
|
|
23086
23287
|
auth: "admin"
|
|
23087
23288
|
});
|
|
@@ -27203,6 +27404,12 @@ Object.freeze({
|
|
|
27203
27404
|
addonId: null,
|
|
27204
27405
|
access: "delete"
|
|
27205
27406
|
},
|
|
27407
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27408
|
+
capName: "osd-manager",
|
|
27409
|
+
capScope: "system",
|
|
27410
|
+
addonId: null,
|
|
27411
|
+
access: "create"
|
|
27412
|
+
},
|
|
27206
27413
|
"osdManager.getConditionSupport": {
|
|
27207
27414
|
capName: "osd-manager",
|
|
27208
27415
|
capScope: "system",
|
|
@@ -27299,7 +27506,7 @@ Object.freeze({
|
|
|
27299
27506
|
addonId: null,
|
|
27300
27507
|
access: "create"
|
|
27301
27508
|
},
|
|
27302
|
-
"pipelineAnalytics.
|
|
27509
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27303
27510
|
capName: "pipeline-analytics",
|
|
27304
27511
|
capScope: "device",
|
|
27305
27512
|
addonId: null,
|
|
@@ -27371,12 +27578,6 @@ Object.freeze({
|
|
|
27371
27578
|
addonId: null,
|
|
27372
27579
|
access: "view"
|
|
27373
27580
|
},
|
|
27374
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27375
|
-
capName: "pipeline-analytics",
|
|
27376
|
-
capScope: "device",
|
|
27377
|
-
addonId: null,
|
|
27378
|
-
access: "view"
|
|
27379
|
-
},
|
|
27380
27581
|
"pipelineAnalytics.getMotionEvents": {
|
|
27381
27582
|
capName: "pipeline-analytics",
|
|
27382
27583
|
capScope: "device",
|
|
@@ -27413,6 +27614,12 @@ Object.freeze({
|
|
|
27413
27614
|
addonId: null,
|
|
27414
27615
|
access: "view"
|
|
27415
27616
|
},
|
|
27617
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27618
|
+
capName: "pipeline-analytics",
|
|
27619
|
+
capScope: "device",
|
|
27620
|
+
addonId: null,
|
|
27621
|
+
access: "view"
|
|
27622
|
+
},
|
|
27416
27623
|
"pipelineAnalytics.getTrack": {
|
|
27417
27624
|
capName: "pipeline-analytics",
|
|
27418
27625
|
capScope: "device",
|
|
@@ -27491,6 +27698,12 @@ Object.freeze({
|
|
|
27491
27698
|
addonId: null,
|
|
27492
27699
|
access: "view"
|
|
27493
27700
|
},
|
|
27701
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27702
|
+
capName: "pipeline-analytics",
|
|
27703
|
+
capScope: "device",
|
|
27704
|
+
addonId: null,
|
|
27705
|
+
access: "create"
|
|
27706
|
+
},
|
|
27494
27707
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27495
27708
|
capName: "pipeline-analytics",
|
|
27496
27709
|
capScope: "device",
|
|
@@ -27521,7 +27734,7 @@ Object.freeze({
|
|
|
27521
27734
|
addonId: null,
|
|
27522
27735
|
access: "create"
|
|
27523
27736
|
},
|
|
27524
|
-
"pipelineAnalytics.
|
|
27737
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27525
27738
|
capName: "pipeline-analytics",
|
|
27526
27739
|
capScope: "device",
|
|
27527
27740
|
addonId: null,
|
|
@@ -27533,6 +27746,12 @@ Object.freeze({
|
|
|
27533
27746
|
addonId: null,
|
|
27534
27747
|
access: "create"
|
|
27535
27748
|
},
|
|
27749
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27750
|
+
capName: "pipeline-analytics",
|
|
27751
|
+
capScope: "device",
|
|
27752
|
+
addonId: null,
|
|
27753
|
+
access: "create"
|
|
27754
|
+
},
|
|
27536
27755
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27537
27756
|
capName: "pipeline-analytics",
|
|
27538
27757
|
capScope: "device",
|
|
@@ -27557,6 +27776,12 @@ Object.freeze({
|
|
|
27557
27776
|
addonId: null,
|
|
27558
27777
|
access: "create"
|
|
27559
27778
|
},
|
|
27779
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27780
|
+
capName: "pipeline-analytics",
|
|
27781
|
+
capScope: "device",
|
|
27782
|
+
addonId: null,
|
|
27783
|
+
access: "create"
|
|
27784
|
+
},
|
|
27560
27785
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27561
27786
|
capName: "pipeline-analytics",
|
|
27562
27787
|
capScope: "device",
|
|
@@ -27923,6 +28148,12 @@ Object.freeze({
|
|
|
27923
28148
|
addonId: null,
|
|
27924
28149
|
access: "view"
|
|
27925
28150
|
},
|
|
28151
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28152
|
+
capName: "pipeline-orchestrator",
|
|
28153
|
+
capScope: "system",
|
|
28154
|
+
addonId: null,
|
|
28155
|
+
access: "create"
|
|
28156
|
+
},
|
|
27926
28157
|
"pipelineOrchestrator.rebalance": {
|
|
27927
28158
|
capName: "pipeline-orchestrator",
|
|
27928
28159
|
capScope: "system",
|
|
@@ -27947,6 +28178,12 @@ Object.freeze({
|
|
|
27947
28178
|
addonId: null,
|
|
27948
28179
|
access: "view"
|
|
27949
28180
|
},
|
|
28181
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28182
|
+
capName: "pipeline-orchestrator",
|
|
28183
|
+
capScope: "system",
|
|
28184
|
+
addonId: null,
|
|
28185
|
+
access: "create"
|
|
28186
|
+
},
|
|
27950
28187
|
"pipelineOrchestrator.saveTemplate": {
|
|
27951
28188
|
capName: "pipeline-orchestrator",
|
|
27952
28189
|
capScope: "system",
|
|
@@ -28343,7 +28580,7 @@ Object.freeze({
|
|
|
28343
28580
|
addonId: null,
|
|
28344
28581
|
access: "create"
|
|
28345
28582
|
},
|
|
28346
|
-
"recording.
|
|
28583
|
+
"recording.cancelStorageMigrationMove": {
|
|
28347
28584
|
capName: "recording",
|
|
28348
28585
|
capScope: "system",
|
|
28349
28586
|
addonId: null,
|
|
@@ -28379,7 +28616,7 @@ Object.freeze({
|
|
|
28379
28616
|
addonId: null,
|
|
28380
28617
|
access: "view"
|
|
28381
28618
|
},
|
|
28382
|
-
"recording.
|
|
28619
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28383
28620
|
capName: "recording",
|
|
28384
28621
|
capScope: "system",
|
|
28385
28622
|
addonId: null,
|
|
@@ -28403,6 +28640,12 @@ Object.freeze({
|
|
|
28403
28640
|
addonId: null,
|
|
28404
28641
|
access: "view"
|
|
28405
28642
|
},
|
|
28643
|
+
"recording.pauseForStorageMigration": {
|
|
28644
|
+
capName: "recording",
|
|
28645
|
+
capScope: "system",
|
|
28646
|
+
addonId: null,
|
|
28647
|
+
access: "create"
|
|
28648
|
+
},
|
|
28406
28649
|
"recording.pruneFootage": {
|
|
28407
28650
|
capName: "recording",
|
|
28408
28651
|
capScope: "system",
|
|
@@ -28421,7 +28664,7 @@ Object.freeze({
|
|
|
28421
28664
|
addonId: null,
|
|
28422
28665
|
access: "view"
|
|
28423
28666
|
},
|
|
28424
|
-
"recording.
|
|
28667
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28425
28668
|
capName: "recording",
|
|
28426
28669
|
capScope: "system",
|
|
28427
28670
|
addonId: null,
|
|
@@ -28445,12 +28688,24 @@ Object.freeze({
|
|
|
28445
28688
|
addonId: null,
|
|
28446
28689
|
access: "create"
|
|
28447
28690
|
},
|
|
28691
|
+
"recording.resumeForStorageMigration": {
|
|
28692
|
+
capName: "recording",
|
|
28693
|
+
capScope: "system",
|
|
28694
|
+
addonId: null,
|
|
28695
|
+
access: "create"
|
|
28696
|
+
},
|
|
28448
28697
|
"recording.setDeviceConfig": {
|
|
28449
28698
|
capName: "recording",
|
|
28450
28699
|
capScope: "system",
|
|
28451
28700
|
addonId: null,
|
|
28452
28701
|
access: "create"
|
|
28453
28702
|
},
|
|
28703
|
+
"recording.startStorageMigrationMove": {
|
|
28704
|
+
capName: "recording",
|
|
28705
|
+
capScope: "system",
|
|
28706
|
+
addonId: null,
|
|
28707
|
+
access: "create"
|
|
28708
|
+
},
|
|
28454
28709
|
"recordingExport.cancelExport": {
|
|
28455
28710
|
capName: "recordingExport",
|
|
28456
28711
|
capScope: "system",
|
|
@@ -28841,6 +29096,30 @@ Object.freeze({
|
|
|
28841
29096
|
addonId: null,
|
|
28842
29097
|
access: "view"
|
|
28843
29098
|
},
|
|
29099
|
+
"storageMigration.cancel": {
|
|
29100
|
+
capName: "storage-migration",
|
|
29101
|
+
capScope: "system",
|
|
29102
|
+
addonId: null,
|
|
29103
|
+
access: "create"
|
|
29104
|
+
},
|
|
29105
|
+
"storageMigration.plan": {
|
|
29106
|
+
capName: "storage-migration",
|
|
29107
|
+
capScope: "system",
|
|
29108
|
+
addonId: null,
|
|
29109
|
+
access: "view"
|
|
29110
|
+
},
|
|
29111
|
+
"storageMigration.start": {
|
|
29112
|
+
capName: "storage-migration",
|
|
29113
|
+
capScope: "system",
|
|
29114
|
+
addonId: null,
|
|
29115
|
+
access: "create"
|
|
29116
|
+
},
|
|
29117
|
+
"storageMigration.status": {
|
|
29118
|
+
capName: "storage-migration",
|
|
29119
|
+
capScope: "system",
|
|
29120
|
+
addonId: null,
|
|
29121
|
+
access: "view"
|
|
29122
|
+
},
|
|
28844
29123
|
"storageProvider.abortUpload": {
|
|
28845
29124
|
capName: "storage-provider",
|
|
28846
29125
|
capScope: "system",
|
|
@@ -29219,12 +29498,42 @@ Object.freeze({
|
|
|
29219
29498
|
addonId: null,
|
|
29220
29499
|
access: "create"
|
|
29221
29500
|
},
|
|
29501
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29502
|
+
capName: "terminal-session",
|
|
29503
|
+
capScope: "system",
|
|
29504
|
+
addonId: null,
|
|
29505
|
+
access: "create"
|
|
29506
|
+
},
|
|
29222
29507
|
"terminalSession.close": {
|
|
29223
29508
|
capName: "terminal-session",
|
|
29224
29509
|
capScope: "system",
|
|
29225
29510
|
addonId: null,
|
|
29226
29511
|
access: "create"
|
|
29227
29512
|
},
|
|
29513
|
+
"terminalSession.createInstance": {
|
|
29514
|
+
capName: "terminal-session",
|
|
29515
|
+
capScope: "system",
|
|
29516
|
+
addonId: null,
|
|
29517
|
+
access: "create"
|
|
29518
|
+
},
|
|
29519
|
+
"terminalSession.deleteInstance": {
|
|
29520
|
+
capName: "terminal-session",
|
|
29521
|
+
capScope: "system",
|
|
29522
|
+
addonId: null,
|
|
29523
|
+
access: "delete"
|
|
29524
|
+
},
|
|
29525
|
+
"terminalSession.listInstances": {
|
|
29526
|
+
capName: "terminal-session",
|
|
29527
|
+
capScope: "system",
|
|
29528
|
+
addonId: null,
|
|
29529
|
+
access: "view"
|
|
29530
|
+
},
|
|
29531
|
+
"terminalSession.listLegacyCameras": {
|
|
29532
|
+
capName: "terminal-session",
|
|
29533
|
+
capScope: "system",
|
|
29534
|
+
addonId: null,
|
|
29535
|
+
access: "view"
|
|
29536
|
+
},
|
|
29228
29537
|
"terminalSession.listProfiles": {
|
|
29229
29538
|
capName: "terminal-session",
|
|
29230
29539
|
capScope: "system",
|
|
@@ -29243,12 +29552,30 @@ Object.freeze({
|
|
|
29243
29552
|
addonId: null,
|
|
29244
29553
|
access: "create"
|
|
29245
29554
|
},
|
|
29555
|
+
"terminalSession.pullOutput": {
|
|
29556
|
+
capName: "terminal-session",
|
|
29557
|
+
capScope: "system",
|
|
29558
|
+
addonId: null,
|
|
29559
|
+
access: "create"
|
|
29560
|
+
},
|
|
29246
29561
|
"terminalSession.resize": {
|
|
29247
29562
|
capName: "terminal-session",
|
|
29248
29563
|
capScope: "system",
|
|
29249
29564
|
addonId: null,
|
|
29250
29565
|
access: "create"
|
|
29251
29566
|
},
|
|
29567
|
+
"terminalSession.setInstanceEnabled": {
|
|
29568
|
+
capName: "terminal-session",
|
|
29569
|
+
capScope: "system",
|
|
29570
|
+
addonId: null,
|
|
29571
|
+
access: "create"
|
|
29572
|
+
},
|
|
29573
|
+
"terminalSession.writeInput": {
|
|
29574
|
+
capName: "terminal-session",
|
|
29575
|
+
capScope: "system",
|
|
29576
|
+
addonId: null,
|
|
29577
|
+
access: "create"
|
|
29578
|
+
},
|
|
29252
29579
|
"toast.onToast": {
|
|
29253
29580
|
capName: "toast",
|
|
29254
29581
|
capScope: "system",
|
|
@@ -7575,12 +7575,11 @@ var RecordingConfigSchema = object({
|
|
|
7575
7575
|
/**
|
|
7576
7576
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7577
7577
|
*
|
|
7578
|
-
* One shape shared by the recorder
|
|
7579
|
-
*
|
|
7580
|
-
*
|
|
7581
|
-
*
|
|
7582
|
-
*
|
|
7583
|
-
* row on the owning addon's surface.
|
|
7578
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7579
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7580
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7581
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7582
|
+
* addon surface.
|
|
7584
7583
|
*/
|
|
7585
7584
|
var RelocateJobStateSchema = _enum([
|
|
7586
7585
|
"running",
|
|
@@ -7607,19 +7606,100 @@ var RelocateJobSchema = object({
|
|
|
7607
7606
|
finishedAt: number().nullable(),
|
|
7608
7607
|
error: string().nullable()
|
|
7609
7608
|
});
|
|
7609
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7610
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7611
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7610
7612
|
var RelocateFootageInputSchema = object({
|
|
7611
|
-
deviceId: number().optional(),
|
|
7612
7613
|
fromLocationId: string(),
|
|
7613
7614
|
toLocationId: string(),
|
|
7614
7615
|
entities: array(_enum(["segments"])).optional(),
|
|
7616
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7617
|
+
* pre-orchestration compatibility path. */
|
|
7618
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7615
7619
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7616
7620
|
* never allowed to starve live writers. */
|
|
7617
7621
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7618
7622
|
});
|
|
7619
|
-
|
|
7620
|
-
|
|
7623
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7624
|
+
* from persistent recording settings: a migration never changes
|
|
7625
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7626
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7627
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7628
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7621
7629
|
toLocationId: string(),
|
|
7622
7630
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7631
|
+
}).extend({ leaseId: string().min(1) });
|
|
7632
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7633
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7634
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7635
|
+
var StorageMigrationClassSchema = _enum([
|
|
7636
|
+
"recordings",
|
|
7637
|
+
"recordingsLow",
|
|
7638
|
+
"eventMedia"
|
|
7639
|
+
]);
|
|
7640
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7641
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7642
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7643
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7644
|
+
recordings: string().min(1).optional(),
|
|
7645
|
+
recordingsLow: string().min(1).optional(),
|
|
7646
|
+
eventMedia: string().min(1).optional()
|
|
7647
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7648
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7649
|
+
var StorageMigrationInputSchema = object({
|
|
7650
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7651
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7652
|
+
});
|
|
7653
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7654
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7655
|
+
* verified. */
|
|
7656
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7657
|
+
"planning",
|
|
7658
|
+
"pausing",
|
|
7659
|
+
"moving",
|
|
7660
|
+
"verifying",
|
|
7661
|
+
"repointing",
|
|
7662
|
+
"refreshing",
|
|
7663
|
+
"resuming",
|
|
7664
|
+
"done",
|
|
7665
|
+
"failed",
|
|
7666
|
+
"cancelled"
|
|
7667
|
+
]);
|
|
7668
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7669
|
+
"pipeline",
|
|
7670
|
+
"recorder",
|
|
7671
|
+
"analytics"
|
|
7672
|
+
]);
|
|
7673
|
+
var StorageMigrationMoveSchema = object({
|
|
7674
|
+
storageClass: StorageMigrationClassSchema,
|
|
7675
|
+
fromLocationId: string(),
|
|
7676
|
+
toLocationId: string(),
|
|
7677
|
+
moverJobId: string().nullable(),
|
|
7678
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7679
|
+
error: string().nullable()
|
|
7680
|
+
});
|
|
7681
|
+
var StorageMigrationJobSchema = object({
|
|
7682
|
+
jobId: string(),
|
|
7683
|
+
phase: StorageMigrationPhaseSchema,
|
|
7684
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7685
|
+
throttleMbps: number(),
|
|
7686
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7687
|
+
pauseLeaseId: string().nullable(),
|
|
7688
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7689
|
+
repointed: boolean(),
|
|
7690
|
+
cancelRequested: boolean(),
|
|
7691
|
+
startedAt: number(),
|
|
7692
|
+
updatedAt: number(),
|
|
7693
|
+
finishedAt: number().nullable(),
|
|
7694
|
+
error: string().nullable()
|
|
7695
|
+
});
|
|
7696
|
+
var StorageMigrationPlanSchema = object({
|
|
7697
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7698
|
+
moves: array(object({
|
|
7699
|
+
storageClass: StorageMigrationClassSchema,
|
|
7700
|
+
fromLocationId: string(),
|
|
7701
|
+
toLocationId: string()
|
|
7702
|
+
}))
|
|
7623
7703
|
});
|
|
7624
7704
|
/**
|
|
7625
7705
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16063,13 +16143,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16063
16143
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16064
16144
|
kind: "mutation",
|
|
16065
16145
|
auth: "admin"
|
|
16066
|
-
}), method(
|
|
16146
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16067
16147
|
kind: "mutation",
|
|
16068
16148
|
auth: "admin"
|
|
16069
|
-
}), method(object({
|
|
16070
|
-
kind: "
|
|
16149
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16150
|
+
kind: "mutation",
|
|
16071
16151
|
auth: "admin"
|
|
16072
|
-
}), method(
|
|
16152
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16153
|
+
kind: "mutation",
|
|
16154
|
+
auth: "admin"
|
|
16155
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16156
|
+
kind: "mutation",
|
|
16157
|
+
auth: "admin"
|
|
16158
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16073
16159
|
kind: "mutation",
|
|
16074
16160
|
auth: "admin"
|
|
16075
16161
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17566,7 +17652,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17566
17652
|
reachable: boolean(),
|
|
17567
17653
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17568
17654
|
});
|
|
17569
|
-
method(object({
|
|
17655
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17656
|
+
kind: "mutation",
|
|
17657
|
+
auth: "admin"
|
|
17658
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17659
|
+
kind: "mutation",
|
|
17660
|
+
auth: "admin"
|
|
17661
|
+
}), method(object({
|
|
17570
17662
|
deviceId: number(),
|
|
17571
17663
|
agentNodeId: string()
|
|
17572
17664
|
}), object({ success: literal(true) }), {
|
|
@@ -18240,6 +18332,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18240
18332
|
locationId: string(),
|
|
18241
18333
|
targetBytes: number().int().positive()
|
|
18242
18334
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18335
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18336
|
+
kind: "mutation",
|
|
18337
|
+
auth: "admin"
|
|
18338
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18339
|
+
kind: "mutation",
|
|
18340
|
+
auth: "admin"
|
|
18341
|
+
});
|
|
18243
18342
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18244
18343
|
providerId: string().min(1),
|
|
18245
18344
|
displayName: string().min(1),
|
|
@@ -18343,7 +18442,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18343
18442
|
label: string(),
|
|
18344
18443
|
description: string().optional()
|
|
18345
18444
|
});
|
|
18346
|
-
|
|
18445
|
+
/**
|
|
18446
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18447
|
+
* an instance declares a camera.
|
|
18448
|
+
*/
|
|
18449
|
+
var TerminalInstanceInfoSchema = object({
|
|
18450
|
+
instanceId: string(),
|
|
18451
|
+
cameraStableId: string(),
|
|
18452
|
+
nodeId: string(),
|
|
18453
|
+
profileId: string(),
|
|
18454
|
+
profileLabel: string(),
|
|
18455
|
+
name: string(),
|
|
18456
|
+
enabled: boolean()
|
|
18457
|
+
});
|
|
18458
|
+
var TerminalLegacyCameraSchema = object({
|
|
18459
|
+
stableId: string(),
|
|
18460
|
+
nodeId: string(),
|
|
18461
|
+
profileId: string(),
|
|
18462
|
+
profileLabel: string(),
|
|
18463
|
+
name: string(),
|
|
18464
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18465
|
+
adoptable: boolean()
|
|
18466
|
+
});
|
|
18467
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18468
|
+
seq: number().int().positive(),
|
|
18469
|
+
kind: literal("data"),
|
|
18470
|
+
data: string()
|
|
18471
|
+
}), object({
|
|
18472
|
+
seq: number().int().positive(),
|
|
18473
|
+
kind: literal("exit"),
|
|
18474
|
+
exitCode: number().int(),
|
|
18475
|
+
signal: number().int().optional()
|
|
18476
|
+
})]);
|
|
18477
|
+
var TerminalOutputBatchSchema = object({
|
|
18478
|
+
cursor: number().int().nonnegative(),
|
|
18479
|
+
reset: boolean(),
|
|
18480
|
+
snapshot: string().optional(),
|
|
18481
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18482
|
+
});
|
|
18483
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18484
|
+
targetNodeId: string().min(1),
|
|
18485
|
+
profileId: string().min(1),
|
|
18486
|
+
name: string().trim().min(1).max(160).optional()
|
|
18487
|
+
}), TerminalInstanceInfoSchema, {
|
|
18488
|
+
kind: "mutation",
|
|
18489
|
+
auth: "admin"
|
|
18490
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18491
|
+
kind: "mutation",
|
|
18492
|
+
auth: "admin"
|
|
18493
|
+
}), method(object({
|
|
18494
|
+
instanceId: string().min(1),
|
|
18495
|
+
enabled: boolean()
|
|
18496
|
+
}), TerminalInstanceInfoSchema, {
|
|
18497
|
+
kind: "mutation",
|
|
18498
|
+
auth: "admin"
|
|
18499
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18500
|
+
stableId: string().min(1),
|
|
18501
|
+
name: string().trim().min(1).max(160).optional()
|
|
18502
|
+
}), TerminalInstanceInfoSchema, {
|
|
18503
|
+
kind: "mutation",
|
|
18504
|
+
auth: "admin"
|
|
18505
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18347
18506
|
profileId: string(),
|
|
18348
18507
|
cols: number().int().positive(),
|
|
18349
18508
|
rows: number().int().positive()
|
|
@@ -18357,6 +18516,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18357
18516
|
}), _void(), {
|
|
18358
18517
|
kind: "mutation",
|
|
18359
18518
|
auth: "admin"
|
|
18519
|
+
}), method(object({
|
|
18520
|
+
sessionId: string(),
|
|
18521
|
+
afterSeq: number().int().nonnegative(),
|
|
18522
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18523
|
+
/**
|
|
18524
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18525
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18526
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18527
|
+
*/
|
|
18528
|
+
waitForOutput: boolean().optional()
|
|
18529
|
+
}), TerminalOutputBatchSchema, {
|
|
18530
|
+
kind: "mutation",
|
|
18531
|
+
auth: "admin",
|
|
18532
|
+
timeoutMs: 15e3
|
|
18533
|
+
}), method(object({
|
|
18534
|
+
sessionId: string(),
|
|
18535
|
+
data: string().max(64 * 1024)
|
|
18536
|
+
}), _void(), {
|
|
18537
|
+
kind: "mutation",
|
|
18538
|
+
auth: "admin"
|
|
18360
18539
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18361
18540
|
kind: "mutation",
|
|
18362
18541
|
auth: "admin"
|
|
@@ -20287,6 +20466,7 @@ var FaceInfoSchema = object({
|
|
|
20287
20466
|
var FaceFilterEnum = _enum([
|
|
20288
20467
|
"unassigned",
|
|
20289
20468
|
"recognized",
|
|
20469
|
+
"identified",
|
|
20290
20470
|
"all"
|
|
20291
20471
|
]);
|
|
20292
20472
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20315,6 +20495,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20315
20495
|
kind: "mutation",
|
|
20316
20496
|
auth: "admin"
|
|
20317
20497
|
}), method(object({
|
|
20498
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20499
|
+
deviceId: number().int().optional(),
|
|
20318
20500
|
limit: number().int().positive().optional(),
|
|
20319
20501
|
filter: FaceFilterEnum.optional(),
|
|
20320
20502
|
/**
|
|
@@ -22080,6 +22262,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22080
22262
|
capName: string().min(1).max(64),
|
|
22081
22263
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22082
22264
|
valuePath: string().min(1).max(64)
|
|
22265
|
+
}),
|
|
22266
|
+
object({
|
|
22267
|
+
kind: literal("latest-recognition"),
|
|
22268
|
+
recognition: _enum(["person", "plate"])
|
|
22083
22269
|
})
|
|
22084
22270
|
]);
|
|
22085
22271
|
var OsdSlotBindingSchema = object({
|
|
@@ -22185,6 +22371,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22185
22371
|
}), object({ success: literal(true) }), {
|
|
22186
22372
|
kind: "mutation",
|
|
22187
22373
|
auth: "admin"
|
|
22374
|
+
}), method(object({
|
|
22375
|
+
sourceDeviceId: number().int(),
|
|
22376
|
+
targetDeviceId: number().int()
|
|
22377
|
+
}), object({
|
|
22378
|
+
copied: number().int().nonnegative(),
|
|
22379
|
+
skipped: number().int().nonnegative()
|
|
22380
|
+
}), {
|
|
22381
|
+
kind: "mutation",
|
|
22382
|
+
auth: "admin"
|
|
22188
22383
|
}), method(object({
|
|
22189
22384
|
deviceId: number().int(),
|
|
22190
22385
|
slotId: string().min(1),
|
|
@@ -23070,13 +23265,19 @@ method(object({
|
|
|
23070
23265
|
}), {
|
|
23071
23266
|
kind: "mutation",
|
|
23072
23267
|
auth: "admin"
|
|
23073
|
-
}), method(
|
|
23268
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23074
23269
|
kind: "mutation",
|
|
23075
23270
|
auth: "admin"
|
|
23076
|
-
}), method(object({
|
|
23077
|
-
kind: "
|
|
23271
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23272
|
+
kind: "mutation",
|
|
23078
23273
|
auth: "admin"
|
|
23079
|
-
}), method(
|
|
23274
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23275
|
+
kind: "mutation",
|
|
23276
|
+
auth: "admin"
|
|
23277
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23278
|
+
kind: "mutation",
|
|
23279
|
+
auth: "admin"
|
|
23280
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23080
23281
|
kind: "mutation",
|
|
23081
23282
|
auth: "admin"
|
|
23082
23283
|
});
|
|
@@ -27198,6 +27399,12 @@ Object.freeze({
|
|
|
27198
27399
|
addonId: null,
|
|
27199
27400
|
access: "delete"
|
|
27200
27401
|
},
|
|
27402
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27403
|
+
capName: "osd-manager",
|
|
27404
|
+
capScope: "system",
|
|
27405
|
+
addonId: null,
|
|
27406
|
+
access: "create"
|
|
27407
|
+
},
|
|
27201
27408
|
"osdManager.getConditionSupport": {
|
|
27202
27409
|
capName: "osd-manager",
|
|
27203
27410
|
capScope: "system",
|
|
@@ -27294,7 +27501,7 @@ Object.freeze({
|
|
|
27294
27501
|
addonId: null,
|
|
27295
27502
|
access: "create"
|
|
27296
27503
|
},
|
|
27297
|
-
"pipelineAnalytics.
|
|
27504
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27298
27505
|
capName: "pipeline-analytics",
|
|
27299
27506
|
capScope: "device",
|
|
27300
27507
|
addonId: null,
|
|
@@ -27366,12 +27573,6 @@ Object.freeze({
|
|
|
27366
27573
|
addonId: null,
|
|
27367
27574
|
access: "view"
|
|
27368
27575
|
},
|
|
27369
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27370
|
-
capName: "pipeline-analytics",
|
|
27371
|
-
capScope: "device",
|
|
27372
|
-
addonId: null,
|
|
27373
|
-
access: "view"
|
|
27374
|
-
},
|
|
27375
27576
|
"pipelineAnalytics.getMotionEvents": {
|
|
27376
27577
|
capName: "pipeline-analytics",
|
|
27377
27578
|
capScope: "device",
|
|
@@ -27408,6 +27609,12 @@ Object.freeze({
|
|
|
27408
27609
|
addonId: null,
|
|
27409
27610
|
access: "view"
|
|
27410
27611
|
},
|
|
27612
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27613
|
+
capName: "pipeline-analytics",
|
|
27614
|
+
capScope: "device",
|
|
27615
|
+
addonId: null,
|
|
27616
|
+
access: "view"
|
|
27617
|
+
},
|
|
27411
27618
|
"pipelineAnalytics.getTrack": {
|
|
27412
27619
|
capName: "pipeline-analytics",
|
|
27413
27620
|
capScope: "device",
|
|
@@ -27486,6 +27693,12 @@ Object.freeze({
|
|
|
27486
27693
|
addonId: null,
|
|
27487
27694
|
access: "view"
|
|
27488
27695
|
},
|
|
27696
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27697
|
+
capName: "pipeline-analytics",
|
|
27698
|
+
capScope: "device",
|
|
27699
|
+
addonId: null,
|
|
27700
|
+
access: "create"
|
|
27701
|
+
},
|
|
27489
27702
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27490
27703
|
capName: "pipeline-analytics",
|
|
27491
27704
|
capScope: "device",
|
|
@@ -27516,7 +27729,7 @@ Object.freeze({
|
|
|
27516
27729
|
addonId: null,
|
|
27517
27730
|
access: "create"
|
|
27518
27731
|
},
|
|
27519
|
-
"pipelineAnalytics.
|
|
27732
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27520
27733
|
capName: "pipeline-analytics",
|
|
27521
27734
|
capScope: "device",
|
|
27522
27735
|
addonId: null,
|
|
@@ -27528,6 +27741,12 @@ Object.freeze({
|
|
|
27528
27741
|
addonId: null,
|
|
27529
27742
|
access: "create"
|
|
27530
27743
|
},
|
|
27744
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27745
|
+
capName: "pipeline-analytics",
|
|
27746
|
+
capScope: "device",
|
|
27747
|
+
addonId: null,
|
|
27748
|
+
access: "create"
|
|
27749
|
+
},
|
|
27531
27750
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27532
27751
|
capName: "pipeline-analytics",
|
|
27533
27752
|
capScope: "device",
|
|
@@ -27552,6 +27771,12 @@ Object.freeze({
|
|
|
27552
27771
|
addonId: null,
|
|
27553
27772
|
access: "create"
|
|
27554
27773
|
},
|
|
27774
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27775
|
+
capName: "pipeline-analytics",
|
|
27776
|
+
capScope: "device",
|
|
27777
|
+
addonId: null,
|
|
27778
|
+
access: "create"
|
|
27779
|
+
},
|
|
27555
27780
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27556
27781
|
capName: "pipeline-analytics",
|
|
27557
27782
|
capScope: "device",
|
|
@@ -27918,6 +28143,12 @@ Object.freeze({
|
|
|
27918
28143
|
addonId: null,
|
|
27919
28144
|
access: "view"
|
|
27920
28145
|
},
|
|
28146
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28147
|
+
capName: "pipeline-orchestrator",
|
|
28148
|
+
capScope: "system",
|
|
28149
|
+
addonId: null,
|
|
28150
|
+
access: "create"
|
|
28151
|
+
},
|
|
27921
28152
|
"pipelineOrchestrator.rebalance": {
|
|
27922
28153
|
capName: "pipeline-orchestrator",
|
|
27923
28154
|
capScope: "system",
|
|
@@ -27942,6 +28173,12 @@ Object.freeze({
|
|
|
27942
28173
|
addonId: null,
|
|
27943
28174
|
access: "view"
|
|
27944
28175
|
},
|
|
28176
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28177
|
+
capName: "pipeline-orchestrator",
|
|
28178
|
+
capScope: "system",
|
|
28179
|
+
addonId: null,
|
|
28180
|
+
access: "create"
|
|
28181
|
+
},
|
|
27945
28182
|
"pipelineOrchestrator.saveTemplate": {
|
|
27946
28183
|
capName: "pipeline-orchestrator",
|
|
27947
28184
|
capScope: "system",
|
|
@@ -28338,7 +28575,7 @@ Object.freeze({
|
|
|
28338
28575
|
addonId: null,
|
|
28339
28576
|
access: "create"
|
|
28340
28577
|
},
|
|
28341
|
-
"recording.
|
|
28578
|
+
"recording.cancelStorageMigrationMove": {
|
|
28342
28579
|
capName: "recording",
|
|
28343
28580
|
capScope: "system",
|
|
28344
28581
|
addonId: null,
|
|
@@ -28374,7 +28611,7 @@ Object.freeze({
|
|
|
28374
28611
|
addonId: null,
|
|
28375
28612
|
access: "view"
|
|
28376
28613
|
},
|
|
28377
|
-
"recording.
|
|
28614
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28378
28615
|
capName: "recording",
|
|
28379
28616
|
capScope: "system",
|
|
28380
28617
|
addonId: null,
|
|
@@ -28398,6 +28635,12 @@ Object.freeze({
|
|
|
28398
28635
|
addonId: null,
|
|
28399
28636
|
access: "view"
|
|
28400
28637
|
},
|
|
28638
|
+
"recording.pauseForStorageMigration": {
|
|
28639
|
+
capName: "recording",
|
|
28640
|
+
capScope: "system",
|
|
28641
|
+
addonId: null,
|
|
28642
|
+
access: "create"
|
|
28643
|
+
},
|
|
28401
28644
|
"recording.pruneFootage": {
|
|
28402
28645
|
capName: "recording",
|
|
28403
28646
|
capScope: "system",
|
|
@@ -28416,7 +28659,7 @@ Object.freeze({
|
|
|
28416
28659
|
addonId: null,
|
|
28417
28660
|
access: "view"
|
|
28418
28661
|
},
|
|
28419
|
-
"recording.
|
|
28662
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28420
28663
|
capName: "recording",
|
|
28421
28664
|
capScope: "system",
|
|
28422
28665
|
addonId: null,
|
|
@@ -28440,12 +28683,24 @@ Object.freeze({
|
|
|
28440
28683
|
addonId: null,
|
|
28441
28684
|
access: "create"
|
|
28442
28685
|
},
|
|
28686
|
+
"recording.resumeForStorageMigration": {
|
|
28687
|
+
capName: "recording",
|
|
28688
|
+
capScope: "system",
|
|
28689
|
+
addonId: null,
|
|
28690
|
+
access: "create"
|
|
28691
|
+
},
|
|
28443
28692
|
"recording.setDeviceConfig": {
|
|
28444
28693
|
capName: "recording",
|
|
28445
28694
|
capScope: "system",
|
|
28446
28695
|
addonId: null,
|
|
28447
28696
|
access: "create"
|
|
28448
28697
|
},
|
|
28698
|
+
"recording.startStorageMigrationMove": {
|
|
28699
|
+
capName: "recording",
|
|
28700
|
+
capScope: "system",
|
|
28701
|
+
addonId: null,
|
|
28702
|
+
access: "create"
|
|
28703
|
+
},
|
|
28449
28704
|
"recordingExport.cancelExport": {
|
|
28450
28705
|
capName: "recordingExport",
|
|
28451
28706
|
capScope: "system",
|
|
@@ -28836,6 +29091,30 @@ Object.freeze({
|
|
|
28836
29091
|
addonId: null,
|
|
28837
29092
|
access: "view"
|
|
28838
29093
|
},
|
|
29094
|
+
"storageMigration.cancel": {
|
|
29095
|
+
capName: "storage-migration",
|
|
29096
|
+
capScope: "system",
|
|
29097
|
+
addonId: null,
|
|
29098
|
+
access: "create"
|
|
29099
|
+
},
|
|
29100
|
+
"storageMigration.plan": {
|
|
29101
|
+
capName: "storage-migration",
|
|
29102
|
+
capScope: "system",
|
|
29103
|
+
addonId: null,
|
|
29104
|
+
access: "view"
|
|
29105
|
+
},
|
|
29106
|
+
"storageMigration.start": {
|
|
29107
|
+
capName: "storage-migration",
|
|
29108
|
+
capScope: "system",
|
|
29109
|
+
addonId: null,
|
|
29110
|
+
access: "create"
|
|
29111
|
+
},
|
|
29112
|
+
"storageMigration.status": {
|
|
29113
|
+
capName: "storage-migration",
|
|
29114
|
+
capScope: "system",
|
|
29115
|
+
addonId: null,
|
|
29116
|
+
access: "view"
|
|
29117
|
+
},
|
|
28839
29118
|
"storageProvider.abortUpload": {
|
|
28840
29119
|
capName: "storage-provider",
|
|
28841
29120
|
capScope: "system",
|
|
@@ -29214,12 +29493,42 @@ Object.freeze({
|
|
|
29214
29493
|
addonId: null,
|
|
29215
29494
|
access: "create"
|
|
29216
29495
|
},
|
|
29496
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29497
|
+
capName: "terminal-session",
|
|
29498
|
+
capScope: "system",
|
|
29499
|
+
addonId: null,
|
|
29500
|
+
access: "create"
|
|
29501
|
+
},
|
|
29217
29502
|
"terminalSession.close": {
|
|
29218
29503
|
capName: "terminal-session",
|
|
29219
29504
|
capScope: "system",
|
|
29220
29505
|
addonId: null,
|
|
29221
29506
|
access: "create"
|
|
29222
29507
|
},
|
|
29508
|
+
"terminalSession.createInstance": {
|
|
29509
|
+
capName: "terminal-session",
|
|
29510
|
+
capScope: "system",
|
|
29511
|
+
addonId: null,
|
|
29512
|
+
access: "create"
|
|
29513
|
+
},
|
|
29514
|
+
"terminalSession.deleteInstance": {
|
|
29515
|
+
capName: "terminal-session",
|
|
29516
|
+
capScope: "system",
|
|
29517
|
+
addonId: null,
|
|
29518
|
+
access: "delete"
|
|
29519
|
+
},
|
|
29520
|
+
"terminalSession.listInstances": {
|
|
29521
|
+
capName: "terminal-session",
|
|
29522
|
+
capScope: "system",
|
|
29523
|
+
addonId: null,
|
|
29524
|
+
access: "view"
|
|
29525
|
+
},
|
|
29526
|
+
"terminalSession.listLegacyCameras": {
|
|
29527
|
+
capName: "terminal-session",
|
|
29528
|
+
capScope: "system",
|
|
29529
|
+
addonId: null,
|
|
29530
|
+
access: "view"
|
|
29531
|
+
},
|
|
29223
29532
|
"terminalSession.listProfiles": {
|
|
29224
29533
|
capName: "terminal-session",
|
|
29225
29534
|
capScope: "system",
|
|
@@ -29238,12 +29547,30 @@ Object.freeze({
|
|
|
29238
29547
|
addonId: null,
|
|
29239
29548
|
access: "create"
|
|
29240
29549
|
},
|
|
29550
|
+
"terminalSession.pullOutput": {
|
|
29551
|
+
capName: "terminal-session",
|
|
29552
|
+
capScope: "system",
|
|
29553
|
+
addonId: null,
|
|
29554
|
+
access: "create"
|
|
29555
|
+
},
|
|
29241
29556
|
"terminalSession.resize": {
|
|
29242
29557
|
capName: "terminal-session",
|
|
29243
29558
|
capScope: "system",
|
|
29244
29559
|
addonId: null,
|
|
29245
29560
|
access: "create"
|
|
29246
29561
|
},
|
|
29562
|
+
"terminalSession.setInstanceEnabled": {
|
|
29563
|
+
capName: "terminal-session",
|
|
29564
|
+
capScope: "system",
|
|
29565
|
+
addonId: null,
|
|
29566
|
+
access: "create"
|
|
29567
|
+
},
|
|
29568
|
+
"terminalSession.writeInput": {
|
|
29569
|
+
capName: "terminal-session",
|
|
29570
|
+
capScope: "system",
|
|
29571
|
+
addonId: null,
|
|
29572
|
+
access: "create"
|
|
29573
|
+
},
|
|
29247
29574
|
"toast.onToast": {
|
|
29248
29575
|
capName: "toast",
|
|
29249
29576
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-mqtt-broker",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.13",
|
|
4
4
|
"description": "MQTT broker registry addon for CamStack — manages external broker entries + an optional embedded aedes broker. Consumers spin up their own `mqtt.js` clients via the `mqtt-broker` cap.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|