@caelo-cms/shared 0.10.23 → 0.10.26

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 (137) hide show
  1. package/dist/ai-tools.d.ts +15 -70
  2. package/dist/ai-tools.d.ts.map +1 -1
  3. package/dist/ai-tools.js +14 -74
  4. package/dist/ai-tools.js.map +1 -1
  5. package/dist/base-css.d.ts +11 -0
  6. package/dist/base-css.d.ts.map +1 -1
  7. package/dist/base-css.js +13 -1
  8. package/dist/base-css.js.map +1 -1
  9. package/dist/build-page.d.ts +0 -2
  10. package/dist/build-page.d.ts.map +1 -1
  11. package/dist/build-page.js +2 -3
  12. package/dist/build-page.js.map +1 -1
  13. package/dist/content.d.ts +0 -3
  14. package/dist/content.d.ts.map +1 -1
  15. package/dist/content.js +91 -7
  16. package/dist/content.js.map +1 -1
  17. package/dist/context.d.ts +6 -0
  18. package/dist/context.d.ts.map +1 -1
  19. package/dist/design-draft-shell.d.ts +21 -0
  20. package/dist/design-draft-shell.d.ts.map +1 -0
  21. package/dist/design-draft-shell.js +81 -0
  22. package/dist/design-draft-shell.js.map +1 -0
  23. package/dist/font-assets.d.ts +89 -0
  24. package/dist/font-assets.d.ts.map +1 -0
  25. package/dist/font-assets.js +61 -0
  26. package/dist/font-assets.js.map +1 -0
  27. package/dist/genesis.d.ts +43 -3
  28. package/dist/genesis.d.ts.map +1 -1
  29. package/dist/genesis.js +72 -5
  30. package/dist/genesis.js.map +1 -1
  31. package/dist/google-models.d.ts +35 -0
  32. package/dist/google-models.d.ts.map +1 -0
  33. package/dist/google-models.js +20 -0
  34. package/dist/google-models.js.map +1 -0
  35. package/dist/index.d.ts +5 -3
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +5 -3
  38. package/dist/index.js.map +1 -1
  39. package/dist/media.d.ts +0 -3
  40. package/dist/media.d.ts.map +1 -1
  41. package/dist/media.js +0 -5
  42. package/dist/media.js.map +1 -1
  43. package/dist/plugin-preview.d.ts +44 -0
  44. package/dist/plugin-preview.d.ts.map +1 -0
  45. package/dist/plugin-preview.js +69 -0
  46. package/dist/plugin-preview.js.map +1 -0
  47. package/dist/preview-compose.d.ts +35 -15
  48. package/dist/preview-compose.d.ts.map +1 -1
  49. package/dist/preview-compose.js +95 -89
  50. package/dist/preview-compose.js.map +1 -1
  51. package/dist/responsive-images.d.ts +6 -5
  52. package/dist/responsive-images.d.ts.map +1 -1
  53. package/dist/responsive-images.js +6 -5
  54. package/dist/responsive-images.js.map +1 -1
  55. package/dist/seo.d.ts +11 -28
  56. package/dist/seo.d.ts.map +1 -1
  57. package/dist/seo.js +12 -31
  58. package/dist/seo.js.map +1 -1
  59. package/dist/structured-sets.d.ts +0 -36
  60. package/dist/structured-sets.d.ts.map +1 -1
  61. package/dist/structured-sets.js +1 -52
  62. package/dist/structured-sets.js.map +1 -1
  63. package/dist/template-engine.d.ts +18 -0
  64. package/dist/template-engine.d.ts.map +1 -1
  65. package/dist/template-engine.js +39 -2
  66. package/dist/template-engine.js.map +1 -1
  67. package/dist/theme-importers/loose.js +1 -1
  68. package/dist/theme-importers/loose.js.map +1 -1
  69. package/dist/theme-normalize.d.ts +9 -0
  70. package/dist/theme-normalize.d.ts.map +1 -1
  71. package/dist/theme-normalize.js +65 -6
  72. package/dist/theme-normalize.js.map +1 -1
  73. package/dist/theme-render.d.ts +15 -0
  74. package/dist/theme-render.d.ts.map +1 -1
  75. package/dist/theme-render.js +39 -0
  76. package/dist/theme-render.js.map +1 -1
  77. package/dist/themes.d.ts +15 -1
  78. package/dist/themes.d.ts.map +1 -1
  79. package/dist/themes.js +48 -1
  80. package/dist/themes.js.map +1 -1
  81. package/dist/url.d.ts +45 -0
  82. package/dist/url.d.ts.map +1 -0
  83. package/dist/url.js +64 -0
  84. package/dist/url.js.map +1 -0
  85. package/dist/version.d.ts +2 -2
  86. package/dist/version.js +1 -1
  87. package/package.json +2 -2
  88. package/src/__tests__/redos-hardening.test.ts +1 -1
  89. package/src/ai-tools.ts +14 -90
  90. package/src/base-css.ts +13 -1
  91. package/src/build-page.ts +3 -5
  92. package/src/content.test.ts +99 -17
  93. package/src/content.ts +95 -8
  94. package/src/context.ts +6 -0
  95. package/src/design-draft-shell.test.ts +85 -0
  96. package/src/design-draft-shell.ts +109 -0
  97. package/src/font-assets.ts +63 -0
  98. package/src/genesis.ts +76 -5
  99. package/src/google-models.ts +20 -0
  100. package/src/index.ts +5 -3
  101. package/src/media.ts +0 -6
  102. package/src/plugin-preview.test.ts +79 -0
  103. package/src/plugin-preview.ts +81 -0
  104. package/src/preview-compose-deferrals.test.ts +144 -0
  105. package/src/preview-compose.test.ts +51 -0
  106. package/src/preview-compose.ts +128 -93
  107. package/src/responsive-images.ts +6 -5
  108. package/src/seo.test.ts +8 -48
  109. package/src/seo.ts +16 -52
  110. package/src/structured-sets.ts +1 -67
  111. package/src/template-engine-data-lists.test.ts +90 -0
  112. package/src/template-engine.ts +72 -1
  113. package/src/theme-importers/loose.ts +1 -1
  114. package/src/theme-normalize.ts +70 -8
  115. package/src/theme-render.ts +36 -0
  116. package/src/theme-token-roles.test.ts +182 -0
  117. package/src/themes.ts +53 -0
  118. package/src/url.test.ts +40 -0
  119. package/src/url.ts +69 -0
  120. package/src/version.ts +1 -1
  121. package/dist/design-manifest.d.ts +0 -36
  122. package/dist/design-manifest.d.ts.map +0 -1
  123. package/dist/design-manifest.js +0 -90
  124. package/dist/design-manifest.js.map +0 -1
  125. package/dist/i18n.d.ts +0 -92
  126. package/dist/i18n.d.ts.map +0 -1
  127. package/dist/i18n.js +0 -226
  128. package/dist/i18n.js.map +0 -1
  129. package/dist/translation.d.ts +0 -127
  130. package/dist/translation.d.ts.map +0 -1
  131. package/dist/translation.js +0 -208
  132. package/dist/translation.js.map +0 -1
  133. package/src/design-manifest.ts +0 -93
  134. package/src/i18n.test.ts +0 -274
  135. package/src/i18n.ts +0 -269
  136. package/src/translation.test.ts +0 -160
  137. package/src/translation.ts +0 -295
package/dist/content.js CHANGED
@@ -67,10 +67,6 @@ export function slugifyModuleName(displayName, suffix = Date.now().toString(36))
67
67
  export function slugifyModuleSection(displayName, idx, suffix = Date.now().toString(36)) {
68
68
  return `${deriveModuleType(displayName)}-${idx}-${suffix}`;
69
69
  }
70
- /** BCP-47 shape: 2-letter language with optional 2-letter region. P9 widens this. */
71
- export const localeSchema = z
72
- .string()
73
- .regex(/^[a-z]{2}(-[A-Z]{2})?$/, "locale must be 'xx' or 'xx-YY' (BCP-47 shape)");
74
70
  const displayNameSchema = z.string().min(1).max(128);
75
71
  /** Caps are arbitrary but cheap — paste-of-binary mistakes get caught. */
76
72
  export const MODULE_HTML_MAX = 256 * 1024;
@@ -79,8 +75,36 @@ export const MODULE_JS_MAX = 256 * 1024;
79
75
  export const TEMPLATE_HTML_MAX = 512 * 1024;
80
76
  export const TEMPLATE_CSS_MAX = 128 * 1024;
81
77
  const moduleHtml = z.string().max(MODULE_HTML_MAX, `html exceeds ${MODULE_HTML_MAX} bytes`);
82
- const moduleCss = z.string().max(MODULE_CSS_MAX, `css exceeds ${MODULE_CSS_MAX} bytes`);
83
- const moduleJs = z.string().max(MODULE_JS_MAX, `js exceeds ${MODULE_JS_MAX} bytes`);
78
+ /**
79
+ * issue #432 root-cause guard — reject XML CDATA wrappers in module css/js.
80
+ *
81
+ * Module css/js is stored and served VERBATIM, so a `<![CDATA[ … ]]>`
82
+ * wrapper (an XHTML-era idiom the AI occasionally reaches for when
83
+ * "protecting" inline code) reaches the browser unparsed: the stylesheet
84
+ * fails to apply and the script throws `SyntaxError: Unexpected token '<'`.
85
+ * On e2e runs 31000584991 / 31000699422 (2026-08-05) exactly this landed
86
+ * silently, the page rendered broken, and the model burned ~15–20 extra
87
+ * loops (~+1.2M input tokens) discovering and repairing it via
88
+ * screenshot/inspect/edit cycles. Rejecting at the write boundary with an
89
+ * actionable message turns that repair spiral into a single corrected call
90
+ * (CLAUDE.md §11 — failure surfaces are AI-actionable; §2 — fail loudly).
91
+ *
92
+ * css/js only: CDATA is never valid CSS or JS, while an html body may
93
+ * legitimately carry CDATA inside inline `<svg>`/`<math>` foreign content.
94
+ */
95
+ const CDATA_OPEN = "<![CDATA[";
96
+ const noCdata = (value) => !value.includes(CDATA_OPEN);
97
+ const cdataMessage = (field) => `${field} contains an XML CDATA marker (${CDATA_OPEN}) — module ${field} is stored and served ` +
98
+ `verbatim, so CDATA wrappers reach the browser unparsed and break rendering. ` +
99
+ `Remove the wrapper and resend plain ${field === "css" ? "CSS" : "JavaScript"}.`;
100
+ const moduleCss = z
101
+ .string()
102
+ .max(MODULE_CSS_MAX, `css exceeds ${MODULE_CSS_MAX} bytes`)
103
+ .refine(noCdata, cdataMessage("css"));
104
+ const moduleJs = z
105
+ .string()
106
+ .max(MODULE_JS_MAX, `js exceeds ${MODULE_JS_MAX} bytes`)
107
+ .refine(noCdata, cdataMessage("js"));
84
108
  /**
85
109
  * v0.4.0 — module field schema. Each field declares one substitution slot in
86
110
  * the module's templated HTML (`{{fieldName}}`) and the kind of content it
@@ -239,6 +263,54 @@ export const moduleRefSchema = z
239
263
  contentInstanceId: z.string().uuid(),
240
264
  })
241
265
  .strict();
266
+ /**
267
+ * CLAUDE.md §1A — "repeating content is a list field, never numbered
268
+ * scalars". This guard rejects the mechanically detectable half of that
269
+ * rule: a RUN of 3+ sibling scalar fields sharing a base name plus a
270
+ * numeric suffix (`label`, `label2`, `label3` / `quote_1`…`quote_3`).
271
+ *
272
+ * Threshold is 3 (issue #417): a two-field split (`col1`/`col2` for a
273
+ * two-column layout) is routinely a genuine layout role, so a pair stays
274
+ * legal; three-or-more numbered siblings is repeating content that must
275
+ * be ONE list field. The bare base name counts as an implicit member of
276
+ * its run — `label` next to `label2`/`label3` is item 1 in disguise.
277
+ *
278
+ * Deliberately out of scope (guidance-only, per the issue): content-
279
+ * derived names (`quote_justamazing`) and mid-name numbering
280
+ * (`step1_title`) — neither is detectable without false positives.
281
+ * Nested/list kinds are excluded too: a numbered run of lists is
282
+ * already a modelling question, not scalar fanout. The server-side
283
+ * extractor fallback (`extract-module-structure.ts`) is also
284
+ * unguarded on purpose: it numbers repeated tags in messy HUMAN-
285
+ * authored HTML, runs only when the caller declared no fields, and its
286
+ * output never re-enters this schema — the guard polices the boundary
287
+ * where the AI (or a human) AUTHORS `fields[]` explicitly.
288
+ */
289
+ const NUMBERED_SCALAR_FANOUT_THRESHOLD = 3;
290
+ const numberedFieldName = /^([a-z][a-z0-9_]*?)_?\d+$/;
291
+ function findNumberedScalarFanoutRuns(fields) {
292
+ const scalarKinds = new Set(MODULE_FIELD_PRIMITIVE_KINDS);
293
+ const scalarNames = fields.filter((f) => scalarKinds.has(f.kind)).map((f) => f.name);
294
+ const byBase = new Map();
295
+ for (const name of scalarNames) {
296
+ const m = numberedFieldName.exec(name);
297
+ const base = m?.[1];
298
+ if (base === undefined)
299
+ continue;
300
+ const members = byBase.get(base);
301
+ if (members)
302
+ members.push(name);
303
+ else
304
+ byBase.set(base, [name]);
305
+ }
306
+ const runs = [];
307
+ for (const [base, members] of byBase) {
308
+ const run = scalarNames.includes(base) ? [base, ...members] : members;
309
+ if (run.length >= NUMBERED_SCALAR_FANOUT_THRESHOLD)
310
+ runs.push(run);
311
+ }
312
+ return runs;
313
+ }
242
314
  const moduleFieldsArray = z
243
315
  .array(moduleFieldSchema)
244
316
  .max(64, "modules may declare at most 64 fields")
@@ -251,6 +323,19 @@ const moduleFieldsArray = z
251
323
  }
252
324
  seen.add(f.name);
253
325
  }
326
+ for (const run of findNumberedScalarFanoutRuns(arr)) {
327
+ ctx.addIssue({
328
+ code: z.ZodIssueCode.custom,
329
+ message: `numbered-scalar fanout: ${run.map((n) => `"${n}"`).join(", ")} repeat one role as ` +
330
+ "numbered scalar fields — repeating content is ONE list field, never numbered scalars " +
331
+ '(CLAUDE.md §1A). Replace the run with a single field: kind "text-list" (list of ' +
332
+ 'strings, inner template iterates {{.}}), "link-list" (list of {label, href}), or ' +
333
+ '"module-list" (rich per-item structure: mint a card sub-module and reference it per ' +
334
+ "item — in build_page, author the card detached with `ref` and pass " +
335
+ '[{"$ref": "<ref>"}, …] as the field value). A two-field split like col1/col2 is fine; ' +
336
+ `${NUMBERED_SCALAR_FANOUT_THRESHOLD}+ numbered siblings is a list.`,
337
+ });
338
+ }
254
339
  });
255
340
  /**
256
341
  * v0.12.0 — coarse role tag for the AI's `## Modules` catalog block.
@@ -398,7 +483,6 @@ export const pageStatusSchema = z.enum(["draft", "published"]);
398
483
  export const pageCreateSchema = z
399
484
  .object({
400
485
  slug: slugSchema,
401
- locale: localeSchema.default("en"),
402
486
  /** P6.7.5 — internal editor label. Defaults to title if omitted. */
403
487
  name: z.string().min(1).max(256).optional(),
404
488
  title: z.string().min(1).max(256),
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -27,6 +27,12 @@ export interface ExecutionContext {
27
27
  * fold consecutive AI actions into one entry.
28
28
  */
29
29
  readonly chatTaskId?: string;
30
+ /**
31
+ * For a plugin installed as an external artifact: the digest of the
32
+ * artifact this call runs. Private storage operations accept the call
33
+ * only while exactly this artifact is the active, granted one.
34
+ */
35
+ readonly pluginArtifactDigest?: string;
30
36
  /**
31
37
  * P10.5: parent attribution for subagent invocations. When the
32
38
  * `spawn_subagent` tool calls runChatTurn for the child, it carries
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC"}
@@ -0,0 +1,21 @@
1
+ import { type ComposeFonts, type ComposeTheme } from "./preview-compose.js";
2
+ export interface DesignDraftShellInput {
3
+ /** The stored fragment (already script-stripped at the boundary). */
4
+ readonly fragmentHtml: string;
5
+ /** Active theme; undefined renders the shell without theme vars
6
+ * (loud: the draft's `var(--…)` references fall to browser initial
7
+ * values — visibly broken, per CLAUDE.md §2 no-fallbacks). */
8
+ readonly theme?: ComposeTheme;
9
+ /** Resolved web fonts; undefined = system stacks only. */
10
+ readonly fonts?: ComposeFonts;
11
+ /** Document title shown in the iframe (accessibility). */
12
+ readonly title: string;
13
+ }
14
+ export interface DesignDraftShellOutput {
15
+ readonly html: string;
16
+ /** `theme-asset-unbound:<slot>` markers, mirroring the template
17
+ * engine's failure-marker contract. */
18
+ readonly missingSlots: readonly string[];
19
+ }
20
+ export declare function composeDesignDraftShell(input: DesignDraftShellInput): DesignDraftShellOutput;
21
+ //# sourceMappingURL=design-draft-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-draft-shell.d.ts","sourceRoot":"","sources":["../src/design-draft-shell.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAqB,MAAM,sBAAsB,CAAC;AAY/F,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;mEAE+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;4CACwC;IACxC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AA6BD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAyB5F"}
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ /**
3
+ * issue #375 — theme shell for growth-time design-draft previews.
4
+ *
5
+ * Page/module-scope drafts are stored as FRAGMENTS bound to the site's
6
+ * `var(--…)` tokens; this composer wraps one in the site's real
7
+ * compiled theme at view time: web fonts (#150), theme CSS variables,
8
+ * and the invisible technical baseline (#151) — in the exact head
9
+ * order `composePagePreview` uses, so a draft previews in the same
10
+ * cascade it will materialise into. Pure / sync / no IO: the caller
11
+ * (the `genesis.render_draft` op) loads the theme row and resolves
12
+ * fonts, mirroring `pages.render_preview`.
13
+ */
14
+ import { BASE_TECHNICAL_CSS } from "./base-css.js";
15
+ import { fontsHeadFragment } from "./preview-compose.js";
16
+ import { caeloMissingComment } from "./template-engine.js";
17
+ import { renderThemeCss } from "./theme-render.js";
18
+ /** Same four placeholders the template engine resolves (v0.11.1, #76). */
19
+ const THEME_ASSET_KEY_TO_SLOT = {
20
+ theme_logo_url: "logo",
21
+ theme_logo_dark_url: "logoDark",
22
+ theme_favicon_url: "favicon",
23
+ theme_social_share_url: "socialShare",
24
+ };
25
+ /**
26
+ * Resolve `{{theme_*_url}}` placeholders in a draft fragment. Bound
27
+ * slots substitute their URL; a placeholder on an unbound slot stays
28
+ * loud-raw IN PLACE (placeholders usually sit inside attribute values,
29
+ * where an appended comment would corrupt the URL string — PR-378
30
+ * review) and lands in `missingSlots`; the caller appends the real
31
+ * `caelo:missing` comment nodes at the end of the body so the marker
32
+ * tooling still sees them. Other `{{…}}` sequences are left untouched:
33
+ * a draft is not a fielded module.
34
+ */
35
+ function substituteThemeAssetUrls(html, theme, missing) {
36
+ return html.replace(/\{\{\s*(theme_[a-z_]+)\s*\}\}/g, (match, key) => {
37
+ const slot = THEME_ASSET_KEY_TO_SLOT[key];
38
+ if (slot === undefined)
39
+ return match;
40
+ const url = theme?.assets[slot]?.url;
41
+ if (url === undefined) {
42
+ missing.push(`theme-asset-unbound:${slot}`);
43
+ return match;
44
+ }
45
+ return url;
46
+ });
47
+ }
48
+ export function composeDesignDraftShell(input) {
49
+ const missing = [];
50
+ const substituted = substituteThemeAssetUrls(input.fragmentHtml, input.theme, missing);
51
+ // Real comment NODES, after the fragment — never inside an attribute.
52
+ const markers = [...new Set(missing)].map((m) => caeloMissingComment(m)).join("");
53
+ const body = substituted + markers;
54
+ // Head order mirrors composePagePreview: fonts first (URL discovery),
55
+ // then theme vars (so fragment CSS can `var(--color-primary)`), then
56
+ // the technical baseline.
57
+ const head = [
58
+ `<meta charset="utf-8">`,
59
+ `<meta name="viewport" content="width=device-width, initial-scale=1">`,
60
+ `<title>${escapeHtml(input.title)}</title>`,
61
+ ];
62
+ const fonts = fontsHeadFragment(input.fonts);
63
+ if (fonts !== null)
64
+ head.push(fonts);
65
+ const themeCss = input.theme !== undefined ? renderThemeCss(input.theme.tokens) : null;
66
+ if (themeCss !== null)
67
+ head.push(`<style data-source="theme">${themeCss}</style>`);
68
+ head.push(`<style data-source="base">${BASE_TECHNICAL_CSS}</style>`);
69
+ return {
70
+ html: `<!doctype html>\n<html><head>${head.join("")}</head><body>${body}</body></html>`,
71
+ missingSlots: missing,
72
+ };
73
+ }
74
+ function escapeHtml(s) {
75
+ return s
76
+ .replaceAll("&", "&amp;")
77
+ .replaceAll("<", "&lt;")
78
+ .replaceAll(">", "&gt;")
79
+ .replaceAll('"', "&quot;");
80
+ }
81
+ //# sourceMappingURL=design-draft-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-draft-shell.js","sourceRoot":"","sources":["../src/design-draft-shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { z } from "zod";
2
+ export declare const fontRef: z.ZodObject<{
3
+ id: z.ZodString;
4
+ sha256: z.ZodString;
5
+ }, z.core.$strict>;
6
+ export declare const fontLicense: z.ZodObject<{
7
+ name: z.ZodString;
8
+ text: z.ZodString;
9
+ webEmbedding: z.ZodBoolean;
10
+ documentEmbedding: z.ZodBoolean;
11
+ }, z.core.$strict>;
12
+ export declare const fontMetadata: z.ZodObject<{
13
+ id: z.ZodString;
14
+ sha256: z.ZodString;
15
+ family: z.ZodString;
16
+ subfamily: z.ZodString;
17
+ postscriptName: z.ZodString;
18
+ cssFamily: z.ZodString;
19
+ format: z.ZodEnum<{
20
+ ttf: "ttf";
21
+ otf: "otf";
22
+ woff: "woff";
23
+ woff2: "woff2";
24
+ }>;
25
+ weight: z.ZodNumber;
26
+ style: z.ZodEnum<{
27
+ normal: "normal";
28
+ italic: "italic";
29
+ }>;
30
+ axes: z.ZodRecord<z.ZodString, z.ZodObject<{
31
+ min: z.ZodNumber;
32
+ max: z.ZodNumber;
33
+ default: z.ZodNumber;
34
+ }, z.core.$strip>>;
35
+ sizeBytes: z.ZodNumber;
36
+ glyphCount: z.ZodNumber;
37
+ embedding: z.ZodObject<{
38
+ web: z.ZodBoolean;
39
+ document: z.ZodBoolean;
40
+ subset: z.ZodBoolean;
41
+ restriction: z.ZodNullable<z.ZodString>;
42
+ }, z.core.$strip>;
43
+ license: z.ZodObject<{
44
+ name: z.ZodString;
45
+ text: z.ZodString;
46
+ webEmbedding: z.ZodBoolean;
47
+ documentEmbedding: z.ZodBoolean;
48
+ }, z.core.$strict>;
49
+ source: z.ZodString;
50
+ createdAt: z.ZodString;
51
+ }, z.core.$strict>;
52
+ export type FontRef = z.infer<typeof fontRef>;
53
+ export type FontMetadata = z.infer<typeof fontMetadata>;
54
+ export declare const fontImportInput: z.ZodObject<{
55
+ dataBase64: z.ZodString;
56
+ license: z.ZodObject<{
57
+ name: z.ZodString;
58
+ text: z.ZodString;
59
+ webEmbedding: z.ZodBoolean;
60
+ documentEmbedding: z.ZodBoolean;
61
+ }, z.core.$strict>;
62
+ source: z.ZodString;
63
+ }, z.core.$strict>;
64
+ export declare const fontResolveInput: z.ZodObject<{
65
+ id: z.ZodString;
66
+ sha256: z.ZodString;
67
+ use: z.ZodEnum<{
68
+ web: "web";
69
+ document: "document";
70
+ }>;
71
+ text: z.ZodDefault<z.ZodString>;
72
+ formats: z.ZodArray<z.ZodEnum<{
73
+ ttf: "ttf";
74
+ otf: "otf";
75
+ woff: "woff";
76
+ woff2: "woff2";
77
+ }>>;
78
+ }, z.core.$strict>;
79
+ export declare const fontReadInput: z.ZodObject<{
80
+ id: z.ZodString;
81
+ sha256: z.ZodString;
82
+ offset: z.ZodNumber;
83
+ length: z.ZodNumber;
84
+ }, z.core.$strict>;
85
+ export declare const fontFindInput: z.ZodObject<{
86
+ query: z.ZodDefault<z.ZodString>;
87
+ limit: z.ZodDefault<z.ZodNumber>;
88
+ }, z.core.$strict>;
89
+ //# sourceMappingURL=font-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-assets.d.ts","sourceRoot":"","sources":["../src/font-assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,OAAO;;;kBAET,CAAC;AACZ,eAAO,MAAM,WAAW;;;;;kBAOb,CAAC;AACZ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoBvB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,eAAO,MAAM,eAAe;;;;;;;;;kBAMjB,CAAC;AACZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;kBASlB,CAAC;AACZ,eAAO,MAAM,aAAa;;;;;kBAEf,CAAC;AACZ,eAAO,MAAM,aAAa;;;kBAKf,CAAC"}
@@ -0,0 +1,61 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ import { z } from "zod";
3
+ export const fontRef = z
4
+ .object({ id: z.string().uuid(), sha256: z.string().regex(/^[a-f0-9]{64}$/) })
5
+ .strict();
6
+ export const fontLicense = z
7
+ .object({
8
+ name: z.string().min(1).max(200),
9
+ text: z.string().min(1).max(100_000),
10
+ webEmbedding: z.boolean(),
11
+ documentEmbedding: z.boolean(),
12
+ })
13
+ .strict();
14
+ export const fontMetadata = fontRef.extend({
15
+ family: z.string(),
16
+ subfamily: z.string(),
17
+ postscriptName: z.string(),
18
+ cssFamily: z.string(),
19
+ format: z.enum(["ttf", "otf", "woff", "woff2"]),
20
+ weight: z.number(),
21
+ style: z.enum(["normal", "italic"]),
22
+ axes: z.record(z.string(), z.object({ min: z.number(), max: z.number(), default: z.number() })),
23
+ sizeBytes: z.number(),
24
+ glyphCount: z.number(),
25
+ embedding: z.object({
26
+ web: z.boolean(),
27
+ document: z.boolean(),
28
+ subset: z.boolean(),
29
+ restriction: z.string().nullable(),
30
+ }),
31
+ license: fontLicense,
32
+ source: z.string(),
33
+ createdAt: z.string(),
34
+ });
35
+ export const fontImportInput = z
36
+ .object({
37
+ dataBase64: z.string().min(1).max(11_184_812),
38
+ license: fontLicense,
39
+ source: z.string().min(1).max(1000),
40
+ })
41
+ .strict();
42
+ export const fontResolveInput = fontRef
43
+ .extend({
44
+ use: z.enum(["web", "document"]),
45
+ text: z.string().max(200_000).default(""),
46
+ formats: z
47
+ .array(z.enum(["ttf", "otf", "woff", "woff2"]))
48
+ .min(1)
49
+ .max(4),
50
+ })
51
+ .strict();
52
+ export const fontReadInput = fontRef
53
+ .extend({ offset: z.number().int().min(0), length: z.number().int().min(1).max(262144) })
54
+ .strict();
55
+ export const fontFindInput = z
56
+ .object({
57
+ query: z.string().max(200).default(""),
58
+ limit: z.number().int().min(1).max(100).default(50),
59
+ })
60
+ .strict();
61
+ //# sourceMappingURL=font-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-assets.js","sourceRoot":"","sources":["../src/font-assets.ts"],"names":[],"mappings":"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"}
package/dist/genesis.d.ts CHANGED
@@ -1,10 +1,15 @@
1
1
  /**
2
- * issue #163 — Site Genesis shared shapes.
2
+ * issue #163 — Site Genesis shared shapes; issue #375 generalises the
3
+ * same draft loop to growth-time.
3
4
  *
4
5
  * Design-time is divergent: the AI drafts complete freeform HTML pages
5
6
  * (one per design direction) and the operator picks one; the CMS
6
- * structure is derived FROM that choice (#164's compiler). These are
7
- * the boundary schemas for the brief + the draft rows.
7
+ * structure is derived FROM that choice (#164's compiler). Growth-time
8
+ * reuses the identical draft → present → select → materialise loop at
9
+ * smaller scope: `page` and `module` drafts are FRAGMENTS bound to the
10
+ * site's `var(--…)` theme tokens, composed into the real theme shell
11
+ * only at view time (never an AI approximation of the theme — #375).
12
+ * These are the boundary schemas for the brief + the draft rows.
8
13
  */
9
14
  import { z } from "zod";
10
15
  /**
@@ -38,10 +43,45 @@ export declare const genesisDraftSourceKind: z.ZodEnum<{
38
43
  byod_html: "byod_html";
39
44
  }>;
40
45
  export type GenesisDraftSourceKind = z.infer<typeof genesisDraftSourceKind>;
46
+ /**
47
+ * issue #375 — what a draft covers. `site` is the Genesis case (a whole
48
+ * new design); `page` / `module` are growth-time variants of something
49
+ * that already exists.
50
+ */
51
+ export declare const designDraftScope: z.ZodEnum<{
52
+ module: "module";
53
+ page: "page";
54
+ site: "site";
55
+ }>;
56
+ export type DesignDraftScope = z.infer<typeof designDraftScope>;
57
+ /**
58
+ * issue #375 — how a draft's HTML is stored. `site` drafts are complete
59
+ * standalone documents (Genesis, unchanged); `page`/`module` drafts are
60
+ * fragments that only become a renderable document when composed with
61
+ * the site's real theme shell at view time — so a stored variant never
62
+ * freezes a stale copy of the theme.
63
+ */
64
+ export declare const designDraftFormat: z.ZodEnum<{
65
+ document: "document";
66
+ fragment: "fragment";
67
+ }>;
68
+ export type DesignDraftFormat = z.infer<typeof designDraftFormat>;
69
+ /** The stored format is fully determined by the scope (see the paired
70
+ * DB CHECK constraint): `site` → standalone document, else fragment. */
71
+ export declare function draftFormatForScope(scope: DesignDraftScope): DesignDraftFormat;
72
+ /** Scope/target pairing rules shared by the op and the AI tool. */
41
73
  export declare const genesisAddDraftInput: z.ZodObject<{
42
74
  direction: z.ZodString;
43
75
  rationale: z.ZodDefault<z.ZodString>;
44
76
  html: z.ZodString;
77
+ scope: z.ZodDefault<z.ZodEnum<{
78
+ module: "module";
79
+ page: "page";
80
+ site: "site";
81
+ }>>;
82
+ targetPageId: z.ZodOptional<z.ZodString>;
83
+ targetModuleId: z.ZodOptional<z.ZodString>;
84
+ variantSetId: z.ZodOptional<z.ZodString>;
45
85
  sourceKind: z.ZodDefault<z.ZodEnum<{
46
86
  genesis: "genesis";
47
87
  byod_image: "byod_image";
@@ -1 +1 @@
1
- {"version":3,"file":"genesis.d.ts","sourceRoot":"","sources":["../src/genesis.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;kBAWnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,SAAU,CAAC;AAEpD,eAAO,MAAM,kBAAkB;;;;EAAiD,CAAC;AACjF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB;;;;EAAiD,CAAC;AACrF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;kBAetB,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBtD"}
1
+ {"version":3,"file":"genesis.d.ts","sourceRoot":"","sources":["../src/genesis.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;kBAWnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,SAAU,CAAC;AAEpD,eAAO,MAAM,kBAAkB;;;;EAAiD,CAAC;AACjF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB;;;;EAAiD,CAAC;AACrF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;EAAqC,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;EAAmC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;yEACyE;AACzE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAE9E;AA+BD,mEAAmE;AACnE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;kBA2B/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBtD"}