@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.
Files changed (70) hide show
  1. package/README.md +41 -5
  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 +390 -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 +61 -22
  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 +70 -0
  37. package/dist/init.d.ts.map +1 -0
  38. package/dist/init.js +198 -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 +190 -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 +2 -0
  53. package/dist/preflight.d.ts.map +1 -1
  54. package/dist/preflight.js +18 -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 +2 -2
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,204 @@ 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
+ ` Static Astro projects use caret({ delivery: "static" }) by default.\n`);
91
+ }
92
+ if (!pf.caretWired) {
93
+ return (`Next: wire CaretCMS — add caret() to the integrations array in your astro.config,\n` +
94
+ ` then npm run dev → click to edit.\n`);
95
+ }
96
+ if (pf.outputMode === "static") {
97
+ if (pf.staticDeliveryConfigured) {
98
+ return `Next: npm run dev → sign in at /admin → edit locally; Publish + rebuild bakes static HTML.\n`;
99
+ }
100
+ return (`Next: enable static delivery with caret({ delivery: "static" })\n` +
101
+ ` or run: npx caretize init\n`);
102
+ }
103
+ return `Next: npm run dev → open your page → click to edit\n`;
104
+ }
105
+ /**
106
+ * The grouped "I can also make these editable" offer shown after the default
107
+ * review (interactive mode). Lists only tiers with a non-zero count, in TIERS
108
+ * order, each tagged with its risk note (so the identity-guessing binders are
109
+ * labeled before consent). Returns "" when there's nothing to offer.
110
+ *
111
+ * The prompt question itself (`[Y/n/customize]`) is asked by cli.ts via readline;
112
+ * this renders only the menu body so it stays pure + testable.
113
+ */
114
+ export function formatEscalationOffer(counts) {
115
+ const lines = [];
116
+ for (const t of TIERS) {
117
+ const n = counts[t.id] ?? 0;
118
+ if (n <= 0)
119
+ continue;
120
+ const flag = t.risk === "guess" ? " ⚠" : "";
121
+ lines.push(` •${flag} ${String(n).padStart(3)} ${t.label} — ${t.note}`);
122
+ }
123
+ if (lines.length === 0)
124
+ return "";
125
+ return `\n I can also make these editable:\n${lines.join("\n")}\n`;
126
+ }
127
+ /**
128
+ * The `--diff` preview: the actual before→after for every file that would change,
129
+ * as hunks (changed lines + context). Makes the codemod tangible — "show me
130
+ * exactly what you'd insert" — and pairs with the backup/--restore safety net.
131
+ * Files that failed verification are surfaced via `formatFailures` separately.
132
+ */
133
+ export function formatDiff(prepared) {
134
+ let out = "";
135
+ for (const p of prepared) {
136
+ if (!p.ok || p.tagCount === 0 || p.output === p.source)
137
+ continue;
138
+ const body = formatHunks(lineDiff(p.source, p.output));
139
+ if (body)
140
+ out += `\n${p.relPath}\n${body}`;
141
+ }
142
+ return out || "\n(no changes to preview)\n";
143
+ }
144
+ /** Files whose prepared output failed verification — shown in --dry-run too,
145
+ * so the user learns BEFORE the real run aborts on them. */
146
+ export function formatFailures(prepared) {
147
+ const failing = prepared.filter((p) => !p.ok);
148
+ if (failing.length === 0)
149
+ return "";
150
+ return (failing
151
+ .map((p) => `✗ ${p.relPath} would fail verification: ${p.reason ?? "unknown reason"}`)
152
+ .join("\n") + "\n");
153
+ }
154
+ /**
155
+ * Collect, from a skipped rich block, the inline descendants carrying a `class`
156
+ * the sanitizer would strip — `tag → class tokens`. A `rich-unsafe-attrs` skip
157
+ * only happens when every descendant is an inline tag, so walking them all is
158
+ * safe. Dynamic class values (`class={x}`) are ignored — only literal tokens are
159
+ * actionable in an `allowedClasses` config.
160
+ */
161
+ function collectStyledClasses(node, into) {
162
+ if (!node)
163
+ return;
164
+ for (const child of node.children ?? []) {
165
+ if (!isTagNode(child))
166
+ continue;
167
+ const cls = child.attributes.find((a) => a.name === "class")?.value;
168
+ if (cls) {
169
+ for (const token of cls.split(/\s+/)) {
170
+ if (!/^[\w-]+$/.test(token))
171
+ continue; // skip dynamic/garbage tokens
172
+ const tag = child.name.toLowerCase();
173
+ (into.get(tag) ?? into.set(tag, new Set()).get(tag)).add(token);
174
+ }
175
+ }
176
+ collectStyledClasses(child, into);
177
+ }
178
+ }
179
+ /** Render `tag → classes` as a copy-pasteable `allowedClasses` object literal. */
180
+ function renderAllowedClasses(byTag) {
181
+ const entries = [...byTag.entries()]
182
+ .sort(([a], [b]) => a.localeCompare(b))
183
+ .map(([tag, classes]) => {
184
+ const list = [...classes].sort().map((c) => `"${c}"`).join(", ");
185
+ return `${tag}: [${list}]`;
186
+ });
187
+ return `{ ${entries.join(", ")} }`;
188
+ }
189
+ /**
190
+ * The "what's left + how to get it" summary — so skipped coverage reads as one
191
+ * unmissable checklist line, not four scattered re-run incantations. Every
192
+ * remaining opt-in tier that's still OFF is rolled into a single line that
193
+ * points at `--all` (the one flag), with the individual flags noted once.
194
+ *
195
+ * The styled-class case is kept separate: it isn't unlocked by a tier flag (the
196
+ * sanitizer strips the class regardless) — it needs a CSS move or
197
+ * caret({ allowedClasses }), so it carries its own guidance.
198
+ *
199
+ * Returns "" when there's nothing to say.
200
+ */
201
+ export function formatHints(plans, opts = {}) {
202
+ let eligible = 0; // rich-eligible (would tag with --rich)
203
+ let styled = 0; // rich-unsafe-attrs (sanitizer strips the class)
204
+ let richClassPromotable = 0; // rich-class-promotable (would tag with --rich-class)
205
+ let inIterator = 0; // inside-iterator (would bind with --bind-collections)
206
+ let belowConfidence = 0; // dropped by the --min-confidence floor
207
+ const styledClasses = new Map(); // tag → classes to bless
208
+ const richClassToBless = new Map(); // classes on rich-class blocks
82
209
  for (const p of plans) {
210
+ belowConfidence += p.belowConfidence ?? 0;
83
211
  for (const s of p.skipped) {
84
212
  if (s.reason === "rich-eligible")
85
213
  eligible++;
86
- else if (s.reason === "rich-unsafe-attrs")
214
+ else if (s.reason === "rich-unsafe-attrs") {
87
215
  styled++;
216
+ collectStyledClasses(s.node, styledClasses);
217
+ }
218
+ else if (s.reason === "rich-class-promotable") {
219
+ richClassPromotable++;
220
+ collectStyledClasses(s.node, richClassToBless);
221
+ }
88
222
  else if (s.reason === "inside-iterator")
89
223
  inIterator++;
90
224
  }
225
+ // Once --rich-class is on, the styled-span blocks are TAGGED (not skipped),
226
+ // so harvest their classes from the promoted rich candidates for the
227
+ // post-apply "now bless these" reminder.
228
+ if (opts.richClass) {
229
+ for (const t of p.tags ?? []) {
230
+ if (t.candidate?.rich)
231
+ collectStyledClasses(t.candidate.node, richClassToBless);
232
+ }
233
+ }
91
234
  }
92
235
  const dynamicRoutes = plans.filter((p) => p.scopeSkip === "dynamic-route").length;
236
+ // The remaining opt-in coverage, each listed only while its tier is off.
237
+ const parts = [];
238
+ if (inIterator && !opts.collections)
239
+ parts.push(`${inIterator} item(s) in dynamic lists`);
240
+ if (dynamicRoutes && !opts.routes)
241
+ parts.push(`${dynamicRoutes} dynamic detail route(s)`);
242
+ if (eligible && !opts.rich)
243
+ parts.push(`${eligible} rich heading(s)`);
244
+ if (belowConfidence && !opts.lowconf)
245
+ parts.push(`${belowConfidence} lower-confidence spot(s)`);
93
246
  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`;
247
+ if (parts.length) {
248
+ out += `\n↪ More can be made editable: ${parts.join(", ")}.\n` +
249
+ ` Re-run with --all to include them (or the individual flags: ` +
250
+ `--bind-collections --bind-routes --rich --min-confidence low).\n`;
96
251
  }
97
252
  if (styled) {
253
+ const snippet = styledClasses.size
254
+ ? renderAllowedClasses(styledClasses)
255
+ : `{ tag: ["your-class"] }`;
98
256
  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`;
257
+ ` Move the styling to CSS (style the semantic tag), or bless the classes via\n` +
258
+ ` caret({ allowedClasses: ${snippet} }) — then they're safe to tag.\n`;
104
259
  }
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`;
260
+ // Styled-span headings: pre-tag it's a "--rich-class + bless" nudge; once
261
+ // --rich-class is on (richClassToBless populated from the tagged blocks) it's
262
+ // a "you tagged these — now bless them or the class is lost" reminder.
263
+ if (richClassToBless.size) {
264
+ const snippet = renderAllowedClasses(richClassToBless);
265
+ if (opts.richClass) {
266
+ out += `↪ Tagged styled-span heading(s) as rich. Keep their classes — add to caret():\n` +
267
+ ` allowedClasses: ${snippet}\n` +
268
+ ` Without it, those classes are stripped when an editor saves.\n`;
269
+ }
270
+ else {
271
+ out += `↪ ${richClassPromotable} styled-span heading(s) can be tagged with --rich-class (in --all).\n` +
272
+ ` They keep their class only once blessed — add to caret():\n` +
273
+ ` allowedClasses: ${snippet}\n`;
274
+ }
107
275
  }
108
276
  return out;
109
277
  }
@@ -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,6 +10,8 @@ export interface Preflight {
10
10
  caretWired: boolean;
11
11
  /** Output mode parsed from astro.config: "server" | "hybrid" | "static". */
12
12
  outputMode: string;
13
+ /** caret({ delivery: "static" }) appears to be configured. */
14
+ staticDeliveryConfigured: boolean;
13
15
  gitRepo: boolean;
14
16
  gitClean: boolean | null;
15
17
  errors: string[];
@@ -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,8DAA8D;IAC9D,wBAAwB,EAAE,OAAO,CAAC;IAClC,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,CA0EpD"}
package/dist/preflight.js CHANGED
@@ -59,6 +59,8 @@ 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 staticDeliveryConfigured = config !== null &&
63
+ /delivery\s*:\s*(?:(["'])static\1|\{[^}]*mode\s*:\s*(["'])static\2)/s.test(config);
62
64
  let gitRepo = false;
63
65
  let gitClean = null;
64
66
  try {
@@ -84,12 +86,25 @@ export function preflight(rootDir) {
84
86
  else if (!caretWired) {
85
87
  warnings.push("@caretcms/core is installed but caret() is not in astro.config — tags will be inert until you add it to integrations.");
86
88
  }
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).`);
89
+ if (hasCaretCore && outputMode === "static" && staticDeliveryConfigured) {
90
+ warnings.push(`output is "static" with static delivery enabled caretize can add bindings, and public changes become live after Publish triggers a rebuild and HTML is baked.`);
91
+ }
92
+ else if (hasCaretCore && outputMode === "static") {
93
+ warnings.push(`output is "static" — run caretize init to enable static delivery with caret({ delivery: "static" }), or use output: "server" plus an SSR adapter.`);
89
94
  }
90
95
  if (gitRepo && gitClean === false) {
91
96
  warnings.push("Working tree has uncommitted changes — commit first so you can `git checkout` to undo.");
92
97
  }
93
- return { isAstroProject, hasCaretCore, caretWired, outputMode, gitRepo, gitClean, errors, warnings };
98
+ return {
99
+ isAstroProject,
100
+ hasCaretCore,
101
+ caretWired,
102
+ outputMode,
103
+ staticDeliveryConfigured,
104
+ gitRepo,
105
+ gitClean,
106
+ errors,
107
+ warnings,
108
+ };
94
109
  }
95
110
  //# 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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAwB,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D,6DAA6D;AAC7D,SAAS,SAAS,CAAC,MAAc,EAAE,CAAa;IAC9C,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAC1B,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAYD,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,MAAc,EACd,KAAqB;IAErB,MAAM,IAAI,GAAiB;QACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI;KACrE,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC;IACrF,CAAC;IAED,gDAAgD;IAChD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA+B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;IAChG,CAAC;IAED,+EAA+E;IAC/E,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;QAC7F,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC;IAC1F,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACjF,CAAC;AAID,4EAA4E;AAC5E,SAAS,aAAa,CAAC,MAAc,EAAE,QAAgB;IACrD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,MAAc,EACd,OAAqB;IAErB,MAAM,IAAI,GAAiB;QACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI;KACrE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACxF,IAAI,MAAM,CAAC,cAAc;YAAE,SAAS;QACpC,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;IAE/E,gDAAgD;IAChD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA+B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;IAChG,CAAC;IAED,wEAAwE;IACxE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC;IAC1F,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACpF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,MAAc,EACd,KAAqB,EACrB,OAAqB,EACrB,eAAkC,EAAE;IAEpC,MAAM,IAAI,GAAiB;QACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI;KACrE,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzF,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,qCAAqC;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC;QAC5F,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,4EAA4E;IAC5E,qDAAqD;IACrD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1F,IAAI,OAAO,CAAC,cAAc;YAAE,SAAS;QACrC,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,CAAC;IACd,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,kBAAkB;IAEnF,+EAA+E;IAC/E,8DAA8D;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC;IAC1F,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACvE,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1E,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;YACpF,CAAC;YACD,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YAClB,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC,CAAC,2BAA2B;IAE/D,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA+B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;IAChG,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;QACjC,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,IAAI;KAC1D,CAAC;AACJ,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,QAAwB,EACxB,KAAa;IAEb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAkD,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACnD,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qEAAqE;QACrE,oEAAoE;QACpE,yBAAyB;QACzB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,OAAe;IACzD,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
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"}
@@ -0,0 +1,44 @@
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 { TIERS } from "./tiers.js";
13
+ /**
14
+ * Resolve an intent to the set of enabled escalation tiers. Precedence:
15
+ * - `all` → every tier (incl. lowconf).
16
+ * - `promptAnswer` "yes" → the recommended bundle (collections+routes+rich).
17
+ * - `promptAnswer` "no" → nothing.
18
+ * - `promptAnswer` ids[] → exactly those tiers (customize).
19
+ * - `flags` → exactly the tiers flagged true.
20
+ * - nothing → empty set (today's conservative default).
21
+ */
22
+ export function selectTiers(intent) {
23
+ if (intent.all)
24
+ return new Set(TIERS.map((t) => t.id));
25
+ if (intent.promptAnswer !== undefined) {
26
+ if (intent.promptAnswer === "yes")
27
+ return recommendedTiers();
28
+ if (intent.promptAnswer === "no")
29
+ return new Set();
30
+ return new Set(intent.promptAnswer);
31
+ }
32
+ const set = new Set();
33
+ for (const t of TIERS) {
34
+ if (intent.flags?.[t.id])
35
+ set.add(t.id);
36
+ }
37
+ return set;
38
+ }
39
+ /** The curated bundle the interactive [Y] applies — recommended tiers only
40
+ * (collections + routes + rich; lowconf is left to explicit opt-in / --all). */
41
+ export function recommendedTiers() {
42
+ return new Set(TIERS.filter((t) => t.recommended).map((t) => t.id));
43
+ }
44
+ //# sourceMappingURL=select-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-policy.js","sourceRoot":"","sources":["../src/select-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAe,MAAM,YAAY,CAAC;AAgBhD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,IAAI,MAAM,CAAC,GAAG;QAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK;YAAE,OAAO,gBAAgB,EAAE,CAAC;QAC7D,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QACnD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;iFACiF;AACjF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC"}