@genex-ai/cli-demo 1.10.4-dev.536 → 1.11.1-dev.539

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genex-ai/cli-demo",
3
- "version": "1.10.4-dev.536",
3
+ "version": "1.11.1-dev.539",
4
4
  "description": "Set up your project's agent workspace (.claude/.codex/.cursor in the game folder), authorize, create a game project, generate AI assets, and publish (genex CLI).",
5
5
  "type": "module",
6
6
  "bin": {
@@ -90,7 +90,22 @@ export async function loadTextureWithFallback<T>(
90
90
  function modelBudgetFor(tier: QualityTier): number {
91
91
  return tier.name === "phone" || tier.name === "phone-low" ? 1024 : 2048;
92
92
  }
93
- const MODEL_ROLE_RE = /^(model-glb|character-rigged(-a\d+)?-glb(-r\d+)?)$/;
93
+ /** Which roles the server actually ladders. This MIRRORS `MODEL_RUNGS` in
94
+ * apps/api/src/generation/model-rungs.ts and the two move together: a role
95
+ * the writer emits but this list misses is a rung computed, stored and never
96
+ * requested — every tier silently fetches the provider-raw original instead,
97
+ * which is the one thing the ladder exists to prevent. Mirroring the writer
98
+ * is always the safe side of the error, because a rung that turns out not to
99
+ * exist just warns and falls back (see loadModelWithFallback below).
100
+ *
101
+ * Second line = the AG-908 Tripo mesh lanes: `genex model segment` (a static
102
+ * prop, simplified like model-glb), `genex model rig`, and `genex model
103
+ * animate` — one `model-anim-<preset>-glb` per clip plus the
104
+ * `model-animations-glb` bundle. Animation-only clip GLBs from the character
105
+ * lane (`character-motion-*-glb`) are deliberately NOT here: the rung
106
+ * pipeline would prune away the sampler data that IS the clip. */
107
+ const MODEL_ROLE_RE =
108
+ /^(model-glb|character-rigged(-a\d+)?-glb(-r\d+)?|model-segmented-glb|model-rigged-glb|model-animations-glb|model-anim-.+-glb)$/;
94
109
 
95
110
  /** Resolve the model URL a THIS-tier device should load. `ktx2: true` (from
96
111
  * createGltfLoader) upgrades to the GPU-compressed sibling. */
@@ -217,6 +217,14 @@ the same ladder through
217
217
  KTX2-capable games can also pass `ktx2Load` to `loadTextureWithFallback` so
218
218
  textures use their `.ktx2` variants.
219
219
 
220
+ Every generated GLB ladders — `genex model` including its `segment` / `rig` /
221
+ `animate` outputs, and generated characters. If `pickModel` hands a generated
222
+ model URL back unchanged, this game's vendored kit predates that role: the
223
+ quality kit is copied into the game ONCE and is yours from then on, so it
224
+ never updates itself. Re-vendor it with `npx genex controller quality --force`
225
+ (that overwrites the kit files — keep your own edits, if any, before running
226
+ it), and the ladder starts resolving for those models.
227
+
220
228
  ## Quality picker in settings
221
229
 
222
230
  The pause/settings screen (see `$genex-threejs-game-ui`) always carries a