@camstack/addon-provider-petkit 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
@@ -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
@@ -17686,7 +17700,8 @@ var LinkedDeviceSchema = object({
17686
17700
  deviceId: number(),
17687
17701
  name: string(),
17688
17702
  location: string().nullable(),
17689
- features: array(string())
17703
+ features: array(string()),
17704
+ producesTrackedEvents: boolean().optional()
17690
17705
  });
17691
17706
  var SavedDeviceRowSchema = object({
17692
17707
  /** Numeric id reserved at allocateDeviceId time. */
@@ -19316,6 +19331,7 @@ var TrackSchema = object({
19316
19331
  deviceId: number(),
19317
19332
  className: string(),
19318
19333
  label: string().optional(),
19334
+ producingDeviceName: string().optional(),
19319
19335
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
19320
19336
  source: TrackSourceSchema.optional(),
19321
19337
  firstSeen: number(),
@@ -19453,7 +19469,8 @@ var MediaFileKindEnum = _enum([
19453
19469
  "fullFrameBoxed",
19454
19470
  "faceCrop",
19455
19471
  "plateCrop",
19456
- "keyFrame"
19472
+ "keyFrame",
19473
+ "keyFrameSmall"
19457
19474
  ]);
19458
19475
  var MediaFileSchema = object({
19459
19476
  key: string(),
package/dist/addon.mjs CHANGED
@@ -12664,7 +12664,21 @@ var NativeCropResultSchema = object({
12664
12664
  /** Packed rgb (24-bit) pixels of the crop. */
12665
12665
  bytes: _instanceof(Uint8Array),
12666
12666
  width: number().int().positive(),
12667
- height: number().int().positive()
12667
+ height: number().int().positive(),
12668
+ /**
12669
+ * Which source served this crop, so a quality-sensitive consumer (the native
12670
+ * `keyFrame`) can reject a degraded fallback:
12671
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
12672
+ * quality path).
12673
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
12674
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
12675
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
12676
+ *
12677
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
12678
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
12679
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
12680
+ */
12681
+ tier: _enum(["native", "ram-fullframe"]).optional()
12668
12682
  });
12669
12683
  /** Parent detection context passed to `runDetailSubtree` — the crop's
12670
12684
  * originating detection, in FRAME-space coordinates. Reuses
@@ -17685,7 +17699,8 @@ var LinkedDeviceSchema = object({
17685
17699
  deviceId: number(),
17686
17700
  name: string(),
17687
17701
  location: string().nullable(),
17688
- features: array(string())
17702
+ features: array(string()),
17703
+ producesTrackedEvents: boolean().optional()
17689
17704
  });
17690
17705
  var SavedDeviceRowSchema = object({
17691
17706
  /** Numeric id reserved at allocateDeviceId time. */
@@ -19315,6 +19330,7 @@ var TrackSchema = object({
19315
19330
  deviceId: number(),
19316
19331
  className: string(),
19317
19332
  label: string().optional(),
19333
+ producingDeviceName: string().optional(),
19318
19334
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
19319
19335
  source: TrackSourceSchema.optional(),
19320
19336
  firstSeen: number(),
@@ -19452,7 +19468,8 @@ var MediaFileKindEnum = _enum([
19452
19468
  "fullFrameBoxed",
19453
19469
  "faceCrop",
19454
19470
  "plateCrop",
19455
- "keyFrame"
19471
+ "keyFrame",
19472
+ "keyFrameSmall"
19456
19473
  ]);
19457
19474
  var MediaFileSchema = object({
19458
19475
  key: string(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-petkit",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "PetKit smart-feeder device-provider addon for CamStack — wraps the @apocaliss92/nodepetkit PetKit cloud client",
5
5
  "keywords": [
6
6
  "camstack",