@camstack/addon-post-analysis 1.2.108 → 1.2.110
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/{dist-DFNQ5VB_.mjs → dist-BtpxOtGv.mjs} +248 -16
- package/dist/{dist-BV5xFo8f.js → dist-RzJseCJP.js} +248 -16
- package/dist/embedding-encoder/index.js +51 -15
- package/dist/embedding-encoder/index.mjs +51 -15
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-v1VQLSa-.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DbTCGBNZ.mjs} +3 -3
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-bze3q2fV.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-m0Jqwk3C.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-CnJC02T3.mjs → hostInit-BUnWOUjb.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +25 -6
- package/dist/pipeline-analytics/index.mjs +25 -6
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -8260,6 +8260,15 @@ var LabelDefinitionSchema = object({
|
|
|
8260
8260
|
description: string().optional(),
|
|
8261
8261
|
icon: string().optional()
|
|
8262
8262
|
});
|
|
8263
|
+
var ClassMapDefinitionSchema = object({
|
|
8264
|
+
mapping: record(string(), _enum([
|
|
8265
|
+
"person",
|
|
8266
|
+
"vehicle",
|
|
8267
|
+
"animal",
|
|
8268
|
+
"package"
|
|
8269
|
+
])),
|
|
8270
|
+
preserveOriginal: boolean()
|
|
8271
|
+
});
|
|
8263
8272
|
var MODEL_FORMATS = [
|
|
8264
8273
|
"onnx",
|
|
8265
8274
|
"coreml",
|
|
@@ -8438,7 +8447,13 @@ var ModelCatalogEntrySchema = object({
|
|
|
8438
8447
|
* `id` stays the source of truth for resolution/download/persistence; grouping
|
|
8439
8448
|
* is a presentation overlay resolved back to an `id`.
|
|
8440
8449
|
*/
|
|
8441
|
-
group: ModelVariantGroupSchema.optional()
|
|
8450
|
+
group: ModelVariantGroupSchema.optional(),
|
|
8451
|
+
/**
|
|
8452
|
+
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
8453
|
+
* applies (Frigate / COCO public catalog). Set on a custom model whose raw
|
|
8454
|
+
* labels already ARE the CamStack macros (Scrypted identity map).
|
|
8455
|
+
*/
|
|
8456
|
+
classMap: ClassMapDefinitionSchema.optional()
|
|
8442
8457
|
});
|
|
8443
8458
|
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
8444
8459
|
format: literal("openvino"),
|
|
@@ -8467,7 +8482,8 @@ var ModelConvertMetadataSchema = object({
|
|
|
8467
8482
|
"ocr",
|
|
8468
8483
|
"segmentation"
|
|
8469
8484
|
]),
|
|
8470
|
-
faceAlignment: boolean().optional()
|
|
8485
|
+
faceAlignment: boolean().optional(),
|
|
8486
|
+
classMap: ClassMapDefinitionSchema.optional()
|
|
8471
8487
|
});
|
|
8472
8488
|
var ConvertResultSchema = object({
|
|
8473
8489
|
entry: ModelCatalogEntrySchema,
|
|
@@ -18762,6 +18778,33 @@ var NativeCropRefSchema = object({
|
|
|
18762
18778
|
h: number()
|
|
18763
18779
|
})
|
|
18764
18780
|
});
|
|
18781
|
+
object({
|
|
18782
|
+
crop: object({
|
|
18783
|
+
left: number(),
|
|
18784
|
+
top: number(),
|
|
18785
|
+
width: number().positive(),
|
|
18786
|
+
height: number().positive()
|
|
18787
|
+
}).optional(),
|
|
18788
|
+
content: object({
|
|
18789
|
+
width: number().int().positive(),
|
|
18790
|
+
height: number().int().positive()
|
|
18791
|
+
}),
|
|
18792
|
+
fit: _enum(["stretch", "contain"]),
|
|
18793
|
+
format: _enum([
|
|
18794
|
+
"rgb",
|
|
18795
|
+
"gray",
|
|
18796
|
+
"jpeg"
|
|
18797
|
+
])
|
|
18798
|
+
});
|
|
18799
|
+
var FrameRefSchema = object({
|
|
18800
|
+
registryId: string().min(1),
|
|
18801
|
+
id: string().min(1),
|
|
18802
|
+
width: number().int().positive(),
|
|
18803
|
+
height: number().int().positive(),
|
|
18804
|
+
format: _enum(["rgb", "gray"]),
|
|
18805
|
+
timestamp: number(),
|
|
18806
|
+
capturedAt: number().optional()
|
|
18807
|
+
});
|
|
18765
18808
|
var ModelFormatSchema$1 = _enum([
|
|
18766
18809
|
"onnx",
|
|
18767
18810
|
"coreml",
|
|
@@ -19006,6 +19049,12 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
19006
19049
|
steps: array(PipelineStepInputSchema).min(1),
|
|
19007
19050
|
frame: FrameInputSchema.optional(),
|
|
19008
19051
|
/**
|
|
19052
|
+
* Process-local lazy frame. Valid only when caller and provider resolve
|
|
19053
|
+
* in the same execution-group process; split/cross-node callers use
|
|
19054
|
+
* `frame`/`image` inline compatibility instead.
|
|
19055
|
+
*/
|
|
19056
|
+
frameRef: FrameRefSchema.optional(),
|
|
19057
|
+
/**
|
|
19009
19058
|
* CB5 shm passthrough — a `FrameHandle` naming the same ring slot
|
|
19010
19059
|
* the decoded pixels live in. One more member of the one-of
|
|
19011
19060
|
* frame/frameHandle/image/imageBase64/referenceImage group.
|
|
@@ -19301,7 +19350,10 @@ var NativeCropResultSchema = object({
|
|
|
19301
19350
|
* Which source served this crop, so a quality-sensitive consumer (the native
|
|
19302
19351
|
* `keyFrame`) can reject a degraded fallback:
|
|
19303
19352
|
* - `native` — cut from the decode worker's retained NATIVE surface (the
|
|
19304
|
-
* quality path).
|
|
19353
|
+
* quality path). A subject-tile serve is also native-resolution and stays
|
|
19354
|
+
* `native` here: the public enum cannot name `tile` without a breaking cap
|
|
19355
|
+
* change. Runner telemetry distinguishes lease vs tile via `source` on the
|
|
19356
|
+
* internal crop result (`nativeHits` vs `tileHits`).
|
|
19305
19357
|
* - `ram-fullframe` — the native surface MISSED but the request was full-frame,
|
|
19306
19358
|
* so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
|
|
19307
19359
|
* the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
|
|
@@ -19792,12 +19844,41 @@ var RunnerLocalLoadSchema = object({
|
|
|
19792
19844
|
* legacy `OrchestratorMetricsSchema` shape so existing dashboards keep
|
|
19793
19845
|
* working unchanged when they switch to reading from the runner cap.
|
|
19794
19846
|
*/
|
|
19847
|
+
var FrameLazyCountersSchema = object({
|
|
19848
|
+
framesDecoded: number(),
|
|
19849
|
+
framesAdmitted: number(),
|
|
19850
|
+
framesDroppedPixelFree: number(),
|
|
19851
|
+
viewsMaterialized: number(),
|
|
19852
|
+
viewsSkipped: number(),
|
|
19853
|
+
workerToRunnerBytes: number(),
|
|
19854
|
+
runnerToPoolRawBytes: number(),
|
|
19855
|
+
runnerToPoolJpegBytes: number(),
|
|
19856
|
+
onDemandFullFrameRequests: number(),
|
|
19857
|
+
onDemandCropRequests: number(),
|
|
19858
|
+
nativeHits: number(),
|
|
19859
|
+
nativeMisses: number(),
|
|
19860
|
+
tileHits: number(),
|
|
19861
|
+
tileMisses: number(),
|
|
19862
|
+
fallbackHits: number(),
|
|
19863
|
+
fallbackMisses: number(),
|
|
19864
|
+
retainedWritesAvoided: number(),
|
|
19865
|
+
residentRefs: number(),
|
|
19866
|
+
residentBytes: number(),
|
|
19867
|
+
releases: number(),
|
|
19868
|
+
evictions: number(),
|
|
19869
|
+
staleMisses: number()
|
|
19870
|
+
});
|
|
19871
|
+
var FrameLazyMetricsSchema = object({
|
|
19872
|
+
node: FrameLazyCountersSchema,
|
|
19873
|
+
cameras: array(FrameLazyCountersSchema.extend({ deviceId: number() }))
|
|
19874
|
+
});
|
|
19795
19875
|
var RunnerLocalMetricsSchema = object({
|
|
19796
19876
|
nodeId: string(),
|
|
19797
19877
|
activeCameras: number(),
|
|
19798
19878
|
throttledCameras: number(),
|
|
19799
19879
|
avgInferenceTimeMs: number(),
|
|
19800
|
-
queueDepth: number()
|
|
19880
|
+
queueDepth: number(),
|
|
19881
|
+
frameLazy: FrameLazyMetricsSchema.optional()
|
|
19801
19882
|
});
|
|
19802
19883
|
method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mutation" }), method(object({ deviceId: number() }), object({ success: literal(true) }), { kind: "mutation" }), method(ReportMotionInputSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), RunnerLocalLoadSchema), method(_void(), RunnerLocalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(_void(), array(CameraMetricsWithDeviceIdSchema).readonly()), method(_void(), array(number()).readonly()), method(object({
|
|
19803
19884
|
handle: FrameHandleSchema,
|
|
@@ -21127,6 +21208,9 @@ method(_void(), ProviderInfoSchema), method(object({ config: record(string(), un
|
|
|
21127
21208
|
location: StorageLocationSchema,
|
|
21128
21209
|
relativePath: string()
|
|
21129
21210
|
}), _void(), { kind: "mutation" }), method(object({ location: StorageLocationSchema }), number().nullable()), method(BeginUploadInputSchema, BeginUploadResultSchema, { kind: "mutation" }), method(WriteChunkInputSchema, _void(), { kind: "mutation" }), method(FinalizeUploadInputSchema, _void(), { kind: "mutation" }), method(AbortUploadInputSchema, _void(), { kind: "mutation" }), method(BeginDownloadInputSchema, BeginDownloadResultSchema, { kind: "mutation" }), method(ReadChunkInputSchema, _instanceof(Uint8Array)), method(EndDownloadInputSchema, _void(), { kind: "mutation" });
|
|
21211
|
+
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
21212
|
+
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
21213
|
+
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
21130
21214
|
/**
|
|
21131
21215
|
* A live terminal session hosted by the provider addon. Output and input do
|
|
21132
21216
|
* NOT flow through the capability — they use the addon data plane
|
|
@@ -21156,7 +21240,14 @@ var TerminalSessionInfoSchema = object({
|
|
|
21156
21240
|
var TerminalProfileInfoSchema = object({
|
|
21157
21241
|
profileId: string(),
|
|
21158
21242
|
label: string(),
|
|
21159
|
-
description: string().optional()
|
|
21243
|
+
description: string().optional(),
|
|
21244
|
+
/** Spawn defaults the instance form copies on create. */
|
|
21245
|
+
executable: string().optional(),
|
|
21246
|
+
args: array(string()).readonly().optional(),
|
|
21247
|
+
cwd: string().optional(),
|
|
21248
|
+
environment: array(string()).readonly().optional(),
|
|
21249
|
+
/** ConfigUISchema for instance knobs, or null when the profile has none. */
|
|
21250
|
+
settingsSchema: ProfileSettingsSchemaBridge.optional()
|
|
21160
21251
|
});
|
|
21161
21252
|
/**
|
|
21162
21253
|
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
@@ -21169,7 +21260,12 @@ var TerminalInstanceInfoSchema = object({
|
|
|
21169
21260
|
profileId: string(),
|
|
21170
21261
|
profileLabel: string(),
|
|
21171
21262
|
name: string(),
|
|
21172
|
-
enabled: boolean()
|
|
21263
|
+
enabled: boolean(),
|
|
21264
|
+
executable: string(),
|
|
21265
|
+
args: array(string()).readonly(),
|
|
21266
|
+
cwd: string(),
|
|
21267
|
+
environment: array(string()).readonly(),
|
|
21268
|
+
profileSettings: ProfileSettingsBagSchema
|
|
21173
21269
|
});
|
|
21174
21270
|
var TerminalLegacyCameraSchema = object({
|
|
21175
21271
|
stableId: string(),
|
|
@@ -21199,7 +21295,23 @@ var TerminalOutputBatchSchema = object({
|
|
|
21199
21295
|
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21200
21296
|
targetNodeId: string().min(1),
|
|
21201
21297
|
profileId: string().min(1),
|
|
21202
|
-
name: string().trim().min(1).max(160).optional()
|
|
21298
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21299
|
+
executable: string().max(1024).optional(),
|
|
21300
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21301
|
+
cwd: string().max(1024).optional(),
|
|
21302
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21303
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21304
|
+
}), TerminalInstanceInfoSchema, {
|
|
21305
|
+
kind: "mutation",
|
|
21306
|
+
auth: "admin"
|
|
21307
|
+
}), method(object({
|
|
21308
|
+
instanceId: string().min(1),
|
|
21309
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21310
|
+
executable: string().max(1024).optional(),
|
|
21311
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21312
|
+
cwd: string().max(1024).optional(),
|
|
21313
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21314
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21203
21315
|
}), TerminalInstanceInfoSchema, {
|
|
21204
21316
|
kind: "mutation",
|
|
21205
21317
|
auth: "admin"
|
|
@@ -21221,7 +21333,11 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
21221
21333
|
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21222
21334
|
profileId: string(),
|
|
21223
21335
|
cols: number().int().positive(),
|
|
21224
|
-
rows: number().int().positive()
|
|
21336
|
+
rows: number().int().positive(),
|
|
21337
|
+
executable: string().max(1024).optional(),
|
|
21338
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21339
|
+
cwd: string().max(1024).optional(),
|
|
21340
|
+
environment: array(string().max(4096)).max(64).optional()
|
|
21225
21341
|
}), TerminalSessionInfoSchema, {
|
|
21226
21342
|
kind: "mutation",
|
|
21227
21343
|
auth: "admin"
|
|
@@ -25136,10 +25252,10 @@ var lawnMowerControlCapability = {
|
|
|
25136
25252
|
*
|
|
25137
25253
|
* • The SDK (mobile / web client) consumes `getConnectionEndpoints()`
|
|
25138
25254
|
* to receive an ordered list of candidate base URLs it should race
|
|
25139
|
-
* on connect — LAN IPv4 first (lowest latency
|
|
25140
|
-
* then public hostname (if a tunnel is
|
|
25141
|
-
* race them with short timeouts and stick with the
|
|
25142
|
-
* session.
|
|
25255
|
+
* on connect — LAN IPv4 and stable LAN IPv6 first (lowest latency
|
|
25256
|
+
* when on the same network), then public hostname (if a tunnel is
|
|
25257
|
+
* up). The SDK can race them with short timeouts and stick with the
|
|
25258
|
+
* winner for the session.
|
|
25143
25259
|
*
|
|
25144
25260
|
* Why hub-only: agents are not directly addressable by the operator's
|
|
25145
25261
|
* clients — they reverse-connect to the hub. Exposing their interfaces
|
|
@@ -25294,6 +25410,17 @@ var NotificationEndpointSchema = object({
|
|
|
25294
25410
|
/** What the ranking currently resolves to (null when nothing is reachable). */
|
|
25295
25411
|
resolved: string().nullable()
|
|
25296
25412
|
});
|
|
25413
|
+
/**
|
|
25414
|
+
* The URLs the SDK / viewer should race for API access. `baseUrls` empty =
|
|
25415
|
+
* AUTO (every LAN IPv4 + the public tunnel). `resolved` is what that choice
|
|
25416
|
+
* currently expands to, so the UI can show the effective set either way.
|
|
25417
|
+
*/
|
|
25418
|
+
var ViewerEndpointsSchema = object({
|
|
25419
|
+
/** The operator's explicit race set, or empty for AUTO. */
|
|
25420
|
+
baseUrls: array(string()).readonly(),
|
|
25421
|
+
/** What the ranking currently resolves to (may be empty if nothing is up). */
|
|
25422
|
+
resolved: array(string()).readonly()
|
|
25423
|
+
});
|
|
25297
25424
|
var AllowedAddressesSchema = object({
|
|
25298
25425
|
/**
|
|
25299
25426
|
* Allowlist of interface addresses operators have explicitly opted
|
|
@@ -25302,6 +25429,20 @@ var AllowedAddressesSchema = object({
|
|
|
25302
25429
|
* Network Addresses admin page and persisted by the addon.
|
|
25303
25430
|
*/
|
|
25304
25431
|
addresses: array(string()).readonly() });
|
|
25432
|
+
var TlsStatusSchema = object({
|
|
25433
|
+
mode: _enum([
|
|
25434
|
+
"generated",
|
|
25435
|
+
"uploaded",
|
|
25436
|
+
"disabled"
|
|
25437
|
+
]),
|
|
25438
|
+
leafFingerprintSha256: string().nullable(),
|
|
25439
|
+
caFingerprintSha256: string().nullable(),
|
|
25440
|
+
validTo: string().nullable(),
|
|
25441
|
+
sans: array(string()),
|
|
25442
|
+
caCertPem: string().nullable(),
|
|
25443
|
+
reissueError: string().nullable(),
|
|
25444
|
+
restartRequired: boolean()
|
|
25445
|
+
});
|
|
25305
25446
|
method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
|
|
25306
25447
|
/**
|
|
25307
25448
|
* LEGACY HINT — do not send from new code. Kept optional so clients
|
|
@@ -25311,17 +25452,31 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
25311
25452
|
*/
|
|
25312
25453
|
port: number().int().min(1).max(65535).optional(),
|
|
25313
25454
|
/** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
|
|
25314
|
-
* candidate. Default `
|
|
25455
|
+
* candidate. Default `false` — loopback is not a client route. */
|
|
25315
25456
|
includeLoopback: boolean().optional(),
|
|
25316
|
-
/** Skip IPv6 entries.
|
|
25317
|
-
*
|
|
25457
|
+
/** Skip IPv6 entries. Default `false` — the palette includes stable
|
|
25458
|
+
* LAN IPv6 (ICE/WebRTC uses dual-stack regardless). Pass `true` to
|
|
25459
|
+
* hide them. The viewer HTTP/WS race is `getViewerEndpoints`. */
|
|
25318
25460
|
ipv4Only: boolean().optional(),
|
|
25319
25461
|
/** Scheme to emit for LAN/loopback URLs. Default `'http'`.
|
|
25320
25462
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
25321
25463
|
* to avoid mixed-content blocks in the browser. The public
|
|
25322
25464
|
* tunnel always emits `https://` regardless. */
|
|
25323
25465
|
scheme: _enum(["http", "https"]).optional()
|
|
25324
|
-
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" })
|
|
25466
|
+
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
|
|
25467
|
+
kind: "mutation",
|
|
25468
|
+
auth: "admin"
|
|
25469
|
+
}), method(object({
|
|
25470
|
+
certPem: string().min(1),
|
|
25471
|
+
keyPem: string().min(1),
|
|
25472
|
+
caPem: string().optional()
|
|
25473
|
+
}), TlsStatusSchema, {
|
|
25474
|
+
kind: "mutation",
|
|
25475
|
+
auth: "admin"
|
|
25476
|
+
}), method(_void(), object({ pem: string() })), method(_void(), TlsStatusSchema, {
|
|
25477
|
+
kind: "mutation",
|
|
25478
|
+
auth: "admin"
|
|
25479
|
+
});
|
|
25325
25480
|
var LockControlStatusSchema = object({
|
|
25326
25481
|
/** Lifecycle state of the lock. `jammed` means the motor reported
|
|
25327
25482
|
* failure to reach the target — operator intervention required. */
|
|
@@ -33459,6 +33614,12 @@ Object.freeze({
|
|
|
33459
33614
|
addonId: null,
|
|
33460
33615
|
access: "create"
|
|
33461
33616
|
},
|
|
33617
|
+
"localNetwork.downloadCa": {
|
|
33618
|
+
capName: "local-network",
|
|
33619
|
+
capScope: "system",
|
|
33620
|
+
addonId: null,
|
|
33621
|
+
access: "view"
|
|
33622
|
+
},
|
|
33462
33623
|
"localNetwork.getAllowedAddresses": {
|
|
33463
33624
|
capName: "local-network",
|
|
33464
33625
|
capScope: "system",
|
|
@@ -33483,18 +33644,42 @@ Object.freeze({
|
|
|
33483
33644
|
addonId: null,
|
|
33484
33645
|
access: "view"
|
|
33485
33646
|
},
|
|
33647
|
+
"localNetwork.getTlsStatus": {
|
|
33648
|
+
capName: "local-network",
|
|
33649
|
+
capScope: "system",
|
|
33650
|
+
addonId: null,
|
|
33651
|
+
access: "view"
|
|
33652
|
+
},
|
|
33653
|
+
"localNetwork.getViewerEndpoints": {
|
|
33654
|
+
capName: "local-network",
|
|
33655
|
+
capScope: "system",
|
|
33656
|
+
addonId: null,
|
|
33657
|
+
access: "view"
|
|
33658
|
+
},
|
|
33486
33659
|
"localNetwork.list": {
|
|
33487
33660
|
capName: "local-network",
|
|
33488
33661
|
capScope: "system",
|
|
33489
33662
|
addonId: null,
|
|
33490
33663
|
access: "view"
|
|
33491
33664
|
},
|
|
33665
|
+
"localNetwork.regenerateCertificate": {
|
|
33666
|
+
capName: "local-network",
|
|
33667
|
+
capScope: "system",
|
|
33668
|
+
addonId: null,
|
|
33669
|
+
access: "create"
|
|
33670
|
+
},
|
|
33492
33671
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
33493
33672
|
capName: "local-network",
|
|
33494
33673
|
capScope: "system",
|
|
33495
33674
|
addonId: null,
|
|
33496
33675
|
access: "delete"
|
|
33497
33676
|
},
|
|
33677
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
33678
|
+
capName: "local-network",
|
|
33679
|
+
capScope: "system",
|
|
33680
|
+
addonId: null,
|
|
33681
|
+
access: "create"
|
|
33682
|
+
},
|
|
33498
33683
|
"localNetwork.setAllowedAddresses": {
|
|
33499
33684
|
capName: "local-network",
|
|
33500
33685
|
capScope: "system",
|
|
@@ -33507,6 +33692,18 @@ Object.freeze({
|
|
|
33507
33692
|
addonId: null,
|
|
33508
33693
|
access: "create"
|
|
33509
33694
|
},
|
|
33695
|
+
"localNetwork.setViewerEndpoints": {
|
|
33696
|
+
capName: "local-network",
|
|
33697
|
+
capScope: "system",
|
|
33698
|
+
addonId: null,
|
|
33699
|
+
access: "create"
|
|
33700
|
+
},
|
|
33701
|
+
"localNetwork.uploadCertificate": {
|
|
33702
|
+
capName: "local-network",
|
|
33703
|
+
capScope: "system",
|
|
33704
|
+
addonId: null,
|
|
33705
|
+
access: "create"
|
|
33706
|
+
},
|
|
33510
33707
|
"lockControl.lock": {
|
|
33511
33708
|
capName: "lock-control",
|
|
33512
33709
|
capScope: "device",
|
|
@@ -36387,6 +36584,12 @@ Object.freeze({
|
|
|
36387
36584
|
addonId: null,
|
|
36388
36585
|
access: "create"
|
|
36389
36586
|
},
|
|
36587
|
+
"terminalSession.updateInstance": {
|
|
36588
|
+
capName: "terminal-session",
|
|
36589
|
+
capScope: "system",
|
|
36590
|
+
addonId: null,
|
|
36591
|
+
access: "create"
|
|
36592
|
+
},
|
|
36390
36593
|
"terminalSession.writeInput": {
|
|
36391
36594
|
capName: "terminal-session",
|
|
36392
36595
|
capScope: "system",
|
|
@@ -39138,6 +39341,35 @@ function pickClusterStepModels(view) {
|
|
|
39138
39341
|
}
|
|
39139
39342
|
return readClusterStepModels(flat);
|
|
39140
39343
|
}
|
|
39344
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
39345
|
+
stepId: "face-embedding",
|
|
39346
|
+
key: "minLandmarkFaceSize",
|
|
39347
|
+
label: "Min face size for recognition (detection px)",
|
|
39348
|
+
description: "Refuse to embed a face smaller than this IN THE DETECTION FRAME. Applies to every node — the enrolled gallery is one index, and two admission floors would fill it from two policies. 0 disables the gate.",
|
|
39349
|
+
type: "slider",
|
|
39350
|
+
min: 0,
|
|
39351
|
+
max: 64,
|
|
39352
|
+
step: 2,
|
|
39353
|
+
default: 24
|
|
39354
|
+
}];
|
|
39355
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
39356
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
39357
|
+
}
|
|
39358
|
+
var ClusterSettingNumberSchema = number().finite();
|
|
39359
|
+
function readClusterStepSettings(config) {
|
|
39360
|
+
const out = {};
|
|
39361
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
39362
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config[clusterStepSettingKey(field.stepId, field.key)]);
|
|
39363
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
39364
|
+
const existing = out[field.stepId] ?? {};
|
|
39365
|
+
out[field.stepId] = {
|
|
39366
|
+
...existing,
|
|
39367
|
+
[field.key]: value
|
|
39368
|
+
};
|
|
39369
|
+
}
|
|
39370
|
+
return out;
|
|
39371
|
+
}
|
|
39372
|
+
readClusterStepSettings({});
|
|
39141
39373
|
object({
|
|
39142
39374
|
/**
|
|
39143
39375
|
* Fraction of the box's own size added on EACH side before cutting.
|