bb7633b318
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
15 lines
587 B
JavaScript
15 lines
587 B
JavaScript
// Нарезка сырого журнала на ходы по диапазону [from,to] (§D6). Идемпотентность по turn —
|
|
// забота писателя файлов (вызывающего хука).
|
|
export function sliceTurns(rawLog, from, to) {
|
|
const out = [];
|
|
const re = /=== ХОД turn=(\d+)[^\n]*===([\s\S]*?)=== КОНЕЦ ХОДА ===/g;
|
|
let m;
|
|
while ((m = re.exec(String(rawLog || ''))) !== null) {
|
|
const turn = Number(m[1]);
|
|
if (turn >= from && turn <= to) {
|
|
out.push({ turn, content: m[0].trim() });
|
|
}
|
|
}
|
|
return out;
|
|
}
|