@genex-ai/cli-demo 1.27.1-dev.631 → 1.28.0-dev.632

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.
@@ -7,7 +7,7 @@ import {
7
7
  isRenderMode,
8
8
  sceneSummary,
9
9
  sheetOf
10
- } from "./chunk-I77A53C6.js";
10
+ } from "./chunk-42MHGAXI.js";
11
11
  import {
12
12
  getCliVersion
13
13
  } from "./chunk-HYCSNWYX.js";
@@ -620,9 +620,12 @@ async function readProject(cwd = process.cwd()) {
620
620
  return null;
621
621
  }
622
622
  }
623
+ var SCRATCH_DIR = ".genex/scratch";
623
624
  async function writeProject(meta, cwd = process.cwd()) {
624
625
  const file = getProjectMetadataPath(cwd);
625
626
  await fs3.mkdir(path3.dirname(file), { recursive: true });
627
+ await fs3.mkdir(path3.join(cwd, SCRATCH_DIR), { recursive: true }).catch(() => {
628
+ });
626
629
  await fs3.writeFile(file, JSON.stringify(meta, null, 2) + "\n", { mode: 384 });
627
630
  await fs3.chmod(file, 384).catch(() => {
628
631
  });
package/dist/index.js CHANGED
@@ -41,7 +41,7 @@ import {
41
41
  writeProject,
42
42
  writeUserToken,
43
43
  writeWorkspace
44
- } from "./chunk-I77A53C6.js";
44
+ } from "./chunk-42MHGAXI.js";
45
45
  import {
46
46
  CLI_CHANNEL,
47
47
  DEFAULT_API_URL,
@@ -870,6 +870,7 @@ Important note: put soul into your creations, with many details and love. Aim to
870
870
  20. When the player names a specific thing to integrate \u2014 a library, a controller, an asset, a part of an existing game, or a tagged reference the platform placed in \`.genex/refs/<slug>/\` \u2014 integrate the real thing: read its source first and build from it, never a lighter look-alike written from scratch because it was faster. A tagged reference owns the subsystem it was tagged for, outranking the default lane and the vendored controllers for that subsystem. If you genuinely can't use it, say so in one plain line and ask how to proceed.
871
871
  21. A turn ends in exactly one of two ways: on a question the player must answer before the next step can be chosen, or on a handoff \u2014 the draft link, what changed, what to try, and what is still open. Never close a turn on a promise. "I'll keep building", "while I keep working", "adding that now" are things you say and then DO before you stop; if you are stopping, say that you have stopped and what remains. While the Build plan's \`Now:\` line has open work and no answer is needed from the player, the turn is not over: preview, hand off, and start the next milestone in the same turn, until the requested outcome is reached or the platform's own budget ends the session. If a stop was forced on you anyway, the first line of your next turn is the promise you left and where it stands.
872
872
  22. **What the player sees must read as the thing it is**, in this game's own style: a building as that building, a person as a person, a prop as that prop, a surface as its material \u2014 and a coloured box, a capsule, or a flat grey block standing in for one of them is never its finished version. Generation is the default route to that bar wherever code will not honestly reach it: the player's character, whatever the request names, whatever the player walks up to, enters, or interacts with, and the music and sound underneath \u2014 reach for the belt on your own judgment, without stopping to ask; a status line saying what you queued is enough, and \`--no-wait\` keeps you building while it lands. Procedural code is a first-class engine for what is structural, repeated, distant, or parametric \u2014 terrain, sky, fences, paving, modular kits, filler \u2014 and for anything else only when the result meets the same bar and you have looked at it in a capture before its row says \`landed\`. Decide per object, not per category, and write the route on each Assets row in \`DESIGN.md\` \u2014 the paid flow for generated pieces, the procedural flow with its local path for code-built ones. An Assets table with no generation in it is a decision, not a default: record it as \`Generation: none \u2014 <why code alone reaches the bar here>\` or generate.
873
+ 23. **The screenshots you take to look at your own work go in \`.genex/scratch/\`.** Captures, render comparisons, before/after strips, traces and metrics dumps are how you SEE what you built \u2014 they are not part of what you built, and \`genex preview\` pushes the whole folder to the game's source, every time, forever. \`.genex/scratch/\` already exists for this and is already ignored, so there is nothing to set up: write the capture as \`.genex/scratch/arena-before.png\` and read it back from there. Never put them in a folder of your own at the top level: \`progress/\`, \`reports/\`, \`shots/\` and their kind are pushed like source and become permanent weight in the game and in every remix of it \u2014 one real game reached 11 GB and 10,332 committed screenshots exactly this way. If you find such a folder already there, add it to \`.gitignore\`; never delete the player's files (law 18).
873
874
  ${CONTRACT_END}
874
875
  `;
875
876
  var TOOLS_CONTRACT_HEAD = `# Genex Tools (always in effect in this folder)
@@ -22011,7 +22012,7 @@ async function runBlender(opts) {
22011
22012
  return serveLocalBlender({ port, log });
22012
22013
  }
22013
22014
  if (sub === "mcp") {
22014
- const { runBlenderMcp } = await import("./blender-mcp-DPH5PIVX.js");
22015
+ const { runBlenderMcp } = await import("./blender-mcp-VU5KLCZG.js");
22015
22016
  return runBlenderMcp();
22016
22017
  }
22017
22018
  if (sub === "seat") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genex-ai/cli-demo",
3
- "version": "1.27.1-dev.631",
3
+ "version": "1.28.0-dev.632",
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": {