@camstack/addon-notifiers 1.2.0 → 1.2.1

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/addon.js CHANGED
@@ -11637,7 +11637,21 @@ var NativeCropResultSchema = object({
11637
11637
  /** Packed rgb (24-bit) pixels of the crop. */
11638
11638
  bytes: _instanceof(Uint8Array),
11639
11639
  width: number().int().positive(),
11640
- height: number().int().positive()
11640
+ height: number().int().positive(),
11641
+ /**
11642
+ * Which source served this crop, so a quality-sensitive consumer (the native
11643
+ * `keyFrame`) can reject a degraded fallback:
11644
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11645
+ * quality path).
11646
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11647
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11648
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11649
+ *
11650
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11651
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11652
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11653
+ */
11654
+ tier: _enum(["native", "ram-fullframe"]).optional()
11641
11655
  });
11642
11656
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11643
11657
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14987,7 +15001,8 @@ var LinkedDeviceSchema = object({
14987
15001
  deviceId: number(),
14988
15002
  name: string(),
14989
15003
  location: string().nullable(),
14990
- features: array(string())
15004
+ features: array(string()),
15005
+ producesTrackedEvents: boolean().optional()
14991
15006
  });
14992
15007
  var SavedDeviceRowSchema = object({
14993
15008
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16631,6 +16646,7 @@ var TrackSchema = object({
16631
16646
  deviceId: number(),
16632
16647
  className: string(),
16633
16648
  label: string().optional(),
16649
+ producingDeviceName: string().optional(),
16634
16650
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16635
16651
  source: TrackSourceSchema.optional(),
16636
16652
  firstSeen: number(),
@@ -16768,7 +16784,8 @@ var MediaFileKindEnum = _enum([
16768
16784
  "fullFrameBoxed",
16769
16785
  "faceCrop",
16770
16786
  "plateCrop",
16771
- "keyFrame"
16787
+ "keyFrame",
16788
+ "keyFrameSmall"
16772
16789
  ]);
16773
16790
  var MediaFileSchema = object({
16774
16791
  key: string(),
package/dist/addon.mjs CHANGED
@@ -11633,7 +11633,21 @@ var NativeCropResultSchema = object({
11633
11633
  /** Packed rgb (24-bit) pixels of the crop. */
11634
11634
  bytes: _instanceof(Uint8Array),
11635
11635
  width: number().int().positive(),
11636
- height: number().int().positive()
11636
+ height: number().int().positive(),
11637
+ /**
11638
+ * Which source served this crop, so a quality-sensitive consumer (the native
11639
+ * `keyFrame`) can reject a degraded fallback:
11640
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11641
+ * quality path).
11642
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11643
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11644
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11645
+ *
11646
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11647
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11648
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11649
+ */
11650
+ tier: _enum(["native", "ram-fullframe"]).optional()
11637
11651
  });
11638
11652
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11639
11653
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14983,7 +14997,8 @@ var LinkedDeviceSchema = object({
14983
14997
  deviceId: number(),
14984
14998
  name: string(),
14985
14999
  location: string().nullable(),
14986
- features: array(string())
15000
+ features: array(string()),
15001
+ producesTrackedEvents: boolean().optional()
14987
15002
  });
14988
15003
  var SavedDeviceRowSchema = object({
14989
15004
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16627,6 +16642,7 @@ var TrackSchema = object({
16627
16642
  deviceId: number(),
16628
16643
  className: string(),
16629
16644
  label: string().optional(),
16645
+ producingDeviceName: string().optional(),
16630
16646
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16631
16647
  source: TrackSourceSchema.optional(),
16632
16648
  firstSeen: number(),
@@ -16764,7 +16780,8 @@ var MediaFileKindEnum = _enum([
16764
16780
  "fullFrameBoxed",
16765
16781
  "faceCrop",
16766
16782
  "plateCrop",
16767
- "keyFrame"
16783
+ "keyFrame",
16784
+ "keyFrameSmall"
16768
16785
  ]);
16769
16786
  var MediaFileSchema = object({
16770
16787
  key: string(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-notifiers",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
5
5
  "keywords": [
6
6
  "camstack",