// 真跑 render():把 board.html 的页面脚本放进 vm 的**全局作用域**执行,
// 这样顶层 `function render(){}` 会挂到 sandbox 对象上,能真调到。
// ⛔ 上次用 `new Function()` 是假绿 —— 函数关在局部,取到 undefined,等于没跑。
const fs = require('fs'), http = require('http'), vm = require('vm');
const path = require('path');
const P = process.env.BOARD_HTML || path.join(__dirname, 'board.html');
const SNAP_URL = process.env.BOARD_SNAP || 'http://127.0.0.1:20099/board.json';
// 🔴 2026-10-05:支持**盘上快照**(自测/离线用)—— ⛔ 不必起服务,⛔ 不依赖网络。
const SNAP_FILE = process.env.BOARD_SNAP_FILE || '';
// 分母口径断言可被外部指定(自测会传期望值;不传则只报数不判)
const WANT_PASS = process.env.BOARD_WANT_PASS || '';
const html = fs.readFileSync(P, 'utf8');
const blocks = [...html.matchAll(/