@camstack/addon-pipeline 1.2.106 → 1.2.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{addon-utils-BEzVJ0xg.js → addon-utils-C0ht2KPO.js} +51 -15
- package/dist/{addon-utils-A2S9D7pu.mjs → addon-utils-CgBCF-mE.mjs} +50 -14
- package/dist/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +3 -3
- package/dist/detection-pipeline/index.js +198 -38
- package/dist/detection-pipeline/index.mjs +197 -37
- package/dist/{dist-BSeR_hVv.js → dist-BqIbYW1A.js} +290 -17
- package/dist/{dist-lITI1Bn5.mjs → dist-DGQkkWc6.mjs} +273 -18
- package/dist/{event-loop-stall-monitor-0VvjTRDP.mjs → event-loop-stall-monitor-D5jK5v4Z.mjs} +223 -2
- package/dist/{event-loop-stall-monitor-BNsp9k8r.js → event-loop-stall-monitor-ylMGpz48.js} +234 -1
- package/dist/{lazy-sharp-CBohM8D8.js → lazy-sharp-cOsy7l_P.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +915 -107
- package/dist/pipeline-runner/index.mjs +914 -106
- package/dist/{process-memory-C33u3tQz.js → process-memory-45juuHpN.js} +1 -1
- package/dist/{process-memory-CEKVKfwg.mjs → process-memory-BtT7WfbJ.mjs} +1 -1
- package/dist/recorder/index.js +187 -47
- package/dist/recorder/index.mjs +187 -47
- package/dist/session-decode/decode-worker-child.js +30 -10
- package/dist/session-decode/decode-worker-child.mjs +29 -9
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-w2XLD3uI.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C_SFFNGT.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B1LDFHY9.mjs +26 -0
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DsIi4G5Q.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BAMyzCWw.mjs} +1 -1
- package/dist/stream-broker/{hostInit-B-h24cDy.mjs → hostInit-CG28NvlV.mjs} +3 -3
- package/dist/stream-broker/index.js +279 -198
- package/dist/stream-broker/index.mjs +279 -198
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-CiKfal2P.js → worker-protocol-CIrqGbpG.js} +6 -3
- package/dist/{worker-protocol-BDiL8TBm.mjs → worker-protocol-DyocTIx_.mjs} +6 -3
- package/package.json +1 -1
- package/python/inference_pool.py +4 -1
- package/python/test_inference_pool_preprocess.py +87 -16
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DvZWLWk1.mjs +0 -26
|
@@ -9058,6 +9058,15 @@ var LabelDefinitionSchema = object({
|
|
|
9058
9058
|
description: string().optional(),
|
|
9059
9059
|
icon: string().optional()
|
|
9060
9060
|
});
|
|
9061
|
+
var ClassMapDefinitionSchema = object({
|
|
9062
|
+
mapping: record(string(), _enum([
|
|
9063
|
+
"person",
|
|
9064
|
+
"vehicle",
|
|
9065
|
+
"animal",
|
|
9066
|
+
"package"
|
|
9067
|
+
])),
|
|
9068
|
+
preserveOriginal: boolean()
|
|
9069
|
+
});
|
|
9061
9070
|
var MODEL_FORMATS = [
|
|
9062
9071
|
"onnx",
|
|
9063
9072
|
"coreml",
|
|
@@ -9236,7 +9245,13 @@ var ModelCatalogEntrySchema = object({
|
|
|
9236
9245
|
* `id` stays the source of truth for resolution/download/persistence; grouping
|
|
9237
9246
|
* is a presentation overlay resolved back to an `id`.
|
|
9238
9247
|
*/
|
|
9239
|
-
group: ModelVariantGroupSchema.optional()
|
|
9248
|
+
group: ModelVariantGroupSchema.optional(),
|
|
9249
|
+
/**
|
|
9250
|
+
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
9251
|
+
* applies (Frigate / COCO public catalog). Set on a custom model whose raw
|
|
9252
|
+
* labels already ARE the CamStack macros (Scrypted identity map).
|
|
9253
|
+
*/
|
|
9254
|
+
classMap: ClassMapDefinitionSchema.optional()
|
|
9240
9255
|
});
|
|
9241
9256
|
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
9242
9257
|
format: literal("openvino"),
|
|
@@ -9265,7 +9280,8 @@ var ModelConvertMetadataSchema = object({
|
|
|
9265
9280
|
"ocr",
|
|
9266
9281
|
"segmentation"
|
|
9267
9282
|
]),
|
|
9268
|
-
faceAlignment: boolean().optional()
|
|
9283
|
+
faceAlignment: boolean().optional(),
|
|
9284
|
+
classMap: ClassMapDefinitionSchema.optional()
|
|
9269
9285
|
});
|
|
9270
9286
|
var ConvertResultSchema = object({
|
|
9271
9287
|
entry: ModelCatalogEntrySchema,
|
|
@@ -19049,6 +19065,33 @@ var NativeCropRefSchema = object({
|
|
|
19049
19065
|
h: number()
|
|
19050
19066
|
})
|
|
19051
19067
|
});
|
|
19068
|
+
object({
|
|
19069
|
+
crop: object({
|
|
19070
|
+
left: number(),
|
|
19071
|
+
top: number(),
|
|
19072
|
+
width: number().positive(),
|
|
19073
|
+
height: number().positive()
|
|
19074
|
+
}).optional(),
|
|
19075
|
+
content: object({
|
|
19076
|
+
width: number().int().positive(),
|
|
19077
|
+
height: number().int().positive()
|
|
19078
|
+
}),
|
|
19079
|
+
fit: _enum(["stretch", "contain"]),
|
|
19080
|
+
format: _enum([
|
|
19081
|
+
"rgb",
|
|
19082
|
+
"gray",
|
|
19083
|
+
"jpeg"
|
|
19084
|
+
])
|
|
19085
|
+
});
|
|
19086
|
+
var FrameRefSchema = object({
|
|
19087
|
+
registryId: string().min(1),
|
|
19088
|
+
id: string().min(1),
|
|
19089
|
+
width: number().int().positive(),
|
|
19090
|
+
height: number().int().positive(),
|
|
19091
|
+
format: _enum(["rgb", "gray"]),
|
|
19092
|
+
timestamp: number(),
|
|
19093
|
+
capturedAt: number().optional()
|
|
19094
|
+
});
|
|
19052
19095
|
var ModelFormatSchema$1 = _enum([
|
|
19053
19096
|
"onnx",
|
|
19054
19097
|
"coreml",
|
|
@@ -19369,7 +19412,7 @@ var pipelineExecutorCapability = {
|
|
|
19369
19412
|
* legacy call shape used by existing benchmark code; once all
|
|
19370
19413
|
* callers pass it explicitly we make it required.
|
|
19371
19414
|
*
|
|
19372
|
-
* Exactly one of `frame`, `frameHandle`, `imageBase64`,
|
|
19415
|
+
* Exactly one of `frame`, `frameRef`, `frameHandle`, `imageBase64`,
|
|
19373
19416
|
* `referenceImage` must be provided:
|
|
19374
19417
|
* - `frame`: runtime dispatch path (runner → decoded broker frame).
|
|
19375
19418
|
* Carries the raw buffer, dimensions, and format; the executor
|
|
@@ -19391,6 +19434,12 @@ var pipelineExecutorCapability = {
|
|
|
19391
19434
|
steps: array(PipelineStepInputSchema).min(1),
|
|
19392
19435
|
frame: FrameInputSchema.optional(),
|
|
19393
19436
|
/**
|
|
19437
|
+
* Process-local lazy frame. Valid only when caller and provider resolve
|
|
19438
|
+
* in the same execution-group process; split/cross-node callers use
|
|
19439
|
+
* `frame`/`image` inline compatibility instead.
|
|
19440
|
+
*/
|
|
19441
|
+
frameRef: FrameRefSchema.optional(),
|
|
19442
|
+
/**
|
|
19394
19443
|
* CB5 shm passthrough — a `FrameHandle` naming the same ring slot
|
|
19395
19444
|
* the decoded pixels live in. One more member of the one-of
|
|
19396
19445
|
* frame/frameHandle/image/imageBase64/referenceImage group.
|
|
@@ -19700,7 +19749,10 @@ var NativeCropResultSchema = object({
|
|
|
19700
19749
|
* Which source served this crop, so a quality-sensitive consumer (the native
|
|
19701
19750
|
* `keyFrame`) can reject a degraded fallback:
|
|
19702
19751
|
* - `native` — cut from the decode worker's retained NATIVE surface (the
|
|
19703
|
-
* quality path).
|
|
19752
|
+
* quality path). A subject-tile serve is also native-resolution and stays
|
|
19753
|
+
* `native` here: the public enum cannot name `tile` without a breaking cap
|
|
19754
|
+
* change. Runner telemetry distinguishes lease vs tile via `source` on the
|
|
19755
|
+
* internal crop result (`nativeHits` vs `tileHits`).
|
|
19704
19756
|
* - `ram-fullframe` — the native surface MISSED but the request was full-frame,
|
|
19705
19757
|
* so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
|
|
19706
19758
|
* the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
|
|
@@ -20191,12 +20243,41 @@ var RunnerLocalLoadSchema = object({
|
|
|
20191
20243
|
* legacy `OrchestratorMetricsSchema` shape so existing dashboards keep
|
|
20192
20244
|
* working unchanged when they switch to reading from the runner cap.
|
|
20193
20245
|
*/
|
|
20246
|
+
var FrameLazyCountersSchema = object({
|
|
20247
|
+
framesDecoded: number(),
|
|
20248
|
+
framesAdmitted: number(),
|
|
20249
|
+
framesDroppedPixelFree: number(),
|
|
20250
|
+
viewsMaterialized: number(),
|
|
20251
|
+
viewsSkipped: number(),
|
|
20252
|
+
workerToRunnerBytes: number(),
|
|
20253
|
+
runnerToPoolRawBytes: number(),
|
|
20254
|
+
runnerToPoolJpegBytes: number(),
|
|
20255
|
+
onDemandFullFrameRequests: number(),
|
|
20256
|
+
onDemandCropRequests: number(),
|
|
20257
|
+
nativeHits: number(),
|
|
20258
|
+
nativeMisses: number(),
|
|
20259
|
+
tileHits: number(),
|
|
20260
|
+
tileMisses: number(),
|
|
20261
|
+
fallbackHits: number(),
|
|
20262
|
+
fallbackMisses: number(),
|
|
20263
|
+
retainedWritesAvoided: number(),
|
|
20264
|
+
residentRefs: number(),
|
|
20265
|
+
residentBytes: number(),
|
|
20266
|
+
releases: number(),
|
|
20267
|
+
evictions: number(),
|
|
20268
|
+
staleMisses: number()
|
|
20269
|
+
});
|
|
20270
|
+
var FrameLazyMetricsSchema = object({
|
|
20271
|
+
node: FrameLazyCountersSchema,
|
|
20272
|
+
cameras: array(FrameLazyCountersSchema.extend({ deviceId: number() }))
|
|
20273
|
+
});
|
|
20194
20274
|
var RunnerLocalMetricsSchema = object({
|
|
20195
20275
|
nodeId: string(),
|
|
20196
20276
|
activeCameras: number(),
|
|
20197
20277
|
throttledCameras: number(),
|
|
20198
20278
|
avgInferenceTimeMs: number(),
|
|
20199
|
-
queueDepth: number()
|
|
20279
|
+
queueDepth: number(),
|
|
20280
|
+
frameLazy: FrameLazyMetricsSchema.optional()
|
|
20200
20281
|
});
|
|
20201
20282
|
/**
|
|
20202
20283
|
* Pipeline Runner capability — runtime detection workhorse.
|
|
@@ -21653,6 +21734,9 @@ method(_void(), ProviderInfoSchema), method(object({ config: record(string(), un
|
|
|
21653
21734
|
location: StorageLocationSchema,
|
|
21654
21735
|
relativePath: string()
|
|
21655
21736
|
}), _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" });
|
|
21737
|
+
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
21738
|
+
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
21739
|
+
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
21656
21740
|
/**
|
|
21657
21741
|
* A live terminal session hosted by the provider addon. Output and input do
|
|
21658
21742
|
* NOT flow through the capability — they use the addon data plane
|
|
@@ -21682,7 +21766,14 @@ var TerminalSessionInfoSchema = object({
|
|
|
21682
21766
|
var TerminalProfileInfoSchema = object({
|
|
21683
21767
|
profileId: string(),
|
|
21684
21768
|
label: string(),
|
|
21685
|
-
description: string().optional()
|
|
21769
|
+
description: string().optional(),
|
|
21770
|
+
/** Spawn defaults the instance form copies on create. */
|
|
21771
|
+
executable: string().optional(),
|
|
21772
|
+
args: array(string()).readonly().optional(),
|
|
21773
|
+
cwd: string().optional(),
|
|
21774
|
+
environment: array(string()).readonly().optional(),
|
|
21775
|
+
/** ConfigUISchema for instance knobs, or null when the profile has none. */
|
|
21776
|
+
settingsSchema: ProfileSettingsSchemaBridge.optional()
|
|
21686
21777
|
});
|
|
21687
21778
|
/**
|
|
21688
21779
|
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
@@ -21695,7 +21786,12 @@ var TerminalInstanceInfoSchema = object({
|
|
|
21695
21786
|
profileId: string(),
|
|
21696
21787
|
profileLabel: string(),
|
|
21697
21788
|
name: string(),
|
|
21698
|
-
enabled: boolean()
|
|
21789
|
+
enabled: boolean(),
|
|
21790
|
+
executable: string(),
|
|
21791
|
+
args: array(string()).readonly(),
|
|
21792
|
+
cwd: string(),
|
|
21793
|
+
environment: array(string()).readonly(),
|
|
21794
|
+
profileSettings: ProfileSettingsBagSchema
|
|
21699
21795
|
});
|
|
21700
21796
|
var TerminalLegacyCameraSchema = object({
|
|
21701
21797
|
stableId: string(),
|
|
@@ -21725,7 +21821,23 @@ var TerminalOutputBatchSchema = object({
|
|
|
21725
21821
|
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21726
21822
|
targetNodeId: string().min(1),
|
|
21727
21823
|
profileId: string().min(1),
|
|
21728
|
-
name: string().trim().min(1).max(160).optional()
|
|
21824
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21825
|
+
executable: string().max(1024).optional(),
|
|
21826
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21827
|
+
cwd: string().max(1024).optional(),
|
|
21828
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21829
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21830
|
+
}), TerminalInstanceInfoSchema, {
|
|
21831
|
+
kind: "mutation",
|
|
21832
|
+
auth: "admin"
|
|
21833
|
+
}), method(object({
|
|
21834
|
+
instanceId: string().min(1),
|
|
21835
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21836
|
+
executable: string().max(1024).optional(),
|
|
21837
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21838
|
+
cwd: string().max(1024).optional(),
|
|
21839
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21840
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21729
21841
|
}), TerminalInstanceInfoSchema, {
|
|
21730
21842
|
kind: "mutation",
|
|
21731
21843
|
auth: "admin"
|
|
@@ -21747,7 +21859,11 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
21747
21859
|
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21748
21860
|
profileId: string(),
|
|
21749
21861
|
cols: number().int().positive(),
|
|
21750
|
-
rows: number().int().positive()
|
|
21862
|
+
rows: number().int().positive(),
|
|
21863
|
+
executable: string().max(1024).optional(),
|
|
21864
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21865
|
+
cwd: string().max(1024).optional(),
|
|
21866
|
+
environment: array(string().max(4096)).max(64).optional()
|
|
21751
21867
|
}), TerminalSessionInfoSchema, {
|
|
21752
21868
|
kind: "mutation",
|
|
21753
21869
|
auth: "admin"
|
|
@@ -24676,10 +24792,10 @@ DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }),
|
|
|
24676
24792
|
*
|
|
24677
24793
|
* • The SDK (mobile / web client) consumes `getConnectionEndpoints()`
|
|
24678
24794
|
* to receive an ordered list of candidate base URLs it should race
|
|
24679
|
-
* on connect — LAN IPv4 first (lowest latency
|
|
24680
|
-
* then public hostname (if a tunnel is
|
|
24681
|
-
* race them with short timeouts and stick with the
|
|
24682
|
-
* session.
|
|
24795
|
+
* on connect — LAN IPv4 and stable LAN IPv6 first (lowest latency
|
|
24796
|
+
* when on the same network), then public hostname (if a tunnel is
|
|
24797
|
+
* up). The SDK can race them with short timeouts and stick with the
|
|
24798
|
+
* winner for the session.
|
|
24683
24799
|
*
|
|
24684
24800
|
* Why hub-only: agents are not directly addressable by the operator's
|
|
24685
24801
|
* clients — they reverse-connect to the hub. Exposing their interfaces
|
|
@@ -24834,6 +24950,17 @@ var NotificationEndpointSchema = object({
|
|
|
24834
24950
|
/** What the ranking currently resolves to (null when nothing is reachable). */
|
|
24835
24951
|
resolved: string().nullable()
|
|
24836
24952
|
});
|
|
24953
|
+
/**
|
|
24954
|
+
* The URLs the SDK / viewer should race for API access. `baseUrls` empty =
|
|
24955
|
+
* AUTO (every LAN IPv4 + the public tunnel). `resolved` is what that choice
|
|
24956
|
+
* currently expands to, so the UI can show the effective set either way.
|
|
24957
|
+
*/
|
|
24958
|
+
var ViewerEndpointsSchema = object({
|
|
24959
|
+
/** The operator's explicit race set, or empty for AUTO. */
|
|
24960
|
+
baseUrls: array(string()).readonly(),
|
|
24961
|
+
/** What the ranking currently resolves to (may be empty if nothing is up). */
|
|
24962
|
+
resolved: array(string()).readonly()
|
|
24963
|
+
});
|
|
24837
24964
|
var AllowedAddressesSchema = object({
|
|
24838
24965
|
/**
|
|
24839
24966
|
* Allowlist of interface addresses operators have explicitly opted
|
|
@@ -24842,6 +24969,20 @@ var AllowedAddressesSchema = object({
|
|
|
24842
24969
|
* Network Addresses admin page and persisted by the addon.
|
|
24843
24970
|
*/
|
|
24844
24971
|
addresses: array(string()).readonly() });
|
|
24972
|
+
var TlsStatusSchema = object({
|
|
24973
|
+
mode: _enum([
|
|
24974
|
+
"generated",
|
|
24975
|
+
"uploaded",
|
|
24976
|
+
"disabled"
|
|
24977
|
+
]),
|
|
24978
|
+
leafFingerprintSha256: string().nullable(),
|
|
24979
|
+
caFingerprintSha256: string().nullable(),
|
|
24980
|
+
validTo: string().nullable(),
|
|
24981
|
+
sans: array(string()),
|
|
24982
|
+
caCertPem: string().nullable(),
|
|
24983
|
+
reissueError: string().nullable(),
|
|
24984
|
+
restartRequired: boolean()
|
|
24985
|
+
});
|
|
24845
24986
|
method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
|
|
24846
24987
|
/**
|
|
24847
24988
|
* LEGACY HINT — do not send from new code. Kept optional so clients
|
|
@@ -24851,17 +24992,31 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
24851
24992
|
*/
|
|
24852
24993
|
port: number().int().min(1).max(65535).optional(),
|
|
24853
24994
|
/** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
|
|
24854
|
-
* candidate. Default `
|
|
24995
|
+
* candidate. Default `false` — loopback is not a client route. */
|
|
24855
24996
|
includeLoopback: boolean().optional(),
|
|
24856
|
-
/** Skip IPv6 entries.
|
|
24857
|
-
*
|
|
24997
|
+
/** Skip IPv6 entries. Default `false` — the palette includes stable
|
|
24998
|
+
* LAN IPv6 (ICE/WebRTC uses dual-stack regardless). Pass `true` to
|
|
24999
|
+
* hide them. The viewer HTTP/WS race is `getViewerEndpoints`. */
|
|
24858
25000
|
ipv4Only: boolean().optional(),
|
|
24859
25001
|
/** Scheme to emit for LAN/loopback URLs. Default `'http'`.
|
|
24860
25002
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
24861
25003
|
* to avoid mixed-content blocks in the browser. The public
|
|
24862
25004
|
* tunnel always emits `https://` regardless. */
|
|
24863
25005
|
scheme: _enum(["http", "https"]).optional()
|
|
24864
|
-
}), 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" })
|
|
25006
|
+
}), 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, {
|
|
25007
|
+
kind: "mutation",
|
|
25008
|
+
auth: "admin"
|
|
25009
|
+
}), method(object({
|
|
25010
|
+
certPem: string().min(1),
|
|
25011
|
+
keyPem: string().min(1),
|
|
25012
|
+
caPem: string().optional()
|
|
25013
|
+
}), TlsStatusSchema, {
|
|
25014
|
+
kind: "mutation",
|
|
25015
|
+
auth: "admin"
|
|
25016
|
+
}), method(_void(), object({ pem: string() })), method(_void(), TlsStatusSchema, {
|
|
25017
|
+
kind: "mutation",
|
|
25018
|
+
auth: "admin"
|
|
25019
|
+
});
|
|
24865
25020
|
object({
|
|
24866
25021
|
/** Lifecycle state of the lock. `jammed` means the motor reported
|
|
24867
25022
|
* failure to reach the target — operator intervention required. */
|
|
@@ -30796,6 +30951,12 @@ Object.freeze({
|
|
|
30796
30951
|
addonId: null,
|
|
30797
30952
|
access: "create"
|
|
30798
30953
|
},
|
|
30954
|
+
"localNetwork.downloadCa": {
|
|
30955
|
+
capName: "local-network",
|
|
30956
|
+
capScope: "system",
|
|
30957
|
+
addonId: null,
|
|
30958
|
+
access: "view"
|
|
30959
|
+
},
|
|
30799
30960
|
"localNetwork.getAllowedAddresses": {
|
|
30800
30961
|
capName: "local-network",
|
|
30801
30962
|
capScope: "system",
|
|
@@ -30820,18 +30981,42 @@ Object.freeze({
|
|
|
30820
30981
|
addonId: null,
|
|
30821
30982
|
access: "view"
|
|
30822
30983
|
},
|
|
30984
|
+
"localNetwork.getTlsStatus": {
|
|
30985
|
+
capName: "local-network",
|
|
30986
|
+
capScope: "system",
|
|
30987
|
+
addonId: null,
|
|
30988
|
+
access: "view"
|
|
30989
|
+
},
|
|
30990
|
+
"localNetwork.getViewerEndpoints": {
|
|
30991
|
+
capName: "local-network",
|
|
30992
|
+
capScope: "system",
|
|
30993
|
+
addonId: null,
|
|
30994
|
+
access: "view"
|
|
30995
|
+
},
|
|
30823
30996
|
"localNetwork.list": {
|
|
30824
30997
|
capName: "local-network",
|
|
30825
30998
|
capScope: "system",
|
|
30826
30999
|
addonId: null,
|
|
30827
31000
|
access: "view"
|
|
30828
31001
|
},
|
|
31002
|
+
"localNetwork.regenerateCertificate": {
|
|
31003
|
+
capName: "local-network",
|
|
31004
|
+
capScope: "system",
|
|
31005
|
+
addonId: null,
|
|
31006
|
+
access: "create"
|
|
31007
|
+
},
|
|
30829
31008
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
30830
31009
|
capName: "local-network",
|
|
30831
31010
|
capScope: "system",
|
|
30832
31011
|
addonId: null,
|
|
30833
31012
|
access: "delete"
|
|
30834
31013
|
},
|
|
31014
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
31015
|
+
capName: "local-network",
|
|
31016
|
+
capScope: "system",
|
|
31017
|
+
addonId: null,
|
|
31018
|
+
access: "create"
|
|
31019
|
+
},
|
|
30835
31020
|
"localNetwork.setAllowedAddresses": {
|
|
30836
31021
|
capName: "local-network",
|
|
30837
31022
|
capScope: "system",
|
|
@@ -30844,6 +31029,18 @@ Object.freeze({
|
|
|
30844
31029
|
addonId: null,
|
|
30845
31030
|
access: "create"
|
|
30846
31031
|
},
|
|
31032
|
+
"localNetwork.setViewerEndpoints": {
|
|
31033
|
+
capName: "local-network",
|
|
31034
|
+
capScope: "system",
|
|
31035
|
+
addonId: null,
|
|
31036
|
+
access: "create"
|
|
31037
|
+
},
|
|
31038
|
+
"localNetwork.uploadCertificate": {
|
|
31039
|
+
capName: "local-network",
|
|
31040
|
+
capScope: "system",
|
|
31041
|
+
addonId: null,
|
|
31042
|
+
access: "create"
|
|
31043
|
+
},
|
|
30847
31044
|
"lockControl.lock": {
|
|
30848
31045
|
capName: "lock-control",
|
|
30849
31046
|
capScope: "device",
|
|
@@ -33724,6 +33921,12 @@ Object.freeze({
|
|
|
33724
33921
|
addonId: null,
|
|
33725
33922
|
access: "create"
|
|
33726
33923
|
},
|
|
33924
|
+
"terminalSession.updateInstance": {
|
|
33925
|
+
capName: "terminal-session",
|
|
33926
|
+
capScope: "system",
|
|
33927
|
+
addonId: null,
|
|
33928
|
+
access: "create"
|
|
33929
|
+
},
|
|
33727
33930
|
"terminalSession.writeInput": {
|
|
33728
33931
|
capName: "terminal-session",
|
|
33729
33932
|
capScope: "system",
|
|
@@ -36375,6 +36578,58 @@ function resolveClusterStepModelId(stepId, models) {
|
|
|
36375
36578
|
const chosen = models[stepId];
|
|
36376
36579
|
return chosen !== void 0 && chosen !== "" ? chosen : step.defaultModelId;
|
|
36377
36580
|
}
|
|
36581
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
36582
|
+
stepId: "face-embedding",
|
|
36583
|
+
key: "minLandmarkFaceSize",
|
|
36584
|
+
label: "Min face size for recognition (detection px)",
|
|
36585
|
+
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.",
|
|
36586
|
+
type: "slider",
|
|
36587
|
+
min: 0,
|
|
36588
|
+
max: 64,
|
|
36589
|
+
step: 2,
|
|
36590
|
+
default: 24
|
|
36591
|
+
}];
|
|
36592
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
36593
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
36594
|
+
}
|
|
36595
|
+
var ClusterSettingNumberSchema = number().finite();
|
|
36596
|
+
function readClusterStepSettings(config) {
|
|
36597
|
+
const out = {};
|
|
36598
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
36599
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config[clusterStepSettingKey(field.stepId, field.key)]);
|
|
36600
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
36601
|
+
const existing = out[field.stepId] ?? {};
|
|
36602
|
+
out[field.stepId] = {
|
|
36603
|
+
...existing,
|
|
36604
|
+
[field.key]: value
|
|
36605
|
+
};
|
|
36606
|
+
}
|
|
36607
|
+
return out;
|
|
36608
|
+
}
|
|
36609
|
+
var DEFAULT_CLUSTER_STEP_SETTINGS = readClusterStepSettings({});
|
|
36610
|
+
function pickClusterStepSettings(view) {
|
|
36611
|
+
if (view === null) return DEFAULT_CLUSTER_STEP_SETTINGS;
|
|
36612
|
+
const flat = {};
|
|
36613
|
+
const wanted = new Set(CLUSTER_STEP_SETTING_FIELDS.map((field) => clusterStepSettingKey(field.stepId, field.key)));
|
|
36614
|
+
for (const section of view.sections) for (const entry of section.fields) {
|
|
36615
|
+
if (!isHydratedField$2(entry) || typeof entry.key !== "string") continue;
|
|
36616
|
+
if (wanted.has(entry.key)) flat[entry.key] = entry.value;
|
|
36617
|
+
}
|
|
36618
|
+
return readClusterStepSettings(flat);
|
|
36619
|
+
}
|
|
36620
|
+
/**
|
|
36621
|
+
* Cluster knobs win over leftover per-device values. The cluster row is the
|
|
36622
|
+
* authority; a device-local copy is a leftover of the old per-node editor.
|
|
36623
|
+
*/
|
|
36624
|
+
function overlayClusterStepSettings(stepId, deviceSettings, cluster) {
|
|
36625
|
+
const overlay = cluster[stepId];
|
|
36626
|
+
if (overlay === void 0 || Object.keys(overlay).length === 0) return deviceSettings === void 0 ? void 0 : { ...deviceSettings };
|
|
36627
|
+
if (deviceSettings === void 0) return { ...overlay };
|
|
36628
|
+
return {
|
|
36629
|
+
...deviceSettings,
|
|
36630
|
+
...overlay
|
|
36631
|
+
};
|
|
36632
|
+
}
|
|
36378
36633
|
var DETAIL_CROP_PADDING_KEY = "detailCropPaddingRatio";
|
|
36379
36634
|
var DETAIL_CROP_SQUARE_KEY = "detailCropSquare";
|
|
36380
36635
|
/**
|
|
@@ -37434,4 +37689,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
37434
37689
|
return out;
|
|
37435
37690
|
}
|
|
37436
37691
|
//#endregion
|
|
37437
|
-
export {
|
|
37692
|
+
export { pickClusterStepSettings as $, audioAnalyzerCapability as A, nodePin as At, deriveRecordingMode as B, literal as Bt, RATE_CONTROL_TIGHT as C, DeviceFeature as Ct, YAMNET_TO_MACRO as D, isEvent as Dt, RingBuffer as E, hydrateSchema as Et, customAction as F, _enum as Ft, evaluateZoneRules as G, union as Gt, egressTranscodeSharingKey as H, object as Ht, defaultDeviceFor as I, array as It, maskUrlCredentials as J, hfModelUrl as K, EventCategory as Kt, defineCustomActions as L, boolean as Lt, batteryCapability as M, parseProfileBrokerId as Mt, cameraStreamsCapability as N, selectAssignedProfileSlots as Nt, addonWidgetsSourceCapability as O, makeProfileBrokerId as Ot, createHwAccelCache as P, sleep as Pt, pickClusterStepModels as Q, deriveBatteryPresence as R, discriminatedUnion as Rt, RATE_CONTROL_RELAXED as S, CAM_PROFILE_ORDER as St, RecordingConfigSchema as T, createEvent as Tt, egressTransportFromRequest as U, record as Ut, detectionPipelineCapability as V, number as Vt, enumerateInferenceDevices as W, string as Wt, overlayClusterStepSettings as X, motionDetectionCapability as Y, parseProcStatus as Z, HF_BASE_URL as _, Fmp4BoxSplitter as _t, COCO_80_LABELS as a, recordingExportCapability as at, OpsLogEntrySchema as b, isSoftwareDecode as bt, DEFAULT_CLUSTER_STEP_MODELS as c, resolvePoolMemoryPolicy as ct, DEFAULT_EVENTS_BAND_BUFFER_SEC as d, storageEvictableCapability as dt, pickDetailCropConvention as et, DEFAULT_NATIVE_LEASE_SETTINGS as f, streamBrokerCapability as ft, ExportRecordSchema as g, AUDIO_PRESETS as gt, EncodeProfileSchema as h, errMsg as ht, BatteryStatusSchema as i, recordingCapability as it, audioKindId as j, parseJsonUnknown as jt, audioAnalysisCapability as k, makeSourceBrokerId as kt, DEFAULT_CLUSTER_STEP_SETTINGS as l, resolveRecordingProfiles as lt, EVENT_PAD_MS as m, webrtcSessionCapability as mt, AUDIO_BACKEND_CHOICES as n, pipelineExecutorCapability as nt, COCO_TO_MACRO as o, resolveClusterStepModelId as ot, DEVICE_BACKEND_TO_FORMAT as p, supportedRuntimes as pt, mapAudioLabelToMacro as q, AUDIO_MACRO_LABELS as r, pipelineRunnerCapability as rt, DEFAULT_AUDIO_ANALYZER_CONFIG as s, resolveEgressDecodeHwAccel as st, APPLE_SA_TO_MACRO as t, pickNativeLeaseOverride as tt, DEFAULT_DETAIL_CROP_CONVENTION as u, runtimeDevices as ut, NativeLeaseAdmissionSchema as v, buildFfmpegArgs as vt, RECORDING_EXPORT_MAX_READ_BYTES as w, DeviceType as wt, PoolMemoryWatchdog as x, BaseAddon as xt, NativeLeaseSettingsSchema as y, invocationFromEncodeProfile as yt, deriveDetailCropRect as z, lazy as zt };
|