@camstack/addon-pipeline 1.2.326 → 1.2.328
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 +49 -43
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-WnGDQAQh.js → default-detection-model-1SadEKsW.js} +120 -61
- package/dist/{default-detection-model-Bu4So71h.mjs → default-detection-model-CMeVTcPZ.mjs} +120 -61
- package/dist/detection-pipeline/index.js +49 -9
- package/dist/detection-pipeline/index.mjs +49 -9
- package/dist/{dist-BuU8Y4o1.mjs → dist-Bpub2VcJ.mjs} +584 -396
- package/dist/{dist-BTBbIGSC.js → dist-wJO7mXeO.js} +631 -395
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-UK2v2ZSw.js → node-BCrqaejt.js} +1 -1
- package/dist/{node-inZFYgkm.mjs → node-BjCSgD4M.mjs} +1 -1
- package/dist/pipeline-runner/index.js +253 -87
- package/dist/pipeline-runner/index.mjs +253 -88
- package/dist/{process-memory-DbSOL63T.mjs → process-memory-BaKQ8u2G.mjs} +1 -1
- package/dist/{process-memory-BfDlwJc4.js → process-memory-iUJuTpXs.js} +1 -1
- package/dist/recorder/index.js +9 -8
- package/dist/recorder/index.mjs +9 -8
- package/dist/{segment-demux-js-CMj020zz.mjs → segment-demux-js-C5ez9LYG.mjs} +1 -1
- package/dist/{segment-demux-js-C1GXgxZ0.js → segment-demux-js-Opx6Hv9G.js} +1 -1
- package/dist/session-decode/decode-worker-main.js +13 -21
- package/dist/session-decode/decode-worker-main.mjs +13 -21
- package/dist/stream-broker/_stub.js +1 -1
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-qHD9Dl1z.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-B94LgsV0.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPWYf4_O.mjs +26 -0
- 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-BgWrKrQn.mjs → hostInit-xOx7AvgW.mjs} +3 -3
- package/dist/stream-broker/index.js +6 -5
- package/dist/stream-broker/index.mjs +6 -5
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/inference_pool.py +38 -121
- package/python/postprocessors/scrfd.py +2 -0
- package/python/postprocessors/test_bird_edgetpu.py +124 -0
- package/python/postprocessors/testdata/bird_classifier_int8_outputs.json +1 -0
- package/python/test_inference_pool_static_batch.py +2 -4
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-NkeMtp-v.mjs +0 -26
|
@@ -12600,6 +12600,480 @@ var ClipSearchStrictnessSchema = _enum([
|
|
|
12600
12600
|
"balanced",
|
|
12601
12601
|
"strict"
|
|
12602
12602
|
]);
|
|
12603
|
+
var COCO_80_LABELS = [
|
|
12604
|
+
{
|
|
12605
|
+
id: "person",
|
|
12606
|
+
name: "Person"
|
|
12607
|
+
},
|
|
12608
|
+
{
|
|
12609
|
+
id: "bicycle",
|
|
12610
|
+
name: "Bicycle"
|
|
12611
|
+
},
|
|
12612
|
+
{
|
|
12613
|
+
id: "car",
|
|
12614
|
+
name: "Car"
|
|
12615
|
+
},
|
|
12616
|
+
{
|
|
12617
|
+
id: "motorcycle",
|
|
12618
|
+
name: "Motorcycle"
|
|
12619
|
+
},
|
|
12620
|
+
{
|
|
12621
|
+
id: "airplane",
|
|
12622
|
+
name: "Airplane"
|
|
12623
|
+
},
|
|
12624
|
+
{
|
|
12625
|
+
id: "bus",
|
|
12626
|
+
name: "Bus"
|
|
12627
|
+
},
|
|
12628
|
+
{
|
|
12629
|
+
id: "train",
|
|
12630
|
+
name: "Train"
|
|
12631
|
+
},
|
|
12632
|
+
{
|
|
12633
|
+
id: "truck",
|
|
12634
|
+
name: "Truck"
|
|
12635
|
+
},
|
|
12636
|
+
{
|
|
12637
|
+
id: "boat",
|
|
12638
|
+
name: "Boat"
|
|
12639
|
+
},
|
|
12640
|
+
{
|
|
12641
|
+
id: "traffic light",
|
|
12642
|
+
name: "Traffic Light"
|
|
12643
|
+
},
|
|
12644
|
+
{
|
|
12645
|
+
id: "fire hydrant",
|
|
12646
|
+
name: "Fire Hydrant"
|
|
12647
|
+
},
|
|
12648
|
+
{
|
|
12649
|
+
id: "stop sign",
|
|
12650
|
+
name: "Stop Sign"
|
|
12651
|
+
},
|
|
12652
|
+
{
|
|
12653
|
+
id: "parking meter",
|
|
12654
|
+
name: "Parking Meter"
|
|
12655
|
+
},
|
|
12656
|
+
{
|
|
12657
|
+
id: "bench",
|
|
12658
|
+
name: "Bench"
|
|
12659
|
+
},
|
|
12660
|
+
{
|
|
12661
|
+
id: "bird",
|
|
12662
|
+
name: "Bird"
|
|
12663
|
+
},
|
|
12664
|
+
{
|
|
12665
|
+
id: "cat",
|
|
12666
|
+
name: "Cat"
|
|
12667
|
+
},
|
|
12668
|
+
{
|
|
12669
|
+
id: "dog",
|
|
12670
|
+
name: "Dog"
|
|
12671
|
+
},
|
|
12672
|
+
{
|
|
12673
|
+
id: "horse",
|
|
12674
|
+
name: "Horse"
|
|
12675
|
+
},
|
|
12676
|
+
{
|
|
12677
|
+
id: "sheep",
|
|
12678
|
+
name: "Sheep"
|
|
12679
|
+
},
|
|
12680
|
+
{
|
|
12681
|
+
id: "cow",
|
|
12682
|
+
name: "Cow"
|
|
12683
|
+
},
|
|
12684
|
+
{
|
|
12685
|
+
id: "elephant",
|
|
12686
|
+
name: "Elephant"
|
|
12687
|
+
},
|
|
12688
|
+
{
|
|
12689
|
+
id: "bear",
|
|
12690
|
+
name: "Bear"
|
|
12691
|
+
},
|
|
12692
|
+
{
|
|
12693
|
+
id: "zebra",
|
|
12694
|
+
name: "Zebra"
|
|
12695
|
+
},
|
|
12696
|
+
{
|
|
12697
|
+
id: "giraffe",
|
|
12698
|
+
name: "Giraffe"
|
|
12699
|
+
},
|
|
12700
|
+
{
|
|
12701
|
+
id: "backpack",
|
|
12702
|
+
name: "Backpack"
|
|
12703
|
+
},
|
|
12704
|
+
{
|
|
12705
|
+
id: "umbrella",
|
|
12706
|
+
name: "Umbrella"
|
|
12707
|
+
},
|
|
12708
|
+
{
|
|
12709
|
+
id: "handbag",
|
|
12710
|
+
name: "Handbag"
|
|
12711
|
+
},
|
|
12712
|
+
{
|
|
12713
|
+
id: "tie",
|
|
12714
|
+
name: "Tie"
|
|
12715
|
+
},
|
|
12716
|
+
{
|
|
12717
|
+
id: "suitcase",
|
|
12718
|
+
name: "Suitcase"
|
|
12719
|
+
},
|
|
12720
|
+
{
|
|
12721
|
+
id: "frisbee",
|
|
12722
|
+
name: "Frisbee"
|
|
12723
|
+
},
|
|
12724
|
+
{
|
|
12725
|
+
id: "skis",
|
|
12726
|
+
name: "Skis"
|
|
12727
|
+
},
|
|
12728
|
+
{
|
|
12729
|
+
id: "snowboard",
|
|
12730
|
+
name: "Snowboard"
|
|
12731
|
+
},
|
|
12732
|
+
{
|
|
12733
|
+
id: "sports ball",
|
|
12734
|
+
name: "Sports Ball"
|
|
12735
|
+
},
|
|
12736
|
+
{
|
|
12737
|
+
id: "kite",
|
|
12738
|
+
name: "Kite"
|
|
12739
|
+
},
|
|
12740
|
+
{
|
|
12741
|
+
id: "baseball bat",
|
|
12742
|
+
name: "Baseball Bat"
|
|
12743
|
+
},
|
|
12744
|
+
{
|
|
12745
|
+
id: "baseball glove",
|
|
12746
|
+
name: "Baseball Glove"
|
|
12747
|
+
},
|
|
12748
|
+
{
|
|
12749
|
+
id: "skateboard",
|
|
12750
|
+
name: "Skateboard"
|
|
12751
|
+
},
|
|
12752
|
+
{
|
|
12753
|
+
id: "surfboard",
|
|
12754
|
+
name: "Surfboard"
|
|
12755
|
+
},
|
|
12756
|
+
{
|
|
12757
|
+
id: "tennis racket",
|
|
12758
|
+
name: "Tennis Racket"
|
|
12759
|
+
},
|
|
12760
|
+
{
|
|
12761
|
+
id: "bottle",
|
|
12762
|
+
name: "Bottle"
|
|
12763
|
+
},
|
|
12764
|
+
{
|
|
12765
|
+
id: "wine glass",
|
|
12766
|
+
name: "Wine Glass"
|
|
12767
|
+
},
|
|
12768
|
+
{
|
|
12769
|
+
id: "cup",
|
|
12770
|
+
name: "Cup"
|
|
12771
|
+
},
|
|
12772
|
+
{
|
|
12773
|
+
id: "fork",
|
|
12774
|
+
name: "Fork"
|
|
12775
|
+
},
|
|
12776
|
+
{
|
|
12777
|
+
id: "knife",
|
|
12778
|
+
name: "Knife"
|
|
12779
|
+
},
|
|
12780
|
+
{
|
|
12781
|
+
id: "spoon",
|
|
12782
|
+
name: "Spoon"
|
|
12783
|
+
},
|
|
12784
|
+
{
|
|
12785
|
+
id: "bowl",
|
|
12786
|
+
name: "Bowl"
|
|
12787
|
+
},
|
|
12788
|
+
{
|
|
12789
|
+
id: "banana",
|
|
12790
|
+
name: "Banana"
|
|
12791
|
+
},
|
|
12792
|
+
{
|
|
12793
|
+
id: "apple",
|
|
12794
|
+
name: "Apple"
|
|
12795
|
+
},
|
|
12796
|
+
{
|
|
12797
|
+
id: "sandwich",
|
|
12798
|
+
name: "Sandwich"
|
|
12799
|
+
},
|
|
12800
|
+
{
|
|
12801
|
+
id: "orange",
|
|
12802
|
+
name: "Orange"
|
|
12803
|
+
},
|
|
12804
|
+
{
|
|
12805
|
+
id: "broccoli",
|
|
12806
|
+
name: "Broccoli"
|
|
12807
|
+
},
|
|
12808
|
+
{
|
|
12809
|
+
id: "carrot",
|
|
12810
|
+
name: "Carrot"
|
|
12811
|
+
},
|
|
12812
|
+
{
|
|
12813
|
+
id: "hot dog",
|
|
12814
|
+
name: "Hot Dog"
|
|
12815
|
+
},
|
|
12816
|
+
{
|
|
12817
|
+
id: "pizza",
|
|
12818
|
+
name: "Pizza"
|
|
12819
|
+
},
|
|
12820
|
+
{
|
|
12821
|
+
id: "donut",
|
|
12822
|
+
name: "Donut"
|
|
12823
|
+
},
|
|
12824
|
+
{
|
|
12825
|
+
id: "cake",
|
|
12826
|
+
name: "Cake"
|
|
12827
|
+
},
|
|
12828
|
+
{
|
|
12829
|
+
id: "chair",
|
|
12830
|
+
name: "Chair"
|
|
12831
|
+
},
|
|
12832
|
+
{
|
|
12833
|
+
id: "couch",
|
|
12834
|
+
name: "Couch"
|
|
12835
|
+
},
|
|
12836
|
+
{
|
|
12837
|
+
id: "potted plant",
|
|
12838
|
+
name: "Potted Plant"
|
|
12839
|
+
},
|
|
12840
|
+
{
|
|
12841
|
+
id: "bed",
|
|
12842
|
+
name: "Bed"
|
|
12843
|
+
},
|
|
12844
|
+
{
|
|
12845
|
+
id: "dining table",
|
|
12846
|
+
name: "Dining Table"
|
|
12847
|
+
},
|
|
12848
|
+
{
|
|
12849
|
+
id: "toilet",
|
|
12850
|
+
name: "Toilet"
|
|
12851
|
+
},
|
|
12852
|
+
{
|
|
12853
|
+
id: "tv",
|
|
12854
|
+
name: "TV"
|
|
12855
|
+
},
|
|
12856
|
+
{
|
|
12857
|
+
id: "laptop",
|
|
12858
|
+
name: "Laptop"
|
|
12859
|
+
},
|
|
12860
|
+
{
|
|
12861
|
+
id: "mouse",
|
|
12862
|
+
name: "Mouse"
|
|
12863
|
+
},
|
|
12864
|
+
{
|
|
12865
|
+
id: "remote",
|
|
12866
|
+
name: "Remote"
|
|
12867
|
+
},
|
|
12868
|
+
{
|
|
12869
|
+
id: "keyboard",
|
|
12870
|
+
name: "Keyboard"
|
|
12871
|
+
},
|
|
12872
|
+
{
|
|
12873
|
+
id: "cell phone",
|
|
12874
|
+
name: "Cell Phone"
|
|
12875
|
+
},
|
|
12876
|
+
{
|
|
12877
|
+
id: "microwave",
|
|
12878
|
+
name: "Microwave"
|
|
12879
|
+
},
|
|
12880
|
+
{
|
|
12881
|
+
id: "oven",
|
|
12882
|
+
name: "Oven"
|
|
12883
|
+
},
|
|
12884
|
+
{
|
|
12885
|
+
id: "toaster",
|
|
12886
|
+
name: "Toaster"
|
|
12887
|
+
},
|
|
12888
|
+
{
|
|
12889
|
+
id: "sink",
|
|
12890
|
+
name: "Sink"
|
|
12891
|
+
},
|
|
12892
|
+
{
|
|
12893
|
+
id: "refrigerator",
|
|
12894
|
+
name: "Refrigerator"
|
|
12895
|
+
},
|
|
12896
|
+
{
|
|
12897
|
+
id: "book",
|
|
12898
|
+
name: "Book"
|
|
12899
|
+
},
|
|
12900
|
+
{
|
|
12901
|
+
id: "clock",
|
|
12902
|
+
name: "Clock"
|
|
12903
|
+
},
|
|
12904
|
+
{
|
|
12905
|
+
id: "vase",
|
|
12906
|
+
name: "Vase"
|
|
12907
|
+
},
|
|
12908
|
+
{
|
|
12909
|
+
id: "scissors",
|
|
12910
|
+
name: "Scissors"
|
|
12911
|
+
},
|
|
12912
|
+
{
|
|
12913
|
+
id: "teddy bear",
|
|
12914
|
+
name: "Teddy Bear"
|
|
12915
|
+
},
|
|
12916
|
+
{
|
|
12917
|
+
id: "hair drier",
|
|
12918
|
+
name: "Hair Drier"
|
|
12919
|
+
},
|
|
12920
|
+
{
|
|
12921
|
+
id: "toothbrush",
|
|
12922
|
+
name: "Toothbrush"
|
|
12923
|
+
}
|
|
12924
|
+
];
|
|
12925
|
+
new Set([
|
|
12926
|
+
{
|
|
12927
|
+
id: "person",
|
|
12928
|
+
name: "Person"
|
|
12929
|
+
},
|
|
12930
|
+
{
|
|
12931
|
+
id: "vehicle",
|
|
12932
|
+
name: "Vehicle"
|
|
12933
|
+
},
|
|
12934
|
+
{
|
|
12935
|
+
id: "animal",
|
|
12936
|
+
name: "Animal"
|
|
12937
|
+
},
|
|
12938
|
+
{
|
|
12939
|
+
id: "package",
|
|
12940
|
+
name: "Package"
|
|
12941
|
+
}
|
|
12942
|
+
].map((l) => l.id));
|
|
12943
|
+
var COCO_TO_MACRO = {
|
|
12944
|
+
mapping: {
|
|
12945
|
+
person: "person",
|
|
12946
|
+
bicycle: "vehicle",
|
|
12947
|
+
car: "vehicle",
|
|
12948
|
+
motorcycle: "vehicle",
|
|
12949
|
+
airplane: "vehicle",
|
|
12950
|
+
bus: "vehicle",
|
|
12951
|
+
train: "vehicle",
|
|
12952
|
+
truck: "vehicle",
|
|
12953
|
+
boat: "vehicle",
|
|
12954
|
+
bird: "animal",
|
|
12955
|
+
cat: "animal",
|
|
12956
|
+
dog: "animal",
|
|
12957
|
+
horse: "animal",
|
|
12958
|
+
sheep: "animal",
|
|
12959
|
+
cow: "animal",
|
|
12960
|
+
elephant: "animal",
|
|
12961
|
+
bear: "animal",
|
|
12962
|
+
zebra: "animal",
|
|
12963
|
+
giraffe: "animal",
|
|
12964
|
+
suitcase: "package",
|
|
12965
|
+
backpack: "package",
|
|
12966
|
+
handbag: "package"
|
|
12967
|
+
},
|
|
12968
|
+
preserveOriginal: false
|
|
12969
|
+
};
|
|
12970
|
+
/** Steps a root detector may declare it fills. */
|
|
12971
|
+
var FILLABLE_STEP_IDS = [
|
|
12972
|
+
"animal-classifier",
|
|
12973
|
+
"vehicle-classifier",
|
|
12974
|
+
"package-detection"
|
|
12975
|
+
];
|
|
12976
|
+
/** Narrow a step id to a fillable one — type guard, not a cast. */
|
|
12977
|
+
function isFillableStepId(value) {
|
|
12978
|
+
return FILLABLE_STEP_IDS.some((id) => id === value);
|
|
12979
|
+
}
|
|
12980
|
+
/**
|
|
12981
|
+
* The EFFECT vocabulary of each fillable step: exactly the strings the step
|
|
12982
|
+
* itself emits, in its own spelling. A linked label is one of these and nothing
|
|
12983
|
+
* else, so a tier-1 value means the same thing whichever writer produced it.
|
|
12984
|
+
*
|
|
12985
|
+
* - `animal-classifier`: the PRIMARY model's `-labels.json` (Open Images V7,
|
|
12986
|
+
* 8 classes) — also the species allow-list the step offers.
|
|
12987
|
+
* - `vehicle-classifier`: `vehicle-type-v1-labels.json`, capitalised as the
|
|
12988
|
+
* model emits them (the classifier writes `winner.class` verbatim).
|
|
12989
|
+
* - `package-detection`: its one output class.
|
|
12990
|
+
*
|
|
12991
|
+
* `scripts/check-label-link-vocabulary.ts` fails the build if a model entry's
|
|
12992
|
+
* `labelToEffect` names anything outside this table.
|
|
12993
|
+
*/
|
|
12994
|
+
var FILLABLE_STEP_VOCABULARIES = {
|
|
12995
|
+
"animal-classifier": [
|
|
12996
|
+
"bird",
|
|
12997
|
+
"cat",
|
|
12998
|
+
"cow",
|
|
12999
|
+
"deer",
|
|
13000
|
+
"dog",
|
|
13001
|
+
"horse",
|
|
13002
|
+
"sheep",
|
|
13003
|
+
"squirrel"
|
|
13004
|
+
],
|
|
13005
|
+
"vehicle-classifier": [
|
|
13006
|
+
"Ambulance",
|
|
13007
|
+
"Bicycle",
|
|
13008
|
+
"Bus",
|
|
13009
|
+
"Car",
|
|
13010
|
+
"Motorcycle",
|
|
13011
|
+
"Taxi",
|
|
13012
|
+
"Truck",
|
|
13013
|
+
"Van"
|
|
13014
|
+
],
|
|
13015
|
+
"package-detection": ["package"]
|
|
13016
|
+
};
|
|
13017
|
+
/** The macro a detection must carry for the step to apply to it. */
|
|
13018
|
+
var FILLABLE_STEP_MACRO = {
|
|
13019
|
+
"animal-classifier": "animal",
|
|
13020
|
+
"vehicle-classifier": "vehicle",
|
|
13021
|
+
"package-detection": "package"
|
|
13022
|
+
};
|
|
13023
|
+
/** The policy values of a step's `labelLink` setting. */
|
|
13024
|
+
var LABEL_LINK_POLICIES = ["run", "skip-when-filled"];
|
|
13025
|
+
/** Absent setting ⇒ this. It changes nothing unless the root model declares a fill. */
|
|
13026
|
+
var DEFAULT_LABEL_LINK_POLICY = "skip-when-filled";
|
|
13027
|
+
/** The step-settings key the policy is stored under (DeviceStepConfig.settings). */
|
|
13028
|
+
var LABEL_LINK_SETTING_KEY = "labelLink";
|
|
13029
|
+
/** `ScoredLabel.stepId` prefix of a label the detector wrote for a step. */
|
|
13030
|
+
var LINKED_LABEL_STEP_PREFIX = "detector-link:";
|
|
13031
|
+
/** `detector-link:<stepId>` — the attribution of a linked label. */
|
|
13032
|
+
function linkedLabelStepId(stepId) {
|
|
13033
|
+
return `${LINKED_LABEL_STEP_PREFIX}${stepId}`;
|
|
13034
|
+
}
|
|
13035
|
+
/** The step a linked label stands in for, or `undefined` for any other attribution. */
|
|
13036
|
+
function linkedStepOf(attributionStepId) {
|
|
13037
|
+
if (attributionStepId === void 0) return void 0;
|
|
13038
|
+
if (!attributionStepId.startsWith("detector-link:")) return void 0;
|
|
13039
|
+
const stepId = attributionStepId.slice(14);
|
|
13040
|
+
return isFillableStepId(stepId) ? stepId : void 0;
|
|
13041
|
+
}
|
|
13042
|
+
/** Read the `labelLink` policy off a step's settings bag; anything else ⇒ the default. */
|
|
13043
|
+
function readLabelLinkPolicy(settings) {
|
|
13044
|
+
const raw = settings?.[LABEL_LINK_SETTING_KEY];
|
|
13045
|
+
return LABEL_LINK_POLICIES.find((p) => p === raw) ?? "skip-when-filled";
|
|
13046
|
+
}
|
|
13047
|
+
/**
|
|
13048
|
+
* Decide the writer of one filled effect for one camera.
|
|
13049
|
+
*
|
|
13050
|
+
* - The step is not running (disabled, or not in the camera's tree): the
|
|
13051
|
+
* detector is the only writer — authoritative, nothing to skip.
|
|
13052
|
+
* - The step runs, the policy is `skip-when-filled` and every coverage gap is
|
|
13053
|
+
* switched off in `enabledClasses`: the detector is authoritative and the
|
|
13054
|
+
* step is skipped.
|
|
13055
|
+
* - Otherwise the step runs and is the writer; the linked label is a score-0
|
|
13056
|
+
* fallback.
|
|
13057
|
+
*/
|
|
13058
|
+
function resolveLabelLink(fill, step) {
|
|
13059
|
+
const policy = readLabelLinkPolicy(step?.settings);
|
|
13060
|
+
const rawEnabled = step?.settings?.["enabledClasses"];
|
|
13061
|
+
const allowList = Array.isArray(rawEnabled) && rawEnabled.length > 0 ? rawEnabled.filter((v) => typeof v === "string") : null;
|
|
13062
|
+
const openGaps = fill.uncovered.filter((g) => allowList === null || allowList.includes(g));
|
|
13063
|
+
if (step === void 0 || !step.enabled) return {
|
|
13064
|
+
authoritative: true,
|
|
13065
|
+
skip: false,
|
|
13066
|
+
policy,
|
|
13067
|
+
openGaps
|
|
13068
|
+
};
|
|
13069
|
+
const skip = policy === "skip-when-filled" && openGaps.length === 0;
|
|
13070
|
+
return {
|
|
13071
|
+
authoritative: skip,
|
|
13072
|
+
skip,
|
|
13073
|
+
policy,
|
|
13074
|
+
openGaps
|
|
13075
|
+
};
|
|
13076
|
+
}
|
|
12603
13077
|
var MODEL_FORMATS = [
|
|
12604
13078
|
"onnx",
|
|
12605
13079
|
"coreml",
|
|
@@ -12745,6 +13219,12 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
|
|
|
12745
13219
|
/** True when the weights or their data forbid commercial use. */
|
|
12746
13220
|
nonCommercial: boolean().optional()
|
|
12747
13221
|
}));
|
|
13222
|
+
/** One `fillsClassifierEffects` entry — see `ModelCatalogEntry.fillsClassifierEffects`. */
|
|
13223
|
+
var FillsClassifierEffectSchema = object({
|
|
13224
|
+
stepId: _enum(FILLABLE_STEP_IDS),
|
|
13225
|
+
labelToEffect: record(string(), string()),
|
|
13226
|
+
uncovered: array(string()).readonly()
|
|
13227
|
+
});
|
|
12748
13228
|
var ModelCatalogEntrySchema = object({
|
|
12749
13229
|
id: string(),
|
|
12750
13230
|
name: string(),
|
|
@@ -12871,6 +13351,16 @@ var ModelCatalogEntrySchema = object({
|
|
|
12871
13351
|
*/
|
|
12872
13352
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
12873
13353
|
/**
|
|
13354
|
+
* The pipeline steps this ROOT detector already does the work of (D715):
|
|
13355
|
+
* its labels name the effect the step exists to produce (`deer` for
|
|
13356
|
+
* `animal-classifier`, `package` for `package-detection`). Derived from the
|
|
13357
|
+
* labelmap by `deriveClassifierFills`, never hand-written; a COCO model
|
|
13358
|
+
* declares none. Whether a declaration is honoured is the step's own
|
|
13359
|
+
* `labelLink` policy (`resolveLabelLink`). `labelToEffect` values are in
|
|
13360
|
+
* `FILLABLE_STEP_VOCABULARIES` (guard `check-label-link-vocabulary`).
|
|
13361
|
+
*/
|
|
13362
|
+
fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional(),
|
|
13363
|
+
/**
|
|
12874
13364
|
* The model's CLIP feature-space contract (text encoder, dimension, vector
|
|
12875
13365
|
* index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
|
|
12876
13366
|
* CLIP image encoder; its absence is what "not a CLIP model" means to the
|
|
@@ -16744,7 +17234,7 @@ var detectionPipelineCapability = {
|
|
|
16744
17234
|
* This matters here more than anywhere else in the repo, because every provider
|
|
16745
17235
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
16746
17236
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
16747
|
-
* and `http://admin:hunter2@192.168.
|
|
17237
|
+
* and `http://admin:hunter2@192.168.60.139/` is a URL a browser accepts. The
|
|
16748
17238
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
16749
17239
|
* filling it is the operator's business, not ours.
|
|
16750
17240
|
*
|
|
@@ -20365,373 +20855,6 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
20365
20855
|
kind: "mutation",
|
|
20366
20856
|
auth: "admin"
|
|
20367
20857
|
});
|
|
20368
|
-
var COCO_80_LABELS = [
|
|
20369
|
-
{
|
|
20370
|
-
id: "person",
|
|
20371
|
-
name: "Person"
|
|
20372
|
-
},
|
|
20373
|
-
{
|
|
20374
|
-
id: "bicycle",
|
|
20375
|
-
name: "Bicycle"
|
|
20376
|
-
},
|
|
20377
|
-
{
|
|
20378
|
-
id: "car",
|
|
20379
|
-
name: "Car"
|
|
20380
|
-
},
|
|
20381
|
-
{
|
|
20382
|
-
id: "motorcycle",
|
|
20383
|
-
name: "Motorcycle"
|
|
20384
|
-
},
|
|
20385
|
-
{
|
|
20386
|
-
id: "airplane",
|
|
20387
|
-
name: "Airplane"
|
|
20388
|
-
},
|
|
20389
|
-
{
|
|
20390
|
-
id: "bus",
|
|
20391
|
-
name: "Bus"
|
|
20392
|
-
},
|
|
20393
|
-
{
|
|
20394
|
-
id: "train",
|
|
20395
|
-
name: "Train"
|
|
20396
|
-
},
|
|
20397
|
-
{
|
|
20398
|
-
id: "truck",
|
|
20399
|
-
name: "Truck"
|
|
20400
|
-
},
|
|
20401
|
-
{
|
|
20402
|
-
id: "boat",
|
|
20403
|
-
name: "Boat"
|
|
20404
|
-
},
|
|
20405
|
-
{
|
|
20406
|
-
id: "traffic light",
|
|
20407
|
-
name: "Traffic Light"
|
|
20408
|
-
},
|
|
20409
|
-
{
|
|
20410
|
-
id: "fire hydrant",
|
|
20411
|
-
name: "Fire Hydrant"
|
|
20412
|
-
},
|
|
20413
|
-
{
|
|
20414
|
-
id: "stop sign",
|
|
20415
|
-
name: "Stop Sign"
|
|
20416
|
-
},
|
|
20417
|
-
{
|
|
20418
|
-
id: "parking meter",
|
|
20419
|
-
name: "Parking Meter"
|
|
20420
|
-
},
|
|
20421
|
-
{
|
|
20422
|
-
id: "bench",
|
|
20423
|
-
name: "Bench"
|
|
20424
|
-
},
|
|
20425
|
-
{
|
|
20426
|
-
id: "bird",
|
|
20427
|
-
name: "Bird"
|
|
20428
|
-
},
|
|
20429
|
-
{
|
|
20430
|
-
id: "cat",
|
|
20431
|
-
name: "Cat"
|
|
20432
|
-
},
|
|
20433
|
-
{
|
|
20434
|
-
id: "dog",
|
|
20435
|
-
name: "Dog"
|
|
20436
|
-
},
|
|
20437
|
-
{
|
|
20438
|
-
id: "horse",
|
|
20439
|
-
name: "Horse"
|
|
20440
|
-
},
|
|
20441
|
-
{
|
|
20442
|
-
id: "sheep",
|
|
20443
|
-
name: "Sheep"
|
|
20444
|
-
},
|
|
20445
|
-
{
|
|
20446
|
-
id: "cow",
|
|
20447
|
-
name: "Cow"
|
|
20448
|
-
},
|
|
20449
|
-
{
|
|
20450
|
-
id: "elephant",
|
|
20451
|
-
name: "Elephant"
|
|
20452
|
-
},
|
|
20453
|
-
{
|
|
20454
|
-
id: "bear",
|
|
20455
|
-
name: "Bear"
|
|
20456
|
-
},
|
|
20457
|
-
{
|
|
20458
|
-
id: "zebra",
|
|
20459
|
-
name: "Zebra"
|
|
20460
|
-
},
|
|
20461
|
-
{
|
|
20462
|
-
id: "giraffe",
|
|
20463
|
-
name: "Giraffe"
|
|
20464
|
-
},
|
|
20465
|
-
{
|
|
20466
|
-
id: "backpack",
|
|
20467
|
-
name: "Backpack"
|
|
20468
|
-
},
|
|
20469
|
-
{
|
|
20470
|
-
id: "umbrella",
|
|
20471
|
-
name: "Umbrella"
|
|
20472
|
-
},
|
|
20473
|
-
{
|
|
20474
|
-
id: "handbag",
|
|
20475
|
-
name: "Handbag"
|
|
20476
|
-
},
|
|
20477
|
-
{
|
|
20478
|
-
id: "tie",
|
|
20479
|
-
name: "Tie"
|
|
20480
|
-
},
|
|
20481
|
-
{
|
|
20482
|
-
id: "suitcase",
|
|
20483
|
-
name: "Suitcase"
|
|
20484
|
-
},
|
|
20485
|
-
{
|
|
20486
|
-
id: "frisbee",
|
|
20487
|
-
name: "Frisbee"
|
|
20488
|
-
},
|
|
20489
|
-
{
|
|
20490
|
-
id: "skis",
|
|
20491
|
-
name: "Skis"
|
|
20492
|
-
},
|
|
20493
|
-
{
|
|
20494
|
-
id: "snowboard",
|
|
20495
|
-
name: "Snowboard"
|
|
20496
|
-
},
|
|
20497
|
-
{
|
|
20498
|
-
id: "sports ball",
|
|
20499
|
-
name: "Sports Ball"
|
|
20500
|
-
},
|
|
20501
|
-
{
|
|
20502
|
-
id: "kite",
|
|
20503
|
-
name: "Kite"
|
|
20504
|
-
},
|
|
20505
|
-
{
|
|
20506
|
-
id: "baseball bat",
|
|
20507
|
-
name: "Baseball Bat"
|
|
20508
|
-
},
|
|
20509
|
-
{
|
|
20510
|
-
id: "baseball glove",
|
|
20511
|
-
name: "Baseball Glove"
|
|
20512
|
-
},
|
|
20513
|
-
{
|
|
20514
|
-
id: "skateboard",
|
|
20515
|
-
name: "Skateboard"
|
|
20516
|
-
},
|
|
20517
|
-
{
|
|
20518
|
-
id: "surfboard",
|
|
20519
|
-
name: "Surfboard"
|
|
20520
|
-
},
|
|
20521
|
-
{
|
|
20522
|
-
id: "tennis racket",
|
|
20523
|
-
name: "Tennis Racket"
|
|
20524
|
-
},
|
|
20525
|
-
{
|
|
20526
|
-
id: "bottle",
|
|
20527
|
-
name: "Bottle"
|
|
20528
|
-
},
|
|
20529
|
-
{
|
|
20530
|
-
id: "wine glass",
|
|
20531
|
-
name: "Wine Glass"
|
|
20532
|
-
},
|
|
20533
|
-
{
|
|
20534
|
-
id: "cup",
|
|
20535
|
-
name: "Cup"
|
|
20536
|
-
},
|
|
20537
|
-
{
|
|
20538
|
-
id: "fork",
|
|
20539
|
-
name: "Fork"
|
|
20540
|
-
},
|
|
20541
|
-
{
|
|
20542
|
-
id: "knife",
|
|
20543
|
-
name: "Knife"
|
|
20544
|
-
},
|
|
20545
|
-
{
|
|
20546
|
-
id: "spoon",
|
|
20547
|
-
name: "Spoon"
|
|
20548
|
-
},
|
|
20549
|
-
{
|
|
20550
|
-
id: "bowl",
|
|
20551
|
-
name: "Bowl"
|
|
20552
|
-
},
|
|
20553
|
-
{
|
|
20554
|
-
id: "banana",
|
|
20555
|
-
name: "Banana"
|
|
20556
|
-
},
|
|
20557
|
-
{
|
|
20558
|
-
id: "apple",
|
|
20559
|
-
name: "Apple"
|
|
20560
|
-
},
|
|
20561
|
-
{
|
|
20562
|
-
id: "sandwich",
|
|
20563
|
-
name: "Sandwich"
|
|
20564
|
-
},
|
|
20565
|
-
{
|
|
20566
|
-
id: "orange",
|
|
20567
|
-
name: "Orange"
|
|
20568
|
-
},
|
|
20569
|
-
{
|
|
20570
|
-
id: "broccoli",
|
|
20571
|
-
name: "Broccoli"
|
|
20572
|
-
},
|
|
20573
|
-
{
|
|
20574
|
-
id: "carrot",
|
|
20575
|
-
name: "Carrot"
|
|
20576
|
-
},
|
|
20577
|
-
{
|
|
20578
|
-
id: "hot dog",
|
|
20579
|
-
name: "Hot Dog"
|
|
20580
|
-
},
|
|
20581
|
-
{
|
|
20582
|
-
id: "pizza",
|
|
20583
|
-
name: "Pizza"
|
|
20584
|
-
},
|
|
20585
|
-
{
|
|
20586
|
-
id: "donut",
|
|
20587
|
-
name: "Donut"
|
|
20588
|
-
},
|
|
20589
|
-
{
|
|
20590
|
-
id: "cake",
|
|
20591
|
-
name: "Cake"
|
|
20592
|
-
},
|
|
20593
|
-
{
|
|
20594
|
-
id: "chair",
|
|
20595
|
-
name: "Chair"
|
|
20596
|
-
},
|
|
20597
|
-
{
|
|
20598
|
-
id: "couch",
|
|
20599
|
-
name: "Couch"
|
|
20600
|
-
},
|
|
20601
|
-
{
|
|
20602
|
-
id: "potted plant",
|
|
20603
|
-
name: "Potted Plant"
|
|
20604
|
-
},
|
|
20605
|
-
{
|
|
20606
|
-
id: "bed",
|
|
20607
|
-
name: "Bed"
|
|
20608
|
-
},
|
|
20609
|
-
{
|
|
20610
|
-
id: "dining table",
|
|
20611
|
-
name: "Dining Table"
|
|
20612
|
-
},
|
|
20613
|
-
{
|
|
20614
|
-
id: "toilet",
|
|
20615
|
-
name: "Toilet"
|
|
20616
|
-
},
|
|
20617
|
-
{
|
|
20618
|
-
id: "tv",
|
|
20619
|
-
name: "TV"
|
|
20620
|
-
},
|
|
20621
|
-
{
|
|
20622
|
-
id: "laptop",
|
|
20623
|
-
name: "Laptop"
|
|
20624
|
-
},
|
|
20625
|
-
{
|
|
20626
|
-
id: "mouse",
|
|
20627
|
-
name: "Mouse"
|
|
20628
|
-
},
|
|
20629
|
-
{
|
|
20630
|
-
id: "remote",
|
|
20631
|
-
name: "Remote"
|
|
20632
|
-
},
|
|
20633
|
-
{
|
|
20634
|
-
id: "keyboard",
|
|
20635
|
-
name: "Keyboard"
|
|
20636
|
-
},
|
|
20637
|
-
{
|
|
20638
|
-
id: "cell phone",
|
|
20639
|
-
name: "Cell Phone"
|
|
20640
|
-
},
|
|
20641
|
-
{
|
|
20642
|
-
id: "microwave",
|
|
20643
|
-
name: "Microwave"
|
|
20644
|
-
},
|
|
20645
|
-
{
|
|
20646
|
-
id: "oven",
|
|
20647
|
-
name: "Oven"
|
|
20648
|
-
},
|
|
20649
|
-
{
|
|
20650
|
-
id: "toaster",
|
|
20651
|
-
name: "Toaster"
|
|
20652
|
-
},
|
|
20653
|
-
{
|
|
20654
|
-
id: "sink",
|
|
20655
|
-
name: "Sink"
|
|
20656
|
-
},
|
|
20657
|
-
{
|
|
20658
|
-
id: "refrigerator",
|
|
20659
|
-
name: "Refrigerator"
|
|
20660
|
-
},
|
|
20661
|
-
{
|
|
20662
|
-
id: "book",
|
|
20663
|
-
name: "Book"
|
|
20664
|
-
},
|
|
20665
|
-
{
|
|
20666
|
-
id: "clock",
|
|
20667
|
-
name: "Clock"
|
|
20668
|
-
},
|
|
20669
|
-
{
|
|
20670
|
-
id: "vase",
|
|
20671
|
-
name: "Vase"
|
|
20672
|
-
},
|
|
20673
|
-
{
|
|
20674
|
-
id: "scissors",
|
|
20675
|
-
name: "Scissors"
|
|
20676
|
-
},
|
|
20677
|
-
{
|
|
20678
|
-
id: "teddy bear",
|
|
20679
|
-
name: "Teddy Bear"
|
|
20680
|
-
},
|
|
20681
|
-
{
|
|
20682
|
-
id: "hair drier",
|
|
20683
|
-
name: "Hair Drier"
|
|
20684
|
-
},
|
|
20685
|
-
{
|
|
20686
|
-
id: "toothbrush",
|
|
20687
|
-
name: "Toothbrush"
|
|
20688
|
-
}
|
|
20689
|
-
];
|
|
20690
|
-
new Set([
|
|
20691
|
-
{
|
|
20692
|
-
id: "person",
|
|
20693
|
-
name: "Person"
|
|
20694
|
-
},
|
|
20695
|
-
{
|
|
20696
|
-
id: "vehicle",
|
|
20697
|
-
name: "Vehicle"
|
|
20698
|
-
},
|
|
20699
|
-
{
|
|
20700
|
-
id: "animal",
|
|
20701
|
-
name: "Animal"
|
|
20702
|
-
},
|
|
20703
|
-
{
|
|
20704
|
-
id: "package",
|
|
20705
|
-
name: "Package"
|
|
20706
|
-
}
|
|
20707
|
-
].map((l) => l.id));
|
|
20708
|
-
var COCO_TO_MACRO = {
|
|
20709
|
-
mapping: {
|
|
20710
|
-
person: "person",
|
|
20711
|
-
bicycle: "vehicle",
|
|
20712
|
-
car: "vehicle",
|
|
20713
|
-
motorcycle: "vehicle",
|
|
20714
|
-
airplane: "vehicle",
|
|
20715
|
-
bus: "vehicle",
|
|
20716
|
-
train: "vehicle",
|
|
20717
|
-
truck: "vehicle",
|
|
20718
|
-
boat: "vehicle",
|
|
20719
|
-
bird: "animal",
|
|
20720
|
-
cat: "animal",
|
|
20721
|
-
dog: "animal",
|
|
20722
|
-
horse: "animal",
|
|
20723
|
-
sheep: "animal",
|
|
20724
|
-
cow: "animal",
|
|
20725
|
-
elephant: "animal",
|
|
20726
|
-
bear: "animal",
|
|
20727
|
-
zebra: "animal",
|
|
20728
|
-
giraffe: "animal",
|
|
20729
|
-
suitcase: "package",
|
|
20730
|
-
backpack: "package",
|
|
20731
|
-
handbag: "package"
|
|
20732
|
-
},
|
|
20733
|
-
preserveOriginal: false
|
|
20734
|
-
};
|
|
20735
20858
|
var AUDIO_MACRO_LABELS = [
|
|
20736
20859
|
{
|
|
20737
20860
|
id: "speech",
|
|
@@ -22591,8 +22714,9 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
22591
22714
|
disabledTargetIds: array(string()).default([])
|
|
22592
22715
|
});
|
|
22593
22716
|
/**
|
|
22594
|
-
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that
|
|
22595
|
-
* still-true state. `
|
|
22717
|
+
* The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
|
|
22718
|
+
* report a still-true state. `addons` is the crash-looped addons only and
|
|
22719
|
+
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
22596
22720
|
* job is not an open state, and the alarm stays instant.
|
|
22597
22721
|
*/
|
|
22598
22722
|
var NcStateSummarySectionIdSchema = _enum([
|
|
@@ -22604,6 +22728,7 @@ var NcStateSummarySectionIdSchema = _enum([
|
|
|
22604
22728
|
"detection-blind",
|
|
22605
22729
|
"nodes",
|
|
22606
22730
|
"addons",
|
|
22731
|
+
"addon-updates",
|
|
22607
22732
|
"updates"
|
|
22608
22733
|
]);
|
|
22609
22734
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
@@ -23084,7 +23209,19 @@ var NcAlarmModeDelaysListSchema = array(object({
|
|
|
23084
23209
|
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
23085
23210
|
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
23086
23211
|
*/
|
|
23087
|
-
schedule: NcScheduleSchema.optional()
|
|
23212
|
+
schedule: NcScheduleSchema.optional(),
|
|
23213
|
+
/**
|
|
23214
|
+
* D706: while this mode's ENTRY DELAY runs, do the alarm rules' own pushes go out (as an
|
|
23215
|
+
* intrusion naming the locations)? Absent = false — the entry-delay notification is the
|
|
23216
|
+
* only one, and the matches ride the triggered notification's mosaic (D705).
|
|
23217
|
+
*/
|
|
23218
|
+
notifyDuringEntryDelay: boolean().optional(),
|
|
23219
|
+
/**
|
|
23220
|
+
* D706: notify "watched again" when a sensor this arm bypassed closes and opens again.
|
|
23221
|
+
* Absent = false (logged, not sent). Even when true it is not sent when that same sensor
|
|
23222
|
+
* is the one that starts the entry delay — the entry-delay notification already names it.
|
|
23223
|
+
*/
|
|
23224
|
+
notifySensorRewatched: boolean().optional()
|
|
23088
23225
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
23089
23226
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
23090
23227
|
mode: AlarmArmModeSchema,
|
|
@@ -23093,7 +23230,11 @@ var NcAlarmModeDelaysEditListSchema = array(object({
|
|
|
23093
23230
|
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
23094
23231
|
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
23095
23232
|
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
23096
|
-
schedule: NcScheduleSchema.nullable().optional()
|
|
23233
|
+
schedule: NcScheduleSchema.nullable().optional(),
|
|
23234
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
23235
|
+
notifyDuringEntryDelay: boolean().nullable().optional(),
|
|
23236
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
23237
|
+
notifySensorRewatched: boolean().nullable().optional()
|
|
23097
23238
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
23098
23239
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
23099
23240
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -26168,7 +26309,8 @@ var PipelineModelOptionSchema = object({
|
|
|
26168
26309
|
group: ModelVariantGroupSchema.optional(),
|
|
26169
26310
|
legacy: boolean().optional(),
|
|
26170
26311
|
provider: ModelProviderIdSchema.optional(),
|
|
26171
|
-
defaultConfidence: number().optional()
|
|
26312
|
+
defaultConfidence: number().optional(),
|
|
26313
|
+
fillsClassifierEffects: array(FillsClassifierEffectSchema).readonly().optional()
|
|
26172
26314
|
});
|
|
26173
26315
|
var ConfigFieldBridge = custom();
|
|
26174
26316
|
var PipelineAddonSchemaSchema = object({
|
|
@@ -27157,6 +27299,22 @@ var MotionSourceEnum = _enum([
|
|
|
27157
27299
|
"device-activity"
|
|
27158
27300
|
]);
|
|
27159
27301
|
/**
|
|
27302
|
+
* What opened an on-motion detection SESSION: the motion source that passed the
|
|
27303
|
+
* camera's `motionSources` gate, and what raised it (the camera itself, or a
|
|
27304
|
+
* sensor the operator attached — D672). `sensorName` is the attached sensor's
|
|
27305
|
+
* device name as the orchestrator's camera-sensors resolution last read it;
|
|
27306
|
+
* absent when unknown or when the camera itself triggered.
|
|
27307
|
+
*
|
|
27308
|
+
* Carried on the session attach ONLY so the runner's `DetectionPhaseTransition`
|
|
27309
|
+
* can say what started the session (D672 rule 11, amended 2026-10-06). The
|
|
27310
|
+
* runner never decides anything on it.
|
|
27311
|
+
*/
|
|
27312
|
+
var SessionTriggerSchema = object({
|
|
27313
|
+
source: MotionSourceEnum,
|
|
27314
|
+
triggeredBy: MotionTriggeredBySchema,
|
|
27315
|
+
sensorName: string().optional()
|
|
27316
|
+
});
|
|
27317
|
+
/**
|
|
27160
27318
|
* List of motion sources active on a camera. Empty array is valid:
|
|
27161
27319
|
* "no source" — happens for battery cams without firmware motion when
|
|
27162
27320
|
* the operator hasn't opted into the SW analyzer (would hold the
|
|
@@ -27408,6 +27566,14 @@ var RunnerCameraConfigSchema = object({
|
|
|
27408
27566
|
*/
|
|
27409
27567
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
27410
27568
|
/**
|
|
27569
|
+
* What opened this attach, on a SESSION attach only (see
|
|
27570
|
+
* {@link SessionTriggerSchema}). OPTIONAL with no default: absent on a
|
|
27571
|
+
* standing attach, an occupancy burst, a re-dispatch with no motion event
|
|
27572
|
+
* behind it, and every attach from an orchestrator older than the field — the
|
|
27573
|
+
* runner then names no source on the phase event.
|
|
27574
|
+
*/
|
|
27575
|
+
sessionTrigger: SessionTriggerSchema.optional(),
|
|
27576
|
+
/**
|
|
27411
27577
|
* WHICH root detector runs for this camera. The detection counterpart of
|
|
27412
27578
|
* {@link motionSources}, same shape and same discipline: a per-camera list
|
|
27413
27579
|
* of sources the system understands, vendor-agnostic, owned here.
|
|
@@ -34298,7 +34464,7 @@ var LocalInterfaceSchema = object({
|
|
|
34298
34464
|
name: string(),
|
|
34299
34465
|
family: _enum(["IPv4", "IPv6"]),
|
|
34300
34466
|
address: string(),
|
|
34301
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
34467
|
+
/** CIDR shorthand (e.g. `192.168.10.10/24`). Empty when OS doesn't expose. */
|
|
34302
34468
|
cidr: string(),
|
|
34303
34469
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
34304
34470
|
netmask: string(),
|
|
@@ -34352,7 +34518,8 @@ var ConnectionEndpointSchema = object({
|
|
|
34352
34518
|
"lan-ipv4",
|
|
34353
34519
|
"lan-ipv6",
|
|
34354
34520
|
"public",
|
|
34355
|
-
"loopback"
|
|
34521
|
+
"loopback",
|
|
34522
|
+
"app-link"
|
|
34356
34523
|
]),
|
|
34357
34524
|
/**
|
|
34358
34525
|
* Originating-interface kind — `lan`/`wifi`/`docker`/`vpn`/`other`/
|
|
@@ -34421,15 +34588,27 @@ var GetConnectionEndpointsResultSchema = object({
|
|
|
34421
34588
|
localPort: AdvertisedLocalPortSchema
|
|
34422
34589
|
});
|
|
34423
34590
|
/**
|
|
34424
|
-
* The
|
|
34425
|
-
*
|
|
34426
|
-
*
|
|
34591
|
+
* The address flagged for notification links. `baseUrl: null` = AUTO, which
|
|
34592
|
+
* since D709 is the CamStack app link; `resolved` reports the effective value,
|
|
34593
|
+
* so the UI can show it either way.
|
|
34427
34594
|
*/
|
|
34428
34595
|
var NotificationEndpointSchema = object({
|
|
34429
34596
|
/** The operator's explicit choice, or null for AUTO. */
|
|
34430
34597
|
baseUrl: string().nullable(),
|
|
34431
|
-
/**
|
|
34432
|
-
|
|
34598
|
+
/**
|
|
34599
|
+
* The effective flagged address: the explicit choice, else (AUTO) the
|
|
34600
|
+
* CamStack app link `https://camstack.zentik.app` (D709). A pre-D709 hub
|
|
34601
|
+
* answered the public tunnel / mesh here, or null.
|
|
34602
|
+
*/
|
|
34603
|
+
resolved: string().nullable(),
|
|
34604
|
+
/**
|
|
34605
|
+
* The hub origin an app link carries as `hub=` (D709): the hub's best
|
|
34606
|
+
* public HTTPS address — the tunnel, then the mesh (Tailscale MagicDNS) —
|
|
34607
|
+
* picked from this cap's own palette by `pickAppLinkHub`. `null` when the
|
|
34608
|
+
* hub advertises neither; the app link is then minted without `hub=`.
|
|
34609
|
+
* Absent on a pre-D709 hub.
|
|
34610
|
+
*/
|
|
34611
|
+
appLinkHub: string().nullable()
|
|
34433
34612
|
});
|
|
34434
34613
|
/**
|
|
34435
34614
|
* The URLs the SDK / viewer should race for API access. `baseUrls` empty =
|
|
@@ -34483,7 +34662,11 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
34483
34662
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
34484
34663
|
* to avoid mixed-content blocks in the browser. The public
|
|
34485
34664
|
* tunnel always emits `https://` regardless. */
|
|
34486
|
-
scheme: _enum(["http", "https"]).optional()
|
|
34665
|
+
scheme: _enum(["http", "https"]).optional(),
|
|
34666
|
+
/** Append the CamStack app link entry (`kind: 'app-link'`, D709) —
|
|
34667
|
+
* an address notification links can be flagged with, not a hub
|
|
34668
|
+
* route. Default `false`: racers and rankers never see it. */
|
|
34669
|
+
includeAppLink: boolean().optional()
|
|
34487
34670
|
}), 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, {
|
|
34488
34671
|
kind: "mutation",
|
|
34489
34672
|
auth: "admin"
|
|
@@ -34744,7 +34927,7 @@ var MeshPeerSchema = object({
|
|
|
34744
34927
|
tags: array(string()).readonly(),
|
|
34745
34928
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
34746
34929
|
exitNodeOption: boolean(),
|
|
34747
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
34930
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.10.0/24"]`). */
|
|
34748
34931
|
advertisedRoutes: array(string()).readonly(),
|
|
34749
34932
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
34750
34933
|
userLogin: string().nullable(),
|
|
@@ -52076,12 +52259,14 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
52076
52259
|
{
|
|
52077
52260
|
id: "addons",
|
|
52078
52261
|
family: "system",
|
|
52079
|
-
label: "Addons",
|
|
52080
|
-
kinds: [
|
|
52081
|
-
|
|
52082
|
-
|
|
52083
|
-
|
|
52084
|
-
|
|
52262
|
+
label: "Addons stopped",
|
|
52263
|
+
kinds: ["addon-crash-loop"]
|
|
52264
|
+
},
|
|
52265
|
+
{
|
|
52266
|
+
id: "addon-updates",
|
|
52267
|
+
family: "system",
|
|
52268
|
+
label: "Addon updates",
|
|
52269
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
52085
52270
|
},
|
|
52086
52271
|
{
|
|
52087
52272
|
id: "updates",
|
|
@@ -52241,13 +52426,15 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
52241
52426
|
},
|
|
52242
52427
|
{
|
|
52243
52428
|
name: "summaryAddons",
|
|
52244
|
-
label: "Summary: addons",
|
|
52245
|
-
example: "
|
|
52246
|
-
kinds: [
|
|
52247
|
-
|
|
52248
|
-
|
|
52249
|
-
|
|
52250
|
-
|
|
52429
|
+
label: "Summary: addons stopped",
|
|
52430
|
+
example: "hub — recorder stopped after repeated crashes",
|
|
52431
|
+
kinds: ["addon-crash-loop"]
|
|
52432
|
+
},
|
|
52433
|
+
{
|
|
52434
|
+
name: "summaryAddonUpdates",
|
|
52435
|
+
label: "Summary: addon updates",
|
|
52436
|
+
example: "hub:\n• @camstack/addon-recorder 1.2.3 → 1.2.4",
|
|
52437
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
52251
52438
|
},
|
|
52252
52439
|
{
|
|
52253
52440
|
name: "summaryUpdates",
|
|
@@ -52331,6 +52518,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
52331
52518
|
[...RULE_BODY_ONLY],
|
|
52332
52519
|
[...RULE_TEXT],
|
|
52333
52520
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
52521
|
+
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
52334
52522
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
52335
52523
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
52336
52524
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
@@ -54066,6 +54254,12 @@ Object.defineProperty(exports, "DEFAULT_FIRST_SIGHTING_FRESHNESS_MS", {
|
|
|
54066
54254
|
return DEFAULT_FIRST_SIGHTING_FRESHNESS_MS;
|
|
54067
54255
|
}
|
|
54068
54256
|
});
|
|
54257
|
+
Object.defineProperty(exports, "DEFAULT_LABEL_LINK_POLICY", {
|
|
54258
|
+
enumerable: true,
|
|
54259
|
+
get: function() {
|
|
54260
|
+
return DEFAULT_LABEL_LINK_POLICY;
|
|
54261
|
+
}
|
|
54262
|
+
});
|
|
54069
54263
|
Object.defineProperty(exports, "DEFAULT_NATIVE_LEASE_SETTINGS", {
|
|
54070
54264
|
enumerable: true,
|
|
54071
54265
|
get: function() {
|
|
@@ -54120,6 +54314,18 @@ Object.defineProperty(exports, "ExportRecordSchema", {
|
|
|
54120
54314
|
return ExportRecordSchema;
|
|
54121
54315
|
}
|
|
54122
54316
|
});
|
|
54317
|
+
Object.defineProperty(exports, "FILLABLE_STEP_MACRO", {
|
|
54318
|
+
enumerable: true,
|
|
54319
|
+
get: function() {
|
|
54320
|
+
return FILLABLE_STEP_MACRO;
|
|
54321
|
+
}
|
|
54322
|
+
});
|
|
54323
|
+
Object.defineProperty(exports, "FILLABLE_STEP_VOCABULARIES", {
|
|
54324
|
+
enumerable: true,
|
|
54325
|
+
get: function() {
|
|
54326
|
+
return FILLABLE_STEP_VOCABULARIES;
|
|
54327
|
+
}
|
|
54328
|
+
});
|
|
54123
54329
|
Object.defineProperty(exports, "FailureCounters", {
|
|
54124
54330
|
enumerable: true,
|
|
54125
54331
|
get: function() {
|
|
@@ -54144,6 +54350,18 @@ Object.defineProperty(exports, "HF_BASE_URL", {
|
|
|
54144
54350
|
return HF_BASE_URL;
|
|
54145
54351
|
}
|
|
54146
54352
|
});
|
|
54353
|
+
Object.defineProperty(exports, "LABEL_LINK_POLICIES", {
|
|
54354
|
+
enumerable: true,
|
|
54355
|
+
get: function() {
|
|
54356
|
+
return LABEL_LINK_POLICIES;
|
|
54357
|
+
}
|
|
54358
|
+
});
|
|
54359
|
+
Object.defineProperty(exports, "LABEL_LINK_SETTING_KEY", {
|
|
54360
|
+
enumerable: true,
|
|
54361
|
+
get: function() {
|
|
54362
|
+
return LABEL_LINK_SETTING_KEY;
|
|
54363
|
+
}
|
|
54364
|
+
});
|
|
54147
54365
|
Object.defineProperty(exports, "NativeLeaseAdmissionSchema", {
|
|
54148
54366
|
enumerable: true,
|
|
54149
54367
|
get: function() {
|
|
@@ -54528,6 +54746,18 @@ Object.defineProperty(exports, "lazy", {
|
|
|
54528
54746
|
return lazy;
|
|
54529
54747
|
}
|
|
54530
54748
|
});
|
|
54749
|
+
Object.defineProperty(exports, "linkedLabelStepId", {
|
|
54750
|
+
enumerable: true,
|
|
54751
|
+
get: function() {
|
|
54752
|
+
return linkedLabelStepId;
|
|
54753
|
+
}
|
|
54754
|
+
});
|
|
54755
|
+
Object.defineProperty(exports, "linkedStepOf", {
|
|
54756
|
+
enumerable: true,
|
|
54757
|
+
get: function() {
|
|
54758
|
+
return linkedStepOf;
|
|
54759
|
+
}
|
|
54760
|
+
});
|
|
54531
54761
|
Object.defineProperty(exports, "literal", {
|
|
54532
54762
|
enumerable: true,
|
|
54533
54763
|
get: function() {
|
|
@@ -54738,6 +54968,12 @@ Object.defineProperty(exports, "resolveEgressDecodeHwAccel", {
|
|
|
54738
54968
|
return resolveEgressDecodeHwAccel;
|
|
54739
54969
|
}
|
|
54740
54970
|
});
|
|
54971
|
+
Object.defineProperty(exports, "resolveLabelLink", {
|
|
54972
|
+
enumerable: true,
|
|
54973
|
+
get: function() {
|
|
54974
|
+
return resolveLabelLink;
|
|
54975
|
+
}
|
|
54976
|
+
});
|
|
54741
54977
|
Object.defineProperty(exports, "resolveLocationMode", {
|
|
54742
54978
|
enumerable: true,
|
|
54743
54979
|
get: function() {
|