craftar 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-extract.js","sourceRoot":"","sources":["../../src/core/section-extract.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,10 @@ import { exists, listFiles, loadForge, readIngredientText } from "./forge.js";
7
7
  import { splitLines } from "./diff.js";
8
8
  import { detectEol, withEol } from "./text.js";
9
9
  import { collect, deriveHunk, prove, substitutedFile } from "./extract.js";
10
- import { parseSections, SectionMarkerError } from "./sections.js";
10
+ import { firstMarkerLine, parseSections, SectionMarkerError } from "./sections.js";
11
+ import { sectionKey } from "./resolve.js";
12
+ import { deriveSections, prefillSections, proveSections } from "./section-extract.js";
13
+ import { stripBom, toLf } from "./text.js";
11
14
  // Spelled out rather than embedded as a raw character: in the one function whose job is byte
12
15
  // fidelity, correctness should not hinge on a glyph no diff viewer, editor or re-encoding shows.
13
16
  const BOM = String.fromCharCode(0xfeff);
@@ -61,8 +64,46 @@ export async function assertTextMergeable(base, variant) {
61
64
  /** A plan with every decision deferred. The human edits it; nothing is assumed. */
62
65
  export async function planFrom(base, variant, diff, profile) {
63
66
  await assertTextMergeable(base, variant);
67
+ // Build `declared`: every section name the ingredient already declares, in any admitted file (spec 12 §4.2).
68
+ const declared = new Set();
69
+ const baseFiles = await listFiles(base.dir);
70
+ const label = (rel) => ["ingredients", path.basename(path.dirname(base.dir)), path.basename(base.dir), rel].join("/");
71
+ for (const rel of baseFiles) {
72
+ if (rel === "ingredient.yaml")
73
+ continue;
74
+ if (!substitutedFile(base.meta, rel))
75
+ continue;
76
+ try {
77
+ const text = await readIngredientText(base, rel);
78
+ const parsed = parseSections(text, label(rel), base.ref);
79
+ for (const s of parsed.sections)
80
+ declared.add(s.name);
81
+ }
82
+ catch (e) {
83
+ // Ignore parse errors — the check that matters runs later (spec 12 §4.2)
84
+ if (!(e instanceof SectionMarkerError))
85
+ throw e;
86
+ }
87
+ }
64
88
  const files = [];
65
89
  for (const f of diff.files) {
90
+ // Pre-fill section names only when the file is admitted (substitutedFile) (spec 12 §4.2)
91
+ let sectionNames = [];
92
+ if (substitutedFile(base.meta, f.file)) {
93
+ try {
94
+ const baseText = await readIngredientText(base, f.file);
95
+ sectionNames = prefillSections({
96
+ baseText,
97
+ label: label(f.file),
98
+ ref: base.ref,
99
+ hunks: f.hunks,
100
+ declared,
101
+ });
102
+ }
103
+ catch {
104
+ // On any error, leave all undefined (spec 12 §4.2: "pre-fill never blocks --save-plan")
105
+ }
106
+ }
66
107
  files.push({
67
108
  file: f.file,
68
109
  hunks: f.hunks.map((h, i) => ({
@@ -71,6 +112,8 @@ export async function planFrom(base, variant, diff, profile) {
71
112
  take: "keep",
72
113
  // Pre-filled for a value hunk, read only once the human sets take: param (spec 09 §4.2).
73
114
  ...(h.suggestion.class === "value" && h.suggestion.tokens ? { params: h.suggestion.tokens.map((t) => ({ token: t.a, key: t.param })) } : {}),
115
+ // Pre-filled section name for --save-plan (spec 12 §4.2). Only when defined.
116
+ ...(sectionNames[i] !== undefined ? { section: { name: sectionNames[i] } } : {}),
74
117
  suggestion: h.suggestion,
75
118
  })),
76
119
  });
@@ -132,8 +175,13 @@ export function metaDifferences(base, variant) {
132
175
  * `B.eofNewline`), not reconstructed from the winning hunk's own `noEofNewline` flag — that flag
133
176
  * has nothing to say when the winning side contributes no lines (a pure removal taken as the
134
177
  * winner), so `variantText` is passed in alongside the hunks for exactly this reason.
178
+ *
179
+ * The optional `markers` parameter (spec 12 §6.4) inserts section marker lines at their base line
180
+ * indices: before base line index `at`, in array order, so the template holds them at the positions
181
+ * §6.1's span described. A `take: "section"` hunk contributes its **base** lines, never the
182
+ * variant's, so the default text sits between the markers.
135
183
  */
136
- function mergeFile(baseText, variantText, hunks, takes, templates = []) {
184
+ function mergeFile(baseText, variantText, hunks, takes, templates = [], markers = []) {
137
185
  const bom = baseText.charCodeAt(0) === BOM.charCodeAt(0);
138
186
  const A = splitLines(baseText);
139
187
  const B = splitLines(variantText);
@@ -141,22 +189,37 @@ function mergeFile(baseText, variantText, hunks, takes, templates = []) {
141
189
  let i = 0; // 0-based index into A.lines
142
190
  let iAfterLastHunk = 0;
143
191
  let lastWinnerIsVariant = false;
192
+ let mi = 0; // index into markers
193
+ /** Push all markers with `at === idx` before copying any lines at that index. */
194
+ const flushMarkers = (idx) => {
195
+ while (mi < markers.length && markers[mi].at === idx)
196
+ out.push(markers[mi++].line);
197
+ };
144
198
  hunks.forEach((h, k) => {
145
199
  const start = h.a.start - 1; // a.start is 1-based and marks where the hunk applies
146
- while (i < start)
200
+ while (i < start) {
201
+ flushMarkers(i);
147
202
  out.push(A.lines[i++]);
203
+ }
204
+ flushMarkers(i);
148
205
  const takeVariant = takes[k] === "variant";
206
+ const takeSection = takes[k] === "section";
149
207
  const side = takeVariant ? h.b : h.a;
150
- // A param hunk contributes its template; its sides pair line by line and agree on the final newline (P2).
151
- out.push(...(takes[k] === "param" ? templates[k] : side.lines));
208
+ // A param hunk contributes its template; a section hunk contributes the base (the default inside
209
+ // the markers); its sides pair line by line and agree on the final newline (P2, §6.4).
210
+ out.push(...(takes[k] === "param" ? templates[k] : takeSection ? h.a.lines : side.lines));
152
211
  i += h.a.lines.length; // the base's lines for this hunk are consumed either way
153
212
  if (k === hunks.length - 1) {
154
213
  iAfterLastHunk = i;
155
214
  lastWinnerIsVariant = takeVariant;
156
215
  }
157
216
  });
158
- while (i < A.lines.length)
217
+ while (i < A.lines.length) {
218
+ flushMarkers(i);
159
219
  out.push(A.lines[i++]);
220
+ }
221
+ // Markers at the end of the file (at === A.lines.length)
222
+ flushMarkers(A.lines.length);
160
223
  // The tail decides the final newline only when the last hunk reaches the end of the file.
161
224
  const endsAtTail = hunks.length > 0 && iAfterLastHunk >= A.lines.length;
162
225
  const eofNewline = endsAtTail ? (lastWinnerIsVariant ? B.eofNewline : A.eofNewline) : A.eofNewline;
@@ -177,9 +240,18 @@ export async function applyPlan(base, variant, diff, plan, opts = {}) {
177
240
  let unresolved = 0;
178
241
  const extractions = new Map();
179
242
  const proofs = [];
243
+ const sectionExtractions = [];
244
+ const sectionProofs = [];
245
+ /** The new section names for each file, for U1's expected structure. */
246
+ const newSectionNames = new Map();
247
+ /** Tracks which files have section hunks, for the S11 check. */
248
+ const filesWithSectionHunks = new Set();
249
+ /** Names used across all files, for S3 second form. */
250
+ const globalNameUsage = new Map(); // name → file
180
251
  const hunksByFile = new Map(diff.files.map((f) => [f.file, f.hunks]));
181
252
  const onlyInBase = new Set(diff.onlyInBase);
182
253
  const onlyInVariant = new Set(diff.onlyInVariant);
254
+ const profileSections = opts.profileSections ?? {};
183
255
  // Ruling 29 (spec §8 refusal 7, in both directions): the plan must cover every file the diff
184
256
  // has — paired, base-only and variant-only — each exactly once. The walk below only visits the
185
257
  // plan's own entries, so without this a plan stripped of an entry would apply as "resolved" and
@@ -201,6 +273,27 @@ export async function applyPlan(base, variant, diff, plan, opts = {}) {
201
273
  throw new Error(`unify plan: "${file}" differs between the base and the variant but has no entry in the plan — the plan no longer matches this diff.`);
202
274
  }
203
275
  }
276
+ // S12 first part: When the plan has at least one section hunk, every admitted file of the VARIANT
277
+ // (not only the files with runs) is checked for markers.
278
+ const planHasSectionHunk = plan.files.some((pf) => pf.hunks?.some((h) => h.take === "section"));
279
+ if (planHasSectionHunk) {
280
+ const variantFiles = await listFiles(variant.dir);
281
+ for (const rel of variantFiles) {
282
+ if (rel === "ingredient.yaml")
283
+ continue;
284
+ if (!substitutedFile(variant.meta, rel))
285
+ continue;
286
+ const variantText = await readIngredientText(variant, rel);
287
+ const markerLine = firstMarkerLine(toLf(stripBom(variantText)));
288
+ if (markerLine !== null) {
289
+ throw new Error(`unify: ${variant.ref} holds a section marker on ${rel}:${markerLine} — remove it by hand and save the plan again, or re-import the workspace`);
290
+ }
291
+ }
292
+ }
293
+ // Build declaredElsewhere: section names declared in the base's OTHER admitted files.
294
+ // This is needed for S6 (new section name already declared).
295
+ const baseFiles = await listFiles(base.dir);
296
+ const label = (rel) => ["ingredients", path.basename(path.dirname(base.dir)), path.basename(base.dir), rel].join("/");
204
297
  for (const pf of plan.files) {
205
298
  if (pf.hunks) {
206
299
  const hunks = hunksByFile.get(pf.file);
@@ -216,6 +309,7 @@ export async function applyPlan(base, variant, diff, plan, opts = {}) {
216
309
  }
217
310
  const takes = new Array(hunks.length);
218
311
  const paramOf = new Map();
312
+ const sectionOf = new Map();
219
313
  const seen = new Set();
220
314
  for (const ph of pf.hunks) {
221
315
  if (ph.hunk < 1 || ph.hunk > hunks.length || seen.has(ph.hunk)) {
@@ -225,8 +319,110 @@ export async function applyPlan(base, variant, diff, plan, opts = {}) {
225
319
  takes[ph.hunk - 1] = ph.take;
226
320
  if (ph.take === "param")
227
321
  paramOf.set(ph.hunk - 1, ph);
322
+ if (ph.take === "section")
323
+ sectionOf.set(ph.hunk - 1, ph);
228
324
  }
325
+ // Section hunks are not counted as unresolved decisions (spec 12 §6.1 step 5: "A section hunk is a decision")
229
326
  unresolved += takes.filter((t) => t === "keep").length;
327
+ // Files with section hunks
328
+ if (sectionOf.size > 0) {
329
+ filesWithSectionHunks.add(pf.file);
330
+ // S2: the file must be substituted
331
+ if (!substitutedFile(base.meta, pf.file)) {
332
+ throw new Error(`unify plan: "${pf.file}" is copied without expansion by a target that emits it — a section marker there would be emitted literally`);
333
+ }
334
+ // Build declaredElsewhere for this file
335
+ const declaredElsewhere = new Map();
336
+ for (const otherFile of baseFiles) {
337
+ if (otherFile === "ingredient.yaml" || otherFile === pf.file)
338
+ continue;
339
+ if (!substitutedFile(base.meta, otherFile))
340
+ continue;
341
+ const otherText = await readIngredientText(base, otherFile);
342
+ const parsed = parseSections(otherText, label(otherFile), base.ref);
343
+ for (const s of parsed.sections) {
344
+ declaredElsewhere.set(s.name, `${otherFile}:${s.line}`);
345
+ }
346
+ }
347
+ // Derive sections
348
+ const baseText = await readIngredientText(base, pf.file);
349
+ const variantText = await readIngredientText(variant, pf.file);
350
+ const { runs, markers } = deriveSections({
351
+ file: pf.file,
352
+ label: label(pf.file),
353
+ ref: base.ref,
354
+ baseText,
355
+ variantText,
356
+ hunks,
357
+ entries: pf.hunks,
358
+ declaredElsewhere,
359
+ });
360
+ // S3 second form: a name used in two different files
361
+ for (const run of runs) {
362
+ const existingFile = globalNameUsage.get(run.name);
363
+ if (existingFile !== undefined && existingFile !== pf.file) {
364
+ throw new Error(`unify plan: section ${run.name} is named in "${existingFile}" and "${pf.file}"`);
365
+ }
366
+ globalNameUsage.set(run.name, pf.file);
367
+ }
368
+ // Collect new section names for U1
369
+ const newNames = runs.filter((r) => !r.existing).map((r) => r.name);
370
+ if (newNames.length > 0) {
371
+ newSectionNames.set(pf.file, newNames);
372
+ }
373
+ // Build values map for this file's runs
374
+ const values = {};
375
+ for (const run of runs) {
376
+ values[run.name] = run.value;
377
+ }
378
+ // Create the three merges: template with markers, all-base, all-variant
379
+ // as(side) maps BOTH "param" and "section" to side
380
+ const as = (side) => takes.map((t) => (t === "param" || t === "section" ? side : t));
381
+ // Handle param hunks in the same file
382
+ const templates = new Array(hunks.length);
383
+ for (const [k, ph] of paramOf) {
384
+ const { lines, pairs } = deriveHunk(pf.file, k + 1, hunks[k], ph.params, base.meta.params);
385
+ templates[k] = lines;
386
+ collect(extractions, pf.file, k + 1, pairs);
387
+ }
388
+ const template = mergeFile(baseText, variantText, hunks, takes, templates, markers);
389
+ const mBase = mergeFile(baseText, variantText, hunks, as("base"), templates);
390
+ const mVar = mergeFile(baseText, variantText, hunks, as("variant"), templates);
391
+ // Record proof for proveSections (not prove)
392
+ sectionProofs.push({
393
+ file: pf.file,
394
+ label: label(pf.file),
395
+ template,
396
+ mBase,
397
+ mVar,
398
+ newNames,
399
+ values,
400
+ });
401
+ // Push section extractions
402
+ const key = sectionKey(base.meta);
403
+ for (const run of runs) {
404
+ sectionExtractions.push({
405
+ key,
406
+ name: run.name,
407
+ file: run.file,
408
+ existing: run.existing,
409
+ default: run.default,
410
+ value: run.value,
411
+ });
412
+ }
413
+ // A reuse-only plan (only existing sections, no new sections, no variant takes, no param
414
+ // takes) does not change the body by spec 12 §6.7 step 3: "For an existing section, nothing
415
+ // (unless param or variant hunks in the same file change it)." Skip mergeFile entirely
416
+ // rather than round-tripping a mixed-EOL base through splitLines/withEol.
417
+ const hasNewSection = newNames.length > 0;
418
+ const hasVariantTake = takes.includes("variant");
419
+ const hasParamTake = paramOf.size > 0;
420
+ if (hasNewSection || hasVariantTake || hasParamTake) {
421
+ if (template !== baseText)
422
+ write[pf.file] = template;
423
+ }
424
+ continue;
425
+ }
230
426
  // A plan with no `variant` decision cannot change this file's bytes — skip the merge
231
427
  // entirely rather than round-tripping the base through `splitLines`/`withEol` for nothing,
232
428
  // which would re-terminate a base with mixed line endings even though no decision moved it.
@@ -304,19 +500,45 @@ export async function applyPlan(base, variant, diff, plan, opts = {}) {
304
500
  }
305
501
  }
306
502
  }
307
- await checkMarkers(base, write, remove);
503
+ await checkMarkers(base, write, remove, newSectionNames);
308
504
  const metaDiffers = opts.discardVariantMeta ? [] : metaDifferences(base, variant);
309
505
  const params = [...extractions.values()];
506
+ const sections = sectionExtractions;
507
+ // S11: when the plan has a section hunk, the variant must be resolved in the same plan
508
+ if (sections.length) {
509
+ if (unresolved) {
510
+ throw new Error(`unify plan: take: section needs the variant resolved in the same plan — ${unresolved} decision(s) still keep`);
511
+ }
512
+ if (metaDiffers.length) {
513
+ throw new Error(`unify plan: take: section needs the variant resolved in the same plan — ingredient.yaml differs in ${metaDiffers.join(", ")}`);
514
+ }
515
+ }
516
+ // P10: the base now holds {{key}}; left unresolved, the next diff would show the same hunk as placeholder versus literal.
517
+ // When both params and sections are present, report the param wording (P10).
310
518
  if (params.length) {
311
- // P10: the base now holds {{key}}; left unresolved, the next diff would show the same hunk as placeholder versus literal.
312
519
  if (unresolved)
313
520
  throw new Error(`unify plan: take: param needs the variant resolved in the same plan — ${unresolved} decision(s) still keep`);
314
521
  if (metaDiffers.length)
315
522
  throw new Error(`unify plan: take: param needs the variant resolved in the same plan — ingredient.yaml differs in ${metaDiffers.join(", ")}`);
316
- for (const p of proofs)
317
- prove(p.file, p.template, p.mBase, p.mVar, params);
318
523
  }
319
- return { write, remove, resolved: unresolved === 0 && metaDiffers.length === 0, unresolved, metaDiffers, params };
524
+ // Run proofs: param-only files use prove, files with section runs use proveSections
525
+ for (const p of proofs)
526
+ prove(p.file, p.template, p.mBase, p.mVar, params);
527
+ for (const p of sectionProofs) {
528
+ proveSections({
529
+ file: p.file,
530
+ label: p.label,
531
+ ref: base.ref,
532
+ template: p.template,
533
+ mBase: p.mBase,
534
+ mVar: p.mVar,
535
+ newNames: p.newNames,
536
+ values: p.values,
537
+ profileValues: profileSections,
538
+ extractions: params,
539
+ });
540
+ }
541
+ return { write, remove, resolved: unresolved === 0 && metaDiffers.length === 0, unresolved, metaDiffers, params, sections };
320
542
  }
321
543
  /** The sequence of section names a text declares, or the parse problem. */
322
544
  function markerStructure(text, label) {
@@ -330,13 +552,14 @@ function markerStructure(text, label) {
330
552
  }
331
553
  }
332
554
  /**
333
- * U1 (spec 11 §6.12, Ruling 8): a merge never adds, removes or changes a section marker. Taking the
334
- * variant's side of a hunk that holds a marker would leave an unterminated section, which every later
335
- * sync refuses, or drop a section whose profile values would then silently stop applying. Each file
336
- * the result writes or removes is compared, as the sequence of its section names, with the base's —
337
- * before anything is written. Editing sections through unify is not supported yet.
555
+ * U1 (spec 11 §6.12, spec 12 §6.8): a merge never adds, removes or changes a section marker unless
556
+ * the plan declares it. Taking the variant's side of a hunk that holds a marker would leave an
557
+ * unterminated section, which every later sync refuses, or drop a section whose profile values would
558
+ * then silently stop applying. Each file the result writes or removes is compared, as the sequence
559
+ * of its section names, with the **expected** sequence: the base's, plus the plan's new sections
560
+ * inserted in span order. A plan without section hunks expects the base's sequence, as in 0.7.x.
338
561
  */
339
- async function checkMarkers(base, write, remove) {
562
+ async function checkMarkers(base, write, remove, newNames = new Map()) {
340
563
  const label = (rel) => ["ingredients", path.basename(path.dirname(base.dir)), path.basename(base.dir), rel].join("/");
341
564
  const touched = [...Object.keys(write), ...remove].filter((rel) => substitutedFile(base.meta, rel)).sort();
342
565
  for (const rel of touched) {
@@ -351,12 +574,38 @@ async function checkMarkers(base, write, remove) {
351
574
  why = `the base has malformed markers — ${before.problem}`;
352
575
  else if (merged === undefined && before.names.length)
353
576
  why = `the file would be removed with sections ${before.names.join(", ")}`;
354
- else if (JSON.stringify(before.names) !== JSON.stringify(after.names)) {
355
- const show = (xs) => (xs.length ? xs.join(", ") : "none");
356
- why = `sections ${show(before.names)} would become ${show(after.names)}`;
577
+ else {
578
+ // Compute expected names: base's names plus new names from the plan
579
+ // For a file in newNames, the comparison becomes: `after` names with the new names removed must
580
+ // equal `before` names, and each new name must occur exactly once in `after`.
581
+ const fileNewNames = newNames.get(rel);
582
+ if (fileNewNames && fileNewNames.length > 0) {
583
+ const newNamesSet = new Set(fileNewNames);
584
+ // Check each new name occurs exactly once in after
585
+ for (const name of fileNewNames) {
586
+ const count = after.names.filter((n) => n === name).length;
587
+ if (count !== 1) {
588
+ const show = (xs) => (xs.length ? xs.join(", ") : "none");
589
+ why = `sections ${show(before.names)} would become ${show(after.names)}`;
590
+ break;
591
+ }
592
+ }
593
+ if (!why) {
594
+ // after names with new names removed must equal before names
595
+ const afterFiltered = after.names.filter((n) => !newNamesSet.has(n));
596
+ if (JSON.stringify(before.names) !== JSON.stringify(afterFiltered)) {
597
+ const show = (xs) => (xs.length ? xs.join(", ") : "none");
598
+ why = `sections ${show(before.names)} would become ${show(after.names)}`;
599
+ }
600
+ }
601
+ }
602
+ else if (JSON.stringify(before.names) !== JSON.stringify(after.names)) {
603
+ const show = (xs) => (xs.length ? xs.join(", ") : "none");
604
+ why = `sections ${show(before.names)} would become ${show(after.names)}`;
605
+ }
357
606
  }
358
607
  if (why)
359
- throw new Error(`unify: ${label(rel)} would lose or change section markers (${why}) — take base for the marker lines; editing sections through unify is not supported yet`);
608
+ throw new Error(`unify: ${label(rel)} would lose or change section markers (${why}) — take base for the marker lines, or take: section to fill the section`);
360
609
  }
361
610
  }
362
611
  async function note(journal, abs) {
@@ -1 +1 @@
1
- {"version":3,"file":"unify.js","sourceRoot":"","sources":["../../src/core/unify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unify.js","sourceRoot":"","sources":["../../src/core/unify.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,11 @@ import path from "node:path";
3
3
  import YAML from "yaml";
4
4
  import { parseFrontmatter } from "../core/frontmatter.js";
5
5
  import { exists, listFiles, parseYaml, typeFolder, FORGE_MANIFEST } from "../core/forge.js";
6
+ import { manifestWithSections } from "../core/manifest-edit.js";
6
7
  import { decodeForScan, findSecrets, hasUtf16Bom, secretValueKind } from "../core/secrets.js";
7
8
  import { stripBom, toLf } from "../core/text.js";
8
9
  import { fingerprintDir, fingerprintOf } from "../core/fingerprint.js";
9
- import { FORGE_SCHEMA_SECTIONS, ForgeManifestSchema, IngredientSchema, ProfileSchema, RecipeSchema, WorkspaceConfigSchema } from "../schema/index.js";
10
+ import { FORGE_SCHEMA_SECTIONS, IngredientSchema, ProfileSchema, RecipeSchema, WorkspaceConfigSchema } from "../schema/index.js";
10
11
  import { isDeepStrictEqual } from "node:util";
11
12
  import { resolve } from "../core/resolve.js";
12
13
  import { editYamlText } from "../core/yaml-edit.js";
@@ -911,31 +912,10 @@ async function stageManifest(stage, forge, needs) {
911
912
  }
912
913
  if (!needs)
913
914
  return "unchanged";
914
- const i13 = (why) => new Error(`import: cannot edit ${FORGE_MANIFEST} in place (${why}) — set schema: ${FORGE_SCHEMA_SECTIONS} by hand, commit, and re-run`);
915
915
  const raw = await stage.readText(abs);
916
- let before;
917
- try {
918
- before = YAML.parse(stripBom(raw));
919
- }
920
- catch (e) {
921
- throw i13(`it does not parse: ${e.message}`);
922
- }
923
- // Unreachable while forgeBefore loads the manifest through its schema first (I5); kept so the edit never assumes it.
924
- if (before === null || typeof before !== "object" || Array.isArray(before))
925
- throw i13("it is not a YAML mapping");
926
- if (before.schema === FORGE_SCHEMA_SECTIONS)
916
+ const content = manifestWithSections(raw, "import");
917
+ if (content === null)
927
918
  return "unchanged";
928
- let content;
929
- try {
930
- content = editYamlText(raw, { command: "import", label: FORGE_MANIFEST, keys: ["schema"] }, (doc) => doc.set("schema", FORGE_SCHEMA_SECTIONS));
931
- }
932
- catch (e) {
933
- throw i13(e.message.replace(/^.*in place \((.*)\) — .*$/s, "$1"));
934
- }
935
- const after = YAML.parse(stripBom(content));
936
- if (!ForgeManifestSchema.safeParse(after).success || !isDeepStrictEqual(after, { ...before, schema: FORGE_SCHEMA_SECTIONS })) {
937
- throw i13(`the edit does not read back as the original with exactly schema: ${FORGE_SCHEMA_SECTIONS}`);
938
- }
939
919
  stage.write(abs, content);
940
920
  return "edited";
941
921
  }