@camstack/addon-provider-unraid 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +357 -30
- package/dist/addon.mjs +357 -30
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -7565,12 +7565,11 @@ var RecordingConfigSchema = object({
|
|
|
7565
7565
|
/**
|
|
7566
7566
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7567
7567
|
*
|
|
7568
|
-
* One shape shared by the recorder
|
|
7569
|
-
*
|
|
7570
|
-
*
|
|
7571
|
-
*
|
|
7572
|
-
*
|
|
7573
|
-
* row on the owning addon's surface.
|
|
7568
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7569
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7570
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7571
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7572
|
+
* addon surface.
|
|
7574
7573
|
*/
|
|
7575
7574
|
var RelocateJobStateSchema = _enum([
|
|
7576
7575
|
"running",
|
|
@@ -7597,19 +7596,100 @@ var RelocateJobSchema = object({
|
|
|
7597
7596
|
finishedAt: number().nullable(),
|
|
7598
7597
|
error: string().nullable()
|
|
7599
7598
|
});
|
|
7599
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7600
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7601
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7600
7602
|
var RelocateFootageInputSchema = object({
|
|
7601
|
-
deviceId: number().optional(),
|
|
7602
7603
|
fromLocationId: string(),
|
|
7603
7604
|
toLocationId: string(),
|
|
7604
7605
|
entities: array(_enum(["segments"])).optional(),
|
|
7606
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7607
|
+
* pre-orchestration compatibility path. */
|
|
7608
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7605
7609
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7606
7610
|
* never allowed to starve live writers. */
|
|
7607
7611
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7608
7612
|
});
|
|
7609
|
-
|
|
7610
|
-
|
|
7613
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7614
|
+
* from persistent recording settings: a migration never changes
|
|
7615
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7616
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7617
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7618
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7611
7619
|
toLocationId: string(),
|
|
7612
7620
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7621
|
+
}).extend({ leaseId: string().min(1) });
|
|
7622
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7623
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7624
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7625
|
+
var StorageMigrationClassSchema = _enum([
|
|
7626
|
+
"recordings",
|
|
7627
|
+
"recordingsLow",
|
|
7628
|
+
"eventMedia"
|
|
7629
|
+
]);
|
|
7630
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7631
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7632
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7633
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7634
|
+
recordings: string().min(1).optional(),
|
|
7635
|
+
recordingsLow: string().min(1).optional(),
|
|
7636
|
+
eventMedia: string().min(1).optional()
|
|
7637
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7638
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7639
|
+
var StorageMigrationInputSchema = object({
|
|
7640
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7641
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7642
|
+
});
|
|
7643
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7644
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7645
|
+
* verified. */
|
|
7646
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7647
|
+
"planning",
|
|
7648
|
+
"pausing",
|
|
7649
|
+
"moving",
|
|
7650
|
+
"verifying",
|
|
7651
|
+
"repointing",
|
|
7652
|
+
"refreshing",
|
|
7653
|
+
"resuming",
|
|
7654
|
+
"done",
|
|
7655
|
+
"failed",
|
|
7656
|
+
"cancelled"
|
|
7657
|
+
]);
|
|
7658
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7659
|
+
"pipeline",
|
|
7660
|
+
"recorder",
|
|
7661
|
+
"analytics"
|
|
7662
|
+
]);
|
|
7663
|
+
var StorageMigrationMoveSchema = object({
|
|
7664
|
+
storageClass: StorageMigrationClassSchema,
|
|
7665
|
+
fromLocationId: string(),
|
|
7666
|
+
toLocationId: string(),
|
|
7667
|
+
moverJobId: string().nullable(),
|
|
7668
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7669
|
+
error: string().nullable()
|
|
7670
|
+
});
|
|
7671
|
+
var StorageMigrationJobSchema = object({
|
|
7672
|
+
jobId: string(),
|
|
7673
|
+
phase: StorageMigrationPhaseSchema,
|
|
7674
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7675
|
+
throttleMbps: number(),
|
|
7676
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7677
|
+
pauseLeaseId: string().nullable(),
|
|
7678
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7679
|
+
repointed: boolean(),
|
|
7680
|
+
cancelRequested: boolean(),
|
|
7681
|
+
startedAt: number(),
|
|
7682
|
+
updatedAt: number(),
|
|
7683
|
+
finishedAt: number().nullable(),
|
|
7684
|
+
error: string().nullable()
|
|
7685
|
+
});
|
|
7686
|
+
var StorageMigrationPlanSchema = object({
|
|
7687
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7688
|
+
moves: array(object({
|
|
7689
|
+
storageClass: StorageMigrationClassSchema,
|
|
7690
|
+
fromLocationId: string(),
|
|
7691
|
+
toLocationId: string()
|
|
7692
|
+
}))
|
|
7613
7693
|
});
|
|
7614
7694
|
/**
|
|
7615
7695
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16263,13 +16343,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16263
16343
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16264
16344
|
kind: "mutation",
|
|
16265
16345
|
auth: "admin"
|
|
16266
|
-
}), method(
|
|
16346
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16267
16347
|
kind: "mutation",
|
|
16268
16348
|
auth: "admin"
|
|
16269
|
-
}), method(object({
|
|
16270
|
-
kind: "
|
|
16349
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16350
|
+
kind: "mutation",
|
|
16271
16351
|
auth: "admin"
|
|
16272
|
-
}), method(
|
|
16352
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16353
|
+
kind: "mutation",
|
|
16354
|
+
auth: "admin"
|
|
16355
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16356
|
+
kind: "mutation",
|
|
16357
|
+
auth: "admin"
|
|
16358
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16273
16359
|
kind: "mutation",
|
|
16274
16360
|
auth: "admin"
|
|
16275
16361
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17799,7 +17885,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17799
17885
|
reachable: boolean(),
|
|
17800
17886
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17801
17887
|
});
|
|
17802
|
-
method(object({
|
|
17888
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17889
|
+
kind: "mutation",
|
|
17890
|
+
auth: "admin"
|
|
17891
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17892
|
+
kind: "mutation",
|
|
17893
|
+
auth: "admin"
|
|
17894
|
+
}), method(object({
|
|
17803
17895
|
deviceId: number(),
|
|
17804
17896
|
agentNodeId: string()
|
|
17805
17897
|
}), object({ success: literal(true) }), {
|
|
@@ -18473,6 +18565,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18473
18565
|
locationId: string(),
|
|
18474
18566
|
targetBytes: number().int().positive()
|
|
18475
18567
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18568
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18569
|
+
kind: "mutation",
|
|
18570
|
+
auth: "admin"
|
|
18571
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18572
|
+
kind: "mutation",
|
|
18573
|
+
auth: "admin"
|
|
18574
|
+
});
|
|
18476
18575
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18477
18576
|
providerId: string().min(1),
|
|
18478
18577
|
displayName: string().min(1),
|
|
@@ -18576,7 +18675,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18576
18675
|
label: string(),
|
|
18577
18676
|
description: string().optional()
|
|
18578
18677
|
});
|
|
18579
|
-
|
|
18678
|
+
/**
|
|
18679
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18680
|
+
* an instance declares a camera.
|
|
18681
|
+
*/
|
|
18682
|
+
var TerminalInstanceInfoSchema = object({
|
|
18683
|
+
instanceId: string(),
|
|
18684
|
+
cameraStableId: string(),
|
|
18685
|
+
nodeId: string(),
|
|
18686
|
+
profileId: string(),
|
|
18687
|
+
profileLabel: string(),
|
|
18688
|
+
name: string(),
|
|
18689
|
+
enabled: boolean()
|
|
18690
|
+
});
|
|
18691
|
+
var TerminalLegacyCameraSchema = object({
|
|
18692
|
+
stableId: string(),
|
|
18693
|
+
nodeId: string(),
|
|
18694
|
+
profileId: string(),
|
|
18695
|
+
profileLabel: string(),
|
|
18696
|
+
name: string(),
|
|
18697
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18698
|
+
adoptable: boolean()
|
|
18699
|
+
});
|
|
18700
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18701
|
+
seq: number().int().positive(),
|
|
18702
|
+
kind: literal("data"),
|
|
18703
|
+
data: string()
|
|
18704
|
+
}), object({
|
|
18705
|
+
seq: number().int().positive(),
|
|
18706
|
+
kind: literal("exit"),
|
|
18707
|
+
exitCode: number().int(),
|
|
18708
|
+
signal: number().int().optional()
|
|
18709
|
+
})]);
|
|
18710
|
+
var TerminalOutputBatchSchema = object({
|
|
18711
|
+
cursor: number().int().nonnegative(),
|
|
18712
|
+
reset: boolean(),
|
|
18713
|
+
snapshot: string().optional(),
|
|
18714
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18715
|
+
});
|
|
18716
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18717
|
+
targetNodeId: string().min(1),
|
|
18718
|
+
profileId: string().min(1),
|
|
18719
|
+
name: string().trim().min(1).max(160).optional()
|
|
18720
|
+
}), TerminalInstanceInfoSchema, {
|
|
18721
|
+
kind: "mutation",
|
|
18722
|
+
auth: "admin"
|
|
18723
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18724
|
+
kind: "mutation",
|
|
18725
|
+
auth: "admin"
|
|
18726
|
+
}), method(object({
|
|
18727
|
+
instanceId: string().min(1),
|
|
18728
|
+
enabled: boolean()
|
|
18729
|
+
}), TerminalInstanceInfoSchema, {
|
|
18730
|
+
kind: "mutation",
|
|
18731
|
+
auth: "admin"
|
|
18732
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18733
|
+
stableId: string().min(1),
|
|
18734
|
+
name: string().trim().min(1).max(160).optional()
|
|
18735
|
+
}), TerminalInstanceInfoSchema, {
|
|
18736
|
+
kind: "mutation",
|
|
18737
|
+
auth: "admin"
|
|
18738
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18580
18739
|
profileId: string(),
|
|
18581
18740
|
cols: number().int().positive(),
|
|
18582
18741
|
rows: number().int().positive()
|
|
@@ -18590,6 +18749,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18590
18749
|
}), _void(), {
|
|
18591
18750
|
kind: "mutation",
|
|
18592
18751
|
auth: "admin"
|
|
18752
|
+
}), method(object({
|
|
18753
|
+
sessionId: string(),
|
|
18754
|
+
afterSeq: number().int().nonnegative(),
|
|
18755
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18756
|
+
/**
|
|
18757
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18758
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18759
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18760
|
+
*/
|
|
18761
|
+
waitForOutput: boolean().optional()
|
|
18762
|
+
}), TerminalOutputBatchSchema, {
|
|
18763
|
+
kind: "mutation",
|
|
18764
|
+
auth: "admin",
|
|
18765
|
+
timeoutMs: 15e3
|
|
18766
|
+
}), method(object({
|
|
18767
|
+
sessionId: string(),
|
|
18768
|
+
data: string().max(64 * 1024)
|
|
18769
|
+
}), _void(), {
|
|
18770
|
+
kind: "mutation",
|
|
18771
|
+
auth: "admin"
|
|
18593
18772
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18594
18773
|
kind: "mutation",
|
|
18595
18774
|
auth: "admin"
|
|
@@ -21094,6 +21273,7 @@ var FaceInfoSchema = object({
|
|
|
21094
21273
|
var FaceFilterEnum = _enum([
|
|
21095
21274
|
"unassigned",
|
|
21096
21275
|
"recognized",
|
|
21276
|
+
"identified",
|
|
21097
21277
|
"all"
|
|
21098
21278
|
]);
|
|
21099
21279
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21122,6 +21302,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21122
21302
|
kind: "mutation",
|
|
21123
21303
|
auth: "admin"
|
|
21124
21304
|
}), method(object({
|
|
21305
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21306
|
+
deviceId: number().int().optional(),
|
|
21125
21307
|
limit: number().int().positive().optional(),
|
|
21126
21308
|
filter: FaceFilterEnum.optional(),
|
|
21127
21309
|
/**
|
|
@@ -23351,6 +23533,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
23351
23533
|
capName: string().min(1).max(64),
|
|
23352
23534
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
23353
23535
|
valuePath: string().min(1).max(64)
|
|
23536
|
+
}),
|
|
23537
|
+
object({
|
|
23538
|
+
kind: literal("latest-recognition"),
|
|
23539
|
+
recognition: _enum(["person", "plate"])
|
|
23354
23540
|
})
|
|
23355
23541
|
]);
|
|
23356
23542
|
var OsdSlotBindingSchema = object({
|
|
@@ -23456,6 +23642,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
23456
23642
|
}), object({ success: literal(true) }), {
|
|
23457
23643
|
kind: "mutation",
|
|
23458
23644
|
auth: "admin"
|
|
23645
|
+
}), method(object({
|
|
23646
|
+
sourceDeviceId: number().int(),
|
|
23647
|
+
targetDeviceId: number().int()
|
|
23648
|
+
}), object({
|
|
23649
|
+
copied: number().int().nonnegative(),
|
|
23650
|
+
skipped: number().int().nonnegative()
|
|
23651
|
+
}), {
|
|
23652
|
+
kind: "mutation",
|
|
23653
|
+
auth: "admin"
|
|
23459
23654
|
}), method(object({
|
|
23460
23655
|
deviceId: number().int(),
|
|
23461
23656
|
slotId: string().min(1),
|
|
@@ -24553,13 +24748,19 @@ method(object({
|
|
|
24553
24748
|
}), {
|
|
24554
24749
|
kind: "mutation",
|
|
24555
24750
|
auth: "admin"
|
|
24556
|
-
}), method(
|
|
24751
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
24557
24752
|
kind: "mutation",
|
|
24558
24753
|
auth: "admin"
|
|
24559
|
-
}), method(object({
|
|
24560
|
-
kind: "
|
|
24754
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
24755
|
+
kind: "mutation",
|
|
24561
24756
|
auth: "admin"
|
|
24562
|
-
}), method(
|
|
24757
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
24758
|
+
kind: "mutation",
|
|
24759
|
+
auth: "admin"
|
|
24760
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
24761
|
+
kind: "mutation",
|
|
24762
|
+
auth: "admin"
|
|
24763
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
24563
24764
|
kind: "mutation",
|
|
24564
24765
|
auth: "admin"
|
|
24565
24766
|
});
|
|
@@ -30165,6 +30366,12 @@ Object.freeze({
|
|
|
30165
30366
|
addonId: null,
|
|
30166
30367
|
access: "delete"
|
|
30167
30368
|
},
|
|
30369
|
+
"osdManager.copyDeviceConfiguration": {
|
|
30370
|
+
capName: "osd-manager",
|
|
30371
|
+
capScope: "system",
|
|
30372
|
+
addonId: null,
|
|
30373
|
+
access: "create"
|
|
30374
|
+
},
|
|
30168
30375
|
"osdManager.getConditionSupport": {
|
|
30169
30376
|
capName: "osd-manager",
|
|
30170
30377
|
capScope: "system",
|
|
@@ -30261,7 +30468,7 @@ Object.freeze({
|
|
|
30261
30468
|
addonId: null,
|
|
30262
30469
|
access: "create"
|
|
30263
30470
|
},
|
|
30264
|
-
"pipelineAnalytics.
|
|
30471
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
30265
30472
|
capName: "pipeline-analytics",
|
|
30266
30473
|
capScope: "device",
|
|
30267
30474
|
addonId: null,
|
|
@@ -30333,12 +30540,6 @@ Object.freeze({
|
|
|
30333
30540
|
addonId: null,
|
|
30334
30541
|
access: "view"
|
|
30335
30542
|
},
|
|
30336
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
30337
|
-
capName: "pipeline-analytics",
|
|
30338
|
-
capScope: "device",
|
|
30339
|
-
addonId: null,
|
|
30340
|
-
access: "view"
|
|
30341
|
-
},
|
|
30342
30543
|
"pipelineAnalytics.getMotionEvents": {
|
|
30343
30544
|
capName: "pipeline-analytics",
|
|
30344
30545
|
capScope: "device",
|
|
@@ -30375,6 +30576,12 @@ Object.freeze({
|
|
|
30375
30576
|
addonId: null,
|
|
30376
30577
|
access: "view"
|
|
30377
30578
|
},
|
|
30579
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
30580
|
+
capName: "pipeline-analytics",
|
|
30581
|
+
capScope: "device",
|
|
30582
|
+
addonId: null,
|
|
30583
|
+
access: "view"
|
|
30584
|
+
},
|
|
30378
30585
|
"pipelineAnalytics.getTrack": {
|
|
30379
30586
|
capName: "pipeline-analytics",
|
|
30380
30587
|
capScope: "device",
|
|
@@ -30453,6 +30660,12 @@ Object.freeze({
|
|
|
30453
30660
|
addonId: null,
|
|
30454
30661
|
access: "view"
|
|
30455
30662
|
},
|
|
30663
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
30664
|
+
capName: "pipeline-analytics",
|
|
30665
|
+
capScope: "device",
|
|
30666
|
+
addonId: null,
|
|
30667
|
+
access: "create"
|
|
30668
|
+
},
|
|
30456
30669
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
30457
30670
|
capName: "pipeline-analytics",
|
|
30458
30671
|
capScope: "device",
|
|
@@ -30483,7 +30696,7 @@ Object.freeze({
|
|
|
30483
30696
|
addonId: null,
|
|
30484
30697
|
access: "create"
|
|
30485
30698
|
},
|
|
30486
|
-
"pipelineAnalytics.
|
|
30699
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
30487
30700
|
capName: "pipeline-analytics",
|
|
30488
30701
|
capScope: "device",
|
|
30489
30702
|
addonId: null,
|
|
@@ -30495,6 +30708,12 @@ Object.freeze({
|
|
|
30495
30708
|
addonId: null,
|
|
30496
30709
|
access: "create"
|
|
30497
30710
|
},
|
|
30711
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
30712
|
+
capName: "pipeline-analytics",
|
|
30713
|
+
capScope: "device",
|
|
30714
|
+
addonId: null,
|
|
30715
|
+
access: "create"
|
|
30716
|
+
},
|
|
30498
30717
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
30499
30718
|
capName: "pipeline-analytics",
|
|
30500
30719
|
capScope: "device",
|
|
@@ -30519,6 +30738,12 @@ Object.freeze({
|
|
|
30519
30738
|
addonId: null,
|
|
30520
30739
|
access: "create"
|
|
30521
30740
|
},
|
|
30741
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
30742
|
+
capName: "pipeline-analytics",
|
|
30743
|
+
capScope: "device",
|
|
30744
|
+
addonId: null,
|
|
30745
|
+
access: "create"
|
|
30746
|
+
},
|
|
30522
30747
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
30523
30748
|
capName: "pipeline-analytics",
|
|
30524
30749
|
capScope: "device",
|
|
@@ -30885,6 +31110,12 @@ Object.freeze({
|
|
|
30885
31110
|
addonId: null,
|
|
30886
31111
|
access: "view"
|
|
30887
31112
|
},
|
|
31113
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31114
|
+
capName: "pipeline-orchestrator",
|
|
31115
|
+
capScope: "system",
|
|
31116
|
+
addonId: null,
|
|
31117
|
+
access: "create"
|
|
31118
|
+
},
|
|
30888
31119
|
"pipelineOrchestrator.rebalance": {
|
|
30889
31120
|
capName: "pipeline-orchestrator",
|
|
30890
31121
|
capScope: "system",
|
|
@@ -30909,6 +31140,12 @@ Object.freeze({
|
|
|
30909
31140
|
addonId: null,
|
|
30910
31141
|
access: "view"
|
|
30911
31142
|
},
|
|
31143
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31144
|
+
capName: "pipeline-orchestrator",
|
|
31145
|
+
capScope: "system",
|
|
31146
|
+
addonId: null,
|
|
31147
|
+
access: "create"
|
|
31148
|
+
},
|
|
30912
31149
|
"pipelineOrchestrator.saveTemplate": {
|
|
30913
31150
|
capName: "pipeline-orchestrator",
|
|
30914
31151
|
capScope: "system",
|
|
@@ -31305,7 +31542,7 @@ Object.freeze({
|
|
|
31305
31542
|
addonId: null,
|
|
31306
31543
|
access: "create"
|
|
31307
31544
|
},
|
|
31308
|
-
"recording.
|
|
31545
|
+
"recording.cancelStorageMigrationMove": {
|
|
31309
31546
|
capName: "recording",
|
|
31310
31547
|
capScope: "system",
|
|
31311
31548
|
addonId: null,
|
|
@@ -31341,7 +31578,7 @@ Object.freeze({
|
|
|
31341
31578
|
addonId: null,
|
|
31342
31579
|
access: "view"
|
|
31343
31580
|
},
|
|
31344
|
-
"recording.
|
|
31581
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
31345
31582
|
capName: "recording",
|
|
31346
31583
|
capScope: "system",
|
|
31347
31584
|
addonId: null,
|
|
@@ -31365,6 +31602,12 @@ Object.freeze({
|
|
|
31365
31602
|
addonId: null,
|
|
31366
31603
|
access: "view"
|
|
31367
31604
|
},
|
|
31605
|
+
"recording.pauseForStorageMigration": {
|
|
31606
|
+
capName: "recording",
|
|
31607
|
+
capScope: "system",
|
|
31608
|
+
addonId: null,
|
|
31609
|
+
access: "create"
|
|
31610
|
+
},
|
|
31368
31611
|
"recording.pruneFootage": {
|
|
31369
31612
|
capName: "recording",
|
|
31370
31613
|
capScope: "system",
|
|
@@ -31383,7 +31626,7 @@ Object.freeze({
|
|
|
31383
31626
|
addonId: null,
|
|
31384
31627
|
access: "view"
|
|
31385
31628
|
},
|
|
31386
|
-
"recording.
|
|
31629
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
31387
31630
|
capName: "recording",
|
|
31388
31631
|
capScope: "system",
|
|
31389
31632
|
addonId: null,
|
|
@@ -31407,12 +31650,24 @@ Object.freeze({
|
|
|
31407
31650
|
addonId: null,
|
|
31408
31651
|
access: "create"
|
|
31409
31652
|
},
|
|
31653
|
+
"recording.resumeForStorageMigration": {
|
|
31654
|
+
capName: "recording",
|
|
31655
|
+
capScope: "system",
|
|
31656
|
+
addonId: null,
|
|
31657
|
+
access: "create"
|
|
31658
|
+
},
|
|
31410
31659
|
"recording.setDeviceConfig": {
|
|
31411
31660
|
capName: "recording",
|
|
31412
31661
|
capScope: "system",
|
|
31413
31662
|
addonId: null,
|
|
31414
31663
|
access: "create"
|
|
31415
31664
|
},
|
|
31665
|
+
"recording.startStorageMigrationMove": {
|
|
31666
|
+
capName: "recording",
|
|
31667
|
+
capScope: "system",
|
|
31668
|
+
addonId: null,
|
|
31669
|
+
access: "create"
|
|
31670
|
+
},
|
|
31416
31671
|
"recordingExport.cancelExport": {
|
|
31417
31672
|
capName: "recordingExport",
|
|
31418
31673
|
capScope: "system",
|
|
@@ -31803,6 +32058,30 @@ Object.freeze({
|
|
|
31803
32058
|
addonId: null,
|
|
31804
32059
|
access: "view"
|
|
31805
32060
|
},
|
|
32061
|
+
"storageMigration.cancel": {
|
|
32062
|
+
capName: "storage-migration",
|
|
32063
|
+
capScope: "system",
|
|
32064
|
+
addonId: null,
|
|
32065
|
+
access: "create"
|
|
32066
|
+
},
|
|
32067
|
+
"storageMigration.plan": {
|
|
32068
|
+
capName: "storage-migration",
|
|
32069
|
+
capScope: "system",
|
|
32070
|
+
addonId: null,
|
|
32071
|
+
access: "view"
|
|
32072
|
+
},
|
|
32073
|
+
"storageMigration.start": {
|
|
32074
|
+
capName: "storage-migration",
|
|
32075
|
+
capScope: "system",
|
|
32076
|
+
addonId: null,
|
|
32077
|
+
access: "create"
|
|
32078
|
+
},
|
|
32079
|
+
"storageMigration.status": {
|
|
32080
|
+
capName: "storage-migration",
|
|
32081
|
+
capScope: "system",
|
|
32082
|
+
addonId: null,
|
|
32083
|
+
access: "view"
|
|
32084
|
+
},
|
|
31806
32085
|
"storageProvider.abortUpload": {
|
|
31807
32086
|
capName: "storage-provider",
|
|
31808
32087
|
capScope: "system",
|
|
@@ -32181,12 +32460,42 @@ Object.freeze({
|
|
|
32181
32460
|
addonId: null,
|
|
32182
32461
|
access: "create"
|
|
32183
32462
|
},
|
|
32463
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
32464
|
+
capName: "terminal-session",
|
|
32465
|
+
capScope: "system",
|
|
32466
|
+
addonId: null,
|
|
32467
|
+
access: "create"
|
|
32468
|
+
},
|
|
32184
32469
|
"terminalSession.close": {
|
|
32185
32470
|
capName: "terminal-session",
|
|
32186
32471
|
capScope: "system",
|
|
32187
32472
|
addonId: null,
|
|
32188
32473
|
access: "create"
|
|
32189
32474
|
},
|
|
32475
|
+
"terminalSession.createInstance": {
|
|
32476
|
+
capName: "terminal-session",
|
|
32477
|
+
capScope: "system",
|
|
32478
|
+
addonId: null,
|
|
32479
|
+
access: "create"
|
|
32480
|
+
},
|
|
32481
|
+
"terminalSession.deleteInstance": {
|
|
32482
|
+
capName: "terminal-session",
|
|
32483
|
+
capScope: "system",
|
|
32484
|
+
addonId: null,
|
|
32485
|
+
access: "delete"
|
|
32486
|
+
},
|
|
32487
|
+
"terminalSession.listInstances": {
|
|
32488
|
+
capName: "terminal-session",
|
|
32489
|
+
capScope: "system",
|
|
32490
|
+
addonId: null,
|
|
32491
|
+
access: "view"
|
|
32492
|
+
},
|
|
32493
|
+
"terminalSession.listLegacyCameras": {
|
|
32494
|
+
capName: "terminal-session",
|
|
32495
|
+
capScope: "system",
|
|
32496
|
+
addonId: null,
|
|
32497
|
+
access: "view"
|
|
32498
|
+
},
|
|
32190
32499
|
"terminalSession.listProfiles": {
|
|
32191
32500
|
capName: "terminal-session",
|
|
32192
32501
|
capScope: "system",
|
|
@@ -32205,12 +32514,30 @@ Object.freeze({
|
|
|
32205
32514
|
addonId: null,
|
|
32206
32515
|
access: "create"
|
|
32207
32516
|
},
|
|
32517
|
+
"terminalSession.pullOutput": {
|
|
32518
|
+
capName: "terminal-session",
|
|
32519
|
+
capScope: "system",
|
|
32520
|
+
addonId: null,
|
|
32521
|
+
access: "create"
|
|
32522
|
+
},
|
|
32208
32523
|
"terminalSession.resize": {
|
|
32209
32524
|
capName: "terminal-session",
|
|
32210
32525
|
capScope: "system",
|
|
32211
32526
|
addonId: null,
|
|
32212
32527
|
access: "create"
|
|
32213
32528
|
},
|
|
32529
|
+
"terminalSession.setInstanceEnabled": {
|
|
32530
|
+
capName: "terminal-session",
|
|
32531
|
+
capScope: "system",
|
|
32532
|
+
addonId: null,
|
|
32533
|
+
access: "create"
|
|
32534
|
+
},
|
|
32535
|
+
"terminalSession.writeInput": {
|
|
32536
|
+
capName: "terminal-session",
|
|
32537
|
+
capScope: "system",
|
|
32538
|
+
addonId: null,
|
|
32539
|
+
access: "create"
|
|
32540
|
+
},
|
|
32214
32541
|
"toast.onToast": {
|
|
32215
32542
|
capName: "toast",
|
|
32216
32543
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -7564,12 +7564,11 @@ var RecordingConfigSchema = object({
|
|
|
7564
7564
|
/**
|
|
7565
7565
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7566
7566
|
*
|
|
7567
|
-
* One shape shared by the recorder
|
|
7568
|
-
*
|
|
7569
|
-
*
|
|
7570
|
-
*
|
|
7571
|
-
*
|
|
7572
|
-
* row on the owning addon's surface.
|
|
7567
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7568
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7569
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7570
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7571
|
+
* addon surface.
|
|
7573
7572
|
*/
|
|
7574
7573
|
var RelocateJobStateSchema = _enum([
|
|
7575
7574
|
"running",
|
|
@@ -7596,19 +7595,100 @@ var RelocateJobSchema = object({
|
|
|
7596
7595
|
finishedAt: number().nullable(),
|
|
7597
7596
|
error: string().nullable()
|
|
7598
7597
|
});
|
|
7598
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7599
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7600
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7599
7601
|
var RelocateFootageInputSchema = object({
|
|
7600
|
-
deviceId: number().optional(),
|
|
7601
7602
|
fromLocationId: string(),
|
|
7602
7603
|
toLocationId: string(),
|
|
7603
7604
|
entities: array(_enum(["segments"])).optional(),
|
|
7605
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7606
|
+
* pre-orchestration compatibility path. */
|
|
7607
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7604
7608
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7605
7609
|
* never allowed to starve live writers. */
|
|
7606
7610
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7607
7611
|
});
|
|
7608
|
-
|
|
7609
|
-
|
|
7612
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7613
|
+
* from persistent recording settings: a migration never changes
|
|
7614
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7615
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7616
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7617
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7610
7618
|
toLocationId: string(),
|
|
7611
7619
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7620
|
+
}).extend({ leaseId: string().min(1) });
|
|
7621
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7622
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7623
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7624
|
+
var StorageMigrationClassSchema = _enum([
|
|
7625
|
+
"recordings",
|
|
7626
|
+
"recordingsLow",
|
|
7627
|
+
"eventMedia"
|
|
7628
|
+
]);
|
|
7629
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7630
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7631
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7632
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7633
|
+
recordings: string().min(1).optional(),
|
|
7634
|
+
recordingsLow: string().min(1).optional(),
|
|
7635
|
+
eventMedia: string().min(1).optional()
|
|
7636
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7637
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7638
|
+
var StorageMigrationInputSchema = object({
|
|
7639
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7640
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7641
|
+
});
|
|
7642
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7643
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7644
|
+
* verified. */
|
|
7645
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7646
|
+
"planning",
|
|
7647
|
+
"pausing",
|
|
7648
|
+
"moving",
|
|
7649
|
+
"verifying",
|
|
7650
|
+
"repointing",
|
|
7651
|
+
"refreshing",
|
|
7652
|
+
"resuming",
|
|
7653
|
+
"done",
|
|
7654
|
+
"failed",
|
|
7655
|
+
"cancelled"
|
|
7656
|
+
]);
|
|
7657
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7658
|
+
"pipeline",
|
|
7659
|
+
"recorder",
|
|
7660
|
+
"analytics"
|
|
7661
|
+
]);
|
|
7662
|
+
var StorageMigrationMoveSchema = object({
|
|
7663
|
+
storageClass: StorageMigrationClassSchema,
|
|
7664
|
+
fromLocationId: string(),
|
|
7665
|
+
toLocationId: string(),
|
|
7666
|
+
moverJobId: string().nullable(),
|
|
7667
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7668
|
+
error: string().nullable()
|
|
7669
|
+
});
|
|
7670
|
+
var StorageMigrationJobSchema = object({
|
|
7671
|
+
jobId: string(),
|
|
7672
|
+
phase: StorageMigrationPhaseSchema,
|
|
7673
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7674
|
+
throttleMbps: number(),
|
|
7675
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7676
|
+
pauseLeaseId: string().nullable(),
|
|
7677
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7678
|
+
repointed: boolean(),
|
|
7679
|
+
cancelRequested: boolean(),
|
|
7680
|
+
startedAt: number(),
|
|
7681
|
+
updatedAt: number(),
|
|
7682
|
+
finishedAt: number().nullable(),
|
|
7683
|
+
error: string().nullable()
|
|
7684
|
+
});
|
|
7685
|
+
var StorageMigrationPlanSchema = object({
|
|
7686
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7687
|
+
moves: array(object({
|
|
7688
|
+
storageClass: StorageMigrationClassSchema,
|
|
7689
|
+
fromLocationId: string(),
|
|
7690
|
+
toLocationId: string()
|
|
7691
|
+
}))
|
|
7612
7692
|
});
|
|
7613
7693
|
/**
|
|
7614
7694
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16262,13 +16342,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16262
16342
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16263
16343
|
kind: "mutation",
|
|
16264
16344
|
auth: "admin"
|
|
16265
|
-
}), method(
|
|
16345
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16266
16346
|
kind: "mutation",
|
|
16267
16347
|
auth: "admin"
|
|
16268
|
-
}), method(object({
|
|
16269
|
-
kind: "
|
|
16348
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16349
|
+
kind: "mutation",
|
|
16270
16350
|
auth: "admin"
|
|
16271
|
-
}), method(
|
|
16351
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16352
|
+
kind: "mutation",
|
|
16353
|
+
auth: "admin"
|
|
16354
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16355
|
+
kind: "mutation",
|
|
16356
|
+
auth: "admin"
|
|
16357
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16272
16358
|
kind: "mutation",
|
|
16273
16359
|
auth: "admin"
|
|
16274
16360
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17798,7 +17884,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17798
17884
|
reachable: boolean(),
|
|
17799
17885
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17800
17886
|
});
|
|
17801
|
-
method(object({
|
|
17887
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17888
|
+
kind: "mutation",
|
|
17889
|
+
auth: "admin"
|
|
17890
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17891
|
+
kind: "mutation",
|
|
17892
|
+
auth: "admin"
|
|
17893
|
+
}), method(object({
|
|
17802
17894
|
deviceId: number(),
|
|
17803
17895
|
agentNodeId: string()
|
|
17804
17896
|
}), object({ success: literal(true) }), {
|
|
@@ -18472,6 +18564,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18472
18564
|
locationId: string(),
|
|
18473
18565
|
targetBytes: number().int().positive()
|
|
18474
18566
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18567
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18568
|
+
kind: "mutation",
|
|
18569
|
+
auth: "admin"
|
|
18570
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18571
|
+
kind: "mutation",
|
|
18572
|
+
auth: "admin"
|
|
18573
|
+
});
|
|
18475
18574
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18476
18575
|
providerId: string().min(1),
|
|
18477
18576
|
displayName: string().min(1),
|
|
@@ -18575,7 +18674,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18575
18674
|
label: string(),
|
|
18576
18675
|
description: string().optional()
|
|
18577
18676
|
});
|
|
18578
|
-
|
|
18677
|
+
/**
|
|
18678
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18679
|
+
* an instance declares a camera.
|
|
18680
|
+
*/
|
|
18681
|
+
var TerminalInstanceInfoSchema = object({
|
|
18682
|
+
instanceId: string(),
|
|
18683
|
+
cameraStableId: string(),
|
|
18684
|
+
nodeId: string(),
|
|
18685
|
+
profileId: string(),
|
|
18686
|
+
profileLabel: string(),
|
|
18687
|
+
name: string(),
|
|
18688
|
+
enabled: boolean()
|
|
18689
|
+
});
|
|
18690
|
+
var TerminalLegacyCameraSchema = object({
|
|
18691
|
+
stableId: string(),
|
|
18692
|
+
nodeId: string(),
|
|
18693
|
+
profileId: string(),
|
|
18694
|
+
profileLabel: string(),
|
|
18695
|
+
name: string(),
|
|
18696
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18697
|
+
adoptable: boolean()
|
|
18698
|
+
});
|
|
18699
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18700
|
+
seq: number().int().positive(),
|
|
18701
|
+
kind: literal("data"),
|
|
18702
|
+
data: string()
|
|
18703
|
+
}), object({
|
|
18704
|
+
seq: number().int().positive(),
|
|
18705
|
+
kind: literal("exit"),
|
|
18706
|
+
exitCode: number().int(),
|
|
18707
|
+
signal: number().int().optional()
|
|
18708
|
+
})]);
|
|
18709
|
+
var TerminalOutputBatchSchema = object({
|
|
18710
|
+
cursor: number().int().nonnegative(),
|
|
18711
|
+
reset: boolean(),
|
|
18712
|
+
snapshot: string().optional(),
|
|
18713
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18714
|
+
});
|
|
18715
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18716
|
+
targetNodeId: string().min(1),
|
|
18717
|
+
profileId: string().min(1),
|
|
18718
|
+
name: string().trim().min(1).max(160).optional()
|
|
18719
|
+
}), TerminalInstanceInfoSchema, {
|
|
18720
|
+
kind: "mutation",
|
|
18721
|
+
auth: "admin"
|
|
18722
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18723
|
+
kind: "mutation",
|
|
18724
|
+
auth: "admin"
|
|
18725
|
+
}), method(object({
|
|
18726
|
+
instanceId: string().min(1),
|
|
18727
|
+
enabled: boolean()
|
|
18728
|
+
}), TerminalInstanceInfoSchema, {
|
|
18729
|
+
kind: "mutation",
|
|
18730
|
+
auth: "admin"
|
|
18731
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18732
|
+
stableId: string().min(1),
|
|
18733
|
+
name: string().trim().min(1).max(160).optional()
|
|
18734
|
+
}), TerminalInstanceInfoSchema, {
|
|
18735
|
+
kind: "mutation",
|
|
18736
|
+
auth: "admin"
|
|
18737
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18579
18738
|
profileId: string(),
|
|
18580
18739
|
cols: number().int().positive(),
|
|
18581
18740
|
rows: number().int().positive()
|
|
@@ -18589,6 +18748,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18589
18748
|
}), _void(), {
|
|
18590
18749
|
kind: "mutation",
|
|
18591
18750
|
auth: "admin"
|
|
18751
|
+
}), method(object({
|
|
18752
|
+
sessionId: string(),
|
|
18753
|
+
afterSeq: number().int().nonnegative(),
|
|
18754
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18755
|
+
/**
|
|
18756
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18757
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18758
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18759
|
+
*/
|
|
18760
|
+
waitForOutput: boolean().optional()
|
|
18761
|
+
}), TerminalOutputBatchSchema, {
|
|
18762
|
+
kind: "mutation",
|
|
18763
|
+
auth: "admin",
|
|
18764
|
+
timeoutMs: 15e3
|
|
18765
|
+
}), method(object({
|
|
18766
|
+
sessionId: string(),
|
|
18767
|
+
data: string().max(64 * 1024)
|
|
18768
|
+
}), _void(), {
|
|
18769
|
+
kind: "mutation",
|
|
18770
|
+
auth: "admin"
|
|
18592
18771
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18593
18772
|
kind: "mutation",
|
|
18594
18773
|
auth: "admin"
|
|
@@ -21093,6 +21272,7 @@ var FaceInfoSchema = object({
|
|
|
21093
21272
|
var FaceFilterEnum = _enum([
|
|
21094
21273
|
"unassigned",
|
|
21095
21274
|
"recognized",
|
|
21275
|
+
"identified",
|
|
21096
21276
|
"all"
|
|
21097
21277
|
]);
|
|
21098
21278
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21121,6 +21301,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21121
21301
|
kind: "mutation",
|
|
21122
21302
|
auth: "admin"
|
|
21123
21303
|
}), method(object({
|
|
21304
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21305
|
+
deviceId: number().int().optional(),
|
|
21124
21306
|
limit: number().int().positive().optional(),
|
|
21125
21307
|
filter: FaceFilterEnum.optional(),
|
|
21126
21308
|
/**
|
|
@@ -23350,6 +23532,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
23350
23532
|
capName: string().min(1).max(64),
|
|
23351
23533
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
23352
23534
|
valuePath: string().min(1).max(64)
|
|
23535
|
+
}),
|
|
23536
|
+
object({
|
|
23537
|
+
kind: literal("latest-recognition"),
|
|
23538
|
+
recognition: _enum(["person", "plate"])
|
|
23353
23539
|
})
|
|
23354
23540
|
]);
|
|
23355
23541
|
var OsdSlotBindingSchema = object({
|
|
@@ -23455,6 +23641,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
23455
23641
|
}), object({ success: literal(true) }), {
|
|
23456
23642
|
kind: "mutation",
|
|
23457
23643
|
auth: "admin"
|
|
23644
|
+
}), method(object({
|
|
23645
|
+
sourceDeviceId: number().int(),
|
|
23646
|
+
targetDeviceId: number().int()
|
|
23647
|
+
}), object({
|
|
23648
|
+
copied: number().int().nonnegative(),
|
|
23649
|
+
skipped: number().int().nonnegative()
|
|
23650
|
+
}), {
|
|
23651
|
+
kind: "mutation",
|
|
23652
|
+
auth: "admin"
|
|
23458
23653
|
}), method(object({
|
|
23459
23654
|
deviceId: number().int(),
|
|
23460
23655
|
slotId: string().min(1),
|
|
@@ -24552,13 +24747,19 @@ method(object({
|
|
|
24552
24747
|
}), {
|
|
24553
24748
|
kind: "mutation",
|
|
24554
24749
|
auth: "admin"
|
|
24555
|
-
}), method(
|
|
24750
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
24556
24751
|
kind: "mutation",
|
|
24557
24752
|
auth: "admin"
|
|
24558
|
-
}), method(object({
|
|
24559
|
-
kind: "
|
|
24753
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
24754
|
+
kind: "mutation",
|
|
24560
24755
|
auth: "admin"
|
|
24561
|
-
}), method(
|
|
24756
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
24757
|
+
kind: "mutation",
|
|
24758
|
+
auth: "admin"
|
|
24759
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
24760
|
+
kind: "mutation",
|
|
24761
|
+
auth: "admin"
|
|
24762
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
24562
24763
|
kind: "mutation",
|
|
24563
24764
|
auth: "admin"
|
|
24564
24765
|
});
|
|
@@ -30164,6 +30365,12 @@ Object.freeze({
|
|
|
30164
30365
|
addonId: null,
|
|
30165
30366
|
access: "delete"
|
|
30166
30367
|
},
|
|
30368
|
+
"osdManager.copyDeviceConfiguration": {
|
|
30369
|
+
capName: "osd-manager",
|
|
30370
|
+
capScope: "system",
|
|
30371
|
+
addonId: null,
|
|
30372
|
+
access: "create"
|
|
30373
|
+
},
|
|
30167
30374
|
"osdManager.getConditionSupport": {
|
|
30168
30375
|
capName: "osd-manager",
|
|
30169
30376
|
capScope: "system",
|
|
@@ -30260,7 +30467,7 @@ Object.freeze({
|
|
|
30260
30467
|
addonId: null,
|
|
30261
30468
|
access: "create"
|
|
30262
30469
|
},
|
|
30263
|
-
"pipelineAnalytics.
|
|
30470
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
30264
30471
|
capName: "pipeline-analytics",
|
|
30265
30472
|
capScope: "device",
|
|
30266
30473
|
addonId: null,
|
|
@@ -30332,12 +30539,6 @@ Object.freeze({
|
|
|
30332
30539
|
addonId: null,
|
|
30333
30540
|
access: "view"
|
|
30334
30541
|
},
|
|
30335
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
30336
|
-
capName: "pipeline-analytics",
|
|
30337
|
-
capScope: "device",
|
|
30338
|
-
addonId: null,
|
|
30339
|
-
access: "view"
|
|
30340
|
-
},
|
|
30341
30542
|
"pipelineAnalytics.getMotionEvents": {
|
|
30342
30543
|
capName: "pipeline-analytics",
|
|
30343
30544
|
capScope: "device",
|
|
@@ -30374,6 +30575,12 @@ Object.freeze({
|
|
|
30374
30575
|
addonId: null,
|
|
30375
30576
|
access: "view"
|
|
30376
30577
|
},
|
|
30578
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
30579
|
+
capName: "pipeline-analytics",
|
|
30580
|
+
capScope: "device",
|
|
30581
|
+
addonId: null,
|
|
30582
|
+
access: "view"
|
|
30583
|
+
},
|
|
30377
30584
|
"pipelineAnalytics.getTrack": {
|
|
30378
30585
|
capName: "pipeline-analytics",
|
|
30379
30586
|
capScope: "device",
|
|
@@ -30452,6 +30659,12 @@ Object.freeze({
|
|
|
30452
30659
|
addonId: null,
|
|
30453
30660
|
access: "view"
|
|
30454
30661
|
},
|
|
30662
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
30663
|
+
capName: "pipeline-analytics",
|
|
30664
|
+
capScope: "device",
|
|
30665
|
+
addonId: null,
|
|
30666
|
+
access: "create"
|
|
30667
|
+
},
|
|
30455
30668
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
30456
30669
|
capName: "pipeline-analytics",
|
|
30457
30670
|
capScope: "device",
|
|
@@ -30482,7 +30695,7 @@ Object.freeze({
|
|
|
30482
30695
|
addonId: null,
|
|
30483
30696
|
access: "create"
|
|
30484
30697
|
},
|
|
30485
|
-
"pipelineAnalytics.
|
|
30698
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
30486
30699
|
capName: "pipeline-analytics",
|
|
30487
30700
|
capScope: "device",
|
|
30488
30701
|
addonId: null,
|
|
@@ -30494,6 +30707,12 @@ Object.freeze({
|
|
|
30494
30707
|
addonId: null,
|
|
30495
30708
|
access: "create"
|
|
30496
30709
|
},
|
|
30710
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
30711
|
+
capName: "pipeline-analytics",
|
|
30712
|
+
capScope: "device",
|
|
30713
|
+
addonId: null,
|
|
30714
|
+
access: "create"
|
|
30715
|
+
},
|
|
30497
30716
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
30498
30717
|
capName: "pipeline-analytics",
|
|
30499
30718
|
capScope: "device",
|
|
@@ -30518,6 +30737,12 @@ Object.freeze({
|
|
|
30518
30737
|
addonId: null,
|
|
30519
30738
|
access: "create"
|
|
30520
30739
|
},
|
|
30740
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
30741
|
+
capName: "pipeline-analytics",
|
|
30742
|
+
capScope: "device",
|
|
30743
|
+
addonId: null,
|
|
30744
|
+
access: "create"
|
|
30745
|
+
},
|
|
30521
30746
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
30522
30747
|
capName: "pipeline-analytics",
|
|
30523
30748
|
capScope: "device",
|
|
@@ -30884,6 +31109,12 @@ Object.freeze({
|
|
|
30884
31109
|
addonId: null,
|
|
30885
31110
|
access: "view"
|
|
30886
31111
|
},
|
|
31112
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31113
|
+
capName: "pipeline-orchestrator",
|
|
31114
|
+
capScope: "system",
|
|
31115
|
+
addonId: null,
|
|
31116
|
+
access: "create"
|
|
31117
|
+
},
|
|
30887
31118
|
"pipelineOrchestrator.rebalance": {
|
|
30888
31119
|
capName: "pipeline-orchestrator",
|
|
30889
31120
|
capScope: "system",
|
|
@@ -30908,6 +31139,12 @@ Object.freeze({
|
|
|
30908
31139
|
addonId: null,
|
|
30909
31140
|
access: "view"
|
|
30910
31141
|
},
|
|
31142
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31143
|
+
capName: "pipeline-orchestrator",
|
|
31144
|
+
capScope: "system",
|
|
31145
|
+
addonId: null,
|
|
31146
|
+
access: "create"
|
|
31147
|
+
},
|
|
30911
31148
|
"pipelineOrchestrator.saveTemplate": {
|
|
30912
31149
|
capName: "pipeline-orchestrator",
|
|
30913
31150
|
capScope: "system",
|
|
@@ -31304,7 +31541,7 @@ Object.freeze({
|
|
|
31304
31541
|
addonId: null,
|
|
31305
31542
|
access: "create"
|
|
31306
31543
|
},
|
|
31307
|
-
"recording.
|
|
31544
|
+
"recording.cancelStorageMigrationMove": {
|
|
31308
31545
|
capName: "recording",
|
|
31309
31546
|
capScope: "system",
|
|
31310
31547
|
addonId: null,
|
|
@@ -31340,7 +31577,7 @@ Object.freeze({
|
|
|
31340
31577
|
addonId: null,
|
|
31341
31578
|
access: "view"
|
|
31342
31579
|
},
|
|
31343
|
-
"recording.
|
|
31580
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
31344
31581
|
capName: "recording",
|
|
31345
31582
|
capScope: "system",
|
|
31346
31583
|
addonId: null,
|
|
@@ -31364,6 +31601,12 @@ Object.freeze({
|
|
|
31364
31601
|
addonId: null,
|
|
31365
31602
|
access: "view"
|
|
31366
31603
|
},
|
|
31604
|
+
"recording.pauseForStorageMigration": {
|
|
31605
|
+
capName: "recording",
|
|
31606
|
+
capScope: "system",
|
|
31607
|
+
addonId: null,
|
|
31608
|
+
access: "create"
|
|
31609
|
+
},
|
|
31367
31610
|
"recording.pruneFootage": {
|
|
31368
31611
|
capName: "recording",
|
|
31369
31612
|
capScope: "system",
|
|
@@ -31382,7 +31625,7 @@ Object.freeze({
|
|
|
31382
31625
|
addonId: null,
|
|
31383
31626
|
access: "view"
|
|
31384
31627
|
},
|
|
31385
|
-
"recording.
|
|
31628
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
31386
31629
|
capName: "recording",
|
|
31387
31630
|
capScope: "system",
|
|
31388
31631
|
addonId: null,
|
|
@@ -31406,12 +31649,24 @@ Object.freeze({
|
|
|
31406
31649
|
addonId: null,
|
|
31407
31650
|
access: "create"
|
|
31408
31651
|
},
|
|
31652
|
+
"recording.resumeForStorageMigration": {
|
|
31653
|
+
capName: "recording",
|
|
31654
|
+
capScope: "system",
|
|
31655
|
+
addonId: null,
|
|
31656
|
+
access: "create"
|
|
31657
|
+
},
|
|
31409
31658
|
"recording.setDeviceConfig": {
|
|
31410
31659
|
capName: "recording",
|
|
31411
31660
|
capScope: "system",
|
|
31412
31661
|
addonId: null,
|
|
31413
31662
|
access: "create"
|
|
31414
31663
|
},
|
|
31664
|
+
"recording.startStorageMigrationMove": {
|
|
31665
|
+
capName: "recording",
|
|
31666
|
+
capScope: "system",
|
|
31667
|
+
addonId: null,
|
|
31668
|
+
access: "create"
|
|
31669
|
+
},
|
|
31415
31670
|
"recordingExport.cancelExport": {
|
|
31416
31671
|
capName: "recordingExport",
|
|
31417
31672
|
capScope: "system",
|
|
@@ -31802,6 +32057,30 @@ Object.freeze({
|
|
|
31802
32057
|
addonId: null,
|
|
31803
32058
|
access: "view"
|
|
31804
32059
|
},
|
|
32060
|
+
"storageMigration.cancel": {
|
|
32061
|
+
capName: "storage-migration",
|
|
32062
|
+
capScope: "system",
|
|
32063
|
+
addonId: null,
|
|
32064
|
+
access: "create"
|
|
32065
|
+
},
|
|
32066
|
+
"storageMigration.plan": {
|
|
32067
|
+
capName: "storage-migration",
|
|
32068
|
+
capScope: "system",
|
|
32069
|
+
addonId: null,
|
|
32070
|
+
access: "view"
|
|
32071
|
+
},
|
|
32072
|
+
"storageMigration.start": {
|
|
32073
|
+
capName: "storage-migration",
|
|
32074
|
+
capScope: "system",
|
|
32075
|
+
addonId: null,
|
|
32076
|
+
access: "create"
|
|
32077
|
+
},
|
|
32078
|
+
"storageMigration.status": {
|
|
32079
|
+
capName: "storage-migration",
|
|
32080
|
+
capScope: "system",
|
|
32081
|
+
addonId: null,
|
|
32082
|
+
access: "view"
|
|
32083
|
+
},
|
|
31805
32084
|
"storageProvider.abortUpload": {
|
|
31806
32085
|
capName: "storage-provider",
|
|
31807
32086
|
capScope: "system",
|
|
@@ -32180,12 +32459,42 @@ Object.freeze({
|
|
|
32180
32459
|
addonId: null,
|
|
32181
32460
|
access: "create"
|
|
32182
32461
|
},
|
|
32462
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
32463
|
+
capName: "terminal-session",
|
|
32464
|
+
capScope: "system",
|
|
32465
|
+
addonId: null,
|
|
32466
|
+
access: "create"
|
|
32467
|
+
},
|
|
32183
32468
|
"terminalSession.close": {
|
|
32184
32469
|
capName: "terminal-session",
|
|
32185
32470
|
capScope: "system",
|
|
32186
32471
|
addonId: null,
|
|
32187
32472
|
access: "create"
|
|
32188
32473
|
},
|
|
32474
|
+
"terminalSession.createInstance": {
|
|
32475
|
+
capName: "terminal-session",
|
|
32476
|
+
capScope: "system",
|
|
32477
|
+
addonId: null,
|
|
32478
|
+
access: "create"
|
|
32479
|
+
},
|
|
32480
|
+
"terminalSession.deleteInstance": {
|
|
32481
|
+
capName: "terminal-session",
|
|
32482
|
+
capScope: "system",
|
|
32483
|
+
addonId: null,
|
|
32484
|
+
access: "delete"
|
|
32485
|
+
},
|
|
32486
|
+
"terminalSession.listInstances": {
|
|
32487
|
+
capName: "terminal-session",
|
|
32488
|
+
capScope: "system",
|
|
32489
|
+
addonId: null,
|
|
32490
|
+
access: "view"
|
|
32491
|
+
},
|
|
32492
|
+
"terminalSession.listLegacyCameras": {
|
|
32493
|
+
capName: "terminal-session",
|
|
32494
|
+
capScope: "system",
|
|
32495
|
+
addonId: null,
|
|
32496
|
+
access: "view"
|
|
32497
|
+
},
|
|
32189
32498
|
"terminalSession.listProfiles": {
|
|
32190
32499
|
capName: "terminal-session",
|
|
32191
32500
|
capScope: "system",
|
|
@@ -32204,12 +32513,30 @@ Object.freeze({
|
|
|
32204
32513
|
addonId: null,
|
|
32205
32514
|
access: "create"
|
|
32206
32515
|
},
|
|
32516
|
+
"terminalSession.pullOutput": {
|
|
32517
|
+
capName: "terminal-session",
|
|
32518
|
+
capScope: "system",
|
|
32519
|
+
addonId: null,
|
|
32520
|
+
access: "create"
|
|
32521
|
+
},
|
|
32207
32522
|
"terminalSession.resize": {
|
|
32208
32523
|
capName: "terminal-session",
|
|
32209
32524
|
capScope: "system",
|
|
32210
32525
|
addonId: null,
|
|
32211
32526
|
access: "create"
|
|
32212
32527
|
},
|
|
32528
|
+
"terminalSession.setInstanceEnabled": {
|
|
32529
|
+
capName: "terminal-session",
|
|
32530
|
+
capScope: "system",
|
|
32531
|
+
addonId: null,
|
|
32532
|
+
access: "create"
|
|
32533
|
+
},
|
|
32534
|
+
"terminalSession.writeInput": {
|
|
32535
|
+
capName: "terminal-session",
|
|
32536
|
+
capScope: "system",
|
|
32537
|
+
addonId: null,
|
|
32538
|
+
access: "create"
|
|
32539
|
+
},
|
|
32213
32540
|
"toast.onToast": {
|
|
32214
32541
|
capName: "toast",
|
|
32215
32542
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-unraid",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
4
4
|
"description": "Unraid device-provider addon for CamStack — one Container per Unraid instance fanning out array, disk, docker and notification entities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|