@camstack/addon-export-hap 1.2.18 → 1.2.20
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/export-hap.addon.js +357 -30
- package/dist/export-hap.addon.mjs +357 -30
- package/package.json +1 -1
package/dist/export-hap.addon.js
CHANGED
|
@@ -8207,12 +8207,11 @@ var RecordingConfigSchema = object({
|
|
|
8207
8207
|
/**
|
|
8208
8208
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
8209
8209
|
*
|
|
8210
|
-
* One shape shared by the recorder
|
|
8211
|
-
*
|
|
8212
|
-
*
|
|
8213
|
-
*
|
|
8214
|
-
*
|
|
8215
|
-
* row on the owning addon's surface.
|
|
8210
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
8211
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
8212
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
8213
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
8214
|
+
* addon surface.
|
|
8216
8215
|
*/
|
|
8217
8216
|
var RelocateJobStateSchema = _enum([
|
|
8218
8217
|
"running",
|
|
@@ -8239,19 +8238,100 @@ var RelocateJobSchema = object({
|
|
|
8239
8238
|
finishedAt: number().nullable(),
|
|
8240
8239
|
error: string().nullable()
|
|
8241
8240
|
});
|
|
8241
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
8242
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
8243
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
8242
8244
|
var RelocateFootageInputSchema = object({
|
|
8243
|
-
deviceId: number().optional(),
|
|
8244
8245
|
fromLocationId: string(),
|
|
8245
8246
|
toLocationId: string(),
|
|
8246
8247
|
entities: array(_enum(["segments"])).optional(),
|
|
8248
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
8249
|
+
* pre-orchestration compatibility path. */
|
|
8250
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
8247
8251
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
8248
8252
|
* never allowed to starve live writers. */
|
|
8249
8253
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8250
8254
|
});
|
|
8251
|
-
|
|
8252
|
-
|
|
8255
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
8256
|
+
* from persistent recording settings: a migration never changes
|
|
8257
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
8258
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
8259
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
8260
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
8253
8261
|
toLocationId: string(),
|
|
8254
8262
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8263
|
+
}).extend({ leaseId: string().min(1) });
|
|
8264
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
8265
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
8266
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
8267
|
+
var StorageMigrationClassSchema = _enum([
|
|
8268
|
+
"recordings",
|
|
8269
|
+
"recordingsLow",
|
|
8270
|
+
"eventMedia"
|
|
8271
|
+
]);
|
|
8272
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
8273
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
8274
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
8275
|
+
var StorageMigrationDestinationsSchema = object({
|
|
8276
|
+
recordings: string().min(1).optional(),
|
|
8277
|
+
recordingsLow: string().min(1).optional(),
|
|
8278
|
+
eventMedia: string().min(1).optional()
|
|
8279
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8280
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8281
|
+
var StorageMigrationInputSchema = object({
|
|
8282
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8283
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
8284
|
+
});
|
|
8285
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
8286
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
8287
|
+
* verified. */
|
|
8288
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
8289
|
+
"planning",
|
|
8290
|
+
"pausing",
|
|
8291
|
+
"moving",
|
|
8292
|
+
"verifying",
|
|
8293
|
+
"repointing",
|
|
8294
|
+
"refreshing",
|
|
8295
|
+
"resuming",
|
|
8296
|
+
"done",
|
|
8297
|
+
"failed",
|
|
8298
|
+
"cancelled"
|
|
8299
|
+
]);
|
|
8300
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
8301
|
+
"pipeline",
|
|
8302
|
+
"recorder",
|
|
8303
|
+
"analytics"
|
|
8304
|
+
]);
|
|
8305
|
+
var StorageMigrationMoveSchema = object({
|
|
8306
|
+
storageClass: StorageMigrationClassSchema,
|
|
8307
|
+
fromLocationId: string(),
|
|
8308
|
+
toLocationId: string(),
|
|
8309
|
+
moverJobId: string().nullable(),
|
|
8310
|
+
state: RelocateJobStateSchema.nullable(),
|
|
8311
|
+
error: string().nullable()
|
|
8312
|
+
});
|
|
8313
|
+
var StorageMigrationJobSchema = object({
|
|
8314
|
+
jobId: string(),
|
|
8315
|
+
phase: StorageMigrationPhaseSchema,
|
|
8316
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8317
|
+
throttleMbps: number(),
|
|
8318
|
+
moves: array(StorageMigrationMoveSchema),
|
|
8319
|
+
pauseLeaseId: string().nullable(),
|
|
8320
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
8321
|
+
repointed: boolean(),
|
|
8322
|
+
cancelRequested: boolean(),
|
|
8323
|
+
startedAt: number(),
|
|
8324
|
+
updatedAt: number(),
|
|
8325
|
+
finishedAt: number().nullable(),
|
|
8326
|
+
error: string().nullable()
|
|
8327
|
+
});
|
|
8328
|
+
var StorageMigrationPlanSchema = object({
|
|
8329
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8330
|
+
moves: array(object({
|
|
8331
|
+
storageClass: StorageMigrationClassSchema,
|
|
8332
|
+
fromLocationId: string(),
|
|
8333
|
+
toLocationId: string()
|
|
8334
|
+
}))
|
|
8255
8335
|
});
|
|
8256
8336
|
/**
|
|
8257
8337
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16762,13 +16842,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16762
16842
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16763
16843
|
kind: "mutation",
|
|
16764
16844
|
auth: "admin"
|
|
16765
|
-
}), method(
|
|
16845
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16766
16846
|
kind: "mutation",
|
|
16767
16847
|
auth: "admin"
|
|
16768
|
-
}), method(object({
|
|
16769
|
-
kind: "
|
|
16848
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16849
|
+
kind: "mutation",
|
|
16770
16850
|
auth: "admin"
|
|
16771
|
-
}), method(
|
|
16851
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16852
|
+
kind: "mutation",
|
|
16853
|
+
auth: "admin"
|
|
16854
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16855
|
+
kind: "mutation",
|
|
16856
|
+
auth: "admin"
|
|
16857
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16772
16858
|
kind: "mutation",
|
|
16773
16859
|
auth: "admin"
|
|
16774
16860
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -18265,7 +18351,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
18265
18351
|
reachable: boolean(),
|
|
18266
18352
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
18267
18353
|
});
|
|
18268
|
-
method(object({
|
|
18354
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
18355
|
+
kind: "mutation",
|
|
18356
|
+
auth: "admin"
|
|
18357
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
18358
|
+
kind: "mutation",
|
|
18359
|
+
auth: "admin"
|
|
18360
|
+
}), method(object({
|
|
18269
18361
|
deviceId: number(),
|
|
18270
18362
|
agentNodeId: string()
|
|
18271
18363
|
}), object({ success: literal(true) }), {
|
|
@@ -18939,6 +19031,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18939
19031
|
locationId: string(),
|
|
18940
19032
|
targetBytes: number().int().positive()
|
|
18941
19033
|
}), EvictResultSchema, { kind: "mutation" });
|
|
19034
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
19035
|
+
kind: "mutation",
|
|
19036
|
+
auth: "admin"
|
|
19037
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
19038
|
+
kind: "mutation",
|
|
19039
|
+
auth: "admin"
|
|
19040
|
+
});
|
|
18942
19041
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18943
19042
|
providerId: string().min(1),
|
|
18944
19043
|
displayName: string().min(1),
|
|
@@ -19042,7 +19141,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
19042
19141
|
label: string(),
|
|
19043
19142
|
description: string().optional()
|
|
19044
19143
|
});
|
|
19045
|
-
|
|
19144
|
+
/**
|
|
19145
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
19146
|
+
* an instance declares a camera.
|
|
19147
|
+
*/
|
|
19148
|
+
var TerminalInstanceInfoSchema = object({
|
|
19149
|
+
instanceId: string(),
|
|
19150
|
+
cameraStableId: string(),
|
|
19151
|
+
nodeId: string(),
|
|
19152
|
+
profileId: string(),
|
|
19153
|
+
profileLabel: string(),
|
|
19154
|
+
name: string(),
|
|
19155
|
+
enabled: boolean()
|
|
19156
|
+
});
|
|
19157
|
+
var TerminalLegacyCameraSchema = object({
|
|
19158
|
+
stableId: string(),
|
|
19159
|
+
nodeId: string(),
|
|
19160
|
+
profileId: string(),
|
|
19161
|
+
profileLabel: string(),
|
|
19162
|
+
name: string(),
|
|
19163
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
19164
|
+
adoptable: boolean()
|
|
19165
|
+
});
|
|
19166
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
19167
|
+
seq: number().int().positive(),
|
|
19168
|
+
kind: literal("data"),
|
|
19169
|
+
data: string()
|
|
19170
|
+
}), object({
|
|
19171
|
+
seq: number().int().positive(),
|
|
19172
|
+
kind: literal("exit"),
|
|
19173
|
+
exitCode: number().int(),
|
|
19174
|
+
signal: number().int().optional()
|
|
19175
|
+
})]);
|
|
19176
|
+
var TerminalOutputBatchSchema = object({
|
|
19177
|
+
cursor: number().int().nonnegative(),
|
|
19178
|
+
reset: boolean(),
|
|
19179
|
+
snapshot: string().optional(),
|
|
19180
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
19181
|
+
});
|
|
19182
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19183
|
+
targetNodeId: string().min(1),
|
|
19184
|
+
profileId: string().min(1),
|
|
19185
|
+
name: string().trim().min(1).max(160).optional()
|
|
19186
|
+
}), TerminalInstanceInfoSchema, {
|
|
19187
|
+
kind: "mutation",
|
|
19188
|
+
auth: "admin"
|
|
19189
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
19190
|
+
kind: "mutation",
|
|
19191
|
+
auth: "admin"
|
|
19192
|
+
}), method(object({
|
|
19193
|
+
instanceId: string().min(1),
|
|
19194
|
+
enabled: boolean()
|
|
19195
|
+
}), TerminalInstanceInfoSchema, {
|
|
19196
|
+
kind: "mutation",
|
|
19197
|
+
auth: "admin"
|
|
19198
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
19199
|
+
stableId: string().min(1),
|
|
19200
|
+
name: string().trim().min(1).max(160).optional()
|
|
19201
|
+
}), TerminalInstanceInfoSchema, {
|
|
19202
|
+
kind: "mutation",
|
|
19203
|
+
auth: "admin"
|
|
19204
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19046
19205
|
profileId: string(),
|
|
19047
19206
|
cols: number().int().positive(),
|
|
19048
19207
|
rows: number().int().positive()
|
|
@@ -19056,6 +19215,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
19056
19215
|
}), _void(), {
|
|
19057
19216
|
kind: "mutation",
|
|
19058
19217
|
auth: "admin"
|
|
19218
|
+
}), method(object({
|
|
19219
|
+
sessionId: string(),
|
|
19220
|
+
afterSeq: number().int().nonnegative(),
|
|
19221
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
19222
|
+
/**
|
|
19223
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
19224
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
19225
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
19226
|
+
*/
|
|
19227
|
+
waitForOutput: boolean().optional()
|
|
19228
|
+
}), TerminalOutputBatchSchema, {
|
|
19229
|
+
kind: "mutation",
|
|
19230
|
+
auth: "admin",
|
|
19231
|
+
timeoutMs: 15e3
|
|
19232
|
+
}), method(object({
|
|
19233
|
+
sessionId: string(),
|
|
19234
|
+
data: string().max(64 * 1024)
|
|
19235
|
+
}), _void(), {
|
|
19236
|
+
kind: "mutation",
|
|
19237
|
+
auth: "admin"
|
|
19059
19238
|
}), method(object({ sessionId: string() }), _void(), {
|
|
19060
19239
|
kind: "mutation",
|
|
19061
19240
|
auth: "admin"
|
|
@@ -20986,6 +21165,7 @@ var FaceInfoSchema = object({
|
|
|
20986
21165
|
var FaceFilterEnum = _enum([
|
|
20987
21166
|
"unassigned",
|
|
20988
21167
|
"recognized",
|
|
21168
|
+
"identified",
|
|
20989
21169
|
"all"
|
|
20990
21170
|
]);
|
|
20991
21171
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -21014,6 +21194,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
21014
21194
|
kind: "mutation",
|
|
21015
21195
|
auth: "admin"
|
|
21016
21196
|
}), method(object({
|
|
21197
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21198
|
+
deviceId: number().int().optional(),
|
|
21017
21199
|
limit: number().int().positive().optional(),
|
|
21018
21200
|
filter: FaceFilterEnum.optional(),
|
|
21019
21201
|
/**
|
|
@@ -22779,6 +22961,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22779
22961
|
capName: string().min(1).max(64),
|
|
22780
22962
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22781
22963
|
valuePath: string().min(1).max(64)
|
|
22964
|
+
}),
|
|
22965
|
+
object({
|
|
22966
|
+
kind: literal("latest-recognition"),
|
|
22967
|
+
recognition: _enum(["person", "plate"])
|
|
22782
22968
|
})
|
|
22783
22969
|
]);
|
|
22784
22970
|
var OsdSlotBindingSchema = object({
|
|
@@ -22884,6 +23070,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22884
23070
|
}), object({ success: literal(true) }), {
|
|
22885
23071
|
kind: "mutation",
|
|
22886
23072
|
auth: "admin"
|
|
23073
|
+
}), method(object({
|
|
23074
|
+
sourceDeviceId: number().int(),
|
|
23075
|
+
targetDeviceId: number().int()
|
|
23076
|
+
}), object({
|
|
23077
|
+
copied: number().int().nonnegative(),
|
|
23078
|
+
skipped: number().int().nonnegative()
|
|
23079
|
+
}), {
|
|
23080
|
+
kind: "mutation",
|
|
23081
|
+
auth: "admin"
|
|
22887
23082
|
}), method(object({
|
|
22888
23083
|
deviceId: number().int(),
|
|
22889
23084
|
slotId: string().min(1),
|
|
@@ -23769,13 +23964,19 @@ method(object({
|
|
|
23769
23964
|
}), {
|
|
23770
23965
|
kind: "mutation",
|
|
23771
23966
|
auth: "admin"
|
|
23772
|
-
}), method(
|
|
23967
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23773
23968
|
kind: "mutation",
|
|
23774
23969
|
auth: "admin"
|
|
23775
|
-
}), method(object({
|
|
23776
|
-
kind: "
|
|
23970
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23971
|
+
kind: "mutation",
|
|
23777
23972
|
auth: "admin"
|
|
23778
|
-
}), method(
|
|
23973
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23974
|
+
kind: "mutation",
|
|
23975
|
+
auth: "admin"
|
|
23976
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23977
|
+
kind: "mutation",
|
|
23978
|
+
auth: "admin"
|
|
23979
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23779
23980
|
kind: "mutation",
|
|
23780
23981
|
auth: "admin"
|
|
23781
23982
|
});
|
|
@@ -27897,6 +28098,12 @@ Object.freeze({
|
|
|
27897
28098
|
addonId: null,
|
|
27898
28099
|
access: "delete"
|
|
27899
28100
|
},
|
|
28101
|
+
"osdManager.copyDeviceConfiguration": {
|
|
28102
|
+
capName: "osd-manager",
|
|
28103
|
+
capScope: "system",
|
|
28104
|
+
addonId: null,
|
|
28105
|
+
access: "create"
|
|
28106
|
+
},
|
|
27900
28107
|
"osdManager.getConditionSupport": {
|
|
27901
28108
|
capName: "osd-manager",
|
|
27902
28109
|
capScope: "system",
|
|
@@ -27993,7 +28200,7 @@ Object.freeze({
|
|
|
27993
28200
|
addonId: null,
|
|
27994
28201
|
access: "create"
|
|
27995
28202
|
},
|
|
27996
|
-
"pipelineAnalytics.
|
|
28203
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27997
28204
|
capName: "pipeline-analytics",
|
|
27998
28205
|
capScope: "device",
|
|
27999
28206
|
addonId: null,
|
|
@@ -28065,12 +28272,6 @@ Object.freeze({
|
|
|
28065
28272
|
addonId: null,
|
|
28066
28273
|
access: "view"
|
|
28067
28274
|
},
|
|
28068
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
28069
|
-
capName: "pipeline-analytics",
|
|
28070
|
-
capScope: "device",
|
|
28071
|
-
addonId: null,
|
|
28072
|
-
access: "view"
|
|
28073
|
-
},
|
|
28074
28275
|
"pipelineAnalytics.getMotionEvents": {
|
|
28075
28276
|
capName: "pipeline-analytics",
|
|
28076
28277
|
capScope: "device",
|
|
@@ -28107,6 +28308,12 @@ Object.freeze({
|
|
|
28107
28308
|
addonId: null,
|
|
28108
28309
|
access: "view"
|
|
28109
28310
|
},
|
|
28311
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
28312
|
+
capName: "pipeline-analytics",
|
|
28313
|
+
capScope: "device",
|
|
28314
|
+
addonId: null,
|
|
28315
|
+
access: "view"
|
|
28316
|
+
},
|
|
28110
28317
|
"pipelineAnalytics.getTrack": {
|
|
28111
28318
|
capName: "pipeline-analytics",
|
|
28112
28319
|
capScope: "device",
|
|
@@ -28185,6 +28392,12 @@ Object.freeze({
|
|
|
28185
28392
|
addonId: null,
|
|
28186
28393
|
access: "view"
|
|
28187
28394
|
},
|
|
28395
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
28396
|
+
capName: "pipeline-analytics",
|
|
28397
|
+
capScope: "device",
|
|
28398
|
+
addonId: null,
|
|
28399
|
+
access: "create"
|
|
28400
|
+
},
|
|
28188
28401
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
28189
28402
|
capName: "pipeline-analytics",
|
|
28190
28403
|
capScope: "device",
|
|
@@ -28215,7 +28428,7 @@ Object.freeze({
|
|
|
28215
28428
|
addonId: null,
|
|
28216
28429
|
access: "create"
|
|
28217
28430
|
},
|
|
28218
|
-
"pipelineAnalytics.
|
|
28431
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
28219
28432
|
capName: "pipeline-analytics",
|
|
28220
28433
|
capScope: "device",
|
|
28221
28434
|
addonId: null,
|
|
@@ -28227,6 +28440,12 @@ Object.freeze({
|
|
|
28227
28440
|
addonId: null,
|
|
28228
28441
|
access: "create"
|
|
28229
28442
|
},
|
|
28443
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
28444
|
+
capName: "pipeline-analytics",
|
|
28445
|
+
capScope: "device",
|
|
28446
|
+
addonId: null,
|
|
28447
|
+
access: "create"
|
|
28448
|
+
},
|
|
28230
28449
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
28231
28450
|
capName: "pipeline-analytics",
|
|
28232
28451
|
capScope: "device",
|
|
@@ -28251,6 +28470,12 @@ Object.freeze({
|
|
|
28251
28470
|
addonId: null,
|
|
28252
28471
|
access: "create"
|
|
28253
28472
|
},
|
|
28473
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
28474
|
+
capName: "pipeline-analytics",
|
|
28475
|
+
capScope: "device",
|
|
28476
|
+
addonId: null,
|
|
28477
|
+
access: "create"
|
|
28478
|
+
},
|
|
28254
28479
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
28255
28480
|
capName: "pipeline-analytics",
|
|
28256
28481
|
capScope: "device",
|
|
@@ -28617,6 +28842,12 @@ Object.freeze({
|
|
|
28617
28842
|
addonId: null,
|
|
28618
28843
|
access: "view"
|
|
28619
28844
|
},
|
|
28845
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28846
|
+
capName: "pipeline-orchestrator",
|
|
28847
|
+
capScope: "system",
|
|
28848
|
+
addonId: null,
|
|
28849
|
+
access: "create"
|
|
28850
|
+
},
|
|
28620
28851
|
"pipelineOrchestrator.rebalance": {
|
|
28621
28852
|
capName: "pipeline-orchestrator",
|
|
28622
28853
|
capScope: "system",
|
|
@@ -28641,6 +28872,12 @@ Object.freeze({
|
|
|
28641
28872
|
addonId: null,
|
|
28642
28873
|
access: "view"
|
|
28643
28874
|
},
|
|
28875
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28876
|
+
capName: "pipeline-orchestrator",
|
|
28877
|
+
capScope: "system",
|
|
28878
|
+
addonId: null,
|
|
28879
|
+
access: "create"
|
|
28880
|
+
},
|
|
28644
28881
|
"pipelineOrchestrator.saveTemplate": {
|
|
28645
28882
|
capName: "pipeline-orchestrator",
|
|
28646
28883
|
capScope: "system",
|
|
@@ -29037,7 +29274,7 @@ Object.freeze({
|
|
|
29037
29274
|
addonId: null,
|
|
29038
29275
|
access: "create"
|
|
29039
29276
|
},
|
|
29040
|
-
"recording.
|
|
29277
|
+
"recording.cancelStorageMigrationMove": {
|
|
29041
29278
|
capName: "recording",
|
|
29042
29279
|
capScope: "system",
|
|
29043
29280
|
addonId: null,
|
|
@@ -29073,7 +29310,7 @@ Object.freeze({
|
|
|
29073
29310
|
addonId: null,
|
|
29074
29311
|
access: "view"
|
|
29075
29312
|
},
|
|
29076
|
-
"recording.
|
|
29313
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
29077
29314
|
capName: "recording",
|
|
29078
29315
|
capScope: "system",
|
|
29079
29316
|
addonId: null,
|
|
@@ -29097,6 +29334,12 @@ Object.freeze({
|
|
|
29097
29334
|
addonId: null,
|
|
29098
29335
|
access: "view"
|
|
29099
29336
|
},
|
|
29337
|
+
"recording.pauseForStorageMigration": {
|
|
29338
|
+
capName: "recording",
|
|
29339
|
+
capScope: "system",
|
|
29340
|
+
addonId: null,
|
|
29341
|
+
access: "create"
|
|
29342
|
+
},
|
|
29100
29343
|
"recording.pruneFootage": {
|
|
29101
29344
|
capName: "recording",
|
|
29102
29345
|
capScope: "system",
|
|
@@ -29115,7 +29358,7 @@ Object.freeze({
|
|
|
29115
29358
|
addonId: null,
|
|
29116
29359
|
access: "view"
|
|
29117
29360
|
},
|
|
29118
|
-
"recording.
|
|
29361
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
29119
29362
|
capName: "recording",
|
|
29120
29363
|
capScope: "system",
|
|
29121
29364
|
addonId: null,
|
|
@@ -29139,12 +29382,24 @@ Object.freeze({
|
|
|
29139
29382
|
addonId: null,
|
|
29140
29383
|
access: "create"
|
|
29141
29384
|
},
|
|
29385
|
+
"recording.resumeForStorageMigration": {
|
|
29386
|
+
capName: "recording",
|
|
29387
|
+
capScope: "system",
|
|
29388
|
+
addonId: null,
|
|
29389
|
+
access: "create"
|
|
29390
|
+
},
|
|
29142
29391
|
"recording.setDeviceConfig": {
|
|
29143
29392
|
capName: "recording",
|
|
29144
29393
|
capScope: "system",
|
|
29145
29394
|
addonId: null,
|
|
29146
29395
|
access: "create"
|
|
29147
29396
|
},
|
|
29397
|
+
"recording.startStorageMigrationMove": {
|
|
29398
|
+
capName: "recording",
|
|
29399
|
+
capScope: "system",
|
|
29400
|
+
addonId: null,
|
|
29401
|
+
access: "create"
|
|
29402
|
+
},
|
|
29148
29403
|
"recordingExport.cancelExport": {
|
|
29149
29404
|
capName: "recordingExport",
|
|
29150
29405
|
capScope: "system",
|
|
@@ -29535,6 +29790,30 @@ Object.freeze({
|
|
|
29535
29790
|
addonId: null,
|
|
29536
29791
|
access: "view"
|
|
29537
29792
|
},
|
|
29793
|
+
"storageMigration.cancel": {
|
|
29794
|
+
capName: "storage-migration",
|
|
29795
|
+
capScope: "system",
|
|
29796
|
+
addonId: null,
|
|
29797
|
+
access: "create"
|
|
29798
|
+
},
|
|
29799
|
+
"storageMigration.plan": {
|
|
29800
|
+
capName: "storage-migration",
|
|
29801
|
+
capScope: "system",
|
|
29802
|
+
addonId: null,
|
|
29803
|
+
access: "view"
|
|
29804
|
+
},
|
|
29805
|
+
"storageMigration.start": {
|
|
29806
|
+
capName: "storage-migration",
|
|
29807
|
+
capScope: "system",
|
|
29808
|
+
addonId: null,
|
|
29809
|
+
access: "create"
|
|
29810
|
+
},
|
|
29811
|
+
"storageMigration.status": {
|
|
29812
|
+
capName: "storage-migration",
|
|
29813
|
+
capScope: "system",
|
|
29814
|
+
addonId: null,
|
|
29815
|
+
access: "view"
|
|
29816
|
+
},
|
|
29538
29817
|
"storageProvider.abortUpload": {
|
|
29539
29818
|
capName: "storage-provider",
|
|
29540
29819
|
capScope: "system",
|
|
@@ -29913,12 +30192,42 @@ Object.freeze({
|
|
|
29913
30192
|
addonId: null,
|
|
29914
30193
|
access: "create"
|
|
29915
30194
|
},
|
|
30195
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
30196
|
+
capName: "terminal-session",
|
|
30197
|
+
capScope: "system",
|
|
30198
|
+
addonId: null,
|
|
30199
|
+
access: "create"
|
|
30200
|
+
},
|
|
29916
30201
|
"terminalSession.close": {
|
|
29917
30202
|
capName: "terminal-session",
|
|
29918
30203
|
capScope: "system",
|
|
29919
30204
|
addonId: null,
|
|
29920
30205
|
access: "create"
|
|
29921
30206
|
},
|
|
30207
|
+
"terminalSession.createInstance": {
|
|
30208
|
+
capName: "terminal-session",
|
|
30209
|
+
capScope: "system",
|
|
30210
|
+
addonId: null,
|
|
30211
|
+
access: "create"
|
|
30212
|
+
},
|
|
30213
|
+
"terminalSession.deleteInstance": {
|
|
30214
|
+
capName: "terminal-session",
|
|
30215
|
+
capScope: "system",
|
|
30216
|
+
addonId: null,
|
|
30217
|
+
access: "delete"
|
|
30218
|
+
},
|
|
30219
|
+
"terminalSession.listInstances": {
|
|
30220
|
+
capName: "terminal-session",
|
|
30221
|
+
capScope: "system",
|
|
30222
|
+
addonId: null,
|
|
30223
|
+
access: "view"
|
|
30224
|
+
},
|
|
30225
|
+
"terminalSession.listLegacyCameras": {
|
|
30226
|
+
capName: "terminal-session",
|
|
30227
|
+
capScope: "system",
|
|
30228
|
+
addonId: null,
|
|
30229
|
+
access: "view"
|
|
30230
|
+
},
|
|
29922
30231
|
"terminalSession.listProfiles": {
|
|
29923
30232
|
capName: "terminal-session",
|
|
29924
30233
|
capScope: "system",
|
|
@@ -29937,12 +30246,30 @@ Object.freeze({
|
|
|
29937
30246
|
addonId: null,
|
|
29938
30247
|
access: "create"
|
|
29939
30248
|
},
|
|
30249
|
+
"terminalSession.pullOutput": {
|
|
30250
|
+
capName: "terminal-session",
|
|
30251
|
+
capScope: "system",
|
|
30252
|
+
addonId: null,
|
|
30253
|
+
access: "create"
|
|
30254
|
+
},
|
|
29940
30255
|
"terminalSession.resize": {
|
|
29941
30256
|
capName: "terminal-session",
|
|
29942
30257
|
capScope: "system",
|
|
29943
30258
|
addonId: null,
|
|
29944
30259
|
access: "create"
|
|
29945
30260
|
},
|
|
30261
|
+
"terminalSession.setInstanceEnabled": {
|
|
30262
|
+
capName: "terminal-session",
|
|
30263
|
+
capScope: "system",
|
|
30264
|
+
addonId: null,
|
|
30265
|
+
access: "create"
|
|
30266
|
+
},
|
|
30267
|
+
"terminalSession.writeInput": {
|
|
30268
|
+
capName: "terminal-session",
|
|
30269
|
+
capScope: "system",
|
|
30270
|
+
addonId: null,
|
|
30271
|
+
access: "create"
|
|
30272
|
+
},
|
|
29946
30273
|
"toast.onToast": {
|
|
29947
30274
|
capName: "toast",
|
|
29948
30275
|
capScope: "system",
|
|
@@ -8181,12 +8181,11 @@ var RecordingConfigSchema = object({
|
|
|
8181
8181
|
/**
|
|
8182
8182
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
8183
8183
|
*
|
|
8184
|
-
* One shape shared by the recorder
|
|
8185
|
-
*
|
|
8186
|
-
*
|
|
8187
|
-
*
|
|
8188
|
-
*
|
|
8189
|
-
* row on the owning addon's surface.
|
|
8184
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
8185
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
8186
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
8187
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
8188
|
+
* addon surface.
|
|
8190
8189
|
*/
|
|
8191
8190
|
var RelocateJobStateSchema = _enum([
|
|
8192
8191
|
"running",
|
|
@@ -8213,19 +8212,100 @@ var RelocateJobSchema = object({
|
|
|
8213
8212
|
finishedAt: number().nullable(),
|
|
8214
8213
|
error: string().nullable()
|
|
8215
8214
|
});
|
|
8215
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
8216
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
8217
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
8216
8218
|
var RelocateFootageInputSchema = object({
|
|
8217
|
-
deviceId: number().optional(),
|
|
8218
8219
|
fromLocationId: string(),
|
|
8219
8220
|
toLocationId: string(),
|
|
8220
8221
|
entities: array(_enum(["segments"])).optional(),
|
|
8222
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
8223
|
+
* pre-orchestration compatibility path. */
|
|
8224
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
8221
8225
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
8222
8226
|
* never allowed to starve live writers. */
|
|
8223
8227
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8224
8228
|
});
|
|
8225
|
-
|
|
8226
|
-
|
|
8229
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
8230
|
+
* from persistent recording settings: a migration never changes
|
|
8231
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
8232
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
8233
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
8234
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
8227
8235
|
toLocationId: string(),
|
|
8228
8236
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8237
|
+
}).extend({ leaseId: string().min(1) });
|
|
8238
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
8239
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
8240
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
8241
|
+
var StorageMigrationClassSchema = _enum([
|
|
8242
|
+
"recordings",
|
|
8243
|
+
"recordingsLow",
|
|
8244
|
+
"eventMedia"
|
|
8245
|
+
]);
|
|
8246
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
8247
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
8248
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
8249
|
+
var StorageMigrationDestinationsSchema = object({
|
|
8250
|
+
recordings: string().min(1).optional(),
|
|
8251
|
+
recordingsLow: string().min(1).optional(),
|
|
8252
|
+
eventMedia: string().min(1).optional()
|
|
8253
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8254
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8255
|
+
var StorageMigrationInputSchema = object({
|
|
8256
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8257
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
8258
|
+
});
|
|
8259
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
8260
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
8261
|
+
* verified. */
|
|
8262
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
8263
|
+
"planning",
|
|
8264
|
+
"pausing",
|
|
8265
|
+
"moving",
|
|
8266
|
+
"verifying",
|
|
8267
|
+
"repointing",
|
|
8268
|
+
"refreshing",
|
|
8269
|
+
"resuming",
|
|
8270
|
+
"done",
|
|
8271
|
+
"failed",
|
|
8272
|
+
"cancelled"
|
|
8273
|
+
]);
|
|
8274
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
8275
|
+
"pipeline",
|
|
8276
|
+
"recorder",
|
|
8277
|
+
"analytics"
|
|
8278
|
+
]);
|
|
8279
|
+
var StorageMigrationMoveSchema = object({
|
|
8280
|
+
storageClass: StorageMigrationClassSchema,
|
|
8281
|
+
fromLocationId: string(),
|
|
8282
|
+
toLocationId: string(),
|
|
8283
|
+
moverJobId: string().nullable(),
|
|
8284
|
+
state: RelocateJobStateSchema.nullable(),
|
|
8285
|
+
error: string().nullable()
|
|
8286
|
+
});
|
|
8287
|
+
var StorageMigrationJobSchema = object({
|
|
8288
|
+
jobId: string(),
|
|
8289
|
+
phase: StorageMigrationPhaseSchema,
|
|
8290
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8291
|
+
throttleMbps: number(),
|
|
8292
|
+
moves: array(StorageMigrationMoveSchema),
|
|
8293
|
+
pauseLeaseId: string().nullable(),
|
|
8294
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
8295
|
+
repointed: boolean(),
|
|
8296
|
+
cancelRequested: boolean(),
|
|
8297
|
+
startedAt: number(),
|
|
8298
|
+
updatedAt: number(),
|
|
8299
|
+
finishedAt: number().nullable(),
|
|
8300
|
+
error: string().nullable()
|
|
8301
|
+
});
|
|
8302
|
+
var StorageMigrationPlanSchema = object({
|
|
8303
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
8304
|
+
moves: array(object({
|
|
8305
|
+
storageClass: StorageMigrationClassSchema,
|
|
8306
|
+
fromLocationId: string(),
|
|
8307
|
+
toLocationId: string()
|
|
8308
|
+
}))
|
|
8229
8309
|
});
|
|
8230
8310
|
/**
|
|
8231
8311
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -16736,13 +16816,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16736
16816
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16737
16817
|
kind: "mutation",
|
|
16738
16818
|
auth: "admin"
|
|
16739
|
-
}), method(
|
|
16819
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
16740
16820
|
kind: "mutation",
|
|
16741
16821
|
auth: "admin"
|
|
16742
|
-
}), method(object({
|
|
16743
|
-
kind: "
|
|
16822
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16823
|
+
kind: "mutation",
|
|
16744
16824
|
auth: "admin"
|
|
16745
|
-
}), method(
|
|
16825
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16826
|
+
kind: "mutation",
|
|
16827
|
+
auth: "admin"
|
|
16828
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16829
|
+
kind: "mutation",
|
|
16830
|
+
auth: "admin"
|
|
16831
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16746
16832
|
kind: "mutation",
|
|
16747
16833
|
auth: "admin"
|
|
16748
16834
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -18239,7 +18325,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
18239
18325
|
reachable: boolean(),
|
|
18240
18326
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
18241
18327
|
});
|
|
18242
|
-
method(object({
|
|
18328
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
18329
|
+
kind: "mutation",
|
|
18330
|
+
auth: "admin"
|
|
18331
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
18332
|
+
kind: "mutation",
|
|
18333
|
+
auth: "admin"
|
|
18334
|
+
}), method(object({
|
|
18243
18335
|
deviceId: number(),
|
|
18244
18336
|
agentNodeId: string()
|
|
18245
18337
|
}), object({ success: literal(true) }), {
|
|
@@ -18913,6 +19005,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18913
19005
|
locationId: string(),
|
|
18914
19006
|
targetBytes: number().int().positive()
|
|
18915
19007
|
}), EvictResultSchema, { kind: "mutation" });
|
|
19008
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
19009
|
+
kind: "mutation",
|
|
19010
|
+
auth: "admin"
|
|
19011
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
19012
|
+
kind: "mutation",
|
|
19013
|
+
auth: "admin"
|
|
19014
|
+
});
|
|
18916
19015
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18917
19016
|
providerId: string().min(1),
|
|
18918
19017
|
displayName: string().min(1),
|
|
@@ -19016,7 +19115,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
19016
19115
|
label: string(),
|
|
19017
19116
|
description: string().optional()
|
|
19018
19117
|
});
|
|
19019
|
-
|
|
19118
|
+
/**
|
|
19119
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
19120
|
+
* an instance declares a camera.
|
|
19121
|
+
*/
|
|
19122
|
+
var TerminalInstanceInfoSchema = object({
|
|
19123
|
+
instanceId: string(),
|
|
19124
|
+
cameraStableId: string(),
|
|
19125
|
+
nodeId: string(),
|
|
19126
|
+
profileId: string(),
|
|
19127
|
+
profileLabel: string(),
|
|
19128
|
+
name: string(),
|
|
19129
|
+
enabled: boolean()
|
|
19130
|
+
});
|
|
19131
|
+
var TerminalLegacyCameraSchema = object({
|
|
19132
|
+
stableId: string(),
|
|
19133
|
+
nodeId: string(),
|
|
19134
|
+
profileId: string(),
|
|
19135
|
+
profileLabel: string(),
|
|
19136
|
+
name: string(),
|
|
19137
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
19138
|
+
adoptable: boolean()
|
|
19139
|
+
});
|
|
19140
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
19141
|
+
seq: number().int().positive(),
|
|
19142
|
+
kind: literal("data"),
|
|
19143
|
+
data: string()
|
|
19144
|
+
}), object({
|
|
19145
|
+
seq: number().int().positive(),
|
|
19146
|
+
kind: literal("exit"),
|
|
19147
|
+
exitCode: number().int(),
|
|
19148
|
+
signal: number().int().optional()
|
|
19149
|
+
})]);
|
|
19150
|
+
var TerminalOutputBatchSchema = object({
|
|
19151
|
+
cursor: number().int().nonnegative(),
|
|
19152
|
+
reset: boolean(),
|
|
19153
|
+
snapshot: string().optional(),
|
|
19154
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
19155
|
+
});
|
|
19156
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19157
|
+
targetNodeId: string().min(1),
|
|
19158
|
+
profileId: string().min(1),
|
|
19159
|
+
name: string().trim().min(1).max(160).optional()
|
|
19160
|
+
}), TerminalInstanceInfoSchema, {
|
|
19161
|
+
kind: "mutation",
|
|
19162
|
+
auth: "admin"
|
|
19163
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
19164
|
+
kind: "mutation",
|
|
19165
|
+
auth: "admin"
|
|
19166
|
+
}), method(object({
|
|
19167
|
+
instanceId: string().min(1),
|
|
19168
|
+
enabled: boolean()
|
|
19169
|
+
}), TerminalInstanceInfoSchema, {
|
|
19170
|
+
kind: "mutation",
|
|
19171
|
+
auth: "admin"
|
|
19172
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
19173
|
+
stableId: string().min(1),
|
|
19174
|
+
name: string().trim().min(1).max(160).optional()
|
|
19175
|
+
}), TerminalInstanceInfoSchema, {
|
|
19176
|
+
kind: "mutation",
|
|
19177
|
+
auth: "admin"
|
|
19178
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19020
19179
|
profileId: string(),
|
|
19021
19180
|
cols: number().int().positive(),
|
|
19022
19181
|
rows: number().int().positive()
|
|
@@ -19030,6 +19189,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
19030
19189
|
}), _void(), {
|
|
19031
19190
|
kind: "mutation",
|
|
19032
19191
|
auth: "admin"
|
|
19192
|
+
}), method(object({
|
|
19193
|
+
sessionId: string(),
|
|
19194
|
+
afterSeq: number().int().nonnegative(),
|
|
19195
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
19196
|
+
/**
|
|
19197
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
19198
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
19199
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
19200
|
+
*/
|
|
19201
|
+
waitForOutput: boolean().optional()
|
|
19202
|
+
}), TerminalOutputBatchSchema, {
|
|
19203
|
+
kind: "mutation",
|
|
19204
|
+
auth: "admin",
|
|
19205
|
+
timeoutMs: 15e3
|
|
19206
|
+
}), method(object({
|
|
19207
|
+
sessionId: string(),
|
|
19208
|
+
data: string().max(64 * 1024)
|
|
19209
|
+
}), _void(), {
|
|
19210
|
+
kind: "mutation",
|
|
19211
|
+
auth: "admin"
|
|
19033
19212
|
}), method(object({ sessionId: string() }), _void(), {
|
|
19034
19213
|
kind: "mutation",
|
|
19035
19214
|
auth: "admin"
|
|
@@ -20960,6 +21139,7 @@ var FaceInfoSchema = object({
|
|
|
20960
21139
|
var FaceFilterEnum = _enum([
|
|
20961
21140
|
"unassigned",
|
|
20962
21141
|
"recognized",
|
|
21142
|
+
"identified",
|
|
20963
21143
|
"all"
|
|
20964
21144
|
]);
|
|
20965
21145
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20988,6 +21168,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20988
21168
|
kind: "mutation",
|
|
20989
21169
|
auth: "admin"
|
|
20990
21170
|
}), method(object({
|
|
21171
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
21172
|
+
deviceId: number().int().optional(),
|
|
20991
21173
|
limit: number().int().positive().optional(),
|
|
20992
21174
|
filter: FaceFilterEnum.optional(),
|
|
20993
21175
|
/**
|
|
@@ -22753,6 +22935,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22753
22935
|
capName: string().min(1).max(64),
|
|
22754
22936
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22755
22937
|
valuePath: string().min(1).max(64)
|
|
22938
|
+
}),
|
|
22939
|
+
object({
|
|
22940
|
+
kind: literal("latest-recognition"),
|
|
22941
|
+
recognition: _enum(["person", "plate"])
|
|
22756
22942
|
})
|
|
22757
22943
|
]);
|
|
22758
22944
|
var OsdSlotBindingSchema = object({
|
|
@@ -22858,6 +23044,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22858
23044
|
}), object({ success: literal(true) }), {
|
|
22859
23045
|
kind: "mutation",
|
|
22860
23046
|
auth: "admin"
|
|
23047
|
+
}), method(object({
|
|
23048
|
+
sourceDeviceId: number().int(),
|
|
23049
|
+
targetDeviceId: number().int()
|
|
23050
|
+
}), object({
|
|
23051
|
+
copied: number().int().nonnegative(),
|
|
23052
|
+
skipped: number().int().nonnegative()
|
|
23053
|
+
}), {
|
|
23054
|
+
kind: "mutation",
|
|
23055
|
+
auth: "admin"
|
|
22861
23056
|
}), method(object({
|
|
22862
23057
|
deviceId: number().int(),
|
|
22863
23058
|
slotId: string().min(1),
|
|
@@ -23743,13 +23938,19 @@ method(object({
|
|
|
23743
23938
|
}), {
|
|
23744
23939
|
kind: "mutation",
|
|
23745
23940
|
auth: "admin"
|
|
23746
|
-
}), method(
|
|
23941
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23747
23942
|
kind: "mutation",
|
|
23748
23943
|
auth: "admin"
|
|
23749
|
-
}), method(object({
|
|
23750
|
-
kind: "
|
|
23944
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23945
|
+
kind: "mutation",
|
|
23751
23946
|
auth: "admin"
|
|
23752
|
-
}), method(
|
|
23947
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23948
|
+
kind: "mutation",
|
|
23949
|
+
auth: "admin"
|
|
23950
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23951
|
+
kind: "mutation",
|
|
23952
|
+
auth: "admin"
|
|
23953
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23753
23954
|
kind: "mutation",
|
|
23754
23955
|
auth: "admin"
|
|
23755
23956
|
});
|
|
@@ -27871,6 +28072,12 @@ Object.freeze({
|
|
|
27871
28072
|
addonId: null,
|
|
27872
28073
|
access: "delete"
|
|
27873
28074
|
},
|
|
28075
|
+
"osdManager.copyDeviceConfiguration": {
|
|
28076
|
+
capName: "osd-manager",
|
|
28077
|
+
capScope: "system",
|
|
28078
|
+
addonId: null,
|
|
28079
|
+
access: "create"
|
|
28080
|
+
},
|
|
27874
28081
|
"osdManager.getConditionSupport": {
|
|
27875
28082
|
capName: "osd-manager",
|
|
27876
28083
|
capScope: "system",
|
|
@@ -27967,7 +28174,7 @@ Object.freeze({
|
|
|
27967
28174
|
addonId: null,
|
|
27968
28175
|
access: "create"
|
|
27969
28176
|
},
|
|
27970
|
-
"pipelineAnalytics.
|
|
28177
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27971
28178
|
capName: "pipeline-analytics",
|
|
27972
28179
|
capScope: "device",
|
|
27973
28180
|
addonId: null,
|
|
@@ -28039,12 +28246,6 @@ Object.freeze({
|
|
|
28039
28246
|
addonId: null,
|
|
28040
28247
|
access: "view"
|
|
28041
28248
|
},
|
|
28042
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
28043
|
-
capName: "pipeline-analytics",
|
|
28044
|
-
capScope: "device",
|
|
28045
|
-
addonId: null,
|
|
28046
|
-
access: "view"
|
|
28047
|
-
},
|
|
28048
28249
|
"pipelineAnalytics.getMotionEvents": {
|
|
28049
28250
|
capName: "pipeline-analytics",
|
|
28050
28251
|
capScope: "device",
|
|
@@ -28081,6 +28282,12 @@ Object.freeze({
|
|
|
28081
28282
|
addonId: null,
|
|
28082
28283
|
access: "view"
|
|
28083
28284
|
},
|
|
28285
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
28286
|
+
capName: "pipeline-analytics",
|
|
28287
|
+
capScope: "device",
|
|
28288
|
+
addonId: null,
|
|
28289
|
+
access: "view"
|
|
28290
|
+
},
|
|
28084
28291
|
"pipelineAnalytics.getTrack": {
|
|
28085
28292
|
capName: "pipeline-analytics",
|
|
28086
28293
|
capScope: "device",
|
|
@@ -28159,6 +28366,12 @@ Object.freeze({
|
|
|
28159
28366
|
addonId: null,
|
|
28160
28367
|
access: "view"
|
|
28161
28368
|
},
|
|
28369
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
28370
|
+
capName: "pipeline-analytics",
|
|
28371
|
+
capScope: "device",
|
|
28372
|
+
addonId: null,
|
|
28373
|
+
access: "create"
|
|
28374
|
+
},
|
|
28162
28375
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
28163
28376
|
capName: "pipeline-analytics",
|
|
28164
28377
|
capScope: "device",
|
|
@@ -28189,7 +28402,7 @@ Object.freeze({
|
|
|
28189
28402
|
addonId: null,
|
|
28190
28403
|
access: "create"
|
|
28191
28404
|
},
|
|
28192
|
-
"pipelineAnalytics.
|
|
28405
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
28193
28406
|
capName: "pipeline-analytics",
|
|
28194
28407
|
capScope: "device",
|
|
28195
28408
|
addonId: null,
|
|
@@ -28201,6 +28414,12 @@ Object.freeze({
|
|
|
28201
28414
|
addonId: null,
|
|
28202
28415
|
access: "create"
|
|
28203
28416
|
},
|
|
28417
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
28418
|
+
capName: "pipeline-analytics",
|
|
28419
|
+
capScope: "device",
|
|
28420
|
+
addonId: null,
|
|
28421
|
+
access: "create"
|
|
28422
|
+
},
|
|
28204
28423
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
28205
28424
|
capName: "pipeline-analytics",
|
|
28206
28425
|
capScope: "device",
|
|
@@ -28225,6 +28444,12 @@ Object.freeze({
|
|
|
28225
28444
|
addonId: null,
|
|
28226
28445
|
access: "create"
|
|
28227
28446
|
},
|
|
28447
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
28448
|
+
capName: "pipeline-analytics",
|
|
28449
|
+
capScope: "device",
|
|
28450
|
+
addonId: null,
|
|
28451
|
+
access: "create"
|
|
28452
|
+
},
|
|
28228
28453
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
28229
28454
|
capName: "pipeline-analytics",
|
|
28230
28455
|
capScope: "device",
|
|
@@ -28591,6 +28816,12 @@ Object.freeze({
|
|
|
28591
28816
|
addonId: null,
|
|
28592
28817
|
access: "view"
|
|
28593
28818
|
},
|
|
28819
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28820
|
+
capName: "pipeline-orchestrator",
|
|
28821
|
+
capScope: "system",
|
|
28822
|
+
addonId: null,
|
|
28823
|
+
access: "create"
|
|
28824
|
+
},
|
|
28594
28825
|
"pipelineOrchestrator.rebalance": {
|
|
28595
28826
|
capName: "pipeline-orchestrator",
|
|
28596
28827
|
capScope: "system",
|
|
@@ -28615,6 +28846,12 @@ Object.freeze({
|
|
|
28615
28846
|
addonId: null,
|
|
28616
28847
|
access: "view"
|
|
28617
28848
|
},
|
|
28849
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28850
|
+
capName: "pipeline-orchestrator",
|
|
28851
|
+
capScope: "system",
|
|
28852
|
+
addonId: null,
|
|
28853
|
+
access: "create"
|
|
28854
|
+
},
|
|
28618
28855
|
"pipelineOrchestrator.saveTemplate": {
|
|
28619
28856
|
capName: "pipeline-orchestrator",
|
|
28620
28857
|
capScope: "system",
|
|
@@ -29011,7 +29248,7 @@ Object.freeze({
|
|
|
29011
29248
|
addonId: null,
|
|
29012
29249
|
access: "create"
|
|
29013
29250
|
},
|
|
29014
|
-
"recording.
|
|
29251
|
+
"recording.cancelStorageMigrationMove": {
|
|
29015
29252
|
capName: "recording",
|
|
29016
29253
|
capScope: "system",
|
|
29017
29254
|
addonId: null,
|
|
@@ -29047,7 +29284,7 @@ Object.freeze({
|
|
|
29047
29284
|
addonId: null,
|
|
29048
29285
|
access: "view"
|
|
29049
29286
|
},
|
|
29050
|
-
"recording.
|
|
29287
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
29051
29288
|
capName: "recording",
|
|
29052
29289
|
capScope: "system",
|
|
29053
29290
|
addonId: null,
|
|
@@ -29071,6 +29308,12 @@ Object.freeze({
|
|
|
29071
29308
|
addonId: null,
|
|
29072
29309
|
access: "view"
|
|
29073
29310
|
},
|
|
29311
|
+
"recording.pauseForStorageMigration": {
|
|
29312
|
+
capName: "recording",
|
|
29313
|
+
capScope: "system",
|
|
29314
|
+
addonId: null,
|
|
29315
|
+
access: "create"
|
|
29316
|
+
},
|
|
29074
29317
|
"recording.pruneFootage": {
|
|
29075
29318
|
capName: "recording",
|
|
29076
29319
|
capScope: "system",
|
|
@@ -29089,7 +29332,7 @@ Object.freeze({
|
|
|
29089
29332
|
addonId: null,
|
|
29090
29333
|
access: "view"
|
|
29091
29334
|
},
|
|
29092
|
-
"recording.
|
|
29335
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
29093
29336
|
capName: "recording",
|
|
29094
29337
|
capScope: "system",
|
|
29095
29338
|
addonId: null,
|
|
@@ -29113,12 +29356,24 @@ Object.freeze({
|
|
|
29113
29356
|
addonId: null,
|
|
29114
29357
|
access: "create"
|
|
29115
29358
|
},
|
|
29359
|
+
"recording.resumeForStorageMigration": {
|
|
29360
|
+
capName: "recording",
|
|
29361
|
+
capScope: "system",
|
|
29362
|
+
addonId: null,
|
|
29363
|
+
access: "create"
|
|
29364
|
+
},
|
|
29116
29365
|
"recording.setDeviceConfig": {
|
|
29117
29366
|
capName: "recording",
|
|
29118
29367
|
capScope: "system",
|
|
29119
29368
|
addonId: null,
|
|
29120
29369
|
access: "create"
|
|
29121
29370
|
},
|
|
29371
|
+
"recording.startStorageMigrationMove": {
|
|
29372
|
+
capName: "recording",
|
|
29373
|
+
capScope: "system",
|
|
29374
|
+
addonId: null,
|
|
29375
|
+
access: "create"
|
|
29376
|
+
},
|
|
29122
29377
|
"recordingExport.cancelExport": {
|
|
29123
29378
|
capName: "recordingExport",
|
|
29124
29379
|
capScope: "system",
|
|
@@ -29509,6 +29764,30 @@ Object.freeze({
|
|
|
29509
29764
|
addonId: null,
|
|
29510
29765
|
access: "view"
|
|
29511
29766
|
},
|
|
29767
|
+
"storageMigration.cancel": {
|
|
29768
|
+
capName: "storage-migration",
|
|
29769
|
+
capScope: "system",
|
|
29770
|
+
addonId: null,
|
|
29771
|
+
access: "create"
|
|
29772
|
+
},
|
|
29773
|
+
"storageMigration.plan": {
|
|
29774
|
+
capName: "storage-migration",
|
|
29775
|
+
capScope: "system",
|
|
29776
|
+
addonId: null,
|
|
29777
|
+
access: "view"
|
|
29778
|
+
},
|
|
29779
|
+
"storageMigration.start": {
|
|
29780
|
+
capName: "storage-migration",
|
|
29781
|
+
capScope: "system",
|
|
29782
|
+
addonId: null,
|
|
29783
|
+
access: "create"
|
|
29784
|
+
},
|
|
29785
|
+
"storageMigration.status": {
|
|
29786
|
+
capName: "storage-migration",
|
|
29787
|
+
capScope: "system",
|
|
29788
|
+
addonId: null,
|
|
29789
|
+
access: "view"
|
|
29790
|
+
},
|
|
29512
29791
|
"storageProvider.abortUpload": {
|
|
29513
29792
|
capName: "storage-provider",
|
|
29514
29793
|
capScope: "system",
|
|
@@ -29887,12 +30166,42 @@ Object.freeze({
|
|
|
29887
30166
|
addonId: null,
|
|
29888
30167
|
access: "create"
|
|
29889
30168
|
},
|
|
30169
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
30170
|
+
capName: "terminal-session",
|
|
30171
|
+
capScope: "system",
|
|
30172
|
+
addonId: null,
|
|
30173
|
+
access: "create"
|
|
30174
|
+
},
|
|
29890
30175
|
"terminalSession.close": {
|
|
29891
30176
|
capName: "terminal-session",
|
|
29892
30177
|
capScope: "system",
|
|
29893
30178
|
addonId: null,
|
|
29894
30179
|
access: "create"
|
|
29895
30180
|
},
|
|
30181
|
+
"terminalSession.createInstance": {
|
|
30182
|
+
capName: "terminal-session",
|
|
30183
|
+
capScope: "system",
|
|
30184
|
+
addonId: null,
|
|
30185
|
+
access: "create"
|
|
30186
|
+
},
|
|
30187
|
+
"terminalSession.deleteInstance": {
|
|
30188
|
+
capName: "terminal-session",
|
|
30189
|
+
capScope: "system",
|
|
30190
|
+
addonId: null,
|
|
30191
|
+
access: "delete"
|
|
30192
|
+
},
|
|
30193
|
+
"terminalSession.listInstances": {
|
|
30194
|
+
capName: "terminal-session",
|
|
30195
|
+
capScope: "system",
|
|
30196
|
+
addonId: null,
|
|
30197
|
+
access: "view"
|
|
30198
|
+
},
|
|
30199
|
+
"terminalSession.listLegacyCameras": {
|
|
30200
|
+
capName: "terminal-session",
|
|
30201
|
+
capScope: "system",
|
|
30202
|
+
addonId: null,
|
|
30203
|
+
access: "view"
|
|
30204
|
+
},
|
|
29896
30205
|
"terminalSession.listProfiles": {
|
|
29897
30206
|
capName: "terminal-session",
|
|
29898
30207
|
capScope: "system",
|
|
@@ -29911,12 +30220,30 @@ Object.freeze({
|
|
|
29911
30220
|
addonId: null,
|
|
29912
30221
|
access: "create"
|
|
29913
30222
|
},
|
|
30223
|
+
"terminalSession.pullOutput": {
|
|
30224
|
+
capName: "terminal-session",
|
|
30225
|
+
capScope: "system",
|
|
30226
|
+
addonId: null,
|
|
30227
|
+
access: "create"
|
|
30228
|
+
},
|
|
29914
30229
|
"terminalSession.resize": {
|
|
29915
30230
|
capName: "terminal-session",
|
|
29916
30231
|
capScope: "system",
|
|
29917
30232
|
addonId: null,
|
|
29918
30233
|
access: "create"
|
|
29919
30234
|
},
|
|
30235
|
+
"terminalSession.setInstanceEnabled": {
|
|
30236
|
+
capName: "terminal-session",
|
|
30237
|
+
capScope: "system",
|
|
30238
|
+
addonId: null,
|
|
30239
|
+
access: "create"
|
|
30240
|
+
},
|
|
30241
|
+
"terminalSession.writeInput": {
|
|
30242
|
+
capName: "terminal-session",
|
|
30243
|
+
capScope: "system",
|
|
30244
|
+
addonId: null,
|
|
30245
|
+
access: "create"
|
|
30246
|
+
},
|
|
29920
30247
|
"toast.onToast": {
|
|
29921
30248
|
capName: "toast",
|
|
29922
30249
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-export-hap",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.20",
|
|
4
4
|
"description": "HomeKit (HAP) bridge exporter for CamStack devices. Publishes a bridged accessory per exposed device — MotionSensor in this MVP; Camera/Doorbell/Switch/Light follow.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|