@camstack/addon-tailscale 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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-Dh1t-SVr.js");
27
+ const require_dist = require("../dist-DEDkX8co.js");
28
28
  let node_child_process = require("node:child_process");
29
29
  let node_util = require("node:util");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-liMVmwKI.mjs";
1
+ import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-D1JegZhD.mjs";
2
2
  import { execFile, spawn } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as fs from "node:fs";
@@ -11322,7 +11322,21 @@ var NativeCropResultSchema = object({
11322
11322
  /** Packed rgb (24-bit) pixels of the crop. */
11323
11323
  bytes: _instanceof(Uint8Array),
11324
11324
  width: number().int().positive(),
11325
- height: number().int().positive()
11325
+ height: number().int().positive(),
11326
+ /**
11327
+ * Which source served this crop, so a quality-sensitive consumer (the native
11328
+ * `keyFrame`) can reject a degraded fallback:
11329
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11330
+ * quality path).
11331
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11332
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11333
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11334
+ *
11335
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11336
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11337
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11338
+ */
11339
+ tier: _enum(["native", "ram-fullframe"]).optional()
11326
11340
  });
11327
11341
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11328
11342
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14653,7 +14667,8 @@ var LinkedDeviceSchema = object({
14653
14667
  deviceId: number(),
14654
14668
  name: string(),
14655
14669
  location: string().nullable(),
14656
- features: array(string())
14670
+ features: array(string()),
14671
+ producesTrackedEvents: boolean().optional()
14657
14672
  });
14658
14673
  var SavedDeviceRowSchema = object({
14659
14674
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16300,6 +16315,7 @@ var TrackSchema = object({
16300
16315
  deviceId: number(),
16301
16316
  className: string(),
16302
16317
  label: string().optional(),
16318
+ producingDeviceName: string().optional(),
16303
16319
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16304
16320
  source: TrackSourceSchema.optional(),
16305
16321
  firstSeen: number(),
@@ -16437,7 +16453,8 @@ var MediaFileKindEnum = _enum([
16437
16453
  "fullFrameBoxed",
16438
16454
  "faceCrop",
16439
16455
  "plateCrop",
16440
- "keyFrame"
16456
+ "keyFrame",
16457
+ "keyFrameSmall"
16441
16458
  ]);
16442
16459
  var MediaFileSchema = object({
16443
16460
  key: string(),
@@ -11322,7 +11322,21 @@ var NativeCropResultSchema = object({
11322
11322
  /** Packed rgb (24-bit) pixels of the crop. */
11323
11323
  bytes: _instanceof(Uint8Array),
11324
11324
  width: number().int().positive(),
11325
- height: number().int().positive()
11325
+ height: number().int().positive(),
11326
+ /**
11327
+ * Which source served this crop, so a quality-sensitive consumer (the native
11328
+ * `keyFrame`) can reject a degraded fallback:
11329
+ * - `native` — cut from the decode worker's retained NATIVE surface (the
11330
+ * quality path).
11331
+ * - `ram-fullframe` — the native surface MISSED but the request was full-frame,
11332
+ * so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
11333
+ * the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
11334
+ *
11335
+ * OPTIONAL: a pre-tier runner (version skew) omits it — an ABSENT `tier` MUST be
11336
+ * treated as `native` (accepted) by every consumer so mixed-version clusters
11337
+ * keep the pre-tier behaviour. An ROI miss returns `null` (no tier at all).
11338
+ */
11339
+ tier: _enum(["native", "ram-fullframe"]).optional()
11326
11340
  });
11327
11341
  /** Parent detection context passed to `runDetailSubtree` — the crop's
11328
11342
  * originating detection, in FRAME-space coordinates. Reuses
@@ -14653,7 +14667,8 @@ var LinkedDeviceSchema = object({
14653
14667
  deviceId: number(),
14654
14668
  name: string(),
14655
14669
  location: string().nullable(),
14656
- features: array(string())
14670
+ features: array(string()),
14671
+ producesTrackedEvents: boolean().optional()
14657
14672
  });
14658
14673
  var SavedDeviceRowSchema = object({
14659
14674
  /** Numeric id reserved at allocateDeviceId time. */
@@ -16300,6 +16315,7 @@ var TrackSchema = object({
16300
16315
  deviceId: number(),
16301
16316
  className: string(),
16302
16317
  label: string().optional(),
16318
+ producingDeviceName: string().optional(),
16303
16319
  /** Track provenance. Absent ⇒ `pipeline` (legacy rows). */
16304
16320
  source: TrackSourceSchema.optional(),
16305
16321
  firstSeen: number(),
@@ -16437,7 +16453,8 @@ var MediaFileKindEnum = _enum([
16437
16453
  "fullFrameBoxed",
16438
16454
  "faceCrop",
16439
16455
  "plateCrop",
16440
- "keyFrame"
16456
+ "keyFrame",
16457
+ "keyFrameSmall"
16441
16458
  ]);
16442
16459
  var MediaFileSchema = object({
16443
16460
  key: string(),
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-Dh1t-SVr.js");
5
+ const require_dist = require("../dist-DEDkX8co.js");
6
6
  let node_child_process = require("node:child_process");
7
7
  let node_util = require("node:util");
8
8
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-liMVmwKI.mjs";
1
+ import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-D1JegZhD.mjs";
2
2
  import { execFile } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import { randomUUID } from "node:crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",