@camstack/addon-provider-ecowitt 0.2.0 → 0.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
@@ -12666,7 +12666,21 @@ var NativeCropResultSchema = object({
12666
12666
  /** Packed rgb (24-bit) pixels of the crop. */
12667
12667
  bytes: _instanceof(Uint8Array),
12668
12668
  width: number().int().positive(),
12669
- height: number().int().positive()
12669
+ height: number().int().positive(),
12670
+ /**
12671
+ * Which source served this crop, so a quality-sensitive consumer (the native
12672
+ * `keyFrame`) can reject a degraded fallback:
12673
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
12674
+ * quality path).
12675
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
12676
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
12677
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
12678
+ *
12679
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
12680
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
12681
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
12682
+ */
12683
+ tier: _enum(["native", "ram-fullframe"]).optional()
12670
12684
  });
12671
12685
  /** Parent detection context passed to `runDetailSubtree` — the crop's
12672
12686
  * originating detection, in FRAME-space coordinates. Reuses
@@ -17670,7 +17684,8 @@ var LinkedDeviceSchema = object({
17670
17684
  deviceId: number(),
17671
17685
  name: string(),
17672
17686
  location: string().nullable(),
17673
- features: array(string())
17687
+ features: array(string()),
17688
+ producesTrackedEvents: boolean().optional()
17674
17689
  });
17675
17690
  var SavedDeviceRowSchema = object({
17676
17691
  /** Numeric id reserved at allocateDeviceId time. */
@@ -19300,6 +19315,7 @@ var TrackSchema = object({
19300
19315
  deviceId: number(),
19301
19316
  className: string(),
19302
19317
  label: string().optional(),
19318
+ producingDeviceName: string().optional(),
19303
19319
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
19304
19320
  source: TrackSourceSchema.optional(),
19305
19321
  firstSeen: number(),
@@ -19437,7 +19453,8 @@ var MediaFileKindEnum = _enum([
19437
19453
  "fullFrameBoxed",
19438
19454
  "faceCrop",
19439
19455
  "plateCrop",
19440
- "keyFrame"
19456
+ "keyFrame",
19457
+ "keyFrameSmall"
19441
19458
  ]);
19442
19459
  var MediaFileSchema = object({
19443
19460
  key: string(),
package/dist/addon.mjs CHANGED
@@ -12665,7 +12665,21 @@ var NativeCropResultSchema = object({
12665
12665
  /** Packed rgb (24-bit) pixels of the crop. */
12666
12666
  bytes: _instanceof(Uint8Array),
12667
12667
  width: number().int().positive(),
12668
- height: number().int().positive()
12668
+ height: number().int().positive(),
12669
+ /**
12670
+ * Which source served this crop, so a quality-sensitive consumer (the native
12671
+ * `keyFrame`) can reject a degraded fallback:
12672
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
12673
+ * quality path).
12674
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
12675
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
12676
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
12677
+ *
12678
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
12679
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
12680
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
12681
+ */
12682
+ tier: _enum(["native", "ram-fullframe"]).optional()
12669
12683
  });
12670
12684
  /** Parent detection context passed to `runDetailSubtree` — the crop's
12671
12685
  * originating detection, in FRAME-space coordinates. Reuses
@@ -17669,7 +17683,8 @@ var LinkedDeviceSchema = object({
17669
17683
  deviceId: number(),
17670
17684
  name: string(),
17671
17685
  location: string().nullable(),
17672
- features: array(string())
17686
+ features: array(string()),
17687
+ producesTrackedEvents: boolean().optional()
17673
17688
  });
17674
17689
  var SavedDeviceRowSchema = object({
17675
17690
  /** Numeric id reserved at allocateDeviceId time. */
@@ -19299,6 +19314,7 @@ var TrackSchema = object({
19299
19314
  deviceId: number(),
19300
19315
  className: string(),
19301
19316
  label: string().optional(),
19317
+ producingDeviceName: string().optional(),
19302
19318
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
19303
19319
  source: TrackSourceSchema.optional(),
19304
19320
  firstSeen: number(),
@@ -19436,7 +19452,8 @@ var MediaFileKindEnum = _enum([
19436
19452
  "fullFrameBoxed",
19437
19453
  "faceCrop",
19438
19454
  "plateCrop",
19439
- "keyFrame"
19455
+ "keyFrame",
19456
+ "keyFrameSmall"
19440
19457
  ]);
19441
19458
  var MediaFileSchema = object({
19442
19459
  key: string(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-ecowitt",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Ecowitt weather-station device-provider addon for CamStack — wraps the @apocaliss92/nodewitt local-poll / push client",
5
5
  "keywords": [
6
6
  "camstack",