@camstack/addon-pipeline 1.2.329 → 1.2.331
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-ChH7Y219.js → default-detection-model-D3SnO2hN.js} +39 -67
- package/dist/{default-detection-model-j0nBpRoB.mjs → default-detection-model-DELTCQgv.mjs} +39 -67
- package/dist/detection-pipeline/index.js +197 -31
- package/dist/detection-pipeline/index.mjs +197 -31
- package/dist/{dist-0HoA3wAi.mjs → dist-CNXhBzn6.mjs} +847 -439
- package/dist/{dist-BlIWhjnu.js → dist-DrUx3EGR.js} +892 -466
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-BPpVMnZy.js → node-B4qy3lnV.js} +1 -1
- package/dist/{node-HOMWRPzW.mjs → node-BmxmlYLx.mjs} +1 -1
- package/dist/pipeline-runner/index.js +355 -104
- package/dist/pipeline-runner/index.mjs +355 -104
- package/dist/{process-memory-DuF8pa2w.mjs → process-memory-BGc5PzZI.mjs} +1 -1
- package/dist/{process-memory-BW06vOIQ.js → process-memory-CRtWJbjV.js} +1 -1
- package/dist/recorder/index.js +7 -7
- package/dist/recorder/index.mjs +7 -7
- package/dist/{segment-demux-js-Dl52Zz8w.js → segment-demux-js-CpSgZmSR.js} +2 -2
- package/dist/{segment-demux-js-BU2MXpln.mjs → segment-demux-js-VqsLAgQ0.mjs} +2 -2
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-vNfS65In.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BnncdmtJ.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-2jlYV34n.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Bt8aa0wk.mjs +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-Ciacp783.mjs → hostInit-CF_2Rlu0.mjs} +2 -2
- package/dist/stream-broker/index.js +713 -80
- package/dist/stream-broker/index.mjs +713 -80
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DfeHvW4k.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BpXPNINd.mjs +0 -26
|
@@ -5379,7 +5379,7 @@ var ZodIssueCode = {
|
|
|
5379
5379
|
var ZodFirstPartyTypeKind;
|
|
5380
5380
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5381
5381
|
//#endregion
|
|
5382
|
-
//#region ../types/dist/sleep-
|
|
5382
|
+
//#region ../types/dist/sleep-C16NCZR2.mjs
|
|
5383
5383
|
/**
|
|
5384
5384
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5385
5385
|
* window to float samples (D455).
|
|
@@ -12600,398 +12600,35 @@ var ClipSearchStrictnessSchema = _enum([
|
|
|
12600
12600
|
"balanced",
|
|
12601
12601
|
"strict"
|
|
12602
12602
|
]);
|
|
12603
|
-
|
|
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 = [
|
|
12603
|
+
/** Steps whose effect a root label can BE. */
|
|
12604
|
+
var LABEL_SUPPLY_STEP_IDS = [
|
|
12972
12605
|
"animal-classifier",
|
|
12973
12606
|
"vehicle-classifier",
|
|
12974
12607
|
"package-detection"
|
|
12975
12608
|
];
|
|
12976
|
-
/**
|
|
12977
|
-
|
|
12978
|
-
|
|
12609
|
+
/** Steps whose box a root detection can BE. */
|
|
12610
|
+
var CROP_SUPPLY_STEP_IDS = ["plate-detection", "face-detection"];
|
|
12611
|
+
/** Every step a root model can supply. */
|
|
12612
|
+
var ROOT_SUPPLIABLE_STEP_IDS = [...LABEL_SUPPLY_STEP_IDS, ...CROP_SUPPLY_STEP_IDS];
|
|
12613
|
+
/** Narrow a step id to a label-kind one. */
|
|
12614
|
+
function isLabelSupplyStepId(value) {
|
|
12615
|
+
return LABEL_SUPPLY_STEP_IDS.some((id) => id === value);
|
|
12979
12616
|
}
|
|
12980
12617
|
/**
|
|
12981
|
-
* The EFFECT vocabulary of each
|
|
12618
|
+
* The EFFECT vocabulary of each label-kind step: exactly the strings the step
|
|
12982
12619
|
* itself emits, in its own spelling. A linked label is one of these and nothing
|
|
12983
12620
|
* else, so a tier-1 value means the same thing whichever writer produced it.
|
|
12984
12621
|
*
|
|
12985
12622
|
* - `animal-classifier`: the PRIMARY model's `-labels.json` (Open Images V7,
|
|
12986
12623
|
* 8 classes) — also the species allow-list the step offers.
|
|
12987
|
-
* - `vehicle-classifier`:
|
|
12988
|
-
*
|
|
12624
|
+
* - `vehicle-classifier`: the classifier's labels, capitalised as it emits them
|
|
12625
|
+
* (it writes `winner.class` verbatim).
|
|
12989
12626
|
* - `package-detection`: its one output class.
|
|
12990
12627
|
*
|
|
12991
|
-
* `scripts/check-label-link-vocabulary.ts` fails the build if a
|
|
12628
|
+
* `scripts/check-label-link-vocabulary.ts` fails the build if a declared
|
|
12992
12629
|
* `labelToEffect` names anything outside this table.
|
|
12993
12630
|
*/
|
|
12994
|
-
var
|
|
12631
|
+
var LABEL_SUPPLY_VOCABULARIES = {
|
|
12995
12632
|
"animal-classifier": [
|
|
12996
12633
|
"bird",
|
|
12997
12634
|
"cat",
|
|
@@ -13014,18 +12651,64 @@ var FILLABLE_STEP_VOCABULARIES = {
|
|
|
13014
12651
|
],
|
|
13015
12652
|
"package-detection": ["package"]
|
|
13016
12653
|
};
|
|
13017
|
-
/** The macro a detection must carry for
|
|
13018
|
-
var
|
|
12654
|
+
/** The macro a detection must carry for a label-kind step to apply to it. */
|
|
12655
|
+
var LABEL_SUPPLY_MACRO = {
|
|
13019
12656
|
"animal-classifier": "animal",
|
|
13020
12657
|
"vehicle-classifier": "vehicle",
|
|
13021
12658
|
"package-detection": "package"
|
|
13022
12659
|
};
|
|
13023
|
-
/**
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
|
|
13027
|
-
|
|
13028
|
-
|
|
12660
|
+
/**
|
|
12661
|
+
* Raw detector labels that name a vocabulary entry under another spelling.
|
|
12662
|
+
* Case-insensitive equality covers the rest (`car` → `Car`).
|
|
12663
|
+
*/
|
|
12664
|
+
var EFFECT_ALIASES = {
|
|
12665
|
+
"animal-classifier": {},
|
|
12666
|
+
"vehicle-classifier": {
|
|
12667
|
+
school_bus: "Bus",
|
|
12668
|
+
garbage_truck: "Truck"
|
|
12669
|
+
},
|
|
12670
|
+
"package-detection": {}
|
|
12671
|
+
};
|
|
12672
|
+
var CROP_SUPPLY_SOURCES = {
|
|
12673
|
+
"plate-detection": {
|
|
12674
|
+
rootLabels: ["license_plate"],
|
|
12675
|
+
parentMacro: "vehicle",
|
|
12676
|
+
childClass: "plate",
|
|
12677
|
+
servedChildSteps: ["plate-ocr"],
|
|
12678
|
+
use: "as-output"
|
|
12679
|
+
},
|
|
12680
|
+
"face-detection": {
|
|
12681
|
+
rootLabels: ["face"],
|
|
12682
|
+
parentMacro: "person",
|
|
12683
|
+
childClass: "face",
|
|
12684
|
+
servedChildSteps: ["face-embedding"],
|
|
12685
|
+
use: "refine",
|
|
12686
|
+
minRootInputPx: 640
|
|
12687
|
+
}
|
|
12688
|
+
};
|
|
12689
|
+
/**
|
|
12690
|
+
* Whether an operator intends a step to take the root's output when the
|
|
12691
|
+
* root declares it — the default of the `useRootModel` flag. The label kinds
|
|
12692
|
+
* default ON: the detector's answer is the cheaper one and the classifier
|
|
12693
|
+
* keeps its model for the day the root changes. The crop kinds default OFF: a
|
|
12694
|
+
* root plate box has an uncalibrated OCR margin, and root-face refinement has
|
|
12695
|
+
* not run on live traffic yet.
|
|
12696
|
+
*/
|
|
12697
|
+
var USE_ROOT_MODEL_DEFAULTS = {
|
|
12698
|
+
"animal-classifier": true,
|
|
12699
|
+
"vehicle-classifier": true,
|
|
12700
|
+
"package-detection": true,
|
|
12701
|
+
"plate-detection": false,
|
|
12702
|
+
"face-detection": false
|
|
12703
|
+
};
|
|
12704
|
+
/** The step-settings key the flag is stored under (DeviceStepConfig.settings, camera overrides). */
|
|
12705
|
+
var USE_ROOT_MODEL_SETTING_KEY = "useRootModel";
|
|
12706
|
+
/**
|
|
12707
|
+
* The retired D715 policy key. A `skip-when-filled` / `run` value still
|
|
12708
|
+
* stored under it reads as the flag (`true` / `false`) when no flag is stored
|
|
12709
|
+
* — the normal read path, not a migration.
|
|
12710
|
+
*/
|
|
12711
|
+
var RETIRED_LABEL_LINK_KEY = "labelLink";
|
|
13029
12712
|
/** `ScoredLabel.stepId` prefix of a label the detector wrote for a step. */
|
|
13030
12713
|
var LINKED_LABEL_STEP_PREFIX = "detector-link:";
|
|
13031
12714
|
/** `detector-link:<stepId>` — the attribution of a linked label. */
|
|
@@ -13037,43 +12720,150 @@ function linkedStepOf(attributionStepId) {
|
|
|
13037
12720
|
if (attributionStepId === void 0) return void 0;
|
|
13038
12721
|
if (!attributionStepId.startsWith("detector-link:")) return void 0;
|
|
13039
12722
|
const stepId = attributionStepId.slice(14);
|
|
13040
|
-
return
|
|
13041
|
-
}
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
*
|
|
13050
|
-
*
|
|
13051
|
-
*
|
|
13052
|
-
*
|
|
13053
|
-
*
|
|
13054
|
-
*
|
|
13055
|
-
* -
|
|
13056
|
-
*
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
const
|
|
13063
|
-
if (
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
|
|
13069
|
-
|
|
12723
|
+
return isLabelSupplyStepId(stepId) ? stepId : void 0;
|
|
12724
|
+
}
|
|
12725
|
+
function effectFor(stepId, label) {
|
|
12726
|
+
const alias = EFFECT_ALIASES[stepId][label];
|
|
12727
|
+
if (alias !== void 0) return alias;
|
|
12728
|
+
const folded = label.toLowerCase();
|
|
12729
|
+
return LABEL_SUPPLY_VOCABULARIES[stepId].find((v) => v.toLowerCase() === folded);
|
|
12730
|
+
}
|
|
12731
|
+
/**
|
|
12732
|
+
* Which steps a root detector can supply, from its labelmap and classMap.
|
|
12733
|
+
*
|
|
12734
|
+
* - label kind: a label counts for a step only when the classMap sends it to
|
|
12735
|
+
* that step's macro AND it names a vocabulary entry. Every root is judged
|
|
12736
|
+
* the same way — a COCO model supplies the animal classifier with the six
|
|
12737
|
+
* species COCO names, exactly as a Frigate+ model supplies seven.
|
|
12738
|
+
* - crop kind: the labelmap carries one of the step's root labels. Those
|
|
12739
|
+
* labels are deliberately left out of the classMap, so they never make a
|
|
12740
|
+
* track of their own.
|
|
12741
|
+
*
|
|
12742
|
+
* No classMap ⇒ no label supply (nothing says which macro a label lives under).
|
|
12743
|
+
*/
|
|
12744
|
+
function deriveRootSupplies(labels, classMap) {
|
|
12745
|
+
const supplies = [];
|
|
12746
|
+
if (classMap !== void 0) for (const stepId of LABEL_SUPPLY_STEP_IDS) {
|
|
12747
|
+
const labelToEffect = {};
|
|
12748
|
+
for (const label of labels) {
|
|
12749
|
+
if (classMap.mapping[label] !== LABEL_SUPPLY_MACRO[stepId]) continue;
|
|
12750
|
+
const effect = effectFor(stepId, label);
|
|
12751
|
+
if (effect !== void 0) labelToEffect[label] = effect;
|
|
12752
|
+
}
|
|
12753
|
+
const covered = new Set(Object.values(labelToEffect));
|
|
12754
|
+
if (covered.size === 0) continue;
|
|
12755
|
+
const uncovered = LABEL_SUPPLY_VOCABULARIES[stepId].filter((v) => !covered.has(v));
|
|
12756
|
+
supplies.push({
|
|
12757
|
+
kind: "label",
|
|
12758
|
+
stepId,
|
|
12759
|
+
labelToEffect,
|
|
12760
|
+
uncovered
|
|
12761
|
+
});
|
|
12762
|
+
}
|
|
12763
|
+
const present = new Set(labels);
|
|
12764
|
+
for (const stepId of CROP_SUPPLY_STEP_IDS) {
|
|
12765
|
+
const source = CROP_SUPPLY_SOURCES[stepId];
|
|
12766
|
+
const rootLabels = source.rootLabels.filter((l) => present.has(l));
|
|
12767
|
+
if (rootLabels.length === 0) continue;
|
|
12768
|
+
supplies.push({
|
|
12769
|
+
kind: "crop",
|
|
12770
|
+
stepId,
|
|
12771
|
+
rootLabels,
|
|
12772
|
+
parentMacro: source.parentMacro,
|
|
12773
|
+
childClass: source.childClass
|
|
12774
|
+
});
|
|
12775
|
+
}
|
|
12776
|
+
return supplies;
|
|
12777
|
+
}
|
|
12778
|
+
/**
|
|
12779
|
+
* The supplies a root model declares. A row registered with a declaration
|
|
12780
|
+
* carries it (`suppliesSteps`, computed at import from the model's own
|
|
12781
|
+
* labelmap); a row without one — a built-in entry, or a custom row registered
|
|
12782
|
+
* before the field existed — is derived here, on read, from the same inputs.
|
|
12783
|
+
*/
|
|
12784
|
+
function rootSuppliesOf(entry, stepDefaults) {
|
|
12785
|
+
const declared = entry?.suppliesSteps ?? deriveRootSupplies(entry !== void 0 && entry.labels.length > 0 ? entry.labels.map((l) => l.id) : stepDefaults.labels, entry?.classMap ?? stepDefaults.classMap);
|
|
12786
|
+
const inputPx = entry !== void 0 ? Math.min(entry.inputSize.width, entry.inputSize.height) : void 0;
|
|
12787
|
+
if (inputPx === void 0) return declared;
|
|
12788
|
+
return declared.map((s) => s.kind === "crop" ? {
|
|
12789
|
+
...s,
|
|
12790
|
+
rootInputPx: inputPx
|
|
12791
|
+
} : s);
|
|
12792
|
+
}
|
|
12793
|
+
/** The supply a root declares for one step, if any. */
|
|
12794
|
+
function supplyFor(supplies, stepId) {
|
|
12795
|
+
return supplies?.find((s) => s.stepId === stepId);
|
|
12796
|
+
}
|
|
12797
|
+
/**
|
|
12798
|
+
* Read the `useRootModel` flag off a step's settings bag. Absent ⇒ the
|
|
12799
|
+
* retired `labelLink` value if one is stored, else the step's default.
|
|
12800
|
+
*/
|
|
12801
|
+
function readUseRootModel(stepId, settings) {
|
|
12802
|
+
const raw = settings?.[USE_ROOT_MODEL_SETTING_KEY];
|
|
12803
|
+
if (typeof raw === "boolean") return raw;
|
|
12804
|
+
const retired = settings?.[RETIRED_LABEL_LINK_KEY];
|
|
12805
|
+
if (retired === "skip-when-filled") return true;
|
|
12806
|
+
if (retired === "run") return false;
|
|
12807
|
+
return USE_ROOT_MODEL_DEFAULTS[stepId];
|
|
12808
|
+
}
|
|
12809
|
+
/** Why a DECLARED supply is still not usable, or `undefined` when it is. */
|
|
12810
|
+
function supplyBlocker(supply) {
|
|
12811
|
+
if (supply.kind !== "crop") return void 0;
|
|
12812
|
+
const min = CROP_SUPPLY_SOURCES[supply.stepId].minRootInputPx;
|
|
12813
|
+
if (min === void 0) return void 0;
|
|
12814
|
+
return supply.rootInputPx !== void 0 && supply.rootInputPx >= min ? void 0 : "root-input-too-small";
|
|
12815
|
+
}
|
|
12816
|
+
/**
|
|
12817
|
+
* THE decision. Effective = the operator intends it AND the current root
|
|
12818
|
+
* declares it. It never looks at, changes or clears the step's `modelId`: a
|
|
12819
|
+
* root that cannot supply the step leaves the step running its own model, and
|
|
12820
|
+
* switching back to a root that can re-activates the supply by itself.
|
|
12821
|
+
*/
|
|
12822
|
+
function resolveRootSupply(stepId, settings, rootSupplies) {
|
|
12823
|
+
const supply = supplyFor(rootSupplies, stepId);
|
|
12824
|
+
const intent = readUseRootModel(stepId, settings);
|
|
12825
|
+
const blocker = supply === void 0 ? "root-does-not-declare" : supplyBlocker(supply);
|
|
13070
12826
|
return {
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
12827
|
+
stepId,
|
|
12828
|
+
supply,
|
|
12829
|
+
intent,
|
|
12830
|
+
effective: intent && blocker === void 0,
|
|
12831
|
+
inactive: intent && blocker !== void 0,
|
|
12832
|
+
...intent && blocker !== void 0 ? { inactiveReason: blocker } : {}
|
|
13075
12833
|
};
|
|
13076
12834
|
}
|
|
12835
|
+
/**
|
|
12836
|
+
* The fine label a supplied root class becomes for a step whose supply is
|
|
12837
|
+
* effective, or `undefined` when the step's `enabledClasses` switched it off —
|
|
12838
|
+
* the detection then stays at its macro (`animal`). Empty / absent allow-list
|
|
12839
|
+
* = every class.
|
|
12840
|
+
*/
|
|
12841
|
+
function allowedSuppliedEffect(effect, settings) {
|
|
12842
|
+
const raw = settings?.["enabledClasses"];
|
|
12843
|
+
if (!Array.isArray(raw) || raw.length === 0) return true;
|
|
12844
|
+
return raw.some((v) => v === effect);
|
|
12845
|
+
}
|
|
12846
|
+
/**
|
|
12847
|
+
* The parent a root child box belongs to: among `parents`, the SMALLEST whose
|
|
12848
|
+
* box holds at least {@link ROOT_CHILD_CONTAINMENT_MIN} of the child's area
|
|
12849
|
+
* (a plate inside the car, not inside the bus behind it). `-1` when none does
|
|
12850
|
+
* — the box then belongs to nobody and makes nothing.
|
|
12851
|
+
*/
|
|
12852
|
+
function containingParentIndex(child, parents) {
|
|
12853
|
+
const childArea = child.w * child.h;
|
|
12854
|
+
if (!(childArea > 0)) return -1;
|
|
12855
|
+
let best = -1;
|
|
12856
|
+
let bestArea = Number.POSITIVE_INFINITY;
|
|
12857
|
+
parents.forEach((p, i) => {
|
|
12858
|
+
if (Math.max(0, Math.min(child.x + child.w, p.x + p.w) - Math.max(child.x, p.x)) * Math.max(0, Math.min(child.y + child.h, p.y + p.h) - Math.max(child.y, p.y)) / childArea < .9) return;
|
|
12859
|
+
const area = p.w * p.h;
|
|
12860
|
+
if (area < bestArea) {
|
|
12861
|
+
best = i;
|
|
12862
|
+
bestArea = area;
|
|
12863
|
+
}
|
|
12864
|
+
});
|
|
12865
|
+
return best;
|
|
12866
|
+
}
|
|
13077
12867
|
var MODEL_FORMATS = [
|
|
13078
12868
|
"onnx",
|
|
13079
12869
|
"coreml",
|
|
@@ -13219,12 +13009,35 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
|
|
|
13219
13009
|
/** True when the weights or their data forbid commercial use. */
|
|
13220
13010
|
nonCommercial: boolean().optional()
|
|
13221
13011
|
}));
|
|
13222
|
-
/**
|
|
13223
|
-
|
|
13224
|
-
|
|
13012
|
+
/**
|
|
13013
|
+
* One step a ROOT detector can supply from its own output (D730) — see
|
|
13014
|
+
* `ModelCatalogEntry.suppliesSteps`.
|
|
13015
|
+
*
|
|
13016
|
+
* - `label`: the root's raw class IS the step's answer. `labelToEffect` maps
|
|
13017
|
+
* the root's label to the step's vocabulary; `uncovered` is the vocabulary
|
|
13018
|
+
* the root cannot produce (shown as unavailable, never a blocker).
|
|
13019
|
+
* - `crop`: the root draws the box the step would have found (`license_plate`
|
|
13020
|
+
* for plate-detection, `face` for face-detection). The box becomes a detail
|
|
13021
|
+
* child of the `parentMacro` detection that contains it — never a track.
|
|
13022
|
+
*/
|
|
13023
|
+
var RootStepSupplySchema = discriminatedUnion("kind", [object({
|
|
13024
|
+
kind: literal("label"),
|
|
13025
|
+
stepId: _enum(LABEL_SUPPLY_STEP_IDS),
|
|
13225
13026
|
labelToEffect: record(string(), string()),
|
|
13226
13027
|
uncovered: array(string()).readonly()
|
|
13227
|
-
})
|
|
13028
|
+
}), object({
|
|
13029
|
+
kind: literal("crop"),
|
|
13030
|
+
stepId: _enum(CROP_SUPPLY_STEP_IDS),
|
|
13031
|
+
rootLabels: array(string()).readonly(),
|
|
13032
|
+
parentMacro: _enum(["vehicle", "person"]),
|
|
13033
|
+
childClass: _enum(["plate", "face"]),
|
|
13034
|
+
/**
|
|
13035
|
+
* The root's smaller input side, stamped on read by `rootSuppliesOf` from
|
|
13036
|
+
* the model entry — what a step's `minRootInputPx` gate judges. Never
|
|
13037
|
+
* stored by an import.
|
|
13038
|
+
*/
|
|
13039
|
+
rootInputPx: number().int().positive().optional()
|
|
13040
|
+
})]);
|
|
13228
13041
|
var ModelCatalogEntrySchema = object({
|
|
13229
13042
|
id: string(),
|
|
13230
13043
|
name: string(),
|
|
@@ -13351,15 +13164,15 @@ var ModelCatalogEntrySchema = object({
|
|
|
13351
13164
|
*/
|
|
13352
13165
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
13353
13166
|
/**
|
|
13354
|
-
* The pipeline steps this ROOT detector
|
|
13355
|
-
* its labels name
|
|
13356
|
-
*
|
|
13357
|
-
* labelmap by `
|
|
13358
|
-
*
|
|
13359
|
-
*
|
|
13360
|
-
* `
|
|
13167
|
+
* The pipeline steps this ROOT detector can supply from its own output
|
|
13168
|
+
* (D730): its labels name a step's effect (`deer` for `animal-classifier`)
|
|
13169
|
+
* or draw a step's box (`license_plate` for `plate-detection`). Computed at
|
|
13170
|
+
* import from THIS model's labelmap by `deriveRootSupplies`, never written
|
|
13171
|
+
* by hand and never assumed per family; a row without it is derived on read
|
|
13172
|
+
* (`rootSuppliesOf`). Whether a camera uses it is the step's own
|
|
13173
|
+
* `useRootModel` flag (`resolveRootSupply`).
|
|
13361
13174
|
*/
|
|
13362
|
-
|
|
13175
|
+
suppliesSteps: array(RootStepSupplySchema).readonly().optional(),
|
|
13363
13176
|
/**
|
|
13364
13177
|
* The model's CLIP feature-space contract (text encoder, dimension, vector
|
|
13365
13178
|
* index, token window, search floor) — see `clip-model.ts`. Present ONLY on a
|
|
@@ -20855,6 +20668,373 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
20855
20668
|
kind: "mutation",
|
|
20856
20669
|
auth: "admin"
|
|
20857
20670
|
});
|
|
20671
|
+
var COCO_80_LABELS = [
|
|
20672
|
+
{
|
|
20673
|
+
id: "person",
|
|
20674
|
+
name: "Person"
|
|
20675
|
+
},
|
|
20676
|
+
{
|
|
20677
|
+
id: "bicycle",
|
|
20678
|
+
name: "Bicycle"
|
|
20679
|
+
},
|
|
20680
|
+
{
|
|
20681
|
+
id: "car",
|
|
20682
|
+
name: "Car"
|
|
20683
|
+
},
|
|
20684
|
+
{
|
|
20685
|
+
id: "motorcycle",
|
|
20686
|
+
name: "Motorcycle"
|
|
20687
|
+
},
|
|
20688
|
+
{
|
|
20689
|
+
id: "airplane",
|
|
20690
|
+
name: "Airplane"
|
|
20691
|
+
},
|
|
20692
|
+
{
|
|
20693
|
+
id: "bus",
|
|
20694
|
+
name: "Bus"
|
|
20695
|
+
},
|
|
20696
|
+
{
|
|
20697
|
+
id: "train",
|
|
20698
|
+
name: "Train"
|
|
20699
|
+
},
|
|
20700
|
+
{
|
|
20701
|
+
id: "truck",
|
|
20702
|
+
name: "Truck"
|
|
20703
|
+
},
|
|
20704
|
+
{
|
|
20705
|
+
id: "boat",
|
|
20706
|
+
name: "Boat"
|
|
20707
|
+
},
|
|
20708
|
+
{
|
|
20709
|
+
id: "traffic light",
|
|
20710
|
+
name: "Traffic Light"
|
|
20711
|
+
},
|
|
20712
|
+
{
|
|
20713
|
+
id: "fire hydrant",
|
|
20714
|
+
name: "Fire Hydrant"
|
|
20715
|
+
},
|
|
20716
|
+
{
|
|
20717
|
+
id: "stop sign",
|
|
20718
|
+
name: "Stop Sign"
|
|
20719
|
+
},
|
|
20720
|
+
{
|
|
20721
|
+
id: "parking meter",
|
|
20722
|
+
name: "Parking Meter"
|
|
20723
|
+
},
|
|
20724
|
+
{
|
|
20725
|
+
id: "bench",
|
|
20726
|
+
name: "Bench"
|
|
20727
|
+
},
|
|
20728
|
+
{
|
|
20729
|
+
id: "bird",
|
|
20730
|
+
name: "Bird"
|
|
20731
|
+
},
|
|
20732
|
+
{
|
|
20733
|
+
id: "cat",
|
|
20734
|
+
name: "Cat"
|
|
20735
|
+
},
|
|
20736
|
+
{
|
|
20737
|
+
id: "dog",
|
|
20738
|
+
name: "Dog"
|
|
20739
|
+
},
|
|
20740
|
+
{
|
|
20741
|
+
id: "horse",
|
|
20742
|
+
name: "Horse"
|
|
20743
|
+
},
|
|
20744
|
+
{
|
|
20745
|
+
id: "sheep",
|
|
20746
|
+
name: "Sheep"
|
|
20747
|
+
},
|
|
20748
|
+
{
|
|
20749
|
+
id: "cow",
|
|
20750
|
+
name: "Cow"
|
|
20751
|
+
},
|
|
20752
|
+
{
|
|
20753
|
+
id: "elephant",
|
|
20754
|
+
name: "Elephant"
|
|
20755
|
+
},
|
|
20756
|
+
{
|
|
20757
|
+
id: "bear",
|
|
20758
|
+
name: "Bear"
|
|
20759
|
+
},
|
|
20760
|
+
{
|
|
20761
|
+
id: "zebra",
|
|
20762
|
+
name: "Zebra"
|
|
20763
|
+
},
|
|
20764
|
+
{
|
|
20765
|
+
id: "giraffe",
|
|
20766
|
+
name: "Giraffe"
|
|
20767
|
+
},
|
|
20768
|
+
{
|
|
20769
|
+
id: "backpack",
|
|
20770
|
+
name: "Backpack"
|
|
20771
|
+
},
|
|
20772
|
+
{
|
|
20773
|
+
id: "umbrella",
|
|
20774
|
+
name: "Umbrella"
|
|
20775
|
+
},
|
|
20776
|
+
{
|
|
20777
|
+
id: "handbag",
|
|
20778
|
+
name: "Handbag"
|
|
20779
|
+
},
|
|
20780
|
+
{
|
|
20781
|
+
id: "tie",
|
|
20782
|
+
name: "Tie"
|
|
20783
|
+
},
|
|
20784
|
+
{
|
|
20785
|
+
id: "suitcase",
|
|
20786
|
+
name: "Suitcase"
|
|
20787
|
+
},
|
|
20788
|
+
{
|
|
20789
|
+
id: "frisbee",
|
|
20790
|
+
name: "Frisbee"
|
|
20791
|
+
},
|
|
20792
|
+
{
|
|
20793
|
+
id: "skis",
|
|
20794
|
+
name: "Skis"
|
|
20795
|
+
},
|
|
20796
|
+
{
|
|
20797
|
+
id: "snowboard",
|
|
20798
|
+
name: "Snowboard"
|
|
20799
|
+
},
|
|
20800
|
+
{
|
|
20801
|
+
id: "sports ball",
|
|
20802
|
+
name: "Sports Ball"
|
|
20803
|
+
},
|
|
20804
|
+
{
|
|
20805
|
+
id: "kite",
|
|
20806
|
+
name: "Kite"
|
|
20807
|
+
},
|
|
20808
|
+
{
|
|
20809
|
+
id: "baseball bat",
|
|
20810
|
+
name: "Baseball Bat"
|
|
20811
|
+
},
|
|
20812
|
+
{
|
|
20813
|
+
id: "baseball glove",
|
|
20814
|
+
name: "Baseball Glove"
|
|
20815
|
+
},
|
|
20816
|
+
{
|
|
20817
|
+
id: "skateboard",
|
|
20818
|
+
name: "Skateboard"
|
|
20819
|
+
},
|
|
20820
|
+
{
|
|
20821
|
+
id: "surfboard",
|
|
20822
|
+
name: "Surfboard"
|
|
20823
|
+
},
|
|
20824
|
+
{
|
|
20825
|
+
id: "tennis racket",
|
|
20826
|
+
name: "Tennis Racket"
|
|
20827
|
+
},
|
|
20828
|
+
{
|
|
20829
|
+
id: "bottle",
|
|
20830
|
+
name: "Bottle"
|
|
20831
|
+
},
|
|
20832
|
+
{
|
|
20833
|
+
id: "wine glass",
|
|
20834
|
+
name: "Wine Glass"
|
|
20835
|
+
},
|
|
20836
|
+
{
|
|
20837
|
+
id: "cup",
|
|
20838
|
+
name: "Cup"
|
|
20839
|
+
},
|
|
20840
|
+
{
|
|
20841
|
+
id: "fork",
|
|
20842
|
+
name: "Fork"
|
|
20843
|
+
},
|
|
20844
|
+
{
|
|
20845
|
+
id: "knife",
|
|
20846
|
+
name: "Knife"
|
|
20847
|
+
},
|
|
20848
|
+
{
|
|
20849
|
+
id: "spoon",
|
|
20850
|
+
name: "Spoon"
|
|
20851
|
+
},
|
|
20852
|
+
{
|
|
20853
|
+
id: "bowl",
|
|
20854
|
+
name: "Bowl"
|
|
20855
|
+
},
|
|
20856
|
+
{
|
|
20857
|
+
id: "banana",
|
|
20858
|
+
name: "Banana"
|
|
20859
|
+
},
|
|
20860
|
+
{
|
|
20861
|
+
id: "apple",
|
|
20862
|
+
name: "Apple"
|
|
20863
|
+
},
|
|
20864
|
+
{
|
|
20865
|
+
id: "sandwich",
|
|
20866
|
+
name: "Sandwich"
|
|
20867
|
+
},
|
|
20868
|
+
{
|
|
20869
|
+
id: "orange",
|
|
20870
|
+
name: "Orange"
|
|
20871
|
+
},
|
|
20872
|
+
{
|
|
20873
|
+
id: "broccoli",
|
|
20874
|
+
name: "Broccoli"
|
|
20875
|
+
},
|
|
20876
|
+
{
|
|
20877
|
+
id: "carrot",
|
|
20878
|
+
name: "Carrot"
|
|
20879
|
+
},
|
|
20880
|
+
{
|
|
20881
|
+
id: "hot dog",
|
|
20882
|
+
name: "Hot Dog"
|
|
20883
|
+
},
|
|
20884
|
+
{
|
|
20885
|
+
id: "pizza",
|
|
20886
|
+
name: "Pizza"
|
|
20887
|
+
},
|
|
20888
|
+
{
|
|
20889
|
+
id: "donut",
|
|
20890
|
+
name: "Donut"
|
|
20891
|
+
},
|
|
20892
|
+
{
|
|
20893
|
+
id: "cake",
|
|
20894
|
+
name: "Cake"
|
|
20895
|
+
},
|
|
20896
|
+
{
|
|
20897
|
+
id: "chair",
|
|
20898
|
+
name: "Chair"
|
|
20899
|
+
},
|
|
20900
|
+
{
|
|
20901
|
+
id: "couch",
|
|
20902
|
+
name: "Couch"
|
|
20903
|
+
},
|
|
20904
|
+
{
|
|
20905
|
+
id: "potted plant",
|
|
20906
|
+
name: "Potted Plant"
|
|
20907
|
+
},
|
|
20908
|
+
{
|
|
20909
|
+
id: "bed",
|
|
20910
|
+
name: "Bed"
|
|
20911
|
+
},
|
|
20912
|
+
{
|
|
20913
|
+
id: "dining table",
|
|
20914
|
+
name: "Dining Table"
|
|
20915
|
+
},
|
|
20916
|
+
{
|
|
20917
|
+
id: "toilet",
|
|
20918
|
+
name: "Toilet"
|
|
20919
|
+
},
|
|
20920
|
+
{
|
|
20921
|
+
id: "tv",
|
|
20922
|
+
name: "TV"
|
|
20923
|
+
},
|
|
20924
|
+
{
|
|
20925
|
+
id: "laptop",
|
|
20926
|
+
name: "Laptop"
|
|
20927
|
+
},
|
|
20928
|
+
{
|
|
20929
|
+
id: "mouse",
|
|
20930
|
+
name: "Mouse"
|
|
20931
|
+
},
|
|
20932
|
+
{
|
|
20933
|
+
id: "remote",
|
|
20934
|
+
name: "Remote"
|
|
20935
|
+
},
|
|
20936
|
+
{
|
|
20937
|
+
id: "keyboard",
|
|
20938
|
+
name: "Keyboard"
|
|
20939
|
+
},
|
|
20940
|
+
{
|
|
20941
|
+
id: "cell phone",
|
|
20942
|
+
name: "Cell Phone"
|
|
20943
|
+
},
|
|
20944
|
+
{
|
|
20945
|
+
id: "microwave",
|
|
20946
|
+
name: "Microwave"
|
|
20947
|
+
},
|
|
20948
|
+
{
|
|
20949
|
+
id: "oven",
|
|
20950
|
+
name: "Oven"
|
|
20951
|
+
},
|
|
20952
|
+
{
|
|
20953
|
+
id: "toaster",
|
|
20954
|
+
name: "Toaster"
|
|
20955
|
+
},
|
|
20956
|
+
{
|
|
20957
|
+
id: "sink",
|
|
20958
|
+
name: "Sink"
|
|
20959
|
+
},
|
|
20960
|
+
{
|
|
20961
|
+
id: "refrigerator",
|
|
20962
|
+
name: "Refrigerator"
|
|
20963
|
+
},
|
|
20964
|
+
{
|
|
20965
|
+
id: "book",
|
|
20966
|
+
name: "Book"
|
|
20967
|
+
},
|
|
20968
|
+
{
|
|
20969
|
+
id: "clock",
|
|
20970
|
+
name: "Clock"
|
|
20971
|
+
},
|
|
20972
|
+
{
|
|
20973
|
+
id: "vase",
|
|
20974
|
+
name: "Vase"
|
|
20975
|
+
},
|
|
20976
|
+
{
|
|
20977
|
+
id: "scissors",
|
|
20978
|
+
name: "Scissors"
|
|
20979
|
+
},
|
|
20980
|
+
{
|
|
20981
|
+
id: "teddy bear",
|
|
20982
|
+
name: "Teddy Bear"
|
|
20983
|
+
},
|
|
20984
|
+
{
|
|
20985
|
+
id: "hair drier",
|
|
20986
|
+
name: "Hair Drier"
|
|
20987
|
+
},
|
|
20988
|
+
{
|
|
20989
|
+
id: "toothbrush",
|
|
20990
|
+
name: "Toothbrush"
|
|
20991
|
+
}
|
|
20992
|
+
];
|
|
20993
|
+
new Set([
|
|
20994
|
+
{
|
|
20995
|
+
id: "person",
|
|
20996
|
+
name: "Person"
|
|
20997
|
+
},
|
|
20998
|
+
{
|
|
20999
|
+
id: "vehicle",
|
|
21000
|
+
name: "Vehicle"
|
|
21001
|
+
},
|
|
21002
|
+
{
|
|
21003
|
+
id: "animal",
|
|
21004
|
+
name: "Animal"
|
|
21005
|
+
},
|
|
21006
|
+
{
|
|
21007
|
+
id: "package",
|
|
21008
|
+
name: "Package"
|
|
21009
|
+
}
|
|
21010
|
+
].map((l) => l.id));
|
|
21011
|
+
var COCO_TO_MACRO = {
|
|
21012
|
+
mapping: {
|
|
21013
|
+
person: "person",
|
|
21014
|
+
bicycle: "vehicle",
|
|
21015
|
+
car: "vehicle",
|
|
21016
|
+
motorcycle: "vehicle",
|
|
21017
|
+
airplane: "vehicle",
|
|
21018
|
+
bus: "vehicle",
|
|
21019
|
+
train: "vehicle",
|
|
21020
|
+
truck: "vehicle",
|
|
21021
|
+
boat: "vehicle",
|
|
21022
|
+
bird: "animal",
|
|
21023
|
+
cat: "animal",
|
|
21024
|
+
dog: "animal",
|
|
21025
|
+
horse: "animal",
|
|
21026
|
+
sheep: "animal",
|
|
21027
|
+
cow: "animal",
|
|
21028
|
+
elephant: "animal",
|
|
21029
|
+
bear: "animal",
|
|
21030
|
+
zebra: "animal",
|
|
21031
|
+
giraffe: "animal",
|
|
21032
|
+
suitcase: "package",
|
|
21033
|
+
backpack: "package",
|
|
21034
|
+
handbag: "package"
|
|
21035
|
+
},
|
|
21036
|
+
preserveOriginal: false
|
|
21037
|
+
};
|
|
20858
21038
|
var AUDIO_MACRO_LABELS = [
|
|
20859
21039
|
{
|
|
20860
21040
|
id: "speech",
|
|
@@ -26182,6 +26362,34 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
26182
26362
|
timestamp: number()
|
|
26183
26363
|
});
|
|
26184
26364
|
/**
|
|
26365
|
+
* A root model's boxes standing in for one crop-kind step's own inference
|
|
26366
|
+
* (D730) — see `runPipeline.suppliedRoot`.
|
|
26367
|
+
*/
|
|
26368
|
+
var SuppliedRootOutputSchema = object({
|
|
26369
|
+
stepId: string(),
|
|
26370
|
+
/** The root model that drew the boxes — stamped on the result. */
|
|
26371
|
+
modelId: string(),
|
|
26372
|
+
detections: array(object({
|
|
26373
|
+
/** `[x1, y1, x2, y2]` in the pixels of the call's image. */
|
|
26374
|
+
bbox: tuple([
|
|
26375
|
+
number(),
|
|
26376
|
+
number(),
|
|
26377
|
+
number(),
|
|
26378
|
+
number()
|
|
26379
|
+
]),
|
|
26380
|
+
score: number(),
|
|
26381
|
+
/**
|
|
26382
|
+
* Five facial landmarks in the same pixels — a face the step's own
|
|
26383
|
+
* detector already re-found inside a root face box (D730), so its
|
|
26384
|
+
* embedder child aligns it exactly as it aligns any detected face.
|
|
26385
|
+
*/
|
|
26386
|
+
landmarks: array(object({
|
|
26387
|
+
x: number(),
|
|
26388
|
+
y: number()
|
|
26389
|
+
})).optional()
|
|
26390
|
+
})).min(1)
|
|
26391
|
+
});
|
|
26392
|
+
/**
|
|
26185
26393
|
* Reference to the frame's retained NATIVE surface + the parent crop's placement
|
|
26186
26394
|
* within the frame, so the executor can re-cut a leaf child ROI at native
|
|
26187
26395
|
* resolution on the detail plane. See the `runPipeline` `nativeCropRef` field.
|
|
@@ -26312,7 +26520,7 @@ var PipelineModelOptionSchema = object({
|
|
|
26312
26520
|
legacy: boolean().optional(),
|
|
26313
26521
|
provider: ModelProviderIdSchema.optional(),
|
|
26314
26522
|
defaultConfidence: number().optional(),
|
|
26315
|
-
|
|
26523
|
+
suppliesSteps: array(RootStepSupplySchema).readonly().optional()
|
|
26316
26524
|
});
|
|
26317
26525
|
var ConfigFieldBridge = custom();
|
|
26318
26526
|
var PipelineAddonSchemaSchema = object({
|
|
@@ -26716,7 +26924,16 @@ var pipelineExecutorCapability = {
|
|
|
26716
26924
|
* `device-not-servable`), and nothing reaches the camera's live
|
|
26717
26925
|
* trace stream. Absent ⇒ unchanged behaviour.
|
|
26718
26926
|
*/
|
|
26719
|
-
replay: literal(true).optional()
|
|
26927
|
+
replay: literal(true).optional(),
|
|
26928
|
+
/**
|
|
26929
|
+
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
26930
|
+
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
26931
|
+
* step (a Frigate+ `license_plate` for `plate-detection`): the step is
|
|
26932
|
+
* NOT inferred, these boxes are its output, and its children (the plate
|
|
26933
|
+
* reader) run on them through their own crop policy. Boxes are in the
|
|
26934
|
+
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
26935
|
+
*/
|
|
26936
|
+
suppliedRoot: SuppliedRootOutputSchema.optional()
|
|
26720
26937
|
}), PipelineRunResultBridge, { kind: "mutation" }),
|
|
26721
26938
|
/**
|
|
26722
26939
|
* Batched run — N raw frames packed into one cap call. The provider
|
|
@@ -27989,7 +28206,22 @@ var pipelineRunnerCapability = {
|
|
|
27989
28206
|
*/
|
|
27990
28207
|
cropJpeg: string().optional(),
|
|
27991
28208
|
parent: DetailParentSchema,
|
|
27992
|
-
steps: array(string()).optional()
|
|
28209
|
+
steps: array(string()).optional(),
|
|
28210
|
+
/**
|
|
28211
|
+
* The camera's root model already drew this step's boxes (D730): a
|
|
28212
|
+
* `license_plate` inside the parent vehicle. The named step is NOT
|
|
28213
|
+
* inferred — these FRAME-space boxes are its output — and its
|
|
28214
|
+
* requested children (the plate reader) run on them. Absent ⇒ every
|
|
28215
|
+
* requested step infers as before.
|
|
28216
|
+
*/
|
|
28217
|
+
supplied: object({
|
|
28218
|
+
stepId: string(),
|
|
28219
|
+
modelId: string(),
|
|
28220
|
+
boxes: array(object({
|
|
28221
|
+
bbox: NativeCropBboxSchema,
|
|
28222
|
+
score: number()
|
|
28223
|
+
})).min(1)
|
|
28224
|
+
}).optional()
|
|
27993
28225
|
}), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" }),
|
|
27994
28226
|
/**
|
|
27995
28227
|
* Run ONE enrichment step against caller-supplied pixels, with NO camera
|
|
@@ -31744,6 +31976,35 @@ var webrtcSessionCapability = {
|
|
|
31744
31976
|
alive: boolean()
|
|
31745
31977
|
})),
|
|
31746
31978
|
/**
|
|
31979
|
+
* The viewer's downlink probe, for ONE live session (D733).
|
|
31980
|
+
*
|
|
31981
|
+
* The player measures `/adaptive-probe` after the session's first decoded
|
|
31982
|
+
* frame (D635). It used to act on the reading itself, by opening a SECOND
|
|
31983
|
+
* session with `hints.downlinkMbps` — every adaptive live open became two
|
|
31984
|
+
* sessions, two ICE + DTLS handshakes and two server pipelines. It now
|
|
31985
|
+
* hands the measurement to the session it already has; the provider picks
|
|
31986
|
+
* the rung exactly as it would from an offer's hints (same viewport
|
|
31987
|
+
* ceiling) and moves the session there — in place when the negotiated
|
|
31988
|
+
* codec carries the new rendition, by the existing re-offer
|
|
31989
|
+
* (`getSessionState.pendingRenegotiation`) when it cannot.
|
|
31990
|
+
*
|
|
31991
|
+
* A MEASUREMENT, never a tier: the client does not choose. A probe only
|
|
31992
|
+
* raises the rung; lowering it stays the ladder's call on delivery.
|
|
31993
|
+
* `held` answers why nothing moved (`not-adaptive`, `pinned`,
|
|
31994
|
+
* `already-there`, `recorded`, …) — a client that gets ANY answer must not
|
|
31995
|
+
* fall back to a reconnect; only a provider that does not know the method
|
|
31996
|
+
* (an older hub) leaves the client its legacy second session.
|
|
31997
|
+
*/
|
|
31998
|
+
applyDownlinkProbe: method(object({
|
|
31999
|
+
deviceId: number().int().nonnegative(),
|
|
32000
|
+
sessionId: string(),
|
|
32001
|
+
downlinkMbps: number().nonnegative()
|
|
32002
|
+
}), object({
|
|
32003
|
+
outcome: _enum(["switching", "held"]),
|
|
32004
|
+
tier: CamProfileSchema.nullable(),
|
|
32005
|
+
reason: string()
|
|
32006
|
+
}), { kind: "mutation" }),
|
|
32007
|
+
/**
|
|
31747
32008
|
* The SERVER's half of the stream-debug overlay, for one live session.
|
|
31748
32009
|
*
|
|
31749
32010
|
* The client can measure its own transport (`getStats()`); it cannot see
|
|
@@ -34521,7 +34782,8 @@ var ConnectionEndpointSchema = object({
|
|
|
34521
34782
|
"lan-ipv6",
|
|
34522
34783
|
"public",
|
|
34523
34784
|
"loopback",
|
|
34524
|
-
"app-link"
|
|
34785
|
+
"app-link",
|
|
34786
|
+
"custom"
|
|
34525
34787
|
]),
|
|
34526
34788
|
/**
|
|
34527
34789
|
* Originating-interface kind — `lan`/`wifi`/`docker`/`vpn`/`other`/
|
|
@@ -34623,6 +34885,76 @@ var ViewerEndpointsSchema = object({
|
|
|
34623
34885
|
/** What the ranking currently resolves to (may be empty if nothing is up). */
|
|
34624
34886
|
resolved: array(string()).readonly()
|
|
34625
34887
|
});
|
|
34888
|
+
/**
|
|
34889
|
+
* DEPRECATED compatibility shape of `getHubAddresses` (D729 amendment, kept
|
|
34890
|
+
* one release for addons built against it): `cluster` is the `agents` role,
|
|
34891
|
+
* `browser` the `signIn` role; `override` is the flagged address.
|
|
34892
|
+
*/
|
|
34893
|
+
var HubAddressSnapshotSchema = object({
|
|
34894
|
+
override: string().nullable(),
|
|
34895
|
+
resolved: string().nullable(),
|
|
34896
|
+
source: _enum([
|
|
34897
|
+
"override",
|
|
34898
|
+
"auto",
|
|
34899
|
+
"none"
|
|
34900
|
+
])
|
|
34901
|
+
});
|
|
34902
|
+
var HubAddressesSchema = object({
|
|
34903
|
+
cluster: HubAddressSnapshotSchema,
|
|
34904
|
+
browser: HubAddressSnapshotSchema
|
|
34905
|
+
});
|
|
34906
|
+
/**
|
|
34907
|
+
* What an address is used for (`hub-address.ts`). `viewer` is many-valued;
|
|
34908
|
+
* `notifications`, `agents` and `signIn` are carried by at most one address.
|
|
34909
|
+
*/
|
|
34910
|
+
var HubAddressRoleSchema = _enum([
|
|
34911
|
+
"viewer",
|
|
34912
|
+
"notifications",
|
|
34913
|
+
"agents",
|
|
34914
|
+
"signIn"
|
|
34915
|
+
]);
|
|
34916
|
+
var RoleSourceSchema = _enum([
|
|
34917
|
+
"flagged",
|
|
34918
|
+
"auto",
|
|
34919
|
+
"none"
|
|
34920
|
+
]);
|
|
34921
|
+
/** One single-valued role: the flagged address, the one in use, and why. */
|
|
34922
|
+
var HubAddressRoleResolutionSchema = object({
|
|
34923
|
+
/** The address carrying the flag, or null = automatic. */
|
|
34924
|
+
flagged: string().nullable(),
|
|
34925
|
+
/** The address in use, or null when nothing qualifies (never loopback). */
|
|
34926
|
+
resolved: string().nullable(),
|
|
34927
|
+
source: RoleSourceSchema
|
|
34928
|
+
});
|
|
34929
|
+
var HubViewerResolutionSchema = object({
|
|
34930
|
+
/** The addresses flagged `viewer`, or empty = automatic. */
|
|
34931
|
+
flagged: array(string()).readonly(),
|
|
34932
|
+
/** What the apps race right now. */
|
|
34933
|
+
resolved: array(string()).readonly(),
|
|
34934
|
+
source: RoleSourceSchema
|
|
34935
|
+
});
|
|
34936
|
+
var HubAddressBookSchema = object({
|
|
34937
|
+
rows: array(ConnectionEndpointSchema.extend({
|
|
34938
|
+
/** In the hub's detected palette right now. */
|
|
34939
|
+
detected: boolean(),
|
|
34940
|
+
/** Entered by the operator (removable). */
|
|
34941
|
+
custom: boolean(),
|
|
34942
|
+
/** The roles explicitly flagged on this address. */
|
|
34943
|
+
flags: array(HubAddressRoleSchema).readonly(),
|
|
34944
|
+
/** The roles this address serves right now — flagged or automatic. */
|
|
34945
|
+
inUse: array(HubAddressRoleSchema).readonly(),
|
|
34946
|
+
/** The roles this address may be flagged with. */
|
|
34947
|
+
eligible: array(HubAddressRoleSchema).readonly()
|
|
34948
|
+
})).readonly(),
|
|
34949
|
+
roles: object({
|
|
34950
|
+
viewer: HubViewerResolutionSchema,
|
|
34951
|
+
notifications: HubAddressRoleResolutionSchema,
|
|
34952
|
+
agents: HubAddressRoleResolutionSchema,
|
|
34953
|
+
signIn: HubAddressRoleResolutionSchema
|
|
34954
|
+
}),
|
|
34955
|
+
/** The `hub=` an app link carries (D709), or null. */
|
|
34956
|
+
appLinkHub: string().nullable()
|
|
34957
|
+
});
|
|
34626
34958
|
var AllowedAddressesSchema = object({
|
|
34627
34959
|
/**
|
|
34628
34960
|
* Allowlist of interface addresses operators have explicitly opted
|
|
@@ -34669,7 +35001,24 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
34669
35001
|
* an address notification links can be flagged with, not a hub
|
|
34670
35002
|
* route. Default `false`: racers and rankers never see it. */
|
|
34671
35003
|
includeAppLink: boolean().optional()
|
|
34672
|
-
}), 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(
|
|
35004
|
+
}), 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(object({ scheme: _enum(["http", "https"]).optional() }).optional(), HubAddressBookSchema), method(object({
|
|
35005
|
+
baseUrl: string(),
|
|
35006
|
+
label: string().max(80)
|
|
35007
|
+
}), HubAddressBookSchema, {
|
|
35008
|
+
kind: "mutation",
|
|
35009
|
+
auth: "admin"
|
|
35010
|
+
}), method(object({ baseUrl: string() }), HubAddressBookSchema, {
|
|
35011
|
+
kind: "mutation",
|
|
35012
|
+
auth: "admin"
|
|
35013
|
+
}), method(object({
|
|
35014
|
+
role: HubAddressRoleSchema,
|
|
35015
|
+
baseUrl: string().nullable(),
|
|
35016
|
+
enabled: boolean(),
|
|
35017
|
+
acceptInsecureHttp: boolean().optional()
|
|
35018
|
+
}), HubAddressBookSchema, {
|
|
35019
|
+
kind: "mutation",
|
|
35020
|
+
auth: "admin"
|
|
35021
|
+
}), method(_void(), HubAddressesSchema), 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, {
|
|
34673
35022
|
kind: "mutation",
|
|
34674
35023
|
auth: "admin"
|
|
34675
35024
|
}), method(object({
|
|
@@ -43658,12 +44007,24 @@ Object.freeze({
|
|
|
43658
44007
|
addonId: null,
|
|
43659
44008
|
access: "view"
|
|
43660
44009
|
},
|
|
44010
|
+
"localNetwork.addCustomAddress": {
|
|
44011
|
+
capName: "local-network",
|
|
44012
|
+
capScope: "system",
|
|
44013
|
+
addonId: null,
|
|
44014
|
+
access: "create"
|
|
44015
|
+
},
|
|
43661
44016
|
"localNetwork.downloadCa": {
|
|
43662
44017
|
capName: "local-network",
|
|
43663
44018
|
capScope: "system",
|
|
43664
44019
|
addonId: null,
|
|
43665
44020
|
access: "view"
|
|
43666
44021
|
},
|
|
44022
|
+
"localNetwork.getAddresses": {
|
|
44023
|
+
capName: "local-network",
|
|
44024
|
+
capScope: "system",
|
|
44025
|
+
addonId: null,
|
|
44026
|
+
access: "view"
|
|
44027
|
+
},
|
|
43667
44028
|
"localNetwork.getAllowedAddresses": {
|
|
43668
44029
|
capName: "local-network",
|
|
43669
44030
|
capScope: "system",
|
|
@@ -43676,6 +44037,12 @@ Object.freeze({
|
|
|
43676
44037
|
addonId: null,
|
|
43677
44038
|
access: "view"
|
|
43678
44039
|
},
|
|
44040
|
+
"localNetwork.getHubAddresses": {
|
|
44041
|
+
capName: "local-network",
|
|
44042
|
+
capScope: "system",
|
|
44043
|
+
addonId: null,
|
|
44044
|
+
access: "view"
|
|
44045
|
+
},
|
|
43679
44046
|
"localNetwork.getNotificationEndpoint": {
|
|
43680
44047
|
capName: "local-network",
|
|
43681
44048
|
capScope: "system",
|
|
@@ -43712,6 +44079,12 @@ Object.freeze({
|
|
|
43712
44079
|
addonId: null,
|
|
43713
44080
|
access: "create"
|
|
43714
44081
|
},
|
|
44082
|
+
"localNetwork.removeCustomAddress": {
|
|
44083
|
+
capName: "local-network",
|
|
44084
|
+
capScope: "system",
|
|
44085
|
+
addonId: null,
|
|
44086
|
+
access: "delete"
|
|
44087
|
+
},
|
|
43715
44088
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
43716
44089
|
capName: "local-network",
|
|
43717
44090
|
capScope: "system",
|
|
@@ -43724,6 +44097,12 @@ Object.freeze({
|
|
|
43724
44097
|
addonId: null,
|
|
43725
44098
|
access: "create"
|
|
43726
44099
|
},
|
|
44100
|
+
"localNetwork.setAddressRole": {
|
|
44101
|
+
capName: "local-network",
|
|
44102
|
+
capScope: "system",
|
|
44103
|
+
addonId: null,
|
|
44104
|
+
access: "create"
|
|
44105
|
+
},
|
|
43727
44106
|
"localNetwork.setAllowedAddresses": {
|
|
43728
44107
|
capName: "local-network",
|
|
43729
44108
|
capScope: "system",
|
|
@@ -47978,6 +48357,12 @@ Object.freeze({
|
|
|
47978
48357
|
addonId: null,
|
|
47979
48358
|
access: "create"
|
|
47980
48359
|
},
|
|
48360
|
+
"webrtcSession.applyDownlinkProbe": {
|
|
48361
|
+
capName: "webrtc-session",
|
|
48362
|
+
capScope: "device",
|
|
48363
|
+
addonId: null,
|
|
48364
|
+
access: "create"
|
|
48365
|
+
},
|
|
47981
48366
|
"webrtcSession.closeSession": {
|
|
47982
48367
|
capName: "webrtc-session",
|
|
47983
48368
|
capScope: "device",
|
|
@@ -51900,6 +52285,11 @@ Object.freeze({
|
|
|
51900
52285
|
form: "single",
|
|
51901
52286
|
optional: false
|
|
51902
52287
|
}],
|
|
52288
|
+
"webrtcSession.applyDownlinkProbe": [{
|
|
52289
|
+
name: "deviceId",
|
|
52290
|
+
form: "single",
|
|
52291
|
+
optional: false
|
|
52292
|
+
}],
|
|
51903
52293
|
"webrtcSession.closeSession": [{
|
|
51904
52294
|
name: "deviceId",
|
|
51905
52295
|
form: "single",
|
|
@@ -52483,7 +52873,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
52483
52873
|
{
|
|
52484
52874
|
name: "summarySection",
|
|
52485
52875
|
label: "Summary: this section",
|
|
52486
|
-
description: "The section a per-section summary row is about
|
|
52876
|
+
description: "The section a per-section summary row is about; on a summary sent as one message, every section it reports, comma-separated.",
|
|
52487
52877
|
example: "Batterie scariche",
|
|
52488
52878
|
group: "system",
|
|
52489
52879
|
families: ["rule"],
|
|
@@ -52925,6 +53315,24 @@ function stepModelRunsOnFormat(models, modelId, format) {
|
|
|
52925
53315
|
}
|
|
52926
53316
|
return models.some((m) => m.legacy !== true && hasBuild(m, format));
|
|
52927
53317
|
}
|
|
53318
|
+
/** Side of the square, as a multiple of the face box's longer side. */
|
|
53319
|
+
var ROOT_FACE_REFINE_SCALE = 1.6;
|
|
53320
|
+
/**
|
|
53321
|
+
* The square (frame-space pixels) a root face box is refined in: centred on
|
|
53322
|
+
* the box, side `ROOT_FACE_REFINE_SCALE ×` its longer side, slid inside the
|
|
53323
|
+
* frame, and shrunk only when the frame's shorter side is smaller. Pure.
|
|
53324
|
+
*/
|
|
53325
|
+
function deriveRootFaceRefineRect(face, frameWidth, frameHeight) {
|
|
53326
|
+
const side = Math.min(Math.max(face.w, face.h) * ROOT_FACE_REFINE_SCALE, Math.min(frameWidth, frameHeight));
|
|
53327
|
+
const cx = face.x + face.w / 2;
|
|
53328
|
+
const cy = face.y + face.h / 2;
|
|
53329
|
+
return {
|
|
53330
|
+
x: Math.min(Math.max(0, cx - side / 2), frameWidth - side),
|
|
53331
|
+
y: Math.min(Math.max(0, cy - side / 2), frameHeight - side),
|
|
53332
|
+
w: side,
|
|
53333
|
+
h: side
|
|
53334
|
+
};
|
|
53335
|
+
}
|
|
52928
53336
|
var DETAIL_CROP_PADDING_KEY = "detailCropPaddingRatio";
|
|
52929
53337
|
var DETAIL_CROP_SQUARE_KEY = "detailCropSquare";
|
|
52930
53338
|
/**
|
|
@@ -54227,6 +54635,12 @@ Object.defineProperty(exports, "COCO_TO_MACRO", {
|
|
|
54227
54635
|
return COCO_TO_MACRO;
|
|
54228
54636
|
}
|
|
54229
54637
|
});
|
|
54638
|
+
Object.defineProperty(exports, "CROP_SUPPLY_SOURCES", {
|
|
54639
|
+
enumerable: true,
|
|
54640
|
+
get: function() {
|
|
54641
|
+
return CROP_SUPPLY_SOURCES;
|
|
54642
|
+
}
|
|
54643
|
+
});
|
|
54230
54644
|
Object.defineProperty(exports, "CamProfileSchema", {
|
|
54231
54645
|
enumerable: true,
|
|
54232
54646
|
get: function() {
|
|
@@ -54263,12 +54677,6 @@ Object.defineProperty(exports, "DEFAULT_FIRST_SIGHTING_FRESHNESS_MS", {
|
|
|
54263
54677
|
return DEFAULT_FIRST_SIGHTING_FRESHNESS_MS;
|
|
54264
54678
|
}
|
|
54265
54679
|
});
|
|
54266
|
-
Object.defineProperty(exports, "DEFAULT_LABEL_LINK_POLICY", {
|
|
54267
|
-
enumerable: true,
|
|
54268
|
-
get: function() {
|
|
54269
|
-
return DEFAULT_LABEL_LINK_POLICY;
|
|
54270
|
-
}
|
|
54271
|
-
});
|
|
54272
54680
|
Object.defineProperty(exports, "DEFAULT_NATIVE_LEASE_SETTINGS", {
|
|
54273
54681
|
enumerable: true,
|
|
54274
54682
|
get: function() {
|
|
@@ -54323,18 +54731,6 @@ Object.defineProperty(exports, "ExportRecordSchema", {
|
|
|
54323
54731
|
return ExportRecordSchema;
|
|
54324
54732
|
}
|
|
54325
54733
|
});
|
|
54326
|
-
Object.defineProperty(exports, "FILLABLE_STEP_MACRO", {
|
|
54327
|
-
enumerable: true,
|
|
54328
|
-
get: function() {
|
|
54329
|
-
return FILLABLE_STEP_MACRO;
|
|
54330
|
-
}
|
|
54331
|
-
});
|
|
54332
|
-
Object.defineProperty(exports, "FILLABLE_STEP_VOCABULARIES", {
|
|
54333
|
-
enumerable: true,
|
|
54334
|
-
get: function() {
|
|
54335
|
-
return FILLABLE_STEP_VOCABULARIES;
|
|
54336
|
-
}
|
|
54337
|
-
});
|
|
54338
54734
|
Object.defineProperty(exports, "FailureCounters", {
|
|
54339
54735
|
enumerable: true,
|
|
54340
54736
|
get: function() {
|
|
@@ -54359,16 +54755,16 @@ Object.defineProperty(exports, "HF_BASE_URL", {
|
|
|
54359
54755
|
return HF_BASE_URL;
|
|
54360
54756
|
}
|
|
54361
54757
|
});
|
|
54362
|
-
Object.defineProperty(exports, "
|
|
54758
|
+
Object.defineProperty(exports, "LABEL_SUPPLY_MACRO", {
|
|
54363
54759
|
enumerable: true,
|
|
54364
54760
|
get: function() {
|
|
54365
|
-
return
|
|
54761
|
+
return LABEL_SUPPLY_MACRO;
|
|
54366
54762
|
}
|
|
54367
54763
|
});
|
|
54368
|
-
Object.defineProperty(exports, "
|
|
54764
|
+
Object.defineProperty(exports, "LABEL_SUPPLY_VOCABULARIES", {
|
|
54369
54765
|
enumerable: true,
|
|
54370
54766
|
get: function() {
|
|
54371
|
-
return
|
|
54767
|
+
return LABEL_SUPPLY_VOCABULARIES;
|
|
54372
54768
|
}
|
|
54373
54769
|
});
|
|
54374
54770
|
Object.defineProperty(exports, "NativeLeaseAdmissionSchema", {
|
|
@@ -54425,6 +54821,12 @@ Object.defineProperty(exports, "RECORDING_SOURCE_CAMSTACK_ADDON", {
|
|
|
54425
54821
|
return RECORDING_SOURCE_CAMSTACK_ADDON;
|
|
54426
54822
|
}
|
|
54427
54823
|
});
|
|
54824
|
+
Object.defineProperty(exports, "ROOT_SUPPLIABLE_STEP_IDS", {
|
|
54825
|
+
enumerable: true,
|
|
54826
|
+
get: function() {
|
|
54827
|
+
return ROOT_SUPPLIABLE_STEP_IDS;
|
|
54828
|
+
}
|
|
54829
|
+
});
|
|
54428
54830
|
Object.defineProperty(exports, "RecordingConfigSchema", {
|
|
54429
54831
|
enumerable: true,
|
|
54430
54832
|
get: function() {
|
|
@@ -54473,6 +54875,12 @@ Object.defineProperty(exports, "addonWidgetsSourceCapability", {
|
|
|
54473
54875
|
return addonWidgetsSourceCapability;
|
|
54474
54876
|
}
|
|
54475
54877
|
});
|
|
54878
|
+
Object.defineProperty(exports, "allowedSuppliedEffect", {
|
|
54879
|
+
enumerable: true,
|
|
54880
|
+
get: function() {
|
|
54881
|
+
return allowedSuppliedEffect;
|
|
54882
|
+
}
|
|
54883
|
+
});
|
|
54476
54884
|
Object.defineProperty(exports, "array", {
|
|
54477
54885
|
enumerable: true,
|
|
54478
54886
|
get: function() {
|
|
@@ -54545,6 +54953,12 @@ Object.defineProperty(exports, "clipExportFailureOf", {
|
|
|
54545
54953
|
return clipExportFailureOf;
|
|
54546
54954
|
}
|
|
54547
54955
|
});
|
|
54956
|
+
Object.defineProperty(exports, "containingParentIndex", {
|
|
54957
|
+
enumerable: true,
|
|
54958
|
+
get: function() {
|
|
54959
|
+
return containingParentIndex;
|
|
54960
|
+
}
|
|
54961
|
+
});
|
|
54548
54962
|
Object.defineProperty(exports, "createEvent", {
|
|
54549
54963
|
enumerable: true,
|
|
54550
54964
|
get: function() {
|
|
@@ -54605,6 +55019,12 @@ Object.defineProperty(exports, "deriveRecordingMode", {
|
|
|
54605
55019
|
return deriveRecordingMode;
|
|
54606
55020
|
}
|
|
54607
55021
|
});
|
|
55022
|
+
Object.defineProperty(exports, "deriveRootFaceRefineRect", {
|
|
55023
|
+
enumerable: true,
|
|
55024
|
+
get: function() {
|
|
55025
|
+
return deriveRootFaceRefineRect;
|
|
55026
|
+
}
|
|
55027
|
+
});
|
|
54608
55028
|
Object.defineProperty(exports, "detectionPipelineCapability", {
|
|
54609
55029
|
enumerable: true,
|
|
54610
55030
|
get: function() {
|
|
@@ -54977,12 +55397,6 @@ Object.defineProperty(exports, "resolveEgressDecodeHwAccel", {
|
|
|
54977
55397
|
return resolveEgressDecodeHwAccel;
|
|
54978
55398
|
}
|
|
54979
55399
|
});
|
|
54980
|
-
Object.defineProperty(exports, "resolveLabelLink", {
|
|
54981
|
-
enumerable: true,
|
|
54982
|
-
get: function() {
|
|
54983
|
-
return resolveLabelLink;
|
|
54984
|
-
}
|
|
54985
|
-
});
|
|
54986
55400
|
Object.defineProperty(exports, "resolveLocationMode", {
|
|
54987
55401
|
enumerable: true,
|
|
54988
55402
|
get: function() {
|
|
@@ -55001,6 +55415,18 @@ Object.defineProperty(exports, "resolveRecordingProfiles", {
|
|
|
55001
55415
|
return resolveRecordingProfiles;
|
|
55002
55416
|
}
|
|
55003
55417
|
});
|
|
55418
|
+
Object.defineProperty(exports, "resolveRootSupply", {
|
|
55419
|
+
enumerable: true,
|
|
55420
|
+
get: function() {
|
|
55421
|
+
return resolveRootSupply;
|
|
55422
|
+
}
|
|
55423
|
+
});
|
|
55424
|
+
Object.defineProperty(exports, "rootSuppliesOf", {
|
|
55425
|
+
enumerable: true,
|
|
55426
|
+
get: function() {
|
|
55427
|
+
return rootSuppliesOf;
|
|
55428
|
+
}
|
|
55429
|
+
});
|
|
55004
55430
|
Object.defineProperty(exports, "runtimeDevices", {
|
|
55005
55431
|
enumerable: true,
|
|
55006
55432
|
get: function() {
|