@camstack/system 1.2.77 → 1.2.79
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/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +1 -1
- package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
- package/dist/builtins/storage-orchestrator/index.d.ts +2 -0
- package/dist/builtins/storage-orchestrator/index.js +1 -0
- package/dist/builtins/storage-orchestrator/index.mjs +2 -2
- package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +73 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +2 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +468 -8
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +468 -9
- package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +7 -0
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-eBPa-ZBZ.mjs → dist-CIIFhXqm.mjs} +367 -46
- package/dist/{dist-DWZce90k.js → dist-cINpngi1.js} +378 -45
- package/dist/index.js +1 -1
- package/dist/index.mjs +2 -2
- package/package.json +4 -1
|
@@ -3681,12 +3681,11 @@ var RecordingConfigSchema = zod.z.object({
|
|
|
3681
3681
|
/**
|
|
3682
3682
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
3683
3683
|
*
|
|
3684
|
-
* One shape shared by the recorder
|
|
3685
|
-
*
|
|
3686
|
-
*
|
|
3687
|
-
*
|
|
3688
|
-
*
|
|
3689
|
-
* row on the owning addon's surface.
|
|
3684
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
3685
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
3686
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
3687
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
3688
|
+
* addon surface.
|
|
3690
3689
|
*/
|
|
3691
3690
|
var RelocateJobStateSchema = zod.z.enum([
|
|
3692
3691
|
"running",
|
|
@@ -3713,19 +3712,100 @@ var RelocateJobSchema = zod.z.object({
|
|
|
3713
3712
|
finishedAt: zod.z.number().nullable(),
|
|
3714
3713
|
error: zod.z.string().nullable()
|
|
3715
3714
|
});
|
|
3715
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
3716
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
3717
|
+
var RelocateFootageClassSchema = zod.z.enum(["recordings", "recordingsLow"]);
|
|
3716
3718
|
var RelocateFootageInputSchema = zod.z.object({
|
|
3717
|
-
deviceId: zod.z.number().optional(),
|
|
3718
3719
|
fromLocationId: zod.z.string(),
|
|
3719
3720
|
toLocationId: zod.z.string(),
|
|
3720
3721
|
entities: zod.z.array(zod.z.enum(["segments"])).optional(),
|
|
3722
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
3723
|
+
* pre-orchestration compatibility path. */
|
|
3724
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
3721
3725
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
3722
3726
|
* never allowed to starve live writers. */
|
|
3723
3727
|
throttleMbps: zod.z.number().min(1).max(1e3).optional()
|
|
3724
3728
|
});
|
|
3725
|
-
|
|
3726
|
-
|
|
3729
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
3730
|
+
* from persistent recording settings: a migration never changes
|
|
3731
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
3732
|
+
var StorageMigrationLeaseInputSchema = zod.z.object({ leaseId: zod.z.string().min(1) });
|
|
3733
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: zod.z.string().min(1) });
|
|
3734
|
+
var StorageMigrationMediaMoveInputSchema = zod.z.object({
|
|
3727
3735
|
toLocationId: zod.z.string(),
|
|
3728
3736
|
throttleMbps: zod.z.number().min(1).max(1e3).optional()
|
|
3737
|
+
}).extend({ leaseId: zod.z.string().min(1) });
|
|
3738
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
3739
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
3740
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
3741
|
+
var StorageMigrationClassSchema = zod.z.enum([
|
|
3742
|
+
"recordings",
|
|
3743
|
+
"recordingsLow",
|
|
3744
|
+
"eventMedia"
|
|
3745
|
+
]);
|
|
3746
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
3747
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
3748
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
3749
|
+
var StorageMigrationDestinationsSchema = zod.z.object({
|
|
3750
|
+
recordings: zod.z.string().min(1).optional(),
|
|
3751
|
+
recordingsLow: zod.z.string().min(1).optional(),
|
|
3752
|
+
eventMedia: zod.z.string().min(1).optional()
|
|
3753
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
3754
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
3755
|
+
var StorageMigrationInputSchema = zod.z.object({
|
|
3756
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
3757
|
+
throttleMbps: zod.z.number().min(1).max(1e3).optional()
|
|
3758
|
+
});
|
|
3759
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
3760
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
3761
|
+
* verified. */
|
|
3762
|
+
var StorageMigrationPhaseSchema = zod.z.enum([
|
|
3763
|
+
"planning",
|
|
3764
|
+
"pausing",
|
|
3765
|
+
"moving",
|
|
3766
|
+
"verifying",
|
|
3767
|
+
"repointing",
|
|
3768
|
+
"refreshing",
|
|
3769
|
+
"resuming",
|
|
3770
|
+
"done",
|
|
3771
|
+
"failed",
|
|
3772
|
+
"cancelled"
|
|
3773
|
+
]);
|
|
3774
|
+
var StorageMigrationParticipantSchema = zod.z.enum([
|
|
3775
|
+
"pipeline",
|
|
3776
|
+
"recorder",
|
|
3777
|
+
"analytics"
|
|
3778
|
+
]);
|
|
3779
|
+
var StorageMigrationMoveSchema = zod.z.object({
|
|
3780
|
+
storageClass: StorageMigrationClassSchema,
|
|
3781
|
+
fromLocationId: zod.z.string(),
|
|
3782
|
+
toLocationId: zod.z.string(),
|
|
3783
|
+
moverJobId: zod.z.string().nullable(),
|
|
3784
|
+
state: RelocateJobStateSchema.nullable(),
|
|
3785
|
+
error: zod.z.string().nullable()
|
|
3786
|
+
});
|
|
3787
|
+
var StorageMigrationJobSchema = zod.z.object({
|
|
3788
|
+
jobId: zod.z.string(),
|
|
3789
|
+
phase: StorageMigrationPhaseSchema,
|
|
3790
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
3791
|
+
throttleMbps: zod.z.number(),
|
|
3792
|
+
moves: zod.z.array(StorageMigrationMoveSchema),
|
|
3793
|
+
pauseLeaseId: zod.z.string().nullable(),
|
|
3794
|
+
pausedParticipants: zod.z.array(StorageMigrationParticipantSchema),
|
|
3795
|
+
repointed: zod.z.boolean(),
|
|
3796
|
+
cancelRequested: zod.z.boolean(),
|
|
3797
|
+
startedAt: zod.z.number(),
|
|
3798
|
+
updatedAt: zod.z.number(),
|
|
3799
|
+
finishedAt: zod.z.number().nullable(),
|
|
3800
|
+
error: zod.z.string().nullable()
|
|
3801
|
+
});
|
|
3802
|
+
var StorageMigrationPlanSchema = zod.z.object({
|
|
3803
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
3804
|
+
moves: zod.z.array(zod.z.object({
|
|
3805
|
+
storageClass: StorageMigrationClassSchema,
|
|
3806
|
+
fromLocationId: zod.z.string(),
|
|
3807
|
+
toLocationId: zod.z.string()
|
|
3808
|
+
}))
|
|
3729
3809
|
});
|
|
3730
3810
|
/**
|
|
3731
3811
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -14451,20 +14531,28 @@ var pipelineAnalyticsCapability = {
|
|
|
14451
14531
|
}),
|
|
14452
14532
|
/** The events ops-log rows (newest-first), optionally scoped to one camera.
|
|
14453
14533
|
* Backed by a declared pipeline-analytics SQLite collection. */
|
|
14454
|
-
/**
|
|
14455
|
-
*
|
|
14456
|
-
|
|
14457
|
-
* at the target are skipped, so a re-run resumes. Single-flight.
|
|
14458
|
-
*/
|
|
14459
|
-
relocateMedia: method(RelocateMediaInputSchema, zod.z.object({ jobId: zod.z.string() }), {
|
|
14534
|
+
/** Internal migration-participant lease. It drains active MediaStore
|
|
14535
|
+
* writes and refuses new ones without changing analytics bindings. */
|
|
14536
|
+
pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
|
|
14460
14537
|
kind: "mutation",
|
|
14461
14538
|
auth: "admin"
|
|
14462
14539
|
}),
|
|
14463
|
-
|
|
14464
|
-
kind: "
|
|
14540
|
+
resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ resumed: zod.z.literal(true) }), {
|
|
14541
|
+
kind: "mutation",
|
|
14542
|
+
auth: "admin"
|
|
14543
|
+
}),
|
|
14544
|
+
/** Drops cached location roots after the storage coordinator repoints a
|
|
14545
|
+
* default so future event-media writes use the new root. */
|
|
14546
|
+
refreshStorageLocationsForMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ refreshed: zod.z.literal(true) }), {
|
|
14547
|
+
kind: "mutation",
|
|
14548
|
+
auth: "admin"
|
|
14549
|
+
}),
|
|
14550
|
+
startStorageMigrationMove: method(StorageMigrationMediaMoveInputSchema, zod.z.object({ jobId: zod.z.string() }), {
|
|
14551
|
+
kind: "mutation",
|
|
14465
14552
|
auth: "admin"
|
|
14466
14553
|
}),
|
|
14467
|
-
|
|
14554
|
+
getStorageMigrationMoveStatus: method(zod.z.object({ jobId: zod.z.string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
|
|
14555
|
+
cancelStorageMigrationMove: method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
|
|
14468
14556
|
kind: "mutation",
|
|
14469
14557
|
auth: "admin"
|
|
14470
14558
|
}),
|
|
@@ -16542,6 +16630,16 @@ var pipelineOrchestratorCapability = {
|
|
|
16542
16630
|
nodeIdMode: "data",
|
|
16543
16631
|
exposesDeviceSettings: true,
|
|
16544
16632
|
methods: {
|
|
16633
|
+
/** Internal storage-migration participant lease. While held, dispatch
|
|
16634
|
+
* requests are accepted as pending but no new runner attachment starts. */
|
|
16635
|
+
pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
|
|
16636
|
+
kind: "mutation",
|
|
16637
|
+
auth: "admin"
|
|
16638
|
+
}),
|
|
16639
|
+
resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ resumed: zod.z.literal(true) }), {
|
|
16640
|
+
kind: "mutation",
|
|
16641
|
+
auth: "admin"
|
|
16642
|
+
}),
|
|
16545
16643
|
/**
|
|
16546
16644
|
* Pin a camera's pipeline to a specific agent (L1 affinity).
|
|
16547
16645
|
* The orchestrator re-evaluates the assignment immediately and persists
|
|
@@ -17707,6 +17805,28 @@ var storageEvictableCapability = {
|
|
|
17707
17805
|
}), EvictResultSchema, { kind: "mutation" })
|
|
17708
17806
|
}
|
|
17709
17807
|
};
|
|
17808
|
+
/**
|
|
17809
|
+
* The single operator-facing storage migration surface. It coordinates the
|
|
17810
|
+
* pipeline, recorder and post-analysis participants; callers never mutate a
|
|
17811
|
+
* camera recording config or invoke an individual mover directly.
|
|
17812
|
+
*/
|
|
17813
|
+
var storageMigrationCapability = {
|
|
17814
|
+
name: "storage-migration",
|
|
17815
|
+
scope: "system",
|
|
17816
|
+
mode: "singleton",
|
|
17817
|
+
methods: {
|
|
17818
|
+
plan: method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }),
|
|
17819
|
+
start: method(StorageMigrationInputSchema, zod.z.object({ jobId: zod.z.string() }), {
|
|
17820
|
+
kind: "mutation",
|
|
17821
|
+
auth: "admin"
|
|
17822
|
+
}),
|
|
17823
|
+
status: method(zod.z.object({ jobId: zod.z.string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }),
|
|
17824
|
+
cancel: method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
|
|
17825
|
+
kind: "mutation",
|
|
17826
|
+
auth: "admin"
|
|
17827
|
+
})
|
|
17828
|
+
}
|
|
17829
|
+
};
|
|
17710
17830
|
var ProviderInfoSchema = zod.z.discriminatedUnion("shouldSaveDiskSpace", [zod.z.object({
|
|
17711
17831
|
providerId: zod.z.string().min(1),
|
|
17712
17832
|
displayName: zod.z.string().min(1),
|
|
@@ -17855,6 +17975,28 @@ var TerminalProfileInfoSchema = zod.z.object({
|
|
|
17855
17975
|
label: zod.z.string(),
|
|
17856
17976
|
description: zod.z.string().optional()
|
|
17857
17977
|
});
|
|
17978
|
+
/**
|
|
17979
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
17980
|
+
* an instance declares a camera.
|
|
17981
|
+
*/
|
|
17982
|
+
var TerminalInstanceInfoSchema = zod.z.object({
|
|
17983
|
+
instanceId: zod.z.string(),
|
|
17984
|
+
cameraStableId: zod.z.string(),
|
|
17985
|
+
nodeId: zod.z.string(),
|
|
17986
|
+
profileId: zod.z.string(),
|
|
17987
|
+
profileLabel: zod.z.string(),
|
|
17988
|
+
name: zod.z.string(),
|
|
17989
|
+
enabled: zod.z.boolean()
|
|
17990
|
+
});
|
|
17991
|
+
var TerminalLegacyCameraSchema = zod.z.object({
|
|
17992
|
+
stableId: zod.z.string(),
|
|
17993
|
+
nodeId: zod.z.string(),
|
|
17994
|
+
profileId: zod.z.string(),
|
|
17995
|
+
profileLabel: zod.z.string(),
|
|
17996
|
+
name: zod.z.string(),
|
|
17997
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
17998
|
+
adoptable: zod.z.boolean()
|
|
17999
|
+
});
|
|
17858
18000
|
var TerminalOutputEventSchema = zod.z.discriminatedUnion("kind", [zod.z.object({
|
|
17859
18001
|
seq: zod.z.number().int().positive(),
|
|
17860
18002
|
kind: zod.z.literal("data"),
|
|
@@ -17874,10 +18016,9 @@ var TerminalOutputBatchSchema = zod.z.object({
|
|
|
17874
18016
|
/**
|
|
17875
18017
|
* terminal-session — singleton system capability for interactive TTY sessions.
|
|
17876
18018
|
*
|
|
17877
|
-
*
|
|
17878
|
-
*
|
|
17879
|
-
*
|
|
17880
|
-
* change this contract.
|
|
18019
|
+
* Owns both live PTY lifecycle and durable Terminal instance management.
|
|
18020
|
+
* Profiles are allowlisted templates; an explicit instance is the only path
|
|
18021
|
+
* that declares a camera.
|
|
17881
18022
|
*/
|
|
17882
18023
|
var terminalSessionCapability = {
|
|
17883
18024
|
name: "terminal-session",
|
|
@@ -17886,6 +18027,37 @@ var terminalSessionCapability = {
|
|
|
17886
18027
|
methods: {
|
|
17887
18028
|
/** Pre-declared profiles the operator may open. */
|
|
17888
18029
|
listProfiles: method(zod.z.void(), zod.z.array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
18030
|
+
/** Explicit durable Terminal instances, managed centrally on the hub. */
|
|
18031
|
+
listInstances: method(zod.z.void(), zod.z.array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }),
|
|
18032
|
+
createInstance: method(zod.z.object({
|
|
18033
|
+
targetNodeId: zod.z.string().min(1),
|
|
18034
|
+
profileId: zod.z.string().min(1),
|
|
18035
|
+
name: zod.z.string().trim().min(1).max(160).optional()
|
|
18036
|
+
}), TerminalInstanceInfoSchema, {
|
|
18037
|
+
kind: "mutation",
|
|
18038
|
+
auth: "admin"
|
|
18039
|
+
}),
|
|
18040
|
+
deleteInstance: method(zod.z.object({ instanceId: zod.z.string().min(1) }), zod.z.void(), {
|
|
18041
|
+
kind: "mutation",
|
|
18042
|
+
auth: "admin"
|
|
18043
|
+
}),
|
|
18044
|
+
setInstanceEnabled: method(zod.z.object({
|
|
18045
|
+
instanceId: zod.z.string().min(1),
|
|
18046
|
+
enabled: zod.z.boolean()
|
|
18047
|
+
}), TerminalInstanceInfoSchema, {
|
|
18048
|
+
kind: "mutation",
|
|
18049
|
+
auth: "admin"
|
|
18050
|
+
}),
|
|
18051
|
+
/** Existing automatic cameras are shown for explicit migration only. */
|
|
18052
|
+
listLegacyCameras: method(zod.z.void(), zod.z.array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }),
|
|
18053
|
+
/** Explicitly adopt one legacy monitor camera, retaining its stable id. */
|
|
18054
|
+
adoptLegacyMonitor: method(zod.z.object({
|
|
18055
|
+
stableId: zod.z.string().min(1),
|
|
18056
|
+
name: zod.z.string().trim().min(1).max(160).optional()
|
|
18057
|
+
}), TerminalInstanceInfoSchema, {
|
|
18058
|
+
kind: "mutation",
|
|
18059
|
+
auth: "admin"
|
|
18060
|
+
}),
|
|
17889
18061
|
/** Live sessions currently hosted by the provider. */
|
|
17890
18062
|
listSessions: method(zod.z.void(), zod.z.array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }),
|
|
17891
18063
|
/**
|
|
@@ -17917,7 +18089,13 @@ var terminalSessionCapability = {
|
|
|
17917
18089
|
pullOutput: method(zod.z.object({
|
|
17918
18090
|
sessionId: zod.z.string(),
|
|
17919
18091
|
afterSeq: zod.z.number().int().nonnegative(),
|
|
17920
|
-
waitMs: zod.z.number().int().min(0).max(2e3).default(0)
|
|
18092
|
+
waitMs: zod.z.number().int().min(0).max(2e3).default(0),
|
|
18093
|
+
/**
|
|
18094
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18095
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18096
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18097
|
+
*/
|
|
18098
|
+
waitForOutput: zod.z.boolean().optional()
|
|
17921
18099
|
}), TerminalOutputBatchSchema, {
|
|
17922
18100
|
kind: "mutation",
|
|
17923
18101
|
auth: "admin",
|
|
@@ -20921,6 +21099,7 @@ var FaceInfoSchema = zod.z.object({
|
|
|
20921
21099
|
var FaceFilterEnum = zod.z.enum([
|
|
20922
21100
|
"unassigned",
|
|
20923
21101
|
"recognized",
|
|
21102
|
+
"identified",
|
|
20924
21103
|
"all"
|
|
20925
21104
|
]);
|
|
20926
21105
|
var MediaFileLiteSchema$1 = zod.z.object({
|
|
@@ -20960,6 +21139,8 @@ var faceGalleryCapability = {
|
|
|
20960
21139
|
auth: "admin"
|
|
20961
21140
|
}),
|
|
20962
21141
|
listRecentFaces: method(zod.z.object({
|
|
21142
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21143
|
+
deviceId: zod.z.number().int().optional(),
|
|
20963
21144
|
limit: zod.z.number().int().positive().optional(),
|
|
20964
21145
|
filter: FaceFilterEnum.optional(),
|
|
20965
21146
|
/**
|
|
@@ -23531,6 +23712,10 @@ var OsdSourceSchema = zod.z.discriminatedUnion("kind", [
|
|
|
23531
23712
|
capName: zod.z.string().min(1).max(64),
|
|
23532
23713
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
23533
23714
|
valuePath: zod.z.string().min(1).max(64)
|
|
23715
|
+
}),
|
|
23716
|
+
zod.z.object({
|
|
23717
|
+
kind: zod.z.literal("latest-recognition"),
|
|
23718
|
+
recognition: zod.z.enum(["person", "plate"])
|
|
23534
23719
|
})
|
|
23535
23720
|
]);
|
|
23536
23721
|
var OsdSlotBindingSchema = zod.z.object({
|
|
@@ -23669,6 +23854,21 @@ var osdManagerCapability = {
|
|
|
23669
23854
|
auth: "admin"
|
|
23670
23855
|
}),
|
|
23671
23856
|
/**
|
|
23857
|
+
* Replace one camera's binding configuration from another. Writable source
|
|
23858
|
+
* slots are mapped by ordinal onto writable target slots so different
|
|
23859
|
+
* provider slot ids do not make the copied configuration disappear.
|
|
23860
|
+
*/
|
|
23861
|
+
copyDeviceConfiguration: method(zod.z.object({
|
|
23862
|
+
sourceDeviceId: zod.z.number().int(),
|
|
23863
|
+
targetDeviceId: zod.z.number().int()
|
|
23864
|
+
}), zod.z.object({
|
|
23865
|
+
copied: zod.z.number().int().nonnegative(),
|
|
23866
|
+
skipped: zod.z.number().int().nonnegative()
|
|
23867
|
+
}), {
|
|
23868
|
+
kind: "mutation",
|
|
23869
|
+
auth: "admin"
|
|
23870
|
+
}),
|
|
23871
|
+
/**
|
|
23672
23872
|
* Render without writing. `binding` overrides the stored one so an
|
|
23673
23873
|
* editor can preview an unsaved change. Mutation kind only to carry
|
|
23674
23874
|
* the binding object safely; no side effects.
|
|
@@ -24942,12 +25142,6 @@ var recordingCapability = {
|
|
|
24942
25142
|
auth: "admin"
|
|
24943
25143
|
}),
|
|
24944
25144
|
/**
|
|
24945
|
-
* Move footage (recorded segments) from one recordings location to
|
|
24946
|
-
* another — the drain workflow's mover (entity-routing spec Phase 4).
|
|
24947
|
-
* Throttled copy → size-verify → delete source → index refresh; resumable
|
|
24948
|
-
* by construction (copy-if-absent). Single-flight: one job at a time.
|
|
24949
|
-
*/
|
|
24950
|
-
/**
|
|
24951
25145
|
* Render a short GIF from recorded footage around `aroundMs` (low profile,
|
|
24952
25146
|
* palette-free ffmpeg gif). Synchronous — the window is a few seconds of
|
|
24953
25147
|
* `low`, rendering in ~1-2s. Built for notification attachments: the
|
|
@@ -24999,16 +25193,28 @@ var recordingCapability = {
|
|
|
24999
25193
|
kind: "mutation",
|
|
25000
25194
|
auth: "admin"
|
|
25001
25195
|
}),
|
|
25002
|
-
|
|
25196
|
+
/** Internal migration-participant lease. Blocks new recorder attaches and
|
|
25197
|
+
* waits for writers to exit while their watchers index final segments. */
|
|
25198
|
+
pauseForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ paused: zod.z.literal(true) }), {
|
|
25003
25199
|
kind: "mutation",
|
|
25004
25200
|
auth: "admin"
|
|
25005
25201
|
}),
|
|
25006
|
-
|
|
25007
|
-
|
|
25008
|
-
kind: "query",
|
|
25202
|
+
resumeForStorageMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ resumed: zod.z.literal(true) }), {
|
|
25203
|
+
kind: "mutation",
|
|
25009
25204
|
auth: "admin"
|
|
25010
25205
|
}),
|
|
25011
|
-
|
|
25206
|
+
/** Re-resolve location roots after the coordinator changes defaults. */
|
|
25207
|
+
refreshStorageLocationsForMigration: method(StorageMigrationLeaseInputSchema, zod.z.object({ refreshed: zod.z.literal(true) }), {
|
|
25208
|
+
kind: "mutation",
|
|
25209
|
+
auth: "admin"
|
|
25210
|
+
}),
|
|
25211
|
+
/** Internal mover, callable only by the storage-migration coordinator. */
|
|
25212
|
+
startStorageMigrationMove: method(StorageMigrationFootageMoveInputSchema, zod.z.object({ jobId: zod.z.string() }), {
|
|
25213
|
+
kind: "mutation",
|
|
25214
|
+
auth: "admin"
|
|
25215
|
+
}),
|
|
25216
|
+
getStorageMigrationMoveStatus: method(zod.z.object({ jobId: zod.z.string() }), RelocateJobSchema.nullable(), { auth: "admin" }),
|
|
25217
|
+
cancelStorageMigrationMove: method(zod.z.object({ jobId: zod.z.string() }), zod.z.object({ cancelled: zod.z.boolean() }), {
|
|
25012
25218
|
kind: "mutation",
|
|
25013
25219
|
auth: "admin"
|
|
25014
25220
|
})
|
|
@@ -27560,6 +27766,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
27560
27766
|
ssoBridgeCapability,
|
|
27561
27767
|
storageCapability,
|
|
27562
27768
|
storageEvictableCapability,
|
|
27769
|
+
storageMigrationCapability,
|
|
27563
27770
|
storageProviderCapability,
|
|
27564
27771
|
streamBrokerCapability,
|
|
27565
27772
|
streamCatalogCapability,
|
|
@@ -30486,6 +30693,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30486
30693
|
addonId: null,
|
|
30487
30694
|
access: "delete"
|
|
30488
30695
|
},
|
|
30696
|
+
"osdManager.copyDeviceConfiguration": {
|
|
30697
|
+
capName: "osd-manager",
|
|
30698
|
+
capScope: "system",
|
|
30699
|
+
addonId: null,
|
|
30700
|
+
access: "create"
|
|
30701
|
+
},
|
|
30489
30702
|
"osdManager.getConditionSupport": {
|
|
30490
30703
|
capName: "osd-manager",
|
|
30491
30704
|
capScope: "system",
|
|
@@ -30582,7 +30795,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30582
30795
|
addonId: null,
|
|
30583
30796
|
access: "create"
|
|
30584
30797
|
},
|
|
30585
|
-
"pipelineAnalytics.
|
|
30798
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
30586
30799
|
capName: "pipeline-analytics",
|
|
30587
30800
|
capScope: "device",
|
|
30588
30801
|
addonId: null,
|
|
@@ -30654,12 +30867,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30654
30867
|
addonId: null,
|
|
30655
30868
|
access: "view"
|
|
30656
30869
|
},
|
|
30657
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
30658
|
-
capName: "pipeline-analytics",
|
|
30659
|
-
capScope: "device",
|
|
30660
|
-
addonId: null,
|
|
30661
|
-
access: "view"
|
|
30662
|
-
},
|
|
30663
30870
|
"pipelineAnalytics.getMotionEvents": {
|
|
30664
30871
|
capName: "pipeline-analytics",
|
|
30665
30872
|
capScope: "device",
|
|
@@ -30696,6 +30903,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30696
30903
|
addonId: null,
|
|
30697
30904
|
access: "view"
|
|
30698
30905
|
},
|
|
30906
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
30907
|
+
capName: "pipeline-analytics",
|
|
30908
|
+
capScope: "device",
|
|
30909
|
+
addonId: null,
|
|
30910
|
+
access: "view"
|
|
30911
|
+
},
|
|
30699
30912
|
"pipelineAnalytics.getTrack": {
|
|
30700
30913
|
capName: "pipeline-analytics",
|
|
30701
30914
|
capScope: "device",
|
|
@@ -30774,6 +30987,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30774
30987
|
addonId: null,
|
|
30775
30988
|
access: "view"
|
|
30776
30989
|
},
|
|
30990
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
30991
|
+
capName: "pipeline-analytics",
|
|
30992
|
+
capScope: "device",
|
|
30993
|
+
addonId: null,
|
|
30994
|
+
access: "create"
|
|
30995
|
+
},
|
|
30777
30996
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
30778
30997
|
capName: "pipeline-analytics",
|
|
30779
30998
|
capScope: "device",
|
|
@@ -30804,7 +31023,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30804
31023
|
addonId: null,
|
|
30805
31024
|
access: "create"
|
|
30806
31025
|
},
|
|
30807
|
-
"pipelineAnalytics.
|
|
31026
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
30808
31027
|
capName: "pipeline-analytics",
|
|
30809
31028
|
capScope: "device",
|
|
30810
31029
|
addonId: null,
|
|
@@ -30816,6 +31035,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30816
31035
|
addonId: null,
|
|
30817
31036
|
access: "create"
|
|
30818
31037
|
},
|
|
31038
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
31039
|
+
capName: "pipeline-analytics",
|
|
31040
|
+
capScope: "device",
|
|
31041
|
+
addonId: null,
|
|
31042
|
+
access: "create"
|
|
31043
|
+
},
|
|
30819
31044
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
30820
31045
|
capName: "pipeline-analytics",
|
|
30821
31046
|
capScope: "device",
|
|
@@ -30840,6 +31065,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30840
31065
|
addonId: null,
|
|
30841
31066
|
access: "create"
|
|
30842
31067
|
},
|
|
31068
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
31069
|
+
capName: "pipeline-analytics",
|
|
31070
|
+
capScope: "device",
|
|
31071
|
+
addonId: null,
|
|
31072
|
+
access: "create"
|
|
31073
|
+
},
|
|
30843
31074
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
30844
31075
|
capName: "pipeline-analytics",
|
|
30845
31076
|
capScope: "device",
|
|
@@ -31206,6 +31437,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31206
31437
|
addonId: null,
|
|
31207
31438
|
access: "view"
|
|
31208
31439
|
},
|
|
31440
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
31441
|
+
capName: "pipeline-orchestrator",
|
|
31442
|
+
capScope: "system",
|
|
31443
|
+
addonId: null,
|
|
31444
|
+
access: "create"
|
|
31445
|
+
},
|
|
31209
31446
|
"pipelineOrchestrator.rebalance": {
|
|
31210
31447
|
capName: "pipeline-orchestrator",
|
|
31211
31448
|
capScope: "system",
|
|
@@ -31230,6 +31467,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31230
31467
|
addonId: null,
|
|
31231
31468
|
access: "view"
|
|
31232
31469
|
},
|
|
31470
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
31471
|
+
capName: "pipeline-orchestrator",
|
|
31472
|
+
capScope: "system",
|
|
31473
|
+
addonId: null,
|
|
31474
|
+
access: "create"
|
|
31475
|
+
},
|
|
31233
31476
|
"pipelineOrchestrator.saveTemplate": {
|
|
31234
31477
|
capName: "pipeline-orchestrator",
|
|
31235
31478
|
capScope: "system",
|
|
@@ -31626,7 +31869,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31626
31869
|
addonId: null,
|
|
31627
31870
|
access: "create"
|
|
31628
31871
|
},
|
|
31629
|
-
"recording.
|
|
31872
|
+
"recording.cancelStorageMigrationMove": {
|
|
31630
31873
|
capName: "recording",
|
|
31631
31874
|
capScope: "system",
|
|
31632
31875
|
addonId: null,
|
|
@@ -31662,7 +31905,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31662
31905
|
addonId: null,
|
|
31663
31906
|
access: "view"
|
|
31664
31907
|
},
|
|
31665
|
-
"recording.
|
|
31908
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
31666
31909
|
capName: "recording",
|
|
31667
31910
|
capScope: "system",
|
|
31668
31911
|
addonId: null,
|
|
@@ -31686,6 +31929,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31686
31929
|
addonId: null,
|
|
31687
31930
|
access: "view"
|
|
31688
31931
|
},
|
|
31932
|
+
"recording.pauseForStorageMigration": {
|
|
31933
|
+
capName: "recording",
|
|
31934
|
+
capScope: "system",
|
|
31935
|
+
addonId: null,
|
|
31936
|
+
access: "create"
|
|
31937
|
+
},
|
|
31689
31938
|
"recording.pruneFootage": {
|
|
31690
31939
|
capName: "recording",
|
|
31691
31940
|
capScope: "system",
|
|
@@ -31704,7 +31953,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31704
31953
|
addonId: null,
|
|
31705
31954
|
access: "view"
|
|
31706
31955
|
},
|
|
31707
|
-
"recording.
|
|
31956
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
31708
31957
|
capName: "recording",
|
|
31709
31958
|
capScope: "system",
|
|
31710
31959
|
addonId: null,
|
|
@@ -31728,12 +31977,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31728
31977
|
addonId: null,
|
|
31729
31978
|
access: "create"
|
|
31730
31979
|
},
|
|
31980
|
+
"recording.resumeForStorageMigration": {
|
|
31981
|
+
capName: "recording",
|
|
31982
|
+
capScope: "system",
|
|
31983
|
+
addonId: null,
|
|
31984
|
+
access: "create"
|
|
31985
|
+
},
|
|
31731
31986
|
"recording.setDeviceConfig": {
|
|
31732
31987
|
capName: "recording",
|
|
31733
31988
|
capScope: "system",
|
|
31734
31989
|
addonId: null,
|
|
31735
31990
|
access: "create"
|
|
31736
31991
|
},
|
|
31992
|
+
"recording.startStorageMigrationMove": {
|
|
31993
|
+
capName: "recording",
|
|
31994
|
+
capScope: "system",
|
|
31995
|
+
addonId: null,
|
|
31996
|
+
access: "create"
|
|
31997
|
+
},
|
|
31737
31998
|
"recordingExport.cancelExport": {
|
|
31738
31999
|
capName: "recordingExport",
|
|
31739
32000
|
capScope: "system",
|
|
@@ -32124,6 +32385,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32124
32385
|
addonId: null,
|
|
32125
32386
|
access: "view"
|
|
32126
32387
|
},
|
|
32388
|
+
"storageMigration.cancel": {
|
|
32389
|
+
capName: "storage-migration",
|
|
32390
|
+
capScope: "system",
|
|
32391
|
+
addonId: null,
|
|
32392
|
+
access: "create"
|
|
32393
|
+
},
|
|
32394
|
+
"storageMigration.plan": {
|
|
32395
|
+
capName: "storage-migration",
|
|
32396
|
+
capScope: "system",
|
|
32397
|
+
addonId: null,
|
|
32398
|
+
access: "view"
|
|
32399
|
+
},
|
|
32400
|
+
"storageMigration.start": {
|
|
32401
|
+
capName: "storage-migration",
|
|
32402
|
+
capScope: "system",
|
|
32403
|
+
addonId: null,
|
|
32404
|
+
access: "create"
|
|
32405
|
+
},
|
|
32406
|
+
"storageMigration.status": {
|
|
32407
|
+
capName: "storage-migration",
|
|
32408
|
+
capScope: "system",
|
|
32409
|
+
addonId: null,
|
|
32410
|
+
access: "view"
|
|
32411
|
+
},
|
|
32127
32412
|
"storageProvider.abortUpload": {
|
|
32128
32413
|
capName: "storage-provider",
|
|
32129
32414
|
capScope: "system",
|
|
@@ -32502,12 +32787,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32502
32787
|
addonId: null,
|
|
32503
32788
|
access: "create"
|
|
32504
32789
|
},
|
|
32790
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
32791
|
+
capName: "terminal-session",
|
|
32792
|
+
capScope: "system",
|
|
32793
|
+
addonId: null,
|
|
32794
|
+
access: "create"
|
|
32795
|
+
},
|
|
32505
32796
|
"terminalSession.close": {
|
|
32506
32797
|
capName: "terminal-session",
|
|
32507
32798
|
capScope: "system",
|
|
32508
32799
|
addonId: null,
|
|
32509
32800
|
access: "create"
|
|
32510
32801
|
},
|
|
32802
|
+
"terminalSession.createInstance": {
|
|
32803
|
+
capName: "terminal-session",
|
|
32804
|
+
capScope: "system",
|
|
32805
|
+
addonId: null,
|
|
32806
|
+
access: "create"
|
|
32807
|
+
},
|
|
32808
|
+
"terminalSession.deleteInstance": {
|
|
32809
|
+
capName: "terminal-session",
|
|
32810
|
+
capScope: "system",
|
|
32811
|
+
addonId: null,
|
|
32812
|
+
access: "delete"
|
|
32813
|
+
},
|
|
32814
|
+
"terminalSession.listInstances": {
|
|
32815
|
+
capName: "terminal-session",
|
|
32816
|
+
capScope: "system",
|
|
32817
|
+
addonId: null,
|
|
32818
|
+
access: "view"
|
|
32819
|
+
},
|
|
32820
|
+
"terminalSession.listLegacyCameras": {
|
|
32821
|
+
capName: "terminal-session",
|
|
32822
|
+
capScope: "system",
|
|
32823
|
+
addonId: null,
|
|
32824
|
+
access: "view"
|
|
32825
|
+
},
|
|
32511
32826
|
"terminalSession.listProfiles": {
|
|
32512
32827
|
capName: "terminal-session",
|
|
32513
32828
|
capScope: "system",
|
|
@@ -32538,6 +32853,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32538
32853
|
addonId: null,
|
|
32539
32854
|
access: "create"
|
|
32540
32855
|
},
|
|
32856
|
+
"terminalSession.setInstanceEnabled": {
|
|
32857
|
+
capName: "terminal-session",
|
|
32858
|
+
capScope: "system",
|
|
32859
|
+
addonId: null,
|
|
32860
|
+
access: "create"
|
|
32861
|
+
},
|
|
32541
32862
|
"terminalSession.writeInput": {
|
|
32542
32863
|
capName: "terminal-session",
|
|
32543
32864
|
capScope: "system",
|
|
@@ -33560,6 +33881,12 @@ Object.defineProperty(exports, "StorageLocationTypeSchema", {
|
|
|
33560
33881
|
return StorageLocationTypeSchema;
|
|
33561
33882
|
}
|
|
33562
33883
|
});
|
|
33884
|
+
Object.defineProperty(exports, "StorageMigrationJobSchema", {
|
|
33885
|
+
enumerable: true,
|
|
33886
|
+
get: function() {
|
|
33887
|
+
return StorageMigrationJobSchema;
|
|
33888
|
+
}
|
|
33889
|
+
});
|
|
33563
33890
|
Object.defineProperty(exports, "UserRecordSchema", {
|
|
33564
33891
|
enumerable: true,
|
|
33565
33892
|
get: function() {
|
|
@@ -33944,6 +34271,12 @@ Object.defineProperty(exports, "storageCapability", {
|
|
|
33944
34271
|
return storageCapability;
|
|
33945
34272
|
}
|
|
33946
34273
|
});
|
|
34274
|
+
Object.defineProperty(exports, "storageMigrationCapability", {
|
|
34275
|
+
enumerable: true,
|
|
34276
|
+
get: function() {
|
|
34277
|
+
return storageMigrationCapability;
|
|
34278
|
+
}
|
|
34279
|
+
});
|
|
33947
34280
|
Object.defineProperty(exports, "storageProviderCapability", {
|
|
33948
34281
|
enumerable: true,
|
|
33949
34282
|
get: function() {
|