@camstack/addon-post-analysis 1.2.200 → 1.2.202
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-BrszC4uJ.mjs → dist-1xB8qj2h.mjs} +19 -2
- package/dist/{dist-fmXXxa9D.js → dist-DbgfbjZC.js} +19 -2
- 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-CTKbm1Jm.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DwFi68p5.mjs} +3 -3
- package/dist/pipeline-analytics/{hostInit-DXFji_c2.mjs → hostInit-POMJnj4w.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +11 -7
- package/dist/pipeline-analytics/index.mjs +11 -7
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -22106,8 +22106,25 @@ var occupancyRecheckFramesField = {
|
|
|
22106
22106
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
22107
22107
|
* camera typically only reports a binary signal plus an optional
|
|
22108
22108
|
* channel/AI class which lives in dedicated event channels).
|
|
22109
|
-
|
|
22110
|
-
|
|
22109
|
+
*
|
|
22110
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
22111
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
22112
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
22113
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
22114
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
22115
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
22116
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
22117
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
22118
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
22119
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
22120
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
22121
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
22122
|
+
*/
|
|
22123
|
+
var MotionSourceEnum = _enum([
|
|
22124
|
+
"onboard",
|
|
22125
|
+
"analyzer",
|
|
22126
|
+
"device-activity"
|
|
22127
|
+
]);
|
|
22111
22128
|
/**
|
|
22112
22129
|
* List of motion sources active on a camera. Empty array is valid:
|
|
22113
22130
|
* "no source" — happens for battery cams without firmware motion when
|
|
@@ -22137,8 +22137,25 @@ var occupancyRecheckFramesField = {
|
|
|
22137
22137
|
* (analyzer attaches detected `regions[]`; onboard does not — the
|
|
22138
22138
|
* camera typically only reports a binary signal plus an optional
|
|
22139
22139
|
* channel/AI class which lives in dedicated event channels).
|
|
22140
|
-
|
|
22141
|
-
|
|
22140
|
+
*
|
|
22141
|
+
* - `onboard` — the camera's firmware said something moved.
|
|
22142
|
+
* - `analyzer` — this runner's frame-diff said so, and attaches `regions[]`.
|
|
22143
|
+
* - `device-activity` — the DEVICE said it is doing its job: the
|
|
22144
|
+
* `recording-signal` LEVEL the same device raises for the recorder
|
|
22145
|
+
* ([D380](../../../../docs/decisions/adr-0380-a-device-decided-recording-is-a-mode-with-no-schedule-seeded-once.md)),
|
|
22146
|
+
* republished as a motion source. It attaches **nothing** — no regions, no
|
|
22147
|
+
* class: the only fact it carries is that the device is active, and a robot
|
|
22148
|
+
* vacuum that is itself the moving object has no region worth sending. It is
|
|
22149
|
+
* a LEVEL, so unlike `onboard` it has a real falling edge, and unlike
|
|
22150
|
+
* `analyzer` it must not open the frame-diff side-channel — the runner's
|
|
22151
|
+
* `handleOnboardMotionAnalyzer` gate is `source === 'onboard'` and stays that
|
|
22152
|
+
* way ([D392](../../../../docs/decisions/adr-0392-a-device-that-says-it-is-working-is-a-motion-source-of-its-own.md)).
|
|
22153
|
+
*/
|
|
22154
|
+
var MotionSourceEnum = _enum([
|
|
22155
|
+
"onboard",
|
|
22156
|
+
"analyzer",
|
|
22157
|
+
"device-activity"
|
|
22158
|
+
]);
|
|
22142
22159
|
/**
|
|
22143
22160
|
* List of motion sources active on a camera. Empty array is valid:
|
|
22144
22161
|
* "no source" — happens for battery cams without firmware motion when
|
|
@@ -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-DbgfbjZC.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as PoolMemoryWatchdog, Pt as BaseAddon, Tt as resolvePoolMemoryPolicy, at as embeddingEncoderCapability, dt as hfModelUrl, vt as parseProcStatus } from "../dist-
|
|
1
|
+
import { F as PoolMemoryWatchdog, Pt as BaseAddon, Tt as resolvePoolMemoryPolicy, at as embeddingEncoderCapability, dt as hfModelUrl, vt as parseProcStatus } from "../dist-1xB8qj2h.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -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.84",
|
|
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.164",
|
|
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.132",
|
|
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.164",
|
|
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.84",
|
|
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.132",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -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-DbgfbjZC.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -35739,12 +35739,7 @@ var FrameProcessor = class {
|
|
|
35739
35739
|
trackId: e.detection.trackId,
|
|
35740
35740
|
className: e.detection.class,
|
|
35741
35741
|
confidence: e.detection.score,
|
|
35742
|
-
|
|
35743
|
-
x: 0,
|
|
35744
|
-
y: 0,
|
|
35745
|
-
w: 0,
|
|
35746
|
-
h: 0
|
|
35747
|
-
},
|
|
35742
|
+
...td ? { bbox: { ...td.bbox } } : {},
|
|
35748
35743
|
zones,
|
|
35749
35744
|
state,
|
|
35750
35745
|
...crossing !== void 0 ? { zoneCrossing: crossing } : {},
|
|
@@ -71693,6 +71688,15 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends require_dist.B
|
|
|
71693
71688
|
if (this.eventMediaDispatcher && frameHandle) {
|
|
71694
71689
|
const mediaEvents = [...result.objectEvents, ...result.appearanceEvents];
|
|
71695
71690
|
const childCropsByEvent = buildEventChildCrops(mediaEvents, frame.detections);
|
|
71691
|
+
const uncroppable = mediaEvents.filter((e) => e.bbox === void 0 || e.bbox.w <= 0 || e.bbox.h <= 0);
|
|
71692
|
+
if (uncroppable.length > 0) this.ctx.logger.debug("event media: no crop for events with no box in this frame (a departed track has nothing to cut)", {
|
|
71693
|
+
tags: { deviceId },
|
|
71694
|
+
meta: {
|
|
71695
|
+
events: uncroppable.length,
|
|
71696
|
+
states: [...new Set(uncroppable.map((e) => e.state ?? "unknown"))],
|
|
71697
|
+
zeroArea: uncroppable.filter((e) => e.bbox !== void 0).length
|
|
71698
|
+
}
|
|
71699
|
+
});
|
|
71696
71700
|
const eventTargets = mediaEvents.filter((e) => e.bbox !== void 0 && e.bbox.w > 0 && e.bbox.h > 0).map((e) => {
|
|
71697
71701
|
const childCrops = childCropsByEvent.get(e.id);
|
|
71698
71702
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as audioModeOf, $t as EventCategory, A as NcSnoozeSchema, At as vectorDimFromBase64, B as SCENE_DEFAULT_UNCOVERED_POLICY, Bt as nodePin, C as NcConditionDescriptorSchema, Ct as readTimelapseGeneratedAt, D as NcRuleTargetSchema, Dt as storageOccupancyCapability, E as NcRuleSchema, Et as sceneMonitorCapability, Ft as CamProfileSchema, G as TimelapseRulePatchSchema, Gt as discriminatedUnion, H as SceneMonitorSchema, Ht as _enum, I as RECORDING_EXPORT_MAX_READ_BYTES, It as DeviceType, J as VISIT_MERGE_GAP_MS, Jt as object, K as TimelapseRuleSchema, Kt as literal, L as RetrainStatusSchema, Lt as createEvent, M as NcSystemEventKindSchema, Mt as zoneAnalyticsCapability, N as NcTaxonomySchema, Nt as errMsg$1, O as NcScheduleSchema, Ot as subKindsOf, P as OpsLogEntrySchema, Pt as BaseAddon, Q as audioMetricsCapability, Qt as unknown, Rt as hydrateSchema, S as NC_TAXONOMY, St as readDeviceStateFrom, T as NcRulePatchSchema, U as TIMELAPSE_DENSE_FLOOR_SEC, Ut as array, V as SCENE_DIVERGED, Vt as sleep$1, W as TimelapseRuleInputSchema, Wt as boolean, X as alarmPanelCapability, Xt as record, Y as addonWidgetsSourceCapability, Yt as partialRecord, Z as assertTimelapseCadences, Zt as string, _ as MediaFileKindEnum, _t as notificationRulesCapability, a as DEFAULT_EVENT_COLOR, b as NC_DEFAULT_SNOOZE_MINUTES, bt as pipelineAnalyticsCapability, c as DETECTION_MACRO_CLASSES, ct as evictionPolicyOfLocation, d as EVENT_KIND_BY_CAP, et as buildEventKindDescriptor, f as EVENT_PAD_MS, ft as isDetectionMacroClass, g as MACRO_LABELS, gt as mayWriteToLocation, h as LabelAttributionSchema, ht as kebabToCamel, i as COCO_TO_MACRO, it as deriveRecordingMode, j as NcSnoozeSuppressedSchema, jt as videoclipsCapability, k as NcSnoozeInputSchema, kt as systemEventFilterApplies, lt as faceGalleryCapability, m as FailureCounters, mt as isSourceCap, n as BaseDevice, nt as customAction, ot as encodeVectorBase64, p as FULL_IMAGE_BBOX, pt as isScheduleActive, q as TrackSourceSchema, qt as number, r as CLUSTER_MODEL_SCOPED_STEPS, rt as defineCustomActions, st as evaluateSensorEdge, t as AUDIO_MACRO_LABELS, tt as cosineSimilarity$1, u as DeclaredDevices, ut as failureContributionCapability, v as NC_ALARM_SYSTEM_EVENT_KINDS, w as NcRuleInputSchema, wt as resolveLocationMode, xt as plateGalleryCapability, y as NC_CONDITION_CATALOG, yt as pickClusterStepModels, z as SCENE_DEFAULT_ANCHOR_THRESHOLD, zt as isDeviceScopedCap } from "../dist-
|
|
1
|
+
import { $ as audioModeOf, $t as EventCategory, A as NcSnoozeSchema, At as vectorDimFromBase64, B as SCENE_DEFAULT_UNCOVERED_POLICY, Bt as nodePin, C as NcConditionDescriptorSchema, Ct as readTimelapseGeneratedAt, D as NcRuleTargetSchema, Dt as storageOccupancyCapability, E as NcRuleSchema, Et as sceneMonitorCapability, Ft as CamProfileSchema, G as TimelapseRulePatchSchema, Gt as discriminatedUnion, H as SceneMonitorSchema, Ht as _enum, I as RECORDING_EXPORT_MAX_READ_BYTES, It as DeviceType, J as VISIT_MERGE_GAP_MS, Jt as object, K as TimelapseRuleSchema, Kt as literal, L as RetrainStatusSchema, Lt as createEvent, M as NcSystemEventKindSchema, Mt as zoneAnalyticsCapability, N as NcTaxonomySchema, Nt as errMsg$1, O as NcScheduleSchema, Ot as subKindsOf, P as OpsLogEntrySchema, Pt as BaseAddon, Q as audioMetricsCapability, Qt as unknown, Rt as hydrateSchema, S as NC_TAXONOMY, St as readDeviceStateFrom, T as NcRulePatchSchema, U as TIMELAPSE_DENSE_FLOOR_SEC, Ut as array, V as SCENE_DIVERGED, Vt as sleep$1, W as TimelapseRuleInputSchema, Wt as boolean, X as alarmPanelCapability, Xt as record, Y as addonWidgetsSourceCapability, Yt as partialRecord, Z as assertTimelapseCadences, Zt as string, _ as MediaFileKindEnum, _t as notificationRulesCapability, a as DEFAULT_EVENT_COLOR, b as NC_DEFAULT_SNOOZE_MINUTES, bt as pipelineAnalyticsCapability, c as DETECTION_MACRO_CLASSES, ct as evictionPolicyOfLocation, d as EVENT_KIND_BY_CAP, et as buildEventKindDescriptor, f as EVENT_PAD_MS, ft as isDetectionMacroClass, g as MACRO_LABELS, gt as mayWriteToLocation, h as LabelAttributionSchema, ht as kebabToCamel, i as COCO_TO_MACRO, it as deriveRecordingMode, j as NcSnoozeSuppressedSchema, jt as videoclipsCapability, k as NcSnoozeInputSchema, kt as systemEventFilterApplies, lt as faceGalleryCapability, m as FailureCounters, mt as isSourceCap, n as BaseDevice, nt as customAction, ot as encodeVectorBase64, p as FULL_IMAGE_BBOX, pt as isScheduleActive, q as TrackSourceSchema, qt as number, r as CLUSTER_MODEL_SCOPED_STEPS, rt as defineCustomActions, st as evaluateSensorEdge, t as AUDIO_MACRO_LABELS, tt as cosineSimilarity$1, u as DeclaredDevices, ut as failureContributionCapability, v as NC_ALARM_SYSTEM_EVENT_KINDS, w as NcRuleInputSchema, wt as resolveLocationMode, xt as plateGalleryCapability, y as NC_CONDITION_CATALOG, yt as pickClusterStepModels, z as SCENE_DEFAULT_ANCHOR_THRESHOLD, zt as isDeviceScopedCap } from "../dist-1xB8qj2h.mjs";
|
|
2
2
|
import { t as __exportAll } from "../embedding-encoder/index.mjs";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { promises } from "node:fs";
|
|
@@ -35714,12 +35714,7 @@ var FrameProcessor = class {
|
|
|
35714
35714
|
trackId: e.detection.trackId,
|
|
35715
35715
|
className: e.detection.class,
|
|
35716
35716
|
confidence: e.detection.score,
|
|
35717
|
-
|
|
35718
|
-
x: 0,
|
|
35719
|
-
y: 0,
|
|
35720
|
-
w: 0,
|
|
35721
|
-
h: 0
|
|
35722
|
-
},
|
|
35717
|
+
...td ? { bbox: { ...td.bbox } } : {},
|
|
35723
35718
|
zones,
|
|
35724
35719
|
state,
|
|
35725
35720
|
...crossing !== void 0 ? { zoneCrossing: crossing } : {},
|
|
@@ -71619,6 +71614,15 @@ var PipelineAnalyticsAddon = class PipelineAnalyticsAddon extends BaseAddon {
|
|
|
71619
71614
|
if (this.eventMediaDispatcher && frameHandle) {
|
|
71620
71615
|
const mediaEvents = [...result.objectEvents, ...result.appearanceEvents];
|
|
71621
71616
|
const childCropsByEvent = buildEventChildCrops(mediaEvents, frame.detections);
|
|
71617
|
+
const uncroppable = mediaEvents.filter((e) => e.bbox === void 0 || e.bbox.w <= 0 || e.bbox.h <= 0);
|
|
71618
|
+
if (uncroppable.length > 0) this.ctx.logger.debug("event media: no crop for events with no box in this frame (a departed track has nothing to cut)", {
|
|
71619
|
+
tags: { deviceId },
|
|
71620
|
+
meta: {
|
|
71621
|
+
events: uncroppable.length,
|
|
71622
|
+
states: [...new Set(uncroppable.map((e) => e.state ?? "unknown"))],
|
|
71623
|
+
zeroArea: uncroppable.filter((e) => e.bbox !== void 0).length
|
|
71624
|
+
}
|
|
71625
|
+
});
|
|
71622
71626
|
const eventTargets = mediaEvents.filter((e) => e.bbox !== void 0 && e.bbox.w > 0 && e.bbox.h > 0).map((e) => {
|
|
71623
71627
|
const childCrops = childCropsByEvent.get(e.id);
|
|
71624
71628
|
return {
|
|
@@ -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_analytics_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DwFi68p5.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-post-analysis",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.202",
|
|
4
4
|
"description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|