@genex-ai/cli-demo 1.26.1-dev.621 → 1.27.0-dev.623
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/README.md +18 -0
- package/dist/{blender-mcp-Z4ENPVVE.js → blender-mcp-DPH5PIVX.js} +1 -1
- package/dist/{chunk-CE3B24E2.js → chunk-I77A53C6.js} +5 -1
- package/dist/index.js +5777 -5009
- package/package.json +1 -1
- package/templates/blender-service/ops.py +2 -2
- package/templates/blender-service/server.py +10 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genex-ai/cli-demo",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.0-dev.623",
|
|
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": {
|
|
@@ -214,12 +214,12 @@ def scene_digest():
|
|
|
214
214
|
if m.use_nodes and m.node_tree:
|
|
215
215
|
for node in m.node_tree.nodes:
|
|
216
216
|
if node.type == "BSDF_PRINCIPLED":
|
|
217
|
-
h.update(("bsdf:%s\n" % tuple(node.inputs["Base Color"].default_value)).encode())
|
|
217
|
+
h.update(("bsdf:%s\n" % (tuple(node.inputs["Base Color"].default_value),)).encode())
|
|
218
218
|
elif obj.type == "LIGHT" and data is not None:
|
|
219
219
|
h.update(("light:%s:%s:%s\n" % (data.type, data.energy, tuple(data.color))).encode())
|
|
220
220
|
elif obj.type == "CAMERA" and data is not None:
|
|
221
221
|
h.update(("cam:%s:%s\n" % (data.lens, data.type)).encode())
|
|
222
222
|
w = scene.world
|
|
223
223
|
if w is not None:
|
|
224
|
-
h.update(("world:%s\n" % tuple(getattr(w, "color", (0, 0, 0)))).encode())
|
|
224
|
+
h.update(("world:%s\n" % (tuple(getattr(w, "color", (0, 0, 0))),)).encode())
|
|
225
225
|
return h.hexdigest()
|
|
@@ -406,15 +406,21 @@ class Handler(BaseHTTPRequestHandler):
|
|
|
406
406
|
started = time.time()
|
|
407
407
|
route = self.path.split("?")[0]
|
|
408
408
|
_set_deadline(route, _budget_for(route, body))
|
|
409
|
+
stage = route.lstrip("/")
|
|
410
|
+
script_started = False
|
|
409
411
|
try:
|
|
410
412
|
if route == "/exec":
|
|
413
|
+
stage = "script"
|
|
414
|
+
script_started = True
|
|
411
415
|
result = ops.run_script(body.get("script", ""))
|
|
416
|
+
stage = "scene_info"
|
|
412
417
|
result["scene"] = ops.scene_info()
|
|
413
418
|
result["gpu"] = GPU_WITNESS
|
|
414
419
|
# The sheet rides EVERY exec by default. verify:false is for
|
|
415
420
|
# bulk sub-steps only -- an agent that has to ask for the
|
|
416
421
|
# picture is an agent that will forget to.
|
|
417
422
|
if body.get("verify", True):
|
|
423
|
+
stage = "verification"
|
|
418
424
|
_attach_sheet(result, body, body.get("mode") or DEFAULT_MODE)
|
|
419
425
|
result["ms"] = int((time.time() - started) * 1000)
|
|
420
426
|
_checkpoint()
|
|
@@ -492,7 +498,8 @@ class Handler(BaseHTTPRequestHandler):
|
|
|
492
498
|
except Exception as e:
|
|
493
499
|
import traceback
|
|
494
500
|
|
|
495
|
-
self._send(500, {"error": "exec_failed", "detail": str(e), "trace": traceback.format_exc(limit=6)
|
|
501
|
+
self._send(500, {"error": "exec_failed", "detail": str(e), "trace": traceback.format_exc(limit=6),
|
|
502
|
+
"stage": stage, "scriptStarted": script_started})
|
|
496
503
|
finally:
|
|
497
504
|
# MUST run: a stale deadline file makes the supervisor kill a
|
|
498
505
|
# perfectly healthy Blender on its next poll.
|
|
@@ -600,4 +607,5 @@ def main():
|
|
|
600
607
|
srv.server_close()
|
|
601
608
|
|
|
602
609
|
|
|
603
|
-
|
|
610
|
+
if __name__ == "__main__":
|
|
611
|
+
main()
|