@caretcms/caretize 0.1.0 → 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.
Files changed (70) hide show
  1. package/README.md +46 -8
  2. package/dist/bind-collection.js +1 -1
  3. package/dist/bind-collection.js.map +1 -1
  4. package/dist/bind-route.d.ts.map +1 -1
  5. package/dist/bind-route.js +9 -4
  6. package/dist/bind-route.js.map +1 -1
  7. package/dist/cli-args.d.ts +16 -1
  8. package/dist/cli-args.d.ts.map +1 -1
  9. package/dist/cli-args.js +39 -3
  10. package/dist/cli-args.js.map +1 -1
  11. package/dist/cli.js +393 -27
  12. package/dist/cli.js.map +1 -1
  13. package/dist/detect.d.ts +17 -1
  14. package/dist/detect.d.ts.map +1 -1
  15. package/dist/detect.js +63 -23
  16. package/dist/detect.js.map +1 -1
  17. package/dist/diff.d.ts +20 -0
  18. package/dist/diff.d.ts.map +1 -0
  19. package/dist/diff.js +75 -0
  20. package/dist/diff.js.map +1 -0
  21. package/dist/discover.d.ts.map +1 -1
  22. package/dist/discover.js +8 -2
  23. package/dist/discover.js.map +1 -1
  24. package/dist/escalation.d.ts +47 -0
  25. package/dist/escalation.d.ts.map +1 -0
  26. package/dist/escalation.js +112 -0
  27. package/dist/escalation.js.map +1 -0
  28. package/dist/frontmatter.d.ts +41 -4
  29. package/dist/frontmatter.d.ts.map +1 -1
  30. package/dist/frontmatter.js +122 -12
  31. package/dist/frontmatter.js.map +1 -1
  32. package/dist/import-wrap.d.ts +30 -0
  33. package/dist/import-wrap.d.ts.map +1 -1
  34. package/dist/import-wrap.js +101 -7
  35. package/dist/import-wrap.js.map +1 -1
  36. package/dist/init.d.ts +74 -0
  37. package/dist/init.d.ts.map +1 -0
  38. package/dist/init.js +187 -0
  39. package/dist/init.js.map +1 -0
  40. package/dist/keys.d.ts +55 -0
  41. package/dist/keys.d.ts.map +1 -0
  42. package/dist/keys.js +84 -0
  43. package/dist/keys.js.map +1 -0
  44. package/dist/output.d.ts +63 -10
  45. package/dist/output.d.ts.map +1 -1
  46. package/dist/output.js +191 -22
  47. package/dist/output.js.map +1 -1
  48. package/dist/plan.d.ts +7 -0
  49. package/dist/plan.d.ts.map +1 -1
  50. package/dist/plan.js +17 -4
  51. package/dist/plan.js.map +1 -1
  52. package/dist/preflight.d.ts +3 -0
  53. package/dist/preflight.d.ts.map +1 -1
  54. package/dist/preflight.js +30 -3
  55. package/dist/preflight.js.map +1 -1
  56. package/dist/run.js +6 -4
  57. package/dist/run.js.map +1 -1
  58. package/dist/select-policy.d.ts +38 -0
  59. package/dist/select-policy.d.ts.map +1 -0
  60. package/dist/select-policy.js +44 -0
  61. package/dist/select-policy.js.map +1 -0
  62. package/dist/tiers.d.ts +42 -0
  63. package/dist/tiers.d.ts.map +1 -0
  64. package/dist/tiers.js +67 -0
  65. package/dist/tiers.js.map +1 -0
  66. package/dist/wrap.d.ts +9 -4
  67. package/dist/wrap.d.ts.map +1 -1
  68. package/dist/wrap.js +3 -2
  69. package/dist/wrap.js.map +1 -1
  70. package/package.json +5 -4
package/dist/output.js CHANGED
@@ -3,6 +3,9 @@
3
3
  * run result into the exact strings the CLI prints. Kept out of cli.ts (and free
4
4
  * of process.stdout) so the formatting is unit-testable in isolation.
5
5
  */
6
+ import { lineDiff, formatHunks } from "./diff.js";
7
+ import { TIERS } from "./tiers.js";
8
+ import { isTagNode } from "./parse.js";
6
9
  /** One-line description of a tag candidate, e.g. `<h1> "Hello"` or `<img> src="…"`. */
7
10
  export function tagLine(t) {
8
11
  const text = t.candidate.text.replace(/\s+/g, " ").slice(0, 50);
@@ -10,14 +13,19 @@ export function tagLine(t) {
10
13
  const rich = t.candidate.rich ? " [rich]" : "";
11
14
  return `<${t.candidate.tag}>${rich} ${what}`;
12
15
  }
13
- /** The post-scan tally line. */
14
- export function formatScanSummary(fileCount, plans, wrapsByFile, hoistsByFile, bindsByFile = new Map()) {
16
+ /** The post-scan tally line. When the project is already partly tagged
17
+ * (`priorTagged` > 0) this is a RE-RUN: frame candidates as "new" and note how
18
+ * many spots are already editable, so re-running reads as incremental progress
19
+ * rather than a cold scan. */
20
+ export function formatScanSummary(fileCount, plans, wrapsByFile, hoistsByFile, bindsByFile = new Map(), priorTagged = 0) {
15
21
  const candidateTotal = plans.reduce((n, p) => n + p.tags.length, 0);
16
22
  const wrapTotal = [...wrapsByFile.values()].reduce((n, t) => n + t.length, 0);
17
23
  const hoistTotal = [...hoistsByFile.values()].reduce((n, ts) => n + ts.reduce((m, t) => m + t.props.length, 0), 0);
18
24
  const bindTotal = [...bindsByFile.values()].reduce((n, b) => n + b.length, 0);
19
25
  const bindPart = bindTotal ? ` · ${bindTotal} collection binding(s)` : "";
20
- return `✓ ${fileCount} .astro files · ${candidateTotal} tag candidate(s) · ${wrapTotal} wrap target(s) · ${hoistTotal} prop(s)${bindPart}\n`;
26
+ const candidateLabel = priorTagged > 0 ? "new tag candidate(s)" : "tag candidate(s)";
27
+ const priorPart = priorTagged > 0 ? ` · ${priorTagged} already editable` : "";
28
+ return `✓ ${fileCount} .astro files · ${candidateTotal} ${candidateLabel} · ${wrapTotal} wrap target(s) · ${hoistTotal} prop(s)${bindPart}${priorPart}\n`;
21
29
  }
22
30
  /** The full `--dry-run` plan dump, ending with the "nothing written" footer. */
23
31
  export function formatPlan(plans, wrapsByFile, hoistsByFile, bindsByFile = new Map()) {
@@ -66,44 +74,205 @@ export function formatSummary(files, changes, wrapped, hoisted, flagged, hadBack
66
74
  out += `⚠ ${flagged} loop(s) flagged → consider dynamic collections\n`;
67
75
  if (hadBackups)
68
76
  out += `⤺ backups in .caret/.caretize-bak/ (caretize --restore to undo)\n`;
69
- out += `───────────────────────────────\nNext: npm run dev → open your page → click to edit\n`;
77
+ out += `───────────────────────────────\n`;
70
78
  return out;
71
79
  }
72
80
  /**
73
- * The actionable-skips hints — the "why isn't this editable?" answers so a skip
74
- * reads as a checklist item, not a silent omission. Adapts to the flags already
75
- * passed: a hint only appears while its unlock flag is off. Returns "" when
76
- * there's nothing to say.
81
+ * The single most-important "what now?" line, tailored to where the project
82
+ * actually is in CaretCMS setup. Tagging succeeds even when nothing is editable
83
+ * yet (core not installed / not wired / wrong output mode), so a generic
84
+ * "click to edit" footer is misleading — point at the ONE next step instead.
77
85
  */
78
- export function formatHints(plans, rich, opts = {}) {
79
- let eligible = 0;
80
- let styled = 0;
81
- let inIterator = 0;
86
+ export function formatNextStep(pf) {
87
+ if (!pf.hasCaretCore) {
88
+ return (`Next: make these editable — install + wire CaretCMS:\n` +
89
+ ` npx caretize init\n` +
90
+ ` npx caretize\n` +
91
+ ` Static Astro projects use caret() with automatic static delivery by default.\n`);
92
+ }
93
+ if (!pf.caretWired) {
94
+ return (`Next: wire CaretCMS — add caret() to the integrations array in your astro.config,\n` +
95
+ ` then npm run dev → click to edit.\n`);
96
+ }
97
+ if (pf.outputMode === "static") {
98
+ if (pf.staticDeliveryConfigured) {
99
+ return `Next: npm run dev → sign in at /admin → edit tagged content locally; Publish + rebuild bakes static HTML.\n`;
100
+ }
101
+ return (`Next: add caret() with delivery: "auto" (the default) for static HTML baking,\n` +
102
+ ` or run: npx caretize init\n`);
103
+ }
104
+ return `Next: npm run dev → open your page → click to edit\n`;
105
+ }
106
+ /**
107
+ * The grouped "I can also make these editable" offer shown after the default
108
+ * review (interactive mode). Lists only tiers with a non-zero count, in TIERS
109
+ * order, each tagged with its risk note (so the identity-guessing binders are
110
+ * labeled before consent). Returns "" when there's nothing to offer.
111
+ *
112
+ * The prompt question itself (`[Y/n/customize]`) is asked by cli.ts via readline;
113
+ * this renders only the menu body so it stays pure + testable.
114
+ */
115
+ export function formatEscalationOffer(counts) {
116
+ const lines = [];
117
+ for (const t of TIERS) {
118
+ const n = counts[t.id] ?? 0;
119
+ if (n <= 0)
120
+ continue;
121
+ const flag = t.risk === "guess" ? " ⚠" : "";
122
+ lines.push(` •${flag} ${String(n).padStart(3)} ${t.label} — ${t.note}`);
123
+ }
124
+ if (lines.length === 0)
125
+ return "";
126
+ return `\n I can also make these editable:\n${lines.join("\n")}\n`;
127
+ }
128
+ /**
129
+ * The `--diff` preview: the actual before→after for every file that would change,
130
+ * as hunks (changed lines + context). Makes the codemod tangible — "show me
131
+ * exactly what you'd insert" — and pairs with the backup/--restore safety net.
132
+ * Files that failed verification are surfaced via `formatFailures` separately.
133
+ */
134
+ export function formatDiff(prepared) {
135
+ let out = "";
136
+ for (const p of prepared) {
137
+ if (!p.ok || p.tagCount === 0 || p.output === p.source)
138
+ continue;
139
+ const body = formatHunks(lineDiff(p.source, p.output));
140
+ if (body)
141
+ out += `\n${p.relPath}\n${body}`;
142
+ }
143
+ return out || "\n(no changes to preview)\n";
144
+ }
145
+ /** Files whose prepared output failed verification — shown in --dry-run too,
146
+ * so the user learns BEFORE the real run aborts on them. */
147
+ export function formatFailures(prepared) {
148
+ const failing = prepared.filter((p) => !p.ok);
149
+ if (failing.length === 0)
150
+ return "";
151
+ return (failing
152
+ .map((p) => `✗ ${p.relPath} would fail verification: ${p.reason ?? "unknown reason"}`)
153
+ .join("\n") + "\n");
154
+ }
155
+ /**
156
+ * Collect, from a skipped rich block, the inline descendants carrying a `class`
157
+ * the sanitizer would strip — `tag → class tokens`. A `rich-unsafe-attrs` skip
158
+ * only happens when every descendant is an inline tag, so walking them all is
159
+ * safe. Dynamic class values (`class={x}`) are ignored — only literal tokens are
160
+ * actionable in an `allowedClasses` config.
161
+ */
162
+ function collectStyledClasses(node, into) {
163
+ if (!node)
164
+ return;
165
+ for (const child of node.children ?? []) {
166
+ if (!isTagNode(child))
167
+ continue;
168
+ const cls = child.attributes.find((a) => a.name === "class")?.value;
169
+ if (cls) {
170
+ for (const token of cls.split(/\s+/)) {
171
+ if (!/^[\w-]+$/.test(token))
172
+ continue; // skip dynamic/garbage tokens
173
+ const tag = child.name.toLowerCase();
174
+ (into.get(tag) ?? into.set(tag, new Set()).get(tag)).add(token);
175
+ }
176
+ }
177
+ collectStyledClasses(child, into);
178
+ }
179
+ }
180
+ /** Render `tag → classes` as a copy-pasteable `allowedClasses` object literal. */
181
+ function renderAllowedClasses(byTag) {
182
+ const entries = [...byTag.entries()]
183
+ .sort(([a], [b]) => a.localeCompare(b))
184
+ .map(([tag, classes]) => {
185
+ const list = [...classes].sort().map((c) => `"${c}"`).join(", ");
186
+ return `${tag}: [${list}]`;
187
+ });
188
+ return `{ ${entries.join(", ")} }`;
189
+ }
190
+ /**
191
+ * The "what's left + how to get it" summary — so skipped coverage reads as one
192
+ * unmissable checklist line, not four scattered re-run incantations. Every
193
+ * remaining opt-in tier that's still OFF is rolled into a single line that
194
+ * points at `--all` (the one flag), with the individual flags noted once.
195
+ *
196
+ * The styled-class case is kept separate: it isn't unlocked by a tier flag (the
197
+ * sanitizer strips the class regardless) — it needs a CSS move or
198
+ * caret({ allowedClasses }), so it carries its own guidance.
199
+ *
200
+ * Returns "" when there's nothing to say.
201
+ */
202
+ export function formatHints(plans, opts = {}) {
203
+ let eligible = 0; // rich-eligible (would tag with --rich)
204
+ let styled = 0; // rich-unsafe-attrs (sanitizer strips the class)
205
+ let richClassPromotable = 0; // rich-class-promotable (would tag with --rich-class)
206
+ let inIterator = 0; // inside-iterator (would bind with --bind-collections)
207
+ let belowConfidence = 0; // dropped by the --min-confidence floor
208
+ const styledClasses = new Map(); // tag → classes to bless
209
+ const richClassToBless = new Map(); // classes on rich-class blocks
82
210
  for (const p of plans) {
211
+ belowConfidence += p.belowConfidence ?? 0;
83
212
  for (const s of p.skipped) {
84
213
  if (s.reason === "rich-eligible")
85
214
  eligible++;
86
- else if (s.reason === "rich-unsafe-attrs")
215
+ else if (s.reason === "rich-unsafe-attrs") {
87
216
  styled++;
217
+ collectStyledClasses(s.node, styledClasses);
218
+ }
219
+ else if (s.reason === "rich-class-promotable") {
220
+ richClassPromotable++;
221
+ collectStyledClasses(s.node, richClassToBless);
222
+ }
88
223
  else if (s.reason === "inside-iterator")
89
224
  inIterator++;
90
225
  }
226
+ // Once --rich-class is on, the styled-span blocks are TAGGED (not skipped),
227
+ // so harvest their classes from the promoted rich candidates for the
228
+ // post-apply "now bless these" reminder.
229
+ if (opts.richClass) {
230
+ for (const t of p.tags ?? []) {
231
+ if (t.candidate?.rich)
232
+ collectStyledClasses(t.candidate.node, richClassToBless);
233
+ }
234
+ }
91
235
  }
92
236
  const dynamicRoutes = plans.filter((p) => p.scopeSkip === "dynamic-route").length;
237
+ // The remaining opt-in coverage, each listed only while its tier is off.
238
+ const parts = [];
239
+ if (inIterator && !opts.collections)
240
+ parts.push(`${inIterator} item(s) in dynamic lists`);
241
+ if (dynamicRoutes && !opts.routes)
242
+ parts.push(`${dynamicRoutes} dynamic detail route(s)`);
243
+ if (eligible && !opts.rich)
244
+ parts.push(`${eligible} rich heading(s)`);
245
+ if (belowConfidence && !opts.lowconf)
246
+ parts.push(`${belowConfidence} lower-confidence spot(s)`);
93
247
  let out = "";
94
- if (eligible && !rich) {
95
- out += `\n↪ ${eligible} mixed-content block(s) are sanitizer-safe inline markup — re-run with --rich to make them editable.\n`;
248
+ if (parts.length) {
249
+ out += `\n↪ More can be made editable: ${parts.join(", ")}.\n` +
250
+ ` Re-run with --all to include them (or the individual flags: ` +
251
+ `--bind-collections --bind-routes --rich --min-confidence low).\n`;
96
252
  }
97
253
  if (styled) {
254
+ const snippet = styledClasses.size
255
+ ? renderAllowedClasses(styledClasses)
256
+ : `{ tag: ["your-class"] }`;
98
257
  out += `↪ ${styled} block(s) hold inline styling classes the rich-text sanitizer strips on save.\n` +
99
- ` Move the styling to CSS (style the semantic tag), or bless the class via\n` +
100
- ` caret({ allowedClasses: { tag: ["your-class"] } }) — then they're safe to tag.\n`;
101
- }
102
- if (inIterator && !opts.bindCollections) {
103
- out += `↪ ${inIterator} element(s) render inside collection loops — re-run with --bind-collections to bind them per row.\n`;
258
+ ` Move the styling to CSS (style the semantic tag), or bless the classes via\n` +
259
+ ` caret({ allowedClasses: ${snippet} }) — then they're safe to tag.\n`;
104
260
  }
105
- if (dynamicRoutes && !opts.bindRoutes) {
106
- out += `↪ ${dynamicRoutes} dynamic route(s) skipped re-run with --bind-routes to bind each detail page to its entry.\n`;
261
+ // Styled-span headings: pre-tag it's a "--rich-class + bless" nudge; once
262
+ // --rich-class is on (richClassToBless populated from the tagged blocks) it's
263
+ // a "you tagged these — now bless them or the class is lost" reminder.
264
+ if (richClassToBless.size) {
265
+ const snippet = renderAllowedClasses(richClassToBless);
266
+ if (opts.richClass) {
267
+ out += `↪ Tagged styled-span heading(s) as rich. Keep their classes — add to caret():\n` +
268
+ ` allowedClasses: ${snippet}\n` +
269
+ ` Without it, those classes are stripped when an editor saves.\n`;
270
+ }
271
+ else {
272
+ out += `↪ ${richClassPromotable} styled-span heading(s) can be tagged with --rich-class (in --all).\n` +
273
+ ` They keep their class only once blessed — add to caret():\n` +
274
+ ` allowedClasses: ${snippet}\n`;
275
+ }
107
276
  }
108
277
  return out;
109
278
  }
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
package/dist/plan.d.ts CHANGED
@@ -31,6 +31,10 @@ export interface FilePlan {
31
31
  tags: PlannedTag[];
32
32
  skipped: Skipped[];
33
33
  flags: IteratorFlag[];
34
+ /** Count of candidates dropped SOLELY by the confidence floor (would tag at a
35
+ * lower --min-confidence). Drives the "more can be made editable" summary —
36
+ * these are otherwise silently filtered and invisible to the user. */
37
+ belowConfidence: number;
34
38
  }
35
39
  export interface PlanOptions {
36
40
  /** Minimum confidence to include as a proposed tag (default "high"). */
@@ -41,6 +45,9 @@ export interface PlanOptions {
41
45
  scope?: Scope;
42
46
  /** Promote sanitizer-safe mixed-content blocks to data-caret-rich (--rich). */
43
47
  rich?: boolean;
48
+ /** Also promote rich blocks whose inline children carry a class the sanitizer
49
+ * strips unless blessed via allowedClasses (--rich-class). Implies rich. */
50
+ richClass?: boolean;
44
51
  }
45
52
  export declare function planFile(source: string, relPath: string, options?: PlanOptions, root?: AstroNode): Promise<FilePlan>;
46
53
  //# sourceMappingURL=plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwB,KAAK,SAAS,EAAgB,MAAM,YAAY,CAAC;AAChF,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6B,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEpF,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoBD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,EACzB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,QAAQ,CAAC,CA+CnB"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwB,KAAK,SAAS,EAAgB,MAAM,YAAY,CAAC;AAChF,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6B,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGpF,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;2EAEuE;IACvE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;iFAC6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,EACzB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,QAAQ,CAAC,CA0DnB"}
package/dist/plan.js CHANGED
@@ -11,6 +11,7 @@
11
11
  import { parseAstro, walkTags } from "./parse.js";
12
12
  import { detect, } from "./detect.js";
13
13
  import { assignFields, deriveScope } from "./name.js";
14
+ import { frontmatterRange, imageComponentNames } from "./frontmatter.js";
14
15
  const RANK = { high: 3, medium: 2, low: 1 };
15
16
  /** Field name carried by an existing data-caret value (full-triple or field-only). */
16
17
  function fieldOf(value) {
@@ -30,7 +31,15 @@ function existingFields(root) {
30
31
  export async function planFile(source, relPath, options = {}, root) {
31
32
  const minRank = RANK[options.minConfidence ?? "high"];
32
33
  const ast = root ?? (await parseAstro(source));
33
- const { candidates, skipped, flags } = detect(ast, walkTags, { rich: options.rich });
34
+ // Resolve astro:assets <Image>/<Picture> local names so detect can recognize
35
+ // them as image candidates (forwarded data-caret → rendered <img> src).
36
+ const fm = frontmatterRange(source);
37
+ const imageComponents = imageComponentNames(fm ? source.slice(fm.start, fm.end) : "");
38
+ const { candidates, skipped, flags } = detect(ast, walkTags, {
39
+ rich: options.rich,
40
+ richClass: options.richClass,
41
+ imageComponents,
42
+ });
34
43
  // Resolve scope (explicit override wins; otherwise derive from path).
35
44
  let scope;
36
45
  if (options.scope) {
@@ -39,19 +48,23 @@ export async function planFile(source, relPath, options = {}, root) {
39
48
  else {
40
49
  const derived = deriveScope(relPath);
41
50
  if ("skip" in derived) {
42
- return { relPath, scopeSkip: derived.skip, tags: [], skipped, flags };
51
+ return { relPath, scopeSkip: derived.skip, tags: [], skipped, flags, belowConfidence: 0 };
43
52
  }
44
53
  scope = derived.scope;
45
54
  }
46
55
  // Filter candidates by confidence + image policy, preserving document order.
47
56
  // Rich candidates only exist when --rich was requested, so they're always
48
57
  // accepted (the confidence floor doesn't gate the explicit opt-in).
58
+ let belowConfidence = 0;
49
59
  const accepted = candidates.filter((c) => {
50
60
  if (options.noImages && c.kind === "image")
51
61
  return false;
52
62
  if (c.rich)
53
63
  return true;
54
- return RANK[c.confidence] >= minRank;
64
+ if (RANK[c.confidence] >= minRank)
65
+ return true;
66
+ belowConfidence++; // dropped only by the floor — surface it as remaining coverage
67
+ return false;
55
68
  });
56
69
  const fields = assignFields(accepted, existingFields(ast));
57
70
  const tags = accepted.map((candidate) => {
@@ -71,6 +84,6 @@ export async function planFile(source, relPath, options = {}, root) {
71
84
  confidence: candidate.confidence,
72
85
  };
73
86
  });
74
- return { relPath, scope, tags, skipped, flags };
87
+ return { relPath, scope, tags, skipped, flags, belowConfidence };
75
88
  }
76
89
  //# sourceMappingURL=plan.js.map
package/dist/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,12 @@ export interface Preflight {
10
10
  caretWired: boolean;
11
11
  /** Output mode parsed from astro.config: "server" | "hybrid" | "static". */
12
12
  outputMode: string;
13
+ /** Static delivery is available either explicitly or via caret()'s auto default. */
14
+ staticDeliveryConfigured: boolean;
13
15
  gitRepo: boolean;
14
16
  gitClean: boolean | null;
15
17
  errors: string[];
18
+ notes: string[];
16
19
  warnings: string[];
17
20
  }
18
21
  export declare function preflight(rootDir: string): Preflight;
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAuCD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAyDpD"}
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,wBAAwB,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAuCD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAyFpD"}
package/dist/preflight.js CHANGED
@@ -59,6 +59,15 @@ export function preflight(rootDir) {
59
59
  // the warning below points the user at a mode that exists.
60
60
  const outputMatch = config?.match(/output\s*:\s*["'](server|static)["']/);
61
61
  const outputMode = outputMatch ? outputMatch[1] : "static";
62
+ const deliveryConfigured = config !== null && /delivery\s*:/.test(config);
63
+ const deliveryServerConfigured = config !== null &&
64
+ /delivery\s*:\s*(?:(["'])server\1|\{[^}]*mode\s*:\s*(["'])server\2)/s.test(config);
65
+ const deliveryStaticOrAutoConfigured = config !== null &&
66
+ /delivery\s*:\s*(?:(["'])(?:static|auto)\1|\{[^}]*mode\s*:\s*(["'])(?:static|auto)\2)/s.test(config);
67
+ const staticDeliveryConfigured = config !== null &&
68
+ caretWired &&
69
+ !deliveryServerConfigured &&
70
+ (!deliveryConfigured || deliveryStaticOrAutoConfigured);
62
71
  let gitRepo = false;
63
72
  let gitClean = null;
64
73
  try {
@@ -74,6 +83,7 @@ export function preflight(rootDir) {
74
83
  gitRepo = false;
75
84
  }
76
85
  const errors = [];
86
+ const notes = [];
77
87
  const warnings = [];
78
88
  if (!isAstroProject) {
79
89
  errors.push("This does not look like an Astro project (no astro dependency or astro.config).");
@@ -84,12 +94,29 @@ export function preflight(rootDir) {
84
94
  else if (!caretWired) {
85
95
  warnings.push("@caretcms/core is installed but caret() is not in astro.config — tags will be inert until you add it to integrations.");
86
96
  }
87
- if (hasCaretCore && outputMode === "static") {
88
- warnings.push(`output is "static" embedded inline editing needs output: "server" plus an SSR adapter (e.g. @astrojs/node).`);
97
+ if (hasCaretCore && outputMode === "static" && staticDeliveryConfigured) {
98
+ notes.push(`static output detected — CaretCMS will use static delivery automatically. Public changes become live after Publish triggers a rebuild and HTML is baked.`);
99
+ }
100
+ else if (hasCaretCore && outputMode === "static" && deliveryServerConfigured) {
101
+ warnings.push(`output is "static" but CaretCMS delivery is "server" — use delivery: "auto" or remove the delivery option to bake static HTML, or switch Astro to output: "server" with an SSR adapter.`);
102
+ }
103
+ else if (hasCaretCore && outputMode === "static") {
104
+ warnings.push(`output is "static" — run caretize init to add caret(); CaretCMS will use automatic static delivery, or use output: "server" plus an SSR adapter for server delivery.`);
89
105
  }
90
106
  if (gitRepo && gitClean === false) {
91
107
  warnings.push("Working tree has uncommitted changes — commit first so you can `git checkout` to undo.");
92
108
  }
93
- return { isAstroProject, hasCaretCore, caretWired, outputMode, gitRepo, gitClean, errors, warnings };
109
+ return {
110
+ isAstroProject,
111
+ hasCaretCore,
112
+ caretWired,
113
+ outputMode,
114
+ staticDeliveryConfigured,
115
+ gitRepo,
116
+ gitClean,
117
+ errors,
118
+ notes,
119
+ warnings,
120
+ };
94
121
  }
95
122
  //# sourceMappingURL=preflight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
package/dist/run.js CHANGED
@@ -11,14 +11,16 @@ import { resolve } from "node:path";
11
11
  import { parseAstro } from "./parse.js";
12
12
  import { applyTags } from "./write.js";
13
13
  import { wrapConst } from "./wrap.js";
14
- import { wrapImport } from "./import-wrap.js";
14
+ import { wrapImport, wrapNamedImport } from "./import-wrap.js";
15
15
  import { hoistPropLiterals, verifyHoistResult } from "./prop-hoist.js";
16
16
  import { writeBackup, restoreBackups } from "./backup.js";
17
17
  /** Apply the right editable() wrap for a target's origin. */
18
18
  function applyWrap(source, t) {
19
- return t.origin === "import"
20
- ? wrapImport(source, t.varName, t.key)
21
- : wrapConst(source, t.varName, t.key);
19
+ if (t.origin === "import")
20
+ return wrapImport(source, t.varName, t.key);
21
+ if (t.origin === "named-import")
22
+ return wrapNamedImport(source, t.varName, t.key);
23
+ return wrapConst(source, t.varName, t.key);
22
24
  }
23
25
  /** Compute and verify a single file's tagged output. No disk access. */
24
26
  export async function prepareFile(relPath, source, items) {
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Tier selection policy — the ONE pure function that decides which escalation
3
+ * tiers apply, given the user's intent. Every entry point (individual flags,
4
+ * `--all`, and later the in-flow prompt answer / a config file) converges here,
5
+ * so the readline/CLI code only ever RENDERS what this returns — it never
6
+ * decides *what* to apply. That separation is what lets later UX surfaces
7
+ * (config, IDE, watch) be new Intent sources rather than policy rewrites.
8
+ *
9
+ * No I/O. Returns a Set of tier ids; the caller maps those onto the (deliberately
10
+ * heterogeneous) mechanisms — a bind detector, a plan option, a confidence floor.
11
+ */
12
+ import { type TierId } from "./tiers.js";
13
+ /** The in-flow prompt's answer: accept the recommended bundle, decline, or a
14
+ * customized subset of tier ids. */
15
+ export type PromptAnswer = "yes" | "no" | TierId[];
16
+ export interface Intent {
17
+ /** `--all`: turn on EVERY tier, including the un-recommended ones (lowconf).
18
+ * Named honestly — "all" means all. The curated bundle is `recommendedTiers`. */
19
+ all?: boolean;
20
+ /** The interactive escalation prompt's answer (interactive mode only). */
21
+ promptAnswer?: PromptAnswer;
22
+ /** Per-tier explicit opt-in from the individual flags (and, later, config). */
23
+ flags?: Partial<Record<TierId, boolean>>;
24
+ }
25
+ /**
26
+ * Resolve an intent to the set of enabled escalation tiers. Precedence:
27
+ * - `all` → every tier (incl. lowconf).
28
+ * - `promptAnswer` "yes" → the recommended bundle (collections+routes+rich).
29
+ * - `promptAnswer` "no" → nothing.
30
+ * - `promptAnswer` ids[] → exactly those tiers (customize).
31
+ * - `flags` → exactly the tiers flagged true.
32
+ * - nothing → empty set (today's conservative default).
33
+ */
34
+ export declare function selectTiers(intent: Intent): Set<TierId>;
35
+ /** The curated bundle the interactive [Y] applies — recommended tiers only
36
+ * (collections + routes + rich; lowconf is left to explicit opt-in / --all). */
37
+ export declare function recommendedTiers(): Set<TierId>;
38
+ //# sourceMappingURL=select-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-policy.d.ts","sourceRoot":"","sources":["../src/select-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAS,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhD;qCACqC;AACrC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;AAEnD,MAAM,WAAW,MAAM;IACrB;sFACkF;IAClF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAYvD;AAED;iFACiF;AACjF,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAE9C"}