Newer
Older
rpg / tools / smoke.mjs
/**
 * Базовый смоук через агентный мост: новая игра, шаги, снапшот, скриншот.
 * Запуск: node tools/smoke.mjs [url] [файл-скриншота]
 */
import { openGame } from './agent-lib.mjs';

const url = process.argv[2] ?? 'http://localhost:5199/';
const shot = process.argv[3] ?? '/tmp/rpg_smoke.png';

const { browser, page, agent } = await openGame({ url, newGame: true });

// 300 фиксированных шагов без ошибок инвариантов.
await agent.step(300);
const inv = await agent.invariants();
const errs = inv.filter((i) => i.severity === 'error');
if (errs.length) console.log('  ! инварианты:', JSON.stringify(errs));

const snap = await agent.snapshot();
console.log('снапшот:', JSON.stringify({ area: snap.area, hero: snap.hero?.tile, hp: snap.hero?.hp }));
await page.screenshot({ path: shot });
console.log(`Скриншот: ${shot}`);
await browser.close();