@genex-ai/cli-demo 1.14.3-dev.575 → 1.15.0-dev.577
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/{blender-mcp-6GQRUQWF.js → blender-mcp-5NBIVBE6.js} +1 -1
- package/dist/{chunk-TFRTQ37H.js → chunk-YSX7SJFM.js} +7 -1
- package/dist/index.js +20 -7
- package/package.json +1 -1
- package/templates/skills/genex-game-director/SKILL.md +2 -2
- package/templates/skills/genex-game-director/references/routing-map.md +11 -0
|
@@ -11,9 +11,15 @@ import {
|
|
|
11
11
|
// src/lib/api.ts
|
|
12
12
|
var CLI_VERSION_HEADER = "x-genex-cli-version";
|
|
13
13
|
var WORKSPACE_HEADER = "x-genex-workspace";
|
|
14
|
+
function workspaceHeaderValue(label) {
|
|
15
|
+
if (label === null) return null;
|
|
16
|
+
if (label === "tools") return "tools";
|
|
17
|
+
const slug = label.game.trim();
|
|
18
|
+
return slug ? `game:${slug}` : null;
|
|
19
|
+
}
|
|
14
20
|
var workspaceLabel = null;
|
|
15
21
|
function setWorkspaceHeader(label) {
|
|
16
|
-
workspaceLabel = label;
|
|
22
|
+
workspaceLabel = workspaceHeaderValue(label);
|
|
17
23
|
}
|
|
18
24
|
function formatUpdateRequired(body) {
|
|
19
25
|
const action = body.action ?? `npm i -D @genex-ai/cli-demo@${CLI_CHANNEL}`;
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
writeProject,
|
|
23
23
|
writeUserToken,
|
|
24
24
|
writeWorkspace
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-YSX7SJFM.js";
|
|
26
26
|
import {
|
|
27
27
|
CLI_CHANNEL,
|
|
28
28
|
DEFAULT_API_URL,
|
|
@@ -873,10 +873,22 @@ import os4 from "os";
|
|
|
873
873
|
import path4 from "path";
|
|
874
874
|
|
|
875
875
|
// src/lib/workspace.ts
|
|
876
|
-
async function
|
|
877
|
-
|
|
876
|
+
async function resolveWorkspace(cwd = process.cwd()) {
|
|
877
|
+
const project = await readProject(cwd);
|
|
878
|
+
if (project) {
|
|
879
|
+
const slug = typeof project.slug === "string" && project.slug.trim() ? project.slug.trim() : null;
|
|
880
|
+
return { mode: "game", slug };
|
|
881
|
+
}
|
|
878
882
|
const ws = await readWorkspace(cwd);
|
|
879
|
-
return ws?.mode === "tools" ? "tools" : null;
|
|
883
|
+
return { mode: ws?.mode === "tools" ? "tools" : null, slug: null };
|
|
884
|
+
}
|
|
885
|
+
async function workspaceMode(cwd = process.cwd()) {
|
|
886
|
+
return (await resolveWorkspace(cwd)).mode;
|
|
887
|
+
}
|
|
888
|
+
function workspaceHeaderLabel(ws) {
|
|
889
|
+
if (ws.mode === "tools") return "tools";
|
|
890
|
+
if (ws.mode === "game" && ws.slug) return { game: ws.slug };
|
|
891
|
+
return null;
|
|
880
892
|
}
|
|
881
893
|
var REFUSED_IN_TOOLS = /* @__PURE__ */ new Set([
|
|
882
894
|
"link",
|
|
@@ -20665,7 +20677,7 @@ async function runBlender(opts) {
|
|
|
20665
20677
|
return serveLocalBlender({ port, log });
|
|
20666
20678
|
}
|
|
20667
20679
|
if (sub === "mcp") {
|
|
20668
|
-
const { runBlenderMcp } = await import("./blender-mcp-
|
|
20680
|
+
const { runBlenderMcp } = await import("./blender-mcp-5NBIVBE6.js");
|
|
20669
20681
|
return runBlenderMcp();
|
|
20670
20682
|
}
|
|
20671
20683
|
let base = blenderEndpoint();
|
|
@@ -22825,8 +22837,9 @@ async function main() {
|
|
|
22825
22837
|
log.plain(getCliVersion());
|
|
22826
22838
|
return;
|
|
22827
22839
|
}
|
|
22828
|
-
const
|
|
22829
|
-
|
|
22840
|
+
const workspace = await resolveWorkspace();
|
|
22841
|
+
const mode = workspace.mode;
|
|
22842
|
+
setWorkspaceHeader(workspaceHeaderLabel(workspace));
|
|
22830
22843
|
if (parsed.help || parsed.command === void 0) {
|
|
22831
22844
|
const perCommand = parsed.command === void 0 ? void 0 : COMMAND_HELP[parsed.command];
|
|
22832
22845
|
log.plain(perCommand ?? (mode === "tools" ? HELP_TOOLS : HELP));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genex-ai/cli-demo",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0-dev.577",
|
|
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
|
|
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
|