@genex-ai/cli-demo 1.14.3-dev.574 → 1.14.3-dev.576

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/index.js CHANGED
@@ -5106,6 +5106,15 @@ function retryAfterHint(res) {
5106
5106
  const secs = Math.ceil(raw);
5107
5107
  return ` Try again in ${secs < 90 ? `${secs}s` : `~${Math.ceil(secs / 60)} min`}.`;
5108
5108
  }
5109
+ async function serverReason(res) {
5110
+ try {
5111
+ const body = await res.clone().json();
5112
+ if (typeof body?.message === "string" && body.message.trim()) return body.message.trim();
5113
+ if (typeof body?.error === "string" && body.error.trim()) return body.error.trim();
5114
+ } catch {
5115
+ }
5116
+ return null;
5117
+ }
5109
5118
  async function getUploadToken(ctx, commit, log) {
5110
5119
  let res;
5111
5120
  try {
@@ -5133,7 +5142,9 @@ async function getUploadToken(ctx, commit, log) {
5133
5142
  return null;
5134
5143
  }
5135
5144
  if (!res.ok) {
5145
+ const reason = await serverReason(res);
5136
5146
  log.error(`Couldn't get an upload token (HTTP ${res.status}).`);
5147
+ if (reason) log.dim(` ${reason}`);
5137
5148
  return null;
5138
5149
  }
5139
5150
  return await res.json();
@@ -5438,7 +5449,9 @@ async function fetchPushUrl(ctx, log, expectStagingCommit) {
5438
5449
  return null;
5439
5450
  }
5440
5451
  if (!res.ok) {
5452
+ const reason = await serverReason(res);
5441
5453
  log.error(`Couldn't authorize the source push (HTTP ${res.status}).`);
5454
+ if (reason) log.dim(` ${reason}`);
5442
5455
  return null;
5443
5456
  }
5444
5457
  const data = await res.json().catch(() => null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genex-ai/cli-demo",
3
- "version": "1.14.3-dev.574",
3
+ "version": "1.14.3-dev.576",
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": {
@@ -132,14 +132,14 @@ vendored code from memory of another engine.
132
132
  | phone-survivable rendering: device tiers, DPR/shadow/post budgets, runtime governor, generated-asset rungs, Quality picker, dispose-on-swap | `$genex-threejs-adaptive-quality` |
133
133
  | anything falls, collides, gets pushed, or needs colliders/events | `$genex-threejs-physics-rapier` |
134
134
  | launch/docking timelines, authored transform phases, springs, convergence, deterministic prop/debris motion | `$genex-threejs-procedural-animation` |
135
- | a level, arena, interior, building or map to walk through — a composed space of rooms, lanes, walls and sites, from a description or a floor plan; a blockout | `$genex-blender-scene` — probe the lane first (`npx genex blender scene`); when it is off, the same space is built as code via `$genex-threejs-procedural-assets` |
135
+ | a level, arena, interior or map to walk through — the SPACE ITSELF: its ground plan, rooms, lanes, walls, paths and sites, from a description or a floor plan; a blockout. This row claims the space, never the things standing in it — the buildings, props, creatures and characters a player walks up to are separate rows below, and routing the space does not route them | `$genex-blender-scene` — probe the lane first (`npx genex blender scene`); when it is off, the same space is built as code via `$genex-threejs-procedural-assets` |
136
136
  | rebuild a reference prop, hard-surface object, modular decoration, or structural environment piece (kits, fences, walls, paving) as editable parameterized Three.js code — held to the asset bar at the end of this section | `$genex-threejs-procedural-assets` |
137
137
  | stylized/abstract shader-authored materials, the procedural/PBR material boundary | `$genex-threejs-procedural-assets` |
138
138
  | particles, trails, plasma, shockwaves, pooled bursts, and event effects | `$genex-threejs-procedural-vfx` |
139
139
  | stable large-world shadows, cascades, clipmaps, cached updates | `$genex-threejs-shadow-systems` |
140
140
  | eye adaptation, tone mapping, output color, LUT grading, and proven static grain | `$genex-threejs-exposure-color-grading` |
141
141
  | fixed-view screenshots, input direction, facing, temporal and budget evidence | `$genex-threejs-visual-validation` |
142
- | the default for a concrete object the player looks at up close: a generated GLB for a prop, vehicle, building, or object — from text or a reference image (`--image`); split into named parts (`model segment`); rig + animate any mesh (`model rig` / `model animate`) | `$genex-ai-model` |
142
+ | the default for a concrete object the player looks at up close: a generated GLB for a prop, vehicle, building, or object — from text or a reference image (`--image`); split into named parts (`model segment`); rig + animate any mesh (`model rig` / `model animate`). A space routed to code above does NOT settle these: a village's ground plan can be code while the forge you walk up to is generated | `$genex-ai-model` |
143
143
  | generated surface or terrain texture with real-world UV scale | `$genex-ai-texture` |
144
144
  | sky, skybox, horizon, time of day, weather mood, night or space backdrop | build it in code in the scene—there is no sky command and no owning skill, so pick the technique this game needs |
145
145
  | poster, sign, sprite, decal, reference sheet, or other 2D art | `$genex-ai-image` |
@@ -112,6 +112,17 @@ SPACE the player moves through — a level, an interior, a whole building — is
112
112
  `$genex-blender-scene`'s, which falls back to this lane when the Blender lane
113
113
  is off on the stand.
114
114
 
115
+ **That fallback claims the SPACE, never the things standing in it.** MEASURED
116
+ 2026-09-03: a village brief matched the space row, the Blender lane was off, and
117
+ the whole world — every house, the forge, the well, and five villagers — was
118
+ built as code with no Assets table written and not one generation run. Routing
119
+ the ground plan to this lane is not a decision about the forge the player walks
120
+ up to, the smith they talk to, or the props they pick up: those are their own
121
+ rows (`$genex-ai-model`, `$genex-ai-character`, `$genex-threejs-creatures`) and
122
+ they are still decided per object against the asset bar. A village's layout in
123
+ code with generated buildings and characters standing on it is the normal shape,
124
+ not a contradiction.
125
+
115
126
  - Prefer a supplied reference. A private attachment stays local unless the
116
127
  player explicitly permits upload, publication, or commit.
117
128
  - If a reference is part of the requested work but absent, use the existing