@camstack/addon-ai 0.2.15 → 0.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +357 -30
- package/dist/addon.mjs +357 -30
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -7640,12 +7640,11 @@ var RecordingConfigSchema = object({
|
|
|
7640
7640
|
/**
|
|
7641
7641
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7642
7642
|
*
|
|
7643
|
-
* One shape shared by the recorder
|
|
7644
|
-
*
|
|
7645
|
-
*
|
|
7646
|
-
*
|
|
7647
|
-
*
|
|
7648
|
-
* row on the owning addon's surface.
|
|
7643
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7644
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7645
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7646
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7647
|
+
* addon surface.
|
|
7649
7648
|
*/
|
|
7650
7649
|
var RelocateJobStateSchema = _enum([
|
|
7651
7650
|
"running",
|
|
@@ -7672,19 +7671,100 @@ var RelocateJobSchema = object({
|
|
|
7672
7671
|
finishedAt: number().nullable(),
|
|
7673
7672
|
error: string().nullable()
|
|
7674
7673
|
});
|
|
7674
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7675
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7676
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7675
7677
|
var RelocateFootageInputSchema = object({
|
|
7676
|
-
deviceId: number().optional(),
|
|
7677
7678
|
fromLocationId: string(),
|
|
7678
7679
|
toLocationId: string(),
|
|
7679
7680
|
entities: array(_enum(["segments"])).optional(),
|
|
7681
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7682
|
+
* pre-orchestration compatibility path. */
|
|
7683
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7680
7684
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7681
7685
|
* never allowed to starve live writers. */
|
|
7682
7686
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7683
7687
|
});
|
|
7684
|
-
|
|
7685
|
-
|
|
7688
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7689
|
+
* from persistent recording settings: a migration never changes
|
|
7690
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7691
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7692
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7693
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7686
7694
|
toLocationId: string(),
|
|
7687
7695
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7696
|
+
}).extend({ leaseId: string().min(1) });
|
|
7697
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7698
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7699
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7700
|
+
var StorageMigrationClassSchema = _enum([
|
|
7701
|
+
"recordings",
|
|
7702
|
+
"recordingsLow",
|
|
7703
|
+
"eventMedia"
|
|
7704
|
+
]);
|
|
7705
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7706
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7707
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7708
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7709
|
+
recordings: string().min(1).optional(),
|
|
7710
|
+
recordingsLow: string().min(1).optional(),
|
|
7711
|
+
eventMedia: string().min(1).optional()
|
|
7712
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7713
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7714
|
+
var StorageMigrationInputSchema = object({
|
|
7715
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7716
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7717
|
+
});
|
|
7718
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7719
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7720
|
+
* verified. */
|
|
7721
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7722
|
+
"planning",
|
|
7723
|
+
"pausing",
|
|
7724
|
+
"moving",
|
|
7725
|
+
"verifying",
|
|
7726
|
+
"repointing",
|
|
7727
|
+
"refreshing",
|
|
7728
|
+
"resuming",
|
|
7729
|
+
"done",
|
|
7730
|
+
"failed",
|
|
7731
|
+
"cancelled"
|
|
7732
|
+
]);
|
|
7733
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7734
|
+
"pipeline",
|
|
7735
|
+
"recorder",
|
|
7736
|
+
"analytics"
|
|
7737
|
+
]);
|
|
7738
|
+
var StorageMigrationMoveSchema = object({
|
|
7739
|
+
storageClass: StorageMigrationClassSchema,
|
|
7740
|
+
fromLocationId: string(),
|
|
7741
|
+
toLocationId: string(),
|
|
7742
|
+
moverJobId: string().nullable(),
|
|
7743
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7744
|
+
error: string().nullable()
|
|
7745
|
+
});
|
|
7746
|
+
var StorageMigrationJobSchema = object({
|
|
7747
|
+
jobId: string(),
|
|
7748
|
+
phase: StorageMigrationPhaseSchema,
|
|
7749
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7750
|
+
throttleMbps: number(),
|
|
7751
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7752
|
+
pauseLeaseId: string().nullable(),
|
|
7753
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7754
|
+
repointed: boolean(),
|
|
7755
|
+
cancelRequested: boolean(),
|
|
7756
|
+
startedAt: number(),
|
|
7757
|
+
updatedAt: number(),
|
|
7758
|
+
finishedAt: number().nullable(),
|
|
7759
|
+
error: string().nullable()
|
|
7760
|
+
});
|
|
7761
|
+
var StorageMigrationPlanSchema = object({
|
|
7762
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7763
|
+
moves: array(object({
|
|
7764
|
+
storageClass: StorageMigrationClassSchema,
|
|
7765
|
+
fromLocationId: string(),
|
|
7766
|
+
toLocationId: string()
|
|
7767
|
+
}))
|
|
7688
7768
|
});
|
|
7689
7769
|
/**
|
|
7690
7770
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16105,13 +16185,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16105
16185
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16106
16186
|
kind: "mutation",
|
|
16107
16187
|
auth: "admin"
|
|
16108
|
-
}), method(
|
|
16188
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16109
16189
|
kind: "mutation",
|
|
16110
16190
|
auth: "admin"
|
|
16111
|
-
}), method(object({
|
|
16112
|
-
kind: "
|
|
16191
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16192
|
+
kind: "mutation",
|
|
16113
16193
|
auth: "admin"
|
|
16114
|
-
}), method(
|
|
16194
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16195
|
+
kind: "mutation",
|
|
16196
|
+
auth: "admin"
|
|
16197
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16198
|
+
kind: "mutation",
|
|
16199
|
+
auth: "admin"
|
|
16200
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16115
16201
|
kind: "mutation",
|
|
16116
16202
|
auth: "admin"
|
|
16117
16203
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17608,7 +17694,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17608
17694
|
reachable: boolean(),
|
|
17609
17695
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17610
17696
|
});
|
|
17611
|
-
method(object({
|
|
17697
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17698
|
+
kind: "mutation",
|
|
17699
|
+
auth: "admin"
|
|
17700
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17701
|
+
kind: "mutation",
|
|
17702
|
+
auth: "admin"
|
|
17703
|
+
}), method(object({
|
|
17612
17704
|
deviceId: number(),
|
|
17613
17705
|
agentNodeId: string()
|
|
17614
17706
|
}), object({ success: literal(true) }), {
|
|
@@ -18282,6 +18374,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18282
18374
|
locationId: string(),
|
|
18283
18375
|
targetBytes: number().int().positive()
|
|
18284
18376
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18377
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18378
|
+
kind: "mutation",
|
|
18379
|
+
auth: "admin"
|
|
18380
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18381
|
+
kind: "mutation",
|
|
18382
|
+
auth: "admin"
|
|
18383
|
+
});
|
|
18285
18384
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18286
18385
|
providerId: string().min(1),
|
|
18287
18386
|
displayName: string().min(1),
|
|
@@ -18385,7 +18484,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18385
18484
|
label: string(),
|
|
18386
18485
|
description: string().optional()
|
|
18387
18486
|
});
|
|
18388
|
-
|
|
18487
|
+
/**
|
|
18488
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18489
|
+
* an instance declares a camera.
|
|
18490
|
+
*/
|
|
18491
|
+
var TerminalInstanceInfoSchema = object({
|
|
18492
|
+
instanceId: string(),
|
|
18493
|
+
cameraStableId: string(),
|
|
18494
|
+
nodeId: string(),
|
|
18495
|
+
profileId: string(),
|
|
18496
|
+
profileLabel: string(),
|
|
18497
|
+
name: string(),
|
|
18498
|
+
enabled: boolean()
|
|
18499
|
+
});
|
|
18500
|
+
var TerminalLegacyCameraSchema = object({
|
|
18501
|
+
stableId: string(),
|
|
18502
|
+
nodeId: string(),
|
|
18503
|
+
profileId: string(),
|
|
18504
|
+
profileLabel: string(),
|
|
18505
|
+
name: string(),
|
|
18506
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18507
|
+
adoptable: boolean()
|
|
18508
|
+
});
|
|
18509
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18510
|
+
seq: number().int().positive(),
|
|
18511
|
+
kind: literal("data"),
|
|
18512
|
+
data: string()
|
|
18513
|
+
}), object({
|
|
18514
|
+
seq: number().int().positive(),
|
|
18515
|
+
kind: literal("exit"),
|
|
18516
|
+
exitCode: number().int(),
|
|
18517
|
+
signal: number().int().optional()
|
|
18518
|
+
})]);
|
|
18519
|
+
var TerminalOutputBatchSchema = object({
|
|
18520
|
+
cursor: number().int().nonnegative(),
|
|
18521
|
+
reset: boolean(),
|
|
18522
|
+
snapshot: string().optional(),
|
|
18523
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18524
|
+
});
|
|
18525
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18526
|
+
targetNodeId: string().min(1),
|
|
18527
|
+
profileId: string().min(1),
|
|
18528
|
+
name: string().trim().min(1).max(160).optional()
|
|
18529
|
+
}), TerminalInstanceInfoSchema, {
|
|
18530
|
+
kind: "mutation",
|
|
18531
|
+
auth: "admin"
|
|
18532
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18533
|
+
kind: "mutation",
|
|
18534
|
+
auth: "admin"
|
|
18535
|
+
}), method(object({
|
|
18536
|
+
instanceId: string().min(1),
|
|
18537
|
+
enabled: boolean()
|
|
18538
|
+
}), TerminalInstanceInfoSchema, {
|
|
18539
|
+
kind: "mutation",
|
|
18540
|
+
auth: "admin"
|
|
18541
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18542
|
+
stableId: string().min(1),
|
|
18543
|
+
name: string().trim().min(1).max(160).optional()
|
|
18544
|
+
}), TerminalInstanceInfoSchema, {
|
|
18545
|
+
kind: "mutation",
|
|
18546
|
+
auth: "admin"
|
|
18547
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18389
18548
|
profileId: string(),
|
|
18390
18549
|
cols: number().int().positive(),
|
|
18391
18550
|
rows: number().int().positive()
|
|
@@ -18399,6 +18558,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18399
18558
|
}), _void(), {
|
|
18400
18559
|
kind: "mutation",
|
|
18401
18560
|
auth: "admin"
|
|
18561
|
+
}), method(object({
|
|
18562
|
+
sessionId: string(),
|
|
18563
|
+
afterSeq: number().int().nonnegative(),
|
|
18564
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18565
|
+
/**
|
|
18566
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18567
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18568
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18569
|
+
*/
|
|
18570
|
+
waitForOutput: boolean().optional()
|
|
18571
|
+
}), TerminalOutputBatchSchema, {
|
|
18572
|
+
kind: "mutation",
|
|
18573
|
+
auth: "admin",
|
|
18574
|
+
timeoutMs: 15e3
|
|
18575
|
+
}), method(object({
|
|
18576
|
+
sessionId: string(),
|
|
18577
|
+
data: string().max(64 * 1024)
|
|
18578
|
+
}), _void(), {
|
|
18579
|
+
kind: "mutation",
|
|
18580
|
+
auth: "admin"
|
|
18402
18581
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18403
18582
|
kind: "mutation",
|
|
18404
18583
|
auth: "admin"
|
|
@@ -20329,6 +20508,7 @@ var FaceInfoSchema = object({
|
|
|
20329
20508
|
var FaceFilterEnum = _enum([
|
|
20330
20509
|
"unassigned",
|
|
20331
20510
|
"recognized",
|
|
20511
|
+
"identified",
|
|
20332
20512
|
"all"
|
|
20333
20513
|
]);
|
|
20334
20514
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20357,6 +20537,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20357
20537
|
kind: "mutation",
|
|
20358
20538
|
auth: "admin"
|
|
20359
20539
|
}), method(object({
|
|
20540
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20541
|
+
deviceId: number().int().optional(),
|
|
20360
20542
|
limit: number().int().positive().optional(),
|
|
20361
20543
|
filter: FaceFilterEnum.optional(),
|
|
20362
20544
|
/**
|
|
@@ -22122,6 +22304,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22122
22304
|
capName: string().min(1).max(64),
|
|
22123
22305
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22124
22306
|
valuePath: string().min(1).max(64)
|
|
22307
|
+
}),
|
|
22308
|
+
object({
|
|
22309
|
+
kind: literal("latest-recognition"),
|
|
22310
|
+
recognition: _enum(["person", "plate"])
|
|
22125
22311
|
})
|
|
22126
22312
|
]);
|
|
22127
22313
|
var OsdSlotBindingSchema = object({
|
|
@@ -22227,6 +22413,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22227
22413
|
}), object({ success: literal(true) }), {
|
|
22228
22414
|
kind: "mutation",
|
|
22229
22415
|
auth: "admin"
|
|
22416
|
+
}), method(object({
|
|
22417
|
+
sourceDeviceId: number().int(),
|
|
22418
|
+
targetDeviceId: number().int()
|
|
22419
|
+
}), object({
|
|
22420
|
+
copied: number().int().nonnegative(),
|
|
22421
|
+
skipped: number().int().nonnegative()
|
|
22422
|
+
}), {
|
|
22423
|
+
kind: "mutation",
|
|
22424
|
+
auth: "admin"
|
|
22230
22425
|
}), method(object({
|
|
22231
22426
|
deviceId: number().int(),
|
|
22232
22427
|
slotId: string().min(1),
|
|
@@ -23112,13 +23307,19 @@ method(object({
|
|
|
23112
23307
|
}), {
|
|
23113
23308
|
kind: "mutation",
|
|
23114
23309
|
auth: "admin"
|
|
23115
|
-
}), method(
|
|
23310
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23116
23311
|
kind: "mutation",
|
|
23117
23312
|
auth: "admin"
|
|
23118
|
-
}), method(object({
|
|
23119
|
-
kind: "
|
|
23313
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23314
|
+
kind: "mutation",
|
|
23120
23315
|
auth: "admin"
|
|
23121
|
-
}), method(
|
|
23316
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23317
|
+
kind: "mutation",
|
|
23318
|
+
auth: "admin"
|
|
23319
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23320
|
+
kind: "mutation",
|
|
23321
|
+
auth: "admin"
|
|
23322
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23122
23323
|
kind: "mutation",
|
|
23123
23324
|
auth: "admin"
|
|
23124
23325
|
});
|
|
@@ -27240,6 +27441,12 @@ Object.freeze({
|
|
|
27240
27441
|
addonId: null,
|
|
27241
27442
|
access: "delete"
|
|
27242
27443
|
},
|
|
27444
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27445
|
+
capName: "osd-manager",
|
|
27446
|
+
capScope: "system",
|
|
27447
|
+
addonId: null,
|
|
27448
|
+
access: "create"
|
|
27449
|
+
},
|
|
27243
27450
|
"osdManager.getConditionSupport": {
|
|
27244
27451
|
capName: "osd-manager",
|
|
27245
27452
|
capScope: "system",
|
|
@@ -27336,7 +27543,7 @@ Object.freeze({
|
|
|
27336
27543
|
addonId: null,
|
|
27337
27544
|
access: "create"
|
|
27338
27545
|
},
|
|
27339
|
-
"pipelineAnalytics.
|
|
27546
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27340
27547
|
capName: "pipeline-analytics",
|
|
27341
27548
|
capScope: "device",
|
|
27342
27549
|
addonId: null,
|
|
@@ -27408,12 +27615,6 @@ Object.freeze({
|
|
|
27408
27615
|
addonId: null,
|
|
27409
27616
|
access: "view"
|
|
27410
27617
|
},
|
|
27411
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27412
|
-
capName: "pipeline-analytics",
|
|
27413
|
-
capScope: "device",
|
|
27414
|
-
addonId: null,
|
|
27415
|
-
access: "view"
|
|
27416
|
-
},
|
|
27417
27618
|
"pipelineAnalytics.getMotionEvents": {
|
|
27418
27619
|
capName: "pipeline-analytics",
|
|
27419
27620
|
capScope: "device",
|
|
@@ -27450,6 +27651,12 @@ Object.freeze({
|
|
|
27450
27651
|
addonId: null,
|
|
27451
27652
|
access: "view"
|
|
27452
27653
|
},
|
|
27654
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27655
|
+
capName: "pipeline-analytics",
|
|
27656
|
+
capScope: "device",
|
|
27657
|
+
addonId: null,
|
|
27658
|
+
access: "view"
|
|
27659
|
+
},
|
|
27453
27660
|
"pipelineAnalytics.getTrack": {
|
|
27454
27661
|
capName: "pipeline-analytics",
|
|
27455
27662
|
capScope: "device",
|
|
@@ -27528,6 +27735,12 @@ Object.freeze({
|
|
|
27528
27735
|
addonId: null,
|
|
27529
27736
|
access: "view"
|
|
27530
27737
|
},
|
|
27738
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27739
|
+
capName: "pipeline-analytics",
|
|
27740
|
+
capScope: "device",
|
|
27741
|
+
addonId: null,
|
|
27742
|
+
access: "create"
|
|
27743
|
+
},
|
|
27531
27744
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27532
27745
|
capName: "pipeline-analytics",
|
|
27533
27746
|
capScope: "device",
|
|
@@ -27558,7 +27771,7 @@ Object.freeze({
|
|
|
27558
27771
|
addonId: null,
|
|
27559
27772
|
access: "create"
|
|
27560
27773
|
},
|
|
27561
|
-
"pipelineAnalytics.
|
|
27774
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27562
27775
|
capName: "pipeline-analytics",
|
|
27563
27776
|
capScope: "device",
|
|
27564
27777
|
addonId: null,
|
|
@@ -27570,6 +27783,12 @@ Object.freeze({
|
|
|
27570
27783
|
addonId: null,
|
|
27571
27784
|
access: "create"
|
|
27572
27785
|
},
|
|
27786
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27787
|
+
capName: "pipeline-analytics",
|
|
27788
|
+
capScope: "device",
|
|
27789
|
+
addonId: null,
|
|
27790
|
+
access: "create"
|
|
27791
|
+
},
|
|
27573
27792
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27574
27793
|
capName: "pipeline-analytics",
|
|
27575
27794
|
capScope: "device",
|
|
@@ -27594,6 +27813,12 @@ Object.freeze({
|
|
|
27594
27813
|
addonId: null,
|
|
27595
27814
|
access: "create"
|
|
27596
27815
|
},
|
|
27816
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27817
|
+
capName: "pipeline-analytics",
|
|
27818
|
+
capScope: "device",
|
|
27819
|
+
addonId: null,
|
|
27820
|
+
access: "create"
|
|
27821
|
+
},
|
|
27597
27822
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27598
27823
|
capName: "pipeline-analytics",
|
|
27599
27824
|
capScope: "device",
|
|
@@ -27960,6 +28185,12 @@ Object.freeze({
|
|
|
27960
28185
|
addonId: null,
|
|
27961
28186
|
access: "view"
|
|
27962
28187
|
},
|
|
28188
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28189
|
+
capName: "pipeline-orchestrator",
|
|
28190
|
+
capScope: "system",
|
|
28191
|
+
addonId: null,
|
|
28192
|
+
access: "create"
|
|
28193
|
+
},
|
|
27963
28194
|
"pipelineOrchestrator.rebalance": {
|
|
27964
28195
|
capName: "pipeline-orchestrator",
|
|
27965
28196
|
capScope: "system",
|
|
@@ -27984,6 +28215,12 @@ Object.freeze({
|
|
|
27984
28215
|
addonId: null,
|
|
27985
28216
|
access: "view"
|
|
27986
28217
|
},
|
|
28218
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28219
|
+
capName: "pipeline-orchestrator",
|
|
28220
|
+
capScope: "system",
|
|
28221
|
+
addonId: null,
|
|
28222
|
+
access: "create"
|
|
28223
|
+
},
|
|
27987
28224
|
"pipelineOrchestrator.saveTemplate": {
|
|
27988
28225
|
capName: "pipeline-orchestrator",
|
|
27989
28226
|
capScope: "system",
|
|
@@ -28380,7 +28617,7 @@ Object.freeze({
|
|
|
28380
28617
|
addonId: null,
|
|
28381
28618
|
access: "create"
|
|
28382
28619
|
},
|
|
28383
|
-
"recording.
|
|
28620
|
+
"recording.cancelStorageMigrationMove": {
|
|
28384
28621
|
capName: "recording",
|
|
28385
28622
|
capScope: "system",
|
|
28386
28623
|
addonId: null,
|
|
@@ -28416,7 +28653,7 @@ Object.freeze({
|
|
|
28416
28653
|
addonId: null,
|
|
28417
28654
|
access: "view"
|
|
28418
28655
|
},
|
|
28419
|
-
"recording.
|
|
28656
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28420
28657
|
capName: "recording",
|
|
28421
28658
|
capScope: "system",
|
|
28422
28659
|
addonId: null,
|
|
@@ -28440,6 +28677,12 @@ Object.freeze({
|
|
|
28440
28677
|
addonId: null,
|
|
28441
28678
|
access: "view"
|
|
28442
28679
|
},
|
|
28680
|
+
"recording.pauseForStorageMigration": {
|
|
28681
|
+
capName: "recording",
|
|
28682
|
+
capScope: "system",
|
|
28683
|
+
addonId: null,
|
|
28684
|
+
access: "create"
|
|
28685
|
+
},
|
|
28443
28686
|
"recording.pruneFootage": {
|
|
28444
28687
|
capName: "recording",
|
|
28445
28688
|
capScope: "system",
|
|
@@ -28458,7 +28701,7 @@ Object.freeze({
|
|
|
28458
28701
|
addonId: null,
|
|
28459
28702
|
access: "view"
|
|
28460
28703
|
},
|
|
28461
|
-
"recording.
|
|
28704
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28462
28705
|
capName: "recording",
|
|
28463
28706
|
capScope: "system",
|
|
28464
28707
|
addonId: null,
|
|
@@ -28482,12 +28725,24 @@ Object.freeze({
|
|
|
28482
28725
|
addonId: null,
|
|
28483
28726
|
access: "create"
|
|
28484
28727
|
},
|
|
28728
|
+
"recording.resumeForStorageMigration": {
|
|
28729
|
+
capName: "recording",
|
|
28730
|
+
capScope: "system",
|
|
28731
|
+
addonId: null,
|
|
28732
|
+
access: "create"
|
|
28733
|
+
},
|
|
28485
28734
|
"recording.setDeviceConfig": {
|
|
28486
28735
|
capName: "recording",
|
|
28487
28736
|
capScope: "system",
|
|
28488
28737
|
addonId: null,
|
|
28489
28738
|
access: "create"
|
|
28490
28739
|
},
|
|
28740
|
+
"recording.startStorageMigrationMove": {
|
|
28741
|
+
capName: "recording",
|
|
28742
|
+
capScope: "system",
|
|
28743
|
+
addonId: null,
|
|
28744
|
+
access: "create"
|
|
28745
|
+
},
|
|
28491
28746
|
"recordingExport.cancelExport": {
|
|
28492
28747
|
capName: "recordingExport",
|
|
28493
28748
|
capScope: "system",
|
|
@@ -28878,6 +29133,30 @@ Object.freeze({
|
|
|
28878
29133
|
addonId: null,
|
|
28879
29134
|
access: "view"
|
|
28880
29135
|
},
|
|
29136
|
+
"storageMigration.cancel": {
|
|
29137
|
+
capName: "storage-migration",
|
|
29138
|
+
capScope: "system",
|
|
29139
|
+
addonId: null,
|
|
29140
|
+
access: "create"
|
|
29141
|
+
},
|
|
29142
|
+
"storageMigration.plan": {
|
|
29143
|
+
capName: "storage-migration",
|
|
29144
|
+
capScope: "system",
|
|
29145
|
+
addonId: null,
|
|
29146
|
+
access: "view"
|
|
29147
|
+
},
|
|
29148
|
+
"storageMigration.start": {
|
|
29149
|
+
capName: "storage-migration",
|
|
29150
|
+
capScope: "system",
|
|
29151
|
+
addonId: null,
|
|
29152
|
+
access: "create"
|
|
29153
|
+
},
|
|
29154
|
+
"storageMigration.status": {
|
|
29155
|
+
capName: "storage-migration",
|
|
29156
|
+
capScope: "system",
|
|
29157
|
+
addonId: null,
|
|
29158
|
+
access: "view"
|
|
29159
|
+
},
|
|
28881
29160
|
"storageProvider.abortUpload": {
|
|
28882
29161
|
capName: "storage-provider",
|
|
28883
29162
|
capScope: "system",
|
|
@@ -29256,12 +29535,42 @@ Object.freeze({
|
|
|
29256
29535
|
addonId: null,
|
|
29257
29536
|
access: "create"
|
|
29258
29537
|
},
|
|
29538
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29539
|
+
capName: "terminal-session",
|
|
29540
|
+
capScope: "system",
|
|
29541
|
+
addonId: null,
|
|
29542
|
+
access: "create"
|
|
29543
|
+
},
|
|
29259
29544
|
"terminalSession.close": {
|
|
29260
29545
|
capName: "terminal-session",
|
|
29261
29546
|
capScope: "system",
|
|
29262
29547
|
addonId: null,
|
|
29263
29548
|
access: "create"
|
|
29264
29549
|
},
|
|
29550
|
+
"terminalSession.createInstance": {
|
|
29551
|
+
capName: "terminal-session",
|
|
29552
|
+
capScope: "system",
|
|
29553
|
+
addonId: null,
|
|
29554
|
+
access: "create"
|
|
29555
|
+
},
|
|
29556
|
+
"terminalSession.deleteInstance": {
|
|
29557
|
+
capName: "terminal-session",
|
|
29558
|
+
capScope: "system",
|
|
29559
|
+
addonId: null,
|
|
29560
|
+
access: "delete"
|
|
29561
|
+
},
|
|
29562
|
+
"terminalSession.listInstances": {
|
|
29563
|
+
capName: "terminal-session",
|
|
29564
|
+
capScope: "system",
|
|
29565
|
+
addonId: null,
|
|
29566
|
+
access: "view"
|
|
29567
|
+
},
|
|
29568
|
+
"terminalSession.listLegacyCameras": {
|
|
29569
|
+
capName: "terminal-session",
|
|
29570
|
+
capScope: "system",
|
|
29571
|
+
addonId: null,
|
|
29572
|
+
access: "view"
|
|
29573
|
+
},
|
|
29265
29574
|
"terminalSession.listProfiles": {
|
|
29266
29575
|
capName: "terminal-session",
|
|
29267
29576
|
capScope: "system",
|
|
@@ -29280,12 +29589,30 @@ Object.freeze({
|
|
|
29280
29589
|
addonId: null,
|
|
29281
29590
|
access: "create"
|
|
29282
29591
|
},
|
|
29592
|
+
"terminalSession.pullOutput": {
|
|
29593
|
+
capName: "terminal-session",
|
|
29594
|
+
capScope: "system",
|
|
29595
|
+
addonId: null,
|
|
29596
|
+
access: "create"
|
|
29597
|
+
},
|
|
29283
29598
|
"terminalSession.resize": {
|
|
29284
29599
|
capName: "terminal-session",
|
|
29285
29600
|
capScope: "system",
|
|
29286
29601
|
addonId: null,
|
|
29287
29602
|
access: "create"
|
|
29288
29603
|
},
|
|
29604
|
+
"terminalSession.setInstanceEnabled": {
|
|
29605
|
+
capName: "terminal-session",
|
|
29606
|
+
capScope: "system",
|
|
29607
|
+
addonId: null,
|
|
29608
|
+
access: "create"
|
|
29609
|
+
},
|
|
29610
|
+
"terminalSession.writeInput": {
|
|
29611
|
+
capName: "terminal-session",
|
|
29612
|
+
capScope: "system",
|
|
29613
|
+
addonId: null,
|
|
29614
|
+
access: "create"
|
|
29615
|
+
},
|
|
29289
29616
|
"toast.onToast": {
|
|
29290
29617
|
capName: "toast",
|
|
29291
29618
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -7602,12 +7602,11 @@ var RecordingConfigSchema = object({
|
|
|
7602
7602
|
/**
|
|
7603
7603
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7604
7604
|
*
|
|
7605
|
-
* One shape shared by the recorder
|
|
7606
|
-
*
|
|
7607
|
-
*
|
|
7608
|
-
*
|
|
7609
|
-
*
|
|
7610
|
-
* row on the owning addon's surface.
|
|
7605
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7606
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7607
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7608
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7609
|
+
* addon surface.
|
|
7611
7610
|
*/
|
|
7612
7611
|
var RelocateJobStateSchema = _enum([
|
|
7613
7612
|
"running",
|
|
@@ -7634,19 +7633,100 @@ var RelocateJobSchema = object({
|
|
|
7634
7633
|
finishedAt: number().nullable(),
|
|
7635
7634
|
error: string().nullable()
|
|
7636
7635
|
});
|
|
7636
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7637
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7638
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7637
7639
|
var RelocateFootageInputSchema = object({
|
|
7638
|
-
deviceId: number().optional(),
|
|
7639
7640
|
fromLocationId: string(),
|
|
7640
7641
|
toLocationId: string(),
|
|
7641
7642
|
entities: array(_enum(["segments"])).optional(),
|
|
7643
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7644
|
+
* pre-orchestration compatibility path. */
|
|
7645
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7642
7646
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7643
7647
|
* never allowed to starve live writers. */
|
|
7644
7648
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7645
7649
|
});
|
|
7646
|
-
|
|
7647
|
-
|
|
7650
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7651
|
+
* from persistent recording settings: a migration never changes
|
|
7652
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7653
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7654
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7655
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7648
7656
|
toLocationId: string(),
|
|
7649
7657
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7658
|
+
}).extend({ leaseId: string().min(1) });
|
|
7659
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7660
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7661
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7662
|
+
var StorageMigrationClassSchema = _enum([
|
|
7663
|
+
"recordings",
|
|
7664
|
+
"recordingsLow",
|
|
7665
|
+
"eventMedia"
|
|
7666
|
+
]);
|
|
7667
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7668
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7669
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7670
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7671
|
+
recordings: string().min(1).optional(),
|
|
7672
|
+
recordingsLow: string().min(1).optional(),
|
|
7673
|
+
eventMedia: string().min(1).optional()
|
|
7674
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7675
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7676
|
+
var StorageMigrationInputSchema = object({
|
|
7677
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7678
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7679
|
+
});
|
|
7680
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7681
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7682
|
+
* verified. */
|
|
7683
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7684
|
+
"planning",
|
|
7685
|
+
"pausing",
|
|
7686
|
+
"moving",
|
|
7687
|
+
"verifying",
|
|
7688
|
+
"repointing",
|
|
7689
|
+
"refreshing",
|
|
7690
|
+
"resuming",
|
|
7691
|
+
"done",
|
|
7692
|
+
"failed",
|
|
7693
|
+
"cancelled"
|
|
7694
|
+
]);
|
|
7695
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7696
|
+
"pipeline",
|
|
7697
|
+
"recorder",
|
|
7698
|
+
"analytics"
|
|
7699
|
+
]);
|
|
7700
|
+
var StorageMigrationMoveSchema = object({
|
|
7701
|
+
storageClass: StorageMigrationClassSchema,
|
|
7702
|
+
fromLocationId: string(),
|
|
7703
|
+
toLocationId: string(),
|
|
7704
|
+
moverJobId: string().nullable(),
|
|
7705
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7706
|
+
error: string().nullable()
|
|
7707
|
+
});
|
|
7708
|
+
var StorageMigrationJobSchema = object({
|
|
7709
|
+
jobId: string(),
|
|
7710
|
+
phase: StorageMigrationPhaseSchema,
|
|
7711
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7712
|
+
throttleMbps: number(),
|
|
7713
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7714
|
+
pauseLeaseId: string().nullable(),
|
|
7715
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7716
|
+
repointed: boolean(),
|
|
7717
|
+
cancelRequested: boolean(),
|
|
7718
|
+
startedAt: number(),
|
|
7719
|
+
updatedAt: number(),
|
|
7720
|
+
finishedAt: number().nullable(),
|
|
7721
|
+
error: string().nullable()
|
|
7722
|
+
});
|
|
7723
|
+
var StorageMigrationPlanSchema = object({
|
|
7724
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7725
|
+
moves: array(object({
|
|
7726
|
+
storageClass: StorageMigrationClassSchema,
|
|
7727
|
+
fromLocationId: string(),
|
|
7728
|
+
toLocationId: string()
|
|
7729
|
+
}))
|
|
7650
7730
|
});
|
|
7651
7731
|
/**
|
|
7652
7732
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16067,13 +16147,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16067
16147
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16068
16148
|
kind: "mutation",
|
|
16069
16149
|
auth: "admin"
|
|
16070
|
-
}), method(
|
|
16150
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16071
16151
|
kind: "mutation",
|
|
16072
16152
|
auth: "admin"
|
|
16073
|
-
}), method(object({
|
|
16074
|
-
kind: "
|
|
16153
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16154
|
+
kind: "mutation",
|
|
16075
16155
|
auth: "admin"
|
|
16076
|
-
}), method(
|
|
16156
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16157
|
+
kind: "mutation",
|
|
16158
|
+
auth: "admin"
|
|
16159
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16160
|
+
kind: "mutation",
|
|
16161
|
+
auth: "admin"
|
|
16162
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16077
16163
|
kind: "mutation",
|
|
16078
16164
|
auth: "admin"
|
|
16079
16165
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17570,7 +17656,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17570
17656
|
reachable: boolean(),
|
|
17571
17657
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17572
17658
|
});
|
|
17573
|
-
method(object({
|
|
17659
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17660
|
+
kind: "mutation",
|
|
17661
|
+
auth: "admin"
|
|
17662
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17663
|
+
kind: "mutation",
|
|
17664
|
+
auth: "admin"
|
|
17665
|
+
}), method(object({
|
|
17574
17666
|
deviceId: number(),
|
|
17575
17667
|
agentNodeId: string()
|
|
17576
17668
|
}), object({ success: literal(true) }), {
|
|
@@ -18244,6 +18336,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18244
18336
|
locationId: string(),
|
|
18245
18337
|
targetBytes: number().int().positive()
|
|
18246
18338
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18339
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18340
|
+
kind: "mutation",
|
|
18341
|
+
auth: "admin"
|
|
18342
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18343
|
+
kind: "mutation",
|
|
18344
|
+
auth: "admin"
|
|
18345
|
+
});
|
|
18247
18346
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18248
18347
|
providerId: string().min(1),
|
|
18249
18348
|
displayName: string().min(1),
|
|
@@ -18347,7 +18446,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18347
18446
|
label: string(),
|
|
18348
18447
|
description: string().optional()
|
|
18349
18448
|
});
|
|
18350
|
-
|
|
18449
|
+
/**
|
|
18450
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18451
|
+
* an instance declares a camera.
|
|
18452
|
+
*/
|
|
18453
|
+
var TerminalInstanceInfoSchema = object({
|
|
18454
|
+
instanceId: string(),
|
|
18455
|
+
cameraStableId: string(),
|
|
18456
|
+
nodeId: string(),
|
|
18457
|
+
profileId: string(),
|
|
18458
|
+
profileLabel: string(),
|
|
18459
|
+
name: string(),
|
|
18460
|
+
enabled: boolean()
|
|
18461
|
+
});
|
|
18462
|
+
var TerminalLegacyCameraSchema = object({
|
|
18463
|
+
stableId: string(),
|
|
18464
|
+
nodeId: string(),
|
|
18465
|
+
profileId: string(),
|
|
18466
|
+
profileLabel: string(),
|
|
18467
|
+
name: string(),
|
|
18468
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18469
|
+
adoptable: boolean()
|
|
18470
|
+
});
|
|
18471
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18472
|
+
seq: number().int().positive(),
|
|
18473
|
+
kind: literal("data"),
|
|
18474
|
+
data: string()
|
|
18475
|
+
}), object({
|
|
18476
|
+
seq: number().int().positive(),
|
|
18477
|
+
kind: literal("exit"),
|
|
18478
|
+
exitCode: number().int(),
|
|
18479
|
+
signal: number().int().optional()
|
|
18480
|
+
})]);
|
|
18481
|
+
var TerminalOutputBatchSchema = object({
|
|
18482
|
+
cursor: number().int().nonnegative(),
|
|
18483
|
+
reset: boolean(),
|
|
18484
|
+
snapshot: string().optional(),
|
|
18485
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18486
|
+
});
|
|
18487
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18488
|
+
targetNodeId: string().min(1),
|
|
18489
|
+
profileId: string().min(1),
|
|
18490
|
+
name: string().trim().min(1).max(160).optional()
|
|
18491
|
+
}), TerminalInstanceInfoSchema, {
|
|
18492
|
+
kind: "mutation",
|
|
18493
|
+
auth: "admin"
|
|
18494
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18495
|
+
kind: "mutation",
|
|
18496
|
+
auth: "admin"
|
|
18497
|
+
}), method(object({
|
|
18498
|
+
instanceId: string().min(1),
|
|
18499
|
+
enabled: boolean()
|
|
18500
|
+
}), TerminalInstanceInfoSchema, {
|
|
18501
|
+
kind: "mutation",
|
|
18502
|
+
auth: "admin"
|
|
18503
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18504
|
+
stableId: string().min(1),
|
|
18505
|
+
name: string().trim().min(1).max(160).optional()
|
|
18506
|
+
}), TerminalInstanceInfoSchema, {
|
|
18507
|
+
kind: "mutation",
|
|
18508
|
+
auth: "admin"
|
|
18509
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18351
18510
|
profileId: string(),
|
|
18352
18511
|
cols: number().int().positive(),
|
|
18353
18512
|
rows: number().int().positive()
|
|
@@ -18361,6 +18520,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18361
18520
|
}), _void(), {
|
|
18362
18521
|
kind: "mutation",
|
|
18363
18522
|
auth: "admin"
|
|
18523
|
+
}), method(object({
|
|
18524
|
+
sessionId: string(),
|
|
18525
|
+
afterSeq: number().int().nonnegative(),
|
|
18526
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18527
|
+
/**
|
|
18528
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18529
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18530
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18531
|
+
*/
|
|
18532
|
+
waitForOutput: boolean().optional()
|
|
18533
|
+
}), TerminalOutputBatchSchema, {
|
|
18534
|
+
kind: "mutation",
|
|
18535
|
+
auth: "admin",
|
|
18536
|
+
timeoutMs: 15e3
|
|
18537
|
+
}), method(object({
|
|
18538
|
+
sessionId: string(),
|
|
18539
|
+
data: string().max(64 * 1024)
|
|
18540
|
+
}), _void(), {
|
|
18541
|
+
kind: "mutation",
|
|
18542
|
+
auth: "admin"
|
|
18364
18543
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18365
18544
|
kind: "mutation",
|
|
18366
18545
|
auth: "admin"
|
|
@@ -20291,6 +20470,7 @@ var FaceInfoSchema = object({
|
|
|
20291
20470
|
var FaceFilterEnum = _enum([
|
|
20292
20471
|
"unassigned",
|
|
20293
20472
|
"recognized",
|
|
20473
|
+
"identified",
|
|
20294
20474
|
"all"
|
|
20295
20475
|
]);
|
|
20296
20476
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20319,6 +20499,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20319
20499
|
kind: "mutation",
|
|
20320
20500
|
auth: "admin"
|
|
20321
20501
|
}), method(object({
|
|
20502
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20503
|
+
deviceId: number().int().optional(),
|
|
20322
20504
|
limit: number().int().positive().optional(),
|
|
20323
20505
|
filter: FaceFilterEnum.optional(),
|
|
20324
20506
|
/**
|
|
@@ -22084,6 +22266,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22084
22266
|
capName: string().min(1).max(64),
|
|
22085
22267
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22086
22268
|
valuePath: string().min(1).max(64)
|
|
22269
|
+
}),
|
|
22270
|
+
object({
|
|
22271
|
+
kind: literal("latest-recognition"),
|
|
22272
|
+
recognition: _enum(["person", "plate"])
|
|
22087
22273
|
})
|
|
22088
22274
|
]);
|
|
22089
22275
|
var OsdSlotBindingSchema = object({
|
|
@@ -22189,6 +22375,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22189
22375
|
}), object({ success: literal(true) }), {
|
|
22190
22376
|
kind: "mutation",
|
|
22191
22377
|
auth: "admin"
|
|
22378
|
+
}), method(object({
|
|
22379
|
+
sourceDeviceId: number().int(),
|
|
22380
|
+
targetDeviceId: number().int()
|
|
22381
|
+
}), object({
|
|
22382
|
+
copied: number().int().nonnegative(),
|
|
22383
|
+
skipped: number().int().nonnegative()
|
|
22384
|
+
}), {
|
|
22385
|
+
kind: "mutation",
|
|
22386
|
+
auth: "admin"
|
|
22192
22387
|
}), method(object({
|
|
22193
22388
|
deviceId: number().int(),
|
|
22194
22389
|
slotId: string().min(1),
|
|
@@ -23074,13 +23269,19 @@ method(object({
|
|
|
23074
23269
|
}), {
|
|
23075
23270
|
kind: "mutation",
|
|
23076
23271
|
auth: "admin"
|
|
23077
|
-
}), method(
|
|
23272
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23078
23273
|
kind: "mutation",
|
|
23079
23274
|
auth: "admin"
|
|
23080
|
-
}), method(object({
|
|
23081
|
-
kind: "
|
|
23275
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23276
|
+
kind: "mutation",
|
|
23082
23277
|
auth: "admin"
|
|
23083
|
-
}), method(
|
|
23278
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23279
|
+
kind: "mutation",
|
|
23280
|
+
auth: "admin"
|
|
23281
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23282
|
+
kind: "mutation",
|
|
23283
|
+
auth: "admin"
|
|
23284
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23084
23285
|
kind: "mutation",
|
|
23085
23286
|
auth: "admin"
|
|
23086
23287
|
});
|
|
@@ -27202,6 +27403,12 @@ Object.freeze({
|
|
|
27202
27403
|
addonId: null,
|
|
27203
27404
|
access: "delete"
|
|
27204
27405
|
},
|
|
27406
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27407
|
+
capName: "osd-manager",
|
|
27408
|
+
capScope: "system",
|
|
27409
|
+
addonId: null,
|
|
27410
|
+
access: "create"
|
|
27411
|
+
},
|
|
27205
27412
|
"osdManager.getConditionSupport": {
|
|
27206
27413
|
capName: "osd-manager",
|
|
27207
27414
|
capScope: "system",
|
|
@@ -27298,7 +27505,7 @@ Object.freeze({
|
|
|
27298
27505
|
addonId: null,
|
|
27299
27506
|
access: "create"
|
|
27300
27507
|
},
|
|
27301
|
-
"pipelineAnalytics.
|
|
27508
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27302
27509
|
capName: "pipeline-analytics",
|
|
27303
27510
|
capScope: "device",
|
|
27304
27511
|
addonId: null,
|
|
@@ -27370,12 +27577,6 @@ Object.freeze({
|
|
|
27370
27577
|
addonId: null,
|
|
27371
27578
|
access: "view"
|
|
27372
27579
|
},
|
|
27373
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27374
|
-
capName: "pipeline-analytics",
|
|
27375
|
-
capScope: "device",
|
|
27376
|
-
addonId: null,
|
|
27377
|
-
access: "view"
|
|
27378
|
-
},
|
|
27379
27580
|
"pipelineAnalytics.getMotionEvents": {
|
|
27380
27581
|
capName: "pipeline-analytics",
|
|
27381
27582
|
capScope: "device",
|
|
@@ -27412,6 +27613,12 @@ Object.freeze({
|
|
|
27412
27613
|
addonId: null,
|
|
27413
27614
|
access: "view"
|
|
27414
27615
|
},
|
|
27616
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27617
|
+
capName: "pipeline-analytics",
|
|
27618
|
+
capScope: "device",
|
|
27619
|
+
addonId: null,
|
|
27620
|
+
access: "view"
|
|
27621
|
+
},
|
|
27415
27622
|
"pipelineAnalytics.getTrack": {
|
|
27416
27623
|
capName: "pipeline-analytics",
|
|
27417
27624
|
capScope: "device",
|
|
@@ -27490,6 +27697,12 @@ Object.freeze({
|
|
|
27490
27697
|
addonId: null,
|
|
27491
27698
|
access: "view"
|
|
27492
27699
|
},
|
|
27700
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27701
|
+
capName: "pipeline-analytics",
|
|
27702
|
+
capScope: "device",
|
|
27703
|
+
addonId: null,
|
|
27704
|
+
access: "create"
|
|
27705
|
+
},
|
|
27493
27706
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27494
27707
|
capName: "pipeline-analytics",
|
|
27495
27708
|
capScope: "device",
|
|
@@ -27520,7 +27733,7 @@ Object.freeze({
|
|
|
27520
27733
|
addonId: null,
|
|
27521
27734
|
access: "create"
|
|
27522
27735
|
},
|
|
27523
|
-
"pipelineAnalytics.
|
|
27736
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27524
27737
|
capName: "pipeline-analytics",
|
|
27525
27738
|
capScope: "device",
|
|
27526
27739
|
addonId: null,
|
|
@@ -27532,6 +27745,12 @@ Object.freeze({
|
|
|
27532
27745
|
addonId: null,
|
|
27533
27746
|
access: "create"
|
|
27534
27747
|
},
|
|
27748
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27749
|
+
capName: "pipeline-analytics",
|
|
27750
|
+
capScope: "device",
|
|
27751
|
+
addonId: null,
|
|
27752
|
+
access: "create"
|
|
27753
|
+
},
|
|
27535
27754
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27536
27755
|
capName: "pipeline-analytics",
|
|
27537
27756
|
capScope: "device",
|
|
@@ -27556,6 +27775,12 @@ Object.freeze({
|
|
|
27556
27775
|
addonId: null,
|
|
27557
27776
|
access: "create"
|
|
27558
27777
|
},
|
|
27778
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27779
|
+
capName: "pipeline-analytics",
|
|
27780
|
+
capScope: "device",
|
|
27781
|
+
addonId: null,
|
|
27782
|
+
access: "create"
|
|
27783
|
+
},
|
|
27559
27784
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27560
27785
|
capName: "pipeline-analytics",
|
|
27561
27786
|
capScope: "device",
|
|
@@ -27922,6 +28147,12 @@ Object.freeze({
|
|
|
27922
28147
|
addonId: null,
|
|
27923
28148
|
access: "view"
|
|
27924
28149
|
},
|
|
28150
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28151
|
+
capName: "pipeline-orchestrator",
|
|
28152
|
+
capScope: "system",
|
|
28153
|
+
addonId: null,
|
|
28154
|
+
access: "create"
|
|
28155
|
+
},
|
|
27925
28156
|
"pipelineOrchestrator.rebalance": {
|
|
27926
28157
|
capName: "pipeline-orchestrator",
|
|
27927
28158
|
capScope: "system",
|
|
@@ -27946,6 +28177,12 @@ Object.freeze({
|
|
|
27946
28177
|
addonId: null,
|
|
27947
28178
|
access: "view"
|
|
27948
28179
|
},
|
|
28180
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28181
|
+
capName: "pipeline-orchestrator",
|
|
28182
|
+
capScope: "system",
|
|
28183
|
+
addonId: null,
|
|
28184
|
+
access: "create"
|
|
28185
|
+
},
|
|
27949
28186
|
"pipelineOrchestrator.saveTemplate": {
|
|
27950
28187
|
capName: "pipeline-orchestrator",
|
|
27951
28188
|
capScope: "system",
|
|
@@ -28342,7 +28579,7 @@ Object.freeze({
|
|
|
28342
28579
|
addonId: null,
|
|
28343
28580
|
access: "create"
|
|
28344
28581
|
},
|
|
28345
|
-
"recording.
|
|
28582
|
+
"recording.cancelStorageMigrationMove": {
|
|
28346
28583
|
capName: "recording",
|
|
28347
28584
|
capScope: "system",
|
|
28348
28585
|
addonId: null,
|
|
@@ -28378,7 +28615,7 @@ Object.freeze({
|
|
|
28378
28615
|
addonId: null,
|
|
28379
28616
|
access: "view"
|
|
28380
28617
|
},
|
|
28381
|
-
"recording.
|
|
28618
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28382
28619
|
capName: "recording",
|
|
28383
28620
|
capScope: "system",
|
|
28384
28621
|
addonId: null,
|
|
@@ -28402,6 +28639,12 @@ Object.freeze({
|
|
|
28402
28639
|
addonId: null,
|
|
28403
28640
|
access: "view"
|
|
28404
28641
|
},
|
|
28642
|
+
"recording.pauseForStorageMigration": {
|
|
28643
|
+
capName: "recording",
|
|
28644
|
+
capScope: "system",
|
|
28645
|
+
addonId: null,
|
|
28646
|
+
access: "create"
|
|
28647
|
+
},
|
|
28405
28648
|
"recording.pruneFootage": {
|
|
28406
28649
|
capName: "recording",
|
|
28407
28650
|
capScope: "system",
|
|
@@ -28420,7 +28663,7 @@ Object.freeze({
|
|
|
28420
28663
|
addonId: null,
|
|
28421
28664
|
access: "view"
|
|
28422
28665
|
},
|
|
28423
|
-
"recording.
|
|
28666
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28424
28667
|
capName: "recording",
|
|
28425
28668
|
capScope: "system",
|
|
28426
28669
|
addonId: null,
|
|
@@ -28444,12 +28687,24 @@ Object.freeze({
|
|
|
28444
28687
|
addonId: null,
|
|
28445
28688
|
access: "create"
|
|
28446
28689
|
},
|
|
28690
|
+
"recording.resumeForStorageMigration": {
|
|
28691
|
+
capName: "recording",
|
|
28692
|
+
capScope: "system",
|
|
28693
|
+
addonId: null,
|
|
28694
|
+
access: "create"
|
|
28695
|
+
},
|
|
28447
28696
|
"recording.setDeviceConfig": {
|
|
28448
28697
|
capName: "recording",
|
|
28449
28698
|
capScope: "system",
|
|
28450
28699
|
addonId: null,
|
|
28451
28700
|
access: "create"
|
|
28452
28701
|
},
|
|
28702
|
+
"recording.startStorageMigrationMove": {
|
|
28703
|
+
capName: "recording",
|
|
28704
|
+
capScope: "system",
|
|
28705
|
+
addonId: null,
|
|
28706
|
+
access: "create"
|
|
28707
|
+
},
|
|
28453
28708
|
"recordingExport.cancelExport": {
|
|
28454
28709
|
capName: "recordingExport",
|
|
28455
28710
|
capScope: "system",
|
|
@@ -28840,6 +29095,30 @@ Object.freeze({
|
|
|
28840
29095
|
addonId: null,
|
|
28841
29096
|
access: "view"
|
|
28842
29097
|
},
|
|
29098
|
+
"storageMigration.cancel": {
|
|
29099
|
+
capName: "storage-migration",
|
|
29100
|
+
capScope: "system",
|
|
29101
|
+
addonId: null,
|
|
29102
|
+
access: "create"
|
|
29103
|
+
},
|
|
29104
|
+
"storageMigration.plan": {
|
|
29105
|
+
capName: "storage-migration",
|
|
29106
|
+
capScope: "system",
|
|
29107
|
+
addonId: null,
|
|
29108
|
+
access: "view"
|
|
29109
|
+
},
|
|
29110
|
+
"storageMigration.start": {
|
|
29111
|
+
capName: "storage-migration",
|
|
29112
|
+
capScope: "system",
|
|
29113
|
+
addonId: null,
|
|
29114
|
+
access: "create"
|
|
29115
|
+
},
|
|
29116
|
+
"storageMigration.status": {
|
|
29117
|
+
capName: "storage-migration",
|
|
29118
|
+
capScope: "system",
|
|
29119
|
+
addonId: null,
|
|
29120
|
+
access: "view"
|
|
29121
|
+
},
|
|
28843
29122
|
"storageProvider.abortUpload": {
|
|
28844
29123
|
capName: "storage-provider",
|
|
28845
29124
|
capScope: "system",
|
|
@@ -29218,12 +29497,42 @@ Object.freeze({
|
|
|
29218
29497
|
addonId: null,
|
|
29219
29498
|
access: "create"
|
|
29220
29499
|
},
|
|
29500
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29501
|
+
capName: "terminal-session",
|
|
29502
|
+
capScope: "system",
|
|
29503
|
+
addonId: null,
|
|
29504
|
+
access: "create"
|
|
29505
|
+
},
|
|
29221
29506
|
"terminalSession.close": {
|
|
29222
29507
|
capName: "terminal-session",
|
|
29223
29508
|
capScope: "system",
|
|
29224
29509
|
addonId: null,
|
|
29225
29510
|
access: "create"
|
|
29226
29511
|
},
|
|
29512
|
+
"terminalSession.createInstance": {
|
|
29513
|
+
capName: "terminal-session",
|
|
29514
|
+
capScope: "system",
|
|
29515
|
+
addonId: null,
|
|
29516
|
+
access: "create"
|
|
29517
|
+
},
|
|
29518
|
+
"terminalSession.deleteInstance": {
|
|
29519
|
+
capName: "terminal-session",
|
|
29520
|
+
capScope: "system",
|
|
29521
|
+
addonId: null,
|
|
29522
|
+
access: "delete"
|
|
29523
|
+
},
|
|
29524
|
+
"terminalSession.listInstances": {
|
|
29525
|
+
capName: "terminal-session",
|
|
29526
|
+
capScope: "system",
|
|
29527
|
+
addonId: null,
|
|
29528
|
+
access: "view"
|
|
29529
|
+
},
|
|
29530
|
+
"terminalSession.listLegacyCameras": {
|
|
29531
|
+
capName: "terminal-session",
|
|
29532
|
+
capScope: "system",
|
|
29533
|
+
addonId: null,
|
|
29534
|
+
access: "view"
|
|
29535
|
+
},
|
|
29227
29536
|
"terminalSession.listProfiles": {
|
|
29228
29537
|
capName: "terminal-session",
|
|
29229
29538
|
capScope: "system",
|
|
@@ -29242,12 +29551,30 @@ Object.freeze({
|
|
|
29242
29551
|
addonId: null,
|
|
29243
29552
|
access: "create"
|
|
29244
29553
|
},
|
|
29554
|
+
"terminalSession.pullOutput": {
|
|
29555
|
+
capName: "terminal-session",
|
|
29556
|
+
capScope: "system",
|
|
29557
|
+
addonId: null,
|
|
29558
|
+
access: "create"
|
|
29559
|
+
},
|
|
29245
29560
|
"terminalSession.resize": {
|
|
29246
29561
|
capName: "terminal-session",
|
|
29247
29562
|
capScope: "system",
|
|
29248
29563
|
addonId: null,
|
|
29249
29564
|
access: "create"
|
|
29250
29565
|
},
|
|
29566
|
+
"terminalSession.setInstanceEnabled": {
|
|
29567
|
+
capName: "terminal-session",
|
|
29568
|
+
capScope: "system",
|
|
29569
|
+
addonId: null,
|
|
29570
|
+
access: "create"
|
|
29571
|
+
},
|
|
29572
|
+
"terminalSession.writeInput": {
|
|
29573
|
+
capName: "terminal-session",
|
|
29574
|
+
capScope: "system",
|
|
29575
|
+
addonId: null,
|
|
29576
|
+
access: "create"
|
|
29577
|
+
},
|
|
29251
29578
|
"toast.onToast": {
|
|
29252
29579
|
capName: "toast",
|
|
29253
29580
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-ai",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.17",
|
|
4
4
|
"description": "AI addon for CamStack — the `llm` collection provider (cloud, LAN, and camstack-managed local llama.cpp profiles) plus the per-node `llm-runtime` managed executor.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|