@camstack/addon-export-alexa 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.
@@ -11544,7 +11544,21 @@ var NativeCropResultSchema = object({
11544
11544
  /** Packed rgb (24-bit) pixels of the crop. */
11545
11545
  bytes: _instanceof(Uint8Array),
11546
11546
  width: number().int().positive(),
11547
- height: number().int().positive()
11547
+ height: number().int().positive(),
11548
+ /**
11549
+ * Which source served this crop, so a quality-sensitive consumer (the native
11550
+ * `keyFrame`) can reject a degraded fallback:
11551
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11552
+ * quality path).
11553
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11554
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11555
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11556
+ *
11557
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11558
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11559
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11560
+ */
11561
+ tier: _enum(["native", "ram-fullframe"]).optional()
11548
11562
  });
11549
11563
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11550
11564
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14940,7 +14954,8 @@ var LinkedDeviceSchema = object({
14940
14954
  deviceId: number(),
14941
14955
  name: string(),
14942
14956
  location: string().nullable(),
14943
- features: array(string())
14957
+ features: array(string()),
14958
+ producesTrackedEvents: boolean().optional()
14944
14959
  });
14945
14960
  var SavedDeviceRowSchema = object({
14946
14961
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16576,6 +16591,7 @@ var TrackSchema = object({
16576
16591
  deviceId: number(),
16577
16592
  className: string(),
16578
16593
  label: string().optional(),
16594
+ producingDeviceName: string().optional(),
16579
16595
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16580
16596
  source: TrackSourceSchema.optional(),
16581
16597
  firstSeen: number(),
@@ -16713,7 +16729,8 @@ var MediaFileKindEnum = _enum([
16713
16729
  "fullFrameBoxed",
16714
16730
  "faceCrop",
16715
16731
  "plateCrop",
16716
- "keyFrame"
16732
+ "keyFrame",
16733
+ "keyFrameSmall"
16717
16734
  ]);
16718
16735
  var MediaFileSchema = object({
16719
16736
  key: string(),
@@ -11518,7 +11518,21 @@ var NativeCropResultSchema = object({
11518
11518
  /** Packed rgb (24-bit) pixels of the crop. */
11519
11519
  bytes: _instanceof(Uint8Array),
11520
11520
  width: number().int().positive(),
11521
- height: number().int().positive()
11521
+ height: number().int().positive(),
11522
+ /**
11523
+ * Which source served this crop, so a quality-sensitive consumer (the native
11524
+ * `keyFrame`) can reject a degraded fallback:
11525
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11526
+ * quality path).
11527
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11528
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11529
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11530
+ *
11531
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11532
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11533
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11534
+ */
11535
+ tier: _enum(["native", "ram-fullframe"]).optional()
11522
11536
  });
11523
11537
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11524
11538
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14914,7 +14928,8 @@ var LinkedDeviceSchema = object({
14914
14928
  deviceId: number(),
14915
14929
  name: string(),
14916
14930
  location: string().nullable(),
14917
- features: array(string())
14931
+ features: array(string()),
14932
+ producesTrackedEvents: boolean().optional()
14918
14933
  });
14919
14934
  var SavedDeviceRowSchema = object({
14920
14935
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16550,6 +16565,7 @@ var TrackSchema = object({
16550
16565
  deviceId: number(),
16551
16566
  className: string(),
16552
16567
  label: string().optional(),
16568
+ producingDeviceName: string().optional(),
16553
16569
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16554
16570
  source: TrackSourceSchema.optional(),
16555
16571
  firstSeen: number(),
@@ -16687,7 +16703,8 @@ var MediaFileKindEnum = _enum([
16687
16703
  "fullFrameBoxed",
16688
16704
  "faceCrop",
16689
16705
  "plateCrop",
16690
- "keyFrame"
16706
+ "keyFrame",
16707
+ "keyFrameSmall"
16691
16708
  ]);
16692
16709
  var MediaFileSchema = object({
16693
16710
  key: string(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-alexa",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Alexa Smart Home Skill export — hub-side OAuth provider + directive handler. The companion AWS Lambda forwards Alexa directives to this addon's /addon/export-alexa/directive endpoint.",
5
5
  "keywords": [
6
6
  "camstack",