craftar 0.0.6 → 0.2.0
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.
- package/README.md +4 -3
- package/dist/cli.js +303 -12
- package/dist/cli.js.map +1 -1
- package/dist/core/diff.js +121 -4
- package/dist/core/diff.js.map +1 -1
- package/dist/core/forge.js +85 -0
- package/dist/core/forge.js.map +1 -1
- package/dist/core/unify.js +472 -0
- package/dist/core/unify.js.map +1 -0
- package/dist/core/variants.js +29 -18
- package/dist/core/variants.js.map +1 -1
- package/dist/schema/index.js +27 -0
- package/dist/schema/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,10 +57,11 @@ From then on, change a rule in `forge/ingredients/rules/<name>/rule.md`, run `cr
|
|
|
57
57
|
| `craftar diff [path]` | Line diff between disk and what the Forge would generate. |
|
|
58
58
|
| `craftar explain <path>` | Which ingredient, recipe chain, target and origin produced a file. |
|
|
59
59
|
| `craftar ls` | Recipes and ingredients resolved for this workspace. |
|
|
60
|
-
| `craftar forge variants [--forge <dir> \| --workspace <dir>] [--json]` | Lists ingredients that have variants, nearest first, with the profile each came from and its distance to the base. Read-only. |
|
|
61
|
-
| `craftar forge diff <type/name> [--against <profile>] [--forge <dir> \| --workspace <dir>] [--json]` | Shows the differences between a base ingredient and each of its variants, hunk by hunk. Read-only. |
|
|
60
|
+
| `craftar forge variants [--forge <dir> \| --workspace <dir>] [--json]` | Lists ingredients that have variants, nearest first, with the profile each came from and its distance to the base, then any variant whose base is missing from the Forge. Read-only; exits 0 either way. `--json` prints `{groups, orphans}`. |
|
|
61
|
+
| `craftar forge diff <type/name> [--against <profile>] [--forge <dir> \| --workspace <dir>] [--json]` | Shows the differences between a base ingredient and each of its variants: a header carrying the same distance `forge variants` reports, then hunk by hunk, then the files that exist on only one side. Read-only. `--json` prints an array of `{ref, profile, distance, diff}`. |
|
|
62
|
+
| `craftar forge unify <type/name> --profile <p> (--take base\|variant \| --plan <file> \| --save-plan <file>) [--forge <dir> \| --workspace <dir>] [--json]` | Resolves one variant back into its base, hunk by hunk. `--save-plan` writes a reviewable plan with every decision set to `keep` and writes nothing else; it refuses a path that resolves inside the Forge (after `..` segments and symlinks) and a path that already exists, so it never overwrites a Forge file or a plan you already edited. `--plan` applies an edited plan, refusing when it is not for this exact ingredient/profile or either side's fingerprint moved since it was saved. `--take base\|variant` resolves every decision to that side. Writes the merged base and, once every difference is resolved, removes the variant and rewrites every recipe reference to it (`ingredients`) to name the base. It never deletes a recipe and never edits a profile or an `extends`: a `<recipe>--<profile>` left identical to `<recipe>` is reported as a warning, to be removed by hand after repointing the lists that name it — unify does not, because a workspace or an `extends` chain may also name `<recipe>` and the recipe order or param precedence would change. Unify cannot reach workspaces, so a removed variant is reported as a warning for any `craftar.yaml` that disables it in `overrides.ingredients.disable`. Every recipe rewrite is checked before the first write, so one that cannot land (a reference behind a YAML alias) is refused with the Forge untouched; a failure after writing began (an I/O error, a locked file) names the paths already touched and the `git checkout` / `git clean` commands that undo them. `ingredient.yaml` is never merged: when the two sides' metadata differs (beyond `name`, `as` and `origin`), the variant stays unresolved and the differing fields are named — edit it by hand, or `--take base` to discard the variant, metadata included. Requires a clean git checkout in the Forge with at least one commit (`--save-plan` excepted) — the Forge has no lock, so git is the undo. It also refuses when any path it would overwrite or delete (the base, the variant, the recipe files it rewrites) is ignored, untracked, modified, or flagged skip-worktree or assume-unchanged in the index, since git could not restore it. `--json` prints `{base, profile, resolved, written, removed, unresolved, variantRemoved, recipes: {rewritten, identicalToSibling}, metaDiffers, warnings}` for `--take`/`--plan` (every key always present, `[]` when empty), or `{base, profile, plan, unresolved}` for `--save-plan`. |
|
|
62
63
|
|
|
63
|
-
All commands take `--workspace <dir>` (default: current directory).
|
|
64
|
+
All commands take `--workspace <dir>` (default: current directory); the `forge` commands also take `--forge <dir>` as an alternative to it.
|
|
64
65
|
|
|
65
66
|
## Forge layout
|
|
66
67
|
|
package/dist/cli.js
CHANGED
|
@@ -2,15 +2,20 @@ import { Command } from "commander";
|
|
|
2
2
|
import pc from "picocolors";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { promises as fs } from "node:fs";
|
|
5
|
+
import YAML from "yaml";
|
|
5
6
|
import { importClaudeCode } from "./importers/claude-code.js";
|
|
6
7
|
import { loadWorkspace, plan, readLock, status, apply, resolveForge } from "./core/sync.js";
|
|
7
|
-
import { renderDiff } from "./core/diff.js";
|
|
8
|
+
import { renderDiff, NO_EOF_NEWLINE_MARKER } from "./core/diff.js";
|
|
8
9
|
import { diffIngredients, listVariants, profileOf } from "./core/variants.js";
|
|
9
10
|
import { hashNormalized, toLf, stripBom } from "./core/text.js";
|
|
11
|
+
import { gitDirty, gitIsRepo, gitUnheld } from "./core/forge.js";
|
|
12
|
+
import { fingerprintDir } from "./core/fingerprint.js";
|
|
13
|
+
import { hunkAt, planFrom, applyPlan, writeUnified, checkRecipeCascade, rewriteRecipes, } from "./core/unify.js";
|
|
14
|
+
import { UnifyPlanSchema } from "./schema/index.js";
|
|
10
15
|
process.stdout.on("error", (e) => { if (e.code === "EPIPE")
|
|
11
16
|
process.exit(0); });
|
|
12
17
|
const program = new Command();
|
|
13
|
-
program.name("craftar").description("Craft, sync and convert AI-coding workspace harnesses.").version("0.0
|
|
18
|
+
program.name("craftar").description("Craft, sync and convert AI-coding workspace harnesses.").version("0.2.0");
|
|
14
19
|
/* ---------------------------------------------------------------- import */
|
|
15
20
|
program
|
|
16
21
|
.command("import")
|
|
@@ -153,29 +158,34 @@ program
|
|
|
153
158
|
const forge = program.command("forge").description("Operate on the Forge itself rather than on a workspace");
|
|
154
159
|
forge
|
|
155
160
|
.command("variants")
|
|
156
|
-
.description("List ingredients that have variants, nearest first")
|
|
161
|
+
.description("List ingredients that have variants, nearest first, and variants whose base is missing. Read-only")
|
|
157
162
|
.option("--forge <dir>", "Forge directory (instead of --workspace)")
|
|
158
163
|
.option("--workspace <dir>", "workspace whose craftar.yaml names the Forge (default: .)")
|
|
159
164
|
.option("--json", "machine-readable output", false)
|
|
160
165
|
.action(async (o) => {
|
|
161
166
|
const f = await resolveForge({ forge: o.forge, workspace: o.workspace });
|
|
162
|
-
const
|
|
167
|
+
const report = await listVariants(f);
|
|
163
168
|
if (o.json)
|
|
164
|
-
return console.log(JSON.stringify(
|
|
169
|
+
return console.log(JSON.stringify(report, null, 2));
|
|
165
170
|
console.log(pc.bold(`craftar forge variants — forge ${f.manifest.name} @ ${f.commit?.slice(0, 8) ?? "no git"}`));
|
|
166
|
-
|
|
171
|
+
const { groups, orphans } = report;
|
|
172
|
+
if (!groups.length && !orphans.length)
|
|
167
173
|
return console.log(" no variants");
|
|
168
174
|
for (const g of groups) {
|
|
169
175
|
const count = `${g.variants.length} variant${g.variants.length > 1 ? "s" : ""}`;
|
|
170
176
|
const detail = g.variants.map((v) => `${v.profile} (${describeDistance(v.distance)})`).join(", ");
|
|
171
177
|
console.log(` ${g.base.padEnd(24)} ${count.padEnd(11)} ${detail}`);
|
|
172
178
|
}
|
|
179
|
+
for (const orphan of orphans) {
|
|
180
|
+
console.log(` ${orphan.ref.padEnd(24)} variant of ${orphan.missingBase}, which is not in this Forge`);
|
|
181
|
+
}
|
|
173
182
|
const total = groups.reduce((n, g) => n + g.variants.length, 0);
|
|
174
|
-
|
|
183
|
+
const orphanNote = orphans.length ? `, ${orphans.length} orphan${orphans.length === 1 ? "" : "s"}` : "";
|
|
184
|
+
console.log(`\n ${groups.length} base${groups.length === 1 ? "" : "s"} with variants, ${total} variant${total === 1 ? "" : "s"} total${orphanNote}`);
|
|
175
185
|
});
|
|
176
186
|
forge
|
|
177
187
|
.command("diff")
|
|
178
|
-
.description("Show the differences between a base ingredient and each of its variants")
|
|
188
|
+
.description("Show the distance and the differences between a base ingredient and each of its variants. Read-only")
|
|
179
189
|
.argument("<type/name>", "base ingredient (rule/workflow)")
|
|
180
190
|
.option("--against <profile>", "only this profile's variant")
|
|
181
191
|
.option("--forge <dir>", "Forge directory (instead of --workspace)")
|
|
@@ -196,7 +206,7 @@ forge
|
|
|
196
206
|
if (!variants.length)
|
|
197
207
|
fail(o.against ? `${ref} has no variant for profile ${o.against}` : `${ref} has no variants`);
|
|
198
208
|
// The same distances `forge variants` reports, so both commands agree about a variant.
|
|
199
|
-
const distances = new Map((await listVariants(f)).flatMap((g) => g.variants.map((v) => [v.ref, v.distance])));
|
|
209
|
+
const distances = new Map((await listVariants(f)).groups.flatMap((g) => g.variants.map((v) => [v.ref, v.distance])));
|
|
200
210
|
const report = [];
|
|
201
211
|
for (const v of variants) {
|
|
202
212
|
report.push({ ref: v.ref, profile: profileOf(v.meta), distance: distances.get(v.ref), diff: await diffIngredients(base, v) });
|
|
@@ -208,12 +218,15 @@ forge
|
|
|
208
218
|
for (const file of r.diff.files) {
|
|
209
219
|
console.log(` ${file.file}`);
|
|
210
220
|
file.hunks.forEach((h, k) => {
|
|
211
|
-
|
|
212
|
-
console.log(` hunk ${k + 1} [${h.kind}] ${where}`);
|
|
221
|
+
console.log(` hunk ${k + 1} [${h.kind}] ${hunkAt(h)}`);
|
|
213
222
|
for (const line of h.a.lines)
|
|
214
223
|
console.log(pc.red(` - ${line}`));
|
|
224
|
+
if (h.a.noEofNewline)
|
|
225
|
+
console.log(pc.red(` ${NO_EOF_NEWLINE_MARKER}`));
|
|
215
226
|
for (const line of h.b.lines)
|
|
216
227
|
console.log(pc.green(` + ${line}`));
|
|
228
|
+
if (h.b.noEofNewline)
|
|
229
|
+
console.log(pc.green(` ${NO_EOF_NEWLINE_MARKER}`));
|
|
217
230
|
});
|
|
218
231
|
}
|
|
219
232
|
for (const file of r.diff.onlyInBase)
|
|
@@ -222,6 +235,210 @@ forge
|
|
|
222
235
|
console.log(` only in the variant: ${file}`);
|
|
223
236
|
}
|
|
224
237
|
});
|
|
238
|
+
forge
|
|
239
|
+
.command("unify")
|
|
240
|
+
.description("Resolve one variant back into its base through a reviewable plan. Writes to the Forge")
|
|
241
|
+
.argument("<type/name>", "base ingredient (rule/workflow)")
|
|
242
|
+
.requiredOption("--profile <p>", "which variant to resolve")
|
|
243
|
+
.option("--take <side>", "resolve every decision to base or variant")
|
|
244
|
+
.option("--plan <file>", "apply the decisions in this plan file")
|
|
245
|
+
.option("--save-plan <file>", "write a plan with every decision deferred to a new file outside the Forge, and stop")
|
|
246
|
+
.option("--forge <dir>", "Forge directory (instead of --workspace)")
|
|
247
|
+
.option("--workspace <dir>", "workspace whose craftar.yaml names the Forge (default: .)")
|
|
248
|
+
.option("--json", "machine-readable output", false)
|
|
249
|
+
.action(async (ref, o) => {
|
|
250
|
+
const frontEnds = [o.take, o.plan, o.savePlan].filter((v) => v !== undefined);
|
|
251
|
+
if (frontEnds.length !== 1)
|
|
252
|
+
fail("pass exactly one of --take, --plan or --save-plan");
|
|
253
|
+
if (o.take !== undefined && o.take !== "base" && o.take !== "variant")
|
|
254
|
+
fail(`--take must be "base" or "variant"`);
|
|
255
|
+
const f = await resolveForge({ forge: o.forge, workspace: o.workspace });
|
|
256
|
+
const base = f.ingredients.get(ref);
|
|
257
|
+
if (!base)
|
|
258
|
+
fail(`${ref} is not an ingredient of this Forge`);
|
|
259
|
+
const variant = [...f.ingredients.values()].find((i) => {
|
|
260
|
+
const p = profileOf(i.meta);
|
|
261
|
+
return i.meta.type === base.meta.type && i.meta.as === base.meta.name && p === o.profile;
|
|
262
|
+
});
|
|
263
|
+
if (!variant)
|
|
264
|
+
fail(`${ref} has no variant for profile ${o.profile}`);
|
|
265
|
+
// Only when about to write — --save-plan touches nothing inside the Forge, so it is exempt.
|
|
266
|
+
if (!o.savePlan) {
|
|
267
|
+
if (f.commit === null) {
|
|
268
|
+
// `gitHead` (and so `f.commit`) is also `null` for a real git repo with no commits yet —
|
|
269
|
+
// that is not "not a git repository" (Ruling 22), so tell the two apart before wording it.
|
|
270
|
+
if (await gitIsRepo(f.root)) {
|
|
271
|
+
fail(`${f.root} has no commits yet — unify writes to the Forge and needs git as the undo`);
|
|
272
|
+
}
|
|
273
|
+
fail(`${f.root} is not a git repository — unify writes to the Forge and needs git as the undo`);
|
|
274
|
+
}
|
|
275
|
+
if (await gitDirty(f.root))
|
|
276
|
+
fail(`${f.root} is not a clean git checkout — commit or stash your changes first`);
|
|
277
|
+
}
|
|
278
|
+
let loadedPlan;
|
|
279
|
+
if (o.plan) {
|
|
280
|
+
try {
|
|
281
|
+
loadedPlan = UnifyPlanSchema.parse(YAML.parse(await fs.readFile(o.plan, "utf8")));
|
|
282
|
+
}
|
|
283
|
+
catch (e) {
|
|
284
|
+
fail(`${o.plan}: ${e instanceof Error ? e.message : String(e)}`);
|
|
285
|
+
}
|
|
286
|
+
// The plan must be for this exact invocation (Ruling 23) — checked before staleness, so a
|
|
287
|
+
// right-ingredient-wrong-profile plan is named for what it is rather than misdiagnosed as
|
|
288
|
+
// "stale" (its fingerprints may well still match; they were never for this profile).
|
|
289
|
+
if (loadedPlan.base !== base.ref || loadedPlan.variant !== variant.ref || loadedPlan.profile !== o.profile) {
|
|
290
|
+
fail(`the plan is for ${loadedPlan.base} (profile ${loadedPlan.profile}), not ${ref} (profile ${o.profile})`);
|
|
291
|
+
}
|
|
292
|
+
const [baseFp, variantFp] = await Promise.all([fingerprintDir(base.dir), fingerprintDir(variant.dir)]);
|
|
293
|
+
if (loadedPlan.baseFingerprint !== baseFp)
|
|
294
|
+
fail(`the plan is stale: the base changed since it was saved`);
|
|
295
|
+
if (loadedPlan.variantFingerprint !== variantFp)
|
|
296
|
+
fail(`the plan is stale: the variant changed since it was saved`);
|
|
297
|
+
}
|
|
298
|
+
const diff = await diffIngredients(base, variant);
|
|
299
|
+
if (o.savePlan) {
|
|
300
|
+
// Ruling 30: --save-plan skips the clean-tree check because the plan lives outside the
|
|
301
|
+
// Forge — so that is enforced, not assumed, and a plan never overwrites anything. Both
|
|
302
|
+
// refusals come before any write; the comparison runs on real paths, so neither a `..`
|
|
303
|
+
// segment nor a symlink can carry the target back into the Forge.
|
|
304
|
+
const savePlanAbs = path.resolve(o.savePlan);
|
|
305
|
+
let targetReal;
|
|
306
|
+
try {
|
|
307
|
+
targetReal = await realpathOfNearest(savePlanAbs);
|
|
308
|
+
}
|
|
309
|
+
catch (e) {
|
|
310
|
+
fail(`refusing to write the plan to ${o.savePlan}: ${e instanceof Error ? e.message : String(e)}`);
|
|
311
|
+
}
|
|
312
|
+
const rootReal = await fs.realpath(path.resolve(f.root));
|
|
313
|
+
const rel = path.relative(rootReal, targetReal);
|
|
314
|
+
if (rel === "" || !(rel === ".." || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel))) {
|
|
315
|
+
fail(`refusing to write the plan to ${o.savePlan}: it resolves inside the Forge (${f.root}) — save plans outside the Forge`);
|
|
316
|
+
}
|
|
317
|
+
if (await pathTaken(savePlanAbs)) {
|
|
318
|
+
fail(`refusing to write the plan to ${o.savePlan}: the file already exists — unify never overwrites; choose a new path`);
|
|
319
|
+
}
|
|
320
|
+
const saved = await planFrom(base, variant, diff, o.profile);
|
|
321
|
+
await fs.mkdir(path.dirname(savePlanAbs), { recursive: true });
|
|
322
|
+
await fs.writeFile(savePlanAbs, YAML.stringify(saved), { flag: "wx" });
|
|
323
|
+
const deferred = saved.files.reduce((n, pf) => n + (pf.hunks ? pf.hunks.length : 1), 0);
|
|
324
|
+
if (o.json) {
|
|
325
|
+
console.log(JSON.stringify({ base: base.ref, profile: o.profile, plan: o.savePlan, unresolved: deferred }, null, 2));
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
console.log(pc.bold(`craftar forge unify ${ref} ↔ ${o.profile}`));
|
|
329
|
+
console.log(` wrote plan ${o.savePlan} — ${deferred} decision(s) deferred`);
|
|
330
|
+
}
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
let toApply;
|
|
334
|
+
if (loadedPlan) {
|
|
335
|
+
toApply = loadedPlan;
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
toApply = await planFrom(base, variant, diff, o.profile);
|
|
339
|
+
const side = o.take;
|
|
340
|
+
for (const pf of toApply.files) {
|
|
341
|
+
if (pf.hunks)
|
|
342
|
+
for (const h of pf.hunks)
|
|
343
|
+
h.take = side;
|
|
344
|
+
else
|
|
345
|
+
pf.take = side;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
const result = await applyPlan(base, variant, diff, toApply, { discardVariantMeta: o.take === "base" });
|
|
349
|
+
// Ruling 33, dry pass: every recipe and profile edit the cascade will make is checked before
|
|
350
|
+
// the first byte is written, so a refusal (an aliased reference) leaves the Forge untouched.
|
|
351
|
+
const cascadeFiles = result.resolved ? await checkRecipeCascade(f, base.ref, variant.ref) : [];
|
|
352
|
+
// Ruling 37: "git is the undo" only holds for files git actually has. The whole-repo clean
|
|
353
|
+
// check above cannot see ignored files (a Forge its enclosing repo ignores, an ignored file in
|
|
354
|
+
// a variant) nor untracked ones under `status.showUntrackedFiles=no` — so every path this run
|
|
355
|
+
// will overwrite or delete is checked on its own, before the first write.
|
|
356
|
+
const mustHold = [base.dir, ...(result.resolved ? [variant.dir, ...cascadeFiles] : [])];
|
|
357
|
+
const unheld = await gitUnheld(f.root, mustHold);
|
|
358
|
+
if (unheld.length) {
|
|
359
|
+
// Name every such path (the first few, then a count), so one run shows the whole problem.
|
|
360
|
+
const SHOWN = 10;
|
|
361
|
+
const lines = unheld.slice(0, SHOWN).map((u) => ` ${u.path} is not held by git (${u.reason})`);
|
|
362
|
+
if (unheld.length > SHOWN)
|
|
363
|
+
lines.push(` … and ${unheld.length - SHOWN} more`);
|
|
364
|
+
fail(`unify can only change files git can restore — ${unheld.length} path(s) under ${f.root} are not:\n${lines.join("\n")}`);
|
|
365
|
+
}
|
|
366
|
+
// Order: merged files, then the recipe cascade, then removal of the variant directory
|
|
367
|
+
// (Ruling 21) — a late failure leaves the variant in place, never a recipe naming a removed ingredient.
|
|
368
|
+
const journal = [];
|
|
369
|
+
let touched = [];
|
|
370
|
+
let cascade = { rewritten: [], identicalToSibling: [] };
|
|
371
|
+
let variantRemoved = null;
|
|
372
|
+
try {
|
|
373
|
+
touched = await writeUnified(base, result, journal);
|
|
374
|
+
if (result.resolved) {
|
|
375
|
+
cascade = await rewriteRecipes(f, base.ref, variant.ref, o.profile, journal);
|
|
376
|
+
journal.push({ abs: variant.dir, created: false });
|
|
377
|
+
await fs.rm(variant.dir, { recursive: true, force: true });
|
|
378
|
+
variantRemoved = variant.ref;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
catch (e) {
|
|
382
|
+
// What the dry pass cannot foresee (an I/O error, a file locked on Windows) fails here, after
|
|
383
|
+
// writing began: name what was touched and how git undoes it, and still exit 1.
|
|
384
|
+
throw new Error(lateFailure(e, f.root, journal), { cause: e });
|
|
385
|
+
}
|
|
386
|
+
// Ruling 28: a metadata difference leaves the variant in place; say which fields and why.
|
|
387
|
+
const warnings = [];
|
|
388
|
+
if (result.metaDiffers.length) {
|
|
389
|
+
warnings.push(`ingredient.yaml differs in ${result.metaDiffers.join(", ")} — unify cannot merge ingredient.yaml, so ${variant.ref} stays; ` +
|
|
390
|
+
`resolve it by hand, or use --take base to discard the variant`);
|
|
391
|
+
}
|
|
392
|
+
// Ruling 42: a suffixed recipe left identical to its sibling is reported, never deleted — a
|
|
393
|
+
// workspace's recipes.add or an extends chain may name the sibling, and removing the suffixed
|
|
394
|
+
// one would shift recipe order or param precedence there.
|
|
395
|
+
const suffix = `--${o.profile}`;
|
|
396
|
+
for (const rn of cascade.identicalToSibling) {
|
|
397
|
+
const sibling = rn.slice(0, -suffix.length);
|
|
398
|
+
warnings.push(`recipe ${rn} is now identical to ${sibling} — it can be removed by hand after repointing the profiles, extends and ` +
|
|
399
|
+
`workspace recipes lists that name it; unify does not, because a workspace or an extends chain may also name ` +
|
|
400
|
+
`${sibling} and the recipe order or param precedence would change`);
|
|
401
|
+
}
|
|
402
|
+
// Ruling 38: `resolve()` matches overrides.ingredients.disable by ref, so once the variant ref
|
|
403
|
+
// is gone a workspace that disabled it gets the base back, enabled, with no error.
|
|
404
|
+
if (variantRemoved) {
|
|
405
|
+
warnings.push(`${variant.ref} was removed — a workspace that disables it in overrides.ingredients.disable (craftar.yaml or craftar.local.yaml) ` +
|
|
406
|
+
`must now name ${base.ref}, or the base comes back enabled; unify cannot reach workspaces`);
|
|
407
|
+
}
|
|
408
|
+
if (o.json) {
|
|
409
|
+
return console.log(JSON.stringify({
|
|
410
|
+
base: base.ref,
|
|
411
|
+
profile: o.profile,
|
|
412
|
+
resolved: result.resolved,
|
|
413
|
+
written: Object.keys(result.write).sort(),
|
|
414
|
+
removed: [...result.remove].sort(),
|
|
415
|
+
unresolved: result.unresolved,
|
|
416
|
+
variantRemoved,
|
|
417
|
+
// Ruling 35: every key is always present, `[]` when empty — a stable shape, so no
|
|
418
|
+
// consumer has to test whether a key exists.
|
|
419
|
+
recipes: {
|
|
420
|
+
rewritten: cascade.rewritten,
|
|
421
|
+
identicalToSibling: cascade.identicalToSibling,
|
|
422
|
+
},
|
|
423
|
+
metaDiffers: result.metaDiffers,
|
|
424
|
+
warnings,
|
|
425
|
+
}, null, 2));
|
|
426
|
+
}
|
|
427
|
+
console.log(pc.bold(`craftar forge unify ${ref} ↔ ${o.profile}`));
|
|
428
|
+
for (const p of touched)
|
|
429
|
+
console.log(` ${result.write[p] !== undefined ? pc.green("~") : pc.magenta("-")} ${p}`);
|
|
430
|
+
console.log(` resolved ${result.resolved ? pc.green("yes") : pc.yellow("no")} · unresolved ${result.unresolved}`);
|
|
431
|
+
if (variantRemoved)
|
|
432
|
+
console.log(` ${pc.magenta("removed variant")} ${variantRemoved}`);
|
|
433
|
+
if (cascade.rewritten.length)
|
|
434
|
+
console.log(` recipes rewritten: ${cascade.rewritten.join(", ")}`);
|
|
435
|
+
if (cascade.identicalToSibling.length) {
|
|
436
|
+
console.log(` recipes now identical to a sibling: ${cascade.identicalToSibling.join(", ")}`);
|
|
437
|
+
}
|
|
438
|
+
for (const w of warnings)
|
|
439
|
+
console.log(` ${pc.yellow("warn")} ${w}`);
|
|
440
|
+
console.log(` next: run \`craftar status --workspace <dir>\` in a workspace on profile ${o.profile} to see what moved`);
|
|
441
|
+
});
|
|
225
442
|
program.parseAsync().catch((e) => fail(e instanceof Error ? e.message : String(e)));
|
|
226
443
|
/* ---------------------------------------------------------------- helpers */
|
|
227
444
|
function fail(msg) {
|
|
@@ -283,10 +500,84 @@ async function readText(p) {
|
|
|
283
500
|
return null;
|
|
284
501
|
}
|
|
285
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* The real path of `abs`, resolved through its nearest existing ancestor: `fs.realpath` needs the
|
|
505
|
+
* path to exist, and a plan target usually does not yet — so the part that exists is resolved
|
|
506
|
+
* (symlinks and all) and the part that does not is appended as written.
|
|
507
|
+
*
|
|
508
|
+
* It walks up only past a component that truly does not exist (`lstat` says ENOENT/ENOTDIR). A
|
|
509
|
+
* component that exists but will not resolve — a dangling symlink, a symlink loop, a permission
|
|
510
|
+
* error — throws instead: resolving the rest lexically would let a link that points into the Forge
|
|
511
|
+
* pass the containment check, so unify fails closed rather than guess where the target lands.
|
|
512
|
+
*/
|
|
513
|
+
async function realpathOfNearest(abs) {
|
|
514
|
+
let head = abs;
|
|
515
|
+
const tail = [];
|
|
516
|
+
for (;;) {
|
|
517
|
+
try {
|
|
518
|
+
return path.join(await fs.realpath(head), ...tail);
|
|
519
|
+
}
|
|
520
|
+
catch (realpathError) {
|
|
521
|
+
try {
|
|
522
|
+
await fs.lstat(head);
|
|
523
|
+
}
|
|
524
|
+
catch (lstatError) {
|
|
525
|
+
const code = lstatError.code;
|
|
526
|
+
if (code === "ENOENT" || code === "ENOTDIR") {
|
|
527
|
+
const parent = path.dirname(head);
|
|
528
|
+
if (parent === head)
|
|
529
|
+
return abs;
|
|
530
|
+
tail.unshift(path.basename(head));
|
|
531
|
+
head = parent;
|
|
532
|
+
continue;
|
|
533
|
+
}
|
|
534
|
+
throw cannotResolve(head, lstatError);
|
|
535
|
+
}
|
|
536
|
+
throw cannotResolve(head, realpathError);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
function cannotResolve(p, e) {
|
|
541
|
+
const code = e.code ?? (e instanceof Error ? e.message : String(e));
|
|
542
|
+
return new Error(`${p} exists but cannot be resolved (${code}) — unify cannot prove the target lies outside the Forge`);
|
|
543
|
+
}
|
|
544
|
+
/** Whether anything — a file, a directory, even a dangling symlink — already sits at `p`. */
|
|
545
|
+
async function pathTaken(p) {
|
|
546
|
+
try {
|
|
547
|
+
await fs.lstat(p);
|
|
548
|
+
return true;
|
|
549
|
+
}
|
|
550
|
+
catch {
|
|
551
|
+
return false;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* The message for a `forge unify` failure after writing began (Ruling 33): the original error, the
|
|
556
|
+
* Forge-relative paths already touched, and the git commands that undo them — `checkout` for what
|
|
557
|
+
* git tracks, `clean` for files unify created (checkout refuses a path git does not know).
|
|
558
|
+
*/
|
|
559
|
+
function lateFailure(e, root, journal) {
|
|
560
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
561
|
+
if (journal.length === 0)
|
|
562
|
+
return msg;
|
|
563
|
+
const rel = (abs) => path.relative(root, abs).split(path.sep).join("/");
|
|
564
|
+
const quote = (p) => (/^[\w./-]+$/.test(p) ? p : `"${p}"`);
|
|
565
|
+
const restore = [...new Set(journal.filter((j) => !j.created).map((j) => rel(j.abs)))];
|
|
566
|
+
const created = [...new Set(journal.filter((j) => j.created).map((j) => rel(j.abs)))];
|
|
567
|
+
const lines = [msg, `unify had already started changing the Forge (${root}) when this failed:`];
|
|
568
|
+
for (const p of [...restore, ...created])
|
|
569
|
+
lines.push(` ${p}`);
|
|
570
|
+
lines.push("recover with:");
|
|
571
|
+
if (restore.length)
|
|
572
|
+
lines.push(` git -C ${quote(root)} checkout -- ${restore.map(quote).join(" ")}`);
|
|
573
|
+
if (created.length)
|
|
574
|
+
lines.push(` git -C ${quote(root)} clean -f -- ${created.map(quote).join(" ")}`);
|
|
575
|
+
return lines.join("\n");
|
|
576
|
+
}
|
|
286
577
|
function describeDistance(d) {
|
|
287
578
|
if (d.identicalAfterNormalization)
|
|
288
579
|
return "identical after normalization";
|
|
289
|
-
if (d.
|
|
580
|
+
if (d.sameBodyDifferentMeta)
|
|
290
581
|
return "meta only";
|
|
291
582
|
return `${d.lines} line${d.lines === 1 ? "" : "s"}, ${d.hunks} hunk${d.hunks === 1 ? "" : "s"}`;
|
|
292
583
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|