@camstack/addon-model-studio 1.1.178 → 1.1.180

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-BkBVoxTt.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-Bl3Ju50I.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-i8VV1SdO.mjs";
5
5
  import { d as _, l as v, u as y } from "./scene-monitor-copy-BktPixFQ.mjs";
@@ -1,4 +1,4 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BkBVoxTt.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-Bl3Ju50I.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_model_studio_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.265",
21
+ version: "1.2.267",
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.209",
36
+ version: "1.2.211",
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.265",
39
+ version: "1.2.267",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.209",
84
+ version: "1.2.211",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -10296,6 +10296,16 @@ var ModelCatalogEntrySchema = object({
10296
10296
  */
10297
10297
  postprocessor: custom().optional(),
10298
10298
  /**
10299
+ * Per-MODEL default confidence floor. Absent ⇒ the step's
10300
+ * `StepDefinition.defaultConfidence` applies. A score is a property of one
10301
+ * model's output scale, not of the step slot it sits in: YuNet's
10302
+ * `sqrt(cls·obj)` is not SCRFD's score, and inheriting SCRFD's 0.5 filled the
10303
+ * face gallery with wheels and hands (D662, amends D645). An operator's
10304
+ * explicit value still wins over it. Resolved in ONE place —
10305
+ * `addon-pipeline/.../registry/effective-confidence.ts`.
10306
+ */
10307
+ defaultConfidence: number().min(0).max(1).optional(),
10308
+ /**
10299
10309
  * When true, the executor produces a landmark-aligned crop (similarity warp
10300
10310
  * onto the canonical template) before this step runs, instead of a plain
10301
10311
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -22038,7 +22048,15 @@ var RebuildObjectEmbeddingsInput = object({
22038
22048
  * force is logged at start and finish so a deliberately slow pass reads
22039
22049
  * differently from a stalled one.
22040
22050
  */
22041
- pacingMs: number().int().nonnegative().optional()
22051
+ pacingMs: number().int().nonnegative().optional(),
22052
+ /**
22053
+ * Re-embed ONLY the tracks whose vector is ALREADY in the pinned model's
22054
+ * space (D664) — the in-space skip inverted. It exists to redo vectors
22055
+ * written from the wrong box, which a normal pass would skip as done
22056
+ * forever. Requires `maxTracks`: a forced pass without a bound is refused
22057
+ * (`force-requires-max-tracks`).
22058
+ */
22059
+ force: boolean().optional()
22042
22060
  });
22043
22061
  /**
22044
22062
  * Result of emptying the CLIP index.
@@ -22074,6 +22092,7 @@ var WipeObjectEmbeddingsResultSchema = object({
22074
22092
  * - `reads-disagree` — the two reads named different choices.
22075
22093
  * - `not-a-clip-model` — the CONFIRMED id has no CLIP metadata, so there is no
22076
22094
  * index to fill and no dimension to check against (D649).
22095
+ * - `force-requires-max-tracks` — `force: true` with no `maxTracks` (D664).
22077
22096
  */
22078
22097
  var RebuildObjectEmbeddingsRefusalSchema = _enum([
22079
22098
  "stores-unavailable",
@@ -22081,7 +22100,8 @@ var RebuildObjectEmbeddingsRefusalSchema = _enum([
22081
22100
  "method-unavailable",
22082
22101
  "read-failed",
22083
22102
  "reads-disagree",
22084
- "not-a-clip-model"
22103
+ "not-a-clip-model",
22104
+ "force-requires-max-tracks"
22085
22105
  ]);
22086
22106
  /**
22087
22107
  * Acknowledgement that a rebuild STARTED.
@@ -22106,11 +22126,32 @@ var RebuildStatusSchema = object({
22106
22126
  running: boolean(),
22107
22127
  scanned: number(),
22108
22128
  rebuilt: number(),
22109
- /** Tracks whose key frame is gone — nothing to re-embed from. */
22129
+ /** Tracks whose key frame is gone — nothing to re-embed from. Pixels ONLY:
22130
+ * `missingEvent` is its own field since D664, never summed in. */
22110
22131
  missingKeyFrame: number(),
22111
- /** Tracks with no usable detection box. */
22132
+ /** Tracks with no object event at all (D664). */
22133
+ missingEvent: number(),
22134
+ /** Tracks with no box measured on the pixels to cut — see `boxSource.refused`. */
22112
22135
  missingBbox: number(),
22113
22136
  /**
22137
+ * Which rule placed each judged track's box (D664): the key frame row's own
22138
+ * `subjectBox`, `track.positions` at exactly its instant (older key frames),
22139
+ * the event box (a key frame recovered from the recording, at the event's
22140
+ * instant), or `refused` by name — the reasons are in the tagged log lines.
22141
+ */
22142
+ boxSource: object({
22143
+ subjectBox: number(),
22144
+ positions: number(),
22145
+ event: number(),
22146
+ refused: number()
22147
+ }),
22148
+ /** Tracks skipped because their vector is already in the pinned space. */
22149
+ alreadyInSpace: number(),
22150
+ /** Whether the current / last pass was a `force` pass; `null` before any (D664). */
22151
+ force: boolean().nullable(),
22152
+ /** In-space tracks a `force` pass selected for re-embedding. */
22153
+ forcedInSpace: number(),
22154
+ /**
22114
22155
  * Tracks an executing node REFUSED rather than broke on — an unreadable key
22115
22156
  * frame, a step that threw. Separate from `failed` because the remedy is
22116
22157
  * different, and because a whole camera silently contributing zero vectors
@@ -22615,7 +22656,8 @@ var PipelineModelOptionSchema = object({
22615
22656
  })),
22616
22657
  group: ModelVariantGroupSchema.optional(),
22617
22658
  legacy: boolean().optional(),
22618
- provider: ModelProviderIdSchema.optional()
22659
+ provider: ModelProviderIdSchema.optional(),
22660
+ defaultConfidence: number().optional()
22619
22661
  });
22620
22662
  var ConfigFieldBridge = custom();
22621
22663
  var PipelineAddonSchemaSchema = object({
@@ -10275,6 +10275,16 @@ var ModelCatalogEntrySchema = object({
10275
10275
  */
10276
10276
  postprocessor: custom().optional(),
10277
10277
  /**
10278
+ * Per-MODEL default confidence floor. Absent ⇒ the step's
10279
+ * `StepDefinition.defaultConfidence` applies. A score is a property of one
10280
+ * model's output scale, not of the step slot it sits in: YuNet's
10281
+ * `sqrt(cls·obj)` is not SCRFD's score, and inheriting SCRFD's 0.5 filled the
10282
+ * face gallery with wheels and hands (D662, amends D645). An operator's
10283
+ * explicit value still wins over it. Resolved in ONE place —
10284
+ * `addon-pipeline/.../registry/effective-confidence.ts`.
10285
+ */
10286
+ defaultConfidence: number().min(0).max(1).optional(),
10287
+ /**
10278
10288
  * When true, the executor produces a landmark-aligned crop (similarity warp
10279
10289
  * onto the canonical template) before this step runs, instead of a plain
10280
10290
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -22017,7 +22027,15 @@ var RebuildObjectEmbeddingsInput = object({
22017
22027
  * force is logged at start and finish so a deliberately slow pass reads
22018
22028
  * differently from a stalled one.
22019
22029
  */
22020
- pacingMs: number().int().nonnegative().optional()
22030
+ pacingMs: number().int().nonnegative().optional(),
22031
+ /**
22032
+ * Re-embed ONLY the tracks whose vector is ALREADY in the pinned model's
22033
+ * space (D664) — the in-space skip inverted. It exists to redo vectors
22034
+ * written from the wrong box, which a normal pass would skip as done
22035
+ * forever. Requires `maxTracks`: a forced pass without a bound is refused
22036
+ * (`force-requires-max-tracks`).
22037
+ */
22038
+ force: boolean().optional()
22021
22039
  });
22022
22040
  /**
22023
22041
  * Result of emptying the CLIP index.
@@ -22053,6 +22071,7 @@ var WipeObjectEmbeddingsResultSchema = object({
22053
22071
  * - `reads-disagree` — the two reads named different choices.
22054
22072
  * - `not-a-clip-model` — the CONFIRMED id has no CLIP metadata, so there is no
22055
22073
  * index to fill and no dimension to check against (D649).
22074
+ * - `force-requires-max-tracks` — `force: true` with no `maxTracks` (D664).
22056
22075
  */
22057
22076
  var RebuildObjectEmbeddingsRefusalSchema = _enum([
22058
22077
  "stores-unavailable",
@@ -22060,7 +22079,8 @@ var RebuildObjectEmbeddingsRefusalSchema = _enum([
22060
22079
  "method-unavailable",
22061
22080
  "read-failed",
22062
22081
  "reads-disagree",
22063
- "not-a-clip-model"
22082
+ "not-a-clip-model",
22083
+ "force-requires-max-tracks"
22064
22084
  ]);
22065
22085
  /**
22066
22086
  * Acknowledgement that a rebuild STARTED.
@@ -22085,11 +22105,32 @@ var RebuildStatusSchema = object({
22085
22105
  running: boolean(),
22086
22106
  scanned: number(),
22087
22107
  rebuilt: number(),
22088
- /** Tracks whose key frame is gone — nothing to re-embed from. */
22108
+ /** Tracks whose key frame is gone — nothing to re-embed from. Pixels ONLY:
22109
+ * `missingEvent` is its own field since D664, never summed in. */
22089
22110
  missingKeyFrame: number(),
22090
- /** Tracks with no usable detection box. */
22111
+ /** Tracks with no object event at all (D664). */
22112
+ missingEvent: number(),
22113
+ /** Tracks with no box measured on the pixels to cut — see `boxSource.refused`. */
22091
22114
  missingBbox: number(),
22092
22115
  /**
22116
+ * Which rule placed each judged track's box (D664): the key frame row's own
22117
+ * `subjectBox`, `track.positions` at exactly its instant (older key frames),
22118
+ * the event box (a key frame recovered from the recording, at the event's
22119
+ * instant), or `refused` by name — the reasons are in the tagged log lines.
22120
+ */
22121
+ boxSource: object({
22122
+ subjectBox: number(),
22123
+ positions: number(),
22124
+ event: number(),
22125
+ refused: number()
22126
+ }),
22127
+ /** Tracks skipped because their vector is already in the pinned space. */
22128
+ alreadyInSpace: number(),
22129
+ /** Whether the current / last pass was a `force` pass; `null` before any (D664). */
22130
+ force: boolean().nullable(),
22131
+ /** In-space tracks a `force` pass selected for re-embedding. */
22132
+ forcedInSpace: number(),
22133
+ /**
22093
22134
  * Tracks an executing node REFUSED rather than broke on — an unreadable key
22094
22135
  * frame, a step that threw. Separate from `failed` because the remedy is
22095
22136
  * different, and because a whole camera silently contributing zero vectors
@@ -22594,7 +22635,8 @@ var PipelineModelOptionSchema = object({
22594
22635
  })),
22595
22636
  group: ModelVariantGroupSchema.optional(),
22596
22637
  legacy: boolean().optional(),
22597
- provider: ModelProviderIdSchema.optional()
22638
+ provider: ModelProviderIdSchema.optional(),
22639
+ defaultConfidence: number().optional()
22598
22640
  });
22599
22641
  var ConfigFieldBridge = custom();
22600
22642
  var PipelineAddonSchemaSchema = object({
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BkBVoxTt.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-Bl3Ju50I.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--dtMhecm.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BZ7XtPvp.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.178",
3
+ "version": "1.1.180",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",