@camstack/addon-model-studio 1.1.109 → 1.1.111

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-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BKG69NoE.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C-J1T9CA.mjs";
3
3
  import { _ as e, c as t, d as n, h as r, i, l as a, m as o, p as s, r as c, t as l, u, y as d } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
4
4
  import { a as f, i as p, o as m, r as h, s as g } from "./responsive-CDob01xQ.mjs";
5
5
  import { d as _, l as v, u as y } from "./use-device-snapshot-esDPfd9B.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BKG69NoE.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C-J1T9CA.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_model_studio_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_model_studio_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_model_studio_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_model_studio_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,
@@ -19007,11 +19007,30 @@ var SensorEventSchema = object({
19007
19007
  value: record(string(), unknown()).nullable(),
19008
19008
  timestamp: number()
19009
19009
  });
19010
+ /**
19011
+ * One stored sighting on a track's trajectory.
19012
+ *
19013
+ * The array these live in is returned in TIME order (D399) — it is APPENDED in
19014
+ * arrival order, and the two detector passes interleave, so a consumer must not
19015
+ * assume the two are the same on a row written by an older build.
19016
+ */
19010
19017
  var TrackPositionSchema = object({
19011
19018
  x: number(),
19012
19019
  y: number(),
19013
19020
  timestamp: number(),
19014
- bbox: BoundingBoxSchema
19021
+ bbox: BoundingBoxSchema,
19022
+ /**
19023
+ * Which detector pass measured this box (D399): `frame` is the full-frame
19024
+ * pass on the analysis raster, `recovery` is the native-resolution
19025
+ * small-subject second pass (D377/D378). Both write into one array, and until
19026
+ * this field existed the only way to tell them apart was that full-frame boxes
19027
+ * are exact multiples of 1.2 while recovery boxes are full-precision floats.
19028
+ * Absent on rows written before D399.
19029
+ */
19030
+ source: _enum(["frame", "recovery"]).optional(),
19031
+ /** Detection score of this box, so a position can be weighed and not only
19032
+ * plotted. Absent on rows written before D399. */
19033
+ score: number().optional()
19015
19034
  });
19016
19035
  var TrackSnapshotSchema = object({
19017
19036
  timestamp: number(),
@@ -19411,14 +19430,25 @@ var TrackSchema = object({
19411
19430
  */
19412
19431
  hasRider: boolean().optional(),
19413
19432
  /**
19414
- * WHY this track ended without a NATIVE best-shot tile
19415
- * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md)) —
19433
+ * WHY this track ended without a NATIVE best-shot FRAME
19434
+ * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md),
19435
+ * widened by [D400](../decisions/adr-0400-the-picture-is-judged-on-what-is-delivered.md)) —
19416
19436
  * a composed token line (`no-key-frame capture=keyframe:native-missx4`,
19417
- * `derive-returned-null tile=standin`, …) written at close and CLEARED by
19418
- * the late-keyFrame upgrade when a native tile lands after all. The
19419
- * operator-facing answer to "perché manca l'immagine?" on a track whose
19437
+ * `derive-returned-null tile=standin`,
19438
+ * `native-tile tile=native no-key-frame-at-close`, …) written at close and
19439
+ * CLEARED by the late-keyFrame upgrade when a native tile lands after all.
19440
+ * The operator-facing answer to "perché manca l'immagine?" on a track whose
19420
19441
  * tile is a face/plate stand-in, a raster crop, or an icon.
19421
19442
  *
19443
+ * **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
19444
+ * the TILE ranked below native, so a track whose thumbnail landed natively
19445
+ * while its key frame missed carried no reason at all — three of the four
19446
+ * `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
19447
+ * that shape, and their "niente ultimo" had no cause anywhere on the row.
19448
+ * The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
19449
+ * lastFrame copy source`), so its absence is now on this line whatever the
19450
+ * tile ended up being.
19451
+ *
19422
19452
  * **Absent ≠ "missed silently"**: a row written before the column, a hub
19423
19453
  * that predates the field, and every track whose tile landed native all
19424
19454
  * omit it. Render nothing when absent.
@@ -18986,11 +18986,30 @@ var SensorEventSchema = object({
18986
18986
  value: record(string(), unknown()).nullable(),
18987
18987
  timestamp: number()
18988
18988
  });
18989
+ /**
18990
+ * One stored sighting on a track's trajectory.
18991
+ *
18992
+ * The array these live in is returned in TIME order (D399) — it is APPENDED in
18993
+ * arrival order, and the two detector passes interleave, so a consumer must not
18994
+ * assume the two are the same on a row written by an older build.
18995
+ */
18989
18996
  var TrackPositionSchema = object({
18990
18997
  x: number(),
18991
18998
  y: number(),
18992
18999
  timestamp: number(),
18993
- bbox: BoundingBoxSchema
19000
+ bbox: BoundingBoxSchema,
19001
+ /**
19002
+ * Which detector pass measured this box (D399): `frame` is the full-frame
19003
+ * pass on the analysis raster, `recovery` is the native-resolution
19004
+ * small-subject second pass (D377/D378). Both write into one array, and until
19005
+ * this field existed the only way to tell them apart was that full-frame boxes
19006
+ * are exact multiples of 1.2 while recovery boxes are full-precision floats.
19007
+ * Absent on rows written before D399.
19008
+ */
19009
+ source: _enum(["frame", "recovery"]).optional(),
19010
+ /** Detection score of this box, so a position can be weighed and not only
19011
+ * plotted. Absent on rows written before D399. */
19012
+ score: number().optional()
18994
19013
  });
18995
19014
  var TrackSnapshotSchema = object({
18996
19015
  timestamp: number(),
@@ -19390,14 +19409,25 @@ var TrackSchema = object({
19390
19409
  */
19391
19410
  hasRider: boolean().optional(),
19392
19411
  /**
19393
- * WHY this track ended without a NATIVE best-shot tile
19394
- * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md)) —
19412
+ * WHY this track ended without a NATIVE best-shot FRAME
19413
+ * ([D276](../decisions/adr-0276-a-stand-in-tile-is-provisional-and-a-close-says-why.md),
19414
+ * widened by [D400](../decisions/adr-0400-the-picture-is-judged-on-what-is-delivered.md)) —
19395
19415
  * a composed token line (`no-key-frame capture=keyframe:native-missx4`,
19396
- * `derive-returned-null tile=standin`, …) written at close and CLEARED by
19397
- * the late-keyFrame upgrade when a native tile lands after all. The
19398
- * operator-facing answer to "perché manca l'immagine?" on a track whose
19416
+ * `derive-returned-null tile=standin`,
19417
+ * `native-tile tile=native no-key-frame-at-close`, …) written at close and
19418
+ * CLEARED by the late-keyFrame upgrade when a native tile lands after all.
19419
+ * The operator-facing answer to "perché manca l'immagine?" on a track whose
19399
19420
  * tile is a face/plate stand-in, a raster crop, or an icon.
19400
19421
  *
19422
+ * **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
19423
+ * the TILE ranked below native, so a track whose thumbnail landed natively
19424
+ * while its key frame missed carried no reason at all — three of the four
19425
+ * `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
19426
+ * that shape, and their "niente ultimo" had no cause anywhere on the row.
19427
+ * The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
19428
+ * lastFrame copy source`), so its absence is now on this line whatever the
19429
+ * tile ended up being.
19430
+ *
19401
19431
  * **Absent ≠ "missed silently"**: a row written before the column, a hub
19402
19432
  * that predates the field, and every track whose tile landed native all
19403
19433
  * 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_model_studio_page__remoteEntry_js-BKG69NoE.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C-J1T9CA.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_model_studio_page-D6w_3eqZ.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DzC3DjlC.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-model-studio",
3
- "version": "1.1.109",
3
+ "version": "1.1.111",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",