From bb15d147495fe95babd81cb45eddc768430652b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=82=8E?= <635735027@qq.com> Date: Fri, 17 Apr 2026 10:39:36 +0800 Subject: [PATCH] feat(runner): pass sceneInfoJson to Rust CLI for enhanced template rendering --- frontend/scene-generator/generator-runner.js | 7 ++++++- frontend/scene-generator/server.js | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/frontend/scene-generator/generator-runner.js b/frontend/scene-generator/generator-runner.js index 1e727b1..016fdfb 100644 --- a/frontend/scene-generator/generator-runner.js +++ b/frontend/scene-generator/generator-runner.js @@ -2,7 +2,7 @@ const { spawn } = require("child_process"); const path = require("path"); function runGenerator(params, sseWriter, projectRoot) { - const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons } = params; + const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons, sceneInfoJson } = params; const normalize = (p) => p.replace(/\\/g, "/"); @@ -35,6 +35,11 @@ function runGenerator(params, sseWriter, projectRoot) { args.push("--lessons", normalize(lessons)); } + // Pass scene info JSON if available + if (sceneInfoJson) { + args.push("--scene-info-json", sceneInfoJson); + } + return new Promise((resolve, reject) => { sseWriter.write( `event: status\ndata: ${JSON.stringify({ diff --git a/frontend/scene-generator/server.js b/frontend/scene-generator/server.js index 9a7d72f..15940a4 100644 --- a/frontend/scene-generator/server.js +++ b/frontend/scene-generator/server.js @@ -176,7 +176,7 @@ async function handleGenerate(req, res) { return; } - const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons } = body; + const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons, sceneInfoJson } = body; if (!sourceDir || !sceneId || !sceneName || !outputRoot) { res.writeHead(400, { "Content-Type": "application/json" }); res.end( @@ -192,7 +192,7 @@ async function handleGenerate(req, res) { try { await runGenerator( - { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons }, + { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons, sceneInfoJson }, sseWriter, config.projectRoot );