edea1ea40c
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.8 KiB
JavaScript
33 lines
1.8 KiB
JavaScript
#!/usr/bin/env node
|
|
/** round-memory-record — orchestration-помощник записи памяти кругов (SP2c-1).
|
|
* Цель — минимизировать врезки в discipline-source: одна точка пишет снимок версии артефакта
|
|
* и доводы контроллера последнего круга «## Переговоры» по дорожкам M/J. Объекция стороны
|
|
* (NO-GO) пишется через recordSideObjection. Fail-quiet. */
|
|
import { recordVersion, recordArg, recordObjection } from './round-memory-store.mjs';
|
|
import { parseNegotiationSection } from './negotiation-section.mjs';
|
|
|
|
/** На запись артефакта: снимок версии + доводы ПОСЛЕДНЕГО круга по дорожкам M/J.
|
|
* Пустые доводы не пишутся. Любая ошибка → no-op (false), не кидает. */
|
|
export function recordArtifact(taskId, stage, content, baseDir) {
|
|
try {
|
|
recordVersion(taskId, stage, content, baseDir);
|
|
const rounds = parseNegotiationSection(content);
|
|
const last = rounds[rounds.length - 1];
|
|
if (last) {
|
|
if (last.mentor) recordArg(taskId, stage, 'M', last.mentor, baseDir);
|
|
if (last.judge) recordArg(taskId, stage, 'J', last.judge, baseDir);
|
|
}
|
|
return true;
|
|
} catch { return false; }
|
|
}
|
|
|
|
/** На объекцию стороны (NO-GO): дословное замечание в дорожку side∈{mentor,judge}.
|
|
* Пустой текст не пишется. Любая ошибка → no-op (false), не кидает. */
|
|
export function recordSideObjection(taskId, stage, side, text, baseDir) {
|
|
try {
|
|
const t = String(text == null ? '' : text);
|
|
if (!t) return false;
|
|
return recordObjection(taskId, stage, side, t, baseDir);
|
|
} catch { return false; }
|
|
}
|