@genex-ai/cli-demo 1.22.0-dev.605 → 1.24.0-dev.607
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.
|
|
3
|
+
"version": "1.24.0-dev.607",
|
|
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": {
|
|
@@ -110,8 +110,14 @@ function modelBudgetFor(tier: QualityTier): number {
|
|
|
110
110
|
* `model-animations-glb` bundle. Animation-only clip GLBs from the character
|
|
111
111
|
* lane (`character-motion-*-glb`) are deliberately NOT here: the rung
|
|
112
112
|
* pipeline would prune away the sampler data that IS the clip. */
|
|
113
|
+
// `rigged-character.glb` is the role the GUIDED character lane actually writes —
|
|
114
|
+
// reversed words and a dot extension, unlike every other entry here. Until
|
|
115
|
+
// 2026-09-07 neither this regex nor the server's rung writer knew it, so every
|
|
116
|
+
// generated character was fetched provider-raw (measured: 23.85 MB, and its
|
|
117
|
+
// texture failed to decode into a white body). The dot is safe: the rung URL is
|
|
118
|
+
// built by appending `@<width>`, so it lands as `rigged-character.glb@2048`.
|
|
113
119
|
const MODEL_ROLE_RE =
|
|
114
|
-
/^(model-glb|character-rigged(-a\d+)?-glb(-r\d+)?|model-segmented-glb|model-rigged-glb|model-animations-glb|model-anim-.+-glb)$/;
|
|
120
|
+
/^(model-glb|character-rigged(-a\d+)?-glb(-r\d+)?|rigged-character\.glb|model-segmented-glb|model-rigged-glb|model-animations-glb|model-anim-.+-glb)$/;
|
|
115
121
|
|
|
116
122
|
/** Resolve the model URL a THIS-tier device should load. `ktx2: true` (from
|
|
117
123
|
* createGltfLoader) upgrades to the GPU-compressed sibling. */
|
|
@@ -217,6 +217,19 @@ 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
|
+
**A texture that arrived through a `.ktx2` rung is NOT drawable.** Its `.image`
|
|
221
|
+
is `{ width, height, mipmaps }`, never an `HTMLImageElement` — so
|
|
222
|
+
`ctx.drawImage(tex.image, …)` throws *"The provided value is not of type
|
|
223
|
+
'(CSSImageValue or HTMLCanvasElement or …)'"*. MEASURED 2026-09-07: a village
|
|
224
|
+
build wrote its own `capTextures()` pass to cap every texture's long edge and
|
|
225
|
+
cast `tex.image as CanvasImageSource` to silence the type error. All ten of its
|
|
226
|
+
generated buildings and both villager bodies then failed to load behind a
|
|
227
|
+
swallowed warning — a fully generated, fully wired world that rendered EMPTY,
|
|
228
|
+
and scored 1/9 with the assets sitting in R2. **Do not hand-roll a texture
|
|
229
|
+
downscaler: the rungs ARE the downscaler**, and `@1024` already did it before
|
|
230
|
+
the bytes left our side. If you must touch pixels, skip the compressed ones
|
|
231
|
+
first — `if ((tex as THREE.CompressedTexture).isCompressedTexture) return;`.
|
|
232
|
+
|
|
220
233
|
Every generated GLB ladders — `genex model` including its `segment` / `rig` /
|
|
221
234
|
`animate` outputs, and generated characters. If `pickModel` hands a generated
|
|
222
235
|
model URL back unchanged, this game's vendored kit predates that role: the
|