@caretcms/caretize 0.1.0 → 0.1.2
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 +41 -5
- package/dist/bind-collection.js +1 -1
- package/dist/bind-collection.js.map +1 -1
- package/dist/bind-route.d.ts.map +1 -1
- package/dist/bind-route.js +9 -4
- package/dist/bind-route.js.map +1 -1
- package/dist/cli-args.d.ts +16 -1
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +39 -3
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +390 -27
- package/dist/cli.js.map +1 -1
- package/dist/detect.d.ts +17 -1
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +61 -22
- package/dist/detect.js.map +1 -1
- package/dist/diff.d.ts +20 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +75 -0
- package/dist/diff.js.map +1 -0
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +8 -2
- package/dist/discover.js.map +1 -1
- package/dist/escalation.d.ts +47 -0
- package/dist/escalation.d.ts.map +1 -0
- package/dist/escalation.js +112 -0
- package/dist/escalation.js.map +1 -0
- package/dist/frontmatter.d.ts +41 -4
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +122 -12
- package/dist/frontmatter.js.map +1 -1
- package/dist/import-wrap.d.ts +30 -0
- package/dist/import-wrap.d.ts.map +1 -1
- package/dist/import-wrap.js +101 -7
- package/dist/import-wrap.js.map +1 -1
- package/dist/init.d.ts +70 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +198 -0
- package/dist/init.js.map +1 -0
- package/dist/keys.d.ts +55 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +84 -0
- package/dist/keys.js.map +1 -0
- package/dist/output.d.ts +63 -10
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +190 -22
- package/dist/output.js.map +1 -1
- package/dist/plan.d.ts +7 -0
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +17 -4
- package/dist/plan.js.map +1 -1
- package/dist/preflight.d.ts +2 -0
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +18 -3
- package/dist/preflight.js.map +1 -1
- package/dist/run.js +6 -4
- package/dist/run.js.map +1 -1
- package/dist/select-policy.d.ts +38 -0
- package/dist/select-policy.d.ts.map +1 -0
- package/dist/select-policy.js +44 -0
- package/dist/select-policy.js.map +1 -0
- package/dist/tiers.d.ts +42 -0
- package/dist/tiers.d.ts.map +1 -0
- package/dist/tiers.js +67 -0
- package/dist/tiers.js.map +1 -0
- package/dist/wrap.d.ts +9 -4
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +3 -2
- package/dist/wrap.js.map +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -8,24 +8,32 @@
|
|
|
8
8
|
* formatting in ./output — both pure and unit-tested.
|
|
9
9
|
*/
|
|
10
10
|
import { createInterface } from "node:readline";
|
|
11
|
-
import { writeFileSync } from "node:fs";
|
|
12
|
-
import {
|
|
11
|
+
import { writeFileSync, readFileSync, existsSync, readdirSync } from "node:fs";
|
|
12
|
+
import { execFileSync } from "node:child_process";
|
|
13
|
+
import { randomBytes } from "node:crypto";
|
|
14
|
+
import { relative, resolve } from "node:path";
|
|
13
15
|
import { parseAstro } from "./parse.js";
|
|
14
16
|
import { discoverAstroFiles } from "./discover.js";
|
|
15
17
|
import { preflight } from "./preflight.js";
|
|
16
18
|
import { planFile } from "./plan.js";
|
|
17
19
|
import { prepareFileFull, commitRun, readSource } from "./run.js";
|
|
18
20
|
import { detectWrapTargetsSafe } from "./wrap.js";
|
|
19
|
-
import { detectImportWrapTargetsSafe } from "./import-wrap.js";
|
|
21
|
+
import { detectImportWrapTargetsSafe, detectNamedImportWrapTargetsSafe, } from "./import-wrap.js";
|
|
20
22
|
import { detectPropWrapTargets } from "./props.js";
|
|
21
23
|
import { detectPropHoistTargets } from "./prop-hoist.js";
|
|
22
24
|
import { detectCollectionBindTargets } from "./bind-collection.js";
|
|
23
25
|
import { detectRouteBindTargets } from "./bind-route.js";
|
|
24
|
-
import { restoreLatest } from "./backup.js";
|
|
26
|
+
import { restoreLatest, writeBackup } from "./backup.js";
|
|
27
|
+
import { freshConfig, planConfigWiring, renderEnvAdditions } from "./init.js";
|
|
28
|
+
import { lineDiff, formatHunks } from "./diff.js";
|
|
25
29
|
import { buildReport } from "./report.js";
|
|
30
|
+
import { applyKeyRegistry } from "./keys.js";
|
|
26
31
|
import { isValidField } from "./name.js";
|
|
27
32
|
import { parseArgs, CliUsageError, HELP } from "./cli-args.js";
|
|
28
|
-
import { tagLine, formatScanSummary, formatPlan, formatSummary, formatHints } from "./output.js";
|
|
33
|
+
import { tagLine, formatScanSummary, formatPlan, formatSummary, formatHints, formatFailures, formatEscalationOffer, formatNextStep, formatDiff } from "./output.js";
|
|
34
|
+
import { selectTiers } from "./select-policy.js";
|
|
35
|
+
import { tierById } from "./tiers.js";
|
|
36
|
+
import { escalationCounts, offerableCounts, offeredTiers, recommendedBundle, totalOffer, deltaTags, mergeTagMaps, parseAnswer, parseToggle, } from "./escalation.js";
|
|
29
37
|
const VERSION = "0.1.0";
|
|
30
38
|
function fail(msg) {
|
|
31
39
|
process.stderr.write(`caretize: ${msg}\n`);
|
|
@@ -34,6 +42,14 @@ function fail(msg) {
|
|
|
34
42
|
function ask(rl, q) {
|
|
35
43
|
return new Promise((res) => rl.question(q, (ans) => res(ans.trim())));
|
|
36
44
|
}
|
|
45
|
+
async function confirmYes(rl, args, question) {
|
|
46
|
+
if (args.yes) {
|
|
47
|
+
process.stdout.write(`${question} yes\n`);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
const ans = (await ask(rl, question)) || "y";
|
|
51
|
+
return ans.toLowerCase() !== "n";
|
|
52
|
+
}
|
|
37
53
|
/** Prompt for a replacement field name on one tag. Returns the tag to keep: the
|
|
38
54
|
* edited tag for a valid name, the original when the prompt is left blank, or
|
|
39
55
|
* null when a non-empty name is invalid (the candidate is dropped). */
|
|
@@ -45,10 +61,43 @@ async function editField(rl, t) {
|
|
|
45
61
|
process.stdout.write(field ? " invalid field name; skipped\n" : " kept original\n");
|
|
46
62
|
return field ? null : t;
|
|
47
63
|
}
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
64
|
+
/**
|
|
65
|
+
* File-level tag review (the default unit). High-confidence content tags are
|
|
66
|
+
* safe by the engine's own definition, so interrogating each one is ceremony —
|
|
67
|
+
* show the file's tags as a batch and accept them in one keystroke. Drop to the
|
|
68
|
+
* per-candidate loop only when the user asks ([r]eview each), where edits live.
|
|
69
|
+
*/
|
|
51
70
|
async function reviewFileTags(rl, plan, acceptAll) {
|
|
71
|
+
if (acceptAll)
|
|
72
|
+
return { take: [...plan.tags], skipFile: false, quit: false, acceptAll: true };
|
|
73
|
+
process.stdout.write(`\n${plan.relPath}\n`);
|
|
74
|
+
for (const t of plan.tags) {
|
|
75
|
+
process.stdout.write(` ${tagLine(t)} → data-caret="${t.binding}" (${t.confidence})\n`);
|
|
76
|
+
}
|
|
77
|
+
for (;;) {
|
|
78
|
+
const ans = (await ask(rl, ` accept all ${plan.tags.length} tag(s)? [Y]es · [r]eview each · [s]kip file · [A]ll files · [q]uit > `)) || "y";
|
|
79
|
+
if (ans === "q")
|
|
80
|
+
return { take: [], skipFile: false, quit: true, acceptAll };
|
|
81
|
+
if (ans === "s" || ans === "S")
|
|
82
|
+
return { take: [], skipFile: true, quit: false, acceptAll };
|
|
83
|
+
if (ans === "A")
|
|
84
|
+
return { take: [...plan.tags], skipFile: false, quit: false, acceptAll: true };
|
|
85
|
+
if (ans === "r")
|
|
86
|
+
return reviewEachTag(rl, plan, acceptAll);
|
|
87
|
+
// Only y/Y/<enter> accept this file — NOT lowercase "a", which would collide
|
|
88
|
+
// with "[A]ll files" in the same prompt (a fat-fingered A must never silently
|
|
89
|
+
// mean "this file only").
|
|
90
|
+
if (ans === "y" || ans === "Y") {
|
|
91
|
+
return { take: [...plan.tags], skipFile: false, quit: false, acceptAll };
|
|
92
|
+
}
|
|
93
|
+
process.stdout.write(" unrecognized — Y(es) r(eview each) s(kip file) A(ll files) q(uit)\n");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** Per-candidate prompt for one file (entered via [r]eview each). Returns the
|
|
97
|
+
* accepted tags plus control signals: `quit` aborts the whole run, `skipFile`
|
|
98
|
+
* skips this file's wrap/hoist prompts, and `acceptAll` carries the sticky
|
|
99
|
+
* [A]ll choice on to later files. */
|
|
100
|
+
async function reviewEachTag(rl, plan, acceptAll) {
|
|
52
101
|
const take = [];
|
|
53
102
|
let skipFile = false;
|
|
54
103
|
for (let i = 0; i < plan.tags.length && !skipFile; i++) {
|
|
@@ -173,7 +222,8 @@ async function review(plans, wrapsByFile, hoistsByFile, bindsByFile) {
|
|
|
173
222
|
* field would land in a native attribute
|
|
174
223
|
* - detectPropWrapTargets: literals passed to a component whose child provably
|
|
175
224
|
* renders them as text (Tier-2, cross-file)
|
|
176
|
-
* - detectImportWrapTargetsSafe: arrays
|
|
225
|
+
* - detectImportWrapTargetsSafe: arrays from a DEFAULT data import (Tier-3)
|
|
226
|
+
* - detectNamedImportWrapTargetsSafe: arrays from a NAMED import (Tier-3, named)
|
|
177
227
|
* - detectPropHoistTargets: static component-prop strings (unless --no-props)
|
|
178
228
|
*/
|
|
179
229
|
async function analyzeFiles(root, files, planOpts, readFileSafe, noProps, bindCollections, bindRoutes) {
|
|
@@ -188,7 +238,10 @@ async function analyzeFiles(root, files, planOpts, readFileSafe, noProps, bindCo
|
|
|
188
238
|
plans.push(plan);
|
|
189
239
|
const loops = await detectWrapTargetsSafe(src, rel, ast);
|
|
190
240
|
const props = await detectPropWrapTargets(src, rel, readFileSafe, ast);
|
|
191
|
-
const imports =
|
|
241
|
+
const imports = [
|
|
242
|
+
...(await detectImportWrapTargetsSafe(src, rel, ast)),
|
|
243
|
+
...(await detectNamedImportWrapTargetsSafe(src, rel, ast)),
|
|
244
|
+
];
|
|
192
245
|
const byName = new Map();
|
|
193
246
|
for (const t of [...loops, ...props, ...imports])
|
|
194
247
|
byName.set(t.varName, t);
|
|
@@ -212,18 +265,33 @@ async function analyzeFiles(root, files, planOpts, readFileSafe, noProps, bindCo
|
|
|
212
265
|
if (hoists.length)
|
|
213
266
|
hoistsByFile.set(rel, hoists);
|
|
214
267
|
}
|
|
268
|
+
// Cross-tier key registry: existing data-caret/editable() keys are
|
|
269
|
+
// pre-claimed; tags claim first (content-derived, shown in review), then
|
|
270
|
+
// wraps, then hoists. A collision takes a `_2` field suffix — without
|
|
271
|
+
// this, one run could mint the same storage key twice with two value
|
|
272
|
+
// shapes (a tag's string vs a wrap's array), or re-mint a key a prior
|
|
273
|
+
// run's editable() already owns.
|
|
274
|
+
applyKeyRegistry(src, plan.scope, plan.tags, wrapsByFile.get(rel) ?? [], hoistsByFile.get(rel) ?? []);
|
|
215
275
|
}
|
|
216
276
|
return { plans, wrapsByFile, hoistsByFile, bindsByFile };
|
|
217
277
|
}
|
|
218
|
-
/**
|
|
219
|
-
*
|
|
278
|
+
/** Select every default-tier candidate (no per-item review). The safe tier is
|
|
279
|
+
* lossless + reversible, so this is the optimistic default; the escalation
|
|
280
|
+
* prompt still gates the risky tiers, and --restore undoes everything. */
|
|
281
|
+
function selectAll(a) {
|
|
282
|
+
const allTags = new Map(a.plans.map((p) => [p.relPath, p.tags]));
|
|
283
|
+
return { tags: allTags, wraps: a.wrapsByFile, hoists: a.hoistsByFile, binds: a.bindsByFile, quit: false };
|
|
284
|
+
}
|
|
285
|
+
/** Decide what to apply: everything (dry-run / -y / --diff / optimistic default),
|
|
286
|
+
* the opt-in per-file review (--review), or nothing (report-only). Errors out on
|
|
287
|
+
* a non-interactive run with no directive. */
|
|
220
288
|
async function selectChanges(args, a) {
|
|
221
|
-
if (args.dryRun || args.yes)
|
|
222
|
-
|
|
223
|
-
return { tags: allTags, wraps: a.wrapsByFile, hoists: a.hoistsByFile, binds: a.bindsByFile, quit: false };
|
|
224
|
-
}
|
|
289
|
+
if (args.dryRun || args.yes || args.diff)
|
|
290
|
+
return selectAll(a);
|
|
225
291
|
if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
226
|
-
|
|
292
|
+
// Optimistic by default: apply the safe tier, then show a diff you can undo.
|
|
293
|
+
// --review opts back into approving each change before it's written.
|
|
294
|
+
return args.review ? review(a.plans, a.wrapsByFile, a.hoistsByFile, a.bindsByFile) : selectAll(a);
|
|
227
295
|
}
|
|
228
296
|
if (args.report)
|
|
229
297
|
return { tags: new Map(), wraps: new Map(), hoists: new Map(), binds: new Map(), quit: false };
|
|
@@ -263,6 +331,99 @@ function printCommit(written, hadBackups, prepared, sel, plans) {
|
|
|
263
331
|
const flagged = plans.reduce((n, p) => n + p.flags.length, 0);
|
|
264
332
|
process.stdout.write(formatSummary(written.length, changes, wrapped, hoisted, flagged, hadBackups, bound));
|
|
265
333
|
}
|
|
334
|
+
/** Ask the top-level [Y/n/customize] choice (re-prompting on garbage) and return
|
|
335
|
+
* the tier ids the user newly accepts. `counts` is already offerable (tiers
|
|
336
|
+
* already on have been zeroed), so this only ever offers genuinely-new tiers. */
|
|
337
|
+
async function askEscalationAnswer(rl, counts) {
|
|
338
|
+
const bundle = recommendedBundle(counts);
|
|
339
|
+
const bundleLabels = bundle.map((id) => tierById(id).label).join(", ");
|
|
340
|
+
let top = parseAnswer(await ask(rl, `\n Include ${bundleLabels}? [Y/n/customize] `));
|
|
341
|
+
while (top === "unknown") {
|
|
342
|
+
process.stdout.write(" please answer y, n, or c(ustomize)\n");
|
|
343
|
+
top = parseAnswer(await ask(rl, " [Y/n/customize] "));
|
|
344
|
+
}
|
|
345
|
+
if (top === "no")
|
|
346
|
+
return [];
|
|
347
|
+
if (top === "yes")
|
|
348
|
+
return bundle;
|
|
349
|
+
// customize: ask per offered tier; blank keeps the tier's recommendation.
|
|
350
|
+
const picked = [];
|
|
351
|
+
for (const id of offeredTiers(counts)) {
|
|
352
|
+
const t = tierById(id);
|
|
353
|
+
const def = t.recommended ? "Y/n" : "y/N";
|
|
354
|
+
const on = parseToggle(await ask(rl, ` include ${t.label} (${counts[id]})? [${def}] `), t.recommended);
|
|
355
|
+
if (on)
|
|
356
|
+
picked.push(id);
|
|
357
|
+
}
|
|
358
|
+
return picked;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* The in-flow escalation step (interactive only). After the conservative review,
|
|
362
|
+
* offer the opt-in tiers as ONE grouped prompt; on accept, re-analyze gated to
|
|
363
|
+
* exactly the chosen tiers and merge the escalation delta into the reviewed
|
|
364
|
+
* selection.
|
|
365
|
+
*
|
|
366
|
+
* The detection here is the "detect-always" the prompt needs, but it lives only
|
|
367
|
+
* in this interactive branch — it never widens what `-y` / `--dry-run` apply
|
|
368
|
+
* (those skip this path). The re-analysis is gated to the user's chosen tiers,
|
|
369
|
+
* so the safety/regression contract from Phase A holds. Returns the (possibly
|
|
370
|
+
* augmented) selection, the plans to summarize, and the tiers actually applied.
|
|
371
|
+
*/
|
|
372
|
+
async function offerEscalation(ctx, active, analysis, sel) {
|
|
373
|
+
// No new tiers accepted → keep the Phase A set (which the conservative pass
|
|
374
|
+
// already applied + the user reviewed). Returning `active`, not an empty set,
|
|
375
|
+
// keeps the closing hint honest when individual flags were combined with the
|
|
376
|
+
// interactive run.
|
|
377
|
+
const unchanged = { sel, plans: analysis.plans, tiers: active };
|
|
378
|
+
// Detect-for-offer: collection + route bind targets (cheap, side-effect-free).
|
|
379
|
+
// rich/lowconf counts come from the conservative analysis (rich-eligible skips
|
|
380
|
+
// + belowConfidence), so no entangled rich pass is needed just to count. Tiers
|
|
381
|
+
// already on (Phase A flags / --all) are zeroed — never offer what's applied.
|
|
382
|
+
const offer = await analyzeFiles(ctx.root, ctx.files, ctx.basePlanOpts, ctx.readFileSafe, ctx.noProps, true, true);
|
|
383
|
+
const counts = offerableCounts(escalationCounts(analysis.plans, offer.bindsByFile), active);
|
|
384
|
+
if (totalOffer(counts) === 0)
|
|
385
|
+
return unchanged;
|
|
386
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
387
|
+
rl.on("SIGINT", () => { process.stdout.write("\naborted — nothing written\n"); process.exit(130); });
|
|
388
|
+
let chosenNew;
|
|
389
|
+
try {
|
|
390
|
+
process.stdout.write(formatEscalationOffer(counts));
|
|
391
|
+
process.stdout.write(" ⚠ = per-row binding that assumes each entry's .id is its identity\n");
|
|
392
|
+
chosenNew = await askEscalationAnswer(rl, counts);
|
|
393
|
+
}
|
|
394
|
+
finally {
|
|
395
|
+
rl.close();
|
|
396
|
+
}
|
|
397
|
+
if (chosenNew.length === 0)
|
|
398
|
+
return unchanged;
|
|
399
|
+
// Apply the union of the already-active tiers and the newly accepted ones, so
|
|
400
|
+
// a Phase A flag is never silently dropped by the re-analysis.
|
|
401
|
+
const effective = new Set([...active, ...chosenNew]);
|
|
402
|
+
// Re-analyze gated to exactly the effective tiers — one pass, so keys are
|
|
403
|
+
// assigned coherently and the rich/low entanglement is correct (a rich host
|
|
404
|
+
// suppresses its inline children rather than double-tagging them).
|
|
405
|
+
const finalPlanOpts = {
|
|
406
|
+
...ctx.basePlanOpts,
|
|
407
|
+
rich: effective.has("rich") || effective.has("rich-class"),
|
|
408
|
+
richClass: effective.has("rich-class"),
|
|
409
|
+
minConfidence: effective.has("lowconf") ? "low" : ctx.minConfidenceBase,
|
|
410
|
+
};
|
|
411
|
+
const final = await analyzeFiles(ctx.root, ctx.files, finalPlanOpts, ctx.readFileSafe, ctx.noProps, effective.has("collections"), effective.has("routes"));
|
|
412
|
+
// Merge the escalation-only tags (rich + below-floor) into the reviewed set,
|
|
413
|
+
// then re-key each touched file with the reviewed defaults claimed FIRST, so a
|
|
414
|
+
// field name a default and an escalation tag both derive can't mint a duplicate
|
|
415
|
+
// storage key (the run.ts gates accept duplicate keys — they're valid HTML).
|
|
416
|
+
const delta = deltaTags(analysis.plans, final.plans);
|
|
417
|
+
const mergedTags = mergeTagMaps(sel.tags, delta);
|
|
418
|
+
const scopeByPath = new Map(final.plans.map((p) => [p.relPath, p.scope]));
|
|
419
|
+
for (const rel of delta.keys()) {
|
|
420
|
+
applyKeyRegistry(readSource(ctx.root, rel), scopeByPath.get(rel), mergedTags.get(rel) ?? [], sel.wraps.get(rel) ?? [], sel.hoists.get(rel) ?? []);
|
|
421
|
+
}
|
|
422
|
+
const merged = {
|
|
423
|
+
tags: mergedTags, wraps: sel.wraps, hoists: sel.hoists, binds: final.bindsByFile, quit: false,
|
|
424
|
+
};
|
|
425
|
+
return { sel: merged, plans: final.plans, tiers: effective };
|
|
426
|
+
}
|
|
266
427
|
/** Restore the most recent backup, reporting how many files came back. */
|
|
267
428
|
function runRestore(root) {
|
|
268
429
|
const restored = restoreLatest(root);
|
|
@@ -270,6 +431,138 @@ function runRestore(root) {
|
|
|
270
431
|
? `✓ restored ${restored.length} file(s):\n${restored.map((f) => ` ${f}`).join("\n")}\n`
|
|
271
432
|
: "no backups found.\n");
|
|
272
433
|
}
|
|
434
|
+
/** Indent a multi-line block for display under a prompt. */
|
|
435
|
+
function indent(text) {
|
|
436
|
+
return text.replace(/\n/g, "\n ").replace(/^/, " ").replace(/\s+$/, "\n");
|
|
437
|
+
}
|
|
438
|
+
/** The astro.config filename in the project root, or null. */
|
|
439
|
+
function findConfigName(root) {
|
|
440
|
+
try {
|
|
441
|
+
return readdirSync(root).find((f) => /^astro\.config\.(m?[jt]s|cjs)$/.test(f)) ?? null;
|
|
442
|
+
}
|
|
443
|
+
catch {
|
|
444
|
+
return null;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* `caretize init` — close the gap preflight only warns about: get CaretCMS
|
|
449
|
+
* actually wired up so tagging makes content editable. Installs the deps, edits
|
|
450
|
+
* (or creates) astro.config, and scaffolds .env. Every config/.env write is
|
|
451
|
+
* backed up to .caret/.caretize-bak/ first; an existing config is only edited
|
|
452
|
+
* via verified pure insertions, falling back to a paste-me snippet when its
|
|
453
|
+
* shape isn't safe to touch.
|
|
454
|
+
*/
|
|
455
|
+
async function runInit(root, args) {
|
|
456
|
+
const pf = preflight(root);
|
|
457
|
+
if (!pf.isAstroProject) {
|
|
458
|
+
for (const e of pf.errors)
|
|
459
|
+
process.stderr.write(`✗ ${e}\n`);
|
|
460
|
+
process.exit(1);
|
|
461
|
+
}
|
|
462
|
+
process.stdout.write("caretize init · wiring CaretCMS into this project\n");
|
|
463
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
464
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
465
|
+
rl.on("SIGINT", () => { process.stdout.write("\naborted\n"); process.exit(130); });
|
|
466
|
+
const configName = findConfigName(root);
|
|
467
|
+
const configSrc = configName ? readFileSync(resolve(root, configName), "utf8") : null;
|
|
468
|
+
const hasAdapterKey = configSrc ? /\badapter\s*:/.test(configSrc) : false;
|
|
469
|
+
try {
|
|
470
|
+
// 1) Dependencies — static Astro projects use static delivery by default, so
|
|
471
|
+
// they only need @caretcms/core. Server projects keep the SSR adapter path.
|
|
472
|
+
const pkgPath = resolve(root, "package.json");
|
|
473
|
+
const pkg = existsSync(pkgPath)
|
|
474
|
+
? JSON.parse(readFileSync(pkgPath, "utf8"))
|
|
475
|
+
: {};
|
|
476
|
+
const deps = {
|
|
477
|
+
...pkg.dependencies,
|
|
478
|
+
...pkg.devDependencies,
|
|
479
|
+
};
|
|
480
|
+
const mode = pf.outputMode === "server" ? "server" : "static";
|
|
481
|
+
const missingDeps = [];
|
|
482
|
+
if (!("@caretcms/core" in deps))
|
|
483
|
+
missingDeps.push("@caretcms/core");
|
|
484
|
+
if (mode === "server" && !hasAdapterKey && !("@astrojs/node" in deps)) {
|
|
485
|
+
missingDeps.push("@astrojs/node");
|
|
486
|
+
}
|
|
487
|
+
if (missingDeps.length) {
|
|
488
|
+
if (await confirmYes(rl, args, `\nInstall ${missingDeps.join(", ")}? [Y/n] `)) {
|
|
489
|
+
process.stdout.write(` npm install ${missingDeps.join(" ")}\n`);
|
|
490
|
+
execFileSync("npm", ["install", ...missingDeps], { cwd: root, stdio: "inherit" });
|
|
491
|
+
process.stdout.write("✓ installed\n");
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
process.stdout.write(` skipped — run later: npm install ${missingDeps.join(" ")}\n`);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
process.stdout.write("\n✓ dependencies present\n");
|
|
499
|
+
}
|
|
500
|
+
// 2) astro.config — create when absent, else wire in the missing pieces.
|
|
501
|
+
const needs = {
|
|
502
|
+
caret: !pf.caretWired,
|
|
503
|
+
adapter: mode === "server" && !hasAdapterKey,
|
|
504
|
+
output: mode === "server" && pf.outputMode !== "server",
|
|
505
|
+
staticDelivery: mode === "static" && !pf.staticDeliveryConfigured,
|
|
506
|
+
};
|
|
507
|
+
if (!configSrc) {
|
|
508
|
+
process.stdout.write("\nNo astro.config found — proposed astro.config.mjs:\n\n");
|
|
509
|
+
process.stdout.write(indent(freshConfig(mode)));
|
|
510
|
+
if (await confirmYes(rl, args, " write it? [Y/n] ")) {
|
|
511
|
+
writeFileSync(resolve(root, "astro.config.mjs"), freshConfig(mode), "utf8");
|
|
512
|
+
process.stdout.write("✓ wrote astro.config.mjs\n");
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
process.stdout.write(" skipped config\n");
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
else if (!needs.caret && !needs.adapter && !needs.output && !needs.staticDelivery) {
|
|
519
|
+
process.stdout.write(mode === "static"
|
|
520
|
+
? `\n✓ ${configName} already wired (caret + static delivery)\n`
|
|
521
|
+
: `\n✓ ${configName} already wired (caret + adapter + output: server)\n`);
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
const plan = planConfigWiring(configSrc, needs);
|
|
525
|
+
if (!plan.ok || plan.inserted.length === 0) {
|
|
526
|
+
process.stdout.write(`\n⚠ couldn't safely edit ${configName} — ensure it includes:\n\n`);
|
|
527
|
+
process.stdout.write(indent(freshConfig(mode)));
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
process.stdout.write(`\nProposed edit to ${configName}:\n\n`);
|
|
531
|
+
process.stdout.write(formatHunks(lineDiff(configSrc, plan.output)));
|
|
532
|
+
if (await confirmYes(rl, args, `\n apply? [Y/n] (backup → .caret/.caretize-bak/) `)) {
|
|
533
|
+
writeBackup(root, configName, stamp);
|
|
534
|
+
writeFileSync(resolve(root, configName), plan.output, "utf8");
|
|
535
|
+
process.stdout.write(`✓ updated ${configName}\n`);
|
|
536
|
+
}
|
|
537
|
+
else {
|
|
538
|
+
process.stdout.write(" skipped config\n");
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
for (const m of plan.manual)
|
|
542
|
+
process.stdout.write(` ⚠ manual: ${m}\n`);
|
|
543
|
+
}
|
|
544
|
+
// 3) .env — a generated session secret + a password placeholder.
|
|
545
|
+
const envPath = resolve(root, ".env");
|
|
546
|
+
const existingEnv = existsSync(envPath) ? readFileSync(envPath, "utf8") : "";
|
|
547
|
+
const env = renderEnvAdditions(existingEnv, randomBytes(32).toString("hex"));
|
|
548
|
+
if (env.append) {
|
|
549
|
+
if (existingEnv)
|
|
550
|
+
writeBackup(root, ".env", stamp);
|
|
551
|
+
writeFileSync(envPath, existingEnv + env.append, "utf8");
|
|
552
|
+
process.stdout.write(`\n✓ .env: added ${env.added.join(", ")}\n`);
|
|
553
|
+
}
|
|
554
|
+
else {
|
|
555
|
+
process.stdout.write("\n✓ .env already has CaretCMS secrets\n");
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
finally {
|
|
559
|
+
rl.close();
|
|
560
|
+
}
|
|
561
|
+
process.stdout.write("\nNext:\n" +
|
|
562
|
+
" 1. npm run dev — a temporary edit password prints in the terminal\n" +
|
|
563
|
+
" 2. caretize — tag your content as editable\n" +
|
|
564
|
+
" 3. sign in at /admin, then click to edit (Studio at /admin/cms)\n");
|
|
565
|
+
}
|
|
273
566
|
async function main() {
|
|
274
567
|
let args;
|
|
275
568
|
try {
|
|
@@ -293,6 +586,10 @@ async function main() {
|
|
|
293
586
|
runRestore(root);
|
|
294
587
|
return;
|
|
295
588
|
}
|
|
589
|
+
if (args.init) {
|
|
590
|
+
await runInit(root, args);
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
296
593
|
const pf = preflight(root);
|
|
297
594
|
for (const w of pf.warnings)
|
|
298
595
|
process.stdout.write(`⚠ ${w}\n`);
|
|
@@ -302,10 +599,33 @@ async function main() {
|
|
|
302
599
|
process.exit(1);
|
|
303
600
|
}
|
|
304
601
|
const files = discoverAstroFiles(root, args.target);
|
|
602
|
+
// Resolve which opt-in tiers apply through the single policy function: the
|
|
603
|
+
// individual flags, plus `--all` (every tier, incl. low-confidence). The CLI
|
|
604
|
+
// never decides this inline — it only renders + applies what selectTiers
|
|
605
|
+
// returns. Detection below stays gated by this set (no detect-always yet; the
|
|
606
|
+
// in-flow prompt that needs it is a later step), so existing flag behavior is
|
|
607
|
+
// byte-identical and `--all` simply turns the four tiers on at once.
|
|
608
|
+
const intent = {
|
|
609
|
+
all: args.all,
|
|
610
|
+
flags: {
|
|
611
|
+
collections: args.bindCollections,
|
|
612
|
+
routes: args.bindRoutes,
|
|
613
|
+
rich: args.rich,
|
|
614
|
+
"rich-class": args.richClass,
|
|
615
|
+
lowconf: args.minConfidence === "low",
|
|
616
|
+
},
|
|
617
|
+
};
|
|
618
|
+
const tiers = selectTiers(intent);
|
|
619
|
+
const bindCollections = tiers.has("collections");
|
|
620
|
+
const bindRoutes = tiers.has("routes");
|
|
621
|
+
const richClass = tiers.has("rich-class");
|
|
622
|
+
const rich = tiers.has("rich") || richClass; // --rich-class implies --rich
|
|
623
|
+
const minConfidence = tiers.has("lowconf") ? "low" : args.minConfidence;
|
|
305
624
|
const planOpts = {
|
|
306
|
-
minConfidence
|
|
625
|
+
minConfidence,
|
|
307
626
|
noImages: args.noImages,
|
|
308
|
-
rich
|
|
627
|
+
rich,
|
|
628
|
+
richClass,
|
|
309
629
|
scope: args.scope,
|
|
310
630
|
};
|
|
311
631
|
process.stdout.write(`caretize · scanning ${args.target ?? "src/"}\n`);
|
|
@@ -319,22 +639,55 @@ async function main() {
|
|
|
319
639
|
return null;
|
|
320
640
|
}
|
|
321
641
|
};
|
|
322
|
-
const analysis = await analyzeFiles(root, files, planOpts, readFileSafe, args.noProps,
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
642
|
+
const analysis = await analyzeFiles(root, files, planOpts, readFileSafe, args.noProps, bindCollections, bindRoutes);
|
|
643
|
+
// A re-run signal: elements the scan skipped because they already carry a
|
|
644
|
+
// data-caret. Lets the scan line read as incremental ("N new … · M already
|
|
645
|
+
// editable") rather than a cold scan.
|
|
646
|
+
const priorTagged = analysis.plans.reduce((n, p) => n + p.skipped.filter((s) => s.reason === "already-tagged").length, 0);
|
|
647
|
+
process.stdout.write(formatScanSummary(files.length, analysis.plans, analysis.wrapsByFile, analysis.hoistsByFile, analysis.bindsByFile, priorTagged));
|
|
648
|
+
let sel = await selectChanges(args, analysis);
|
|
326
649
|
if (sel.quit) {
|
|
327
650
|
process.stdout.write("\naborted — nothing written\n");
|
|
328
651
|
return;
|
|
329
652
|
}
|
|
653
|
+
// Interactive only: after the conservative review, offer the opt-in tiers
|
|
654
|
+
// in-flow so a first-timer reaches full coverage in one command — never asked
|
|
655
|
+
// to learn the four tier flags. `-y` / `--dry-run` / non-TTY skip this and
|
|
656
|
+
// keep Phase A's gated behavior.
|
|
657
|
+
let summaryPlans = analysis.plans;
|
|
658
|
+
let effectiveTiers = tiers;
|
|
659
|
+
const interactive = !args.dryRun && !args.yes && !args.diff && process.stdin.isTTY && process.stdout.isTTY;
|
|
660
|
+
// Optimistic default: applied without a per-file gate → show the diff after and
|
|
661
|
+
// point at undo. (--review opts out of optimistic, so it doesn't re-show it.)
|
|
662
|
+
const optimistic = interactive && !args.review;
|
|
663
|
+
if (interactive) {
|
|
664
|
+
const esc = await offerEscalation({ root, files, basePlanOpts: planOpts, readFileSafe, noProps: args.noProps, minConfidenceBase: args.minConfidence }, tiers, analysis, sel);
|
|
665
|
+
sel = esc.sel;
|
|
666
|
+
summaryPlans = esc.plans;
|
|
667
|
+
effectiveTiers = esc.tiers;
|
|
668
|
+
}
|
|
669
|
+
const hintOpts = {
|
|
670
|
+
rich: effectiveTiers.has("rich"),
|
|
671
|
+
richClass: effectiveTiers.has("rich-class"),
|
|
672
|
+
collections: effectiveTiers.has("collections"),
|
|
673
|
+
routes: effectiveTiers.has("routes"),
|
|
674
|
+
lowconf: effectiveTiers.has("lowconf"),
|
|
675
|
+
};
|
|
330
676
|
const prepared = await prepareTouched(root, sel);
|
|
331
677
|
if (args.report) {
|
|
332
678
|
writeFileSync(args.report, JSON.stringify(buildReport(analysis.plans, prepared), null, 2));
|
|
333
679
|
process.stdout.write(`⤓ report → ${relative(root, args.report) || args.report}\n`);
|
|
334
680
|
}
|
|
681
|
+
if (args.diff) {
|
|
682
|
+
process.stdout.write(formatDiff(prepared));
|
|
683
|
+
process.stdout.write(formatFailures(prepared));
|
|
684
|
+
process.stdout.write(formatHints(summaryPlans, hintOpts));
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
335
687
|
if (args.dryRun) {
|
|
336
688
|
process.stdout.write(formatPlan(analysis.plans, analysis.wrapsByFile, analysis.hoistsByFile, analysis.bindsByFile));
|
|
337
|
-
process.stdout.write(
|
|
689
|
+
process.stdout.write(formatFailures(prepared));
|
|
690
|
+
process.stdout.write(formatHints(summaryPlans, hintOpts));
|
|
338
691
|
return;
|
|
339
692
|
}
|
|
340
693
|
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
@@ -343,11 +696,21 @@ async function main() {
|
|
|
343
696
|
// Don't print the "click to edit" success footer for a no-op run — say
|
|
344
697
|
// why nothing matched and which flag unlocks the skipped candidates.
|
|
345
698
|
process.stdout.write("\nno changes written.\n");
|
|
346
|
-
process.stdout.write(formatHints(
|
|
699
|
+
process.stdout.write(formatHints(summaryPlans, hintOpts));
|
|
347
700
|
return;
|
|
348
701
|
}
|
|
349
|
-
|
|
350
|
-
|
|
702
|
+
if (optimistic) {
|
|
703
|
+
// "Show, don't ask": surface exactly what was just written, then make undo
|
|
704
|
+
// the most visible next move.
|
|
705
|
+
process.stdout.write("\napplied — here's what changed:\n");
|
|
706
|
+
process.stdout.write(formatDiff(prepared));
|
|
707
|
+
}
|
|
708
|
+
printCommit(written, backups.length > 0, prepared, sel, summaryPlans);
|
|
709
|
+
process.stdout.write(formatNextStep(pf));
|
|
710
|
+
process.stdout.write(formatHints(summaryPlans, hintOpts));
|
|
711
|
+
if (optimistic) {
|
|
712
|
+
process.stdout.write("\n not what you wanted? caretize --restore · approve each change next time? caretize --review\n");
|
|
713
|
+
}
|
|
351
714
|
}
|
|
352
715
|
main().catch((err) => {
|
|
353
716
|
process.stderr.write(`caretize: ${err.message}\n`);
|
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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"}
|