@camstack/addon-osd-manager 0.1.80 → 0.1.81

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/_stub.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./virtualExposes-BgZ5Cn7S.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DlwwzQuH.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DhdrnB80.mjs";
3
3
  import { _ as e, c as t, d as n, h as r, i, l as a, m as o, n as s, p as c, r as l, t as u, u as d, y as f } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-Bs1t18EM.mjs";
4
4
  import { i as p, o as m, r as h, s as g } from "./responsive-veJ_u_lF.mjs";
5
5
  import { d as _, l as v, u as y } from "./use-device-snapshot-CCUZGgXd.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DlwwzQuH.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DhdrnB80.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_osd_manager_page
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_osd_manager_page",
@@ -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_osd_manager_page",
@@ -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_osd_manager_page",
@@ -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,
package/dist/index.js CHANGED
@@ -21449,11 +21449,30 @@ var SensorEventSchema = object({
21449
21449
  value: record(string(), unknown()).nullable(),
21450
21450
  timestamp: number()
21451
21451
  });
21452
+ /**
21453
+ * One stored sighting on a track's trajectory.
21454
+ *
21455
+ * The array these live in is returned in TIME order (D399) — it is APPENDED in
21456
+ * arrival order, and the two detector passes interleave, so a consumer must not
21457
+ * assume the two are the same on a row written by an older build.
21458
+ */
21452
21459
  var TrackPositionSchema = object({
21453
21460
  x: number(),
21454
21461
  y: number(),
21455
21462
  timestamp: number(),
21456
- bbox: BoundingBoxSchema
21463
+ bbox: BoundingBoxSchema,
21464
+ /**
21465
+ * Which detector pass measured this box (D399): `frame` is the full-frame
21466
+ * pass on the analysis raster, `recovery` is the native-resolution
21467
+ * small-subject second pass (D377/D378). Both write into one array, and until
21468
+ * this field existed the only way to tell them apart was that full-frame boxes
21469
+ * are exact multiples of 1.2 while recovery boxes are full-precision floats.
21470
+ * Absent on rows written before D399.
21471
+ */
21472
+ source: _enum(["frame", "recovery"]).optional(),
21473
+ /** Detection score of this box, so a position can be weighed and not only
21474
+ * plotted. Absent on rows written before D399. */
21475
+ score: number().optional()
21457
21476
  });
21458
21477
  var TrackSnapshotSchema = object({
21459
21478
  timestamp: number(),
@@ -21853,14 +21872,25 @@ var TrackSchema = object({
21853
21872
  */
21854
21873
  hasRider: boolean().optional(),
21855
21874
  /**
21856
- * WHY this track ended without a NATIVE best-shot tile
21857
- * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md)) —
21875
+ * WHY this track ended without a NATIVE best-shot FRAME
21876
+ * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md),
21877
+ * widened by [D400](../decisions/adr-0400-the-picture-is-judged-on-what-is-delivered.md)) —
21858
21878
  * a composed token line (`no-key-frame capture=keyframe:native-missx4`,
21859
- * `derive-returned-null tile=standin`, …) written at close and CLEARED by
21860
- * the late-keyFrame upgrade when a native tile lands after all. The
21861
- * operator-facing answer to "perché manca l'immagine?" on a track whose
21879
+ * `derive-returned-null tile=standin`,
21880
+ * `native-tile tile=native no-key-frame-at-close`, …) written at close and
21881
+ * CLEARED by the late-keyFrame upgrade when a native tile lands after all.
21882
+ * The operator-facing answer to "perché manca l'immagine?" on a track whose
21862
21883
  * tile is a face/plate stand-in, a raster crop, or an icon.
21863
21884
  *
21885
+ * **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
21886
+ * the TILE ranked below native, so a track whose thumbnail landed natively
21887
+ * while its key frame missed carried no reason at all — three of the four
21888
+ * `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
21889
+ * that shape, and their "niente ultimo" had no cause anywhere on the row.
21890
+ * The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
21891
+ * lastFrame copy source`), so its absence is now on this line whatever the
21892
+ * tile ended up being.
21893
+ *
21864
21894
  * **Absent ≠ "missed silently"**: a row written before the column, a hub
21865
21895
  * that predates the field, and every track whose tile landed native all
21866
21896
  * omit it. Render nothing when absent.
package/dist/index.mjs CHANGED
@@ -21445,11 +21445,30 @@ var SensorEventSchema = object({
21445
21445
  value: record(string(), unknown()).nullable(),
21446
21446
  timestamp: number()
21447
21447
  });
21448
+ /**
21449
+ * One stored sighting on a track's trajectory.
21450
+ *
21451
+ * The array these live in is returned in TIME order (D399) — it is APPENDED in
21452
+ * arrival order, and the two detector passes interleave, so a consumer must not
21453
+ * assume the two are the same on a row written by an older build.
21454
+ */
21448
21455
  var TrackPositionSchema = object({
21449
21456
  x: number(),
21450
21457
  y: number(),
21451
21458
  timestamp: number(),
21452
- bbox: BoundingBoxSchema
21459
+ bbox: BoundingBoxSchema,
21460
+ /**
21461
+ * Which detector pass measured this box (D399): `frame` is the full-frame
21462
+ * pass on the analysis raster, `recovery` is the native-resolution
21463
+ * small-subject second pass (D377/D378). Both write into one array, and until
21464
+ * this field existed the only way to tell them apart was that full-frame boxes
21465
+ * are exact multiples of 1.2 while recovery boxes are full-precision floats.
21466
+ * Absent on rows written before D399.
21467
+ */
21468
+ source: _enum(["frame", "recovery"]).optional(),
21469
+ /** Detection score of this box, so a position can be weighed and not only
21470
+ * plotted. Absent on rows written before D399. */
21471
+ score: number().optional()
21453
21472
  });
21454
21473
  var TrackSnapshotSchema = object({
21455
21474
  timestamp: number(),
@@ -21849,14 +21868,25 @@ var TrackSchema = object({
21849
21868
  */
21850
21869
  hasRider: boolean().optional(),
21851
21870
  /**
21852
- * WHY this track ended without a NATIVE best-shot tile
21853
- * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md)) —
21871
+ * WHY this track ended without a NATIVE best-shot FRAME
21872
+ * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md),
21873
+ * widened by [D400](../decisions/adr-0400-the-picture-is-judged-on-what-is-delivered.md)) —
21854
21874
  * a composed token line (`no-key-frame capture=keyframe:native-missx4`,
21855
- * `derive-returned-null tile=standin`, …) written at close and CLEARED by
21856
- * the late-keyFrame upgrade when a native tile lands after all. The
21857
- * operator-facing answer to "perché manca l'immagine?" on a track whose
21875
+ * `derive-returned-null tile=standin`,
21876
+ * `native-tile tile=native no-key-frame-at-close`, …) written at close and
21877
+ * CLEARED by the late-keyFrame upgrade when a native tile lands after all.
21878
+ * The operator-facing answer to "perché manca l'immagine?" on a track whose
21858
21879
  * tile is a face/plate stand-in, a raster crop, or an icon.
21859
21880
  *
21881
+ * **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
21882
+ * the TILE ranked below native, so a track whose thumbnail landed natively
21883
+ * while its key frame missed carried no reason at all — three of the four
21884
+ * `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
21885
+ * that shape, and their "niente ultimo" had no cause anywhere on the row.
21886
+ * The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
21887
+ * lastFrame copy source`), so its absence is now on this line whatever the
21888
+ * tile ended up being.
21889
+ *
21860
21890
  * **Absent ≠ "missed silently"**: a row written before the column, a hub
21861
21891
  * that predates the field, and every track whose tile landed native all
21862
21892
  * omit it. Render nothing when absent.
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DlwwzQuH.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-DhdrnB80.mjs";
2
2
  export { t as get, e as init };
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-CwQlxGtO.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-C4pwsdzK.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.80",
3
+ "version": "0.1.81",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",