@camstack/addon-ai 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
@@ -11397,7 +11397,21 @@ var NativeCropResultSchema = object({
11397
11397
  /** Packed rgb (24-bit) pixels of the crop. */
11398
11398
  bytes: _instanceof(Uint8Array),
11399
11399
  width: number().int().positive(),
11400
- height: number().int().positive()
11400
+ height: number().int().positive(),
11401
+ /**
11402
+ * Which source served this crop, so a quality-sensitive consumer (the native
11403
+ * `keyFrame`) can reject a degraded fallback:
11404
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11405
+ * quality path).
11406
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11407
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11408
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11409
+ *
11410
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11411
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11412
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11413
+ */
11414
+ tier: _enum(["native", "ram-fullframe"]).optional()
11401
11415
  });
11402
11416
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11403
11417
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14728,7 +14742,8 @@ var LinkedDeviceSchema = object({
14728
14742
  deviceId: number(),
14729
14743
  name: string(),
14730
14744
  location: string().nullable(),
14731
- features: array(string())
14745
+ features: array(string()),
14746
+ producesTrackedEvents: boolean().optional()
14732
14747
  });
14733
14748
  var SavedDeviceRowSchema = object({
14734
14749
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16403,6 +16418,7 @@ var TrackSchema = object({
16403
16418
  deviceId: number(),
16404
16419
  className: string(),
16405
16420
  label: string().optional(),
16421
+ producingDeviceName: string().optional(),
16406
16422
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16407
16423
  source: TrackSourceSchema.optional(),
16408
16424
  firstSeen: number(),
@@ -16540,7 +16556,8 @@ var MediaFileKindEnum = _enum([
16540
16556
  "fullFrameBoxed",
16541
16557
  "faceCrop",
16542
16558
  "plateCrop",
16543
- "keyFrame"
16559
+ "keyFrame",
16560
+ "keyFrameSmall"
16544
16561
  ]);
16545
16562
  var MediaFileSchema = object({
16546
16563
  key: string(),
package/dist/addon.mjs CHANGED
@@ -11359,7 +11359,21 @@ var NativeCropResultSchema = object({
11359
11359
  /** Packed rgb (24-bit) pixels of the crop. */
11360
11360
  bytes: _instanceof(Uint8Array),
11361
11361
  width: number().int().positive(),
11362
- height: number().int().positive()
11362
+ height: number().int().positive(),
11363
+ /**
11364
+ * Which source served this crop, so a quality-sensitive consumer (the native
11365
+ * `keyFrame`) can reject a degraded fallback:
11366
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11367
+ * quality path).
11368
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11369
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11370
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11371
+ *
11372
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11373
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11374
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11375
+ */
11376
+ tier: _enum(["native", "ram-fullframe"]).optional()
11363
11377
  });
11364
11378
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11365
11379
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14690,7 +14704,8 @@ var LinkedDeviceSchema = object({
14690
14704
  deviceId: number(),
14691
14705
  name: string(),
14692
14706
  location: string().nullable(),
14693
- features: array(string())
14707
+ features: array(string()),
14708
+ producesTrackedEvents: boolean().optional()
14694
14709
  });
14695
14710
  var SavedDeviceRowSchema = object({
14696
14711
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16365,6 +16380,7 @@ var TrackSchema = object({
16365
16380
  deviceId: number(),
16366
16381
  className: string(),
16367
16382
  label: string().optional(),
16383
+ producingDeviceName: string().optional(),
16368
16384
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16369
16385
  source: TrackSourceSchema.optional(),
16370
16386
  firstSeen: number(),
@@ -16502,7 +16518,8 @@ var MediaFileKindEnum = _enum([
16502
16518
  "fullFrameBoxed",
16503
16519
  "faceCrop",
16504
16520
  "plateCrop",
16505
- "keyFrame"
16521
+ "keyFrame",
16522
+ "keyFrameSmall"
16506
16523
  ]);
16507
16524
  var MediaFileSchema = object({
16508
16525
  key: string(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-ai",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "AI addon for CamStack — the `llm` collection provider (cloud, LAN, and camstack-managed local llama.cpp profiles) plus the per-node `llm-runtime` managed executor.",
5
5
  "keywords": [
6
6
  "camstack",