@camstack/addon-notifiers 1.2.15 → 1.2.17
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 +317 -32
- package/dist/addon.mjs +317 -32
- 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",
|
|
16247
|
+
auth: "admin"
|
|
16248
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16249
|
+
kind: "mutation",
|
|
16250
|
+
auth: "admin"
|
|
16251
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16252
|
+
kind: "mutation",
|
|
16167
16253
|
auth: "admin"
|
|
16168
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
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,6 +18538,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18439
18538
|
label: string(),
|
|
18440
18539
|
description: string().optional()
|
|
18441
18540
|
});
|
|
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
|
+
});
|
|
18442
18563
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18443
18564
|
seq: number().int().positive(),
|
|
18444
18565
|
kind: literal("data"),
|
|
@@ -18455,7 +18576,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18455
18576
|
snapshot: string().optional(),
|
|
18456
18577
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18457
18578
|
});
|
|
18458
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
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({
|
|
18459
18602
|
profileId: string(),
|
|
18460
18603
|
cols: number().int().positive(),
|
|
18461
18604
|
rows: number().int().positive()
|
|
@@ -18472,7 +18615,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18472
18615
|
}), method(object({
|
|
18473
18616
|
sessionId: string(),
|
|
18474
18617
|
afterSeq: number().int().nonnegative(),
|
|
18475
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
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()
|
|
18476
18625
|
}), TerminalOutputBatchSchema, {
|
|
18477
18626
|
kind: "mutation",
|
|
18478
18627
|
auth: "admin",
|
|
@@ -20413,6 +20562,7 @@ var FaceInfoSchema = object({
|
|
|
20413
20562
|
var FaceFilterEnum = _enum([
|
|
20414
20563
|
"unassigned",
|
|
20415
20564
|
"recognized",
|
|
20565
|
+
"identified",
|
|
20416
20566
|
"all"
|
|
20417
20567
|
]);
|
|
20418
20568
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20441,6 +20591,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20441
20591
|
kind: "mutation",
|
|
20442
20592
|
auth: "admin"
|
|
20443
20593
|
}), method(object({
|
|
20594
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20595
|
+
deviceId: number().int().optional(),
|
|
20444
20596
|
limit: number().int().positive().optional(),
|
|
20445
20597
|
filter: FaceFilterEnum.optional(),
|
|
20446
20598
|
/**
|
|
@@ -22206,6 +22358,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22206
22358
|
capName: string().min(1).max(64),
|
|
22207
22359
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22208
22360
|
valuePath: string().min(1).max(64)
|
|
22361
|
+
}),
|
|
22362
|
+
object({
|
|
22363
|
+
kind: literal("latest-recognition"),
|
|
22364
|
+
recognition: _enum(["person", "plate"])
|
|
22209
22365
|
})
|
|
22210
22366
|
]);
|
|
22211
22367
|
var OsdSlotBindingSchema = object({
|
|
@@ -22311,6 +22467,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22311
22467
|
}), object({ success: literal(true) }), {
|
|
22312
22468
|
kind: "mutation",
|
|
22313
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"
|
|
22314
22479
|
}), method(object({
|
|
22315
22480
|
deviceId: number().int(),
|
|
22316
22481
|
slotId: string().min(1),
|
|
@@ -23196,13 +23361,19 @@ method(object({
|
|
|
23196
23361
|
}), {
|
|
23197
23362
|
kind: "mutation",
|
|
23198
23363
|
auth: "admin"
|
|
23199
|
-
}), method(
|
|
23364
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23200
23365
|
kind: "mutation",
|
|
23201
23366
|
auth: "admin"
|
|
23202
|
-
}), method(object({
|
|
23203
|
-
kind: "
|
|
23367
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23368
|
+
kind: "mutation",
|
|
23204
23369
|
auth: "admin"
|
|
23205
|
-
}), 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() }), {
|
|
23206
23377
|
kind: "mutation",
|
|
23207
23378
|
auth: "admin"
|
|
23208
23379
|
});
|
|
@@ -27324,6 +27495,12 @@ Object.freeze({
|
|
|
27324
27495
|
addonId: null,
|
|
27325
27496
|
access: "delete"
|
|
27326
27497
|
},
|
|
27498
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27499
|
+
capName: "osd-manager",
|
|
27500
|
+
capScope: "system",
|
|
27501
|
+
addonId: null,
|
|
27502
|
+
access: "create"
|
|
27503
|
+
},
|
|
27327
27504
|
"osdManager.getConditionSupport": {
|
|
27328
27505
|
capName: "osd-manager",
|
|
27329
27506
|
capScope: "system",
|
|
@@ -27420,7 +27597,7 @@ Object.freeze({
|
|
|
27420
27597
|
addonId: null,
|
|
27421
27598
|
access: "create"
|
|
27422
27599
|
},
|
|
27423
|
-
"pipelineAnalytics.
|
|
27600
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27424
27601
|
capName: "pipeline-analytics",
|
|
27425
27602
|
capScope: "device",
|
|
27426
27603
|
addonId: null,
|
|
@@ -27492,12 +27669,6 @@ Object.freeze({
|
|
|
27492
27669
|
addonId: null,
|
|
27493
27670
|
access: "view"
|
|
27494
27671
|
},
|
|
27495
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27496
|
-
capName: "pipeline-analytics",
|
|
27497
|
-
capScope: "device",
|
|
27498
|
-
addonId: null,
|
|
27499
|
-
access: "view"
|
|
27500
|
-
},
|
|
27501
27672
|
"pipelineAnalytics.getMotionEvents": {
|
|
27502
27673
|
capName: "pipeline-analytics",
|
|
27503
27674
|
capScope: "device",
|
|
@@ -27534,6 +27705,12 @@ Object.freeze({
|
|
|
27534
27705
|
addonId: null,
|
|
27535
27706
|
access: "view"
|
|
27536
27707
|
},
|
|
27708
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27709
|
+
capName: "pipeline-analytics",
|
|
27710
|
+
capScope: "device",
|
|
27711
|
+
addonId: null,
|
|
27712
|
+
access: "view"
|
|
27713
|
+
},
|
|
27537
27714
|
"pipelineAnalytics.getTrack": {
|
|
27538
27715
|
capName: "pipeline-analytics",
|
|
27539
27716
|
capScope: "device",
|
|
@@ -27612,6 +27789,12 @@ Object.freeze({
|
|
|
27612
27789
|
addonId: null,
|
|
27613
27790
|
access: "view"
|
|
27614
27791
|
},
|
|
27792
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27793
|
+
capName: "pipeline-analytics",
|
|
27794
|
+
capScope: "device",
|
|
27795
|
+
addonId: null,
|
|
27796
|
+
access: "create"
|
|
27797
|
+
},
|
|
27615
27798
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27616
27799
|
capName: "pipeline-analytics",
|
|
27617
27800
|
capScope: "device",
|
|
@@ -27642,7 +27825,7 @@ Object.freeze({
|
|
|
27642
27825
|
addonId: null,
|
|
27643
27826
|
access: "create"
|
|
27644
27827
|
},
|
|
27645
|
-
"pipelineAnalytics.
|
|
27828
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27646
27829
|
capName: "pipeline-analytics",
|
|
27647
27830
|
capScope: "device",
|
|
27648
27831
|
addonId: null,
|
|
@@ -27654,6 +27837,12 @@ Object.freeze({
|
|
|
27654
27837
|
addonId: null,
|
|
27655
27838
|
access: "create"
|
|
27656
27839
|
},
|
|
27840
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27841
|
+
capName: "pipeline-analytics",
|
|
27842
|
+
capScope: "device",
|
|
27843
|
+
addonId: null,
|
|
27844
|
+
access: "create"
|
|
27845
|
+
},
|
|
27657
27846
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27658
27847
|
capName: "pipeline-analytics",
|
|
27659
27848
|
capScope: "device",
|
|
@@ -27678,6 +27867,12 @@ Object.freeze({
|
|
|
27678
27867
|
addonId: null,
|
|
27679
27868
|
access: "create"
|
|
27680
27869
|
},
|
|
27870
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27871
|
+
capName: "pipeline-analytics",
|
|
27872
|
+
capScope: "device",
|
|
27873
|
+
addonId: null,
|
|
27874
|
+
access: "create"
|
|
27875
|
+
},
|
|
27681
27876
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27682
27877
|
capName: "pipeline-analytics",
|
|
27683
27878
|
capScope: "device",
|
|
@@ -28044,6 +28239,12 @@ Object.freeze({
|
|
|
28044
28239
|
addonId: null,
|
|
28045
28240
|
access: "view"
|
|
28046
28241
|
},
|
|
28242
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28243
|
+
capName: "pipeline-orchestrator",
|
|
28244
|
+
capScope: "system",
|
|
28245
|
+
addonId: null,
|
|
28246
|
+
access: "create"
|
|
28247
|
+
},
|
|
28047
28248
|
"pipelineOrchestrator.rebalance": {
|
|
28048
28249
|
capName: "pipeline-orchestrator",
|
|
28049
28250
|
capScope: "system",
|
|
@@ -28068,6 +28269,12 @@ Object.freeze({
|
|
|
28068
28269
|
addonId: null,
|
|
28069
28270
|
access: "view"
|
|
28070
28271
|
},
|
|
28272
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28273
|
+
capName: "pipeline-orchestrator",
|
|
28274
|
+
capScope: "system",
|
|
28275
|
+
addonId: null,
|
|
28276
|
+
access: "create"
|
|
28277
|
+
},
|
|
28071
28278
|
"pipelineOrchestrator.saveTemplate": {
|
|
28072
28279
|
capName: "pipeline-orchestrator",
|
|
28073
28280
|
capScope: "system",
|
|
@@ -28464,7 +28671,7 @@ Object.freeze({
|
|
|
28464
28671
|
addonId: null,
|
|
28465
28672
|
access: "create"
|
|
28466
28673
|
},
|
|
28467
|
-
"recording.
|
|
28674
|
+
"recording.cancelStorageMigrationMove": {
|
|
28468
28675
|
capName: "recording",
|
|
28469
28676
|
capScope: "system",
|
|
28470
28677
|
addonId: null,
|
|
@@ -28500,7 +28707,7 @@ Object.freeze({
|
|
|
28500
28707
|
addonId: null,
|
|
28501
28708
|
access: "view"
|
|
28502
28709
|
},
|
|
28503
|
-
"recording.
|
|
28710
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28504
28711
|
capName: "recording",
|
|
28505
28712
|
capScope: "system",
|
|
28506
28713
|
addonId: null,
|
|
@@ -28524,6 +28731,12 @@ Object.freeze({
|
|
|
28524
28731
|
addonId: null,
|
|
28525
28732
|
access: "view"
|
|
28526
28733
|
},
|
|
28734
|
+
"recording.pauseForStorageMigration": {
|
|
28735
|
+
capName: "recording",
|
|
28736
|
+
capScope: "system",
|
|
28737
|
+
addonId: null,
|
|
28738
|
+
access: "create"
|
|
28739
|
+
},
|
|
28527
28740
|
"recording.pruneFootage": {
|
|
28528
28741
|
capName: "recording",
|
|
28529
28742
|
capScope: "system",
|
|
@@ -28542,7 +28755,7 @@ Object.freeze({
|
|
|
28542
28755
|
addonId: null,
|
|
28543
28756
|
access: "view"
|
|
28544
28757
|
},
|
|
28545
|
-
"recording.
|
|
28758
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28546
28759
|
capName: "recording",
|
|
28547
28760
|
capScope: "system",
|
|
28548
28761
|
addonId: null,
|
|
@@ -28566,12 +28779,24 @@ Object.freeze({
|
|
|
28566
28779
|
addonId: null,
|
|
28567
28780
|
access: "create"
|
|
28568
28781
|
},
|
|
28782
|
+
"recording.resumeForStorageMigration": {
|
|
28783
|
+
capName: "recording",
|
|
28784
|
+
capScope: "system",
|
|
28785
|
+
addonId: null,
|
|
28786
|
+
access: "create"
|
|
28787
|
+
},
|
|
28569
28788
|
"recording.setDeviceConfig": {
|
|
28570
28789
|
capName: "recording",
|
|
28571
28790
|
capScope: "system",
|
|
28572
28791
|
addonId: null,
|
|
28573
28792
|
access: "create"
|
|
28574
28793
|
},
|
|
28794
|
+
"recording.startStorageMigrationMove": {
|
|
28795
|
+
capName: "recording",
|
|
28796
|
+
capScope: "system",
|
|
28797
|
+
addonId: null,
|
|
28798
|
+
access: "create"
|
|
28799
|
+
},
|
|
28575
28800
|
"recordingExport.cancelExport": {
|
|
28576
28801
|
capName: "recordingExport",
|
|
28577
28802
|
capScope: "system",
|
|
@@ -28962,6 +29187,30 @@ Object.freeze({
|
|
|
28962
29187
|
addonId: null,
|
|
28963
29188
|
access: "view"
|
|
28964
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
|
+
},
|
|
28965
29214
|
"storageProvider.abortUpload": {
|
|
28966
29215
|
capName: "storage-provider",
|
|
28967
29216
|
capScope: "system",
|
|
@@ -29340,12 +29589,42 @@ Object.freeze({
|
|
|
29340
29589
|
addonId: null,
|
|
29341
29590
|
access: "create"
|
|
29342
29591
|
},
|
|
29592
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29593
|
+
capName: "terminal-session",
|
|
29594
|
+
capScope: "system",
|
|
29595
|
+
addonId: null,
|
|
29596
|
+
access: "create"
|
|
29597
|
+
},
|
|
29343
29598
|
"terminalSession.close": {
|
|
29344
29599
|
capName: "terminal-session",
|
|
29345
29600
|
capScope: "system",
|
|
29346
29601
|
addonId: null,
|
|
29347
29602
|
access: "create"
|
|
29348
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
|
+
},
|
|
29349
29628
|
"terminalSession.listProfiles": {
|
|
29350
29629
|
capName: "terminal-session",
|
|
29351
29630
|
capScope: "system",
|
|
@@ -29376,6 +29655,12 @@ Object.freeze({
|
|
|
29376
29655
|
addonId: null,
|
|
29377
29656
|
access: "create"
|
|
29378
29657
|
},
|
|
29658
|
+
"terminalSession.setInstanceEnabled": {
|
|
29659
|
+
capName: "terminal-session",
|
|
29660
|
+
capScope: "system",
|
|
29661
|
+
addonId: null,
|
|
29662
|
+
access: "create"
|
|
29663
|
+
},
|
|
29379
29664
|
"terminalSession.writeInput": {
|
|
29380
29665
|
capName: "terminal-session",
|
|
29381
29666
|
capScope: "system",
|
|
@@ -31011,7 +31296,7 @@ async function sendHttpPlan(plan, timeoutMs = DEFAULT_OUTPUT_TIMEOUT_MS) {
|
|
|
31011
31296
|
return fetchWithTimeout(plan.url, init, timeoutMs);
|
|
31012
31297
|
}
|
|
31013
31298
|
function buildRequestInit(plan) {
|
|
31014
|
-
const headers = { ...plan.headers
|
|
31299
|
+
const headers = { ...plan.headers };
|
|
31015
31300
|
const init = {
|
|
31016
31301
|
method: plan.method ?? "POST",
|
|
31017
31302
|
headers
|
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",
|
|
16220
|
+
auth: "admin"
|
|
16221
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16222
|
+
kind: "mutation",
|
|
16223
|
+
auth: "admin"
|
|
16224
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16225
|
+
kind: "mutation",
|
|
16140
16226
|
auth: "admin"
|
|
16141
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
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,6 +18511,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18412
18511
|
label: string(),
|
|
18413
18512
|
description: string().optional()
|
|
18414
18513
|
});
|
|
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
|
+
});
|
|
18415
18536
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18416
18537
|
seq: number().int().positive(),
|
|
18417
18538
|
kind: literal("data"),
|
|
@@ -18428,7 +18549,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18428
18549
|
snapshot: string().optional(),
|
|
18429
18550
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18430
18551
|
});
|
|
18431
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
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({
|
|
18432
18575
|
profileId: string(),
|
|
18433
18576
|
cols: number().int().positive(),
|
|
18434
18577
|
rows: number().int().positive()
|
|
@@ -18445,7 +18588,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18445
18588
|
}), method(object({
|
|
18446
18589
|
sessionId: string(),
|
|
18447
18590
|
afterSeq: number().int().nonnegative(),
|
|
18448
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
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()
|
|
18449
18598
|
}), TerminalOutputBatchSchema, {
|
|
18450
18599
|
kind: "mutation",
|
|
18451
18600
|
auth: "admin",
|
|
@@ -20386,6 +20535,7 @@ var FaceInfoSchema = object({
|
|
|
20386
20535
|
var FaceFilterEnum = _enum([
|
|
20387
20536
|
"unassigned",
|
|
20388
20537
|
"recognized",
|
|
20538
|
+
"identified",
|
|
20389
20539
|
"all"
|
|
20390
20540
|
]);
|
|
20391
20541
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20414,6 +20564,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20414
20564
|
kind: "mutation",
|
|
20415
20565
|
auth: "admin"
|
|
20416
20566
|
}), method(object({
|
|
20567
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20568
|
+
deviceId: number().int().optional(),
|
|
20417
20569
|
limit: number().int().positive().optional(),
|
|
20418
20570
|
filter: FaceFilterEnum.optional(),
|
|
20419
20571
|
/**
|
|
@@ -22179,6 +22331,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22179
22331
|
capName: string().min(1).max(64),
|
|
22180
22332
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22181
22333
|
valuePath: string().min(1).max(64)
|
|
22334
|
+
}),
|
|
22335
|
+
object({
|
|
22336
|
+
kind: literal("latest-recognition"),
|
|
22337
|
+
recognition: _enum(["person", "plate"])
|
|
22182
22338
|
})
|
|
22183
22339
|
]);
|
|
22184
22340
|
var OsdSlotBindingSchema = object({
|
|
@@ -22284,6 +22440,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22284
22440
|
}), object({ success: literal(true) }), {
|
|
22285
22441
|
kind: "mutation",
|
|
22286
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"
|
|
22287
22452
|
}), method(object({
|
|
22288
22453
|
deviceId: number().int(),
|
|
22289
22454
|
slotId: string().min(1),
|
|
@@ -23169,13 +23334,19 @@ method(object({
|
|
|
23169
23334
|
}), {
|
|
23170
23335
|
kind: "mutation",
|
|
23171
23336
|
auth: "admin"
|
|
23172
|
-
}), method(
|
|
23337
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23173
23338
|
kind: "mutation",
|
|
23174
23339
|
auth: "admin"
|
|
23175
|
-
}), method(object({
|
|
23176
|
-
kind: "
|
|
23340
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23341
|
+
kind: "mutation",
|
|
23177
23342
|
auth: "admin"
|
|
23178
|
-
}), 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() }), {
|
|
23179
23350
|
kind: "mutation",
|
|
23180
23351
|
auth: "admin"
|
|
23181
23352
|
});
|
|
@@ -27297,6 +27468,12 @@ Object.freeze({
|
|
|
27297
27468
|
addonId: null,
|
|
27298
27469
|
access: "delete"
|
|
27299
27470
|
},
|
|
27471
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27472
|
+
capName: "osd-manager",
|
|
27473
|
+
capScope: "system",
|
|
27474
|
+
addonId: null,
|
|
27475
|
+
access: "create"
|
|
27476
|
+
},
|
|
27300
27477
|
"osdManager.getConditionSupport": {
|
|
27301
27478
|
capName: "osd-manager",
|
|
27302
27479
|
capScope: "system",
|
|
@@ -27393,7 +27570,7 @@ Object.freeze({
|
|
|
27393
27570
|
addonId: null,
|
|
27394
27571
|
access: "create"
|
|
27395
27572
|
},
|
|
27396
|
-
"pipelineAnalytics.
|
|
27573
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27397
27574
|
capName: "pipeline-analytics",
|
|
27398
27575
|
capScope: "device",
|
|
27399
27576
|
addonId: null,
|
|
@@ -27465,12 +27642,6 @@ Object.freeze({
|
|
|
27465
27642
|
addonId: null,
|
|
27466
27643
|
access: "view"
|
|
27467
27644
|
},
|
|
27468
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27469
|
-
capName: "pipeline-analytics",
|
|
27470
|
-
capScope: "device",
|
|
27471
|
-
addonId: null,
|
|
27472
|
-
access: "view"
|
|
27473
|
-
},
|
|
27474
27645
|
"pipelineAnalytics.getMotionEvents": {
|
|
27475
27646
|
capName: "pipeline-analytics",
|
|
27476
27647
|
capScope: "device",
|
|
@@ -27507,6 +27678,12 @@ Object.freeze({
|
|
|
27507
27678
|
addonId: null,
|
|
27508
27679
|
access: "view"
|
|
27509
27680
|
},
|
|
27681
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27682
|
+
capName: "pipeline-analytics",
|
|
27683
|
+
capScope: "device",
|
|
27684
|
+
addonId: null,
|
|
27685
|
+
access: "view"
|
|
27686
|
+
},
|
|
27510
27687
|
"pipelineAnalytics.getTrack": {
|
|
27511
27688
|
capName: "pipeline-analytics",
|
|
27512
27689
|
capScope: "device",
|
|
@@ -27585,6 +27762,12 @@ Object.freeze({
|
|
|
27585
27762
|
addonId: null,
|
|
27586
27763
|
access: "view"
|
|
27587
27764
|
},
|
|
27765
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27766
|
+
capName: "pipeline-analytics",
|
|
27767
|
+
capScope: "device",
|
|
27768
|
+
addonId: null,
|
|
27769
|
+
access: "create"
|
|
27770
|
+
},
|
|
27588
27771
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27589
27772
|
capName: "pipeline-analytics",
|
|
27590
27773
|
capScope: "device",
|
|
@@ -27615,7 +27798,7 @@ Object.freeze({
|
|
|
27615
27798
|
addonId: null,
|
|
27616
27799
|
access: "create"
|
|
27617
27800
|
},
|
|
27618
|
-
"pipelineAnalytics.
|
|
27801
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27619
27802
|
capName: "pipeline-analytics",
|
|
27620
27803
|
capScope: "device",
|
|
27621
27804
|
addonId: null,
|
|
@@ -27627,6 +27810,12 @@ Object.freeze({
|
|
|
27627
27810
|
addonId: null,
|
|
27628
27811
|
access: "create"
|
|
27629
27812
|
},
|
|
27813
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27814
|
+
capName: "pipeline-analytics",
|
|
27815
|
+
capScope: "device",
|
|
27816
|
+
addonId: null,
|
|
27817
|
+
access: "create"
|
|
27818
|
+
},
|
|
27630
27819
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27631
27820
|
capName: "pipeline-analytics",
|
|
27632
27821
|
capScope: "device",
|
|
@@ -27651,6 +27840,12 @@ Object.freeze({
|
|
|
27651
27840
|
addonId: null,
|
|
27652
27841
|
access: "create"
|
|
27653
27842
|
},
|
|
27843
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27844
|
+
capName: "pipeline-analytics",
|
|
27845
|
+
capScope: "device",
|
|
27846
|
+
addonId: null,
|
|
27847
|
+
access: "create"
|
|
27848
|
+
},
|
|
27654
27849
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27655
27850
|
capName: "pipeline-analytics",
|
|
27656
27851
|
capScope: "device",
|
|
@@ -28017,6 +28212,12 @@ Object.freeze({
|
|
|
28017
28212
|
addonId: null,
|
|
28018
28213
|
access: "view"
|
|
28019
28214
|
},
|
|
28215
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28216
|
+
capName: "pipeline-orchestrator",
|
|
28217
|
+
capScope: "system",
|
|
28218
|
+
addonId: null,
|
|
28219
|
+
access: "create"
|
|
28220
|
+
},
|
|
28020
28221
|
"pipelineOrchestrator.rebalance": {
|
|
28021
28222
|
capName: "pipeline-orchestrator",
|
|
28022
28223
|
capScope: "system",
|
|
@@ -28041,6 +28242,12 @@ Object.freeze({
|
|
|
28041
28242
|
addonId: null,
|
|
28042
28243
|
access: "view"
|
|
28043
28244
|
},
|
|
28245
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28246
|
+
capName: "pipeline-orchestrator",
|
|
28247
|
+
capScope: "system",
|
|
28248
|
+
addonId: null,
|
|
28249
|
+
access: "create"
|
|
28250
|
+
},
|
|
28044
28251
|
"pipelineOrchestrator.saveTemplate": {
|
|
28045
28252
|
capName: "pipeline-orchestrator",
|
|
28046
28253
|
capScope: "system",
|
|
@@ -28437,7 +28644,7 @@ Object.freeze({
|
|
|
28437
28644
|
addonId: null,
|
|
28438
28645
|
access: "create"
|
|
28439
28646
|
},
|
|
28440
|
-
"recording.
|
|
28647
|
+
"recording.cancelStorageMigrationMove": {
|
|
28441
28648
|
capName: "recording",
|
|
28442
28649
|
capScope: "system",
|
|
28443
28650
|
addonId: null,
|
|
@@ -28473,7 +28680,7 @@ Object.freeze({
|
|
|
28473
28680
|
addonId: null,
|
|
28474
28681
|
access: "view"
|
|
28475
28682
|
},
|
|
28476
|
-
"recording.
|
|
28683
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28477
28684
|
capName: "recording",
|
|
28478
28685
|
capScope: "system",
|
|
28479
28686
|
addonId: null,
|
|
@@ -28497,6 +28704,12 @@ Object.freeze({
|
|
|
28497
28704
|
addonId: null,
|
|
28498
28705
|
access: "view"
|
|
28499
28706
|
},
|
|
28707
|
+
"recording.pauseForStorageMigration": {
|
|
28708
|
+
capName: "recording",
|
|
28709
|
+
capScope: "system",
|
|
28710
|
+
addonId: null,
|
|
28711
|
+
access: "create"
|
|
28712
|
+
},
|
|
28500
28713
|
"recording.pruneFootage": {
|
|
28501
28714
|
capName: "recording",
|
|
28502
28715
|
capScope: "system",
|
|
@@ -28515,7 +28728,7 @@ Object.freeze({
|
|
|
28515
28728
|
addonId: null,
|
|
28516
28729
|
access: "view"
|
|
28517
28730
|
},
|
|
28518
|
-
"recording.
|
|
28731
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28519
28732
|
capName: "recording",
|
|
28520
28733
|
capScope: "system",
|
|
28521
28734
|
addonId: null,
|
|
@@ -28539,12 +28752,24 @@ Object.freeze({
|
|
|
28539
28752
|
addonId: null,
|
|
28540
28753
|
access: "create"
|
|
28541
28754
|
},
|
|
28755
|
+
"recording.resumeForStorageMigration": {
|
|
28756
|
+
capName: "recording",
|
|
28757
|
+
capScope: "system",
|
|
28758
|
+
addonId: null,
|
|
28759
|
+
access: "create"
|
|
28760
|
+
},
|
|
28542
28761
|
"recording.setDeviceConfig": {
|
|
28543
28762
|
capName: "recording",
|
|
28544
28763
|
capScope: "system",
|
|
28545
28764
|
addonId: null,
|
|
28546
28765
|
access: "create"
|
|
28547
28766
|
},
|
|
28767
|
+
"recording.startStorageMigrationMove": {
|
|
28768
|
+
capName: "recording",
|
|
28769
|
+
capScope: "system",
|
|
28770
|
+
addonId: null,
|
|
28771
|
+
access: "create"
|
|
28772
|
+
},
|
|
28548
28773
|
"recordingExport.cancelExport": {
|
|
28549
28774
|
capName: "recordingExport",
|
|
28550
28775
|
capScope: "system",
|
|
@@ -28935,6 +29160,30 @@ Object.freeze({
|
|
|
28935
29160
|
addonId: null,
|
|
28936
29161
|
access: "view"
|
|
28937
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
|
+
},
|
|
28938
29187
|
"storageProvider.abortUpload": {
|
|
28939
29188
|
capName: "storage-provider",
|
|
28940
29189
|
capScope: "system",
|
|
@@ -29313,12 +29562,42 @@ Object.freeze({
|
|
|
29313
29562
|
addonId: null,
|
|
29314
29563
|
access: "create"
|
|
29315
29564
|
},
|
|
29565
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29566
|
+
capName: "terminal-session",
|
|
29567
|
+
capScope: "system",
|
|
29568
|
+
addonId: null,
|
|
29569
|
+
access: "create"
|
|
29570
|
+
},
|
|
29316
29571
|
"terminalSession.close": {
|
|
29317
29572
|
capName: "terminal-session",
|
|
29318
29573
|
capScope: "system",
|
|
29319
29574
|
addonId: null,
|
|
29320
29575
|
access: "create"
|
|
29321
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
|
+
},
|
|
29322
29601
|
"terminalSession.listProfiles": {
|
|
29323
29602
|
capName: "terminal-session",
|
|
29324
29603
|
capScope: "system",
|
|
@@ -29349,6 +29628,12 @@ Object.freeze({
|
|
|
29349
29628
|
addonId: null,
|
|
29350
29629
|
access: "create"
|
|
29351
29630
|
},
|
|
29631
|
+
"terminalSession.setInstanceEnabled": {
|
|
29632
|
+
capName: "terminal-session",
|
|
29633
|
+
capScope: "system",
|
|
29634
|
+
addonId: null,
|
|
29635
|
+
access: "create"
|
|
29636
|
+
},
|
|
29352
29637
|
"terminalSession.writeInput": {
|
|
29353
29638
|
capName: "terminal-session",
|
|
29354
29639
|
capScope: "system",
|
|
@@ -30984,7 +31269,7 @@ async function sendHttpPlan(plan, timeoutMs = DEFAULT_OUTPUT_TIMEOUT_MS) {
|
|
|
30984
31269
|
return fetchWithTimeout(plan.url, init, timeoutMs);
|
|
30985
31270
|
}
|
|
30986
31271
|
function buildRequestInit(plan) {
|
|
30987
|
-
const headers = { ...plan.headers
|
|
31272
|
+
const headers = { ...plan.headers };
|
|
30988
31273
|
const init = {
|
|
30989
31274
|
method: plan.method ?? "POST",
|
|
30990
31275
|
headers
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.17",
|
|
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",
|