@camstack/system 1.2.364 → 1.2.366
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-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/addon-utils.d.ts +1 -1
- package/dist/addon-utils.js +3 -1
- package/dist/addon-utils.mjs +2 -2
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{child-cap-dispatch-B79ITdeA.js → child-cap-dispatch-D9uoEW2A.js} +1 -1
- package/dist/{child-cap-dispatch-CtBHqm2J.mjs → child-cap-dispatch-tHbRfy_7.mjs} +1 -1
- package/dist/{composition-sources-CNVBIV_9.js → composition-sources-AHfMboGi.js} +1 -1
- package/dist/{composition-sources-Dj84elbu.mjs → composition-sources-GjJ1QxMC.mjs} +1 -1
- package/dist/{dist-C-IdBSWx.mjs → dist-BUfYKaXx.mjs} +321 -14
- package/dist/{dist-DiScyAO6.js → dist-ub3muPSW.js} +338 -13
- package/dist/download/hosted-model-revisions.d.ts +10 -0
- package/dist/download/model-download-service.d.ts +8 -14
- package/dist/download/model-downloader.d.ts +44 -2
- package/dist/{event-loop-stall-monitor-NFG6boF5.mjs → event-loop-stall-monitor-CPI1xIcd.mjs} +300 -126
- package/dist/{event-loop-stall-monitor-CuTt1wq7.js → event-loop-stall-monitor-j0DRBkuI.js} +317 -125
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -3
- package/dist/index.mjs +4 -4
- package/dist/{retired-settings-keys-CJpnYIp1.js → retired-settings-keys-DNCxYHe1.js} +1 -1
- package/dist/{retired-settings-keys-DIzyi9Jf.mjs → retired-settings-keys-Du41eTrH.mjs} +1 -1
- package/package.json +1 -1
|
@@ -7917,16 +7917,53 @@ var ModelFormatEntrySchema = z.object({
|
|
|
7917
7917
|
/** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
|
|
7918
7918
|
runtimes: z.array(z.enum(["python"])).readonly().optional(),
|
|
7919
7919
|
/**
|
|
7920
|
-
* Content revision of the
|
|
7921
|
-
*
|
|
7922
|
-
*
|
|
7920
|
+
* Content revision of the artefact, for one hosted OFF the CamStack mirror.
|
|
7921
|
+
* A format on the mirror leaves it unset: its revision (the sha256 of its
|
|
7922
|
+
* weight file) comes from the downloader's generated table, kept in step
|
|
7923
|
+
* with the mirror by `scripts/check-hosted-model-revisions.ts` (D744). A
|
|
7924
|
+
* node records the revision it downloaded next to the file
|
|
7923
7925
|
* (`<file>.revision`); a copy with no record or a different one is stale
|
|
7924
|
-
*
|
|
7925
|
-
*
|
|
7926
|
+
* unless its weight file hashes to the revision, and a stale copy is
|
|
7927
|
+
* downloaded again, the old one serving until the new one is complete. No
|
|
7928
|
+
* revision at all ⇒ a file on disk is current, whatever it holds (D743).
|
|
7926
7929
|
*/
|
|
7927
7930
|
revision: z.string().min(1).optional()
|
|
7928
7931
|
});
|
|
7929
7932
|
/**
|
|
7933
|
+
* What a node holds for one (model, format) (D746). `current` is a complete
|
|
7934
|
+
* copy at its catalog revision — exactly what `downloaded: true` means.
|
|
7935
|
+
* `stale` is bytes on disk that are not (yet) proven current under D743/D744:
|
|
7936
|
+
* no or a different revision record, or a missing sibling. `missing` is no
|
|
7937
|
+
* copy. `downloaded` alone folds `stale` into "not downloaded", which hid
|
|
7938
|
+
* reclaimable bytes and a copy about to be replaced.
|
|
7939
|
+
*/
|
|
7940
|
+
var ModelOnDiskStateSchema = z.enum([
|
|
7941
|
+
"current",
|
|
7942
|
+
"stale",
|
|
7943
|
+
"missing"
|
|
7944
|
+
]);
|
|
7945
|
+
/**
|
|
7946
|
+
* The numeric precision of one format's BUILD (D746) — reported only when the
|
|
7947
|
+
* build states it (file-name token, an INT8 variant, an EdgeTPU compile, a
|
|
7948
|
+
* CamStack Core ML export). Absent means "not stated", never "fp32".
|
|
7949
|
+
*/
|
|
7950
|
+
var ModelFormatPrecisionSchema = z.enum([
|
|
7951
|
+
"fp32",
|
|
7952
|
+
"fp16",
|
|
7953
|
+
"int8"
|
|
7954
|
+
]);
|
|
7955
|
+
/**
|
|
7956
|
+
* One format of one model as a node's `pipelineExecutor.getSchema` reports it.
|
|
7957
|
+
* `onDisk` / `precision` are optional for version skew: a runner that predates
|
|
7958
|
+
* them omits them, and a reader falls back to `downloaded`.
|
|
7959
|
+
*/
|
|
7960
|
+
var PipelineModelFormatStatusSchema = z.object({
|
|
7961
|
+
downloaded: z.boolean(),
|
|
7962
|
+
sizeMB: z.number(),
|
|
7963
|
+
onDisk: ModelOnDiskStateSchema.optional(),
|
|
7964
|
+
precision: ModelFormatPrecisionSchema.optional()
|
|
7965
|
+
});
|
|
7966
|
+
/**
|
|
7930
7967
|
* Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
|
|
7931
7968
|
* The downloader fetches from `url` and saves to `{modelsDir}/{filename}`.
|
|
7932
7969
|
*/
|
|
@@ -25966,7 +26003,7 @@ var FrameRefSchema = z.object({
|
|
|
25966
26003
|
timestamp: z.number(),
|
|
25967
26004
|
capturedAt: z.number().optional()
|
|
25968
26005
|
});
|
|
25969
|
-
var ModelFormatSchema$
|
|
26006
|
+
var ModelFormatSchema$2 = z.enum([
|
|
25970
26007
|
"onnx",
|
|
25971
26008
|
"coreml",
|
|
25972
26009
|
"openvino",
|
|
@@ -25984,7 +26021,7 @@ var PipelineSlotSchema = z.enum([
|
|
|
25984
26021
|
var PipelineEngineChoiceSchema = z.object({
|
|
25985
26022
|
runtime: z.literal("python"),
|
|
25986
26023
|
backend: z.string(),
|
|
25987
|
-
format: ModelFormatSchema$
|
|
26024
|
+
format: ModelFormatSchema$2,
|
|
25988
26025
|
device: z.string().optional()
|
|
25989
26026
|
});
|
|
25990
26027
|
/**
|
|
@@ -26042,10 +26079,7 @@ var PipelineTemplateSchema$1 = z.object({
|
|
|
26042
26079
|
var PipelineModelOptionSchema = z.object({
|
|
26043
26080
|
id: z.string(),
|
|
26044
26081
|
name: z.string(),
|
|
26045
|
-
formats: z.record(z.string(),
|
|
26046
|
-
downloaded: z.boolean(),
|
|
26047
|
-
sizeMB: z.number()
|
|
26048
|
-
})),
|
|
26082
|
+
formats: z.record(z.string(), PipelineModelFormatStatusSchema),
|
|
26049
26083
|
group: ModelVariantGroupSchema.optional(),
|
|
26050
26084
|
legacy: z.boolean().optional(),
|
|
26051
26085
|
provider: ModelProviderIdSchema.optional(),
|
|
@@ -26260,6 +26294,32 @@ var pipelineExecutorCapability = {
|
|
|
26260
26294
|
auth: "admin"
|
|
26261
26295
|
}),
|
|
26262
26296
|
/**
|
|
26297
|
+
* Best settings (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
|
|
26298
|
+
* the object-detection root, and their binding keys) stored in THIS node's
|
|
26299
|
+
* per-camera detector settings — and, unless `dryRun`, remove them so the
|
|
26300
|
+
* running model's own defaults apply. Every other key of a camera's store
|
|
26301
|
+
* is kept. `nodeId` is the ROUTING key. `deviceIds` absent ⇒ every camera
|
|
26302
|
+
* with a store. A camera whose store could not be read is `refused`, never
|
|
26303
|
+
* reported as clean.
|
|
26304
|
+
*/
|
|
26305
|
+
clearModelBoundDeviceOverrides: method(z.object({
|
|
26306
|
+
nodeId: z.string(),
|
|
26307
|
+
deviceIds: z.array(z.number()).readonly().optional(),
|
|
26308
|
+
dryRun: z.boolean()
|
|
26309
|
+
}), z.object({
|
|
26310
|
+
entries: z.array(z.object({
|
|
26311
|
+
deviceId: z.number(),
|
|
26312
|
+
keys: z.array(z.string()).readonly()
|
|
26313
|
+
})).readonly(),
|
|
26314
|
+
refused: z.array(z.object({
|
|
26315
|
+
deviceId: z.number(),
|
|
26316
|
+
reason: z.string()
|
|
26317
|
+
})).readonly()
|
|
26318
|
+
}), {
|
|
26319
|
+
kind: "mutation",
|
|
26320
|
+
auth: "admin"
|
|
26321
|
+
}),
|
|
26322
|
+
/**
|
|
26263
26323
|
* Which of THIS node's inference devices the executor currently refuses,
|
|
26264
26324
|
* and why. `nodeId` is the ROUTING key (stripped by the generated router).
|
|
26265
26325
|
*
|
|
@@ -26354,12 +26414,12 @@ var pipelineExecutorCapability = {
|
|
|
26354
26414
|
downloadModel: method(z.object({
|
|
26355
26415
|
addonId: z.string(),
|
|
26356
26416
|
modelId: z.string(),
|
|
26357
|
-
format: ModelFormatSchema$
|
|
26417
|
+
format: ModelFormatSchema$2
|
|
26358
26418
|
}), DownloadModelResultSchema, { kind: "mutation" }),
|
|
26359
26419
|
deleteModel: method(z.object({
|
|
26360
26420
|
addonId: z.string(),
|
|
26361
26421
|
modelId: z.string(),
|
|
26362
|
-
format: ModelFormatSchema$
|
|
26422
|
+
format: ModelFormatSchema$2
|
|
26363
26423
|
}), z.object({ success: z.literal(true) }), { kind: "mutation" }),
|
|
26364
26424
|
/**
|
|
26365
26425
|
* Stateless single-frame execution. Callers (runner, benchmark) pass
|
|
@@ -26605,6 +26665,204 @@ var pipelineExecutorCapability = {
|
|
|
26605
26665
|
getDetectionConfigSchema: method(z.void(), ConfigUISchemaNullableBridge)
|
|
26606
26666
|
}
|
|
26607
26667
|
};
|
|
26668
|
+
/**
|
|
26669
|
+
* The wire shapes of the Best settings plan and apply (D745), used by the
|
|
26670
|
+
* `pipeline-orchestrator` cap. The recommender's own types
|
|
26671
|
+
* (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
|
|
26672
|
+
* schemas are what crosses the cap boundary.
|
|
26673
|
+
*/
|
|
26674
|
+
var ModelFormatSchema$1 = z.enum(MODEL_FORMATS);
|
|
26675
|
+
var HardwareClassIdSchema = z.enum([
|
|
26676
|
+
"intel-core-ultra",
|
|
26677
|
+
"intel-n-series",
|
|
26678
|
+
"apple-m-base",
|
|
26679
|
+
"apple-m-pro",
|
|
26680
|
+
"unknown"
|
|
26681
|
+
]);
|
|
26682
|
+
var AcceleratorKindSchema = z.enum([
|
|
26683
|
+
"intel-npu",
|
|
26684
|
+
"intel-igpu",
|
|
26685
|
+
"x86-cpu",
|
|
26686
|
+
"arm-cpu",
|
|
26687
|
+
"apple-ane",
|
|
26688
|
+
"coral"
|
|
26689
|
+
]);
|
|
26690
|
+
var RecommendationReasonSchema = z.discriminatedUnion("kind", [
|
|
26691
|
+
z.object({
|
|
26692
|
+
kind: z.literal("fits"),
|
|
26693
|
+
utilisation: z.number()
|
|
26694
|
+
}),
|
|
26695
|
+
z.object({
|
|
26696
|
+
kind: z.literal("tie-faster"),
|
|
26697
|
+
over: z.string(),
|
|
26698
|
+
recallDelta: z.number()
|
|
26699
|
+
}),
|
|
26700
|
+
z.object({
|
|
26701
|
+
kind: z.literal("stepped-down"),
|
|
26702
|
+
from: z.string(),
|
|
26703
|
+
to: z.string(),
|
|
26704
|
+
limitedBy: z.string()
|
|
26705
|
+
}),
|
|
26706
|
+
z.object({
|
|
26707
|
+
kind: z.literal("no-fit-lightest"),
|
|
26708
|
+
utilisation: z.number()
|
|
26709
|
+
}),
|
|
26710
|
+
z.object({
|
|
26711
|
+
kind: z.literal("derived-latency"),
|
|
26712
|
+
modelId: z.string()
|
|
26713
|
+
}),
|
|
26714
|
+
z.object({
|
|
26715
|
+
kind: z.literal("estimated-load"),
|
|
26716
|
+
observedForMs: z.number().nullable()
|
|
26717
|
+
}),
|
|
26718
|
+
z.object({ kind: z.literal("cpu-device") }),
|
|
26719
|
+
z.object({ kind: z.literal("coral-untouched") }),
|
|
26720
|
+
z.object({ kind: z.literal("device-disabled") }),
|
|
26721
|
+
z.object({ kind: z.literal("device-unavailable") }),
|
|
26722
|
+
z.object({ kind: z.literal("node-offline") }),
|
|
26723
|
+
z.object({ kind: z.literal("no-hardware-facts") }),
|
|
26724
|
+
z.object({
|
|
26725
|
+
kind: z.literal("no-measured-data"),
|
|
26726
|
+
hardwareClass: HardwareClassIdSchema
|
|
26727
|
+
}),
|
|
26728
|
+
z.object({
|
|
26729
|
+
kind: z.literal("no-family-build"),
|
|
26730
|
+
format: ModelFormatSchema$1
|
|
26731
|
+
})
|
|
26732
|
+
]);
|
|
26733
|
+
var DeviceDemandSchema = z.object({
|
|
26734
|
+
nodeId: z.string(),
|
|
26735
|
+
deviceKey: z.string(),
|
|
26736
|
+
demandFps: z.number(),
|
|
26737
|
+
maxCameraFps: z.number(),
|
|
26738
|
+
alwaysOnCameras: z.number(),
|
|
26739
|
+
onMotionSessions: z.number(),
|
|
26740
|
+
onMotionSource: z.enum([
|
|
26741
|
+
"observed-24h",
|
|
26742
|
+
"estimate",
|
|
26743
|
+
"none"
|
|
26744
|
+
]),
|
|
26745
|
+
observedForMs: z.number().nullable()
|
|
26746
|
+
});
|
|
26747
|
+
var DeviceModelChoiceSchema = z.object({
|
|
26748
|
+
modelId: z.string(),
|
|
26749
|
+
p50Ms: z.number(),
|
|
26750
|
+
fps: z.number(),
|
|
26751
|
+
measured: z.boolean(),
|
|
26752
|
+
utilisation: z.number(),
|
|
26753
|
+
personRecall: z.number()
|
|
26754
|
+
});
|
|
26755
|
+
var DeviceRecommendationSchema = z.object({
|
|
26756
|
+
deviceKey: z.string(),
|
|
26757
|
+
accelerator: AcceleratorKindSchema.nullable(),
|
|
26758
|
+
enabled: z.boolean(),
|
|
26759
|
+
available: z.boolean(),
|
|
26760
|
+
demand: DeviceDemandSchema.nullable(),
|
|
26761
|
+
chosen: DeviceModelChoiceSchema.nullable(),
|
|
26762
|
+
reasons: z.array(RecommendationReasonSchema).readonly()
|
|
26763
|
+
});
|
|
26764
|
+
var NodeRecommendationSchema = z.object({
|
|
26765
|
+
nodeId: z.string(),
|
|
26766
|
+
reachable: z.boolean(),
|
|
26767
|
+
hardwareClass: HardwareClassIdSchema.nullable(),
|
|
26768
|
+
cpuModel: z.string().nullable(),
|
|
26769
|
+
skipped: z.boolean(),
|
|
26770
|
+
acceleratorModelId: z.string().nullable(),
|
|
26771
|
+
devices: z.array(DeviceRecommendationSchema).readonly(),
|
|
26772
|
+
reasons: z.array(RecommendationReasonSchema).readonly()
|
|
26773
|
+
});
|
|
26774
|
+
var ModelPinChangeSchema = z.object({
|
|
26775
|
+
stepId: z.string(),
|
|
26776
|
+
before: z.string().nullable(),
|
|
26777
|
+
after: z.string().nullable()
|
|
26778
|
+
});
|
|
26779
|
+
var NodeDeviceChangeSchema = z.object({
|
|
26780
|
+
nodeId: z.string(),
|
|
26781
|
+
deviceKey: z.string(),
|
|
26782
|
+
madeExplicit: z.boolean(),
|
|
26783
|
+
modelPins: z.array(ModelPinChangeSchema).readonly(),
|
|
26784
|
+
thresholds: z.array(z.object({
|
|
26785
|
+
stepId: z.string(),
|
|
26786
|
+
keys: z.array(z.string()).readonly()
|
|
26787
|
+
})).readonly()
|
|
26788
|
+
});
|
|
26789
|
+
var CameraOverrideClearSchema = z.object({
|
|
26790
|
+
deviceId: z.number(),
|
|
26791
|
+
source: z.enum(["step-override", "wholesale"]),
|
|
26792
|
+
nodeId: z.string(),
|
|
26793
|
+
deviceKey: z.string().nullable(),
|
|
26794
|
+
stepId: z.string(),
|
|
26795
|
+
modelIdBefore: z.string().nullable(),
|
|
26796
|
+
keys: z.array(z.string()).readonly()
|
|
26797
|
+
});
|
|
26798
|
+
var DetectorStoreClearSchema = z.object({
|
|
26799
|
+
deviceId: z.number(),
|
|
26800
|
+
keys: z.array(z.string()).readonly()
|
|
26801
|
+
});
|
|
26802
|
+
var BestSettingsWarningSchema = z.discriminatedUnion("kind", [
|
|
26803
|
+
z.object({
|
|
26804
|
+
kind: z.literal("detector-store-cluster-wide"),
|
|
26805
|
+
skippedNodes: z.array(z.string()).readonly()
|
|
26806
|
+
}),
|
|
26807
|
+
z.object({
|
|
26808
|
+
kind: z.literal("detector-store-unreadable"),
|
|
26809
|
+
error: z.string()
|
|
26810
|
+
}),
|
|
26811
|
+
z.object({
|
|
26812
|
+
kind: z.literal("coral-enabled"),
|
|
26813
|
+
nodeId: z.string(),
|
|
26814
|
+
deviceKey: z.string()
|
|
26815
|
+
})
|
|
26816
|
+
]);
|
|
26817
|
+
var BestSettingsOptionsSchema = z.object({
|
|
26818
|
+
/** Share of each accelerator's throughput kept free (0.3–0.5). */
|
|
26819
|
+
headroom: z.number().min(.3).max(.5).default(.4) });
|
|
26820
|
+
var BestSettingsPlanSchema = z.object({
|
|
26821
|
+
/** Hash of everything the apply will write — the apply refuses a different one. */
|
|
26822
|
+
planHash: z.string(),
|
|
26823
|
+
family: z.literal("yolov9"),
|
|
26824
|
+
headroom: z.number(),
|
|
26825
|
+
generatedAt: z.number(),
|
|
26826
|
+
nodes: z.array(NodeRecommendationSchema).readonly(),
|
|
26827
|
+
nodeChanges: z.array(NodeDeviceChangeSchema).readonly(),
|
|
26828
|
+
cameraClears: z.array(CameraOverrideClearSchema).readonly(),
|
|
26829
|
+
detectorStoreClears: z.array(DetectorStoreClearSchema).readonly(),
|
|
26830
|
+
warnings: z.array(BestSettingsWarningSchema).readonly()
|
|
26831
|
+
});
|
|
26832
|
+
var BestSettingsApplyInputSchema = z.object({
|
|
26833
|
+
planHash: z.string(),
|
|
26834
|
+
headroom: z.number().min(.3).max(.5).default(.4)
|
|
26835
|
+
});
|
|
26836
|
+
var BestSettingsPhaseResultSchema = z.object({
|
|
26837
|
+
phase: z.enum([
|
|
26838
|
+
"download",
|
|
26839
|
+
"camera-overrides",
|
|
26840
|
+
"detector-thresholds",
|
|
26841
|
+
"node-models",
|
|
26842
|
+
"redispatch"
|
|
26843
|
+
]),
|
|
26844
|
+
ok: z.boolean(),
|
|
26845
|
+
detail: z.string()
|
|
26846
|
+
});
|
|
26847
|
+
var BestSettingsApplyResultSchema = z.discriminatedUnion("kind", [
|
|
26848
|
+
z.object({
|
|
26849
|
+
kind: z.literal("applied"),
|
|
26850
|
+
planHash: z.string(),
|
|
26851
|
+
phases: z.array(BestSettingsPhaseResultSchema).readonly()
|
|
26852
|
+
}),
|
|
26853
|
+
z.object({
|
|
26854
|
+
kind: z.literal("aborted"),
|
|
26855
|
+
phases: z.array(BestSettingsPhaseResultSchema).readonly()
|
|
26856
|
+
}),
|
|
26857
|
+
z.object({
|
|
26858
|
+
kind: z.literal("stale"),
|
|
26859
|
+
plan: BestSettingsPlanSchema
|
|
26860
|
+
}),
|
|
26861
|
+
z.object({
|
|
26862
|
+
kind: z.literal("refused"),
|
|
26863
|
+
reason: z.enum(["apply-in-progress"])
|
|
26864
|
+
})
|
|
26865
|
+
]);
|
|
26608
26866
|
z.object({
|
|
26609
26867
|
activeCameras: z.number(),
|
|
26610
26868
|
throttledCameras: z.number(),
|
|
@@ -28825,6 +29083,27 @@ var pipelineOrchestratorCapability = {
|
|
|
28825
29083
|
kind: "mutation",
|
|
28826
29084
|
auth: "admin"
|
|
28827
29085
|
}),
|
|
29086
|
+
/**
|
|
29087
|
+
* Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
|
|
29088
|
+
* for the whole cluster from each node's static hardware class, the
|
|
29089
|
+
* measured latency table and the detection demand, and lists every write
|
|
29090
|
+
* the apply would make: the node model pins set, the enrichment pins and
|
|
29091
|
+
* model-bound thresholds removed (node level and per camera), and the
|
|
29092
|
+
* per-camera detector thresholds cleared. Writes nothing. Step
|
|
29093
|
+
* enablement, device enablement, pins, recording, notifications, zones and
|
|
29094
|
+
* rules are never part of it. `planHash` names exactly this diff.
|
|
29095
|
+
*/
|
|
29096
|
+
planBestSettings: method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }),
|
|
29097
|
+
/**
|
|
29098
|
+
* Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
|
|
29099
|
+
* the plan and refuses (`stale`, with the fresh plan) when its hash is not
|
|
29100
|
+
* `planHash`, so what is written is exactly the confirmed diff. Offline
|
|
29101
|
+
* nodes are skipped; there is no undo.
|
|
29102
|
+
*/
|
|
29103
|
+
applyBestSettings: method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
|
|
29104
|
+
kind: "mutation",
|
|
29105
|
+
auth: "admin"
|
|
29106
|
+
}),
|
|
28828
29107
|
/** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
|
|
28829
29108
|
getCameraSettings: method(z.object({ deviceId: z.number() }), CameraPipelineSettingsSchema.nullable()),
|
|
28830
29109
|
/** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
|
|
@@ -45922,6 +46201,8 @@ Object.freeze({
|
|
|
45922
46201
|
vehicle: .65,
|
|
45923
46202
|
animal: .65
|
|
45924
46203
|
});
|
|
46204
|
+
var HF_REPO = "camstack/camstack-models";
|
|
46205
|
+
`${HF_REPO}`;
|
|
45925
46206
|
/**
|
|
45926
46207
|
* Runtime defaults -- used by ConfigManager.get() for backward compatibility
|
|
45927
46208
|
* until Plan B wires all runtime settings to the system_settings SQL table.
|
|
@@ -51783,6 +52064,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51783
52064
|
addonId: null,
|
|
51784
52065
|
access: "delete"
|
|
51785
52066
|
},
|
|
52067
|
+
"pipelineExecutor.clearModelBoundDeviceOverrides": {
|
|
52068
|
+
capName: "pipeline-executor",
|
|
52069
|
+
capScope: "system",
|
|
52070
|
+
addonId: null,
|
|
52071
|
+
access: "delete"
|
|
52072
|
+
},
|
|
51786
52073
|
"pipelineExecutor.deleteModel": {
|
|
51787
52074
|
capName: "pipeline-executor",
|
|
51788
52075
|
capScope: "system",
|
|
@@ -51999,6 +52286,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51999
52286
|
addonId: null,
|
|
52000
52287
|
access: "view"
|
|
52001
52288
|
},
|
|
52289
|
+
"pipelineOrchestrator.applyBestSettings": {
|
|
52290
|
+
capName: "pipeline-orchestrator",
|
|
52291
|
+
capScope: "system",
|
|
52292
|
+
addonId: null,
|
|
52293
|
+
access: "create"
|
|
52294
|
+
},
|
|
52002
52295
|
"pipelineOrchestrator.applyDeviceSettingsPatch": {
|
|
52003
52296
|
capName: "pipeline-orchestrator",
|
|
52004
52297
|
capScope: "system",
|
|
@@ -52173,6 +52466,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
52173
52466
|
addonId: null,
|
|
52174
52467
|
access: "create"
|
|
52175
52468
|
},
|
|
52469
|
+
"pipelineOrchestrator.planBestSettings": {
|
|
52470
|
+
capName: "pipeline-orchestrator",
|
|
52471
|
+
capScope: "system",
|
|
52472
|
+
addonId: null,
|
|
52473
|
+
access: "view"
|
|
52474
|
+
},
|
|
52176
52475
|
"pipelineOrchestrator.rebalance": {
|
|
52177
52476
|
capName: "pipeline-orchestrator",
|
|
52178
52477
|
capScope: "system",
|
|
@@ -57850,6 +58149,11 @@ Object.freeze({
|
|
|
57850
58149
|
form: "single",
|
|
57851
58150
|
optional: false
|
|
57852
58151
|
}],
|
|
58152
|
+
"pipelineExecutor.clearModelBoundDeviceOverrides": [{
|
|
58153
|
+
name: "deviceIds",
|
|
58154
|
+
form: "array",
|
|
58155
|
+
optional: true
|
|
58156
|
+
}],
|
|
57853
58157
|
"pipelineExecutor.runPipeline": [{
|
|
57854
58158
|
name: "deviceId",
|
|
57855
58159
|
form: "single",
|
|
@@ -60200,6 +60504,9 @@ var ADDON_ID_PREFIX = "addon:";
|
|
|
60200
60504
|
function bareAddonId(id) {
|
|
60201
60505
|
return id.startsWith(ADDON_ID_PREFIX) ? id.slice(6) : id;
|
|
60202
60506
|
}
|
|
60507
|
+
function hfModelUrl(repo, path) {
|
|
60508
|
+
return `https://huggingface.co/${repo}/resolve/main/${path}`;
|
|
60509
|
+
}
|
|
60203
60510
|
var MB = 1024 * 1024;
|
|
60204
60511
|
1024 * MB, 3072 * MB;
|
|
60205
60512
|
/**
|
|
@@ -60334,4 +60641,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
60334
60641
|
return out;
|
|
60335
60642
|
}
|
|
60336
60643
|
//#endregion
|
|
60337
|
-
export {
|
|
60644
|
+
export { buildCapabilityLookup as $, compositionSliceKey as $n, looseSchema as $t, MINUTES_PER_DAY as A, settingsStoreCapability as An, scopeKey as Ar, expandContainer as At, StorageCleanupJobSchema as B, validateComposition as Bn, isCollectionArrayMethod as Bt, FieldClaimModeSchema as C, resolveLocationMode as Cn, isDeviceConfigCap as Cr, deviceStateCapability as Ct, LegacyStorageLocationDefaultSchema as D, scopesAllowAddon as Dn, parseJsonUnknown as Dr, enumerateSchemaFields as Dt, LOG_LEVEL_RANK as E, runtimeStatePolicyFor as En, parseJsonObject as Er, enumerateItemArrayFields as Et, RUNTIME_DEFAULTS as F, storageOccupancyCapability as Fn, formatMinutes as Ft, addonPagesCapability as G, withLocationMode as Gn, kebabToCamel as Gt, StorageLocationTypeSchema as H, vectorDimFromBase64 as Hn, isLocationEnabled as Ht, RecordingStatusSchema as I, storageProviderCapability as In, gbToBytes as It, alertsCapability as J, cloneStatefulExpressionMemory as Jn, lifecycleJobSchema as Jt, addonSettingsCapability as K, COMPOSER_ADDON_ID as Kn, legacyAutoLinkIds as Kt, STORAGE_ACCESS_FALLBACK as L, streamCatalogCapability as Ln, hfModelUrl as Lt, MOTION_CLOSE_AFTER_MS as M, snapshotCapability as Mn, toNodeId as Mr, extractNestedAddonId as Mt, RECORDING_SOURCE_CAMSTACK_ADDON as N, storageCapability as Nn, EventCategory as Nr, filesystemBrowseCapability as Nt, LocationIconIdSchema as O, scopesAllowDeviceCap as On, readinessKey as Or, evaluateCompositionField as Ot, REDACTED_SECRET as P, storageMigrationCapability as Pn, foldSnapshotByFunction as Pt, batteryCapability as Q, compositionItemFieldPath as Qn, logLevelAtMost as Qt, STREAM_PROFILE_META as R, streamQualityLabel as Rn, isAppLinkBase as Rt, FIRST_LEVEL_MACRO_CLASSES as S, resolveHubAddressRoles as Sn, hydrateSchema as Sr, deviceManagerCapability as St, HF_REPO as T, resolveNotificationTapAddress as Tn, nodePin as Tr, enumerateInferenceDevices as Tt, StorageMigrationJobSchema as U, vectorIndexDimConflictError as Un, isObjectInput as Ut, StorageLocationModeSchema as V, validateCustomAddress as Vn, isDefaultAppConnectionEndpoint as Vt, UserRecordSchema as W, vectorStoreCapability as Wn, isVoidInput as Wt, backupCapability as X, composedDeviceStableId as Xn, locationIconKey as Xt, authProviderCapability as Y, composedDeviceRef as Yn, localNetworkCapability as Yt, bareAddonId as Z, compositionFeatureEnabled as Zn, logDestinationCapability as Zt, DATABASE_SNAPSHOT_TIMEOUT_MS as _, replacedFieldKeys as _n, asString$1 as _r, decodeVectorBase64 as _t, BatteryStatusSchema as a, motionCapability as an, DeviceRole as ar, composerCapability as at, DeclaredDevices as b, resolveCoreBlockEntry as bn, emitReadiness as br, describeComposableCaps as bt, CAP_NAMES_WITH_STATUS as c, objectInputDeclaresAddonId as cn, BaseAddon as cr, coreBlockAddonId as ct, CORE_BLOCKS_ADDON_ID as d, pickAppLinkHub as dn, DEVICE_STATUS_METHOD as dr, coreBlockSourceKind as dt, mayReadLocation as en, compositionSourceKey as er, buildStreamParamsConfigSchema as et, CORE_BLOCK_ADDON_PREFIX as f, planComposition as fn, ReadinessRegistry as fr, coreBlocksCapability as ft, DATABASE_SNAPSHOT_SUFFIX as g, reducePoints as gn, asNumber as gr, declarationOwnerNodeId as gt, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as h, ptzAutotrackCapability as hn, asJsonObject as hr, databaseSnapshotCapability as ht, BaseDevice as i, modeMayWrite as in, DeviceFeature as ir, collectSecretConfigKeys as it, MODEL_FORMATS as j, siteZoneKey as jn, sleep as jr, expressionContainsBuiltinCall as jt, METHOD_ACCESS_MAP as k, scoreRuntimes as kn, resolveCapMount as kr, evictionPolicyOfLocation as kt, COMPOSED_ITEM_FIXED_FIELDS as l, objectInputDeclaresRequiredDeviceId as ln, DATAPLANE_SECRET_HEADER as lr, coreBlockComposition as lt, CoreBlockSchema as m, procedureAuthKey as mn, WELL_KNOWN_TAB_MAP as mr, dataStoreProviderCapability as mt, AlertSchema as n, memoizePinnedFfmpeg as nn, disarmRoseMemory as nr, cameraGridLayoutCapability as nt, CAMERA_SWITCH_ORDER as o, normalizeCoreBlockWrite as on, DeviceType as or, compositionFieldKey as ot, CalendarPreferencesSchema as p, platformProbeCapability as pn, ReadinessTimeoutError as pr, createDeviceExtensionProvider as pt, addonWidgetsCapability as q, buildFfmpegArgs as qn, legacyModeOf as qt, ApiKeyRecordSchema as r, metricsProviderCapability as rn, toExpressionValue as rr, checkRoleAddress as rt, CAMSTACK_APP_LINK_ORIGIN as s, normalizeUnit as sn, errMsg as sr, compositionSourceRefs as st, ALL_CAPABILITY_DEFINITIONS as t, mayWriteToLocation as tn, createStatefulExpressionMemory as tr, calendarsCapability as tt, COMPOSER_RUNNER_ID as u, parseStreamParamsFormPatch as un, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ur, coreBlockIdFromAddonId as ut, DAY_NAMES as v, resolveAppConnections as vn, createEvent as vr, defineExtensionSlotProvider as vt, FieldClaimSchema as w, resolveMethodAuth as wn, isEvent as wr, deviceStatusCapability as wt, DeviceStatusSchema as x, resolveCoreBlockFiles as xn, expandCapMethods as xr, deviceExtensionCapability as xt, DERIVED_CAMERA_SILENCED_CAP_NAMES as y, resolveBucketMs as yn, emitDownForOwnedCaps as yr, deriveBatteryPresence as yt, ScopedTokenSchema as z, userManagementCapability as zn, isArrayOutputSchema as zt };
|