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