@camstack/addon-pipeline-orchestrator 1.2.56 → 1.2.57
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/assets/viewer/.viewer-version +1 -1
- package/assets/viewer/_expo/static/js/web/{Clipboard-dbfb8d2b9b663367bf606c4e4156c5ed.js → Clipboard-2a9c34a2d9e4522a4b07afe082f73a11.js} +8 -8
- package/assets/viewer/_expo/static/js/web/{Haptics-3fc6898fa899589be5efd6c4561b70a1.js → Haptics-d691ef5c23765594fc76d7d0159e12a9.js} +3 -3
- package/assets/viewer/_expo/static/js/web/{index-f066fed82c1011c63951f43a4c81626f.js → index-cdddfaafe98f9abb2eed34c2d3ea7fce.js} +80 -78
- package/assets/viewer/_expo/static/js/web/{node-fs-3444d48a73ceb72dd0e6a45d4ba686f4.js → node-fs-fbe6ecbf78f47e60bf5606ef62613a4d.js} +1 -1
- package/assets/viewer/_expo/static/js/web/{node-path-31d2d4f03c0bb8e91685e0b2170248e7.js → node-path-88d7caa558342a85e438efa999e4aecd.js} +1 -1
- package/assets/viewer/embed/assets/{MaskShapeCanvas-DI4BY7W2-BPL877bq.js → MaskShapeCanvas-DI4BY7W2-BG9b15XX.js} +1 -1
- package/assets/viewer/embed/assets/{MotionZonesSettings-NcxxQN8r-9o1vTDhU.js → MotionZonesSettings-NcxxQN8r-6tRLDb49.js} +1 -1
- package/assets/viewer/embed/assets/{PrivacyMaskSettings-APgPLF7p-BgXKxbFU.js → PrivacyMaskSettings-APgPLF7p-Bbna4XaY.js} +1 -1
- package/assets/viewer/embed/assets/index-IodqkuCI.js +116 -0
- package/assets/viewer/embed/index.html +1 -1
- package/assets/viewer/index.html +1 -1
- package/dist/_stub.js +2 -2
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-CIgtalSC.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-D4ElH3_I.mjs} +3 -3
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B5aOYEp_.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CoB82Qob.mjs} +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DUDj4-xm.mjs +26 -0
- package/dist/{hostInit-BfvdbNXJ.mjs → hostInit-CDG9B2az.mjs} +3 -3
- package/dist/index.js +121 -5
- package/dist/index.mjs +121 -5
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/assets/viewer/embed/assets/index-CN50_nGz.js +0 -116
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dea44qi5.mjs +0 -26
package/dist/index.mjs
CHANGED
|
@@ -5400,6 +5400,12 @@ Object.fromEntries([
|
|
|
5400
5400
|
icon: "shapes",
|
|
5401
5401
|
order: 38
|
|
5402
5402
|
},
|
|
5403
|
+
{
|
|
5404
|
+
id: "scenes",
|
|
5405
|
+
label: "Scenes",
|
|
5406
|
+
icon: "scan-eye",
|
|
5407
|
+
order: 36
|
|
5408
|
+
},
|
|
5403
5409
|
{
|
|
5404
5410
|
id: "analytics",
|
|
5405
5411
|
label: "Analytics",
|
|
@@ -25674,9 +25680,33 @@ method(object({
|
|
|
25674
25680
|
* settings-contribution methods. `status.kind:'push'` — the engine pushes on
|
|
25675
25681
|
* every hysteresis flip / availability change; consumers never poll.
|
|
25676
25682
|
*/
|
|
25677
|
-
/** Extensible condition tag. Seeded 'day' | '
|
|
25678
|
-
*
|
|
25683
|
+
/** Extensible condition tag. Seeded 'day' | 'ir' (the two variants the operator
|
|
25684
|
+
* captures) plus 'night' | 'dawn' | 'dusk' from the resolver's sun-times band.
|
|
25685
|
+
* Open by design so more can be added without a wire break.
|
|
25686
|
+
*
|
|
25687
|
+
* Matching does NOT fall back across conditions: cross-condition cosines are
|
|
25688
|
+
* not comparable, so "I have never seen this scene in this light" is reported
|
|
25689
|
+
* as `unknown`, never guessed. A day reference scored against an IR frame
|
|
25690
|
+
* collapses the cosine and would latch a false alarm every single night. */
|
|
25679
25691
|
var SceneConditionSchema = string();
|
|
25692
|
+
/** `matched` = the baseline is what we see; `diverged` = it demonstrably is not;
|
|
25693
|
+
* `unknown` = we cannot judge (no reference for this condition, encoder model
|
|
25694
|
+
* changed, view shifted, no snapshot). `unknown` is a real value, not a null,
|
|
25695
|
+
* and never counts toward hysteresis in either direction. */
|
|
25696
|
+
var SceneVerdictSchema = _enum([
|
|
25697
|
+
"matched",
|
|
25698
|
+
"diverged",
|
|
25699
|
+
"unknown"
|
|
25700
|
+
]);
|
|
25701
|
+
/** Why a scene cannot judge. Named, because this feature's failure mode is
|
|
25702
|
+
* silence that reads as "nothing has happened". */
|
|
25703
|
+
var SceneUnavailableSchema = _enum([
|
|
25704
|
+
"no-reference-for-condition",
|
|
25705
|
+
"view-shifted",
|
|
25706
|
+
"no-vision-profile",
|
|
25707
|
+
"encoder-model-changed",
|
|
25708
|
+
"no-snapshot"
|
|
25709
|
+
]);
|
|
25680
25710
|
/** One captured reference — condition-tagged, model-version-gated. `embedding`
|
|
25681
25711
|
* is `number[]` (Float32Array does NOT survive MsgPack/UDS). */
|
|
25682
25712
|
var SceneReferenceSchema = object({
|
|
@@ -25684,7 +25714,14 @@ var SceneReferenceSchema = object({
|
|
|
25684
25714
|
modelId: string(),
|
|
25685
25715
|
condition: SceneConditionSchema,
|
|
25686
25716
|
capturedAt: number(),
|
|
25687
|
-
thumbnailMediaId: string().optional()
|
|
25717
|
+
thumbnailMediaId: string().optional(),
|
|
25718
|
+
/** Whole-frame (downscaled) embedding captured alongside the ROI crop. The
|
|
25719
|
+
* anti-view-shift anchor: a bumped camera, a PTZ preset or a re-aim makes the
|
|
25720
|
+
* normalized rect frame a different piece of world, and the scene would
|
|
25721
|
+
* diverge forever with a perfectly plausible cosine. Checked LAZILY, only
|
|
25722
|
+
* when hysteresis is about to flip — one extra encode per candidate
|
|
25723
|
+
* transition, not per poll. */
|
|
25724
|
+
anchorEmbedding: array(number()).optional()
|
|
25688
25725
|
});
|
|
25689
25726
|
var SceneMonitorStateSchema = object({
|
|
25690
25727
|
id: string(),
|
|
@@ -25706,6 +25743,25 @@ var SceneCheckSchema = discriminatedUnion("mode", [object({
|
|
|
25706
25743
|
profileId: string().optional(),
|
|
25707
25744
|
hysteresisCount: number().int().positive()
|
|
25708
25745
|
})]);
|
|
25746
|
+
var SCENE_DEFAULT_ANCHOR_THRESHOLD = .85;
|
|
25747
|
+
/**
|
|
25748
|
+
* Vision-model adjudication of a candidate flip. Field names deliberately
|
|
25749
|
+
* mirror `NcConfirmSchema` so an operator meets one vocabulary, not two.
|
|
25750
|
+
*
|
|
25751
|
+
* `onTimeout` defaults to **'hold'**, the OPPOSITE of `NcConfirmGate`'s
|
|
25752
|
+
* fail-open: a notification suppressed is the worse error there, but a vision
|
|
25753
|
+
* model that timed out has not told us the bin is gone, and a latch is a
|
|
25754
|
+
* stateful claim that costs the operator a trip to reset.
|
|
25755
|
+
*/
|
|
25756
|
+
var SceneConfirmSchema = object({
|
|
25757
|
+
enabled: boolean().default(false),
|
|
25758
|
+
prompt: string().min(1).max(1e3),
|
|
25759
|
+
profileId: string().optional(),
|
|
25760
|
+
timeoutMs: number().int().min(1e3).max(2e4).default(8e3),
|
|
25761
|
+
maxImagePx: number().int().min(64).max(2048).default(448),
|
|
25762
|
+
/** What a timeout / unavailable model means for the PENDING flip. */
|
|
25763
|
+
onTimeout: _enum(["flip", "hold"]).default("hold")
|
|
25764
|
+
});
|
|
25709
25765
|
var SceneMonitorSchema = object({
|
|
25710
25766
|
id: string(),
|
|
25711
25767
|
label: string(),
|
|
@@ -25724,7 +25780,41 @@ var SceneMonitorSchema = object({
|
|
|
25724
25780
|
lastConfidence: number().nullable(),
|
|
25725
25781
|
currentCondition: SceneConditionSchema.nullable(),
|
|
25726
25782
|
availability: _enum(["ok", "unavailable"]),
|
|
25727
|
-
unavailableReason: string().nullable()
|
|
25783
|
+
unavailableReason: string().nullable(),
|
|
25784
|
+
/** Which state is "the initial screen". `null` until the first capture. */
|
|
25785
|
+
baselineStateId: string().nullable(),
|
|
25786
|
+
/** Which boolean drives notification rules and any export. */
|
|
25787
|
+
emit: _enum(["latched", "live"]).default("latched"),
|
|
25788
|
+
/** Live: does the region match the baseline RIGHT NOW. */
|
|
25789
|
+
verdict: SceneVerdictSchema,
|
|
25790
|
+
/** Has it been `diverged` at least once since `armedAt` — the operator's boolean. */
|
|
25791
|
+
latched: boolean(),
|
|
25792
|
+
/** Last reset (or creation). */
|
|
25793
|
+
armedAt: number(),
|
|
25794
|
+
divergedAt: number().nullable(),
|
|
25795
|
+
restoredAt: number().nullable(),
|
|
25796
|
+
/** A check is only COUNTED when the device has been quiet this long. Motion
|
|
25797
|
+
* during the window DISCARDS the observation — a car pulling up in front of
|
|
25798
|
+
* the bin must not be able to spend hysteresis credit. */
|
|
25799
|
+
quietSeconds: number().int().min(0).max(3600).default(60),
|
|
25800
|
+
/** An observation only advances the pending count when it is at least this
|
|
25801
|
+
* far from the previously counted one, so N agreeing checks span real time
|
|
25802
|
+
* rather than N adjacent polls inside one occlusion. */
|
|
25803
|
+
minObservationSpacingSec: number().int().min(0).max(3600).default(120),
|
|
25804
|
+
/** Vision-model adjudication of a candidate flip. Similarity primary only. */
|
|
25805
|
+
confirm: SceneConfirmSchema.optional(),
|
|
25806
|
+
/** Whole-frame anchor cosine below which a flip is REFUSED as `view-shifted`. */
|
|
25807
|
+
anchorThreshold: number().min(0).max(1).default(SCENE_DEFAULT_ANCHOR_THRESHOLD),
|
|
25808
|
+
/** Clear the latch on its own when the scene matches again? Default false —
|
|
25809
|
+
* `restoredAt` and the `scene-restored` edge are recorded regardless, so an
|
|
25810
|
+
* automation can react to the bin coming back without the operator's own
|
|
25811
|
+
* alarm silently clearing itself. */
|
|
25812
|
+
autoRestore: boolean().default(false),
|
|
25813
|
+
/** Named cause when `verdict === 'unknown'`. */
|
|
25814
|
+
unavailable: SceneUnavailableSchema.nullable(),
|
|
25815
|
+
/** Conditions that have at least one comparable reference — the coverage line
|
|
25816
|
+
* ("day ✓ · ir ✓ · dusk ✗") that turns a silent fallback into a visible fact. */
|
|
25817
|
+
coveredConditions: array(SceneConditionSchema)
|
|
25728
25818
|
});
|
|
25729
25819
|
var SceneMonitorStatusSchema = object({
|
|
25730
25820
|
monitors: array(SceneMonitorSchema),
|
|
@@ -25757,7 +25847,14 @@ DeviceType.Camera, method(object({ deviceId: number() }), SceneMonitorStatusSche
|
|
|
25757
25847
|
"both"
|
|
25758
25848
|
]).optional(),
|
|
25759
25849
|
checkIntervalSec: number().optional(),
|
|
25760
|
-
check: SceneCheckSchema.optional()
|
|
25850
|
+
check: SceneCheckSchema.optional(),
|
|
25851
|
+
emit: _enum(["latched", "live"]).optional(),
|
|
25852
|
+
quietSeconds: number().int().min(0).max(3600).optional(),
|
|
25853
|
+
minObservationSpacingSec: number().int().min(0).max(3600).optional(),
|
|
25854
|
+
anchorThreshold: number().min(0).max(1).optional(),
|
|
25855
|
+
autoRestore: boolean().optional(),
|
|
25856
|
+
/** `null` clears the vision-model adjudicator. */
|
|
25857
|
+
confirm: SceneConfirmSchema.nullable().optional()
|
|
25761
25858
|
})
|
|
25762
25859
|
}), _void(), {
|
|
25763
25860
|
kind: "mutation",
|
|
@@ -25794,6 +25891,14 @@ DeviceType.Camera, method(object({ deviceId: number() }), SceneMonitorStatusSche
|
|
|
25794
25891
|
}), _void(), {
|
|
25795
25892
|
kind: "mutation",
|
|
25796
25893
|
auth: "admin"
|
|
25894
|
+
}), method(object({
|
|
25895
|
+
deviceId: number(),
|
|
25896
|
+
monitorId: string(),
|
|
25897
|
+
/** Defaults to TRUE at the provider seam — see `SCENE_RESET_RECAPTURES`. */
|
|
25898
|
+
recapture: boolean().optional()
|
|
25899
|
+
}), _void(), {
|
|
25900
|
+
kind: "mutation",
|
|
25901
|
+
auth: "admin"
|
|
25797
25902
|
});
|
|
25798
25903
|
/**
|
|
25799
25904
|
* Per-stage gating mode applied to the zones a rule references.
|
|
@@ -31171,6 +31276,12 @@ Object.freeze({
|
|
|
31171
31276
|
addonId: null,
|
|
31172
31277
|
access: "create"
|
|
31173
31278
|
},
|
|
31279
|
+
"sceneMonitor.resetScene": {
|
|
31280
|
+
capName: "scene-monitor",
|
|
31281
|
+
capScope: "device",
|
|
31282
|
+
addonId: null,
|
|
31283
|
+
access: "delete"
|
|
31284
|
+
},
|
|
31174
31285
|
"sceneMonitor.updateScene": {
|
|
31175
31286
|
capName: "scene-monitor",
|
|
31176
31287
|
capScope: "device",
|
|
@@ -33853,6 +33964,11 @@ Object.freeze({
|
|
|
33853
33964
|
form: "single",
|
|
33854
33965
|
optional: false
|
|
33855
33966
|
}],
|
|
33967
|
+
"sceneMonitor.resetScene": [{
|
|
33968
|
+
name: "deviceId",
|
|
33969
|
+
form: "single",
|
|
33970
|
+
optional: false
|
|
33971
|
+
}],
|
|
33856
33972
|
"sceneMonitor.updateScene": [{
|
|
33857
33973
|
name: "deviceId",
|
|
33858
33974
|
form: "single",
|
package/dist/remoteEntry.js
CHANGED
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-D4ElH3_I.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline-orchestrator",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.57",
|
|
4
4
|
"description": "Hub-side camera-to-agent load balancer — tracks runner capacity and dispatches attachCamera calls to the optimal pipeline-runner instance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|