@camstack/addon-provider-unraid 0.2.12 → 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 +316 -31
- package/dist/addon.mjs +316 -31
- 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",
|
|
16351
|
+
auth: "admin"
|
|
16352
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16353
|
+
kind: "mutation",
|
|
16354
|
+
auth: "admin"
|
|
16355
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16356
|
+
kind: "mutation",
|
|
16271
16357
|
auth: "admin"
|
|
16272
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
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,6 +18675,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18576
18675
|
label: string(),
|
|
18577
18676
|
description: string().optional()
|
|
18578
18677
|
});
|
|
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
|
+
});
|
|
18579
18700
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18580
18701
|
seq: number().int().positive(),
|
|
18581
18702
|
kind: literal("data"),
|
|
@@ -18592,7 +18713,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18592
18713
|
snapshot: string().optional(),
|
|
18593
18714
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18594
18715
|
});
|
|
18595
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
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({
|
|
18596
18739
|
profileId: string(),
|
|
18597
18740
|
cols: number().int().positive(),
|
|
18598
18741
|
rows: number().int().positive()
|
|
@@ -18609,7 +18752,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18609
18752
|
}), method(object({
|
|
18610
18753
|
sessionId: string(),
|
|
18611
18754
|
afterSeq: number().int().nonnegative(),
|
|
18612
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
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()
|
|
18613
18762
|
}), TerminalOutputBatchSchema, {
|
|
18614
18763
|
kind: "mutation",
|
|
18615
18764
|
auth: "admin",
|
|
@@ -21124,6 +21273,7 @@ var FaceInfoSchema = object({
|
|
|
21124
21273
|
var FaceFilterEnum = _enum([
|
|
21125
21274
|
"unassigned",
|
|
21126
21275
|
"recognized",
|
|
21276
|
+
"identified",
|
|
21127
21277
|
"all"
|
|
21128
21278
|
]);
|
|
21129
21279
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21152,6 +21302,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21152
21302
|
kind: "mutation",
|
|
21153
21303
|
auth: "admin"
|
|
21154
21304
|
}), method(object({
|
|
21305
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21306
|
+
deviceId: number().int().optional(),
|
|
21155
21307
|
limit: number().int().positive().optional(),
|
|
21156
21308
|
filter: FaceFilterEnum.optional(),
|
|
21157
21309
|
/**
|
|
@@ -23381,6 +23533,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
23381
23533
|
capName: string().min(1).max(64),
|
|
23382
23534
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
23383
23535
|
valuePath: string().min(1).max(64)
|
|
23536
|
+
}),
|
|
23537
|
+
object({
|
|
23538
|
+
kind: literal("latest-recognition"),
|
|
23539
|
+
recognition: _enum(["person", "plate"])
|
|
23384
23540
|
})
|
|
23385
23541
|
]);
|
|
23386
23542
|
var OsdSlotBindingSchema = object({
|
|
@@ -23486,6 +23642,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
23486
23642
|
}), object({ success: literal(true) }), {
|
|
23487
23643
|
kind: "mutation",
|
|
23488
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"
|
|
23489
23654
|
}), method(object({
|
|
23490
23655
|
deviceId: number().int(),
|
|
23491
23656
|
slotId: string().min(1),
|
|
@@ -24583,13 +24748,19 @@ method(object({
|
|
|
24583
24748
|
}), {
|
|
24584
24749
|
kind: "mutation",
|
|
24585
24750
|
auth: "admin"
|
|
24586
|
-
}), method(
|
|
24751
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
24587
24752
|
kind: "mutation",
|
|
24588
24753
|
auth: "admin"
|
|
24589
|
-
}), method(object({
|
|
24590
|
-
kind: "
|
|
24754
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
24755
|
+
kind: "mutation",
|
|
24591
24756
|
auth: "admin"
|
|
24592
|
-
}), 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() }), {
|
|
24593
24764
|
kind: "mutation",
|
|
24594
24765
|
auth: "admin"
|
|
24595
24766
|
});
|
|
@@ -30195,6 +30366,12 @@ Object.freeze({
|
|
|
30195
30366
|
addonId: null,
|
|
30196
30367
|
access: "delete"
|
|
30197
30368
|
},
|
|
30369
|
+
"osdManager.copyDeviceConfiguration": {
|
|
30370
|
+
capName: "osd-manager",
|
|
30371
|
+
capScope: "system",
|
|
30372
|
+
addonId: null,
|
|
30373
|
+
access: "create"
|
|
30374
|
+
},
|
|
30198
30375
|
"osdManager.getConditionSupport": {
|
|
30199
30376
|
capName: "osd-manager",
|
|
30200
30377
|
capScope: "system",
|
|
@@ -30291,7 +30468,7 @@ Object.freeze({
|
|
|
30291
30468
|
addonId: null,
|
|
30292
30469
|
access: "create"
|
|
30293
30470
|
},
|
|
30294
|
-
"pipelineAnalytics.
|
|
30471
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
30295
30472
|
capName: "pipeline-analytics",
|
|
30296
30473
|
capScope: "device",
|
|
30297
30474
|
addonId: null,
|
|
@@ -30363,12 +30540,6 @@ Object.freeze({
|
|
|
30363
30540
|
addonId: null,
|
|
30364
30541
|
access: "view"
|
|
30365
30542
|
},
|
|
30366
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
30367
|
-
capName: "pipeline-analytics",
|
|
30368
|
-
capScope: "device",
|
|
30369
|
-
addonId: null,
|
|
30370
|
-
access: "view"
|
|
30371
|
-
},
|
|
30372
30543
|
"pipelineAnalytics.getMotionEvents": {
|
|
30373
30544
|
capName: "pipeline-analytics",
|
|
30374
30545
|
capScope: "device",
|
|
@@ -30405,6 +30576,12 @@ Object.freeze({
|
|
|
30405
30576
|
addonId: null,
|
|
30406
30577
|
access: "view"
|
|
30407
30578
|
},
|
|
30579
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
30580
|
+
capName: "pipeline-analytics",
|
|
30581
|
+
capScope: "device",
|
|
30582
|
+
addonId: null,
|
|
30583
|
+
access: "view"
|
|
30584
|
+
},
|
|
30408
30585
|
"pipelineAnalytics.getTrack": {
|
|
30409
30586
|
capName: "pipeline-analytics",
|
|
30410
30587
|
capScope: "device",
|
|
@@ -30483,6 +30660,12 @@ Object.freeze({
|
|
|
30483
30660
|
addonId: null,
|
|
30484
30661
|
access: "view"
|
|
30485
30662
|
},
|
|
30663
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
30664
|
+
capName: "pipeline-analytics",
|
|
30665
|
+
capScope: "device",
|
|
30666
|
+
addonId: null,
|
|
30667
|
+
access: "create"
|
|
30668
|
+
},
|
|
30486
30669
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
30487
30670
|
capName: "pipeline-analytics",
|
|
30488
30671
|
capScope: "device",
|
|
@@ -30513,7 +30696,7 @@ Object.freeze({
|
|
|
30513
30696
|
addonId: null,
|
|
30514
30697
|
access: "create"
|
|
30515
30698
|
},
|
|
30516
|
-
"pipelineAnalytics.
|
|
30699
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
30517
30700
|
capName: "pipeline-analytics",
|
|
30518
30701
|
capScope: "device",
|
|
30519
30702
|
addonId: null,
|
|
@@ -30525,6 +30708,12 @@ Object.freeze({
|
|
|
30525
30708
|
addonId: null,
|
|
30526
30709
|
access: "create"
|
|
30527
30710
|
},
|
|
30711
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
30712
|
+
capName: "pipeline-analytics",
|
|
30713
|
+
capScope: "device",
|
|
30714
|
+
addonId: null,
|
|
30715
|
+
access: "create"
|
|
30716
|
+
},
|
|
30528
30717
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
30529
30718
|
capName: "pipeline-analytics",
|
|
30530
30719
|
capScope: "device",
|
|
@@ -30549,6 +30738,12 @@ Object.freeze({
|
|
|
30549
30738
|
addonId: null,
|
|
30550
30739
|
access: "create"
|
|
30551
30740
|
},
|
|
30741
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
30742
|
+
capName: "pipeline-analytics",
|
|
30743
|
+
capScope: "device",
|
|
30744
|
+
addonId: null,
|
|
30745
|
+
access: "create"
|
|
30746
|
+
},
|
|
30552
30747
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
30553
30748
|
capName: "pipeline-analytics",
|
|
30554
30749
|
capScope: "device",
|
|
@@ -30915,6 +31110,12 @@ Object.freeze({
|
|
|
30915
31110
|
addonId: null,
|
|
30916
31111
|
access: "view"
|
|
30917
31112
|
},
|
|
31113
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31114
|
+
capName: "pipeline-orchestrator",
|
|
31115
|
+
capScope: "system",
|
|
31116
|
+
addonId: null,
|
|
31117
|
+
access: "create"
|
|
31118
|
+
},
|
|
30918
31119
|
"pipelineOrchestrator.rebalance": {
|
|
30919
31120
|
capName: "pipeline-orchestrator",
|
|
30920
31121
|
capScope: "system",
|
|
@@ -30939,6 +31140,12 @@ Object.freeze({
|
|
|
30939
31140
|
addonId: null,
|
|
30940
31141
|
access: "view"
|
|
30941
31142
|
},
|
|
31143
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31144
|
+
capName: "pipeline-orchestrator",
|
|
31145
|
+
capScope: "system",
|
|
31146
|
+
addonId: null,
|
|
31147
|
+
access: "create"
|
|
31148
|
+
},
|
|
30942
31149
|
"pipelineOrchestrator.saveTemplate": {
|
|
30943
31150
|
capName: "pipeline-orchestrator",
|
|
30944
31151
|
capScope: "system",
|
|
@@ -31335,7 +31542,7 @@ Object.freeze({
|
|
|
31335
31542
|
addonId: null,
|
|
31336
31543
|
access: "create"
|
|
31337
31544
|
},
|
|
31338
|
-
"recording.
|
|
31545
|
+
"recording.cancelStorageMigrationMove": {
|
|
31339
31546
|
capName: "recording",
|
|
31340
31547
|
capScope: "system",
|
|
31341
31548
|
addonId: null,
|
|
@@ -31371,7 +31578,7 @@ Object.freeze({
|
|
|
31371
31578
|
addonId: null,
|
|
31372
31579
|
access: "view"
|
|
31373
31580
|
},
|
|
31374
|
-
"recording.
|
|
31581
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
31375
31582
|
capName: "recording",
|
|
31376
31583
|
capScope: "system",
|
|
31377
31584
|
addonId: null,
|
|
@@ -31395,6 +31602,12 @@ Object.freeze({
|
|
|
31395
31602
|
addonId: null,
|
|
31396
31603
|
access: "view"
|
|
31397
31604
|
},
|
|
31605
|
+
"recording.pauseForStorageMigration": {
|
|
31606
|
+
capName: "recording",
|
|
31607
|
+
capScope: "system",
|
|
31608
|
+
addonId: null,
|
|
31609
|
+
access: "create"
|
|
31610
|
+
},
|
|
31398
31611
|
"recording.pruneFootage": {
|
|
31399
31612
|
capName: "recording",
|
|
31400
31613
|
capScope: "system",
|
|
@@ -31413,7 +31626,7 @@ Object.freeze({
|
|
|
31413
31626
|
addonId: null,
|
|
31414
31627
|
access: "view"
|
|
31415
31628
|
},
|
|
31416
|
-
"recording.
|
|
31629
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
31417
31630
|
capName: "recording",
|
|
31418
31631
|
capScope: "system",
|
|
31419
31632
|
addonId: null,
|
|
@@ -31437,12 +31650,24 @@ Object.freeze({
|
|
|
31437
31650
|
addonId: null,
|
|
31438
31651
|
access: "create"
|
|
31439
31652
|
},
|
|
31653
|
+
"recording.resumeForStorageMigration": {
|
|
31654
|
+
capName: "recording",
|
|
31655
|
+
capScope: "system",
|
|
31656
|
+
addonId: null,
|
|
31657
|
+
access: "create"
|
|
31658
|
+
},
|
|
31440
31659
|
"recording.setDeviceConfig": {
|
|
31441
31660
|
capName: "recording",
|
|
31442
31661
|
capScope: "system",
|
|
31443
31662
|
addonId: null,
|
|
31444
31663
|
access: "create"
|
|
31445
31664
|
},
|
|
31665
|
+
"recording.startStorageMigrationMove": {
|
|
31666
|
+
capName: "recording",
|
|
31667
|
+
capScope: "system",
|
|
31668
|
+
addonId: null,
|
|
31669
|
+
access: "create"
|
|
31670
|
+
},
|
|
31446
31671
|
"recordingExport.cancelExport": {
|
|
31447
31672
|
capName: "recordingExport",
|
|
31448
31673
|
capScope: "system",
|
|
@@ -31833,6 +32058,30 @@ Object.freeze({
|
|
|
31833
32058
|
addonId: null,
|
|
31834
32059
|
access: "view"
|
|
31835
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
|
+
},
|
|
31836
32085
|
"storageProvider.abortUpload": {
|
|
31837
32086
|
capName: "storage-provider",
|
|
31838
32087
|
capScope: "system",
|
|
@@ -32211,12 +32460,42 @@ Object.freeze({
|
|
|
32211
32460
|
addonId: null,
|
|
32212
32461
|
access: "create"
|
|
32213
32462
|
},
|
|
32463
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
32464
|
+
capName: "terminal-session",
|
|
32465
|
+
capScope: "system",
|
|
32466
|
+
addonId: null,
|
|
32467
|
+
access: "create"
|
|
32468
|
+
},
|
|
32214
32469
|
"terminalSession.close": {
|
|
32215
32470
|
capName: "terminal-session",
|
|
32216
32471
|
capScope: "system",
|
|
32217
32472
|
addonId: null,
|
|
32218
32473
|
access: "create"
|
|
32219
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
|
+
},
|
|
32220
32499
|
"terminalSession.listProfiles": {
|
|
32221
32500
|
capName: "terminal-session",
|
|
32222
32501
|
capScope: "system",
|
|
@@ -32247,6 +32526,12 @@ Object.freeze({
|
|
|
32247
32526
|
addonId: null,
|
|
32248
32527
|
access: "create"
|
|
32249
32528
|
},
|
|
32529
|
+
"terminalSession.setInstanceEnabled": {
|
|
32530
|
+
capName: "terminal-session",
|
|
32531
|
+
capScope: "system",
|
|
32532
|
+
addonId: null,
|
|
32533
|
+
access: "create"
|
|
32534
|
+
},
|
|
32250
32535
|
"terminalSession.writeInput": {
|
|
32251
32536
|
capName: "terminal-session",
|
|
32252
32537
|
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",
|
|
16350
|
+
auth: "admin"
|
|
16351
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16352
|
+
kind: "mutation",
|
|
16353
|
+
auth: "admin"
|
|
16354
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16355
|
+
kind: "mutation",
|
|
16270
16356
|
auth: "admin"
|
|
16271
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
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,6 +18674,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18575
18674
|
label: string(),
|
|
18576
18675
|
description: string().optional()
|
|
18577
18676
|
});
|
|
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
|
+
});
|
|
18578
18699
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18579
18700
|
seq: number().int().positive(),
|
|
18580
18701
|
kind: literal("data"),
|
|
@@ -18591,7 +18712,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18591
18712
|
snapshot: string().optional(),
|
|
18592
18713
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18593
18714
|
});
|
|
18594
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
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({
|
|
18595
18738
|
profileId: string(),
|
|
18596
18739
|
cols: number().int().positive(),
|
|
18597
18740
|
rows: number().int().positive()
|
|
@@ -18608,7 +18751,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18608
18751
|
}), method(object({
|
|
18609
18752
|
sessionId: string(),
|
|
18610
18753
|
afterSeq: number().int().nonnegative(),
|
|
18611
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
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()
|
|
18612
18761
|
}), TerminalOutputBatchSchema, {
|
|
18613
18762
|
kind: "mutation",
|
|
18614
18763
|
auth: "admin",
|
|
@@ -21123,6 +21272,7 @@ var FaceInfoSchema = object({
|
|
|
21123
21272
|
var FaceFilterEnum = _enum([
|
|
21124
21273
|
"unassigned",
|
|
21125
21274
|
"recognized",
|
|
21275
|
+
"identified",
|
|
21126
21276
|
"all"
|
|
21127
21277
|
]);
|
|
21128
21278
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21151,6 +21301,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21151
21301
|
kind: "mutation",
|
|
21152
21302
|
auth: "admin"
|
|
21153
21303
|
}), method(object({
|
|
21304
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21305
|
+
deviceId: number().int().optional(),
|
|
21154
21306
|
limit: number().int().positive().optional(),
|
|
21155
21307
|
filter: FaceFilterEnum.optional(),
|
|
21156
21308
|
/**
|
|
@@ -23380,6 +23532,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
23380
23532
|
capName: string().min(1).max(64),
|
|
23381
23533
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
23382
23534
|
valuePath: string().min(1).max(64)
|
|
23535
|
+
}),
|
|
23536
|
+
object({
|
|
23537
|
+
kind: literal("latest-recognition"),
|
|
23538
|
+
recognition: _enum(["person", "plate"])
|
|
23383
23539
|
})
|
|
23384
23540
|
]);
|
|
23385
23541
|
var OsdSlotBindingSchema = object({
|
|
@@ -23485,6 +23641,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
23485
23641
|
}), object({ success: literal(true) }), {
|
|
23486
23642
|
kind: "mutation",
|
|
23487
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"
|
|
23488
23653
|
}), method(object({
|
|
23489
23654
|
deviceId: number().int(),
|
|
23490
23655
|
slotId: string().min(1),
|
|
@@ -24582,13 +24747,19 @@ method(object({
|
|
|
24582
24747
|
}), {
|
|
24583
24748
|
kind: "mutation",
|
|
24584
24749
|
auth: "admin"
|
|
24585
|
-
}), method(
|
|
24750
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
24586
24751
|
kind: "mutation",
|
|
24587
24752
|
auth: "admin"
|
|
24588
|
-
}), method(object({
|
|
24589
|
-
kind: "
|
|
24753
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
24754
|
+
kind: "mutation",
|
|
24590
24755
|
auth: "admin"
|
|
24591
|
-
}), 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() }), {
|
|
24592
24763
|
kind: "mutation",
|
|
24593
24764
|
auth: "admin"
|
|
24594
24765
|
});
|
|
@@ -30194,6 +30365,12 @@ Object.freeze({
|
|
|
30194
30365
|
addonId: null,
|
|
30195
30366
|
access: "delete"
|
|
30196
30367
|
},
|
|
30368
|
+
"osdManager.copyDeviceConfiguration": {
|
|
30369
|
+
capName: "osd-manager",
|
|
30370
|
+
capScope: "system",
|
|
30371
|
+
addonId: null,
|
|
30372
|
+
access: "create"
|
|
30373
|
+
},
|
|
30197
30374
|
"osdManager.getConditionSupport": {
|
|
30198
30375
|
capName: "osd-manager",
|
|
30199
30376
|
capScope: "system",
|
|
@@ -30290,7 +30467,7 @@ Object.freeze({
|
|
|
30290
30467
|
addonId: null,
|
|
30291
30468
|
access: "create"
|
|
30292
30469
|
},
|
|
30293
|
-
"pipelineAnalytics.
|
|
30470
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
30294
30471
|
capName: "pipeline-analytics",
|
|
30295
30472
|
capScope: "device",
|
|
30296
30473
|
addonId: null,
|
|
@@ -30362,12 +30539,6 @@ Object.freeze({
|
|
|
30362
30539
|
addonId: null,
|
|
30363
30540
|
access: "view"
|
|
30364
30541
|
},
|
|
30365
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
30366
|
-
capName: "pipeline-analytics",
|
|
30367
|
-
capScope: "device",
|
|
30368
|
-
addonId: null,
|
|
30369
|
-
access: "view"
|
|
30370
|
-
},
|
|
30371
30542
|
"pipelineAnalytics.getMotionEvents": {
|
|
30372
30543
|
capName: "pipeline-analytics",
|
|
30373
30544
|
capScope: "device",
|
|
@@ -30404,6 +30575,12 @@ Object.freeze({
|
|
|
30404
30575
|
addonId: null,
|
|
30405
30576
|
access: "view"
|
|
30406
30577
|
},
|
|
30578
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
30579
|
+
capName: "pipeline-analytics",
|
|
30580
|
+
capScope: "device",
|
|
30581
|
+
addonId: null,
|
|
30582
|
+
access: "view"
|
|
30583
|
+
},
|
|
30407
30584
|
"pipelineAnalytics.getTrack": {
|
|
30408
30585
|
capName: "pipeline-analytics",
|
|
30409
30586
|
capScope: "device",
|
|
@@ -30482,6 +30659,12 @@ Object.freeze({
|
|
|
30482
30659
|
addonId: null,
|
|
30483
30660
|
access: "view"
|
|
30484
30661
|
},
|
|
30662
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
30663
|
+
capName: "pipeline-analytics",
|
|
30664
|
+
capScope: "device",
|
|
30665
|
+
addonId: null,
|
|
30666
|
+
access: "create"
|
|
30667
|
+
},
|
|
30485
30668
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
30486
30669
|
capName: "pipeline-analytics",
|
|
30487
30670
|
capScope: "device",
|
|
@@ -30512,7 +30695,7 @@ Object.freeze({
|
|
|
30512
30695
|
addonId: null,
|
|
30513
30696
|
access: "create"
|
|
30514
30697
|
},
|
|
30515
|
-
"pipelineAnalytics.
|
|
30698
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
30516
30699
|
capName: "pipeline-analytics",
|
|
30517
30700
|
capScope: "device",
|
|
30518
30701
|
addonId: null,
|
|
@@ -30524,6 +30707,12 @@ Object.freeze({
|
|
|
30524
30707
|
addonId: null,
|
|
30525
30708
|
access: "create"
|
|
30526
30709
|
},
|
|
30710
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
30711
|
+
capName: "pipeline-analytics",
|
|
30712
|
+
capScope: "device",
|
|
30713
|
+
addonId: null,
|
|
30714
|
+
access: "create"
|
|
30715
|
+
},
|
|
30527
30716
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
30528
30717
|
capName: "pipeline-analytics",
|
|
30529
30718
|
capScope: "device",
|
|
@@ -30548,6 +30737,12 @@ Object.freeze({
|
|
|
30548
30737
|
addonId: null,
|
|
30549
30738
|
access: "create"
|
|
30550
30739
|
},
|
|
30740
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
30741
|
+
capName: "pipeline-analytics",
|
|
30742
|
+
capScope: "device",
|
|
30743
|
+
addonId: null,
|
|
30744
|
+
access: "create"
|
|
30745
|
+
},
|
|
30551
30746
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
30552
30747
|
capName: "pipeline-analytics",
|
|
30553
30748
|
capScope: "device",
|
|
@@ -30914,6 +31109,12 @@ Object.freeze({
|
|
|
30914
31109
|
addonId: null,
|
|
30915
31110
|
access: "view"
|
|
30916
31111
|
},
|
|
31112
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31113
|
+
capName: "pipeline-orchestrator",
|
|
31114
|
+
capScope: "system",
|
|
31115
|
+
addonId: null,
|
|
31116
|
+
access: "create"
|
|
31117
|
+
},
|
|
30917
31118
|
"pipelineOrchestrator.rebalance": {
|
|
30918
31119
|
capName: "pipeline-orchestrator",
|
|
30919
31120
|
capScope: "system",
|
|
@@ -30938,6 +31139,12 @@ Object.freeze({
|
|
|
30938
31139
|
addonId: null,
|
|
30939
31140
|
access: "view"
|
|
30940
31141
|
},
|
|
31142
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31143
|
+
capName: "pipeline-orchestrator",
|
|
31144
|
+
capScope: "system",
|
|
31145
|
+
addonId: null,
|
|
31146
|
+
access: "create"
|
|
31147
|
+
},
|
|
30941
31148
|
"pipelineOrchestrator.saveTemplate": {
|
|
30942
31149
|
capName: "pipeline-orchestrator",
|
|
30943
31150
|
capScope: "system",
|
|
@@ -31334,7 +31541,7 @@ Object.freeze({
|
|
|
31334
31541
|
addonId: null,
|
|
31335
31542
|
access: "create"
|
|
31336
31543
|
},
|
|
31337
|
-
"recording.
|
|
31544
|
+
"recording.cancelStorageMigrationMove": {
|
|
31338
31545
|
capName: "recording",
|
|
31339
31546
|
capScope: "system",
|
|
31340
31547
|
addonId: null,
|
|
@@ -31370,7 +31577,7 @@ Object.freeze({
|
|
|
31370
31577
|
addonId: null,
|
|
31371
31578
|
access: "view"
|
|
31372
31579
|
},
|
|
31373
|
-
"recording.
|
|
31580
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
31374
31581
|
capName: "recording",
|
|
31375
31582
|
capScope: "system",
|
|
31376
31583
|
addonId: null,
|
|
@@ -31394,6 +31601,12 @@ Object.freeze({
|
|
|
31394
31601
|
addonId: null,
|
|
31395
31602
|
access: "view"
|
|
31396
31603
|
},
|
|
31604
|
+
"recording.pauseForStorageMigration": {
|
|
31605
|
+
capName: "recording",
|
|
31606
|
+
capScope: "system",
|
|
31607
|
+
addonId: null,
|
|
31608
|
+
access: "create"
|
|
31609
|
+
},
|
|
31397
31610
|
"recording.pruneFootage": {
|
|
31398
31611
|
capName: "recording",
|
|
31399
31612
|
capScope: "system",
|
|
@@ -31412,7 +31625,7 @@ Object.freeze({
|
|
|
31412
31625
|
addonId: null,
|
|
31413
31626
|
access: "view"
|
|
31414
31627
|
},
|
|
31415
|
-
"recording.
|
|
31628
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
31416
31629
|
capName: "recording",
|
|
31417
31630
|
capScope: "system",
|
|
31418
31631
|
addonId: null,
|
|
@@ -31436,12 +31649,24 @@ Object.freeze({
|
|
|
31436
31649
|
addonId: null,
|
|
31437
31650
|
access: "create"
|
|
31438
31651
|
},
|
|
31652
|
+
"recording.resumeForStorageMigration": {
|
|
31653
|
+
capName: "recording",
|
|
31654
|
+
capScope: "system",
|
|
31655
|
+
addonId: null,
|
|
31656
|
+
access: "create"
|
|
31657
|
+
},
|
|
31439
31658
|
"recording.setDeviceConfig": {
|
|
31440
31659
|
capName: "recording",
|
|
31441
31660
|
capScope: "system",
|
|
31442
31661
|
addonId: null,
|
|
31443
31662
|
access: "create"
|
|
31444
31663
|
},
|
|
31664
|
+
"recording.startStorageMigrationMove": {
|
|
31665
|
+
capName: "recording",
|
|
31666
|
+
capScope: "system",
|
|
31667
|
+
addonId: null,
|
|
31668
|
+
access: "create"
|
|
31669
|
+
},
|
|
31445
31670
|
"recordingExport.cancelExport": {
|
|
31446
31671
|
capName: "recordingExport",
|
|
31447
31672
|
capScope: "system",
|
|
@@ -31832,6 +32057,30 @@ Object.freeze({
|
|
|
31832
32057
|
addonId: null,
|
|
31833
32058
|
access: "view"
|
|
31834
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
|
+
},
|
|
31835
32084
|
"storageProvider.abortUpload": {
|
|
31836
32085
|
capName: "storage-provider",
|
|
31837
32086
|
capScope: "system",
|
|
@@ -32210,12 +32459,42 @@ Object.freeze({
|
|
|
32210
32459
|
addonId: null,
|
|
32211
32460
|
access: "create"
|
|
32212
32461
|
},
|
|
32462
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
32463
|
+
capName: "terminal-session",
|
|
32464
|
+
capScope: "system",
|
|
32465
|
+
addonId: null,
|
|
32466
|
+
access: "create"
|
|
32467
|
+
},
|
|
32213
32468
|
"terminalSession.close": {
|
|
32214
32469
|
capName: "terminal-session",
|
|
32215
32470
|
capScope: "system",
|
|
32216
32471
|
addonId: null,
|
|
32217
32472
|
access: "create"
|
|
32218
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
|
+
},
|
|
32219
32498
|
"terminalSession.listProfiles": {
|
|
32220
32499
|
capName: "terminal-session",
|
|
32221
32500
|
capScope: "system",
|
|
@@ -32246,6 +32525,12 @@ Object.freeze({
|
|
|
32246
32525
|
addonId: null,
|
|
32247
32526
|
access: "create"
|
|
32248
32527
|
},
|
|
32528
|
+
"terminalSession.setInstanceEnabled": {
|
|
32529
|
+
capName: "terminal-session",
|
|
32530
|
+
capScope: "system",
|
|
32531
|
+
addonId: null,
|
|
32532
|
+
access: "create"
|
|
32533
|
+
},
|
|
32249
32534
|
"terminalSession.writeInput": {
|
|
32250
32535
|
capName: "terminal-session",
|
|
32251
32536
|
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",
|