@camstack/addon-pipeline 1.2.338 → 1.2.340
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/audio-analyzer/index.js +22 -30
- package/dist/audio-analyzer/index.mjs +23 -31
- package/dist/{custom-model-catalog-CN6WPGB8.mjs → custom-model-catalog-BOnN63HU.mjs} +5 -1448
- package/dist/{custom-model-catalog-BYJyfhgj.js → custom-model-catalog-Cjbll1Sf.js} +18 -1461
- package/dist/detection-pipeline/index.js +208 -17
- package/dist/detection-pipeline/index.mjs +232 -41
- package/dist/{dist-WIL4yeyi.js → dist-BWigCRRN.js} +324 -51
- package/dist/{dist-CdmlJu1J.mjs → dist-CsA6fY6I.mjs} +311 -50
- package/dist/model-catalogs-BFBf8sHb.js +1522 -0
- package/dist/model-catalogs-D7JXV0_i.mjs +1445 -0
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-CEtew1DU.mjs → node-BZ29vHq2.mjs} +1 -1
- package/dist/{node-DCFClFJ1.js → node-D52HHrVZ.js} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-Bsj_b---.js → process-memory-C9U6dKxS.js} +1 -1
- package/dist/{process-memory-maZfOnev.mjs → process-memory-DOEeg2pL.mjs} +1 -1
- package/dist/recorder/index.js +6 -2
- package/dist/recorder/index.mjs +6 -2
- package/dist/{segment-demux-js-CXmBf_nf.js → segment-demux-js-CMZSmwMp.js} +1 -1
- package/dist/{segment-demux-js-DnPcYYbc.mjs → segment-demux-js-DDgwrz-e.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BdsJXZcP.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-6JIjr_ur.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js--yC-aoPc.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-Bt8aa0wk.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B-hhg2sP.mjs} +1 -1
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-BU5SBy0i.mjs → hostInit-Ck1wQfKk.mjs} +2 -2
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-1Y-WK-Zy.mjs +0 -26
|
@@ -12930,16 +12930,53 @@ var ModelFormatEntrySchema = object({
|
|
|
12930
12930
|
/** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
|
|
12931
12931
|
runtimes: array(_enum(["python"])).readonly().optional(),
|
|
12932
12932
|
/**
|
|
12933
|
-
* Content revision of the
|
|
12934
|
-
*
|
|
12935
|
-
*
|
|
12933
|
+
* Content revision of the artefact, for one hosted OFF the CamStack mirror.
|
|
12934
|
+
* A format on the mirror leaves it unset: its revision (the sha256 of its
|
|
12935
|
+
* weight file) comes from the downloader's generated table, kept in step
|
|
12936
|
+
* with the mirror by `scripts/check-hosted-model-revisions.ts` (D744). A
|
|
12937
|
+
* node records the revision it downloaded next to the file
|
|
12936
12938
|
* (`<file>.revision`); a copy with no record or a different one is stale
|
|
12937
|
-
*
|
|
12938
|
-
*
|
|
12939
|
+
* unless its weight file hashes to the revision, and a stale copy is
|
|
12940
|
+
* downloaded again, the old one serving until the new one is complete. No
|
|
12941
|
+
* revision at all ⇒ a file on disk is current, whatever it holds (D743).
|
|
12939
12942
|
*/
|
|
12940
12943
|
revision: string().min(1).optional()
|
|
12941
12944
|
});
|
|
12942
12945
|
/**
|
|
12946
|
+
* What a node holds for one (model, format) (D746). `current` is a complete
|
|
12947
|
+
* copy at its catalog revision — exactly what `downloaded: true` means.
|
|
12948
|
+
* `stale` is bytes on disk that are not (yet) proven current under D743/D744:
|
|
12949
|
+
* no or a different revision record, or a missing sibling. `missing` is no
|
|
12950
|
+
* copy. `downloaded` alone folds `stale` into "not downloaded", which hid
|
|
12951
|
+
* reclaimable bytes and a copy about to be replaced.
|
|
12952
|
+
*/
|
|
12953
|
+
var ModelOnDiskStateSchema = _enum([
|
|
12954
|
+
"current",
|
|
12955
|
+
"stale",
|
|
12956
|
+
"missing"
|
|
12957
|
+
]);
|
|
12958
|
+
/**
|
|
12959
|
+
* The numeric precision of one format's BUILD (D746) — reported only when the
|
|
12960
|
+
* build states it (file-name token, an INT8 variant, an EdgeTPU compile, a
|
|
12961
|
+
* CamStack Core ML export). Absent means "not stated", never "fp32".
|
|
12962
|
+
*/
|
|
12963
|
+
var ModelFormatPrecisionSchema = _enum([
|
|
12964
|
+
"fp32",
|
|
12965
|
+
"fp16",
|
|
12966
|
+
"int8"
|
|
12967
|
+
]);
|
|
12968
|
+
/**
|
|
12969
|
+
* One format of one model as a node's `pipelineExecutor.getSchema` reports it.
|
|
12970
|
+
* `onDisk` / `precision` are optional for version skew: a runner that predates
|
|
12971
|
+
* them omits them, and a reader falls back to `downloaded`.
|
|
12972
|
+
*/
|
|
12973
|
+
var PipelineModelFormatStatusSchema = object({
|
|
12974
|
+
downloaded: boolean(),
|
|
12975
|
+
sizeMB: number(),
|
|
12976
|
+
onDisk: ModelOnDiskStateSchema.optional(),
|
|
12977
|
+
precision: ModelFormatPrecisionSchema.optional()
|
|
12978
|
+
});
|
|
12979
|
+
/**
|
|
12943
12980
|
* Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
|
|
12944
12981
|
* The downloader fetches from `url` and saves to `{modelsDir}/{filename}`.
|
|
12945
12982
|
*/
|
|
@@ -26536,7 +26573,7 @@ var FrameRefSchema = object({
|
|
|
26536
26573
|
timestamp: number(),
|
|
26537
26574
|
capturedAt: number().optional()
|
|
26538
26575
|
});
|
|
26539
|
-
var ModelFormatSchema$
|
|
26576
|
+
var ModelFormatSchema$2 = _enum([
|
|
26540
26577
|
"onnx",
|
|
26541
26578
|
"coreml",
|
|
26542
26579
|
"openvino",
|
|
@@ -26554,7 +26591,7 @@ var PipelineSlotSchema = _enum([
|
|
|
26554
26591
|
var PipelineEngineChoiceSchema = object({
|
|
26555
26592
|
runtime: literal("python"),
|
|
26556
26593
|
backend: string(),
|
|
26557
|
-
format: ModelFormatSchema$
|
|
26594
|
+
format: ModelFormatSchema$2,
|
|
26558
26595
|
device: string().optional()
|
|
26559
26596
|
});
|
|
26560
26597
|
/**
|
|
@@ -26611,10 +26648,7 @@ var PipelineTemplateSchema$1 = object({
|
|
|
26611
26648
|
var PipelineModelOptionSchema = object({
|
|
26612
26649
|
id: string(),
|
|
26613
26650
|
name: string(),
|
|
26614
|
-
formats: record(string(),
|
|
26615
|
-
downloaded: boolean(),
|
|
26616
|
-
sizeMB: number()
|
|
26617
|
-
})),
|
|
26651
|
+
formats: record(string(), PipelineModelFormatStatusSchema),
|
|
26618
26652
|
group: ModelVariantGroupSchema.optional(),
|
|
26619
26653
|
legacy: boolean().optional(),
|
|
26620
26654
|
provider: ModelProviderIdSchema.optional(),
|
|
@@ -26829,6 +26863,32 @@ var pipelineExecutorCapability = {
|
|
|
26829
26863
|
auth: "admin"
|
|
26830
26864
|
}),
|
|
26831
26865
|
/**
|
|
26866
|
+
* Best settings (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
|
|
26867
|
+
* the object-detection root, and their binding keys) stored in THIS node's
|
|
26868
|
+
* per-camera detector settings — and, unless `dryRun`, remove them so the
|
|
26869
|
+
* running model's own defaults apply. Every other key of a camera's store
|
|
26870
|
+
* is kept. `nodeId` is the ROUTING key. `deviceIds` absent ⇒ every camera
|
|
26871
|
+
* with a store. A camera whose store could not be read is `refused`, never
|
|
26872
|
+
* reported as clean.
|
|
26873
|
+
*/
|
|
26874
|
+
clearModelBoundDeviceOverrides: method(object({
|
|
26875
|
+
nodeId: string(),
|
|
26876
|
+
deviceIds: array(number()).readonly().optional(),
|
|
26877
|
+
dryRun: boolean()
|
|
26878
|
+
}), object({
|
|
26879
|
+
entries: array(object({
|
|
26880
|
+
deviceId: number(),
|
|
26881
|
+
keys: array(string()).readonly()
|
|
26882
|
+
})).readonly(),
|
|
26883
|
+
refused: array(object({
|
|
26884
|
+
deviceId: number(),
|
|
26885
|
+
reason: string()
|
|
26886
|
+
})).readonly()
|
|
26887
|
+
}), {
|
|
26888
|
+
kind: "mutation",
|
|
26889
|
+
auth: "admin"
|
|
26890
|
+
}),
|
|
26891
|
+
/**
|
|
26832
26892
|
* Which of THIS node's inference devices the executor currently refuses,
|
|
26833
26893
|
* and why. `nodeId` is the ROUTING key (stripped by the generated router).
|
|
26834
26894
|
*
|
|
@@ -26923,12 +26983,12 @@ var pipelineExecutorCapability = {
|
|
|
26923
26983
|
downloadModel: method(object({
|
|
26924
26984
|
addonId: string(),
|
|
26925
26985
|
modelId: string(),
|
|
26926
|
-
format: ModelFormatSchema$
|
|
26986
|
+
format: ModelFormatSchema$2
|
|
26927
26987
|
}), DownloadModelResultSchema, { kind: "mutation" }),
|
|
26928
26988
|
deleteModel: method(object({
|
|
26929
26989
|
addonId: string(),
|
|
26930
26990
|
modelId: string(),
|
|
26931
|
-
format: ModelFormatSchema$
|
|
26991
|
+
format: ModelFormatSchema$2
|
|
26932
26992
|
}), object({ success: literal(true) }), { kind: "mutation" }),
|
|
26933
26993
|
/**
|
|
26934
26994
|
* Stateless single-frame execution. Callers (runner, benchmark) pass
|
|
@@ -27174,6 +27234,204 @@ var pipelineExecutorCapability = {
|
|
|
27174
27234
|
getDetectionConfigSchema: method(_void(), ConfigUISchemaNullableBridge)
|
|
27175
27235
|
}
|
|
27176
27236
|
};
|
|
27237
|
+
/**
|
|
27238
|
+
* The wire shapes of the Best settings plan and apply (D745), used by the
|
|
27239
|
+
* `pipeline-orchestrator` cap. The recommender's own types
|
|
27240
|
+
* (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
|
|
27241
|
+
* schemas are what crosses the cap boundary.
|
|
27242
|
+
*/
|
|
27243
|
+
var ModelFormatSchema$1 = _enum(MODEL_FORMATS);
|
|
27244
|
+
var HardwareClassIdSchema = _enum([
|
|
27245
|
+
"intel-core-ultra",
|
|
27246
|
+
"intel-n-series",
|
|
27247
|
+
"apple-m-base",
|
|
27248
|
+
"apple-m-pro",
|
|
27249
|
+
"unknown"
|
|
27250
|
+
]);
|
|
27251
|
+
var AcceleratorKindSchema = _enum([
|
|
27252
|
+
"intel-npu",
|
|
27253
|
+
"intel-igpu",
|
|
27254
|
+
"x86-cpu",
|
|
27255
|
+
"arm-cpu",
|
|
27256
|
+
"apple-ane",
|
|
27257
|
+
"coral"
|
|
27258
|
+
]);
|
|
27259
|
+
var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
27260
|
+
object({
|
|
27261
|
+
kind: literal("fits"),
|
|
27262
|
+
utilisation: number()
|
|
27263
|
+
}),
|
|
27264
|
+
object({
|
|
27265
|
+
kind: literal("tie-faster"),
|
|
27266
|
+
over: string(),
|
|
27267
|
+
recallDelta: number()
|
|
27268
|
+
}),
|
|
27269
|
+
object({
|
|
27270
|
+
kind: literal("stepped-down"),
|
|
27271
|
+
from: string(),
|
|
27272
|
+
to: string(),
|
|
27273
|
+
limitedBy: string()
|
|
27274
|
+
}),
|
|
27275
|
+
object({
|
|
27276
|
+
kind: literal("no-fit-lightest"),
|
|
27277
|
+
utilisation: number()
|
|
27278
|
+
}),
|
|
27279
|
+
object({
|
|
27280
|
+
kind: literal("derived-latency"),
|
|
27281
|
+
modelId: string()
|
|
27282
|
+
}),
|
|
27283
|
+
object({
|
|
27284
|
+
kind: literal("estimated-load"),
|
|
27285
|
+
observedForMs: number().nullable()
|
|
27286
|
+
}),
|
|
27287
|
+
object({ kind: literal("cpu-device") }),
|
|
27288
|
+
object({ kind: literal("coral-untouched") }),
|
|
27289
|
+
object({ kind: literal("device-disabled") }),
|
|
27290
|
+
object({ kind: literal("device-unavailable") }),
|
|
27291
|
+
object({ kind: literal("node-offline") }),
|
|
27292
|
+
object({ kind: literal("no-hardware-facts") }),
|
|
27293
|
+
object({
|
|
27294
|
+
kind: literal("no-measured-data"),
|
|
27295
|
+
hardwareClass: HardwareClassIdSchema
|
|
27296
|
+
}),
|
|
27297
|
+
object({
|
|
27298
|
+
kind: literal("no-family-build"),
|
|
27299
|
+
format: ModelFormatSchema$1
|
|
27300
|
+
})
|
|
27301
|
+
]);
|
|
27302
|
+
var DeviceDemandSchema = object({
|
|
27303
|
+
nodeId: string(),
|
|
27304
|
+
deviceKey: string(),
|
|
27305
|
+
demandFps: number(),
|
|
27306
|
+
maxCameraFps: number(),
|
|
27307
|
+
alwaysOnCameras: number(),
|
|
27308
|
+
onMotionSessions: number(),
|
|
27309
|
+
onMotionSource: _enum([
|
|
27310
|
+
"observed-24h",
|
|
27311
|
+
"estimate",
|
|
27312
|
+
"none"
|
|
27313
|
+
]),
|
|
27314
|
+
observedForMs: number().nullable()
|
|
27315
|
+
});
|
|
27316
|
+
var DeviceModelChoiceSchema = object({
|
|
27317
|
+
modelId: string(),
|
|
27318
|
+
p50Ms: number(),
|
|
27319
|
+
fps: number(),
|
|
27320
|
+
measured: boolean(),
|
|
27321
|
+
utilisation: number(),
|
|
27322
|
+
personRecall: number()
|
|
27323
|
+
});
|
|
27324
|
+
var DeviceRecommendationSchema = object({
|
|
27325
|
+
deviceKey: string(),
|
|
27326
|
+
accelerator: AcceleratorKindSchema.nullable(),
|
|
27327
|
+
enabled: boolean(),
|
|
27328
|
+
available: boolean(),
|
|
27329
|
+
demand: DeviceDemandSchema.nullable(),
|
|
27330
|
+
chosen: DeviceModelChoiceSchema.nullable(),
|
|
27331
|
+
reasons: array(RecommendationReasonSchema).readonly()
|
|
27332
|
+
});
|
|
27333
|
+
var NodeRecommendationSchema = object({
|
|
27334
|
+
nodeId: string(),
|
|
27335
|
+
reachable: boolean(),
|
|
27336
|
+
hardwareClass: HardwareClassIdSchema.nullable(),
|
|
27337
|
+
cpuModel: string().nullable(),
|
|
27338
|
+
skipped: boolean(),
|
|
27339
|
+
acceleratorModelId: string().nullable(),
|
|
27340
|
+
devices: array(DeviceRecommendationSchema).readonly(),
|
|
27341
|
+
reasons: array(RecommendationReasonSchema).readonly()
|
|
27342
|
+
});
|
|
27343
|
+
var ModelPinChangeSchema = object({
|
|
27344
|
+
stepId: string(),
|
|
27345
|
+
before: string().nullable(),
|
|
27346
|
+
after: string().nullable()
|
|
27347
|
+
});
|
|
27348
|
+
var NodeDeviceChangeSchema = object({
|
|
27349
|
+
nodeId: string(),
|
|
27350
|
+
deviceKey: string(),
|
|
27351
|
+
madeExplicit: boolean(),
|
|
27352
|
+
modelPins: array(ModelPinChangeSchema).readonly(),
|
|
27353
|
+
thresholds: array(object({
|
|
27354
|
+
stepId: string(),
|
|
27355
|
+
keys: array(string()).readonly()
|
|
27356
|
+
})).readonly()
|
|
27357
|
+
});
|
|
27358
|
+
var CameraOverrideClearSchema = object({
|
|
27359
|
+
deviceId: number(),
|
|
27360
|
+
source: _enum(["step-override", "wholesale"]),
|
|
27361
|
+
nodeId: string(),
|
|
27362
|
+
deviceKey: string().nullable(),
|
|
27363
|
+
stepId: string(),
|
|
27364
|
+
modelIdBefore: string().nullable(),
|
|
27365
|
+
keys: array(string()).readonly()
|
|
27366
|
+
});
|
|
27367
|
+
var DetectorStoreClearSchema = object({
|
|
27368
|
+
deviceId: number(),
|
|
27369
|
+
keys: array(string()).readonly()
|
|
27370
|
+
});
|
|
27371
|
+
var BestSettingsWarningSchema = discriminatedUnion("kind", [
|
|
27372
|
+
object({
|
|
27373
|
+
kind: literal("detector-store-cluster-wide"),
|
|
27374
|
+
skippedNodes: array(string()).readonly()
|
|
27375
|
+
}),
|
|
27376
|
+
object({
|
|
27377
|
+
kind: literal("detector-store-unreadable"),
|
|
27378
|
+
error: string()
|
|
27379
|
+
}),
|
|
27380
|
+
object({
|
|
27381
|
+
kind: literal("coral-enabled"),
|
|
27382
|
+
nodeId: string(),
|
|
27383
|
+
deviceKey: string()
|
|
27384
|
+
})
|
|
27385
|
+
]);
|
|
27386
|
+
var BestSettingsOptionsSchema = object({
|
|
27387
|
+
/** Share of each accelerator's throughput kept free (0.3–0.5). */
|
|
27388
|
+
headroom: number().min(.3).max(.5).default(.4) });
|
|
27389
|
+
var BestSettingsPlanSchema = object({
|
|
27390
|
+
/** Hash of everything the apply will write — the apply refuses a different one. */
|
|
27391
|
+
planHash: string(),
|
|
27392
|
+
family: literal("yolov9"),
|
|
27393
|
+
headroom: number(),
|
|
27394
|
+
generatedAt: number(),
|
|
27395
|
+
nodes: array(NodeRecommendationSchema).readonly(),
|
|
27396
|
+
nodeChanges: array(NodeDeviceChangeSchema).readonly(),
|
|
27397
|
+
cameraClears: array(CameraOverrideClearSchema).readonly(),
|
|
27398
|
+
detectorStoreClears: array(DetectorStoreClearSchema).readonly(),
|
|
27399
|
+
warnings: array(BestSettingsWarningSchema).readonly()
|
|
27400
|
+
});
|
|
27401
|
+
var BestSettingsApplyInputSchema = object({
|
|
27402
|
+
planHash: string(),
|
|
27403
|
+
headroom: number().min(.3).max(.5).default(.4)
|
|
27404
|
+
});
|
|
27405
|
+
var BestSettingsPhaseResultSchema = object({
|
|
27406
|
+
phase: _enum([
|
|
27407
|
+
"download",
|
|
27408
|
+
"camera-overrides",
|
|
27409
|
+
"detector-thresholds",
|
|
27410
|
+
"node-models",
|
|
27411
|
+
"redispatch"
|
|
27412
|
+
]),
|
|
27413
|
+
ok: boolean(),
|
|
27414
|
+
detail: string()
|
|
27415
|
+
});
|
|
27416
|
+
var BestSettingsApplyResultSchema = discriminatedUnion("kind", [
|
|
27417
|
+
object({
|
|
27418
|
+
kind: literal("applied"),
|
|
27419
|
+
planHash: string(),
|
|
27420
|
+
phases: array(BestSettingsPhaseResultSchema).readonly()
|
|
27421
|
+
}),
|
|
27422
|
+
object({
|
|
27423
|
+
kind: literal("aborted"),
|
|
27424
|
+
phases: array(BestSettingsPhaseResultSchema).readonly()
|
|
27425
|
+
}),
|
|
27426
|
+
object({
|
|
27427
|
+
kind: literal("stale"),
|
|
27428
|
+
plan: BestSettingsPlanSchema
|
|
27429
|
+
}),
|
|
27430
|
+
object({
|
|
27431
|
+
kind: literal("refused"),
|
|
27432
|
+
reason: _enum(["apply-in-progress"])
|
|
27433
|
+
})
|
|
27434
|
+
]);
|
|
27177
27435
|
object({
|
|
27178
27436
|
activeCameras: number(),
|
|
27179
27437
|
throttledCameras: number(),
|
|
@@ -29092,6 +29350,9 @@ method(object({
|
|
|
29092
29350
|
}), {
|
|
29093
29351
|
kind: "mutation",
|
|
29094
29352
|
auth: "admin"
|
|
29353
|
+
}), method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }), method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
|
|
29354
|
+
kind: "mutation",
|
|
29355
|
+
auth: "admin"
|
|
29095
29356
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
29096
29357
|
deviceId: number(),
|
|
29097
29358
|
addonId: string(),
|
|
@@ -41165,7 +41426,8 @@ Object.freeze({
|
|
|
41165
41426
|
vehicle: .65,
|
|
41166
41427
|
animal: .65
|
|
41167
41428
|
});
|
|
41168
|
-
var
|
|
41429
|
+
var HF_REPO = "camstack/camstack-models";
|
|
41430
|
+
`${HF_REPO}`;
|
|
41169
41431
|
/**
|
|
41170
41432
|
* Accessory device helpers — shared across drivers.
|
|
41171
41433
|
*
|
|
@@ -45702,6 +45964,12 @@ Object.freeze({
|
|
|
45702
45964
|
addonId: null,
|
|
45703
45965
|
access: "delete"
|
|
45704
45966
|
},
|
|
45967
|
+
"pipelineExecutor.clearModelBoundDeviceOverrides": {
|
|
45968
|
+
capName: "pipeline-executor",
|
|
45969
|
+
capScope: "system",
|
|
45970
|
+
addonId: null,
|
|
45971
|
+
access: "delete"
|
|
45972
|
+
},
|
|
45705
45973
|
"pipelineExecutor.deleteModel": {
|
|
45706
45974
|
capName: "pipeline-executor",
|
|
45707
45975
|
capScope: "system",
|
|
@@ -45918,6 +46186,12 @@ Object.freeze({
|
|
|
45918
46186
|
addonId: null,
|
|
45919
46187
|
access: "view"
|
|
45920
46188
|
},
|
|
46189
|
+
"pipelineOrchestrator.applyBestSettings": {
|
|
46190
|
+
capName: "pipeline-orchestrator",
|
|
46191
|
+
capScope: "system",
|
|
46192
|
+
addonId: null,
|
|
46193
|
+
access: "create"
|
|
46194
|
+
},
|
|
45921
46195
|
"pipelineOrchestrator.applyDeviceSettingsPatch": {
|
|
45922
46196
|
capName: "pipeline-orchestrator",
|
|
45923
46197
|
capScope: "system",
|
|
@@ -46092,6 +46366,12 @@ Object.freeze({
|
|
|
46092
46366
|
addonId: null,
|
|
46093
46367
|
access: "create"
|
|
46094
46368
|
},
|
|
46369
|
+
"pipelineOrchestrator.planBestSettings": {
|
|
46370
|
+
capName: "pipeline-orchestrator",
|
|
46371
|
+
capScope: "system",
|
|
46372
|
+
addonId: null,
|
|
46373
|
+
access: "view"
|
|
46374
|
+
},
|
|
46095
46375
|
"pipelineOrchestrator.rebalance": {
|
|
46096
46376
|
capName: "pipeline-orchestrator",
|
|
46097
46377
|
capScope: "system",
|
|
@@ -51514,6 +51794,11 @@ Object.freeze({
|
|
|
51514
51794
|
form: "single",
|
|
51515
51795
|
optional: false
|
|
51516
51796
|
}],
|
|
51797
|
+
"pipelineExecutor.clearModelBoundDeviceOverrides": [{
|
|
51798
|
+
name: "deviceIds",
|
|
51799
|
+
form: "array",
|
|
51800
|
+
optional: true
|
|
51801
|
+
}],
|
|
51517
51802
|
"pipelineExecutor.runPipeline": [{
|
|
51518
51803
|
name: "deviceId",
|
|
51519
51804
|
form: "single",
|
|
@@ -53420,41 +53705,6 @@ function stepModelRunsOnFormat(models, modelId, format) {
|
|
|
53420
53705
|
}
|
|
53421
53706
|
return models.some((m) => m.legacy !== true && hasBuild(m, format));
|
|
53422
53707
|
}
|
|
53423
|
-
/**
|
|
53424
|
-
* Model-bound step settings (D738): an operator value that is only meaningful
|
|
53425
|
-
* for ONE model, stored together with that model's id.
|
|
53426
|
-
*
|
|
53427
|
-
* The per-class confidence floors are the case it exists for. A score is a
|
|
53428
|
-
* property of one detector's output scale — on this hub the median score of a
|
|
53429
|
-
* correct person was 0.78 on `yolov9m-320-int8`, 0.68 on `yolo26s-320-int8`,
|
|
53430
|
-
* 0.40 on `yolo26n-320-int8` and 0.89 on `yolo26s` (640) — so a floor tuned on
|
|
53431
|
-
* one model is wrong on the next. The DEFAULT of such a field belongs to the
|
|
53432
|
-
* model (the catalog entry); an operator OVERRIDE belongs to the model it was
|
|
53433
|
-
* made for.
|
|
53434
|
-
*
|
|
53435
|
-
* The binding is checked at READ time against the model that RUNS, never
|
|
53436
|
-
* enforced by a write on the model-change path: a model can change without any
|
|
53437
|
-
* operator write at all (an unpinned root follows the elected device's
|
|
53438
|
-
* hardware-aware default, D736), and an event-driven reset could be dropped
|
|
53439
|
-
* (events are telemetry, D8/D11). So:
|
|
53440
|
-
*
|
|
53441
|
-
* effective = override when the stored binding names the running model
|
|
53442
|
-
* | override when no binding is stored (a legacy / programmatic
|
|
53443
|
-
* value — it applies to whatever runs, as before D738)
|
|
53444
|
-
* | the running model's default, when it declares one
|
|
53445
|
-
* | the field's global default.
|
|
53446
|
-
*
|
|
53447
|
-
* Storage shape: the value stays a plain number under its own key (every
|
|
53448
|
-
* reader of the raw settings bag keeps working), and the binding is a SIBLING
|
|
53449
|
-
* key, {@link modelBindingKey}. Both are flat so the shallow per-key merges of
|
|
53450
|
-
* the settings layers (node fold, camera override) carry a value and its
|
|
53451
|
-
* binding together whenever one layer writes both — which every writer here
|
|
53452
|
-
* does.
|
|
53453
|
-
*
|
|
53454
|
-
* Lives in the bare `@camstack/types` entry, which every addon bundles, so the
|
|
53455
|
-
* runner (`addon-pipeline`) and the editors (`ui-library`, `addon-admin-ui`)
|
|
53456
|
-
* apply the same rule.
|
|
53457
|
-
*/
|
|
53458
53708
|
/** Suffix of the sibling key that names the model a stored value was made for. */
|
|
53459
53709
|
var MODEL_BINDING_SUFFIX = "ModelId";
|
|
53460
53710
|
/** `minConfidencePerson` → `minConfidencePersonModelId`. */
|
|
@@ -53514,6 +53764,17 @@ function applyModelBoundSettings(settings, boundKeys, runningModelId) {
|
|
|
53514
53764
|
}
|
|
53515
53765
|
return out;
|
|
53516
53766
|
}
|
|
53767
|
+
/**
|
|
53768
|
+
* The keys of every `bindsToModel` field of a step's config schema, groups
|
|
53769
|
+
* flattened (D738). One definition for the runner (which applies the binding)
|
|
53770
|
+
* and the orchestrator's Best settings (which clears those overrides, D745).
|
|
53771
|
+
*/
|
|
53772
|
+
function collectModelBoundKeys(fields) {
|
|
53773
|
+
return fields.flatMap((field) => {
|
|
53774
|
+
if (field.type === "group") return collectModelBoundKeys(field.fields);
|
|
53775
|
+
return "key" in field && "bindsToModel" in field && field.bindsToModel === true ? [field.key] : [];
|
|
53776
|
+
});
|
|
53777
|
+
}
|
|
53517
53778
|
/** Side of the square, as a multiple of the face box's longer side. */
|
|
53518
53779
|
var ROOT_FACE_REFINE_SCALE = 1.6;
|
|
53519
53780
|
/**
|
|
@@ -54948,10 +55209,10 @@ Object.defineProperty(exports, "G711_SCALE_CORRECTION_DB", {
|
|
|
54948
55209
|
return G711_SCALE_CORRECTION_DB;
|
|
54949
55210
|
}
|
|
54950
55211
|
});
|
|
54951
|
-
Object.defineProperty(exports, "
|
|
55212
|
+
Object.defineProperty(exports, "HF_REPO", {
|
|
54952
55213
|
enumerable: true,
|
|
54953
55214
|
get: function() {
|
|
54954
|
-
return
|
|
55215
|
+
return HF_REPO;
|
|
54955
55216
|
}
|
|
54956
55217
|
});
|
|
54957
55218
|
Object.defineProperty(exports, "LABEL_SUPPLY_MACRO", {
|
|
@@ -55158,6 +55419,12 @@ Object.defineProperty(exports, "clipExportFailureOf", {
|
|
|
55158
55419
|
return clipExportFailureOf;
|
|
55159
55420
|
}
|
|
55160
55421
|
});
|
|
55422
|
+
Object.defineProperty(exports, "collectModelBoundKeys", {
|
|
55423
|
+
enumerable: true,
|
|
55424
|
+
get: function() {
|
|
55425
|
+
return collectModelBoundKeys;
|
|
55426
|
+
}
|
|
55427
|
+
});
|
|
55161
55428
|
Object.defineProperty(exports, "containingParentIndex", {
|
|
55162
55429
|
enumerable: true,
|
|
55163
55430
|
get: function() {
|
|
@@ -55464,6 +55731,12 @@ Object.defineProperty(exports, "modeMayWrite", {
|
|
|
55464
55731
|
return modeMayWrite;
|
|
55465
55732
|
}
|
|
55466
55733
|
});
|
|
55734
|
+
Object.defineProperty(exports, "modelBindingKey", {
|
|
55735
|
+
enumerable: true,
|
|
55736
|
+
get: function() {
|
|
55737
|
+
return modelBindingKey;
|
|
55738
|
+
}
|
|
55739
|
+
});
|
|
55467
55740
|
Object.defineProperty(exports, "motionDetectionCapability", {
|
|
55468
55741
|
enumerable: true,
|
|
55469
55742
|
get: function() {
|