@camstack/addon-pipeline 1.2.326 → 1.2.327
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 +25 -27
- 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-CBIYdAJ5.js} +3 -3
- package/dist/{default-detection-model-Bu4So71h.mjs → default-detection-model-hql6BX9-.mjs} +3 -3
- package/dist/detection-pipeline/index.js +5 -5
- package/dist/detection-pipeline/index.mjs +5 -5
- package/dist/{dist-BuU8Y4o1.mjs → dist-B9LnBPz9.mjs} +91 -27
- package/dist/{dist-BTBbIGSC.js → dist-BBZwYfSN.js} +91 -27
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-inZFYgkm.mjs → node-Ci0E-0VP.mjs} +1 -1
- package/dist/{node-UK2v2ZSw.js → node-mJQBUiEc.js} +1 -1
- package/dist/pipeline-runner/index.js +41 -12
- package/dist/pipeline-runner/index.mjs +41 -13
- package/dist/{process-memory-DbSOL63T.mjs → process-memory-B63Jlpev.mjs} +1 -1
- package/dist/{process-memory-BfDlwJc4.js → process-memory-DgEfKdtC.js} +1 -1
- package/dist/recorder/index.js +9 -8
- package/dist/recorder/index.mjs +9 -8
- package/dist/{segment-demux-js-C1GXgxZ0.js → segment-demux-js-C2ufKMu0.js} +1 -1
- package/dist/{segment-demux-js-CMj020zz.mjs → segment-demux-js-DzwHW4Ey.mjs} +1 -1
- 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-B4fPzS-8.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BDGzcgLP.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-Cg4IdtE5.mjs} +3 -3
- package/dist/stream-broker/index.js +5 -5
- package/dist/stream-broker/index.mjs +5 -5
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/postprocessors/scrfd.py +2 -0
- 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
package/THIRD_PARTY_MODELS.md
CHANGED
|
@@ -30,9 +30,9 @@ under [Non-commercial models](#non-commercial-models).
|
|
|
30
30
|
|
|
31
31
|
## Required attributions
|
|
32
32
|
|
|
33
|
-
- © Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and
|
|
33
|
+
- © Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and build-camstack-models.py (with convert_lib.py) published at https://huggingface.co/camstack/camstack-models/tree/main/source. https://github.com/ultralytics/ultralytics
|
|
34
34
|
- Coral Edge TPU models and AIY Vision Birds V1 © Google LLC, Apache-2.0. https://github.com/google-coral/test_data
|
|
35
|
-
- © Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and
|
|
35
|
+
- © Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and build-camstack-models.py (with convert_lib.py) published at https://huggingface.co/camstack/camstack-models/tree/main/source. https://github.com/ultralytics/ultralytics
|
|
36
36
|
- RF-DETR © Roboflow, Apache-2.0. https://github.com/roboflow/rf-detr
|
|
37
37
|
- YuNet weights Copyright (c) 2020 Shiqi Yu, MIT. Training code: ShiqiYu/libfacedetection.train, BSD-3-Clause. https://github.com/opencv/opencv_zoo/tree/main/models/face_detection_yunet
|
|
38
38
|
- AuraFace v1 by fal.ai, Apache-2.0. https://huggingface.co/fal/AuraFace-v1
|
|
@@ -45,11 +45,10 @@ under [Non-commercial models](#non-commercial-models).
|
|
|
45
45
|
- YAMNet © Google LLC, Apache-2.0. AudioSet ontology and labels © Google LLC, CC BY 4.0. https://github.com/tensorflow/models/tree/master/research/audioset/yamnet
|
|
46
46
|
- Qwen models © Alibaba Cloud, Apache-2.0. https://huggingface.co/Qwen · https://huggingface.co/unsloth · https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF
|
|
47
47
|
- Built with Llama. Llama 3.2 is licensed under the Llama 3.2 Community License, Copyright © Meta Platforms, Inc. All Rights Reserved. https://huggingface.co/bartowski/Llama-3.2-3B-Instruct-GGUF
|
|
48
|
-
- Scrypted YOLOv9 ReLU detectors, Koushik Dutta (scrypted/plugin-models, repository tagged MIT); trained with the YOLOv9 code of Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). https://huggingface.co/scrypted/plugin-models
|
|
49
48
|
|
|
50
49
|
Training data under attribution terms:
|
|
51
50
|
|
|
52
|
-
- **COCO 2017** (training data of `yolo26n` and
|
|
51
|
+
- **COCO 2017** (training data of `yolo26n` and 50 more): annotations CC-BY-4.0; images under their Flickr owners' terms. https://cocodataset.org/#termsofuse
|
|
53
52
|
- **WIDER FACE** (training data of `yunet-2023mar`): research-oriented terms; images CC BY-NC-ND. http://shuoyang1213.me/WIDERFACE/
|
|
54
53
|
- **Open Images V7** (training data of `animal-classifier`): annotations CC-BY-4.0 (Google LLC); images listed as CC-BY-2.0, no warranty. https://storage.googleapis.com/openimages/web/factsfigures_v7.html
|
|
55
54
|
- **DrBimmer/vehicle-classification** (training data of `vehicle-type-v1`): CC-BY-NC-4.0 — treated as binding the trained weights (conservative reading). https://huggingface.co/datasets/DrBimmer/vehicle-classification
|
|
@@ -65,27 +64,29 @@ Training data under attribution terms:
|
|
|
65
64
|
|
|
66
65
|
The folders `objectDetection/yolo26`, `objectDetection/yolov9`, `plateDetection/yolov8-plate` and `segmentation/yolo26-seg` of the model mirror hold Ultralytics weights,
|
|
67
66
|
modified by CamStack and distributed under AGPL-3.0. Their Corresponding Source
|
|
68
|
-
is the
|
|
69
|
-
|
|
67
|
+
is published in the mirror itself, in its **`source/`** folder,
|
|
68
|
+
**https://huggingface.co/camstack/camstack-models/tree/main/source**, together
|
|
69
|
+
with the upstream checkpoints it starts from:
|
|
70
70
|
|
|
71
71
|
1. **The upstream checkpoints**, published by Ultralytics at
|
|
72
72
|
https://github.com/ultralytics/assets/releases: `yolo26{n,s,m,l,x}.pt`,
|
|
73
73
|
`yolov9{t,s,m,c}.pt`, `yolo26{n,s,m}-seg.pt`.
|
|
74
|
-
2. **The export scripts** in
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
2. **The export scripts** in `source/`: `build-camstack-models.py` (ONNX
|
|
75
|
+
with a dynamic batch axis, CoreML FP16, OpenVINO IR, OpenVINO NNCF INT8),
|
|
76
|
+
`convert_lib.py` (the ONNX to OpenVINO / INT8 / CoreML converter it imports,
|
|
77
|
+
the same one CamStack's Model Studio runs), `requirements.txt` and
|
|
78
|
+
`export-models.py`. The build instructions (Python environment,
|
|
79
|
+
invocation, calibration images for INT8) are in `source/README.md` and in
|
|
80
|
+
each script's header. These scripts are CamStack's own code and are offered
|
|
81
|
+
under the MIT licence; the weights they produce keep their upstream licence.
|
|
81
82
|
|
|
82
|
-
What the
|
|
83
|
+
What the published scripts do **not** cover yet:
|
|
83
84
|
|
|
84
85
|
- **Some hosted sizes and input resolutions.** The export scripts do not list
|
|
85
86
|
every variant in the mirror (for example the `-320`/`-256` YOLO26 exports,
|
|
86
87
|
`yolov9m`/`yolov9c`, and the `yolo26*-seg` models). Each one is the same
|
|
87
|
-
Ultralytics `export()` with a different model id or `imgsz`, but no
|
|
88
|
-
|
|
88
|
+
Ultralytics `export()` with a different model id or `imgsz`, but no
|
|
89
|
+
published script reproduces it as-is.
|
|
89
90
|
- **`yolov8n-plate` has no training checkpoint.** It is a third-party model
|
|
90
91
|
(trained 2023-12-05 according to its own metadata, origin not identified).
|
|
91
92
|
The ONNX file is the only form CamStack has.
|
|
@@ -205,16 +206,13 @@ entry kept resolvable for a saved selection but no longer offered.
|
|
|
205
206
|
| `llm-qwen3-vl-8b-instruct-q4` | [Qwen3-VL (GGUF by unsloth)](https://huggingface.co/unsloth) | — / Apache-2.0 (`Apache-2.0.txt`) | — | Q4_K_M GGUF quantisation by unsloth (not re-hosted by CamStack) | https://huggingface.co/unsloth/Qwen3-VL-8B-Instruct-GGUF |
|
|
206
207
|
| `llm-qwen3.6-35b-a3b-ud-q4` | [Qwen3.6-35B-A3B (GGUF by unsloth)](https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF) | — / Apache-2.0 (`Apache-2.0.txt`) | — | UD-Q4_K_M GGUF quantisation by unsloth (not re-hosted by CamStack) | https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF |
|
|
207
208
|
|
|
208
|
-
### Model Studio catalogs (object detection, imported on request)
|
|
209
|
-
|
|
210
|
-
| Catalog ids | Upstream | Code / weights | Training data | CamStack changes | Downloaded from |
|
|
211
|
-
| --- | --- | --- | --- | --- | --- |
|
|
212
|
-
| `scrypted-yolov9t-relu-320`, `scrypted-yolov9t-relu_test-320`, `scrypted-yolov9s-relu-320`, `scrypted-yolov9s-relu_test-320`, `scrypted-yolov9m-relu-320`, `scrypted-yolov9m-relu_test-320`, `scrypted-yolov9c-relu-320`, `scrypted-yolov9c-relu_test-320`, `scrypted-yolov9t-relu-int8-320`, `scrypted-yolov9t-relu_test-int8-320`, `scrypted-yolov9s-relu-int8-320`, `scrypted-yolov9s-relu_test-int8-320`, `scrypted-yolov9m-relu-int8-320`, `scrypted-yolov9m-relu_test-int8-320`, `scrypted-yolov9c-relu-int8-320`, `scrypted-yolov9c-relu_test-int8-320` | [Scrypted plugin-models (repository tagged MIT, no per-model terms)](https://huggingface.co/scrypted/plugin-models) | GPL-3.0 (`GPL-3.0.txt`) / **Unknown** | not stated by Scrypted: UNKNOWN | none: downloaded as published, at a pinned revision | https://huggingface.co/scrypted/plugin-models |
|
|
213
|
-
| `frigate-mobiledet-edgetpu` | [Google Coral test_data](https://github.com/google-coral/test_data) | Apache-2.0 / Apache-2.0 (`Apache-2.0.txt`) | COCO 2017: annotations CC-BY-4.0; images under their Flickr owners' terms | none | https://github.com/google-coral/test_data |
|
|
214
|
-
|
|
215
209
|
### Your own models
|
|
216
210
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
211
|
+
Model Studio can import third-party models (for example community
|
|
212
|
+
object-detection catalogs) on request. They are downloaded from their
|
|
213
|
+
publishers, are not hosted or redistributed by CamStack, and keep their
|
|
214
|
+
publishers' licences; Model Studio shows the licence where the source declares
|
|
215
|
+
one. A model you upload or convert
|
|
216
|
+
yourself, or pull from your own Frigate+ account, likewise keeps whatever
|
|
217
|
+
licence its author published. CamStack does not change it and does not record
|
|
218
|
+
it.
|
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_process_memory = require("../process-memory-
|
|
6
|
+
const require_dist = require("../dist-BBZwYfSN.js");
|
|
7
|
+
const require_process_memory = require("../process-memory-DgEfKdtC.js");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
10
10
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as PoolMemoryWatchdog, E as HF_BASE_URL, En as nodePin, Kt as resolvePoolMemoryPolicy, Sn as hydrateSchema, St as mapAudioLabelToMacro, U as audioAnalysisCapability, Un as EventCategory, W as audioAnalyzerCapability, _n as audioChunkBytesPerSample, fn as errMsg, m as DEFAULT_AUDIO_ANALYZER_CONFIG, mn as BaseAddon, r as AUDIO_BACKEND_CHOICES, xn as expandAudioChunkToF32le } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { A as PoolMemoryWatchdog, E as HF_BASE_URL, En as nodePin, Kt as resolvePoolMemoryPolicy, Sn as hydrateSchema, St as mapAudioLabelToMacro, U as audioAnalysisCapability, Un as EventCategory, W as audioAnalyzerCapability, _n as audioChunkBytesPerSample, fn as errMsg, m as DEFAULT_AUDIO_ANALYZER_CONFIG, mn as BaseAddon, r as AUDIO_BACKEND_CHOICES, xn as expandAudioChunkToF32le } from "../dist-B9LnBPz9.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B63Jlpev.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
1
|
+
const require_dist = require("./dist-BBZwYfSN.js");
|
|
2
2
|
const require_worker_protocol = require("./worker-protocol-C-G8qmye.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
//#region src/detection-pipeline/registry/effective-confidence.ts
|
|
@@ -43,13 +43,13 @@ var ULTRALYTICS_AGPL = {
|
|
|
43
43
|
url: "https://github.com/ultralytics/ultralytics"
|
|
44
44
|
},
|
|
45
45
|
url: "https://github.com/ultralytics/ultralytics/blob/main/LICENSE",
|
|
46
|
-
attribution: "© Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and
|
|
46
|
+
attribution: "© Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and build-camstack-models.py (with convert_lib.py) published at https://huggingface.co/camstack/camstack-models/tree/main/source.",
|
|
47
47
|
modifications: "exported to ONNX, OpenVINO IR and CoreML (scripts/build-camstack-models.py)",
|
|
48
48
|
hosting: "camstack-hf"
|
|
49
49
|
};
|
|
50
50
|
var ULTRALYTICS_YOLOV9_AGPL = {
|
|
51
51
|
...ULTRALYTICS_AGPL,
|
|
52
|
-
attribution: "© Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and
|
|
52
|
+
attribution: "© Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and build-camstack-models.py (with convert_lib.py) published at https://huggingface.co/camstack/camstack-models/tree/main/source."
|
|
53
53
|
};
|
|
54
54
|
/** The CamStack Coral COCO detector (SSD MobileNet V2). */
|
|
55
55
|
var CORAL_COCO_APACHE = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as audioKindId, Yt as stepModelRunsOnFormat, _t as hfModelUrl, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, p as COCO_TO_MACRO, vt as inferModelProvider, y as DEVICE_BACKEND_TO_FORMAT } from "./dist-
|
|
1
|
+
import { G as audioKindId, Yt as stepModelRunsOnFormat, _t as hfModelUrl, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, p as COCO_TO_MACRO, vt as inferModelProvider, y as DEVICE_BACKEND_TO_FORMAT } from "./dist-B9LnBPz9.mjs";
|
|
2
2
|
import { t as isWorkerReply } from "./worker-protocol-D_NzPcnh.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
//#region src/detection-pipeline/registry/effective-confidence.ts
|
|
@@ -43,13 +43,13 @@ var ULTRALYTICS_AGPL = {
|
|
|
43
43
|
url: "https://github.com/ultralytics/ultralytics"
|
|
44
44
|
},
|
|
45
45
|
url: "https://github.com/ultralytics/ultralytics/blob/main/LICENSE",
|
|
46
|
-
attribution: "© Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and
|
|
46
|
+
attribution: "© Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and build-camstack-models.py (with convert_lib.py) published at https://huggingface.co/camstack/camstack-models/tree/main/source.",
|
|
47
47
|
modifications: "exported to ONNX, OpenVINO IR and CoreML (scripts/build-camstack-models.py)",
|
|
48
48
|
hosting: "camstack-hf"
|
|
49
49
|
};
|
|
50
50
|
var ULTRALYTICS_YOLOV9_AGPL = {
|
|
51
51
|
...ULTRALYTICS_AGPL,
|
|
52
|
-
attribution: "© Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and
|
|
52
|
+
attribution: "© Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and build-camstack-models.py (with convert_lib.py) published at https://huggingface.co/camstack/camstack-models/tree/main/source."
|
|
53
53
|
};
|
|
54
54
|
/** The CamStack Coral COCO detector (SSD MobileNet V2). */
|
|
55
55
|
var CORAL_COCO_APACHE = {
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-BBZwYfSN.js");
|
|
7
|
+
const require_node = require("../node-mJQBUiEc.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-CBIYdAJ5.js");
|
|
9
9
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-DgEfKdtC.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_chunk.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -4093,7 +4093,7 @@ function requestedModels(steps) {
|
|
|
4093
4093
|
const walk = (nodes) => {
|
|
4094
4094
|
for (const step of nodes) {
|
|
4095
4095
|
if (!step.enabled) continue;
|
|
4096
|
-
out.set(step.addonId, step.modelId);
|
|
4096
|
+
if (step.modelId !== void 0) out.set(step.addonId, step.modelId);
|
|
4097
4097
|
if (step.children !== void 0) walk(step.children);
|
|
4098
4098
|
}
|
|
4099
4099
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as PoolMemoryWatchdog, An as sleep, At as overlayClusterStepSettings, Dn as parseJsonUnknown, En as nodePin, Ft as pipelineExecutorCapability, Hn as union, Ht as resolveClusterStepModelId, Jt as runtimeDevices$1, Kt as resolvePoolMemoryPolicy, Mn as array, Mt as pickClusterStepSettings, Rn as object, Sn as hydrateSchema, Un as EventCategory, V as YAMNET_TO_MACRO, Vn as string, Yt as stepModelRunsOnFormat, bt as loadContributionCapability, ct as evaluateZoneRules, d as CLUSTER_MODEL_SCOPED_STEPS, en as supportedRuntimes$1, et as defaultDeviceFor$1, fn as errMsg, h as DEFAULT_CLUSTER_STEP_SETTINGS, it as detectionPipelineCapability, mn as BaseAddon, n as APPLE_SA_TO_MACRO, st as enumerateInferenceDevices, vn as createEvent, y as DEVICE_BACKEND_TO_FORMAT } from "../dist-
|
|
3
|
-
import { s as readProcessCost } from "../node-
|
|
4
|
-
import { _ as getStep, a as buildSubtreeCanRun, b as landmarkPrecisionVerdict, c as macroGateVerdict, g as getDefaultModelForFormat, h as ALL_STEPS, i as mergeCustomModels, m as ALL_PIPELINE_STEPS, n as resolveDefaultDetectionModel, r as CustomModelCatalog, u as localFrameRegistry, v as getStepDefinition, x as resolveModelDefaultConfidence, y as resolveModelForFormat } from "../default-detection-model-
|
|
2
|
+
import { A as PoolMemoryWatchdog, An as sleep, At as overlayClusterStepSettings, Dn as parseJsonUnknown, En as nodePin, Ft as pipelineExecutorCapability, Hn as union, Ht as resolveClusterStepModelId, Jt as runtimeDevices$1, Kt as resolvePoolMemoryPolicy, Mn as array, Mt as pickClusterStepSettings, Rn as object, Sn as hydrateSchema, Un as EventCategory, V as YAMNET_TO_MACRO, Vn as string, Yt as stepModelRunsOnFormat, bt as loadContributionCapability, ct as evaluateZoneRules, d as CLUSTER_MODEL_SCOPED_STEPS, en as supportedRuntimes$1, et as defaultDeviceFor$1, fn as errMsg, h as DEFAULT_CLUSTER_STEP_SETTINGS, it as detectionPipelineCapability, mn as BaseAddon, n as APPLE_SA_TO_MACRO, st as enumerateInferenceDevices, vn as createEvent, y as DEVICE_BACKEND_TO_FORMAT } from "../dist-B9LnBPz9.mjs";
|
|
3
|
+
import { s as readProcessCost } from "../node-Ci0E-0VP.mjs";
|
|
4
|
+
import { _ as getStep, a as buildSubtreeCanRun, b as landmarkPrecisionVerdict, c as macroGateVerdict, g as getDefaultModelForFormat, h as ALL_STEPS, i as mergeCustomModels, m as ALL_PIPELINE_STEPS, n as resolveDefaultDetectionModel, r as CustomModelCatalog, u as localFrameRegistry, v as getStepDefinition, x as resolveModelDefaultConfidence, y as resolveModelForFormat } from "../default-detection-model-hql6BX9-.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
6
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B63Jlpev.mjs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
@@ -4086,7 +4086,7 @@ function requestedModels(steps) {
|
|
|
4086
4086
|
const walk = (nodes) => {
|
|
4087
4087
|
for (const step of nodes) {
|
|
4088
4088
|
if (!step.enabled) continue;
|
|
4089
|
-
out.set(step.addonId, step.modelId);
|
|
4089
|
+
if (step.modelId !== void 0) out.set(step.addonId, step.modelId);
|
|
4090
4090
|
if (step.children !== void 0) walk(step.children);
|
|
4091
4091
|
}
|
|
4092
4092
|
};
|
|
@@ -16744,7 +16744,7 @@ var detectionPipelineCapability = {
|
|
|
16744
16744
|
* This matters here more than anywhere else in the repo, because every provider
|
|
16745
16745
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
16746
16746
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
16747
|
-
* and `http://admin:hunter2@192.168.
|
|
16747
|
+
* and `http://admin:hunter2@192.168.60.139/` is a URL a browser accepts. The
|
|
16748
16748
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
16749
16749
|
* filling it is the operator's business, not ours.
|
|
16750
16750
|
*
|
|
@@ -22591,8 +22591,9 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
22591
22591
|
disabledTargetIds: array(string()).default([])
|
|
22592
22592
|
});
|
|
22593
22593
|
/**
|
|
22594
|
-
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that
|
|
22595
|
-
* still-true state. `
|
|
22594
|
+
* The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
|
|
22595
|
+
* report a still-true state. `addons` is the crash-looped addons only and
|
|
22596
|
+
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
22596
22597
|
* job is not an open state, and the alarm stays instant.
|
|
22597
22598
|
*/
|
|
22598
22599
|
var NcStateSummarySectionIdSchema = _enum([
|
|
@@ -22604,6 +22605,7 @@ var NcStateSummarySectionIdSchema = _enum([
|
|
|
22604
22605
|
"detection-blind",
|
|
22605
22606
|
"nodes",
|
|
22606
22607
|
"addons",
|
|
22608
|
+
"addon-updates",
|
|
22607
22609
|
"updates"
|
|
22608
22610
|
]);
|
|
22609
22611
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
@@ -23084,7 +23086,19 @@ var NcAlarmModeDelaysListSchema = array(object({
|
|
|
23084
23086
|
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
23085
23087
|
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
23086
23088
|
*/
|
|
23087
|
-
schedule: NcScheduleSchema.optional()
|
|
23089
|
+
schedule: NcScheduleSchema.optional(),
|
|
23090
|
+
/**
|
|
23091
|
+
* D706: while this mode's ENTRY DELAY runs, do the alarm rules' own pushes go out (as an
|
|
23092
|
+
* intrusion naming the locations)? Absent = false — the entry-delay notification is the
|
|
23093
|
+
* only one, and the matches ride the triggered notification's mosaic (D705).
|
|
23094
|
+
*/
|
|
23095
|
+
notifyDuringEntryDelay: boolean().optional(),
|
|
23096
|
+
/**
|
|
23097
|
+
* D706: notify "watched again" when a sensor this arm bypassed closes and opens again.
|
|
23098
|
+
* Absent = false (logged, not sent). Even when true it is not sent when that same sensor
|
|
23099
|
+
* is the one that starts the entry delay — the entry-delay notification already names it.
|
|
23100
|
+
*/
|
|
23101
|
+
notifySensorRewatched: boolean().optional()
|
|
23088
23102
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
23089
23103
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
23090
23104
|
mode: AlarmArmModeSchema,
|
|
@@ -23093,7 +23107,11 @@ var NcAlarmModeDelaysEditListSchema = array(object({
|
|
|
23093
23107
|
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
23094
23108
|
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
23095
23109
|
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
23096
|
-
schedule: NcScheduleSchema.nullable().optional()
|
|
23110
|
+
schedule: NcScheduleSchema.nullable().optional(),
|
|
23111
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
23112
|
+
notifyDuringEntryDelay: boolean().nullable().optional(),
|
|
23113
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
23114
|
+
notifySensorRewatched: boolean().nullable().optional()
|
|
23097
23115
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
23098
23116
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
23099
23117
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -27157,6 +27175,22 @@ var MotionSourceEnum = _enum([
|
|
|
27157
27175
|
"device-activity"
|
|
27158
27176
|
]);
|
|
27159
27177
|
/**
|
|
27178
|
+
* What opened an on-motion detection SESSION: the motion source that passed the
|
|
27179
|
+
* camera's `motionSources` gate, and what raised it (the camera itself, or a
|
|
27180
|
+
* sensor the operator attached — D672). `sensorName` is the attached sensor's
|
|
27181
|
+
* device name as the orchestrator's camera-sensors resolution last read it;
|
|
27182
|
+
* absent when unknown or when the camera itself triggered.
|
|
27183
|
+
*
|
|
27184
|
+
* Carried on the session attach ONLY so the runner's `DetectionPhaseTransition`
|
|
27185
|
+
* can say what started the session (D672 rule 11, amended 2026-10-06). The
|
|
27186
|
+
* runner never decides anything on it.
|
|
27187
|
+
*/
|
|
27188
|
+
var SessionTriggerSchema = object({
|
|
27189
|
+
source: MotionSourceEnum,
|
|
27190
|
+
triggeredBy: MotionTriggeredBySchema,
|
|
27191
|
+
sensorName: string().optional()
|
|
27192
|
+
});
|
|
27193
|
+
/**
|
|
27160
27194
|
* List of motion sources active on a camera. Empty array is valid:
|
|
27161
27195
|
* "no source" — happens for battery cams without firmware motion when
|
|
27162
27196
|
* the operator hasn't opted into the SW analyzer (would hold the
|
|
@@ -27408,6 +27442,14 @@ var RunnerCameraConfigSchema = object({
|
|
|
27408
27442
|
*/
|
|
27409
27443
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
27410
27444
|
/**
|
|
27445
|
+
* What opened this attach, on a SESSION attach only (see
|
|
27446
|
+
* {@link SessionTriggerSchema}). OPTIONAL with no default: absent on a
|
|
27447
|
+
* standing attach, an occupancy burst, a re-dispatch with no motion event
|
|
27448
|
+
* behind it, and every attach from an orchestrator older than the field — the
|
|
27449
|
+
* runner then names no source on the phase event.
|
|
27450
|
+
*/
|
|
27451
|
+
sessionTrigger: SessionTriggerSchema.optional(),
|
|
27452
|
+
/**
|
|
27411
27453
|
* WHICH root detector runs for this camera. The detection counterpart of
|
|
27412
27454
|
* {@link motionSources}, same shape and same discipline: a per-camera list
|
|
27413
27455
|
* of sources the system understands, vendor-agnostic, owned here.
|
|
@@ -34298,7 +34340,7 @@ var LocalInterfaceSchema = object({
|
|
|
34298
34340
|
name: string(),
|
|
34299
34341
|
family: _enum(["IPv4", "IPv6"]),
|
|
34300
34342
|
address: string(),
|
|
34301
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
34343
|
+
/** CIDR shorthand (e.g. `192.168.10.10/24`). Empty when OS doesn't expose. */
|
|
34302
34344
|
cidr: string(),
|
|
34303
34345
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
34304
34346
|
netmask: string(),
|
|
@@ -34352,7 +34394,8 @@ var ConnectionEndpointSchema = object({
|
|
|
34352
34394
|
"lan-ipv4",
|
|
34353
34395
|
"lan-ipv6",
|
|
34354
34396
|
"public",
|
|
34355
|
-
"loopback"
|
|
34397
|
+
"loopback",
|
|
34398
|
+
"app-link"
|
|
34356
34399
|
]),
|
|
34357
34400
|
/**
|
|
34358
34401
|
* Originating-interface kind — `lan`/`wifi`/`docker`/`vpn`/`other`/
|
|
@@ -34421,15 +34464,27 @@ var GetConnectionEndpointsResultSchema = object({
|
|
|
34421
34464
|
localPort: AdvertisedLocalPortSchema
|
|
34422
34465
|
});
|
|
34423
34466
|
/**
|
|
34424
|
-
* The
|
|
34425
|
-
*
|
|
34426
|
-
*
|
|
34467
|
+
* The address flagged for notification links. `baseUrl: null` = AUTO, which
|
|
34468
|
+
* since D709 is the CamStack app link; `resolved` reports the effective value,
|
|
34469
|
+
* so the UI can show it either way.
|
|
34427
34470
|
*/
|
|
34428
34471
|
var NotificationEndpointSchema = object({
|
|
34429
34472
|
/** The operator's explicit choice, or null for AUTO. */
|
|
34430
34473
|
baseUrl: string().nullable(),
|
|
34431
|
-
/**
|
|
34432
|
-
|
|
34474
|
+
/**
|
|
34475
|
+
* The effective flagged address: the explicit choice, else (AUTO) the
|
|
34476
|
+
* CamStack app link `https://camstack.zentik.app` (D709). A pre-D709 hub
|
|
34477
|
+
* answered the public tunnel / mesh here, or null.
|
|
34478
|
+
*/
|
|
34479
|
+
resolved: string().nullable(),
|
|
34480
|
+
/**
|
|
34481
|
+
* The hub origin an app link carries as `hub=` (D709): the hub's best
|
|
34482
|
+
* public HTTPS address — the tunnel, then the mesh (Tailscale MagicDNS) —
|
|
34483
|
+
* picked from this cap's own palette by `pickAppLinkHub`. `null` when the
|
|
34484
|
+
* hub advertises neither; the app link is then minted without `hub=`.
|
|
34485
|
+
* Absent on a pre-D709 hub.
|
|
34486
|
+
*/
|
|
34487
|
+
appLinkHub: string().nullable()
|
|
34433
34488
|
});
|
|
34434
34489
|
/**
|
|
34435
34490
|
* The URLs the SDK / viewer should race for API access. `baseUrls` empty =
|
|
@@ -34483,7 +34538,11 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
34483
34538
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
34484
34539
|
* to avoid mixed-content blocks in the browser. The public
|
|
34485
34540
|
* tunnel always emits `https://` regardless. */
|
|
34486
|
-
scheme: _enum(["http", "https"]).optional()
|
|
34541
|
+
scheme: _enum(["http", "https"]).optional(),
|
|
34542
|
+
/** Append the CamStack app link entry (`kind: 'app-link'`, D709) —
|
|
34543
|
+
* an address notification links can be flagged with, not a hub
|
|
34544
|
+
* route. Default `false`: racers and rankers never see it. */
|
|
34545
|
+
includeAppLink: boolean().optional()
|
|
34487
34546
|
}), 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
34547
|
kind: "mutation",
|
|
34489
34548
|
auth: "admin"
|
|
@@ -34744,7 +34803,7 @@ var MeshPeerSchema = object({
|
|
|
34744
34803
|
tags: array(string()).readonly(),
|
|
34745
34804
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
34746
34805
|
exitNodeOption: boolean(),
|
|
34747
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
34806
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.10.0/24"]`). */
|
|
34748
34807
|
advertisedRoutes: array(string()).readonly(),
|
|
34749
34808
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
34750
34809
|
userLogin: string().nullable(),
|
|
@@ -52076,12 +52135,14 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
52076
52135
|
{
|
|
52077
52136
|
id: "addons",
|
|
52078
52137
|
family: "system",
|
|
52079
|
-
label: "Addons",
|
|
52080
|
-
kinds: [
|
|
52081
|
-
|
|
52082
|
-
|
|
52083
|
-
|
|
52084
|
-
|
|
52138
|
+
label: "Addons stopped",
|
|
52139
|
+
kinds: ["addon-crash-loop"]
|
|
52140
|
+
},
|
|
52141
|
+
{
|
|
52142
|
+
id: "addon-updates",
|
|
52143
|
+
family: "system",
|
|
52144
|
+
label: "Addon updates",
|
|
52145
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
52085
52146
|
},
|
|
52086
52147
|
{
|
|
52087
52148
|
id: "updates",
|
|
@@ -52241,13 +52302,15 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
52241
52302
|
},
|
|
52242
52303
|
{
|
|
52243
52304
|
name: "summaryAddons",
|
|
52244
|
-
label: "Summary: addons",
|
|
52245
|
-
example: "
|
|
52246
|
-
kinds: [
|
|
52247
|
-
|
|
52248
|
-
|
|
52249
|
-
|
|
52250
|
-
|
|
52305
|
+
label: "Summary: addons stopped",
|
|
52306
|
+
example: "hub — recorder stopped after repeated crashes",
|
|
52307
|
+
kinds: ["addon-crash-loop"]
|
|
52308
|
+
},
|
|
52309
|
+
{
|
|
52310
|
+
name: "summaryAddonUpdates",
|
|
52311
|
+
label: "Summary: addon updates",
|
|
52312
|
+
example: "hub:\n• @camstack/addon-recorder 1.2.3 → 1.2.4",
|
|
52313
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
52251
52314
|
},
|
|
52252
52315
|
{
|
|
52253
52316
|
name: "summaryUpdates",
|
|
@@ -52331,6 +52394,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
52331
52394
|
[...RULE_BODY_ONLY],
|
|
52332
52395
|
[...RULE_TEXT],
|
|
52333
52396
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
52397
|
+
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
52334
52398
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
52335
52399
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
52336
52400
|
([...RULE_TEXT], [...CONSUMABLE]),
|