@camstack/addon-post-analysis 1.2.205 → 1.2.206

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.
@@ -19803,11 +19803,30 @@ var SensorEventSchema = object({
19803
19803
  value: record(string(), unknown()).nullable(),
19804
19804
  timestamp: number()
19805
19805
  });
19806
+ /**
19807
+ * One stored sighting on a track's trajectory.
19808
+ *
19809
+ * The array these live in is returned in TIME order (D399) — it is APPENDED in
19810
+ * arrival order, and the two detector passes interleave, so a consumer must not
19811
+ * assume the two are the same on a row written by an older build.
19812
+ */
19806
19813
  var TrackPositionSchema = object({
19807
19814
  x: number(),
19808
19815
  y: number(),
19809
19816
  timestamp: number(),
19810
- bbox: BoundingBoxSchema
19817
+ bbox: BoundingBoxSchema,
19818
+ /**
19819
+ * Which detector pass measured this box (D399): `frame` is the full-frame
19820
+ * pass on the analysis raster, `recovery` is the native-resolution
19821
+ * small-subject second pass (D377/D378). Both write into one array, and until
19822
+ * this field existed the only way to tell them apart was that full-frame boxes
19823
+ * are exact multiples of 1.2 while recovery boxes are full-precision floats.
19824
+ * Absent on rows written before D399.
19825
+ */
19826
+ source: _enum(["frame", "recovery"]).optional(),
19827
+ /** Detection score of this box, so a position can be weighed and not only
19828
+ * plotted. Absent on rows written before D399. */
19829
+ score: number().optional()
19811
19830
  });
19812
19831
  var TrackSnapshotSchema = object({
19813
19832
  timestamp: number(),
@@ -20207,14 +20226,25 @@ var TrackSchema = object({
20207
20226
  */
20208
20227
  hasRider: boolean().optional(),
20209
20228
  /**
20210
- * WHY this track ended without a NATIVE best-shot tile
20211
- * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md)) —
20229
+ * WHY this track ended without a NATIVE best-shot FRAME
20230
+ * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md),
20231
+ * widened by [D400](../decisions/adr-0400-the-picture-is-judged-on-what-is-delivered.md)) —
20212
20232
  * a composed token line (`no-key-frame capture=keyframe:native-missx4`,
20213
- * `derive-returned-null tile=standin`, …) written at close and CLEARED by
20214
- * the late-keyFrame upgrade when a native tile lands after all. The
20215
- * operator-facing answer to "perché manca l'immagine?" on a track whose
20233
+ * `derive-returned-null tile=standin`,
20234
+ * `native-tile tile=native no-key-frame-at-close`, …) written at close and
20235
+ * CLEARED by the late-keyFrame upgrade when a native tile lands after all.
20236
+ * The operator-facing answer to "perché manca l'immagine?" on a track whose
20216
20237
  * tile is a face/plate stand-in, a raster crop, or an icon.
20217
20238
  *
20239
+ * **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
20240
+ * the TILE ranked below native, so a track whose thumbnail landed natively
20241
+ * while its key frame missed carried no reason at all — three of the four
20242
+ * `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
20243
+ * that shape, and their "niente ultimo" had no cause anywhere on the row.
20244
+ * The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
20245
+ * lastFrame copy source`), so its absence is now on this line whatever the
20246
+ * tile ended up being.
20247
+ *
20218
20248
  * **Absent ≠ "missed silently"**: a row written before the column, a hub
20219
20249
  * that predates the field, and every track whose tile landed native all
20220
20250
  * omit it. Render nothing when absent.
@@ -19834,11 +19834,30 @@ var SensorEventSchema = object({
19834
19834
  value: record(string(), unknown()).nullable(),
19835
19835
  timestamp: number()
19836
19836
  });
19837
+ /**
19838
+ * One stored sighting on a track's trajectory.
19839
+ *
19840
+ * The array these live in is returned in TIME order (D399) — it is APPENDED in
19841
+ * arrival order, and the two detector passes interleave, so a consumer must not
19842
+ * assume the two are the same on a row written by an older build.
19843
+ */
19837
19844
  var TrackPositionSchema = object({
19838
19845
  x: number(),
19839
19846
  y: number(),
19840
19847
  timestamp: number(),
19841
- bbox: BoundingBoxSchema
19848
+ bbox: BoundingBoxSchema,
19849
+ /**
19850
+ * Which detector pass measured this box (D399): `frame` is the full-frame
19851
+ * pass on the analysis raster, `recovery` is the native-resolution
19852
+ * small-subject second pass (D377/D378). Both write into one array, and until
19853
+ * this field existed the only way to tell them apart was that full-frame boxes
19854
+ * are exact multiples of 1.2 while recovery boxes are full-precision floats.
19855
+ * Absent on rows written before D399.
19856
+ */
19857
+ source: _enum(["frame", "recovery"]).optional(),
19858
+ /** Detection score of this box, so a position can be weighed and not only
19859
+ * plotted. Absent on rows written before D399. */
19860
+ score: number().optional()
19842
19861
  });
19843
19862
  var TrackSnapshotSchema = object({
19844
19863
  timestamp: number(),
@@ -20238,14 +20257,25 @@ var TrackSchema = object({
20238
20257
  */
20239
20258
  hasRider: boolean().optional(),
20240
20259
  /**
20241
- * WHY this track ended without a NATIVE best-shot tile
20242
- * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md)) —
20260
+ * WHY this track ended without a NATIVE best-shot FRAME
20261
+ * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md),
20262
+ * widened by [D400](../decisions/adr-0400-the-picture-is-judged-on-what-is-delivered.md)) —
20243
20263
  * a composed token line (`no-key-frame capture=keyframe:native-missx4`,
20244
- * `derive-returned-null tile=standin`, …) written at close and CLEARED by
20245
- * the late-keyFrame upgrade when a native tile lands after all. The
20246
- * operator-facing answer to "perché manca l'immagine?" on a track whose
20264
+ * `derive-returned-null tile=standin`,
20265
+ * `native-tile tile=native no-key-frame-at-close`, …) written at close and
20266
+ * CLEARED by the late-keyFrame upgrade when a native tile lands after all.
20267
+ * The operator-facing answer to "perché manca l'immagine?" on a track whose
20247
20268
  * tile is a face/plate stand-in, a raster crop, or an icon.
20248
20269
  *
20270
+ * **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
20271
+ * the TILE ranked below native, so a track whose thumbnail landed natively
20272
+ * while its key frame missed carried no reason at all — three of the four
20273
+ * `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
20274
+ * that shape, and their "niente ultimo" had no cause anywhere on the row.
20275
+ * The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
20276
+ * lastFrame copy source`), so its absence is now on this line whatever the
20277
+ * tile ended up being.
20278
+ *
20249
20279
  * **Absent ≠ "missed silently"**: a row written before the column, a hub
20250
20280
  * that predates the field, and every track whose tile landed native all
20251
20281
  * omit it. Render nothing when absent.
@@ -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-CJ0RJC87.js");
5
+ const require_dist = require("../dist-sREZj0iq.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_dist.__toESM(node_fs);
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { F as PoolMemoryWatchdog, Pt as BaseAddon, Tt as resolvePoolMemoryPolicy, at as embeddingEncoderCapability, dt as hfModelUrl, vt as parseProcStatus } from "../dist-C6gK_SDX.mjs";
1
+ import { F as PoolMemoryWatchdog, Pt as BaseAddon, Tt as resolvePoolMemoryPolicy, at as embeddingEncoderCapability, dt as hfModelUrl, vt as parseProcStatus } from "../dist-WtZuLM5F.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.86",
6
+ version: "1.2.87",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_pipeline_analytics_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.166",
21
+ version: "1.2.167",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_analytics_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.134",
36
+ version: "1.2.135",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.166",
39
+ version: "1.2.167",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.86",
48
+ version: "1.2.87",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.134",
84
+ version: "1.2.135",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,