@camstack/addon-notifiers 1.2.14 → 1.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +357 -30
- package/dist/addon.mjs +357 -30
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -7684,12 +7684,11 @@ var RecordingConfigSchema = object({
|
|
|
7684
7684
|
/**
|
|
7685
7685
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7686
7686
|
*
|
|
7687
|
-
* One shape shared by the recorder
|
|
7688
|
-
*
|
|
7689
|
-
*
|
|
7690
|
-
*
|
|
7691
|
-
*
|
|
7692
|
-
* row on the owning addon's surface.
|
|
7687
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7688
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7689
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7690
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7691
|
+
* addon surface.
|
|
7693
7692
|
*/
|
|
7694
7693
|
var RelocateJobStateSchema = _enum([
|
|
7695
7694
|
"running",
|
|
@@ -7716,19 +7715,100 @@ var RelocateJobSchema = object({
|
|
|
7716
7715
|
finishedAt: number().nullable(),
|
|
7717
7716
|
error: string().nullable()
|
|
7718
7717
|
});
|
|
7718
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7719
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7720
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7719
7721
|
var RelocateFootageInputSchema = object({
|
|
7720
|
-
deviceId: number().optional(),
|
|
7721
7722
|
fromLocationId: string(),
|
|
7722
7723
|
toLocationId: string(),
|
|
7723
7724
|
entities: array(_enum(["segments"])).optional(),
|
|
7725
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7726
|
+
* pre-orchestration compatibility path. */
|
|
7727
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7724
7728
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7725
7729
|
* never allowed to starve live writers. */
|
|
7726
7730
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7727
7731
|
});
|
|
7728
|
-
|
|
7729
|
-
|
|
7732
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7733
|
+
* from persistent recording settings: a migration never changes
|
|
7734
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7735
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7736
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7737
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7730
7738
|
toLocationId: string(),
|
|
7731
7739
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7740
|
+
}).extend({ leaseId: string().min(1) });
|
|
7741
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7742
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7743
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7744
|
+
var StorageMigrationClassSchema = _enum([
|
|
7745
|
+
"recordings",
|
|
7746
|
+
"recordingsLow",
|
|
7747
|
+
"eventMedia"
|
|
7748
|
+
]);
|
|
7749
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7750
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7751
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7752
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7753
|
+
recordings: string().min(1).optional(),
|
|
7754
|
+
recordingsLow: string().min(1).optional(),
|
|
7755
|
+
eventMedia: string().min(1).optional()
|
|
7756
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7757
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7758
|
+
var StorageMigrationInputSchema = object({
|
|
7759
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7760
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7761
|
+
});
|
|
7762
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7763
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7764
|
+
* verified. */
|
|
7765
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7766
|
+
"planning",
|
|
7767
|
+
"pausing",
|
|
7768
|
+
"moving",
|
|
7769
|
+
"verifying",
|
|
7770
|
+
"repointing",
|
|
7771
|
+
"refreshing",
|
|
7772
|
+
"resuming",
|
|
7773
|
+
"done",
|
|
7774
|
+
"failed",
|
|
7775
|
+
"cancelled"
|
|
7776
|
+
]);
|
|
7777
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7778
|
+
"pipeline",
|
|
7779
|
+
"recorder",
|
|
7780
|
+
"analytics"
|
|
7781
|
+
]);
|
|
7782
|
+
var StorageMigrationMoveSchema = object({
|
|
7783
|
+
storageClass: StorageMigrationClassSchema,
|
|
7784
|
+
fromLocationId: string(),
|
|
7785
|
+
toLocationId: string(),
|
|
7786
|
+
moverJobId: string().nullable(),
|
|
7787
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7788
|
+
error: string().nullable()
|
|
7789
|
+
});
|
|
7790
|
+
var StorageMigrationJobSchema = object({
|
|
7791
|
+
jobId: string(),
|
|
7792
|
+
phase: StorageMigrationPhaseSchema,
|
|
7793
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7794
|
+
throttleMbps: number(),
|
|
7795
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7796
|
+
pauseLeaseId: string().nullable(),
|
|
7797
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7798
|
+
repointed: boolean(),
|
|
7799
|
+
cancelRequested: boolean(),
|
|
7800
|
+
startedAt: number(),
|
|
7801
|
+
updatedAt: number(),
|
|
7802
|
+
finishedAt: number().nullable(),
|
|
7803
|
+
error: string().nullable()
|
|
7804
|
+
});
|
|
7805
|
+
var StorageMigrationPlanSchema = object({
|
|
7806
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7807
|
+
moves: array(object({
|
|
7808
|
+
storageClass: StorageMigrationClassSchema,
|
|
7809
|
+
fromLocationId: string(),
|
|
7810
|
+
toLocationId: string()
|
|
7811
|
+
}))
|
|
7732
7812
|
});
|
|
7733
7813
|
/**
|
|
7734
7814
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16159,13 +16239,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16159
16239
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16160
16240
|
kind: "mutation",
|
|
16161
16241
|
auth: "admin"
|
|
16162
|
-
}), method(
|
|
16242
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16163
16243
|
kind: "mutation",
|
|
16164
16244
|
auth: "admin"
|
|
16165
|
-
}), method(object({
|
|
16166
|
-
kind: "
|
|
16245
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16246
|
+
kind: "mutation",
|
|
16167
16247
|
auth: "admin"
|
|
16168
|
-
}), method(
|
|
16248
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16249
|
+
kind: "mutation",
|
|
16250
|
+
auth: "admin"
|
|
16251
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16252
|
+
kind: "mutation",
|
|
16253
|
+
auth: "admin"
|
|
16254
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16169
16255
|
kind: "mutation",
|
|
16170
16256
|
auth: "admin"
|
|
16171
16257
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17662,7 +17748,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17662
17748
|
reachable: boolean(),
|
|
17663
17749
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17664
17750
|
});
|
|
17665
|
-
method(object({
|
|
17751
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17752
|
+
kind: "mutation",
|
|
17753
|
+
auth: "admin"
|
|
17754
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17755
|
+
kind: "mutation",
|
|
17756
|
+
auth: "admin"
|
|
17757
|
+
}), method(object({
|
|
17666
17758
|
deviceId: number(),
|
|
17667
17759
|
agentNodeId: string()
|
|
17668
17760
|
}), object({ success: literal(true) }), {
|
|
@@ -18336,6 +18428,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18336
18428
|
locationId: string(),
|
|
18337
18429
|
targetBytes: number().int().positive()
|
|
18338
18430
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18431
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18432
|
+
kind: "mutation",
|
|
18433
|
+
auth: "admin"
|
|
18434
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18435
|
+
kind: "mutation",
|
|
18436
|
+
auth: "admin"
|
|
18437
|
+
});
|
|
18339
18438
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18340
18439
|
providerId: string().min(1),
|
|
18341
18440
|
displayName: string().min(1),
|
|
@@ -18439,7 +18538,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18439
18538
|
label: string(),
|
|
18440
18539
|
description: string().optional()
|
|
18441
18540
|
});
|
|
18442
|
-
|
|
18541
|
+
/**
|
|
18542
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18543
|
+
* an instance declares a camera.
|
|
18544
|
+
*/
|
|
18545
|
+
var TerminalInstanceInfoSchema = object({
|
|
18546
|
+
instanceId: string(),
|
|
18547
|
+
cameraStableId: string(),
|
|
18548
|
+
nodeId: string(),
|
|
18549
|
+
profileId: string(),
|
|
18550
|
+
profileLabel: string(),
|
|
18551
|
+
name: string(),
|
|
18552
|
+
enabled: boolean()
|
|
18553
|
+
});
|
|
18554
|
+
var TerminalLegacyCameraSchema = object({
|
|
18555
|
+
stableId: string(),
|
|
18556
|
+
nodeId: string(),
|
|
18557
|
+
profileId: string(),
|
|
18558
|
+
profileLabel: string(),
|
|
18559
|
+
name: string(),
|
|
18560
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18561
|
+
adoptable: boolean()
|
|
18562
|
+
});
|
|
18563
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18564
|
+
seq: number().int().positive(),
|
|
18565
|
+
kind: literal("data"),
|
|
18566
|
+
data: string()
|
|
18567
|
+
}), object({
|
|
18568
|
+
seq: number().int().positive(),
|
|
18569
|
+
kind: literal("exit"),
|
|
18570
|
+
exitCode: number().int(),
|
|
18571
|
+
signal: number().int().optional()
|
|
18572
|
+
})]);
|
|
18573
|
+
var TerminalOutputBatchSchema = object({
|
|
18574
|
+
cursor: number().int().nonnegative(),
|
|
18575
|
+
reset: boolean(),
|
|
18576
|
+
snapshot: string().optional(),
|
|
18577
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18578
|
+
});
|
|
18579
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18580
|
+
targetNodeId: string().min(1),
|
|
18581
|
+
profileId: string().min(1),
|
|
18582
|
+
name: string().trim().min(1).max(160).optional()
|
|
18583
|
+
}), TerminalInstanceInfoSchema, {
|
|
18584
|
+
kind: "mutation",
|
|
18585
|
+
auth: "admin"
|
|
18586
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18587
|
+
kind: "mutation",
|
|
18588
|
+
auth: "admin"
|
|
18589
|
+
}), method(object({
|
|
18590
|
+
instanceId: string().min(1),
|
|
18591
|
+
enabled: boolean()
|
|
18592
|
+
}), TerminalInstanceInfoSchema, {
|
|
18593
|
+
kind: "mutation",
|
|
18594
|
+
auth: "admin"
|
|
18595
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18596
|
+
stableId: string().min(1),
|
|
18597
|
+
name: string().trim().min(1).max(160).optional()
|
|
18598
|
+
}), TerminalInstanceInfoSchema, {
|
|
18599
|
+
kind: "mutation",
|
|
18600
|
+
auth: "admin"
|
|
18601
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18443
18602
|
profileId: string(),
|
|
18444
18603
|
cols: number().int().positive(),
|
|
18445
18604
|
rows: number().int().positive()
|
|
@@ -18453,6 +18612,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18453
18612
|
}), _void(), {
|
|
18454
18613
|
kind: "mutation",
|
|
18455
18614
|
auth: "admin"
|
|
18615
|
+
}), method(object({
|
|
18616
|
+
sessionId: string(),
|
|
18617
|
+
afterSeq: number().int().nonnegative(),
|
|
18618
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18619
|
+
/**
|
|
18620
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18621
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18622
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18623
|
+
*/
|
|
18624
|
+
waitForOutput: boolean().optional()
|
|
18625
|
+
}), TerminalOutputBatchSchema, {
|
|
18626
|
+
kind: "mutation",
|
|
18627
|
+
auth: "admin",
|
|
18628
|
+
timeoutMs: 15e3
|
|
18629
|
+
}), method(object({
|
|
18630
|
+
sessionId: string(),
|
|
18631
|
+
data: string().max(64 * 1024)
|
|
18632
|
+
}), _void(), {
|
|
18633
|
+
kind: "mutation",
|
|
18634
|
+
auth: "admin"
|
|
18456
18635
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18457
18636
|
kind: "mutation",
|
|
18458
18637
|
auth: "admin"
|
|
@@ -20383,6 +20562,7 @@ var FaceInfoSchema = object({
|
|
|
20383
20562
|
var FaceFilterEnum = _enum([
|
|
20384
20563
|
"unassigned",
|
|
20385
20564
|
"recognized",
|
|
20565
|
+
"identified",
|
|
20386
20566
|
"all"
|
|
20387
20567
|
]);
|
|
20388
20568
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20411,6 +20591,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20411
20591
|
kind: "mutation",
|
|
20412
20592
|
auth: "admin"
|
|
20413
20593
|
}), method(object({
|
|
20594
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20595
|
+
deviceId: number().int().optional(),
|
|
20414
20596
|
limit: number().int().positive().optional(),
|
|
20415
20597
|
filter: FaceFilterEnum.optional(),
|
|
20416
20598
|
/**
|
|
@@ -22176,6 +22358,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22176
22358
|
capName: string().min(1).max(64),
|
|
22177
22359
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22178
22360
|
valuePath: string().min(1).max(64)
|
|
22361
|
+
}),
|
|
22362
|
+
object({
|
|
22363
|
+
kind: literal("latest-recognition"),
|
|
22364
|
+
recognition: _enum(["person", "plate"])
|
|
22179
22365
|
})
|
|
22180
22366
|
]);
|
|
22181
22367
|
var OsdSlotBindingSchema = object({
|
|
@@ -22281,6 +22467,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22281
22467
|
}), object({ success: literal(true) }), {
|
|
22282
22468
|
kind: "mutation",
|
|
22283
22469
|
auth: "admin"
|
|
22470
|
+
}), method(object({
|
|
22471
|
+
sourceDeviceId: number().int(),
|
|
22472
|
+
targetDeviceId: number().int()
|
|
22473
|
+
}), object({
|
|
22474
|
+
copied: number().int().nonnegative(),
|
|
22475
|
+
skipped: number().int().nonnegative()
|
|
22476
|
+
}), {
|
|
22477
|
+
kind: "mutation",
|
|
22478
|
+
auth: "admin"
|
|
22284
22479
|
}), method(object({
|
|
22285
22480
|
deviceId: number().int(),
|
|
22286
22481
|
slotId: string().min(1),
|
|
@@ -23166,13 +23361,19 @@ method(object({
|
|
|
23166
23361
|
}), {
|
|
23167
23362
|
kind: "mutation",
|
|
23168
23363
|
auth: "admin"
|
|
23169
|
-
}), method(
|
|
23364
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23170
23365
|
kind: "mutation",
|
|
23171
23366
|
auth: "admin"
|
|
23172
|
-
}), method(object({
|
|
23173
|
-
kind: "
|
|
23367
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23368
|
+
kind: "mutation",
|
|
23174
23369
|
auth: "admin"
|
|
23175
|
-
}), method(
|
|
23370
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23371
|
+
kind: "mutation",
|
|
23372
|
+
auth: "admin"
|
|
23373
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23374
|
+
kind: "mutation",
|
|
23375
|
+
auth: "admin"
|
|
23376
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23176
23377
|
kind: "mutation",
|
|
23177
23378
|
auth: "admin"
|
|
23178
23379
|
});
|
|
@@ -27294,6 +27495,12 @@ Object.freeze({
|
|
|
27294
27495
|
addonId: null,
|
|
27295
27496
|
access: "delete"
|
|
27296
27497
|
},
|
|
27498
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27499
|
+
capName: "osd-manager",
|
|
27500
|
+
capScope: "system",
|
|
27501
|
+
addonId: null,
|
|
27502
|
+
access: "create"
|
|
27503
|
+
},
|
|
27297
27504
|
"osdManager.getConditionSupport": {
|
|
27298
27505
|
capName: "osd-manager",
|
|
27299
27506
|
capScope: "system",
|
|
@@ -27390,7 +27597,7 @@ Object.freeze({
|
|
|
27390
27597
|
addonId: null,
|
|
27391
27598
|
access: "create"
|
|
27392
27599
|
},
|
|
27393
|
-
"pipelineAnalytics.
|
|
27600
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27394
27601
|
capName: "pipeline-analytics",
|
|
27395
27602
|
capScope: "device",
|
|
27396
27603
|
addonId: null,
|
|
@@ -27462,12 +27669,6 @@ Object.freeze({
|
|
|
27462
27669
|
addonId: null,
|
|
27463
27670
|
access: "view"
|
|
27464
27671
|
},
|
|
27465
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27466
|
-
capName: "pipeline-analytics",
|
|
27467
|
-
capScope: "device",
|
|
27468
|
-
addonId: null,
|
|
27469
|
-
access: "view"
|
|
27470
|
-
},
|
|
27471
27672
|
"pipelineAnalytics.getMotionEvents": {
|
|
27472
27673
|
capName: "pipeline-analytics",
|
|
27473
27674
|
capScope: "device",
|
|
@@ -27504,6 +27705,12 @@ Object.freeze({
|
|
|
27504
27705
|
addonId: null,
|
|
27505
27706
|
access: "view"
|
|
27506
27707
|
},
|
|
27708
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27709
|
+
capName: "pipeline-analytics",
|
|
27710
|
+
capScope: "device",
|
|
27711
|
+
addonId: null,
|
|
27712
|
+
access: "view"
|
|
27713
|
+
},
|
|
27507
27714
|
"pipelineAnalytics.getTrack": {
|
|
27508
27715
|
capName: "pipeline-analytics",
|
|
27509
27716
|
capScope: "device",
|
|
@@ -27582,6 +27789,12 @@ Object.freeze({
|
|
|
27582
27789
|
addonId: null,
|
|
27583
27790
|
access: "view"
|
|
27584
27791
|
},
|
|
27792
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27793
|
+
capName: "pipeline-analytics",
|
|
27794
|
+
capScope: "device",
|
|
27795
|
+
addonId: null,
|
|
27796
|
+
access: "create"
|
|
27797
|
+
},
|
|
27585
27798
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27586
27799
|
capName: "pipeline-analytics",
|
|
27587
27800
|
capScope: "device",
|
|
@@ -27612,7 +27825,7 @@ Object.freeze({
|
|
|
27612
27825
|
addonId: null,
|
|
27613
27826
|
access: "create"
|
|
27614
27827
|
},
|
|
27615
|
-
"pipelineAnalytics.
|
|
27828
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27616
27829
|
capName: "pipeline-analytics",
|
|
27617
27830
|
capScope: "device",
|
|
27618
27831
|
addonId: null,
|
|
@@ -27624,6 +27837,12 @@ Object.freeze({
|
|
|
27624
27837
|
addonId: null,
|
|
27625
27838
|
access: "create"
|
|
27626
27839
|
},
|
|
27840
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27841
|
+
capName: "pipeline-analytics",
|
|
27842
|
+
capScope: "device",
|
|
27843
|
+
addonId: null,
|
|
27844
|
+
access: "create"
|
|
27845
|
+
},
|
|
27627
27846
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27628
27847
|
capName: "pipeline-analytics",
|
|
27629
27848
|
capScope: "device",
|
|
@@ -27648,6 +27867,12 @@ Object.freeze({
|
|
|
27648
27867
|
addonId: null,
|
|
27649
27868
|
access: "create"
|
|
27650
27869
|
},
|
|
27870
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27871
|
+
capName: "pipeline-analytics",
|
|
27872
|
+
capScope: "device",
|
|
27873
|
+
addonId: null,
|
|
27874
|
+
access: "create"
|
|
27875
|
+
},
|
|
27651
27876
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27652
27877
|
capName: "pipeline-analytics",
|
|
27653
27878
|
capScope: "device",
|
|
@@ -28014,6 +28239,12 @@ Object.freeze({
|
|
|
28014
28239
|
addonId: null,
|
|
28015
28240
|
access: "view"
|
|
28016
28241
|
},
|
|
28242
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28243
|
+
capName: "pipeline-orchestrator",
|
|
28244
|
+
capScope: "system",
|
|
28245
|
+
addonId: null,
|
|
28246
|
+
access: "create"
|
|
28247
|
+
},
|
|
28017
28248
|
"pipelineOrchestrator.rebalance": {
|
|
28018
28249
|
capName: "pipeline-orchestrator",
|
|
28019
28250
|
capScope: "system",
|
|
@@ -28038,6 +28269,12 @@ Object.freeze({
|
|
|
28038
28269
|
addonId: null,
|
|
28039
28270
|
access: "view"
|
|
28040
28271
|
},
|
|
28272
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28273
|
+
capName: "pipeline-orchestrator",
|
|
28274
|
+
capScope: "system",
|
|
28275
|
+
addonId: null,
|
|
28276
|
+
access: "create"
|
|
28277
|
+
},
|
|
28041
28278
|
"pipelineOrchestrator.saveTemplate": {
|
|
28042
28279
|
capName: "pipeline-orchestrator",
|
|
28043
28280
|
capScope: "system",
|
|
@@ -28434,7 +28671,7 @@ Object.freeze({
|
|
|
28434
28671
|
addonId: null,
|
|
28435
28672
|
access: "create"
|
|
28436
28673
|
},
|
|
28437
|
-
"recording.
|
|
28674
|
+
"recording.cancelStorageMigrationMove": {
|
|
28438
28675
|
capName: "recording",
|
|
28439
28676
|
capScope: "system",
|
|
28440
28677
|
addonId: null,
|
|
@@ -28470,7 +28707,7 @@ Object.freeze({
|
|
|
28470
28707
|
addonId: null,
|
|
28471
28708
|
access: "view"
|
|
28472
28709
|
},
|
|
28473
|
-
"recording.
|
|
28710
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28474
28711
|
capName: "recording",
|
|
28475
28712
|
capScope: "system",
|
|
28476
28713
|
addonId: null,
|
|
@@ -28494,6 +28731,12 @@ Object.freeze({
|
|
|
28494
28731
|
addonId: null,
|
|
28495
28732
|
access: "view"
|
|
28496
28733
|
},
|
|
28734
|
+
"recording.pauseForStorageMigration": {
|
|
28735
|
+
capName: "recording",
|
|
28736
|
+
capScope: "system",
|
|
28737
|
+
addonId: null,
|
|
28738
|
+
access: "create"
|
|
28739
|
+
},
|
|
28497
28740
|
"recording.pruneFootage": {
|
|
28498
28741
|
capName: "recording",
|
|
28499
28742
|
capScope: "system",
|
|
@@ -28512,7 +28755,7 @@ Object.freeze({
|
|
|
28512
28755
|
addonId: null,
|
|
28513
28756
|
access: "view"
|
|
28514
28757
|
},
|
|
28515
|
-
"recording.
|
|
28758
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28516
28759
|
capName: "recording",
|
|
28517
28760
|
capScope: "system",
|
|
28518
28761
|
addonId: null,
|
|
@@ -28536,12 +28779,24 @@ Object.freeze({
|
|
|
28536
28779
|
addonId: null,
|
|
28537
28780
|
access: "create"
|
|
28538
28781
|
},
|
|
28782
|
+
"recording.resumeForStorageMigration": {
|
|
28783
|
+
capName: "recording",
|
|
28784
|
+
capScope: "system",
|
|
28785
|
+
addonId: null,
|
|
28786
|
+
access: "create"
|
|
28787
|
+
},
|
|
28539
28788
|
"recording.setDeviceConfig": {
|
|
28540
28789
|
capName: "recording",
|
|
28541
28790
|
capScope: "system",
|
|
28542
28791
|
addonId: null,
|
|
28543
28792
|
access: "create"
|
|
28544
28793
|
},
|
|
28794
|
+
"recording.startStorageMigrationMove": {
|
|
28795
|
+
capName: "recording",
|
|
28796
|
+
capScope: "system",
|
|
28797
|
+
addonId: null,
|
|
28798
|
+
access: "create"
|
|
28799
|
+
},
|
|
28545
28800
|
"recordingExport.cancelExport": {
|
|
28546
28801
|
capName: "recordingExport",
|
|
28547
28802
|
capScope: "system",
|
|
@@ -28932,6 +29187,30 @@ Object.freeze({
|
|
|
28932
29187
|
addonId: null,
|
|
28933
29188
|
access: "view"
|
|
28934
29189
|
},
|
|
29190
|
+
"storageMigration.cancel": {
|
|
29191
|
+
capName: "storage-migration",
|
|
29192
|
+
capScope: "system",
|
|
29193
|
+
addonId: null,
|
|
29194
|
+
access: "create"
|
|
29195
|
+
},
|
|
29196
|
+
"storageMigration.plan": {
|
|
29197
|
+
capName: "storage-migration",
|
|
29198
|
+
capScope: "system",
|
|
29199
|
+
addonId: null,
|
|
29200
|
+
access: "view"
|
|
29201
|
+
},
|
|
29202
|
+
"storageMigration.start": {
|
|
29203
|
+
capName: "storage-migration",
|
|
29204
|
+
capScope: "system",
|
|
29205
|
+
addonId: null,
|
|
29206
|
+
access: "create"
|
|
29207
|
+
},
|
|
29208
|
+
"storageMigration.status": {
|
|
29209
|
+
capName: "storage-migration",
|
|
29210
|
+
capScope: "system",
|
|
29211
|
+
addonId: null,
|
|
29212
|
+
access: "view"
|
|
29213
|
+
},
|
|
28935
29214
|
"storageProvider.abortUpload": {
|
|
28936
29215
|
capName: "storage-provider",
|
|
28937
29216
|
capScope: "system",
|
|
@@ -29310,12 +29589,42 @@ Object.freeze({
|
|
|
29310
29589
|
addonId: null,
|
|
29311
29590
|
access: "create"
|
|
29312
29591
|
},
|
|
29592
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29593
|
+
capName: "terminal-session",
|
|
29594
|
+
capScope: "system",
|
|
29595
|
+
addonId: null,
|
|
29596
|
+
access: "create"
|
|
29597
|
+
},
|
|
29313
29598
|
"terminalSession.close": {
|
|
29314
29599
|
capName: "terminal-session",
|
|
29315
29600
|
capScope: "system",
|
|
29316
29601
|
addonId: null,
|
|
29317
29602
|
access: "create"
|
|
29318
29603
|
},
|
|
29604
|
+
"terminalSession.createInstance": {
|
|
29605
|
+
capName: "terminal-session",
|
|
29606
|
+
capScope: "system",
|
|
29607
|
+
addonId: null,
|
|
29608
|
+
access: "create"
|
|
29609
|
+
},
|
|
29610
|
+
"terminalSession.deleteInstance": {
|
|
29611
|
+
capName: "terminal-session",
|
|
29612
|
+
capScope: "system",
|
|
29613
|
+
addonId: null,
|
|
29614
|
+
access: "delete"
|
|
29615
|
+
},
|
|
29616
|
+
"terminalSession.listInstances": {
|
|
29617
|
+
capName: "terminal-session",
|
|
29618
|
+
capScope: "system",
|
|
29619
|
+
addonId: null,
|
|
29620
|
+
access: "view"
|
|
29621
|
+
},
|
|
29622
|
+
"terminalSession.listLegacyCameras": {
|
|
29623
|
+
capName: "terminal-session",
|
|
29624
|
+
capScope: "system",
|
|
29625
|
+
addonId: null,
|
|
29626
|
+
access: "view"
|
|
29627
|
+
},
|
|
29319
29628
|
"terminalSession.listProfiles": {
|
|
29320
29629
|
capName: "terminal-session",
|
|
29321
29630
|
capScope: "system",
|
|
@@ -29334,12 +29643,30 @@ Object.freeze({
|
|
|
29334
29643
|
addonId: null,
|
|
29335
29644
|
access: "create"
|
|
29336
29645
|
},
|
|
29646
|
+
"terminalSession.pullOutput": {
|
|
29647
|
+
capName: "terminal-session",
|
|
29648
|
+
capScope: "system",
|
|
29649
|
+
addonId: null,
|
|
29650
|
+
access: "create"
|
|
29651
|
+
},
|
|
29337
29652
|
"terminalSession.resize": {
|
|
29338
29653
|
capName: "terminal-session",
|
|
29339
29654
|
capScope: "system",
|
|
29340
29655
|
addonId: null,
|
|
29341
29656
|
access: "create"
|
|
29342
29657
|
},
|
|
29658
|
+
"terminalSession.setInstanceEnabled": {
|
|
29659
|
+
capName: "terminal-session",
|
|
29660
|
+
capScope: "system",
|
|
29661
|
+
addonId: null,
|
|
29662
|
+
access: "create"
|
|
29663
|
+
},
|
|
29664
|
+
"terminalSession.writeInput": {
|
|
29665
|
+
capName: "terminal-session",
|
|
29666
|
+
capScope: "system",
|
|
29667
|
+
addonId: null,
|
|
29668
|
+
access: "create"
|
|
29669
|
+
},
|
|
29343
29670
|
"toast.onToast": {
|
|
29344
29671
|
capName: "toast",
|
|
29345
29672
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -7657,12 +7657,11 @@ var RecordingConfigSchema = object({
|
|
|
7657
7657
|
/**
|
|
7658
7658
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7659
7659
|
*
|
|
7660
|
-
* One shape shared by the recorder
|
|
7661
|
-
*
|
|
7662
|
-
*
|
|
7663
|
-
*
|
|
7664
|
-
*
|
|
7665
|
-
* row on the owning addon's surface.
|
|
7660
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7661
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7662
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7663
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7664
|
+
* addon surface.
|
|
7666
7665
|
*/
|
|
7667
7666
|
var RelocateJobStateSchema = _enum([
|
|
7668
7667
|
"running",
|
|
@@ -7689,19 +7688,100 @@ var RelocateJobSchema = object({
|
|
|
7689
7688
|
finishedAt: number().nullable(),
|
|
7690
7689
|
error: string().nullable()
|
|
7691
7690
|
});
|
|
7691
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7692
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7693
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7692
7694
|
var RelocateFootageInputSchema = object({
|
|
7693
|
-
deviceId: number().optional(),
|
|
7694
7695
|
fromLocationId: string(),
|
|
7695
7696
|
toLocationId: string(),
|
|
7696
7697
|
entities: array(_enum(["segments"])).optional(),
|
|
7698
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7699
|
+
* pre-orchestration compatibility path. */
|
|
7700
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7697
7701
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7698
7702
|
* never allowed to starve live writers. */
|
|
7699
7703
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7700
7704
|
});
|
|
7701
|
-
|
|
7702
|
-
|
|
7705
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7706
|
+
* from persistent recording settings: a migration never changes
|
|
7707
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7708
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7709
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7710
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7703
7711
|
toLocationId: string(),
|
|
7704
7712
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7713
|
+
}).extend({ leaseId: string().min(1) });
|
|
7714
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7715
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7716
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7717
|
+
var StorageMigrationClassSchema = _enum([
|
|
7718
|
+
"recordings",
|
|
7719
|
+
"recordingsLow",
|
|
7720
|
+
"eventMedia"
|
|
7721
|
+
]);
|
|
7722
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7723
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7724
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7725
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7726
|
+
recordings: string().min(1).optional(),
|
|
7727
|
+
recordingsLow: string().min(1).optional(),
|
|
7728
|
+
eventMedia: string().min(1).optional()
|
|
7729
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7730
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7731
|
+
var StorageMigrationInputSchema = object({
|
|
7732
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7733
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7734
|
+
});
|
|
7735
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7736
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7737
|
+
* verified. */
|
|
7738
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7739
|
+
"planning",
|
|
7740
|
+
"pausing",
|
|
7741
|
+
"moving",
|
|
7742
|
+
"verifying",
|
|
7743
|
+
"repointing",
|
|
7744
|
+
"refreshing",
|
|
7745
|
+
"resuming",
|
|
7746
|
+
"done",
|
|
7747
|
+
"failed",
|
|
7748
|
+
"cancelled"
|
|
7749
|
+
]);
|
|
7750
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7751
|
+
"pipeline",
|
|
7752
|
+
"recorder",
|
|
7753
|
+
"analytics"
|
|
7754
|
+
]);
|
|
7755
|
+
var StorageMigrationMoveSchema = object({
|
|
7756
|
+
storageClass: StorageMigrationClassSchema,
|
|
7757
|
+
fromLocationId: string(),
|
|
7758
|
+
toLocationId: string(),
|
|
7759
|
+
moverJobId: string().nullable(),
|
|
7760
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7761
|
+
error: string().nullable()
|
|
7762
|
+
});
|
|
7763
|
+
var StorageMigrationJobSchema = object({
|
|
7764
|
+
jobId: string(),
|
|
7765
|
+
phase: StorageMigrationPhaseSchema,
|
|
7766
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7767
|
+
throttleMbps: number(),
|
|
7768
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7769
|
+
pauseLeaseId: string().nullable(),
|
|
7770
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7771
|
+
repointed: boolean(),
|
|
7772
|
+
cancelRequested: boolean(),
|
|
7773
|
+
startedAt: number(),
|
|
7774
|
+
updatedAt: number(),
|
|
7775
|
+
finishedAt: number().nullable(),
|
|
7776
|
+
error: string().nullable()
|
|
7777
|
+
});
|
|
7778
|
+
var StorageMigrationPlanSchema = object({
|
|
7779
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7780
|
+
moves: array(object({
|
|
7781
|
+
storageClass: StorageMigrationClassSchema,
|
|
7782
|
+
fromLocationId: string(),
|
|
7783
|
+
toLocationId: string()
|
|
7784
|
+
}))
|
|
7705
7785
|
});
|
|
7706
7786
|
/**
|
|
7707
7787
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16132,13 +16212,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16132
16212
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16133
16213
|
kind: "mutation",
|
|
16134
16214
|
auth: "admin"
|
|
16135
|
-
}), method(
|
|
16215
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16136
16216
|
kind: "mutation",
|
|
16137
16217
|
auth: "admin"
|
|
16138
|
-
}), method(object({
|
|
16139
|
-
kind: "
|
|
16218
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16219
|
+
kind: "mutation",
|
|
16140
16220
|
auth: "admin"
|
|
16141
|
-
}), method(
|
|
16221
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16222
|
+
kind: "mutation",
|
|
16223
|
+
auth: "admin"
|
|
16224
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16225
|
+
kind: "mutation",
|
|
16226
|
+
auth: "admin"
|
|
16227
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16142
16228
|
kind: "mutation",
|
|
16143
16229
|
auth: "admin"
|
|
16144
16230
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17635,7 +17721,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17635
17721
|
reachable: boolean(),
|
|
17636
17722
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17637
17723
|
});
|
|
17638
|
-
method(object({
|
|
17724
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17725
|
+
kind: "mutation",
|
|
17726
|
+
auth: "admin"
|
|
17727
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17728
|
+
kind: "mutation",
|
|
17729
|
+
auth: "admin"
|
|
17730
|
+
}), method(object({
|
|
17639
17731
|
deviceId: number(),
|
|
17640
17732
|
agentNodeId: string()
|
|
17641
17733
|
}), object({ success: literal(true) }), {
|
|
@@ -18309,6 +18401,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18309
18401
|
locationId: string(),
|
|
18310
18402
|
targetBytes: number().int().positive()
|
|
18311
18403
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18404
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18405
|
+
kind: "mutation",
|
|
18406
|
+
auth: "admin"
|
|
18407
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18408
|
+
kind: "mutation",
|
|
18409
|
+
auth: "admin"
|
|
18410
|
+
});
|
|
18312
18411
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18313
18412
|
providerId: string().min(1),
|
|
18314
18413
|
displayName: string().min(1),
|
|
@@ -18412,7 +18511,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18412
18511
|
label: string(),
|
|
18413
18512
|
description: string().optional()
|
|
18414
18513
|
});
|
|
18415
|
-
|
|
18514
|
+
/**
|
|
18515
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18516
|
+
* an instance declares a camera.
|
|
18517
|
+
*/
|
|
18518
|
+
var TerminalInstanceInfoSchema = object({
|
|
18519
|
+
instanceId: string(),
|
|
18520
|
+
cameraStableId: string(),
|
|
18521
|
+
nodeId: string(),
|
|
18522
|
+
profileId: string(),
|
|
18523
|
+
profileLabel: string(),
|
|
18524
|
+
name: string(),
|
|
18525
|
+
enabled: boolean()
|
|
18526
|
+
});
|
|
18527
|
+
var TerminalLegacyCameraSchema = object({
|
|
18528
|
+
stableId: string(),
|
|
18529
|
+
nodeId: string(),
|
|
18530
|
+
profileId: string(),
|
|
18531
|
+
profileLabel: string(),
|
|
18532
|
+
name: string(),
|
|
18533
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18534
|
+
adoptable: boolean()
|
|
18535
|
+
});
|
|
18536
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18537
|
+
seq: number().int().positive(),
|
|
18538
|
+
kind: literal("data"),
|
|
18539
|
+
data: string()
|
|
18540
|
+
}), object({
|
|
18541
|
+
seq: number().int().positive(),
|
|
18542
|
+
kind: literal("exit"),
|
|
18543
|
+
exitCode: number().int(),
|
|
18544
|
+
signal: number().int().optional()
|
|
18545
|
+
})]);
|
|
18546
|
+
var TerminalOutputBatchSchema = object({
|
|
18547
|
+
cursor: number().int().nonnegative(),
|
|
18548
|
+
reset: boolean(),
|
|
18549
|
+
snapshot: string().optional(),
|
|
18550
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18551
|
+
});
|
|
18552
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18553
|
+
targetNodeId: string().min(1),
|
|
18554
|
+
profileId: string().min(1),
|
|
18555
|
+
name: string().trim().min(1).max(160).optional()
|
|
18556
|
+
}), TerminalInstanceInfoSchema, {
|
|
18557
|
+
kind: "mutation",
|
|
18558
|
+
auth: "admin"
|
|
18559
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18560
|
+
kind: "mutation",
|
|
18561
|
+
auth: "admin"
|
|
18562
|
+
}), method(object({
|
|
18563
|
+
instanceId: string().min(1),
|
|
18564
|
+
enabled: boolean()
|
|
18565
|
+
}), TerminalInstanceInfoSchema, {
|
|
18566
|
+
kind: "mutation",
|
|
18567
|
+
auth: "admin"
|
|
18568
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18569
|
+
stableId: string().min(1),
|
|
18570
|
+
name: string().trim().min(1).max(160).optional()
|
|
18571
|
+
}), TerminalInstanceInfoSchema, {
|
|
18572
|
+
kind: "mutation",
|
|
18573
|
+
auth: "admin"
|
|
18574
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18416
18575
|
profileId: string(),
|
|
18417
18576
|
cols: number().int().positive(),
|
|
18418
18577
|
rows: number().int().positive()
|
|
@@ -18426,6 +18585,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18426
18585
|
}), _void(), {
|
|
18427
18586
|
kind: "mutation",
|
|
18428
18587
|
auth: "admin"
|
|
18588
|
+
}), method(object({
|
|
18589
|
+
sessionId: string(),
|
|
18590
|
+
afterSeq: number().int().nonnegative(),
|
|
18591
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18592
|
+
/**
|
|
18593
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18594
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18595
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18596
|
+
*/
|
|
18597
|
+
waitForOutput: boolean().optional()
|
|
18598
|
+
}), TerminalOutputBatchSchema, {
|
|
18599
|
+
kind: "mutation",
|
|
18600
|
+
auth: "admin",
|
|
18601
|
+
timeoutMs: 15e3
|
|
18602
|
+
}), method(object({
|
|
18603
|
+
sessionId: string(),
|
|
18604
|
+
data: string().max(64 * 1024)
|
|
18605
|
+
}), _void(), {
|
|
18606
|
+
kind: "mutation",
|
|
18607
|
+
auth: "admin"
|
|
18429
18608
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18430
18609
|
kind: "mutation",
|
|
18431
18610
|
auth: "admin"
|
|
@@ -20356,6 +20535,7 @@ var FaceInfoSchema = object({
|
|
|
20356
20535
|
var FaceFilterEnum = _enum([
|
|
20357
20536
|
"unassigned",
|
|
20358
20537
|
"recognized",
|
|
20538
|
+
"identified",
|
|
20359
20539
|
"all"
|
|
20360
20540
|
]);
|
|
20361
20541
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20384,6 +20564,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20384
20564
|
kind: "mutation",
|
|
20385
20565
|
auth: "admin"
|
|
20386
20566
|
}), method(object({
|
|
20567
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20568
|
+
deviceId: number().int().optional(),
|
|
20387
20569
|
limit: number().int().positive().optional(),
|
|
20388
20570
|
filter: FaceFilterEnum.optional(),
|
|
20389
20571
|
/**
|
|
@@ -22149,6 +22331,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22149
22331
|
capName: string().min(1).max(64),
|
|
22150
22332
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22151
22333
|
valuePath: string().min(1).max(64)
|
|
22334
|
+
}),
|
|
22335
|
+
object({
|
|
22336
|
+
kind: literal("latest-recognition"),
|
|
22337
|
+
recognition: _enum(["person", "plate"])
|
|
22152
22338
|
})
|
|
22153
22339
|
]);
|
|
22154
22340
|
var OsdSlotBindingSchema = object({
|
|
@@ -22254,6 +22440,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22254
22440
|
}), object({ success: literal(true) }), {
|
|
22255
22441
|
kind: "mutation",
|
|
22256
22442
|
auth: "admin"
|
|
22443
|
+
}), method(object({
|
|
22444
|
+
sourceDeviceId: number().int(),
|
|
22445
|
+
targetDeviceId: number().int()
|
|
22446
|
+
}), object({
|
|
22447
|
+
copied: number().int().nonnegative(),
|
|
22448
|
+
skipped: number().int().nonnegative()
|
|
22449
|
+
}), {
|
|
22450
|
+
kind: "mutation",
|
|
22451
|
+
auth: "admin"
|
|
22257
22452
|
}), method(object({
|
|
22258
22453
|
deviceId: number().int(),
|
|
22259
22454
|
slotId: string().min(1),
|
|
@@ -23139,13 +23334,19 @@ method(object({
|
|
|
23139
23334
|
}), {
|
|
23140
23335
|
kind: "mutation",
|
|
23141
23336
|
auth: "admin"
|
|
23142
|
-
}), method(
|
|
23337
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23143
23338
|
kind: "mutation",
|
|
23144
23339
|
auth: "admin"
|
|
23145
|
-
}), method(object({
|
|
23146
|
-
kind: "
|
|
23340
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23341
|
+
kind: "mutation",
|
|
23147
23342
|
auth: "admin"
|
|
23148
|
-
}), method(
|
|
23343
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23344
|
+
kind: "mutation",
|
|
23345
|
+
auth: "admin"
|
|
23346
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23347
|
+
kind: "mutation",
|
|
23348
|
+
auth: "admin"
|
|
23349
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23149
23350
|
kind: "mutation",
|
|
23150
23351
|
auth: "admin"
|
|
23151
23352
|
});
|
|
@@ -27267,6 +27468,12 @@ Object.freeze({
|
|
|
27267
27468
|
addonId: null,
|
|
27268
27469
|
access: "delete"
|
|
27269
27470
|
},
|
|
27471
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27472
|
+
capName: "osd-manager",
|
|
27473
|
+
capScope: "system",
|
|
27474
|
+
addonId: null,
|
|
27475
|
+
access: "create"
|
|
27476
|
+
},
|
|
27270
27477
|
"osdManager.getConditionSupport": {
|
|
27271
27478
|
capName: "osd-manager",
|
|
27272
27479
|
capScope: "system",
|
|
@@ -27363,7 +27570,7 @@ Object.freeze({
|
|
|
27363
27570
|
addonId: null,
|
|
27364
27571
|
access: "create"
|
|
27365
27572
|
},
|
|
27366
|
-
"pipelineAnalytics.
|
|
27573
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27367
27574
|
capName: "pipeline-analytics",
|
|
27368
27575
|
capScope: "device",
|
|
27369
27576
|
addonId: null,
|
|
@@ -27435,12 +27642,6 @@ Object.freeze({
|
|
|
27435
27642
|
addonId: null,
|
|
27436
27643
|
access: "view"
|
|
27437
27644
|
},
|
|
27438
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27439
|
-
capName: "pipeline-analytics",
|
|
27440
|
-
capScope: "device",
|
|
27441
|
-
addonId: null,
|
|
27442
|
-
access: "view"
|
|
27443
|
-
},
|
|
27444
27645
|
"pipelineAnalytics.getMotionEvents": {
|
|
27445
27646
|
capName: "pipeline-analytics",
|
|
27446
27647
|
capScope: "device",
|
|
@@ -27477,6 +27678,12 @@ Object.freeze({
|
|
|
27477
27678
|
addonId: null,
|
|
27478
27679
|
access: "view"
|
|
27479
27680
|
},
|
|
27681
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27682
|
+
capName: "pipeline-analytics",
|
|
27683
|
+
capScope: "device",
|
|
27684
|
+
addonId: null,
|
|
27685
|
+
access: "view"
|
|
27686
|
+
},
|
|
27480
27687
|
"pipelineAnalytics.getTrack": {
|
|
27481
27688
|
capName: "pipeline-analytics",
|
|
27482
27689
|
capScope: "device",
|
|
@@ -27555,6 +27762,12 @@ Object.freeze({
|
|
|
27555
27762
|
addonId: null,
|
|
27556
27763
|
access: "view"
|
|
27557
27764
|
},
|
|
27765
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27766
|
+
capName: "pipeline-analytics",
|
|
27767
|
+
capScope: "device",
|
|
27768
|
+
addonId: null,
|
|
27769
|
+
access: "create"
|
|
27770
|
+
},
|
|
27558
27771
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27559
27772
|
capName: "pipeline-analytics",
|
|
27560
27773
|
capScope: "device",
|
|
@@ -27585,7 +27798,7 @@ Object.freeze({
|
|
|
27585
27798
|
addonId: null,
|
|
27586
27799
|
access: "create"
|
|
27587
27800
|
},
|
|
27588
|
-
"pipelineAnalytics.
|
|
27801
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27589
27802
|
capName: "pipeline-analytics",
|
|
27590
27803
|
capScope: "device",
|
|
27591
27804
|
addonId: null,
|
|
@@ -27597,6 +27810,12 @@ Object.freeze({
|
|
|
27597
27810
|
addonId: null,
|
|
27598
27811
|
access: "create"
|
|
27599
27812
|
},
|
|
27813
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27814
|
+
capName: "pipeline-analytics",
|
|
27815
|
+
capScope: "device",
|
|
27816
|
+
addonId: null,
|
|
27817
|
+
access: "create"
|
|
27818
|
+
},
|
|
27600
27819
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27601
27820
|
capName: "pipeline-analytics",
|
|
27602
27821
|
capScope: "device",
|
|
@@ -27621,6 +27840,12 @@ Object.freeze({
|
|
|
27621
27840
|
addonId: null,
|
|
27622
27841
|
access: "create"
|
|
27623
27842
|
},
|
|
27843
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27844
|
+
capName: "pipeline-analytics",
|
|
27845
|
+
capScope: "device",
|
|
27846
|
+
addonId: null,
|
|
27847
|
+
access: "create"
|
|
27848
|
+
},
|
|
27624
27849
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27625
27850
|
capName: "pipeline-analytics",
|
|
27626
27851
|
capScope: "device",
|
|
@@ -27987,6 +28212,12 @@ Object.freeze({
|
|
|
27987
28212
|
addonId: null,
|
|
27988
28213
|
access: "view"
|
|
27989
28214
|
},
|
|
28215
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28216
|
+
capName: "pipeline-orchestrator",
|
|
28217
|
+
capScope: "system",
|
|
28218
|
+
addonId: null,
|
|
28219
|
+
access: "create"
|
|
28220
|
+
},
|
|
27990
28221
|
"pipelineOrchestrator.rebalance": {
|
|
27991
28222
|
capName: "pipeline-orchestrator",
|
|
27992
28223
|
capScope: "system",
|
|
@@ -28011,6 +28242,12 @@ Object.freeze({
|
|
|
28011
28242
|
addonId: null,
|
|
28012
28243
|
access: "view"
|
|
28013
28244
|
},
|
|
28245
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28246
|
+
capName: "pipeline-orchestrator",
|
|
28247
|
+
capScope: "system",
|
|
28248
|
+
addonId: null,
|
|
28249
|
+
access: "create"
|
|
28250
|
+
},
|
|
28014
28251
|
"pipelineOrchestrator.saveTemplate": {
|
|
28015
28252
|
capName: "pipeline-orchestrator",
|
|
28016
28253
|
capScope: "system",
|
|
@@ -28407,7 +28644,7 @@ Object.freeze({
|
|
|
28407
28644
|
addonId: null,
|
|
28408
28645
|
access: "create"
|
|
28409
28646
|
},
|
|
28410
|
-
"recording.
|
|
28647
|
+
"recording.cancelStorageMigrationMove": {
|
|
28411
28648
|
capName: "recording",
|
|
28412
28649
|
capScope: "system",
|
|
28413
28650
|
addonId: null,
|
|
@@ -28443,7 +28680,7 @@ Object.freeze({
|
|
|
28443
28680
|
addonId: null,
|
|
28444
28681
|
access: "view"
|
|
28445
28682
|
},
|
|
28446
|
-
"recording.
|
|
28683
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28447
28684
|
capName: "recording",
|
|
28448
28685
|
capScope: "system",
|
|
28449
28686
|
addonId: null,
|
|
@@ -28467,6 +28704,12 @@ Object.freeze({
|
|
|
28467
28704
|
addonId: null,
|
|
28468
28705
|
access: "view"
|
|
28469
28706
|
},
|
|
28707
|
+
"recording.pauseForStorageMigration": {
|
|
28708
|
+
capName: "recording",
|
|
28709
|
+
capScope: "system",
|
|
28710
|
+
addonId: null,
|
|
28711
|
+
access: "create"
|
|
28712
|
+
},
|
|
28470
28713
|
"recording.pruneFootage": {
|
|
28471
28714
|
capName: "recording",
|
|
28472
28715
|
capScope: "system",
|
|
@@ -28485,7 +28728,7 @@ Object.freeze({
|
|
|
28485
28728
|
addonId: null,
|
|
28486
28729
|
access: "view"
|
|
28487
28730
|
},
|
|
28488
|
-
"recording.
|
|
28731
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28489
28732
|
capName: "recording",
|
|
28490
28733
|
capScope: "system",
|
|
28491
28734
|
addonId: null,
|
|
@@ -28509,12 +28752,24 @@ Object.freeze({
|
|
|
28509
28752
|
addonId: null,
|
|
28510
28753
|
access: "create"
|
|
28511
28754
|
},
|
|
28755
|
+
"recording.resumeForStorageMigration": {
|
|
28756
|
+
capName: "recording",
|
|
28757
|
+
capScope: "system",
|
|
28758
|
+
addonId: null,
|
|
28759
|
+
access: "create"
|
|
28760
|
+
},
|
|
28512
28761
|
"recording.setDeviceConfig": {
|
|
28513
28762
|
capName: "recording",
|
|
28514
28763
|
capScope: "system",
|
|
28515
28764
|
addonId: null,
|
|
28516
28765
|
access: "create"
|
|
28517
28766
|
},
|
|
28767
|
+
"recording.startStorageMigrationMove": {
|
|
28768
|
+
capName: "recording",
|
|
28769
|
+
capScope: "system",
|
|
28770
|
+
addonId: null,
|
|
28771
|
+
access: "create"
|
|
28772
|
+
},
|
|
28518
28773
|
"recordingExport.cancelExport": {
|
|
28519
28774
|
capName: "recordingExport",
|
|
28520
28775
|
capScope: "system",
|
|
@@ -28905,6 +29160,30 @@ Object.freeze({
|
|
|
28905
29160
|
addonId: null,
|
|
28906
29161
|
access: "view"
|
|
28907
29162
|
},
|
|
29163
|
+
"storageMigration.cancel": {
|
|
29164
|
+
capName: "storage-migration",
|
|
29165
|
+
capScope: "system",
|
|
29166
|
+
addonId: null,
|
|
29167
|
+
access: "create"
|
|
29168
|
+
},
|
|
29169
|
+
"storageMigration.plan": {
|
|
29170
|
+
capName: "storage-migration",
|
|
29171
|
+
capScope: "system",
|
|
29172
|
+
addonId: null,
|
|
29173
|
+
access: "view"
|
|
29174
|
+
},
|
|
29175
|
+
"storageMigration.start": {
|
|
29176
|
+
capName: "storage-migration",
|
|
29177
|
+
capScope: "system",
|
|
29178
|
+
addonId: null,
|
|
29179
|
+
access: "create"
|
|
29180
|
+
},
|
|
29181
|
+
"storageMigration.status": {
|
|
29182
|
+
capName: "storage-migration",
|
|
29183
|
+
capScope: "system",
|
|
29184
|
+
addonId: null,
|
|
29185
|
+
access: "view"
|
|
29186
|
+
},
|
|
28908
29187
|
"storageProvider.abortUpload": {
|
|
28909
29188
|
capName: "storage-provider",
|
|
28910
29189
|
capScope: "system",
|
|
@@ -29283,12 +29562,42 @@ Object.freeze({
|
|
|
29283
29562
|
addonId: null,
|
|
29284
29563
|
access: "create"
|
|
29285
29564
|
},
|
|
29565
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29566
|
+
capName: "terminal-session",
|
|
29567
|
+
capScope: "system",
|
|
29568
|
+
addonId: null,
|
|
29569
|
+
access: "create"
|
|
29570
|
+
},
|
|
29286
29571
|
"terminalSession.close": {
|
|
29287
29572
|
capName: "terminal-session",
|
|
29288
29573
|
capScope: "system",
|
|
29289
29574
|
addonId: null,
|
|
29290
29575
|
access: "create"
|
|
29291
29576
|
},
|
|
29577
|
+
"terminalSession.createInstance": {
|
|
29578
|
+
capName: "terminal-session",
|
|
29579
|
+
capScope: "system",
|
|
29580
|
+
addonId: null,
|
|
29581
|
+
access: "create"
|
|
29582
|
+
},
|
|
29583
|
+
"terminalSession.deleteInstance": {
|
|
29584
|
+
capName: "terminal-session",
|
|
29585
|
+
capScope: "system",
|
|
29586
|
+
addonId: null,
|
|
29587
|
+
access: "delete"
|
|
29588
|
+
},
|
|
29589
|
+
"terminalSession.listInstances": {
|
|
29590
|
+
capName: "terminal-session",
|
|
29591
|
+
capScope: "system",
|
|
29592
|
+
addonId: null,
|
|
29593
|
+
access: "view"
|
|
29594
|
+
},
|
|
29595
|
+
"terminalSession.listLegacyCameras": {
|
|
29596
|
+
capName: "terminal-session",
|
|
29597
|
+
capScope: "system",
|
|
29598
|
+
addonId: null,
|
|
29599
|
+
access: "view"
|
|
29600
|
+
},
|
|
29292
29601
|
"terminalSession.listProfiles": {
|
|
29293
29602
|
capName: "terminal-session",
|
|
29294
29603
|
capScope: "system",
|
|
@@ -29307,12 +29616,30 @@ Object.freeze({
|
|
|
29307
29616
|
addonId: null,
|
|
29308
29617
|
access: "create"
|
|
29309
29618
|
},
|
|
29619
|
+
"terminalSession.pullOutput": {
|
|
29620
|
+
capName: "terminal-session",
|
|
29621
|
+
capScope: "system",
|
|
29622
|
+
addonId: null,
|
|
29623
|
+
access: "create"
|
|
29624
|
+
},
|
|
29310
29625
|
"terminalSession.resize": {
|
|
29311
29626
|
capName: "terminal-session",
|
|
29312
29627
|
capScope: "system",
|
|
29313
29628
|
addonId: null,
|
|
29314
29629
|
access: "create"
|
|
29315
29630
|
},
|
|
29631
|
+
"terminalSession.setInstanceEnabled": {
|
|
29632
|
+
capName: "terminal-session",
|
|
29633
|
+
capScope: "system",
|
|
29634
|
+
addonId: null,
|
|
29635
|
+
access: "create"
|
|
29636
|
+
},
|
|
29637
|
+
"terminalSession.writeInput": {
|
|
29638
|
+
capName: "terminal-session",
|
|
29639
|
+
capScope: "system",
|
|
29640
|
+
addonId: null,
|
|
29641
|
+
access: "create"
|
|
29642
|
+
},
|
|
29316
29643
|
"toast.onToast": {
|
|
29317
29644
|
capName: "toast",
|
|
29318
29645
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.16",
|
|
4
4
|
"description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|