@camstack/addon-post-analysis 1.2.169 → 1.2.170

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.
@@ -20614,7 +20614,21 @@ var pipelineAnalyticsCapability = {
20614
20614
  /** Include stationary-promoted rows (parked objects handed to the
20615
20615
  * stationary registry). Default false: the timeline lists passages,
20616
20616
  * not parking records (operator decision, 2026-08-15). */
20617
- includeStationary: boolean().optional()
20617
+ includeStationary: boolean().optional(),
20618
+ /**
20619
+ * Restrict to these track classes. ABSENT or EMPTY means no filter.
20620
+ *
20621
+ * Added 2026-09-03: the timeline's class chips filtered in the CLIENT,
20622
+ * on a day of rows already downloaded. The zone filter had been moved
20623
+ * here for exactly that reason — and it is also what lets the rows come
20624
+ * back `slim` — but the class filter was left behind, so a narrow
20625
+ * selection was still a wide read followed by a wide discard.
20626
+ *
20627
+ * Empty is "show all", not "nothing matches": a chip row with nothing
20628
+ * selected is an operator who has not narrowed anything, and an empty
20629
+ * timeline would read as a camera that saw nothing.
20630
+ */
20631
+ classes: array(string()).optional()
20618
20632
  }), array(TrackSchema).readonly()),
20619
20633
  /**
20620
20634
  * Batched cluster-wide track listing — ONE call for the events page /
@@ -20583,7 +20583,21 @@ var pipelineAnalyticsCapability = {
20583
20583
  /** Include stationary-promoted rows (parked objects handed to the
20584
20584
  * stationary registry). Default false: the timeline lists passages,
20585
20585
  * not parking records (operator decision, 2026-08-15). */
20586
- includeStationary: boolean().optional()
20586
+ includeStationary: boolean().optional(),
20587
+ /**
20588
+ * Restrict to these track classes. ABSENT or EMPTY means no filter.
20589
+ *
20590
+ * Added 2026-09-03: the timeline's class chips filtered in the CLIENT,
20591
+ * on a day of rows already downloaded. The zone filter had been moved
20592
+ * here for exactly that reason — and it is also what lets the rows come
20593
+ * back `slim` — but the class filter was left behind, so a narrow
20594
+ * selection was still a wide read followed by a wide discard.
20595
+ *
20596
+ * Empty is "show all", not "nothing matches": a chip row with nothing
20597
+ * selected is an operator who has not narrowed anything, and an empty
20598
+ * timeline would read as a camera that saw nothing.
20599
+ */
20600
+ classes: array(string()).optional()
20587
20601
  }), array(TrackSchema).readonly()),
20588
20602
  /**
20589
20603
  * Batched cluster-wide track listing — ONE call for the events page /
@@ -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-DQVA7q-T.js");
5
+ const require_dist = require("../dist-DEVmtsZY.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 { At as BaseAddon, F as PoolMemoryWatchdog, St as resolvePoolMemoryPolicy, at as embeddingEncoderCapability, gt as parseProcStatus, ut as hfModelUrl } from "../dist-Cubb8Avj.mjs";
1
+ import { At as BaseAddon, F as PoolMemoryWatchdog, St as resolvePoolMemoryPolicy, at as embeddingEncoderCapability, gt as parseProcStatus, ut as hfModelUrl } from "../dist-DSPOn9Cb.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.59",
6
+ version: "1.2.60",
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.139",
21
+ version: "1.2.140",
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.105",
36
+ version: "1.2.106",
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.139",
39
+ version: "1.2.140",
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.59",
48
+ version: "1.2.60",
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.105",
84
+ version: "1.2.106",
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-DQVA7q-T.js");
5
+ const require_dist = require("../dist-DEVmtsZY.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");
@@ -40571,12 +40571,14 @@ var TrackStore = class {
40571
40571
  const limit = params.limit ?? 50;
40572
40572
  const timeBetween = params.since !== void 0 || params.until !== void 0 ? { firstSeen: [params.since ?? 0, params.until ?? Date.now()] } : {};
40573
40573
  const stationaryExclusion = params.excludeStationaryPromotions === true ? { whereNot: { closedReason: "stationary-promotion" } } : {};
40574
+ const classFilter = params.classes !== void 0 && params.classes.length > 0 ? { whereJsonArrayAny: { classes: [...params.classes] } } : {};
40574
40575
  if (params.zone === void 0) return (await this.store.query.query({
40575
40576
  collection: TRACKS_COLLECTION,
40576
40577
  filter: {
40577
40578
  where: { deviceId: params.deviceId },
40578
40579
  ...Object.keys(timeBetween).length > 0 ? { whereBetween: timeBetween } : {},
40579
40580
  ...stationaryExclusion,
40581
+ ...classFilter,
40580
40582
  orderBy: {
40581
40583
  field: "firstSeen",
40582
40584
  direction: "desc"
@@ -40592,6 +40594,7 @@ var TrackStore = class {
40592
40594
  filter: {
40593
40595
  where: { deviceId: params.deviceId },
40594
40596
  ...stationaryExclusion,
40597
+ ...classFilter,
40595
40598
  whereBetween: {
40596
40599
  ...timeBetween,
40597
40600
  envMinX: [-1e6, bounds.maxX],
@@ -40612,6 +40615,7 @@ var TrackStore = class {
40612
40615
  filter: {
40613
40616
  where: { deviceId: params.deviceId },
40614
40617
  ...stationaryExclusion,
40618
+ ...classFilter,
40615
40619
  ...Object.keys(timeBetween).length > 0 ? { whereBetween: timeBetween } : {},
40616
40620
  orderBy: {
40617
40621
  field: "firstSeen",
@@ -1,4 +1,4 @@
1
- import { $ as audioModeOf, A as NcSnoozeSchema, At as BaseAddon, B as SCENE_DEFAULT_UNCOVERED_POLICY, Bt as boolean, C as NcConditionDescriptorSchema, Ct as sceneMonitorCapability, D as NcRuleTargetSchema, Dt as videoclipsCapability, E as NcRuleSchema, Et as vectorDimFromBase64, Ft as isDeviceScopedCap, G as TimelapseRulePatchSchema, Gt as partialRecord, H as SceneMonitorSchema, Ht as literal, I as RECORDING_EXPORT_MAX_READ_BYTES, It as nodePin, J as VISIT_MERGE_GAP_MS, Jt as unknown, K as TimelapseRuleSchema, Kt as record, L as RetrainStatusSchema, Lt as sleep$1, M as NcSystemEventKindSchema, Mt as DeviceType, N as NcTaxonomySchema, Nt as createEvent, O as NcScheduleSchema, Ot as zoneAnalyticsCapability, P as OpsLogEntrySchema, Pt as hydrateSchema, Q as audioMetricsCapability, Rt as _enum, S as NC_TAXONOMY, T as NcRulePatchSchema, Tt as systemEventFilterApplies, U as TIMELAPSE_DENSE_FLOOR_SEC, Ut as number, V as SCENE_DIVERGED, Vt as discriminatedUnion, W as TimelapseRuleInputSchema, Wt as object, X as alarmPanelCapability, Y as addonWidgetsSourceCapability, Yt as EventCategory, Z as assertTimelapseCadences, _ as MediaFileKindEnum, _t as pickClusterStepModels, a as DEFAULT_EVENT_COLOR, b as NC_DEFAULT_SNOOZE_MINUTES, bt as readDeviceStateFrom, c as DETECTION_MACRO_CLASSES, ct as faceGalleryCapability, d as EVENT_KIND_BY_CAP, dt as isDetectionMacroClass, et as buildEventKindDescriptor, f as EVENT_PAD_MS, ft as isScheduleActive, g as MACRO_LABELS, h as LabelAttributionSchema, ht as notificationRulesCapability, i as COCO_TO_MACRO, it as deriveRecordingMode, j as NcSnoozeSuppressedSchema, jt as CamProfileSchema, k as NcSnoozeInputSchema, kt as errMsg, lt as failureContributionCapability, m as FailureCounters, mt as kebabToCamel, n as BaseDevice, nt as customAction, ot as encodeVectorBase64, p as FULL_IMAGE_BBOX, pt as isSourceCap, q as TrackSourceSchema, qt as string, r as CLUSTER_MODEL_SCOPED_STEPS, rt as defineCustomActions, st as evaluateSensorEdge, t as AUDIO_MACRO_LABELS, tt as cosineSimilarity$1, u as DeclaredDevices, v as NC_ALARM_SYSTEM_EVENT_KINDS, vt as pipelineAnalyticsCapability, w as NcRuleInputSchema, wt as subKindsOf, xt as readTimelapseGeneratedAt, y as NC_CONDITION_CATALOG, yt as plateGalleryCapability, z as SCENE_DEFAULT_ANCHOR_THRESHOLD, zt as array } from "../dist-Cubb8Avj.mjs";
1
+ import { $ as audioModeOf, A as NcSnoozeSchema, At as BaseAddon, B as SCENE_DEFAULT_UNCOVERED_POLICY, Bt as boolean, C as NcConditionDescriptorSchema, Ct as sceneMonitorCapability, D as NcRuleTargetSchema, Dt as videoclipsCapability, E as NcRuleSchema, Et as vectorDimFromBase64, Ft as isDeviceScopedCap, G as TimelapseRulePatchSchema, Gt as partialRecord, H as SceneMonitorSchema, Ht as literal, I as RECORDING_EXPORT_MAX_READ_BYTES, It as nodePin, J as VISIT_MERGE_GAP_MS, Jt as unknown, K as TimelapseRuleSchema, Kt as record, L as RetrainStatusSchema, Lt as sleep$1, M as NcSystemEventKindSchema, Mt as DeviceType, N as NcTaxonomySchema, Nt as createEvent, O as NcScheduleSchema, Ot as zoneAnalyticsCapability, P as OpsLogEntrySchema, Pt as hydrateSchema, Q as audioMetricsCapability, Rt as _enum, S as NC_TAXONOMY, T as NcRulePatchSchema, Tt as systemEventFilterApplies, U as TIMELAPSE_DENSE_FLOOR_SEC, Ut as number, V as SCENE_DIVERGED, Vt as discriminatedUnion, W as TimelapseRuleInputSchema, Wt as object, X as alarmPanelCapability, Y as addonWidgetsSourceCapability, Yt as EventCategory, Z as assertTimelapseCadences, _ as MediaFileKindEnum, _t as pickClusterStepModels, a as DEFAULT_EVENT_COLOR, b as NC_DEFAULT_SNOOZE_MINUTES, bt as readDeviceStateFrom, c as DETECTION_MACRO_CLASSES, ct as faceGalleryCapability, d as EVENT_KIND_BY_CAP, dt as isDetectionMacroClass, et as buildEventKindDescriptor, f as EVENT_PAD_MS, ft as isScheduleActive, g as MACRO_LABELS, h as LabelAttributionSchema, ht as notificationRulesCapability, i as COCO_TO_MACRO, it as deriveRecordingMode, j as NcSnoozeSuppressedSchema, jt as CamProfileSchema, k as NcSnoozeInputSchema, kt as errMsg, lt as failureContributionCapability, m as FailureCounters, mt as kebabToCamel, n as BaseDevice, nt as customAction, ot as encodeVectorBase64, p as FULL_IMAGE_BBOX, pt as isSourceCap, q as TrackSourceSchema, qt as string, r as CLUSTER_MODEL_SCOPED_STEPS, rt as defineCustomActions, st as evaluateSensorEdge, t as AUDIO_MACRO_LABELS, tt as cosineSimilarity$1, u as DeclaredDevices, v as NC_ALARM_SYSTEM_EVENT_KINDS, vt as pipelineAnalyticsCapability, w as NcRuleInputSchema, wt as subKindsOf, xt as readTimelapseGeneratedAt, y as NC_CONDITION_CATALOG, yt as plateGalleryCapability, z as SCENE_DEFAULT_ANCHOR_THRESHOLD, zt as array } from "../dist-DSPOn9Cb.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";
@@ -40546,12 +40546,14 @@ var TrackStore = class {
40546
40546
  const limit = params.limit ?? 50;
40547
40547
  const timeBetween = params.since !== void 0 || params.until !== void 0 ? { firstSeen: [params.since ?? 0, params.until ?? Date.now()] } : {};
40548
40548
  const stationaryExclusion = params.excludeStationaryPromotions === true ? { whereNot: { closedReason: "stationary-promotion" } } : {};
40549
+ const classFilter = params.classes !== void 0 && params.classes.length > 0 ? { whereJsonArrayAny: { classes: [...params.classes] } } : {};
40549
40550
  if (params.zone === void 0) return (await this.store.query.query({
40550
40551
  collection: TRACKS_COLLECTION,
40551
40552
  filter: {
40552
40553
  where: { deviceId: params.deviceId },
40553
40554
  ...Object.keys(timeBetween).length > 0 ? { whereBetween: timeBetween } : {},
40554
40555
  ...stationaryExclusion,
40556
+ ...classFilter,
40555
40557
  orderBy: {
40556
40558
  field: "firstSeen",
40557
40559
  direction: "desc"
@@ -40567,6 +40569,7 @@ var TrackStore = class {
40567
40569
  filter: {
40568
40570
  where: { deviceId: params.deviceId },
40569
40571
  ...stationaryExclusion,
40572
+ ...classFilter,
40570
40573
  whereBetween: {
40571
40574
  ...timeBetween,
40572
40575
  envMinX: [-1e6, bounds.maxX],
@@ -40587,6 +40590,7 @@ var TrackStore = class {
40587
40590
  filter: {
40588
40591
  where: { deviceId: params.deviceId },
40589
40592
  ...stationaryExclusion,
40593
+ ...classFilter,
40590
40594
  ...Object.keys(timeBetween).length > 0 ? { whereBetween: timeBetween } : {},
40591
40595
  orderBy: {
40592
40596
  field: "firstSeen",
@@ -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-D74iweVp.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DQYIAs-M.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.169",
3
+ "version": "1.2.170",
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",