@caelo-cms/shared 0.10.24 → 0.10.27

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 (115) hide show
  1. package/dist/ai-tools.d.ts +23 -14
  2. package/dist/ai-tools.d.ts.map +1 -1
  3. package/dist/ai-tools.js +18 -16
  4. package/dist/ai-tools.js.map +1 -1
  5. package/dist/build-page.d.ts +0 -2
  6. package/dist/build-page.d.ts.map +1 -1
  7. package/dist/build-page.js +2 -3
  8. package/dist/build-page.js.map +1 -1
  9. package/dist/content.d.ts +0 -3
  10. package/dist/content.d.ts.map +1 -1
  11. package/dist/content.js +91 -7
  12. package/dist/content.js.map +1 -1
  13. package/dist/context.d.ts +6 -0
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/font-assets.d.ts +89 -0
  16. package/dist/font-assets.d.ts.map +1 -0
  17. package/dist/font-assets.js +61 -0
  18. package/dist/font-assets.js.map +1 -0
  19. package/dist/google-models.d.ts +19 -0
  20. package/dist/google-models.d.ts.map +1 -0
  21. package/dist/google-models.js +13 -0
  22. package/dist/google-models.js.map +1 -0
  23. package/dist/image-capabilities.d.ts +55 -0
  24. package/dist/image-capabilities.d.ts.map +1 -0
  25. package/dist/image-capabilities.js +39 -0
  26. package/dist/image-capabilities.js.map +1 -0
  27. package/dist/index.d.ts +5 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +5 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/media.d.ts +29 -3
  32. package/dist/media.d.ts.map +1 -1
  33. package/dist/media.js +19 -5
  34. package/dist/media.js.map +1 -1
  35. package/dist/plugin-preview.d.ts +44 -0
  36. package/dist/plugin-preview.d.ts.map +1 -0
  37. package/dist/plugin-preview.js +69 -0
  38. package/dist/plugin-preview.js.map +1 -0
  39. package/dist/preview-compose.d.ts +26 -0
  40. package/dist/preview-compose.d.ts.map +1 -1
  41. package/dist/preview-compose.js +92 -46
  42. package/dist/preview-compose.js.map +1 -1
  43. package/dist/responsive-images.d.ts +6 -5
  44. package/dist/responsive-images.d.ts.map +1 -1
  45. package/dist/responsive-images.js +6 -5
  46. package/dist/responsive-images.js.map +1 -1
  47. package/dist/seo.d.ts +10 -14
  48. package/dist/seo.d.ts.map +1 -1
  49. package/dist/seo.js +11 -12
  50. package/dist/seo.js.map +1 -1
  51. package/dist/template-engine.d.ts +18 -0
  52. package/dist/template-engine.d.ts.map +1 -1
  53. package/dist/template-engine.js +39 -2
  54. package/dist/template-engine.js.map +1 -1
  55. package/dist/theme-importers/loose.js +1 -1
  56. package/dist/theme-importers/loose.js.map +1 -1
  57. package/dist/theme-normalize.d.ts +9 -0
  58. package/dist/theme-normalize.d.ts.map +1 -1
  59. package/dist/theme-normalize.js +65 -6
  60. package/dist/theme-normalize.js.map +1 -1
  61. package/dist/theme-render.d.ts +15 -0
  62. package/dist/theme-render.d.ts.map +1 -1
  63. package/dist/theme-render.js +39 -0
  64. package/dist/theme-render.js.map +1 -1
  65. package/dist/themes.d.ts +15 -1
  66. package/dist/themes.d.ts.map +1 -1
  67. package/dist/themes.js +48 -1
  68. package/dist/themes.js.map +1 -1
  69. package/dist/url.d.ts +45 -0
  70. package/dist/url.d.ts.map +1 -0
  71. package/dist/url.js +64 -0
  72. package/dist/url.js.map +1 -0
  73. package/dist/version.d.ts +2 -2
  74. package/dist/version.js +1 -1
  75. package/package.json +2 -2
  76. package/src/__tests__/redos-hardening.test.ts +1 -1
  77. package/src/ai-tools.ts +19 -16
  78. package/src/build-page.ts +3 -5
  79. package/src/content.test.ts +99 -17
  80. package/src/content.ts +95 -8
  81. package/src/context.ts +6 -0
  82. package/src/font-assets.ts +63 -0
  83. package/src/google-models.ts +13 -0
  84. package/src/image-capabilities.ts +91 -0
  85. package/src/index.ts +5 -2
  86. package/src/media.ts +23 -6
  87. package/src/plugin-preview.test.ts +79 -0
  88. package/src/plugin-preview.ts +81 -0
  89. package/src/preview-compose-deferrals.test.ts +144 -0
  90. package/src/preview-compose.test.ts +16 -0
  91. package/src/preview-compose.ts +125 -37
  92. package/src/responsive-images.ts +6 -5
  93. package/src/seo.test.ts +8 -8
  94. package/src/seo.ts +15 -23
  95. package/src/template-engine-data-lists.test.ts +90 -0
  96. package/src/template-engine.ts +72 -1
  97. package/src/theme-importers/loose.ts +1 -1
  98. package/src/theme-normalize.ts +70 -8
  99. package/src/theme-render.ts +36 -0
  100. package/src/theme-token-roles.test.ts +182 -0
  101. package/src/themes.ts +53 -0
  102. package/src/url.test.ts +40 -0
  103. package/src/url.ts +69 -0
  104. package/src/version.ts +1 -1
  105. package/dist/design-manifest.d.ts +0 -36
  106. package/dist/design-manifest.d.ts.map +0 -1
  107. package/dist/design-manifest.js +0 -90
  108. package/dist/design-manifest.js.map +0 -1
  109. package/dist/i18n.d.ts +0 -42
  110. package/dist/i18n.d.ts.map +0 -1
  111. package/dist/i18n.js +0 -85
  112. package/dist/i18n.js.map +0 -1
  113. package/src/design-manifest.ts +0 -93
  114. package/src/i18n.test.ts +0 -58
  115. package/src/i18n.ts +0 -91
package/dist/themes.d.ts CHANGED
@@ -49,6 +49,10 @@ export declare const themeDimensionToken: z.ZodObject<{
49
49
  export declare const themeTypographyComposite: z.ZodObject<{
50
50
  $value: z.ZodUnion<readonly [z.ZodObject<{
51
51
  fontFamily: z.ZodOptional<z.ZodString>;
52
+ fontStyle: z.ZodOptional<z.ZodEnum<{
53
+ normal: "normal";
54
+ italic: "italic";
55
+ }>>;
52
56
  fontSize: z.ZodOptional<z.ZodString>;
53
57
  fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodEnum<{
54
58
  bold: "bold";
@@ -137,6 +141,10 @@ declare const anyThemeToken: z.ZodUnion<readonly [z.ZodObject<{
137
141
  }, z.core.$strict>, z.ZodObject<{
138
142
  $value: z.ZodUnion<readonly [z.ZodObject<{
139
143
  fontFamily: z.ZodOptional<z.ZodString>;
144
+ fontStyle: z.ZodOptional<z.ZodEnum<{
145
+ normal: "normal";
146
+ italic: "italic";
147
+ }>>;
140
148
  fontSize: z.ZodOptional<z.ZodString>;
141
149
  fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodEnum<{
142
150
  bold: "bold";
@@ -327,8 +335,14 @@ export declare function summarizeTokens(tokens: ThemeDocument): string;
327
335
  * use this same logic — extracted so the dotted-path merge lives in
328
336
  * one place and v0.11.1's OKLCH auto-ramp can extend it without
329
337
  * forking.
338
+ *
339
+ * issue #430 — `$description` (the token's ROLE: what it is for and
340
+ * where it must not be used) is preserved across value-only edits and
341
+ * overwritten only when `descriptions` supplies a new one. Before this,
342
+ * every routine value edit silently erased the role, so recording a
343
+ * role at all was pointless: the next `set_theme_tokens` wiped it.
330
344
  */
331
- export declare function applyDtcgWrites(current: ThemeDocument, writes: Record<string, unknown>, types: Record<string, string>): ThemeDocument;
345
+ export declare function applyDtcgWrites(current: ThemeDocument, writes: Record<string, unknown>, types: Record<string, string>, descriptions?: Record<string, string>): ThemeDocument;
332
346
  /**
333
347
  * Companion to `applyDtcgWrites` — drop the leaf at a canonical path
334
348
  * if it exists. Returns `{tokens, removed}` so the caller can report
@@ -1 +1 @@
1
- {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
package/dist/themes.js CHANGED
@@ -22,6 +22,7 @@
22
22
  */
23
23
  import { z } from "zod";
24
24
  import { isUnsafeKey } from "./safe-keys.js";
25
+ import { UnknownTokenName } from "./themes-errors.js";
25
26
  // ────────────────────────────────────────────────────────────────────
26
27
  // Primitives
27
28
  // ────────────────────────────────────────────────────────────────────
@@ -97,6 +98,7 @@ export const themeTypographyComposite = z
97
98
  z
98
99
  .object({
99
100
  fontFamily: z.string().min(1).max(200).optional(),
101
+ fontStyle: z.enum(["normal", "italic"]).optional(),
100
102
  fontSize: dimensionValueString.optional(),
101
103
  fontWeight: fontWeightValue.optional(),
102
104
  lineHeight: z.union([z.number().positive(), dimensionValueString]).optional(),
@@ -585,8 +587,14 @@ function pluralise(category, n) {
585
587
  * use this same logic — extracted so the dotted-path merge lives in
586
588
  * one place and v0.11.1's OKLCH auto-ramp can extend it without
587
589
  * forking.
590
+ *
591
+ * issue #430 — `$description` (the token's ROLE: what it is for and
592
+ * where it must not be used) is preserved across value-only edits and
593
+ * overwritten only when `descriptions` supplies a new one. Before this,
594
+ * every routine value edit silently erased the role, so recording a
595
+ * role at all was pointless: the next `set_theme_tokens` wiped it.
588
596
  */
589
- export function applyDtcgWrites(current, writes, types) {
597
+ export function applyDtcgWrites(current, writes, types, descriptions = {}) {
590
598
  const out = JSON.parse(JSON.stringify(current));
591
599
  for (const [path, value] of Object.entries(writes)) {
592
600
  const inferredType = types[path];
@@ -610,9 +618,48 @@ export function applyDtcgWrites(current, writes, types) {
610
618
  ...value,
611
619
  };
612
620
  }
621
+ // Role precedence: an explicitly supplied description wins; otherwise
622
+ // the leaf keeps the one it already carries. Only a token that never
623
+ // had a role ends up without one.
624
+ const existingDescription = existing && typeof existing === "object"
625
+ ? existing.$description
626
+ : undefined;
627
+ const nextDescription = descriptions[path] ??
628
+ (typeof existingDescription === "string" ? existingDescription : undefined);
629
+ const extensions = existing && typeof existing === "object"
630
+ ? { ...(existing.$extensions ?? {}) }
631
+ : {};
632
+ const oldValue = existing?.$value;
633
+ if (path.startsWith("typography.") &&
634
+ nextValue &&
635
+ typeof nextValue === "object" &&
636
+ nextValue.fontFamily !== oldValue?.fontFamily)
637
+ delete extensions["caelo.font"];
613
638
  setLeafAtPath(out, path, {
639
+ ...(Object.keys(extensions).length ? { $extensions: extensions } : {}),
614
640
  $value: nextValue,
615
641
  ...(inferredType ? { $type: inferredType } : {}),
642
+ ...(nextDescription !== undefined ? { $description: nextDescription } : {}),
643
+ });
644
+ }
645
+ // issue #430 — ROLE-ONLY paths: a description with no value in `writes`.
646
+ // The anchor-page design review annotates tokens whose values are already
647
+ // settled, so it must not have to restate them (a restated value is a
648
+ // chance to drift one). Patch the metadata, leave `$value` and `$type`
649
+ // exactly as they are.
650
+ for (const [path, description] of Object.entries(descriptions)) {
651
+ if (path in writes)
652
+ continue;
653
+ const existing = readLeafAtPath(out, path);
654
+ if (!existing) {
655
+ // Annotating a token that does not exist is a mistake worth naming —
656
+ // silently minting a value-less leaf would produce a document the
657
+ // renderer can't emit (CLAUDE.md §2).
658
+ throw new UnknownTokenName(path, []);
659
+ }
660
+ setLeafAtPath(out, path, {
661
+ ...existing,
662
+ $description: description,
616
663
  });
617
664
  }
618
665
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
package/dist/url.d.ts ADDED
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Slug/URL primitives shared between the static generator, the preview
3
+ * op, and the admin UI (epic #380 #384 — successor of the deleted
4
+ * i18n.ts). URL shape beyond base + slug becomes a plugin contribution
5
+ * on the URL composition point (#390).
6
+ *
7
+ * isHomeSlug / isDesignatedHomePage — the home-decision predicate.
8
+ * trimSlashes / trimTrailingSlashes — linear-scan slug hygiene.
9
+ */
10
+ /**
11
+ * Strip leading and trailing `/` characters with a single linear scan.
12
+ *
13
+ * Replaces the regex `/^\/+|\/+$/g`, whose trailing-slash branch
14
+ * backtracks O(n²) on a long run of slashes that is not at end-of-string
15
+ * (CodeQL js/polynomial-redos). This char-index walk is unconditionally
16
+ * linear and produces byte-identical output for every input.
17
+ */
18
+ export declare function trimSlashes(s: string): string;
19
+ /**
20
+ * Strip only trailing `/` characters with a single linear scan — the
21
+ * non-backtracking replacement for `/\/+$/` (same ReDoS class as above).
22
+ * Used for base URLs, which carry a scheme and must keep their leading
23
+ * characters.
24
+ */
25
+ export declare function trimTrailingSlashes(s: string): string;
26
+ /**
27
+ * The "magic slug" sentinel test: a page whose slug is empty, `home`,
28
+ * or `index` is the site root by convention even without an explicit
29
+ * `site_defaults.home_page_id` designation. Leading/trailing slashes
30
+ * are ignored so `/home/` reads the same as `home`.
31
+ */
32
+ export declare function isHomeSlug(slug: string): boolean;
33
+ /**
34
+ * The single home-decision predicate every URL/output-path site must
35
+ * use so canonical, redirects, and the emitted file agree (0184
36
+ * explicit-homepage feature). A page is the site root when it IS the
37
+ * designated `site_defaults.home_page_id` OR carries a magic slug.
38
+ *
39
+ * @param pageId The page being resolved.
40
+ * @param slug That page's slug.
41
+ * @param designatedHomePageId `site_defaults.home_page_id`
42
+ * (null/undefined when none designated).
43
+ */
44
+ export declare function isDesignatedHomePage(pageId: string, slug: string, designatedHomePageId: string | null | undefined): boolean;
45
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9C,OAAO,CAET"}
package/dist/url.js ADDED
@@ -0,0 +1,64 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ /**
3
+ * Slug/URL primitives shared between the static generator, the preview
4
+ * op, and the admin UI (epic #380 #384 — successor of the deleted
5
+ * i18n.ts). URL shape beyond base + slug becomes a plugin contribution
6
+ * on the URL composition point (#390).
7
+ *
8
+ * isHomeSlug / isDesignatedHomePage — the home-decision predicate.
9
+ * trimSlashes / trimTrailingSlashes — linear-scan slug hygiene.
10
+ */
11
+ /**
12
+ * Strip leading and trailing `/` characters with a single linear scan.
13
+ *
14
+ * Replaces the regex `/^\/+|\/+$/g`, whose trailing-slash branch
15
+ * backtracks O(n²) on a long run of slashes that is not at end-of-string
16
+ * (CodeQL js/polynomial-redos). This char-index walk is unconditionally
17
+ * linear and produces byte-identical output for every input.
18
+ */
19
+ export function trimSlashes(s) {
20
+ let start = 0;
21
+ let end = s.length;
22
+ while (start < end && s.charCodeAt(start) === 47 /* '/' */)
23
+ start += 1;
24
+ while (end > start && s.charCodeAt(end - 1) === 47 /* '/' */)
25
+ end -= 1;
26
+ return s.slice(start, end);
27
+ }
28
+ /**
29
+ * Strip only trailing `/` characters with a single linear scan — the
30
+ * non-backtracking replacement for `/\/+$/` (same ReDoS class as above).
31
+ * Used for base URLs, which carry a scheme and must keep their leading
32
+ * characters.
33
+ */
34
+ export function trimTrailingSlashes(s) {
35
+ let end = s.length;
36
+ while (end > 0 && s.charCodeAt(end - 1) === 47 /* '/' */)
37
+ end -= 1;
38
+ return s.slice(0, end);
39
+ }
40
+ /**
41
+ * The "magic slug" sentinel test: a page whose slug is empty, `home`,
42
+ * or `index` is the site root by convention even without an explicit
43
+ * `site_defaults.home_page_id` designation. Leading/trailing slashes
44
+ * are ignored so `/home/` reads the same as `home`.
45
+ */
46
+ export function isHomeSlug(slug) {
47
+ const s = trimSlashes(slug);
48
+ return s === "" || s === "home" || s === "index";
49
+ }
50
+ /**
51
+ * The single home-decision predicate every URL/output-path site must
52
+ * use so canonical, redirects, and the emitted file agree (0184
53
+ * explicit-homepage feature). A page is the site root when it IS the
54
+ * designated `site_defaults.home_page_id` OR carries a magic slug.
55
+ *
56
+ * @param pageId The page being resolved.
57
+ * @param slug That page's slug.
58
+ * @param designatedHomePageId `site_defaults.home_page_id`
59
+ * (null/undefined when none designated).
60
+ */
61
+ export function isDesignatedHomePage(pageId, slug, designatedHomePageId) {
62
+ return (designatedHomePageId != null && pageId === designatedHomePageId) || isHomeSlug(slug);
63
+ }
64
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,OAAO,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS;QAAE,KAAK,IAAI,CAAC,CAAC;IACvE,OAAO,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS;QAAE,GAAG,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAS;IAC3C,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS;QAAE,GAAG,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,CAAC;AACnD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,IAAY,EACZ,oBAA+C;IAE/C,OAAO,CAAC,oBAAoB,IAAI,IAAI,IAAI,MAAM,KAAK,oBAAoB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC"}
package/dist/version.d.ts CHANGED
@@ -19,7 +19,7 @@
19
19
  * Format: SemVer 2.0.0. Pre-1.0 minor bumps are breaking; post-1.0
20
20
  * follow standard SemVer.
21
21
  */
22
- export declare const CAELO_VERSION = "0.10.24";
22
+ export declare const CAELO_VERSION = "0.10.27";
23
23
  /**
24
24
  * Deprecated alias for back-compat — early P17 work spelled this
25
25
  * `CALEO_VERSION` (typo of "Caelo"). New code should import
@@ -31,7 +31,7 @@ export declare const CAELO_VERSION = "0.10.24";
31
31
  *
32
32
  * @deprecated use CAELO_VERSION
33
33
  */
34
- export declare const CALEO_VERSION = "0.10.24";
34
+ export declare const CALEO_VERSION = "0.10.27";
35
35
  /**
36
36
  * Parsed shape — major/minor/patch + optional pre-release tag.
37
37
  * Stable interface for callers that need to feature-gate (rare —
package/dist/version.js CHANGED
@@ -20,7 +20,7 @@
20
20
  * Format: SemVer 2.0.0. Pre-1.0 minor bumps are breaking; post-1.0
21
21
  * follow standard SemVer.
22
22
  */
23
- export const CAELO_VERSION = "0.10.24";
23
+ export const CAELO_VERSION = "0.10.27";
24
24
  /**
25
25
  * Deprecated alias for back-compat — early P17 work spelled this
26
26
  * `CALEO_VERSION` (typo of "Caelo"). New code should import
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caelo-cms/shared",
3
- "version": "0.10.24",
3
+ "version": "0.10.27",
4
4
  "private": false,
5
5
  "license": "MPL-2.0",
6
6
  "description": "Shared Zod schemas + types + the two-pass HTML composer used by every Caelo CMS workspace package. Stable enough for plugin authors and embedders to depend on directly.",
@@ -38,7 +38,7 @@
38
38
  "colorjs.io": "^0.7.1",
39
39
  "htmlparser2": "^12.0.0",
40
40
  "mustache": "^4.2.0",
41
- "zod": "4.4.3"
41
+ "zod": "4.6.5"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/mustache": "^4.2.6"
@@ -12,9 +12,9 @@
12
12
 
13
13
  import { describe, expect, it } from "bun:test";
14
14
  import { fontFamilySlug, parseFontsCss } from "../fonts.js";
15
- import { trimSlashes, trimTrailingSlashes } from "../i18n.js";
16
15
  import { renderTemplate } from "../template-engine.js";
17
16
  import { stripCssComments } from "../theme-importers/css-comments.js";
17
+ import { trimSlashes, trimTrailingSlashes } from "../url.js";
18
18
 
19
19
  // 250ms, not 100: under CI coverage instrumentation on a loaded runner
20
20
  // the LINEAR 100k-char scans measured up to ~113ms (PR #170 flake). A
package/src/ai-tools.ts CHANGED
@@ -24,6 +24,7 @@ import {
24
24
  setPlacementContentSchema,
25
25
  slugSchema,
26
26
  } from "./content.js";
27
+ import { pluginPreviewSelectionSchema } from "./plugin-preview.js";
27
28
 
28
29
  /**
29
30
  * v0.6.2 — `position` argument shared across the three `add_module_to_*`
@@ -381,6 +382,11 @@ export const chatCreateSessionInput = z
381
382
  })
382
383
  .strict();
383
384
 
385
+ /** Raster image types understood by all supported chat providers. */
386
+ export const CHAT_IMAGE_MIMES = ["image/png", "image/jpeg", "image/webp", "image/gif"] as const;
387
+ /** Limit originals before upload so every accepted attachment can reach the provider. */
388
+ export const CHAT_MAX_ATTACHMENT_BYTES = 5 * 1024 * 1024;
389
+
384
390
  /**
385
391
  * issue #190 — an operator-attached image riding a user chat message.
386
392
  * References a media_assets row (the upload endpoint owns validation
@@ -397,7 +403,7 @@ export const chatAttachmentSchema = z
397
403
  * doc comment. Exactly one of `assetId` / `storageKey` is present.
398
404
  */
399
405
  storageKey: z.string().min(1).max(512).optional(),
400
- mime: z.enum(["image/png", "image/jpeg", "image/webp", "image/gif"]),
406
+ mime: z.enum(CHAT_IMAGE_MIMES),
401
407
  alt: z.string().max(2048).optional(),
402
408
  })
403
409
  .strict()
@@ -416,6 +422,7 @@ export const chatSendMessageInput = z
416
422
  // operator content — it re-runs the paused gated turn. A refine below
417
423
  // requires exactly one of content / resumeApproval.
418
424
  content: z.string().min(1).max(8000).optional(),
425
+ previewSelection: pluginPreviewSelectionSchema.optional(),
419
426
  /** Element-reference chips appended to the message. */
420
427
  chips: z
421
428
  .array(
@@ -505,6 +512,8 @@ export const chatPublishInput = z
505
512
  // surface so chat-branched theme edits replay into live
506
513
  // on chat.publish.
507
514
  "theme",
515
+ // A plugin private-storage row written on the branch.
516
+ "pluginRow",
508
517
  ]),
509
518
  entityId: z.string().uuid(),
510
519
  })
@@ -683,7 +692,6 @@ export const duplicatePageToolInput = z
683
692
  newName: z.string().min(1).max(256).optional(),
684
693
  newTitle: z.string().min(1).max(256).optional(),
685
694
  targetTemplateId: z.string().uuid().optional(),
686
- locale: z.string().min(2).max(10).optional(),
687
695
  })
688
696
  .strict();
689
697
 
@@ -731,11 +739,11 @@ export const reorderModuleToolInput = z
731
739
 
732
740
  /**
733
741
  * P7 — `find_media`. Searches the media library by alt-text /
734
- * filename / mime. Returns up to `limit` matches with the WebP-800
735
- * URL pre-resolved (or `orig` for non-image kinds). The system prompt
736
- * already lists recent + frequently-used media; this tool covers the
737
- * "search for an image of a sunlit office" case where the asset isn't
738
- * in the recent slice.
742
+ * filename / mime. Each row carries the media UUID (what
743
+ * `set_theme_asset` / `set_media_alt` require) plus a pre-resolved
744
+ * variant URL. The AI's only media-inventory surface — the `## Media`
745
+ * system-prompt block was removed by the context diet (#300), so every
746
+ * asset lookup ("an image of a sunlit office") goes through this tool.
739
747
  */
740
748
  export const findMediaToolInput = z
741
749
  .object({
@@ -790,16 +798,11 @@ export const setMediaAltToolInput = z
790
798
  export type SetMediaAltToolInput = z.infer<typeof setMediaAltToolInput>;
791
799
 
792
800
  /**
793
- * 0184 — `set_home_page`. AI designates a page as the site homepage (per
794
- * locale, the locale root). Records `locales.home_page_id`; the page keeps
795
- * its own slug but resolves to `/`.
801
+ * 0184 — `set_home_page`. AI designates a page as the site homepage.
802
+ * Records `site_defaults.home_page_id`; the page keeps its own slug but
803
+ * resolves to `/`.
796
804
  */
797
- export const setHomePageToolInput = z
798
- .object({
799
- pageId: z.string().uuid(),
800
- locale: z.string().min(2).max(10).optional(),
801
- })
802
- .strict();
805
+ export const setHomePageToolInput = z.object({ pageId: z.string().uuid() }).strict();
803
806
  export type SetHomePageToolInput = z.infer<typeof setHomePageToolInput>;
804
807
 
805
808
  /**
package/src/build-page.ts CHANGED
@@ -22,7 +22,6 @@
22
22
  import { z } from "zod";
23
23
  import {
24
24
  contentInstanceCreateSchema,
25
- localeSchema,
26
25
  MODULE_CSS_MAX,
27
26
  MODULE_HTML_MAX,
28
27
  MODULE_JS_MAX,
@@ -194,7 +193,6 @@ export const buildPageTargetSchema = z
194
193
  slug: slugSchema.optional(),
195
194
  title: z.string().min(1).max(256).optional(),
196
195
  name: z.string().min(1).max(256).optional(),
197
- locale: localeSchema.optional(),
198
196
  templateId: z.string().uuid().optional(),
199
197
  status: pageStatusSchema.optional(),
200
198
  /**
@@ -210,9 +208,9 @@ export const buildPageTargetSchema = z
210
208
  })
211
209
  .strict()
212
210
  .superRefine((page, ctx) => {
213
- const createKeys = (
214
- ["slug", "title", "name", "locale", "templateId", "status"] as const
215
- ).filter((k) => page[k] !== undefined);
211
+ const createKeys = (["slug", "title", "name", "templateId", "status"] as const).filter(
212
+ (k) => page[k] !== undefined,
213
+ );
216
214
  if (page.pageId !== undefined) {
217
215
  if (createKeys.length > 0) {
218
216
  ctx.addIssue({