INNER CODE UNIT · JavaScript
parseDraftArtifact
entropy-cloud/nop-entropy · tools/mission-driver/src/main.js:211
function parseDraftArtifact(resultText, missionsDir) {
const out = { missionName: null, roadmapPath: null, missionFile: null };
// 1. <MISSION_FILE> tag
if (typeof resultText === "string") {
// mdr-remediate-3 N1: strip ANSI BEFORE the marker match (see extractBriefPath).
const clean = stripAnsiControl(resultText);
const m = clean.match(/<MISSION_FILE>\s*([^\s<]+)\s*<\/MISSION_FILE>/i);
if (m && m[1]) {
const file = m[1].trim();
try {
const mission = JSON.parse(readFileSync(file, "utf8"));
if (mission && typeof mission === "object") {
out.missionFile = file;
out.missionName = mission.name || basenameNoExt(file);
out.roadmapPath = mission.roadmapPath || null;
// WI3 (draft-robustness-design §4.3.3): warn when the resolved
// mission.json lands outside the expected missionsDir — usually a
// projectRoot / cwd mismatch that splits artifacts across two roots.