@camstack/addon-post-analysis 1.2.69 → 1.2.71
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/{dist-CU_FWCL9.mjs → dist-B--dE3Ry.mjs} +99 -16
- package/dist/{dist-BF27UAVH.js → dist-DjPaVd2L.js} +110 -15
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DR7x9PuS.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-3nHxWRIp.mjs} +3 -3
- package/dist/pipeline-analytics/{hostInit-DAStaZcY.mjs → hostInit-_DSzSo5N.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +1291 -120
- package/dist/pipeline-analytics/index.mjs +1291 -120
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -13415,11 +13415,33 @@ var NotificationFormatSchema = _enum([
|
|
|
13415
13415
|
* Named by INTENT, never by glyph. "check" would tie the vocabulary to one
|
|
13416
13416
|
* renderer's icon set; "acknowledge" survives an adapter that draws it
|
|
13417
13417
|
* differently.
|
|
13418
|
+
*
|
|
13419
|
+
* ── A TOKEN IS NOT A WIRE VALUE ─────────────────────────────────────
|
|
13420
|
+
*
|
|
13421
|
+
* These names are for US. **No adapter may forward one verbatim.** Each maps
|
|
13422
|
+
* the whole set onto its own renderer's vocabulary through a
|
|
13423
|
+
* `Record<NotificationActionIcon, string>` — a Record, never a lookup with a
|
|
13424
|
+
* fallback, so adding a member here fails every adapter's build until someone
|
|
13425
|
+
* decides its glyph, which is the only place that decision can be made
|
|
13426
|
+
* honestly.
|
|
13427
|
+
*
|
|
13428
|
+
* This paragraph is the bug. Zentik declared `actionIcons: true` and passed
|
|
13429
|
+
* `disarm` straight through; iOS feeds that string to
|
|
13430
|
+
* `UNNotificationActionIcon(systemImageName:)`, `disarm` is not an SF Symbol,
|
|
13431
|
+
* and every snooze and alarm button arrived BLANK. A pass-through is not a
|
|
13432
|
+
* mapping, and "the field is documented" is not "the value renders".
|
|
13433
|
+
*
|
|
13434
|
+
* Adding a member is TRAIN-BOUND. The enum lives in the published
|
|
13435
|
+
* `@camstack/server` closure and the cap seam validates against the HUB's copy,
|
|
13436
|
+
* so an addon that emits a token the running hub does not know does not lose an
|
|
13437
|
+
* icon — its whole `send` fails Zod validation and the notification never
|
|
13438
|
+
* arrives. Never emit a new token from an addon before the train carrying it.
|
|
13418
13439
|
*/
|
|
13419
13440
|
var NotificationActionIconSchema = _enum([
|
|
13420
13441
|
"acknowledge",
|
|
13421
13442
|
"dismiss",
|
|
13422
13443
|
"silence",
|
|
13444
|
+
"snooze",
|
|
13423
13445
|
"view",
|
|
13424
13446
|
"play",
|
|
13425
13447
|
"open",
|
|
@@ -13427,9 +13449,13 @@ var NotificationActionIconSchema = _enum([
|
|
|
13427
13449
|
"lock",
|
|
13428
13450
|
"unlock",
|
|
13429
13451
|
"arm",
|
|
13452
|
+
"arm-home",
|
|
13453
|
+
"arm-away",
|
|
13454
|
+
"arm-night",
|
|
13430
13455
|
"disarm",
|
|
13431
13456
|
"light",
|
|
13432
|
-
"alert"
|
|
13457
|
+
"alert",
|
|
13458
|
+
"camera"
|
|
13433
13459
|
]);
|
|
13434
13460
|
/** A single tap-through action button. */
|
|
13435
13461
|
var NotificationActionSchema = object({
|
|
@@ -13647,6 +13673,29 @@ var MACRO_LABELS = [
|
|
|
13647
13673
|
name: "Package"
|
|
13648
13674
|
}
|
|
13649
13675
|
];
|
|
13676
|
+
/**
|
|
13677
|
+
* The class names a per-class COUNT can ever be keyed on — the macro ids, and
|
|
13678
|
+
* only those.
|
|
13679
|
+
*
|
|
13680
|
+
* `preserveOriginal: false` below is the whole reason this set exists: the
|
|
13681
|
+
* executor maps each raw COCO label onto its macro and DROPS everything else,
|
|
13682
|
+
* so a tracked detection's `className` is always one of {@link MACRO_LABELS}.
|
|
13683
|
+
* Any surface that indexes counts by class name — the ZoneAnalytics occupancy
|
|
13684
|
+
* snapshot's `byClass`, and therefore every occupancy rule — can match nothing
|
|
13685
|
+
* else. Derived from the catalog, never hand-listed, so a new macro joins it by
|
|
13686
|
+
* being declared once.
|
|
13687
|
+
*
|
|
13688
|
+
* Cost of not having it, 2026-08-12: the notification rule editor offered the
|
|
13689
|
+
* full taxonomy for an occupancy class (occupancy is the one condition that
|
|
13690
|
+
* does not go through the engine's macro-expanding `expandClassSelector`), two
|
|
13691
|
+
* live rules were authored on `car`, and both counters read 0 forever.
|
|
13692
|
+
*/
|
|
13693
|
+
var DETECTION_MACRO_CLASSES = new Set(MACRO_LABELS.map((l) => l.id));
|
|
13694
|
+
/** True when `className` is a macro the detector can actually emit (and hence a
|
|
13695
|
+
* class a count can be keyed on) — see {@link DETECTION_MACRO_CLASSES}. */
|
|
13696
|
+
function isDetectionMacroClass(className) {
|
|
13697
|
+
return DETECTION_MACRO_CLASSES.has(className.trim().toLowerCase());
|
|
13698
|
+
}
|
|
13650
13699
|
var COCO_TO_MACRO = {
|
|
13651
13700
|
mapping: {
|
|
13652
13701
|
person: "person",
|
|
@@ -14491,6 +14540,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
14491
14540
|
"alarm-triggered",
|
|
14492
14541
|
"alarm-armed",
|
|
14493
14542
|
"alarm-disarmed",
|
|
14543
|
+
"alarm-arming",
|
|
14544
|
+
"alarm-arm-refused",
|
|
14494
14545
|
"camera-online",
|
|
14495
14546
|
"camera-offline",
|
|
14496
14547
|
"camera-disabled",
|
|
@@ -14505,16 +14556,22 @@ var NC_LEGACY_SYSTEM_EVENT_KINDS = new Set([
|
|
|
14505
14556
|
]);
|
|
14506
14557
|
NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KINDS.has(kind));
|
|
14507
14558
|
/**
|
|
14508
|
-
* The panel's
|
|
14559
|
+
* The panel's transitions, as ONE list.
|
|
14509
14560
|
*
|
|
14510
14561
|
* Named here rather than spelled out at each of the four sites that need them
|
|
14511
14562
|
* (the emitter, the intake, the editor group, the combined-notification gate),
|
|
14512
|
-
* because a
|
|
14513
|
-
*
|
|
14563
|
+
* because a transition added to the enum and forgotten at one of them is an
|
|
14564
|
+
* alarm state nobody can be notified about. That is exactly what this list
|
|
14565
|
+
* failed to prevent while it held three: `alarm-arming` was the fourth.
|
|
14566
|
+
*
|
|
14567
|
+
* In LIFECYCLE order, which is the order an editor lists them in and the order
|
|
14568
|
+
* a person experiences them — not the order they were added.
|
|
14514
14569
|
*/
|
|
14515
14570
|
var NC_ALARM_SYSTEM_EVENT_KINDS = [
|
|
14516
|
-
"alarm-
|
|
14571
|
+
"alarm-arm-refused",
|
|
14572
|
+
"alarm-arming",
|
|
14517
14573
|
"alarm-armed",
|
|
14574
|
+
"alarm-triggered",
|
|
14518
14575
|
"alarm-disarmed"
|
|
14519
14576
|
];
|
|
14520
14577
|
/**
|
|
@@ -15413,13 +15470,17 @@ var NC_CONDITION_CATALOG = [
|
|
|
15413
15470
|
label: "Server update available"
|
|
15414
15471
|
},
|
|
15415
15472
|
{
|
|
15416
|
-
value: "alarm-
|
|
15417
|
-
label: "Alarm
|
|
15473
|
+
value: "alarm-arming",
|
|
15474
|
+
label: "Alarm arming (exit delay)"
|
|
15418
15475
|
},
|
|
15419
15476
|
{
|
|
15420
15477
|
value: "alarm-armed",
|
|
15421
15478
|
label: "Alarm armed"
|
|
15422
15479
|
},
|
|
15480
|
+
{
|
|
15481
|
+
value: "alarm-triggered",
|
|
15482
|
+
label: "Alarm triggered"
|
|
15483
|
+
},
|
|
15423
15484
|
{
|
|
15424
15485
|
value: "alarm-disarmed",
|
|
15425
15486
|
label: "Alarm disarmed"
|
|
@@ -18689,10 +18750,26 @@ var detectionFpsField = {
|
|
|
18689
18750
|
default: 10,
|
|
18690
18751
|
step: 1
|
|
18691
18752
|
};
|
|
18753
|
+
/**
|
|
18754
|
+
* The occupancy re-check interval. DEFAULT 300 s (2026-08-13 — was 30 s).
|
|
18755
|
+
*
|
|
18756
|
+
* The recheck is now on by default (a parked car is invisible to occupancy
|
|
18757
|
+
* rules until the stationary registry has been rebuilt by motion, which after a
|
|
18758
|
+
* restart may be never on a quiet camera). Each cycle re-subscribes a detection
|
|
18759
|
+
* session — an RTSP re-dial — so the switch is only affordable at a WIDE
|
|
18760
|
+
* interval: 300 s is ~12 re-dials an hour per camera, against 120 at the old
|
|
18761
|
+
* 30 s. A parked car is therefore counted within 5 minutes of a restart.
|
|
18762
|
+
*
|
|
18763
|
+
* Why not wider: `max` is 300 and raising it is TRAIN-BOUND, not addon-bound —
|
|
18764
|
+
* the host validates `attachCamera` against ITS copy of this schema, so a
|
|
18765
|
+
* runner asked for 600 would be rejected by the hub until a `@camstack/server`
|
|
18766
|
+
* carrying the wider bound is installed everywhere. 300 is the widest value
|
|
18767
|
+
* that ships with an addon deploy.
|
|
18768
|
+
*/
|
|
18692
18769
|
var occupancyRecheckSecField = {
|
|
18693
18770
|
min: 0,
|
|
18694
18771
|
max: 300,
|
|
18695
|
-
default:
|
|
18772
|
+
default: 300,
|
|
18696
18773
|
step: 5
|
|
18697
18774
|
};
|
|
18698
18775
|
var occupancyRecheckFramesField = {
|
|
@@ -18890,15 +18967,21 @@ var RunnerCameraConfigSchema = object({
|
|
|
18890
18967
|
*/
|
|
18891
18968
|
onboardMotionDrivesAnalyzer: boolean().default(true),
|
|
18892
18969
|
/**
|
|
18893
|
-
* Master toggle for the occupancy re-check. When `false`
|
|
18894
|
-
*
|
|
18895
|
-
* this is off by default because the recheck re-subscribes a detection session
|
|
18896
|
-
* every N seconds while `watching`, a major source of pull-decoder re-dial
|
|
18897
|
-
* churn (each cycle creates+tears a session → RTSP re-dial → latency). The
|
|
18970
|
+
* Master toggle for the occupancy re-check. When `false` the runner never arms
|
|
18971
|
+
* the periodic recheck timer, regardless of `occupancyRecheckSec`; the
|
|
18898
18972
|
* `occupancyRecheckSec` / `occupancyRecheckFrames` sliders only take effect
|
|
18899
18973
|
* (and only render) when this is enabled.
|
|
18900
|
-
|
|
18901
|
-
|
|
18974
|
+
*
|
|
18975
|
+
* DEFAULT `true` since 2026-08-13 (was `false`). It was off because the
|
|
18976
|
+
* recheck re-subscribes a detection session every N seconds while `watching`
|
|
18977
|
+
* — each cycle creates+tears a session ⇒ an RTSP re-dial ⇒ latency, a major
|
|
18978
|
+
* pull-decoder churn source. What that bought was a blind spot: a STATIONARY
|
|
18979
|
+
* object is counted only while the stationary registry holds it, and the
|
|
18980
|
+
* registry rebuilds from motion, so after a restart a parked car was invisible
|
|
18981
|
+
* to every occupancy rule until something moved in front of it. The churn is
|
|
18982
|
+
* now paid on the interval instead — see `occupancyRecheckSecField`.
|
|
18983
|
+
*/
|
|
18984
|
+
occupancyRecheckEnabled: boolean().default(true),
|
|
18902
18985
|
occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
|
|
18903
18986
|
occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
|
|
18904
18987
|
/**
|
|
@@ -35954,4 +36037,4 @@ function vectorDimFromBase64(encoded) {
|
|
|
35954
36037
|
return Math.floor(Buffer.from(encoded, "base64").byteLength / 4);
|
|
35955
36038
|
}
|
|
35956
36039
|
//#endregion
|
|
35957
|
-
export {
|
|
36040
|
+
export { readDeviceStateFrom as $, TimelapseRuleInputSchema as A, customAction as B, NcSnoozeSchema as C, unknown as Ct, RECORDING_EXPORT_MAX_READ_BYTES as D, OpsLogEntrySchema as E, alarmPanelCapability as F, faceGalleryCapability as G, deriveRecordingMode as H, assertTimelapseCadences as I, isScheduleActive as J, hfModelUrl as K, audioMetricsCapability as L, TimelapseRuleSchema as M, TrackSourceSchema as N, RetrainStatusSchema as O, addonWidgetsSourceCapability as P, plateGalleryCapability as Q, buildEventKindDescriptor as R, NcSnoozeInputSchema as S, string as St, NcTaxonomySchema as T, embeddingEncoderCapability as U, defineCustomActions as V, encodeVectorBase64 as W, notificationRulesCapability as X, kebabToCamel as Y, pipelineAnalyticsCapability as Z, NcRuleInputSchema as _, literal as _t, DETECTION_PIPELINE_CAP_NAME as a, errMsg as at, NcRuleTargetSchema as b, partialRecord as bt, EVENT_PAD_MS as c, createEvent as ct, NC_ALARM_SYSTEM_EVENT_KINDS as d, nodePin as dt, readTimelapseGeneratedAt as et, NC_CONDITION_CATALOG as f, sleep as ft, NcConditionDescriptorSchema as g, discriminatedUnion as gt, NC_TAXONOMY as h, boolean as ht, DETECTION_MACRO_CLASSES as i, zoneAnalyticsCapability as it, TimelapseRulePatchSchema as j, TIMELAPSE_DENSE_FLOOR_SEC as k, LabelAttributionSchema as l, hydrateSchema as lt, NC_SNOOZE_MAX_MINUTES as m, array as mt, DEFAULT_EVENT_COLOR as n, vectorDimFromBase64 as nt, DeclaredDevices as o, BaseAddon as ot, NC_DEFAULT_SNOOZE_MINUTES as p, _enum as pt, isDetectionMacroClass as q, DEFAULT_TIMELAPSE_PREVIEW_TEXT as r, videoclipsCapability as rt, EVENT_KIND_BY_CAP as s, DeviceType as st, BaseDevice as t, subKindsOf as tt, MACRO_LABELS as u, isDeviceScopedCap as ut, NcRulePatchSchema as v, number as vt, NcSnoozeSuppressedSchema as w, EventCategory as wt, NcScheduleSchema as x, record as xt, NcRuleSchema as y, object as yt, cosineSimilarity as z };
|
|
@@ -13446,11 +13446,33 @@ var NotificationFormatSchema = _enum([
|
|
|
13446
13446
|
* Named by INTENT, never by glyph. "check" would tie the vocabulary to one
|
|
13447
13447
|
* renderer's icon set; "acknowledge" survives an adapter that draws it
|
|
13448
13448
|
* differently.
|
|
13449
|
+
*
|
|
13450
|
+
* ── A TOKEN IS NOT A WIRE VALUE ─────────────────────────────────────
|
|
13451
|
+
*
|
|
13452
|
+
* These names are for US. **No adapter may forward one verbatim.** Each maps
|
|
13453
|
+
* the whole set onto its own renderer's vocabulary through a
|
|
13454
|
+
* `Record<NotificationActionIcon, string>` — a Record, never a lookup with a
|
|
13455
|
+
* fallback, so adding a member here fails every adapter's build until someone
|
|
13456
|
+
* decides its glyph, which is the only place that decision can be made
|
|
13457
|
+
* honestly.
|
|
13458
|
+
*
|
|
13459
|
+
* This paragraph is the bug. Zentik declared `actionIcons: true` and passed
|
|
13460
|
+
* `disarm` straight through; iOS feeds that string to
|
|
13461
|
+
* `UNNotificationActionIcon(systemImageName:)`, `disarm` is not an SF Symbol,
|
|
13462
|
+
* and every snooze and alarm button arrived BLANK. A pass-through is not a
|
|
13463
|
+
* mapping, and "the field is documented" is not "the value renders".
|
|
13464
|
+
*
|
|
13465
|
+
* Adding a member is TRAIN-BOUND. The enum lives in the published
|
|
13466
|
+
* `@camstack/server` closure and the cap seam validates against the HUB's copy,
|
|
13467
|
+
* so an addon that emits a token the running hub does not know does not lose an
|
|
13468
|
+
* icon — its whole `send` fails Zod validation and the notification never
|
|
13469
|
+
* arrives. Never emit a new token from an addon before the train carrying it.
|
|
13449
13470
|
*/
|
|
13450
13471
|
var NotificationActionIconSchema = _enum([
|
|
13451
13472
|
"acknowledge",
|
|
13452
13473
|
"dismiss",
|
|
13453
13474
|
"silence",
|
|
13475
|
+
"snooze",
|
|
13454
13476
|
"view",
|
|
13455
13477
|
"play",
|
|
13456
13478
|
"open",
|
|
@@ -13458,9 +13480,13 @@ var NotificationActionIconSchema = _enum([
|
|
|
13458
13480
|
"lock",
|
|
13459
13481
|
"unlock",
|
|
13460
13482
|
"arm",
|
|
13483
|
+
"arm-home",
|
|
13484
|
+
"arm-away",
|
|
13485
|
+
"arm-night",
|
|
13461
13486
|
"disarm",
|
|
13462
13487
|
"light",
|
|
13463
|
-
"alert"
|
|
13488
|
+
"alert",
|
|
13489
|
+
"camera"
|
|
13464
13490
|
]);
|
|
13465
13491
|
/** A single tap-through action button. */
|
|
13466
13492
|
var NotificationActionSchema = object({
|
|
@@ -13678,6 +13704,29 @@ var MACRO_LABELS = [
|
|
|
13678
13704
|
name: "Package"
|
|
13679
13705
|
}
|
|
13680
13706
|
];
|
|
13707
|
+
/**
|
|
13708
|
+
* The class names a per-class COUNT can ever be keyed on — the macro ids, and
|
|
13709
|
+
* only those.
|
|
13710
|
+
*
|
|
13711
|
+
* `preserveOriginal: false` below is the whole reason this set exists: the
|
|
13712
|
+
* executor maps each raw COCO label onto its macro and DROPS everything else,
|
|
13713
|
+
* so a tracked detection's `className` is always one of {@link MACRO_LABELS}.
|
|
13714
|
+
* Any surface that indexes counts by class name — the ZoneAnalytics occupancy
|
|
13715
|
+
* snapshot's `byClass`, and therefore every occupancy rule — can match nothing
|
|
13716
|
+
* else. Derived from the catalog, never hand-listed, so a new macro joins it by
|
|
13717
|
+
* being declared once.
|
|
13718
|
+
*
|
|
13719
|
+
* Cost of not having it, 2026-08-12: the notification rule editor offered the
|
|
13720
|
+
* full taxonomy for an occupancy class (occupancy is the one condition that
|
|
13721
|
+
* does not go through the engine's macro-expanding `expandClassSelector`), two
|
|
13722
|
+
* live rules were authored on `car`, and both counters read 0 forever.
|
|
13723
|
+
*/
|
|
13724
|
+
var DETECTION_MACRO_CLASSES = new Set(MACRO_LABELS.map((l) => l.id));
|
|
13725
|
+
/** True when `className` is a macro the detector can actually emit (and hence a
|
|
13726
|
+
* class a count can be keyed on) — see {@link DETECTION_MACRO_CLASSES}. */
|
|
13727
|
+
function isDetectionMacroClass(className) {
|
|
13728
|
+
return DETECTION_MACRO_CLASSES.has(className.trim().toLowerCase());
|
|
13729
|
+
}
|
|
13681
13730
|
var COCO_TO_MACRO = {
|
|
13682
13731
|
mapping: {
|
|
13683
13732
|
person: "person",
|
|
@@ -14522,6 +14571,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
14522
14571
|
"alarm-triggered",
|
|
14523
14572
|
"alarm-armed",
|
|
14524
14573
|
"alarm-disarmed",
|
|
14574
|
+
"alarm-arming",
|
|
14575
|
+
"alarm-arm-refused",
|
|
14525
14576
|
"camera-online",
|
|
14526
14577
|
"camera-offline",
|
|
14527
14578
|
"camera-disabled",
|
|
@@ -14536,16 +14587,22 @@ var NC_LEGACY_SYSTEM_EVENT_KINDS = new Set([
|
|
|
14536
14587
|
]);
|
|
14537
14588
|
NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KINDS.has(kind));
|
|
14538
14589
|
/**
|
|
14539
|
-
* The panel's
|
|
14590
|
+
* The panel's transitions, as ONE list.
|
|
14540
14591
|
*
|
|
14541
14592
|
* Named here rather than spelled out at each of the four sites that need them
|
|
14542
14593
|
* (the emitter, the intake, the editor group, the combined-notification gate),
|
|
14543
|
-
* because a
|
|
14544
|
-
*
|
|
14594
|
+
* because a transition added to the enum and forgotten at one of them is an
|
|
14595
|
+
* alarm state nobody can be notified about. That is exactly what this list
|
|
14596
|
+
* failed to prevent while it held three: `alarm-arming` was the fourth.
|
|
14597
|
+
*
|
|
14598
|
+
* In LIFECYCLE order, which is the order an editor lists them in and the order
|
|
14599
|
+
* a person experiences them — not the order they were added.
|
|
14545
14600
|
*/
|
|
14546
14601
|
var NC_ALARM_SYSTEM_EVENT_KINDS = [
|
|
14547
|
-
"alarm-
|
|
14602
|
+
"alarm-arm-refused",
|
|
14603
|
+
"alarm-arming",
|
|
14548
14604
|
"alarm-armed",
|
|
14605
|
+
"alarm-triggered",
|
|
14549
14606
|
"alarm-disarmed"
|
|
14550
14607
|
];
|
|
14551
14608
|
/**
|
|
@@ -15444,13 +15501,17 @@ var NC_CONDITION_CATALOG = [
|
|
|
15444
15501
|
label: "Server update available"
|
|
15445
15502
|
},
|
|
15446
15503
|
{
|
|
15447
|
-
value: "alarm-
|
|
15448
|
-
label: "Alarm
|
|
15504
|
+
value: "alarm-arming",
|
|
15505
|
+
label: "Alarm arming (exit delay)"
|
|
15449
15506
|
},
|
|
15450
15507
|
{
|
|
15451
15508
|
value: "alarm-armed",
|
|
15452
15509
|
label: "Alarm armed"
|
|
15453
15510
|
},
|
|
15511
|
+
{
|
|
15512
|
+
value: "alarm-triggered",
|
|
15513
|
+
label: "Alarm triggered"
|
|
15514
|
+
},
|
|
15454
15515
|
{
|
|
15455
15516
|
value: "alarm-disarmed",
|
|
15456
15517
|
label: "Alarm disarmed"
|
|
@@ -18720,10 +18781,26 @@ var detectionFpsField = {
|
|
|
18720
18781
|
default: 10,
|
|
18721
18782
|
step: 1
|
|
18722
18783
|
};
|
|
18784
|
+
/**
|
|
18785
|
+
* The occupancy re-check interval. DEFAULT 300 s (2026-08-13 — was 30 s).
|
|
18786
|
+
*
|
|
18787
|
+
* The recheck is now on by default (a parked car is invisible to occupancy
|
|
18788
|
+
* rules until the stationary registry has been rebuilt by motion, which after a
|
|
18789
|
+
* restart may be never on a quiet camera). Each cycle re-subscribes a detection
|
|
18790
|
+
* session — an RTSP re-dial — so the switch is only affordable at a WIDE
|
|
18791
|
+
* interval: 300 s is ~12 re-dials an hour per camera, against 120 at the old
|
|
18792
|
+
* 30 s. A parked car is therefore counted within 5 minutes of a restart.
|
|
18793
|
+
*
|
|
18794
|
+
* Why not wider: `max` is 300 and raising it is TRAIN-BOUND, not addon-bound —
|
|
18795
|
+
* the host validates `attachCamera` against ITS copy of this schema, so a
|
|
18796
|
+
* runner asked for 600 would be rejected by the hub until a `@camstack/server`
|
|
18797
|
+
* carrying the wider bound is installed everywhere. 300 is the widest value
|
|
18798
|
+
* that ships with an addon deploy.
|
|
18799
|
+
*/
|
|
18723
18800
|
var occupancyRecheckSecField = {
|
|
18724
18801
|
min: 0,
|
|
18725
18802
|
max: 300,
|
|
18726
|
-
default:
|
|
18803
|
+
default: 300,
|
|
18727
18804
|
step: 5
|
|
18728
18805
|
};
|
|
18729
18806
|
var occupancyRecheckFramesField = {
|
|
@@ -18921,15 +18998,21 @@ var RunnerCameraConfigSchema = object({
|
|
|
18921
18998
|
*/
|
|
18922
18999
|
onboardMotionDrivesAnalyzer: boolean().default(true),
|
|
18923
19000
|
/**
|
|
18924
|
-
* Master toggle for the occupancy re-check. When `false`
|
|
18925
|
-
*
|
|
18926
|
-
* this is off by default because the recheck re-subscribes a detection session
|
|
18927
|
-
* every N seconds while `watching`, a major source of pull-decoder re-dial
|
|
18928
|
-
* churn (each cycle creates+tears a session → RTSP re-dial → latency). The
|
|
19001
|
+
* Master toggle for the occupancy re-check. When `false` the runner never arms
|
|
19002
|
+
* the periodic recheck timer, regardless of `occupancyRecheckSec`; the
|
|
18929
19003
|
* `occupancyRecheckSec` / `occupancyRecheckFrames` sliders only take effect
|
|
18930
19004
|
* (and only render) when this is enabled.
|
|
18931
|
-
|
|
18932
|
-
|
|
19005
|
+
*
|
|
19006
|
+
* DEFAULT `true` since 2026-08-13 (was `false`). It was off because the
|
|
19007
|
+
* recheck re-subscribes a detection session every N seconds while `watching`
|
|
19008
|
+
* — each cycle creates+tears a session ⇒ an RTSP re-dial ⇒ latency, a major
|
|
19009
|
+
* pull-decoder churn source. What that bought was a blind spot: a STATIONARY
|
|
19010
|
+
* object is counted only while the stationary registry holds it, and the
|
|
19011
|
+
* registry rebuilds from motion, so after a restart a parked car was invisible
|
|
19012
|
+
* to every occupancy rule until something moved in front of it. The churn is
|
|
19013
|
+
* now paid on the interval instead — see `occupancyRecheckSecField`.
|
|
19014
|
+
*/
|
|
19015
|
+
occupancyRecheckEnabled: boolean().default(true),
|
|
18933
19016
|
occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
|
|
18934
19017
|
occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
|
|
18935
19018
|
/**
|
|
@@ -36009,6 +36092,12 @@ Object.defineProperty(exports, "DEFAULT_TIMELAPSE_PREVIEW_TEXT", {
|
|
|
36009
36092
|
return DEFAULT_TIMELAPSE_PREVIEW_TEXT;
|
|
36010
36093
|
}
|
|
36011
36094
|
});
|
|
36095
|
+
Object.defineProperty(exports, "DETECTION_MACRO_CLASSES", {
|
|
36096
|
+
enumerable: true,
|
|
36097
|
+
get: function() {
|
|
36098
|
+
return DETECTION_MACRO_CLASSES;
|
|
36099
|
+
}
|
|
36100
|
+
});
|
|
36012
36101
|
Object.defineProperty(exports, "DETECTION_PIPELINE_CAP_NAME", {
|
|
36013
36102
|
enumerable: true,
|
|
36014
36103
|
get: function() {
|
|
@@ -36327,6 +36416,12 @@ Object.defineProperty(exports, "hydrateSchema", {
|
|
|
36327
36416
|
return hydrateSchema;
|
|
36328
36417
|
}
|
|
36329
36418
|
});
|
|
36419
|
+
Object.defineProperty(exports, "isDetectionMacroClass", {
|
|
36420
|
+
enumerable: true,
|
|
36421
|
+
get: function() {
|
|
36422
|
+
return isDetectionMacroClass;
|
|
36423
|
+
}
|
|
36424
|
+
});
|
|
36330
36425
|
Object.defineProperty(exports, "isDeviceScopedCap", {
|
|
36331
36426
|
enumerable: true,
|
|
36332
36427
|
get: function() {
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-DjPaVd2L.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_fs$1 = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { K as hfModelUrl, U as embeddingEncoderCapability, ot as BaseAddon } from "../dist-B--dE3Ry.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import "node:fs";
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.18",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.68",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.46",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.68",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -45,7 +45,7 @@ async function r() {
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"@camstack/sdk": {
|
|
48
|
-
version: "1.2.
|
|
48
|
+
version: "1.2.18",
|
|
49
49
|
scope: "default",
|
|
50
50
|
shareConfig: {
|
|
51
51
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.46",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|