@camstack/addon-post-analysis 1.2.333 → 1.2.335
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/THIRD_PARTY_MODELS.md +34 -26
- package/dist/{clip-model-registry-BEh9LdQS.js → clip-model-registry-BxUHFGUg.js} +142 -74
- package/dist/{clip-model-registry-AjTRFTkj.mjs → clip-model-registry-D7e1kEqc.mjs} +137 -75
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BW5gZgrf.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-NmXf2bwM.mjs} +3 -3
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BMP6Hyub.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-BDn7o3Lf.mjs → hostInit-DM07J5TU.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +239 -12
- package/dist/pipeline-analytics/index.mjs +239 -12
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C6J-8O9Q.mjs +0 -26
package/THIRD_PARTY_MODELS.md
CHANGED
|
@@ -36,7 +36,7 @@ under [Non-commercial models](#non-commercial-models).
|
|
|
36
36
|
- RF-DETR © Roboflow, Apache-2.0. https://github.com/roboflow/rf-detr
|
|
37
37
|
- YuNet weights Copyright (c) 2020 Shiqi Yu, MIT. Training code: ShiqiYu/libfacedetection.train, BSD-3-Clause. https://github.com/opencv/opencv_zoo/tree/main/models/face_detection_yunet
|
|
38
38
|
- AuraFace v1 by fal.ai, Apache-2.0. https://huggingface.co/fal/AuraFace-v1
|
|
39
|
-
-
|
|
39
|
+
- open-lpr models, Copyright the open-lpr contributors, Apache-2.0 (https://huggingface.co/faisalthaheem/open-lpr-models, tag detector-2026.10.1). YOLOX architecture and COCO pretraining by Megvii (https://github.com/Megvii-BaseDetection/YOLOX), Apache-2.0. The upstream NOTICE is reproduced verbatim (`NOTICE-open-lpr.txt`). https://huggingface.co/faisalthaheem/open-lpr-models
|
|
40
40
|
- fast-plate-ocr, MIT License, copyright (c) 2024 ankandrew (full notice: licenses/models/MIT-fast-plate-ocr.txt). https://github.com/ankandrew/fast-plate-ocr
|
|
41
41
|
- EfficientNet-Lite0 via timm (Ross Wightman), Apache-2.0. Open Images V7 annotations © Google LLC, CC BY 4.0; images listed by Google as CC BY 2.0, without warranty. https://github.com/huggingface/pytorch-image-models
|
|
42
42
|
- torchvision MobileNetV3, BSD-3-Clause. Trained on the Vehicle classification dataset by DrBimmer (https://huggingface.co/datasets/DrBimmer/vehicle-classification), CC BY-NC 4.0. https://github.com/pytorch/vision
|
|
@@ -62,34 +62,42 @@ Training data under attribution terms:
|
|
|
62
62
|
cards link here instead of repeating it.
|
|
63
63
|
-->
|
|
64
64
|
|
|
65
|
-
The folders `objectDetection/yolo26`, `objectDetection/yolov9
|
|
65
|
+
The folders `objectDetection/yolo26`, `objectDetection/yolov9` and `segmentation/yolo26-seg` of the model mirror hold Ultralytics weights,
|
|
66
66
|
modified by CamStack and distributed under AGPL-3.0. Their Corresponding Source
|
|
67
67
|
is published in the mirror itself, in its **`source/`** folder,
|
|
68
68
|
**https://huggingface.co/camstack/camstack-models/tree/main/source**, together
|
|
69
69
|
with the upstream checkpoints it starts from:
|
|
70
70
|
|
|
71
|
-
1. **The upstream checkpoints
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
2. **The
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
`export
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
71
|
+
1. **The upstream checkpoints.** Ultralytics publishes
|
|
72
|
+
`yolo26{n,s,m,l,x}.pt`, `yolov9{t,s,m,c}.pt` and `yolo26{n,s,m}-seg.pt` at
|
|
73
|
+
https://github.com/ultralytics/assets/releases.
|
|
74
|
+
2. **The build script** in `source/`: `build-camstack-models.py`, with
|
|
75
|
+
`convert_lib.py` (the ONNX to OpenVINO / INT8 converter it calls, the same
|
|
76
|
+
file CamStack's Model Studio runs) and `requirements.txt`. It holds one
|
|
77
|
+
recipe per hosted file: the upstream checkpoint, the input size, the
|
|
78
|
+
Ultralytics `export()` arguments, the OpenVINO precision and the INT8
|
|
79
|
+
calibration count that file records about itself. Every hosted
|
|
80
|
+
Ultralytics-derived file is rebuilt by one invocation:
|
|
81
|
+
`build-camstack-models.py --variant <file stem>` (for example
|
|
82
|
+
`camstack-yolo26n-320` or `camstack-yolov9m-640`), `--family <folder>`
|
|
83
|
+
or `--all`; `--list` prints the recipes and `--check-hosted` confirms
|
|
84
|
+
against the mirror that every hosted file is a recipe output. The INT8
|
|
85
|
+
builds are NNCF post-training quantisation calibrated on COCO images: 128
|
|
86
|
+
for YOLO26, 300 for YOLOv9, as each IR records; the documented set is the
|
|
87
|
+
first N of COCO val2017 in file-name order. The Python
|
|
88
|
+
environment, the recorded tool versions and the calibration set are in
|
|
89
|
+
`source/README.md` and the script's header. These scripts are CamStack's
|
|
90
|
+
own code and are offered under the MIT licence; the weights they produce
|
|
91
|
+
keep their upstream licence.
|
|
92
|
+
|
|
93
|
+
Limits of a rebuild:
|
|
94
|
+
|
|
95
|
+
- **Tool versions.** With the Ultralytics, PyTorch, coremltools and OpenVINO
|
|
96
|
+
versions each recipe names, a rebuild reproduces the hosted weights. Other
|
|
97
|
+
versions give the same weights in a possibly different graph.
|
|
98
|
+
- **INT8 calibration.** An IR records how many images calibrated it, not
|
|
99
|
+
which ones. Calibrating on the same COCO images gives the documented build;
|
|
100
|
+
a different set gives an equivalent, not bit-identical, INT8 model.
|
|
93
101
|
|
|
94
102
|
## Non-commercial models
|
|
95
103
|
|
|
@@ -138,7 +146,7 @@ entry kept resolvable for a saved selection but no longer offered.
|
|
|
138
146
|
|
|
139
147
|
| Catalog ids | Upstream | Code / weights | Training data | CamStack changes | Downloaded from |
|
|
140
148
|
| --- | --- | --- | --- | --- | --- |
|
|
141
|
-
| `
|
|
149
|
+
| `yolox-tiny-plate` (default) | [open-lpr models (faisalthaheem/open-lpr-models), YOLOX-tiny](https://huggingface.co/faisalthaheem/open-lpr-models) | Apache-2.0 / Apache-2.0 (`Apache-2.0.txt`) | Simanno annotated plate corpus plus community-contributed photographs, pseudo-labelled by a teacher model (not published; the upstream NOTICE says the photographs were uploaded without consent obtained): UNKNOWN | input contract baked into the graph (static 1x3x640x640 RGB /255 becomes the upstream BGR 0..255: Mul(255) plus a channel Gather) and the output reshaped to the YOLOv8 layout (cx, cy, w, h, obj*cls); ONNX fp32, OpenVINO IR fp16, CoreML fp16 (scripts/build-yolox-plate-model.py) | mirror `plateDetection/yolox-tiny-plate` |
|
|
142
150
|
|
|
143
151
|
### Licence plate reading
|
|
144
152
|
|
|
@@ -156,7 +164,7 @@ entry kept resolvable for a saved selection but no longer offered.
|
|
|
156
164
|
|
|
157
165
|
| Catalog ids | Upstream | Code / weights | Training data | CamStack changes | Downloaded from |
|
|
158
166
|
| --- | --- | --- | --- | --- | --- |
|
|
159
|
-
| `bird-classifier` (default) | [Google AIY Vision birds_V1](https://github.com/google-coral/test_data) | — / Apache-2.0 (`Apache-2.0.txt`) | — | converted from TensorFlow with tf2onnx; OpenVINO IR and CoreML derived from it | mirror `animalClassification/bird-classifier` |
|
|
167
|
+
| `bird-classifier` (default) | [Google AIY Vision birds_V1](https://github.com/google-coral/test_data) | — / Apache-2.0 (`Apache-2.0.txt`) | — | converted from TensorFlow with tf2onnx; OpenVINO IR and CoreML derived from it; the Edge TPU build is the Google full-integer quantised TFLite of the same model, compiled with edgetpu_compiler 14 (scripts/build-bird-classifier-edgetpu.py) | mirror `animalClassification/bird-classifier` |
|
|
160
168
|
|
|
161
169
|
### Vehicle classifier
|
|
162
170
|
|
|
@@ -11560,6 +11560,90 @@ function resolveClipSearchMinScore(meta, request) {
|
|
|
11560
11560
|
const factor = CLIP_STRICTNESS_FACTOR[request.strictness ?? "loose"];
|
|
11561
11561
|
return Math.min(1, Math.round(meta.searchMinScore * factor * 1e3) / 1e3);
|
|
11562
11562
|
}
|
|
11563
|
+
/**
|
|
11564
|
+
* The class names a per-class COUNT can ever be keyed on — the macro ids, and
|
|
11565
|
+
* only those.
|
|
11566
|
+
*
|
|
11567
|
+
* `preserveOriginal: false` below is the whole reason this set exists: the
|
|
11568
|
+
* executor maps each raw COCO label onto its macro and DROPS everything else,
|
|
11569
|
+
* so a tracked detection's `className` is always one of {@link MACRO_LABELS}.
|
|
11570
|
+
* Any surface that indexes counts by class name — the ZoneAnalytics occupancy
|
|
11571
|
+
* snapshot's `byClass`, and therefore every occupancy rule — can match nothing
|
|
11572
|
+
* else. Derived from the catalog, never hand-listed, so a new macro joins it by
|
|
11573
|
+
* being declared once.
|
|
11574
|
+
*
|
|
11575
|
+
* Cost of not having it, 2026-08-12: the notification rule editor offered the
|
|
11576
|
+
* full taxonomy for an occupancy class (occupancy is the one condition that
|
|
11577
|
+
* does not go through the engine's macro-expanding `expandClassSelector`), two
|
|
11578
|
+
* live rules were authored on `car`, and both counters read 0 forever.
|
|
11579
|
+
*/
|
|
11580
|
+
var DETECTION_MACRO_CLASSES = new Set([
|
|
11581
|
+
{
|
|
11582
|
+
id: "person",
|
|
11583
|
+
name: "Person"
|
|
11584
|
+
},
|
|
11585
|
+
{
|
|
11586
|
+
id: "vehicle",
|
|
11587
|
+
name: "Vehicle"
|
|
11588
|
+
},
|
|
11589
|
+
{
|
|
11590
|
+
id: "animal",
|
|
11591
|
+
name: "Animal"
|
|
11592
|
+
},
|
|
11593
|
+
{
|
|
11594
|
+
id: "package",
|
|
11595
|
+
name: "Package"
|
|
11596
|
+
}
|
|
11597
|
+
].map((l) => l.id));
|
|
11598
|
+
/** True when `className` is a macro the detector can actually emit (and hence a
|
|
11599
|
+
* class a count can be keyed on) — see {@link DETECTION_MACRO_CLASSES}. */
|
|
11600
|
+
function isDetectionMacroClass(className) {
|
|
11601
|
+
return DETECTION_MACRO_CLASSES.has(className.trim().toLowerCase());
|
|
11602
|
+
}
|
|
11603
|
+
var COCO_TO_MACRO = {
|
|
11604
|
+
mapping: {
|
|
11605
|
+
person: "person",
|
|
11606
|
+
bicycle: "vehicle",
|
|
11607
|
+
car: "vehicle",
|
|
11608
|
+
motorcycle: "vehicle",
|
|
11609
|
+
airplane: "vehicle",
|
|
11610
|
+
bus: "vehicle",
|
|
11611
|
+
train: "vehicle",
|
|
11612
|
+
truck: "vehicle",
|
|
11613
|
+
boat: "vehicle",
|
|
11614
|
+
bird: "animal",
|
|
11615
|
+
cat: "animal",
|
|
11616
|
+
dog: "animal",
|
|
11617
|
+
horse: "animal",
|
|
11618
|
+
sheep: "animal",
|
|
11619
|
+
cow: "animal",
|
|
11620
|
+
elephant: "animal",
|
|
11621
|
+
bear: "animal",
|
|
11622
|
+
zebra: "animal",
|
|
11623
|
+
giraffe: "animal",
|
|
11624
|
+
suitcase: "package",
|
|
11625
|
+
backpack: "package",
|
|
11626
|
+
handbag: "package"
|
|
11627
|
+
},
|
|
11628
|
+
preserveOriginal: false
|
|
11629
|
+
};
|
|
11630
|
+
/** Steps a root detector may declare it fills. */
|
|
11631
|
+
var FILLABLE_STEP_IDS = [
|
|
11632
|
+
"animal-classifier",
|
|
11633
|
+
"vehicle-classifier",
|
|
11634
|
+
"package-detection"
|
|
11635
|
+
];
|
|
11636
|
+
/** Narrow a step id to a fillable one — type guard, not a cast. */
|
|
11637
|
+
function isFillableStepId(value) {
|
|
11638
|
+
return FILLABLE_STEP_IDS.some((id) => id === value);
|
|
11639
|
+
}
|
|
11640
|
+
/** The step a linked label stands in for, or `undefined` for any other attribution. */
|
|
11641
|
+
function linkedStepOf(attributionStepId) {
|
|
11642
|
+
if (attributionStepId === void 0) return void 0;
|
|
11643
|
+
if (!attributionStepId.startsWith("detector-link:")) return void 0;
|
|
11644
|
+
const stepId = attributionStepId.slice(14);
|
|
11645
|
+
return isFillableStepId(stepId) ? stepId : void 0;
|
|
11646
|
+
}
|
|
11563
11647
|
var MODEL_FORMATS = [
|
|
11564
11648
|
"onnx",
|
|
11565
11649
|
"coreml",
|
|
@@ -11692,6 +11776,12 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
|
|
|
11692
11776
|
/** True when the weights or their data forbid commercial use. */
|
|
11693
11777
|
nonCommercial: boolean().optional()
|
|
11694
11778
|
}));
|
|
11779
|
+
/** One `fillsClassifierEffects` entry — see `ModelCatalogEntry.fillsClassifierEffects`. */
|
|
11780
|
+
var FillsClassifierEffectSchema = object({
|
|
11781
|
+
stepId: _enum(FILLABLE_STEP_IDS),
|
|
11782
|
+
labelToEffect: record(string(), string()),
|
|
11783
|
+
uncovered: array(string()).readonly()
|
|
11784
|
+
});
|
|
11695
11785
|
var ModelCatalogEntrySchema = object({
|
|
11696
11786
|
id: string(),
|
|
11697
11787
|
name: string(),
|
|
@@ -11818,6 +11908,16 @@ var ModelCatalogEntrySchema = object({
|
|
|
11818
11908
|
*/
|
|
11819
11909
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
11820
11910
|
/**
|
|
11911
|
+
* The pipeline steps this ROOT detector already does the work of (D715):
|
|
11912
|
+
* its labels name the effect the step exists to produce (`deer` for
|
|
11913
|
+
* `animal-classifier`, `package` for `package-detection`). Derived from the
|
|
11914
|
+
* labelmap by `deriveClassifierFills`, never hand-written; a COCO model
|
|
11915
|
+
* declares none. Whether a declaration is honoured is the step's own
|
|
11916
|
+
* `labelLink` policy (`resolveLabelLink`). `labelToEffect` values are in
|
|
11917
|
+
* `FILLABLE_STEP_VOCABULARIES` (guard `check-label-link-vocabulary`).
|
|
11918
|
+
*/
|
|
11919
|
+
fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional(),
|
|
11920
|
+
/**
|
|
11821
11921
|
* The model's CLIP feature-space contract (text encoder, dimension, vector
|
|
11822
11922
|
* index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
|
|
11823
11923
|
* CLIP image encoder; its absence is what "not a CLIP model" means to the
|
|
@@ -21460,73 +21560,6 @@ var notificationOutputCapability = {
|
|
|
21460
21560
|
})
|
|
21461
21561
|
}
|
|
21462
21562
|
};
|
|
21463
|
-
/**
|
|
21464
|
-
* The class names a per-class COUNT can ever be keyed on — the macro ids, and
|
|
21465
|
-
* only those.
|
|
21466
|
-
*
|
|
21467
|
-
* `preserveOriginal: false` below is the whole reason this set exists: the
|
|
21468
|
-
* executor maps each raw COCO label onto its macro and DROPS everything else,
|
|
21469
|
-
* so a tracked detection's `className` is always one of {@link MACRO_LABELS}.
|
|
21470
|
-
* Any surface that indexes counts by class name — the ZoneAnalytics occupancy
|
|
21471
|
-
* snapshot's `byClass`, and therefore every occupancy rule — can match nothing
|
|
21472
|
-
* else. Derived from the catalog, never hand-listed, so a new macro joins it by
|
|
21473
|
-
* being declared once.
|
|
21474
|
-
*
|
|
21475
|
-
* Cost of not having it, 2026-08-12: the notification rule editor offered the
|
|
21476
|
-
* full taxonomy for an occupancy class (occupancy is the one condition that
|
|
21477
|
-
* does not go through the engine's macro-expanding `expandClassSelector`), two
|
|
21478
|
-
* live rules were authored on `car`, and both counters read 0 forever.
|
|
21479
|
-
*/
|
|
21480
|
-
var DETECTION_MACRO_CLASSES = new Set([
|
|
21481
|
-
{
|
|
21482
|
-
id: "person",
|
|
21483
|
-
name: "Person"
|
|
21484
|
-
},
|
|
21485
|
-
{
|
|
21486
|
-
id: "vehicle",
|
|
21487
|
-
name: "Vehicle"
|
|
21488
|
-
},
|
|
21489
|
-
{
|
|
21490
|
-
id: "animal",
|
|
21491
|
-
name: "Animal"
|
|
21492
|
-
},
|
|
21493
|
-
{
|
|
21494
|
-
id: "package",
|
|
21495
|
-
name: "Package"
|
|
21496
|
-
}
|
|
21497
|
-
].map((l) => l.id));
|
|
21498
|
-
/** True when `className` is a macro the detector can actually emit (and hence a
|
|
21499
|
-
* class a count can be keyed on) — see {@link DETECTION_MACRO_CLASSES}. */
|
|
21500
|
-
function isDetectionMacroClass(className) {
|
|
21501
|
-
return DETECTION_MACRO_CLASSES.has(className.trim().toLowerCase());
|
|
21502
|
-
}
|
|
21503
|
-
var COCO_TO_MACRO = {
|
|
21504
|
-
mapping: {
|
|
21505
|
-
person: "person",
|
|
21506
|
-
bicycle: "vehicle",
|
|
21507
|
-
car: "vehicle",
|
|
21508
|
-
motorcycle: "vehicle",
|
|
21509
|
-
airplane: "vehicle",
|
|
21510
|
-
bus: "vehicle",
|
|
21511
|
-
train: "vehicle",
|
|
21512
|
-
truck: "vehicle",
|
|
21513
|
-
boat: "vehicle",
|
|
21514
|
-
bird: "animal",
|
|
21515
|
-
cat: "animal",
|
|
21516
|
-
dog: "animal",
|
|
21517
|
-
horse: "animal",
|
|
21518
|
-
sheep: "animal",
|
|
21519
|
-
cow: "animal",
|
|
21520
|
-
elephant: "animal",
|
|
21521
|
-
bear: "animal",
|
|
21522
|
-
zebra: "animal",
|
|
21523
|
-
giraffe: "animal",
|
|
21524
|
-
suitcase: "package",
|
|
21525
|
-
backpack: "package",
|
|
21526
|
-
handbag: "package"
|
|
21527
|
-
},
|
|
21528
|
-
preserveOriginal: false
|
|
21529
|
-
};
|
|
21530
21563
|
var AUDIO_MACRO_LABELS = [
|
|
21531
21564
|
{
|
|
21532
21565
|
id: "speech",
|
|
@@ -22331,6 +22364,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
22331
22364
|
"stream-offline",
|
|
22332
22365
|
"node-online",
|
|
22333
22366
|
"node-offline",
|
|
22367
|
+
"node-restarting",
|
|
22368
|
+
"node-updating",
|
|
22334
22369
|
"node-inference-unavailable",
|
|
22335
22370
|
"detection-blind",
|
|
22336
22371
|
"addon-crash-loop",
|
|
@@ -23814,6 +23849,14 @@ var NC_CONDITION_CATALOG = [
|
|
|
23814
23849
|
value: "node-offline",
|
|
23815
23850
|
label: "Node offline"
|
|
23816
23851
|
},
|
|
23852
|
+
{
|
|
23853
|
+
value: "node-restarting",
|
|
23854
|
+
label: "Node restarting"
|
|
23855
|
+
},
|
|
23856
|
+
{
|
|
23857
|
+
value: "node-updating",
|
|
23858
|
+
label: "Node updating (restart imminent)"
|
|
23859
|
+
},
|
|
23817
23860
|
{
|
|
23818
23861
|
value: "node-inference-unavailable",
|
|
23819
23862
|
label: "Node has no usable inference device"
|
|
@@ -28616,7 +28659,8 @@ var PipelineModelOptionSchema = object({
|
|
|
28616
28659
|
group: ModelVariantGroupSchema.optional(),
|
|
28617
28660
|
legacy: boolean().optional(),
|
|
28618
28661
|
provider: ModelProviderIdSchema.optional(),
|
|
28619
|
-
defaultConfidence: number().optional()
|
|
28662
|
+
defaultConfidence: number().optional(),
|
|
28663
|
+
fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional()
|
|
28620
28664
|
});
|
|
28621
28665
|
var ConfigFieldBridge = custom();
|
|
28622
28666
|
var PipelineAddonSchemaSchema = object({
|
|
@@ -40063,7 +40107,8 @@ var MotionStatusSchema = object({
|
|
|
40063
40107
|
* writes this slice (not even a boot seed), and neither does the runner's
|
|
40064
40108
|
* phase machine: its phase is "a session is attached" for every on-motion
|
|
40065
40109
|
* session, not motion, and it now has its own `DetectionPhaseTransition`.
|
|
40066
|
-
* A provider's `isDetected`
|
|
40110
|
+
* A provider's `isDetected` and `getStatus` answer from the hub's slice
|
|
40111
|
+
* (`hubMotionNativeProvider`).
|
|
40067
40112
|
* - **Sensors** (Home Assistant binary sensors, Homematic, Matter, Alexa
|
|
40068
40113
|
* imports) — the provider pushes both edges itself, from the upstream
|
|
40069
40114
|
* system's own state change. That is the sensor's own fact.
|
|
@@ -60150,7 +60195,7 @@ function systemEventFilterApplies(kind, filter) {
|
|
|
60150
60195
|
case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind === "alarm-triggered";
|
|
60151
60196
|
case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind";
|
|
60152
60197
|
case "nodeIds": return kind.startsWith("node-") || kind === "addon-crash-loop" || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "wrapper-update-available" || kind === "server-updated";
|
|
60153
|
-
case "packageNames": return kind.endsWith("update-available") || kind === "addon-updated" || kind === "server-updated";
|
|
60198
|
+
case "packageNames": return kind.endsWith("update-available") || kind === "addon-updated" || kind === "node-updating" || kind === "server-updated";
|
|
60154
60199
|
case "consumableLowPercent": return NC_CONSUMABLE_SYSTEM_EVENT_KINDS.includes(kind);
|
|
60155
60200
|
}
|
|
60156
60201
|
}
|
|
@@ -60195,6 +60240,8 @@ var NC_SYSTEM_EVENT_FAMILY = {
|
|
|
60195
60240
|
"detection-blind": "device-events",
|
|
60196
60241
|
"node-online": "system",
|
|
60197
60242
|
"node-offline": "system",
|
|
60243
|
+
"node-restarting": "system",
|
|
60244
|
+
"node-updating": "system",
|
|
60198
60245
|
"node-inference-unavailable": "system",
|
|
60199
60246
|
"addon-crash-loop": "system",
|
|
60200
60247
|
"addon-update-available": "system",
|
|
@@ -60290,6 +60337,7 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
60290
60337
|
kinds: [
|
|
60291
60338
|
"node-offline",
|
|
60292
60339
|
"node-online",
|
|
60340
|
+
"node-restarting",
|
|
60293
60341
|
"node-inference-unavailable"
|
|
60294
60342
|
]
|
|
60295
60343
|
},
|
|
@@ -60311,6 +60359,7 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
60311
60359
|
label: "Server & container updates",
|
|
60312
60360
|
kinds: [
|
|
60313
60361
|
"server-update-available",
|
|
60362
|
+
"node-updating",
|
|
60314
60363
|
"server-updated",
|
|
60315
60364
|
"wrapper-update-available"
|
|
60316
60365
|
]
|
|
@@ -61217,6 +61266,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
61217
61266
|
kinds: [
|
|
61218
61267
|
"node-offline",
|
|
61219
61268
|
"node-online",
|
|
61269
|
+
"node-restarting",
|
|
61220
61270
|
"node-inference-unavailable"
|
|
61221
61271
|
]
|
|
61222
61272
|
},
|
|
@@ -61238,6 +61288,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
61238
61288
|
example: "server 1.2.377 → 1.2.378",
|
|
61239
61289
|
kinds: [
|
|
61240
61290
|
"server-update-available",
|
|
61291
|
+
"node-updating",
|
|
61241
61292
|
"server-updated",
|
|
61242
61293
|
"wrapper-update-available"
|
|
61243
61294
|
]
|
|
@@ -61643,6 +61694,8 @@ var NC_TEMPLATE_VARS = [
|
|
|
61643
61694
|
systemEventKinds: [
|
|
61644
61695
|
"node-online",
|
|
61645
61696
|
"node-offline",
|
|
61697
|
+
"node-restarting",
|
|
61698
|
+
"node-updating",
|
|
61646
61699
|
"node-inference-unavailable",
|
|
61647
61700
|
"addon-crash-loop",
|
|
61648
61701
|
...UPDATES,
|
|
@@ -61661,6 +61714,8 @@ var NC_TEMPLATE_VARS = [
|
|
|
61661
61714
|
systemEventKinds: [
|
|
61662
61715
|
"node-online",
|
|
61663
61716
|
"node-offline",
|
|
61717
|
+
"node-restarting",
|
|
61718
|
+
"node-updating",
|
|
61664
61719
|
"node-inference-unavailable",
|
|
61665
61720
|
"addon-crash-loop",
|
|
61666
61721
|
...UPDATES,
|
|
@@ -61714,6 +61769,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
61714
61769
|
systemEventKinds: [
|
|
61715
61770
|
...UPDATES,
|
|
61716
61771
|
"addon-updated",
|
|
61772
|
+
"node-updating",
|
|
61717
61773
|
"server-updated"
|
|
61718
61774
|
]
|
|
61719
61775
|
},
|
|
@@ -61725,7 +61781,11 @@ var NC_TEMPLATE_VARS = [
|
|
|
61725
61781
|
families: ["rule"],
|
|
61726
61782
|
fields: [...RULE_TEXT],
|
|
61727
61783
|
kinds: ["system"],
|
|
61728
|
-
systemEventKinds: [
|
|
61784
|
+
systemEventKinds: [
|
|
61785
|
+
...PACKAGE_UPDATES,
|
|
61786
|
+
"node-updating",
|
|
61787
|
+
"server-updated"
|
|
61788
|
+
]
|
|
61729
61789
|
},
|
|
61730
61790
|
{
|
|
61731
61791
|
name: "nodes",
|
|
@@ -61777,7 +61837,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
61777
61837
|
families: ["rule"],
|
|
61778
61838
|
fields: [...RULE_TEXT],
|
|
61779
61839
|
kinds: ["system"],
|
|
61780
|
-
systemEventKinds: ["server-updated"]
|
|
61840
|
+
systemEventKinds: ["node-updating", "server-updated"]
|
|
61781
61841
|
},
|
|
61782
61842
|
{
|
|
61783
61843
|
name: "toVersion",
|
|
@@ -61787,7 +61847,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
61787
61847
|
families: ["rule"],
|
|
61788
61848
|
fields: [...RULE_TEXT],
|
|
61789
61849
|
kinds: ["system"],
|
|
61790
|
-
systemEventKinds: ["server-updated"]
|
|
61850
|
+
systemEventKinds: ["node-updating", "server-updated"]
|
|
61791
61851
|
},
|
|
61792
61852
|
{
|
|
61793
61853
|
name: "destinationsOk",
|
|
@@ -62056,7 +62116,9 @@ var NC_TEMPLATE_VARS = [
|
|
|
62056
62116
|
var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
|
|
62057
62117
|
"device-tank-low",
|
|
62058
62118
|
"device-tank-full",
|
|
62059
|
-
"device-tank-normal"
|
|
62119
|
+
"device-tank-normal",
|
|
62120
|
+
"node-restarting",
|
|
62121
|
+
"node-updating"
|
|
62060
62122
|
];
|
|
62061
62123
|
/**
|
|
62062
62124
|
* The catalog as `getTemplateCatalog` SERVES it: every descriptor, with the
|
|
@@ -64993,6 +65055,12 @@ Object.defineProperty(exports, "kebabToCamel", {
|
|
|
64993
65055
|
return kebabToCamel;
|
|
64994
65056
|
}
|
|
64995
65057
|
});
|
|
65058
|
+
Object.defineProperty(exports, "linkedStepOf", {
|
|
65059
|
+
enumerable: true,
|
|
65060
|
+
get: function() {
|
|
65061
|
+
return linkedStepOf;
|
|
65062
|
+
}
|
|
65063
|
+
});
|
|
64996
65064
|
Object.defineProperty(exports, "literal", {
|
|
64997
65065
|
enumerable: true,
|
|
64998
65066
|
get: function() {
|