@camstack/addon-ai 0.2.16 → 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 +316 -31
- package/dist/addon.mjs +316 -31
- 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",
|
|
16193
|
+
auth: "admin"
|
|
16194
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16195
|
+
kind: "mutation",
|
|
16196
|
+
auth: "admin"
|
|
16197
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16198
|
+
kind: "mutation",
|
|
16113
16199
|
auth: "admin"
|
|
16114
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
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,6 +18484,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18385
18484
|
label: string(),
|
|
18386
18485
|
description: string().optional()
|
|
18387
18486
|
});
|
|
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
|
+
});
|
|
18388
18509
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18389
18510
|
seq: number().int().positive(),
|
|
18390
18511
|
kind: literal("data"),
|
|
@@ -18401,7 +18522,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18401
18522
|
snapshot: string().optional(),
|
|
18402
18523
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18403
18524
|
});
|
|
18404
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
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({
|
|
18405
18548
|
profileId: string(),
|
|
18406
18549
|
cols: number().int().positive(),
|
|
18407
18550
|
rows: number().int().positive()
|
|
@@ -18418,7 +18561,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18418
18561
|
}), method(object({
|
|
18419
18562
|
sessionId: string(),
|
|
18420
18563
|
afterSeq: number().int().nonnegative(),
|
|
18421
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
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()
|
|
18422
18571
|
}), TerminalOutputBatchSchema, {
|
|
18423
18572
|
kind: "mutation",
|
|
18424
18573
|
auth: "admin",
|
|
@@ -20359,6 +20508,7 @@ var FaceInfoSchema = object({
|
|
|
20359
20508
|
var FaceFilterEnum = _enum([
|
|
20360
20509
|
"unassigned",
|
|
20361
20510
|
"recognized",
|
|
20511
|
+
"identified",
|
|
20362
20512
|
"all"
|
|
20363
20513
|
]);
|
|
20364
20514
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20387,6 +20537,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20387
20537
|
kind: "mutation",
|
|
20388
20538
|
auth: "admin"
|
|
20389
20539
|
}), method(object({
|
|
20540
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20541
|
+
deviceId: number().int().optional(),
|
|
20390
20542
|
limit: number().int().positive().optional(),
|
|
20391
20543
|
filter: FaceFilterEnum.optional(),
|
|
20392
20544
|
/**
|
|
@@ -22152,6 +22304,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22152
22304
|
capName: string().min(1).max(64),
|
|
22153
22305
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22154
22306
|
valuePath: string().min(1).max(64)
|
|
22307
|
+
}),
|
|
22308
|
+
object({
|
|
22309
|
+
kind: literal("latest-recognition"),
|
|
22310
|
+
recognition: _enum(["person", "plate"])
|
|
22155
22311
|
})
|
|
22156
22312
|
]);
|
|
22157
22313
|
var OsdSlotBindingSchema = object({
|
|
@@ -22257,6 +22413,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22257
22413
|
}), object({ success: literal(true) }), {
|
|
22258
22414
|
kind: "mutation",
|
|
22259
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"
|
|
22260
22425
|
}), method(object({
|
|
22261
22426
|
deviceId: number().int(),
|
|
22262
22427
|
slotId: string().min(1),
|
|
@@ -23142,13 +23307,19 @@ method(object({
|
|
|
23142
23307
|
}), {
|
|
23143
23308
|
kind: "mutation",
|
|
23144
23309
|
auth: "admin"
|
|
23145
|
-
}), method(
|
|
23310
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23146
23311
|
kind: "mutation",
|
|
23147
23312
|
auth: "admin"
|
|
23148
|
-
}), method(object({
|
|
23149
|
-
kind: "
|
|
23313
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23314
|
+
kind: "mutation",
|
|
23150
23315
|
auth: "admin"
|
|
23151
|
-
}), 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() }), {
|
|
23152
23323
|
kind: "mutation",
|
|
23153
23324
|
auth: "admin"
|
|
23154
23325
|
});
|
|
@@ -27270,6 +27441,12 @@ Object.freeze({
|
|
|
27270
27441
|
addonId: null,
|
|
27271
27442
|
access: "delete"
|
|
27272
27443
|
},
|
|
27444
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27445
|
+
capName: "osd-manager",
|
|
27446
|
+
capScope: "system",
|
|
27447
|
+
addonId: null,
|
|
27448
|
+
access: "create"
|
|
27449
|
+
},
|
|
27273
27450
|
"osdManager.getConditionSupport": {
|
|
27274
27451
|
capName: "osd-manager",
|
|
27275
27452
|
capScope: "system",
|
|
@@ -27366,7 +27543,7 @@ Object.freeze({
|
|
|
27366
27543
|
addonId: null,
|
|
27367
27544
|
access: "create"
|
|
27368
27545
|
},
|
|
27369
|
-
"pipelineAnalytics.
|
|
27546
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27370
27547
|
capName: "pipeline-analytics",
|
|
27371
27548
|
capScope: "device",
|
|
27372
27549
|
addonId: null,
|
|
@@ -27438,12 +27615,6 @@ Object.freeze({
|
|
|
27438
27615
|
addonId: null,
|
|
27439
27616
|
access: "view"
|
|
27440
27617
|
},
|
|
27441
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27442
|
-
capName: "pipeline-analytics",
|
|
27443
|
-
capScope: "device",
|
|
27444
|
-
addonId: null,
|
|
27445
|
-
access: "view"
|
|
27446
|
-
},
|
|
27447
27618
|
"pipelineAnalytics.getMotionEvents": {
|
|
27448
27619
|
capName: "pipeline-analytics",
|
|
27449
27620
|
capScope: "device",
|
|
@@ -27480,6 +27651,12 @@ Object.freeze({
|
|
|
27480
27651
|
addonId: null,
|
|
27481
27652
|
access: "view"
|
|
27482
27653
|
},
|
|
27654
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27655
|
+
capName: "pipeline-analytics",
|
|
27656
|
+
capScope: "device",
|
|
27657
|
+
addonId: null,
|
|
27658
|
+
access: "view"
|
|
27659
|
+
},
|
|
27483
27660
|
"pipelineAnalytics.getTrack": {
|
|
27484
27661
|
capName: "pipeline-analytics",
|
|
27485
27662
|
capScope: "device",
|
|
@@ -27558,6 +27735,12 @@ Object.freeze({
|
|
|
27558
27735
|
addonId: null,
|
|
27559
27736
|
access: "view"
|
|
27560
27737
|
},
|
|
27738
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27739
|
+
capName: "pipeline-analytics",
|
|
27740
|
+
capScope: "device",
|
|
27741
|
+
addonId: null,
|
|
27742
|
+
access: "create"
|
|
27743
|
+
},
|
|
27561
27744
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27562
27745
|
capName: "pipeline-analytics",
|
|
27563
27746
|
capScope: "device",
|
|
@@ -27588,7 +27771,7 @@ Object.freeze({
|
|
|
27588
27771
|
addonId: null,
|
|
27589
27772
|
access: "create"
|
|
27590
27773
|
},
|
|
27591
|
-
"pipelineAnalytics.
|
|
27774
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27592
27775
|
capName: "pipeline-analytics",
|
|
27593
27776
|
capScope: "device",
|
|
27594
27777
|
addonId: null,
|
|
@@ -27600,6 +27783,12 @@ Object.freeze({
|
|
|
27600
27783
|
addonId: null,
|
|
27601
27784
|
access: "create"
|
|
27602
27785
|
},
|
|
27786
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27787
|
+
capName: "pipeline-analytics",
|
|
27788
|
+
capScope: "device",
|
|
27789
|
+
addonId: null,
|
|
27790
|
+
access: "create"
|
|
27791
|
+
},
|
|
27603
27792
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27604
27793
|
capName: "pipeline-analytics",
|
|
27605
27794
|
capScope: "device",
|
|
@@ -27624,6 +27813,12 @@ Object.freeze({
|
|
|
27624
27813
|
addonId: null,
|
|
27625
27814
|
access: "create"
|
|
27626
27815
|
},
|
|
27816
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27817
|
+
capName: "pipeline-analytics",
|
|
27818
|
+
capScope: "device",
|
|
27819
|
+
addonId: null,
|
|
27820
|
+
access: "create"
|
|
27821
|
+
},
|
|
27627
27822
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27628
27823
|
capName: "pipeline-analytics",
|
|
27629
27824
|
capScope: "device",
|
|
@@ -27990,6 +28185,12 @@ Object.freeze({
|
|
|
27990
28185
|
addonId: null,
|
|
27991
28186
|
access: "view"
|
|
27992
28187
|
},
|
|
28188
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28189
|
+
capName: "pipeline-orchestrator",
|
|
28190
|
+
capScope: "system",
|
|
28191
|
+
addonId: null,
|
|
28192
|
+
access: "create"
|
|
28193
|
+
},
|
|
27993
28194
|
"pipelineOrchestrator.rebalance": {
|
|
27994
28195
|
capName: "pipeline-orchestrator",
|
|
27995
28196
|
capScope: "system",
|
|
@@ -28014,6 +28215,12 @@ Object.freeze({
|
|
|
28014
28215
|
addonId: null,
|
|
28015
28216
|
access: "view"
|
|
28016
28217
|
},
|
|
28218
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28219
|
+
capName: "pipeline-orchestrator",
|
|
28220
|
+
capScope: "system",
|
|
28221
|
+
addonId: null,
|
|
28222
|
+
access: "create"
|
|
28223
|
+
},
|
|
28017
28224
|
"pipelineOrchestrator.saveTemplate": {
|
|
28018
28225
|
capName: "pipeline-orchestrator",
|
|
28019
28226
|
capScope: "system",
|
|
@@ -28410,7 +28617,7 @@ Object.freeze({
|
|
|
28410
28617
|
addonId: null,
|
|
28411
28618
|
access: "create"
|
|
28412
28619
|
},
|
|
28413
|
-
"recording.
|
|
28620
|
+
"recording.cancelStorageMigrationMove": {
|
|
28414
28621
|
capName: "recording",
|
|
28415
28622
|
capScope: "system",
|
|
28416
28623
|
addonId: null,
|
|
@@ -28446,7 +28653,7 @@ Object.freeze({
|
|
|
28446
28653
|
addonId: null,
|
|
28447
28654
|
access: "view"
|
|
28448
28655
|
},
|
|
28449
|
-
"recording.
|
|
28656
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28450
28657
|
capName: "recording",
|
|
28451
28658
|
capScope: "system",
|
|
28452
28659
|
addonId: null,
|
|
@@ -28470,6 +28677,12 @@ Object.freeze({
|
|
|
28470
28677
|
addonId: null,
|
|
28471
28678
|
access: "view"
|
|
28472
28679
|
},
|
|
28680
|
+
"recording.pauseForStorageMigration": {
|
|
28681
|
+
capName: "recording",
|
|
28682
|
+
capScope: "system",
|
|
28683
|
+
addonId: null,
|
|
28684
|
+
access: "create"
|
|
28685
|
+
},
|
|
28473
28686
|
"recording.pruneFootage": {
|
|
28474
28687
|
capName: "recording",
|
|
28475
28688
|
capScope: "system",
|
|
@@ -28488,7 +28701,7 @@ Object.freeze({
|
|
|
28488
28701
|
addonId: null,
|
|
28489
28702
|
access: "view"
|
|
28490
28703
|
},
|
|
28491
|
-
"recording.
|
|
28704
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28492
28705
|
capName: "recording",
|
|
28493
28706
|
capScope: "system",
|
|
28494
28707
|
addonId: null,
|
|
@@ -28512,12 +28725,24 @@ Object.freeze({
|
|
|
28512
28725
|
addonId: null,
|
|
28513
28726
|
access: "create"
|
|
28514
28727
|
},
|
|
28728
|
+
"recording.resumeForStorageMigration": {
|
|
28729
|
+
capName: "recording",
|
|
28730
|
+
capScope: "system",
|
|
28731
|
+
addonId: null,
|
|
28732
|
+
access: "create"
|
|
28733
|
+
},
|
|
28515
28734
|
"recording.setDeviceConfig": {
|
|
28516
28735
|
capName: "recording",
|
|
28517
28736
|
capScope: "system",
|
|
28518
28737
|
addonId: null,
|
|
28519
28738
|
access: "create"
|
|
28520
28739
|
},
|
|
28740
|
+
"recording.startStorageMigrationMove": {
|
|
28741
|
+
capName: "recording",
|
|
28742
|
+
capScope: "system",
|
|
28743
|
+
addonId: null,
|
|
28744
|
+
access: "create"
|
|
28745
|
+
},
|
|
28521
28746
|
"recordingExport.cancelExport": {
|
|
28522
28747
|
capName: "recordingExport",
|
|
28523
28748
|
capScope: "system",
|
|
@@ -28908,6 +29133,30 @@ Object.freeze({
|
|
|
28908
29133
|
addonId: null,
|
|
28909
29134
|
access: "view"
|
|
28910
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
|
+
},
|
|
28911
29160
|
"storageProvider.abortUpload": {
|
|
28912
29161
|
capName: "storage-provider",
|
|
28913
29162
|
capScope: "system",
|
|
@@ -29286,12 +29535,42 @@ Object.freeze({
|
|
|
29286
29535
|
addonId: null,
|
|
29287
29536
|
access: "create"
|
|
29288
29537
|
},
|
|
29538
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29539
|
+
capName: "terminal-session",
|
|
29540
|
+
capScope: "system",
|
|
29541
|
+
addonId: null,
|
|
29542
|
+
access: "create"
|
|
29543
|
+
},
|
|
29289
29544
|
"terminalSession.close": {
|
|
29290
29545
|
capName: "terminal-session",
|
|
29291
29546
|
capScope: "system",
|
|
29292
29547
|
addonId: null,
|
|
29293
29548
|
access: "create"
|
|
29294
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
|
+
},
|
|
29295
29574
|
"terminalSession.listProfiles": {
|
|
29296
29575
|
capName: "terminal-session",
|
|
29297
29576
|
capScope: "system",
|
|
@@ -29322,6 +29601,12 @@ Object.freeze({
|
|
|
29322
29601
|
addonId: null,
|
|
29323
29602
|
access: "create"
|
|
29324
29603
|
},
|
|
29604
|
+
"terminalSession.setInstanceEnabled": {
|
|
29605
|
+
capName: "terminal-session",
|
|
29606
|
+
capScope: "system",
|
|
29607
|
+
addonId: null,
|
|
29608
|
+
access: "create"
|
|
29609
|
+
},
|
|
29325
29610
|
"terminalSession.writeInput": {
|
|
29326
29611
|
capName: "terminal-session",
|
|
29327
29612
|
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",
|
|
16155
|
+
auth: "admin"
|
|
16156
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16157
|
+
kind: "mutation",
|
|
16158
|
+
auth: "admin"
|
|
16159
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16160
|
+
kind: "mutation",
|
|
16075
16161
|
auth: "admin"
|
|
16076
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
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,6 +18446,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18347
18446
|
label: string(),
|
|
18348
18447
|
description: string().optional()
|
|
18349
18448
|
});
|
|
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
|
+
});
|
|
18350
18471
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18351
18472
|
seq: number().int().positive(),
|
|
18352
18473
|
kind: literal("data"),
|
|
@@ -18363,7 +18484,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18363
18484
|
snapshot: string().optional(),
|
|
18364
18485
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18365
18486
|
});
|
|
18366
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
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({
|
|
18367
18510
|
profileId: string(),
|
|
18368
18511
|
cols: number().int().positive(),
|
|
18369
18512
|
rows: number().int().positive()
|
|
@@ -18380,7 +18523,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18380
18523
|
}), method(object({
|
|
18381
18524
|
sessionId: string(),
|
|
18382
18525
|
afterSeq: number().int().nonnegative(),
|
|
18383
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
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()
|
|
18384
18533
|
}), TerminalOutputBatchSchema, {
|
|
18385
18534
|
kind: "mutation",
|
|
18386
18535
|
auth: "admin",
|
|
@@ -20321,6 +20470,7 @@ var FaceInfoSchema = object({
|
|
|
20321
20470
|
var FaceFilterEnum = _enum([
|
|
20322
20471
|
"unassigned",
|
|
20323
20472
|
"recognized",
|
|
20473
|
+
"identified",
|
|
20324
20474
|
"all"
|
|
20325
20475
|
]);
|
|
20326
20476
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20349,6 +20499,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20349
20499
|
kind: "mutation",
|
|
20350
20500
|
auth: "admin"
|
|
20351
20501
|
}), method(object({
|
|
20502
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20503
|
+
deviceId: number().int().optional(),
|
|
20352
20504
|
limit: number().int().positive().optional(),
|
|
20353
20505
|
filter: FaceFilterEnum.optional(),
|
|
20354
20506
|
/**
|
|
@@ -22114,6 +22266,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22114
22266
|
capName: string().min(1).max(64),
|
|
22115
22267
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22116
22268
|
valuePath: string().min(1).max(64)
|
|
22269
|
+
}),
|
|
22270
|
+
object({
|
|
22271
|
+
kind: literal("latest-recognition"),
|
|
22272
|
+
recognition: _enum(["person", "plate"])
|
|
22117
22273
|
})
|
|
22118
22274
|
]);
|
|
22119
22275
|
var OsdSlotBindingSchema = object({
|
|
@@ -22219,6 +22375,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22219
22375
|
}), object({ success: literal(true) }), {
|
|
22220
22376
|
kind: "mutation",
|
|
22221
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"
|
|
22222
22387
|
}), method(object({
|
|
22223
22388
|
deviceId: number().int(),
|
|
22224
22389
|
slotId: string().min(1),
|
|
@@ -23104,13 +23269,19 @@ method(object({
|
|
|
23104
23269
|
}), {
|
|
23105
23270
|
kind: "mutation",
|
|
23106
23271
|
auth: "admin"
|
|
23107
|
-
}), method(
|
|
23272
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23108
23273
|
kind: "mutation",
|
|
23109
23274
|
auth: "admin"
|
|
23110
|
-
}), method(object({
|
|
23111
|
-
kind: "
|
|
23275
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23276
|
+
kind: "mutation",
|
|
23112
23277
|
auth: "admin"
|
|
23113
|
-
}), 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() }), {
|
|
23114
23285
|
kind: "mutation",
|
|
23115
23286
|
auth: "admin"
|
|
23116
23287
|
});
|
|
@@ -27232,6 +27403,12 @@ Object.freeze({
|
|
|
27232
27403
|
addonId: null,
|
|
27233
27404
|
access: "delete"
|
|
27234
27405
|
},
|
|
27406
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27407
|
+
capName: "osd-manager",
|
|
27408
|
+
capScope: "system",
|
|
27409
|
+
addonId: null,
|
|
27410
|
+
access: "create"
|
|
27411
|
+
},
|
|
27235
27412
|
"osdManager.getConditionSupport": {
|
|
27236
27413
|
capName: "osd-manager",
|
|
27237
27414
|
capScope: "system",
|
|
@@ -27328,7 +27505,7 @@ Object.freeze({
|
|
|
27328
27505
|
addonId: null,
|
|
27329
27506
|
access: "create"
|
|
27330
27507
|
},
|
|
27331
|
-
"pipelineAnalytics.
|
|
27508
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27332
27509
|
capName: "pipeline-analytics",
|
|
27333
27510
|
capScope: "device",
|
|
27334
27511
|
addonId: null,
|
|
@@ -27400,12 +27577,6 @@ Object.freeze({
|
|
|
27400
27577
|
addonId: null,
|
|
27401
27578
|
access: "view"
|
|
27402
27579
|
},
|
|
27403
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27404
|
-
capName: "pipeline-analytics",
|
|
27405
|
-
capScope: "device",
|
|
27406
|
-
addonId: null,
|
|
27407
|
-
access: "view"
|
|
27408
|
-
},
|
|
27409
27580
|
"pipelineAnalytics.getMotionEvents": {
|
|
27410
27581
|
capName: "pipeline-analytics",
|
|
27411
27582
|
capScope: "device",
|
|
@@ -27442,6 +27613,12 @@ Object.freeze({
|
|
|
27442
27613
|
addonId: null,
|
|
27443
27614
|
access: "view"
|
|
27444
27615
|
},
|
|
27616
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27617
|
+
capName: "pipeline-analytics",
|
|
27618
|
+
capScope: "device",
|
|
27619
|
+
addonId: null,
|
|
27620
|
+
access: "view"
|
|
27621
|
+
},
|
|
27445
27622
|
"pipelineAnalytics.getTrack": {
|
|
27446
27623
|
capName: "pipeline-analytics",
|
|
27447
27624
|
capScope: "device",
|
|
@@ -27520,6 +27697,12 @@ Object.freeze({
|
|
|
27520
27697
|
addonId: null,
|
|
27521
27698
|
access: "view"
|
|
27522
27699
|
},
|
|
27700
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27701
|
+
capName: "pipeline-analytics",
|
|
27702
|
+
capScope: "device",
|
|
27703
|
+
addonId: null,
|
|
27704
|
+
access: "create"
|
|
27705
|
+
},
|
|
27523
27706
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27524
27707
|
capName: "pipeline-analytics",
|
|
27525
27708
|
capScope: "device",
|
|
@@ -27550,7 +27733,7 @@ Object.freeze({
|
|
|
27550
27733
|
addonId: null,
|
|
27551
27734
|
access: "create"
|
|
27552
27735
|
},
|
|
27553
|
-
"pipelineAnalytics.
|
|
27736
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27554
27737
|
capName: "pipeline-analytics",
|
|
27555
27738
|
capScope: "device",
|
|
27556
27739
|
addonId: null,
|
|
@@ -27562,6 +27745,12 @@ Object.freeze({
|
|
|
27562
27745
|
addonId: null,
|
|
27563
27746
|
access: "create"
|
|
27564
27747
|
},
|
|
27748
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27749
|
+
capName: "pipeline-analytics",
|
|
27750
|
+
capScope: "device",
|
|
27751
|
+
addonId: null,
|
|
27752
|
+
access: "create"
|
|
27753
|
+
},
|
|
27565
27754
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27566
27755
|
capName: "pipeline-analytics",
|
|
27567
27756
|
capScope: "device",
|
|
@@ -27586,6 +27775,12 @@ Object.freeze({
|
|
|
27586
27775
|
addonId: null,
|
|
27587
27776
|
access: "create"
|
|
27588
27777
|
},
|
|
27778
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27779
|
+
capName: "pipeline-analytics",
|
|
27780
|
+
capScope: "device",
|
|
27781
|
+
addonId: null,
|
|
27782
|
+
access: "create"
|
|
27783
|
+
},
|
|
27589
27784
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27590
27785
|
capName: "pipeline-analytics",
|
|
27591
27786
|
capScope: "device",
|
|
@@ -27952,6 +28147,12 @@ Object.freeze({
|
|
|
27952
28147
|
addonId: null,
|
|
27953
28148
|
access: "view"
|
|
27954
28149
|
},
|
|
28150
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28151
|
+
capName: "pipeline-orchestrator",
|
|
28152
|
+
capScope: "system",
|
|
28153
|
+
addonId: null,
|
|
28154
|
+
access: "create"
|
|
28155
|
+
},
|
|
27955
28156
|
"pipelineOrchestrator.rebalance": {
|
|
27956
28157
|
capName: "pipeline-orchestrator",
|
|
27957
28158
|
capScope: "system",
|
|
@@ -27976,6 +28177,12 @@ Object.freeze({
|
|
|
27976
28177
|
addonId: null,
|
|
27977
28178
|
access: "view"
|
|
27978
28179
|
},
|
|
28180
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28181
|
+
capName: "pipeline-orchestrator",
|
|
28182
|
+
capScope: "system",
|
|
28183
|
+
addonId: null,
|
|
28184
|
+
access: "create"
|
|
28185
|
+
},
|
|
27979
28186
|
"pipelineOrchestrator.saveTemplate": {
|
|
27980
28187
|
capName: "pipeline-orchestrator",
|
|
27981
28188
|
capScope: "system",
|
|
@@ -28372,7 +28579,7 @@ Object.freeze({
|
|
|
28372
28579
|
addonId: null,
|
|
28373
28580
|
access: "create"
|
|
28374
28581
|
},
|
|
28375
|
-
"recording.
|
|
28582
|
+
"recording.cancelStorageMigrationMove": {
|
|
28376
28583
|
capName: "recording",
|
|
28377
28584
|
capScope: "system",
|
|
28378
28585
|
addonId: null,
|
|
@@ -28408,7 +28615,7 @@ Object.freeze({
|
|
|
28408
28615
|
addonId: null,
|
|
28409
28616
|
access: "view"
|
|
28410
28617
|
},
|
|
28411
|
-
"recording.
|
|
28618
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28412
28619
|
capName: "recording",
|
|
28413
28620
|
capScope: "system",
|
|
28414
28621
|
addonId: null,
|
|
@@ -28432,6 +28639,12 @@ Object.freeze({
|
|
|
28432
28639
|
addonId: null,
|
|
28433
28640
|
access: "view"
|
|
28434
28641
|
},
|
|
28642
|
+
"recording.pauseForStorageMigration": {
|
|
28643
|
+
capName: "recording",
|
|
28644
|
+
capScope: "system",
|
|
28645
|
+
addonId: null,
|
|
28646
|
+
access: "create"
|
|
28647
|
+
},
|
|
28435
28648
|
"recording.pruneFootage": {
|
|
28436
28649
|
capName: "recording",
|
|
28437
28650
|
capScope: "system",
|
|
@@ -28450,7 +28663,7 @@ Object.freeze({
|
|
|
28450
28663
|
addonId: null,
|
|
28451
28664
|
access: "view"
|
|
28452
28665
|
},
|
|
28453
|
-
"recording.
|
|
28666
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28454
28667
|
capName: "recording",
|
|
28455
28668
|
capScope: "system",
|
|
28456
28669
|
addonId: null,
|
|
@@ -28474,12 +28687,24 @@ Object.freeze({
|
|
|
28474
28687
|
addonId: null,
|
|
28475
28688
|
access: "create"
|
|
28476
28689
|
},
|
|
28690
|
+
"recording.resumeForStorageMigration": {
|
|
28691
|
+
capName: "recording",
|
|
28692
|
+
capScope: "system",
|
|
28693
|
+
addonId: null,
|
|
28694
|
+
access: "create"
|
|
28695
|
+
},
|
|
28477
28696
|
"recording.setDeviceConfig": {
|
|
28478
28697
|
capName: "recording",
|
|
28479
28698
|
capScope: "system",
|
|
28480
28699
|
addonId: null,
|
|
28481
28700
|
access: "create"
|
|
28482
28701
|
},
|
|
28702
|
+
"recording.startStorageMigrationMove": {
|
|
28703
|
+
capName: "recording",
|
|
28704
|
+
capScope: "system",
|
|
28705
|
+
addonId: null,
|
|
28706
|
+
access: "create"
|
|
28707
|
+
},
|
|
28483
28708
|
"recordingExport.cancelExport": {
|
|
28484
28709
|
capName: "recordingExport",
|
|
28485
28710
|
capScope: "system",
|
|
@@ -28870,6 +29095,30 @@ Object.freeze({
|
|
|
28870
29095
|
addonId: null,
|
|
28871
29096
|
access: "view"
|
|
28872
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
|
+
},
|
|
28873
29122
|
"storageProvider.abortUpload": {
|
|
28874
29123
|
capName: "storage-provider",
|
|
28875
29124
|
capScope: "system",
|
|
@@ -29248,12 +29497,42 @@ Object.freeze({
|
|
|
29248
29497
|
addonId: null,
|
|
29249
29498
|
access: "create"
|
|
29250
29499
|
},
|
|
29500
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29501
|
+
capName: "terminal-session",
|
|
29502
|
+
capScope: "system",
|
|
29503
|
+
addonId: null,
|
|
29504
|
+
access: "create"
|
|
29505
|
+
},
|
|
29251
29506
|
"terminalSession.close": {
|
|
29252
29507
|
capName: "terminal-session",
|
|
29253
29508
|
capScope: "system",
|
|
29254
29509
|
addonId: null,
|
|
29255
29510
|
access: "create"
|
|
29256
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
|
+
},
|
|
29257
29536
|
"terminalSession.listProfiles": {
|
|
29258
29537
|
capName: "terminal-session",
|
|
29259
29538
|
capScope: "system",
|
|
@@ -29284,6 +29563,12 @@ Object.freeze({
|
|
|
29284
29563
|
addonId: null,
|
|
29285
29564
|
access: "create"
|
|
29286
29565
|
},
|
|
29566
|
+
"terminalSession.setInstanceEnabled": {
|
|
29567
|
+
capName: "terminal-session",
|
|
29568
|
+
capScope: "system",
|
|
29569
|
+
addonId: null,
|
|
29570
|
+
access: "create"
|
|
29571
|
+
},
|
|
29287
29572
|
"terminalSession.writeInput": {
|
|
29288
29573
|
capName: "terminal-session",
|
|
29289
29574
|
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",
|