/** * Sitecore built-in template GUIDs that recipe-emitted items conform to. * * Sourced from `plans/sitecore-relationships.md` (orchestrator repo) — the * inventory document built from the xmcloud-starter-js Button bundle. * These are baked into Sitecore and are stable across tenants. * * Format: lowercase hex with hyphens, no curly braces. The reference * encoding (`{...}` curly form vs bare) is decided per-field at the IR * executor layer. */ /** * Well-known template PATHS, for `templateOf: { kind: "ref-path" }` * references resolved by a batched `getItemsByPaths` lookup at plan * time. Use these when the canonical path is the stable contract and * hardcoding the GUID would be guesswork. */ export declare const SITECORE_TEMPLATE_PATHS: { /** * SXA local-datasources folder template. The `/Data` folder * must conform to THIS (not the generic Common Folder) for SXA / * Pages to treat it as page-local datasource storage — correct * `page:` datasource resolution, hidden-from-navigation behavior, * icon, and insert semantics. */ readonly SXA_PAGE_DATA: "/sitecore/templates/Foundation/Experience Accelerator/Local Datasources/Page Data"; }; export declare const SITECORE_TEMPLATES: { /** Item conforms to this when it *is* a data template. */ readonly TEMPLATE: "ab86861a-6030-46c5-b394-e8f99e8b87db"; /** Item conforms to this when it is a section within a template. */ readonly TEMPLATE_SECTION: "e269fbb5-3750-427a-9149-7aa950b49301"; /** Item conforms to this when it is a field within a section. */ readonly TEMPLATE_FIELD: "455a3e98-a627-4b40-8035-e683a0331ac7"; /** * Item conforms to this when it is a rendering. The relationship inventory * groups View Rendering and JSON Rendering under one ID; differentiation * may be needed in later phases for headless-only tenants. */ readonly RENDERING: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d"; /** * Sitecore Folder template. Used in the current variants-lite shape * for both the `/Variants` folder and each Variant item — * bare items, no SXA-specific structure. A richer SXA Variant * Definition template could replace this once that GUID is * sandbox-validated. */ readonly FOLDER: "a87a00b1-e6db-45ab-8b54-636fec3b5523"; /** * Sitecore "Template Folder" template — the conventional template for * organisational folders inside the templates tree (sections, * Component Folders, Presentation Parameters subfolders, Content * Models groups). Distinct from the generic FOLDER above (which is * what the renderings tree uses). GUID is the well-known Sitecore * built-in: * `/sitecore/templates/System/Templates/Template folder` → * {0437FEE2-44C9-46A6-ABE9-28858D9FEE8C}. */ readonly TEMPLATE_FOLDER: "0437fee2-44c9-46a6-abe9-28858d9fee8c"; /** * SXA Partial Design item template. Items conforming to this carry * SXA partial-design semantics: their layout XML is composed into * page designs via the `PartialDesigns` field. * * Verified against sandbox tenant (`xmc-sandbox-...`) on * 2026-04-30 via Authoring API introspection — the template lives at * `/sitecore/templates/Foundation/JSS Experience Accelerator/Presentation/Partial Design`. */ readonly PARTIAL_DESIGN: "fd2059fd-6043-4dfe-8c04-e2437ce87634"; /** * SXA Page Design item template. Items conforming to this carry the * `PartialDesigns` field (pipe-separated GUIDs) and may carry their * own layout XML. * * Verified against sandbox tenant on 2026-04-30 via Authoring API * introspection — `/sitecore/templates/Foundation/JSS Experience * Accelerator/Presentation/Page Design`. The earlier documented value * `1105b8f8-1d40-4278-98ff-4e8b5b262af7` was wrong (close but * incorrect on the last 24 chars). */ readonly PAGE_DESIGN: "1105b8f8-1e00-426b-bf1f-c840742d827b"; /** * SXA "Solution template" — what the SXA Site Wizard treats as a * Site Template. New sites are cloned from items conforming to this * template; the Sites API `createSite` flow references one by ID. * * Verified against sandbox tenant on 2026-05-01 via Authoring API * introspection. Built-in SXA Solution Templates live under * `/sitecore/system/Settings/Foundation/JSS Experience Accelerator/Scaffolding/Templates` * (e.g. "Empty Site"). Recipe-emitted SiteTemplates land in the same * area or a tenant-specific Scaffolding/Templates folder. * * Note: this template's fields (Site Modules, Tenant Modules, Name, * Description, Content, etc. — see SITE_TEMPLATE_FIELDS below) are * about MODULE composition, not direct page-template / page-design * lists. SXA's brand-shape model is module-based: a Solution template * lists modules, and modules carry the actual brand structure. Our * SiteTemplateRecipe schema (pageTemplates, pageDesigns, * insertOptionsMatrix, templatesToDesigns, dictionary, taxonomy) does * NOT map 1:1 to this — see the design-gap note in * `compileSiteTemplateRecipe`'s JSDoc. */ readonly SITE_TEMPLATE: "1b2dfd3b-f2f2-4f40-a75c-f6c2490919c4"; /** * SXA `Rendering Folder` template — the conventional template for * organisational folders inside the renderings tree (sections, * Component Folders, Variants groupings). Distinct from the generic * FOLDER template; SXA's editor UI looks for this template when * walking the rendering tree. * * Verified against sandbox tenant `xmc-sandbox-...` on * 2026-05-02 via Authoring API introspection — every section folder * under `/sitecore/layout/Renderings/Project//` conforms to * this template. */ readonly RENDERING_FOLDER: "7ee0975b-0698-493e-b3a2-0b2ef33d0522"; /** * SXA `HeadlessVariantsGrouping` template — the top-level "Headless * Variants" folder under a site's `Presentation/` content tree. * Recipe-emitted variant trees use this for the root grouping AND * any section-level groupings under it (mirrors the templates tree's * section folders). * * Verified against sandbox tenant 2026-05-02: * `/sitecore/content///Presentation/Headless Variants` * conforms to this template. */ readonly HEADLESS_VARIANTS_GROUPING: "da26c636-96e1-45e4-88d6-3fcec70d5699"; /** * SXA `HeadlessVariants` template — the per-rendering folder that * groups all variant definitions for a single rendering. * * Verified against sandbox tenant 2026-05-02: * `/sitecore/content///Presentation/Headless Variants//` * conforms to this template (e.g. Accordion, FeatureBanner, Promo). */ readonly HEADLESS_VARIANTS: "49c111d0-6867-4798-a724-1f103166e6e9"; /** * SXA Headless `Variant Definition` template — each individual * rendering variant (e.g. `default`, `outline`, `BoxedAccordion`). * * Verified against sandbox tenant 2026-05-02 — every leaf item under * a `HeadlessVariants` rendering folder conforms to this template. * Replaces scai's earlier use of generic `FOLDER` for variant items, * which left the SXA editor unable to recognise them as variants. */ readonly VARIANT_DEFINITION: "4d50cdae-c2d9-4de8-b080-8f992bfb1b55"; /** * SXA `Available Renderings Folder` — the parent grouping at * `/sitecore/content///Presentation/Available Renderings`. * Each child item conforms to `AVAILABLE_RENDERINGS` (below) and * lists a section's renderings via the `RENDERINGS` field. * * Verified against sandbox tenant 2026-05-02. */ readonly AVAILABLE_RENDERINGS_FOLDER: "26ec1d18-11b2-4dd9-8326-f6115f4fd7eb"; /** * SXA `Available Renderings` — each section's whitelist of * renderings the SXA editor offers when composing pages. Stores * a pipe-separated list of rendering itemIds in the `RENDERINGS` * field (see `AVAILABLE_RENDERINGS_FIELDS.RENDERINGS`). * * Verified against sandbox tenant 2026-05-02 — `Page Content`, * `Forms`, `Navigation`, etc. under the site's * `Presentation/Available Renderings/` all conform to this. */ readonly AVAILABLE_RENDERINGS: "76da0a8d-fc7e-42b2-af1e-205b49e43f98"; }; /** * FOLDER-class built-in templates — organisational containers whose * recipe-emitted items carry no authored field data (at most the * `Scai Handle` marker and a display name). Because there is nothing * to lose, the planner's marker-rebind template guard (see * `findCreateItemSibling` in `runtime/plan.ts`) treats these ops as * safe to adopt even when the live sibling's template differs from * the expected one — e.g. a Headless Variants per-rendering folder * created by an older scai under a grouping/legacy folder template. * The datasource/content rebind case the guard was built for (a * component swap behind a slot changing the datasource's template) * never uses these templates, so its protection is unaffected. * * Lowercased for normalized comparison against `CreateItemOp.templateOf`. */ export declare const FOLDER_CLASS_TEMPLATE_IDS: ReadonlySet; /** * Fields of the SXA `Available Renderings` template. The `RENDERINGS` * field is a multilist whose value is a pipe-separated string of * Sitecore-formatted itemIds (`{GUID}|{GUID}|{GUID}`). Each id points * at a rendering item — for our recipe-set, the renderings emitted * by every component-template recipe in the same `section`. * * Verified against sandbox tenant 2026-05-02 by introspecting the * `Page Content` Available Renderings item's own field. */ export declare const AVAILABLE_RENDERINGS_FIELDS: { readonly RENDERINGS: "715ae6c0-71c8-4744-ab4f-65362d20ad65"; }; /** * Sitecore `Placeholder` template (`/sitecore/templates/System/Layout/Placeholder`). * A Placeholder Settings item is the gate for "what renderings can * appear in this placeholder slot". Items conforming to this template * are leaves under a `Placeholder Settings Folder`; recipes target * them by their `Placeholder Key` field value (e.g. `headless-main`, * `sxa-footer`), not by their item name. * * Verified against sandbox tenant 2026-05-02 — every placeholder under * `/sitecore/content//Presentation/Placeholder Settings/...` * conforms to this template. */ export declare const PLACEHOLDER_TEMPLATE_ID = "d2a6884c-04d5-4089-a64e-d27ca9d68d4c"; /** * SXA `Placeholder Settings Folder` template * (`/sitecore/templates/Foundation/JSS Experience Accelerator/Placeholder * Settings/Placeholder Settings Folder`). The organisational folder * inside a Placeholder Settings tree — recipe-defined placeholder * grouping folders conform to this so they inherit its `__Standard * Values` Insert Options (`Placeholder` + `Placeholder Settings * Folder`), giving authors the right right-click → Insert UX without * scai having to stamp `__Masters` explicitly. * * Verified against sandbox tenant (`xmc-sandbox-…`) on * 2026-05-15 via Authoring API introspection — the `Placeholder * Settings` root and its `Partial Design` child both conform to it, and * the template's SV carries * `__Masters = {D2A6884C-…}|{52288E39-…}` (see * `scripts/_recon-page-template.cjs`). */ export declare const PLACEHOLDER_SETTINGS_FOLDER_TEMPLATE_ID = "52288e39-7830-4694-b62d-32a54c6ef7ba"; /** * Fields of the Sitecore `Placeholder` template that recipes interact * with: * * - `PLACEHOLDER_KEY` (`Placeholder Key`) — identifying string used * in layout XML / page-design slot definitions. Recipe `placeholders` * entries match against this value. * - `ALLOWED_CONTROLS` (`Allowed Controls`) — pipe-separated multilist * of rendering itemIds. Pages reads this when offering renderings * for the placeholder; without our renderings on this list, the * user can't add the component to the slot. * * Verified against sandbox tenant 2026-05-02 by introspecting * `/sitecore/content/starters/e2e/Presentation/Placeholder Settings/Partial Design/Footer`. */ export declare const PLACEHOLDER_FIELDS: { readonly PLACEHOLDER_KEY: "7256bdab-1fd2-49dd-b205-cb4873d2917c"; readonly ALLOWED_CONTROLS: "e391b526-d0c5-439d-803e-17512eae6222"; }; /** * SXA Foundation base templates that every component-template recipe * (component template + standard values) must inherit so the SXA * editor framework recognises the item as a component: * * - `_PerSiteStandardValues` ({44A022DB-56D3-419A-B43B-E27E4D8E9C41}) * wires the per-site standard-values mechanism. * - `_HorizonDatasourceGrouping` ({D0F6BE14-2A2D-4C56-ACB5-80CAA573B8E2}) * exposes datasource grouping/defaults to the Pages (Horizon) editor. * - `_PublishingGroupingTemplate` ({8BA7DAC6-32ED-4378-BD9E-5DA5B0F9848D}) * wires the publishing/release grouping that SXA editors expect. * * Verified by introspecting `AccordionBlock` (and other components) * in tenant `xmc-sandbox-...` on 2026-05-02. Content-template * (datasource-only) recipes deliberately exclude these — they're * datasource items, not full SXA components. */ export declare const SXA_COMPONENT_BASE_TEMPLATES: readonly ["44a022db-56d3-419a-b43b-e27e4d8e9c41", "d0f6be14-2a2d-4c56-acb5-80caa573b8e2", "8ba7dac6-32ed-4378-bd9e-5da5b0f9848d"]; /** * Sitecore Standard Template — the implicit base of every template that * doesn't declare its own `__Base template`. */ export declare const STANDARD_TEMPLATE_ID = "1930bbeb-7805-471a-a3be-4858ac7cf696"; /** * SXA Headless params-template bases — what every Pages-renderable * rendering-parameters template must inherit so the editor recognises * the template as a parameters shape and populates the rendering * parameters dialog with its fields. * * Verified by introspecting the working `LinkList` params template in * tenant `xmc-sandbox-...` on 2026-05-03 — its `__Base templates` * field carried exactly these three GUIDs: * * - `4247AAD4-EBDE-4994-998F-E067A51B1FE4` — `BaseRenderingParameters` * at `/sitecore/templates/Foundation/JSS Experience Accelerator/ * Presentation/Rendering Parameters/BaseRenderingParameters`. The * SXA Headless analog of vanilla Sitecore's "Standard Rendering * Parameters" — chains in `IStyling`, `IComponentVariant`, and * other facets the SXA editor scans for. * - `44A022DB-56D3-419A-B43B-E27E4D8E9C41` — `_PerSiteStandardValues` * (also part of `SXA_COMPONENT_BASE_TEMPLATES`). Wires the per-site * standard-values mechanism so per-site SV inheritance works for * params items too. * - `3DB3EB10-F8D0-4CC9-BE26-18CE7B139EC8` — additional SXA Headless * base (purpose not yet pinned, but consistently present on * working SXA Headless params templates; safer to mirror than * omit). * * Vanilla Sitecore "Standard Rendering Parameters" * (`8CA06D6A-B353-44E8-BC31-B528C7306971`) is *not* used by SXA Headless * — confirmed via the introspected LinkList template, which doesn't * inherit it. Earlier emission attempted to use it and the params * dialog stayed empty in Pages. */ export declare const SXA_HEADLESS_PARAMS_BASE_TEMPLATES: readonly ["4247aad4-ebde-4994-998f-e067a51b1fe4", "44a022db-56d3-419a-b43b-e27e4d8e9c41", "3db3eb10-f8d0-4cc9-be26-18ce7b139ec8"]; /** * SXA `_IDynamicPlaceholder` interface template — base-template extension * for rendering parameters templates that need to support nested dynamic * placeholders. Contributes a `DynamicPlaceholderID` field; the Pages * chrome auto-populates this field with a per-placement integer when an * author drops the rendering, and the layout service emits the resolved * value as the `DynamicPlaceholderId` rendering parameter. The headless * SDK uses that parameter to resolve concrete `-` placeholder * keys against the `-{*}` template defined on the rendering. * * Without this base template, the parameters template has no * `DynamicPlaceholderID` field, the chrome has nowhere to write the ID, * and nested children either fail to bind in Pages or persist against * the wrong slot key — symptom is a container rendered childless in * layout service with the SDK warning * `Placeholder '-1' was not found in the current rendering data`. * * Setting `IsRenderingsWithDynamicPlaceholders=true` in the rendering's * `OtherProperties` is necessary-but-not-sufficient. Both halves are * required; both are emitted by the `dynamicPlaceholders: true` flag on * `ComponentTemplateRecipe`. * * Path: `/sitecore/templates/Foundation/Experience Accelerator/Dynamic Placeholders/Rendering Parameters/IDynamicPlaceholder`. * Captured 2026-05-30 by introspecting the tenant via * `_recon-page-template.cjs item ` — Foundation template, GUID is * stable across tenants (same identity model as the other SXA bases in * this module). */ export declare const IDYNAMIC_PLACEHOLDER_TEMPLATE_ID = "5c74e985-e055-43ff-b28c-db6c6a6450a2"; /** * SXA Headless page base templates — what a recipe-emitted page template * must inherit so XM Cloud Pages recognises items conforming to it as * authorable pages: they pick up the layout/presentation fields, the * navigation facet, taxonomy tagging, the page-design binding, and * sitemap metadata. * * This is exactly the base set the OOTB per-site `Page` template * carries. Captured 2026-05-15 by walking the `__Base template` chain of * `/sitecore/templates/Project/demo-registry/Page` on the sandbox tenant * (`xmc-sandbox-…`) via Authoring API introspection — see * `scripts/_recon-page-template.cjs`. All five are SXA Foundation * templates, so the GUIDs are stable across tenants (same identity model * as `SXA_COMPONENT_BASE_TEMPLATES`). * * - `Base Page` ({47151711-26CA-434E-8132-D3E0B7D26683}) — * `/sitecore/templates/Foundation/JSS Experience Accelerator/Multisite/Base Page`. * The SXA Headless page base; chains in the EXA `Page` → * Standard template, so the Layout / Appearance / Publishing * sections all arrive transitively. * - `_Navigable` ({371D5FBB-5498-4D94-AB2B-E3B70EEBE78C}) — * navigation facet: `NavigationTitle`, `ChangeFrequency`, `Priority`. * - `_Taggable` ({F39A594A-7BC9-4DB0-BAA1-88543409C1F9}) — * taxonomy tagging facet. * - `_Designable` ({6650FB34-7EA1-4245-A919-5CC0F002A6D7}) — * carries the `Page Design` Droplink field (the per-item * page-design override). The default template→design binding is * the `TemplatesMapping` aggregate on the Page Designs root, not * this field — see `compileRecipeSet`. * - `_Sitemap` ({4414A1F9-826A-4647-8DF4-ED6A95E64C43}) — * sitemap metadata facet. */ export declare const SXA_HEADLESS_PAGE_BASE_TEMPLATES: readonly ["47151711-26ca-434e-8132-d3e0b7d26683", "371d5fbb-5498-4d94-ab2b-e3b70eebe78c", "f39a594a-7bc9-4db0-baa1-88543409c1f9", "6650fb34-7ea1-4245-a919-5cc0f002a6d7", "4414a1f9-826a-4647-8df4-ed6a95e64c43"]; /** * `Page Design` field on the SXA `_Designable` facet — a Droplink whose * Source is `query:$pageDesigns//*[@@templatename='Page Design']`. The * per-item page-design override; recipe-emitted page templates leave it * unset (the default binding flows through the Page Designs root's * `TemplatesMapping`). Captured in the same 2026-05-15 recon pass. */ export declare const PAGE_DESIGN_FIELD_ID = "24171bf1-c0e1-480e-be76-4c0a1876f916"; /** * SXA Headless JSON `Layout` definition item (`/sitecore/layout/Layouts/ * Project/.../JSON Layout`). A page's `__Renderings` field wraps its * device element with `l="{this}"` — ``. * Recipe-emitted page templates stamp it on the `__Standard Values` * layout shell so pages conforming to them render through the headless * JSON layout pipeline. * * Captured 2026-05-15 from the `Page` template's `__Standard Values` * `__Renderings` field on the sandbox tenant. SXA-shipped item, stable * GUID across tenants. */ export declare const SXA_JSON_LAYOUT_ID = "96e5f4ba-a2cf-4a4c-a4e7-64da88226362"; /** * Stable system-field GUIDs that recipes need to write. * Auto-generated metadata fields (__Created, __Updated, __Revision, __Owner) * are deliberately omitted — Sitecore writes those. */ export declare const SYSTEM_FIELDS: { readonly ICON: "06d5295c-ed2f-4a54-9bf2-26228d113318"; readonly BASE_TEMPLATE: "12c33f3f-86c5-43a5-aeb4-5598cec45116"; readonly STANDARD_VALUES: "f7d48a55-2158-4f02-9356-756654404f73"; readonly SORT_ORDER: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e"; readonly DISPLAY_NAME: "b5e02ad9-d56f-4c41-a065-a133db87bdeb"; /** * `__Masters` — the field that backs the CMS "Insert Options" UI. * Set on the standard-values item to a pipe-separated list of allowed * child template GUIDs. GUID verified against sandbox tenant * (`xmc-sandbox-...`) on 2026-04-30 via Authoring API * `templateField.templateFieldId` introspection. */ readonly INSERT_OPTIONS: "1172f251-dad4-4efb-a329-0c63500e4f1e"; /** * `__Help text` — the standard Sitecore item Help field. Used by * `compileDictionaryRecipe` to land translator-facing phrase * descriptions; surfaces in Sitecore's Content Editor tooltip and * any translation tooling that reads the field. GUID is the * well-known Sitecore built-in. */ readonly HELP_TEXT: "577f1689-7de4-4ad2-a15f-7fdc1759285f"; }; /** Field-definition shared fields on a Template Field item. */ export declare const TEMPLATE_FIELD_FIELDS: { readonly TYPE: "ab162cc0-dc80-4abf-8871-998ee5d7ba32"; readonly SOURCE: "1eb8ae32-e190-44a6-968d-ed904c794ebf"; readonly TITLE: "19a69332-a23e-4e70-8d16-b2640cb24cc8"; /** * `Shared` toggle on a Template Field — `"1"` makes the field's * value shared across all language versions and numeric versions of * any item conforming to the template. Verified against the canonical * `click-click-launch/Presentation/Enumeration/Enumeration/Value` * field item, where the enumeration `Value` field is shared (per-item * value, not per-language). GUID is the well-known Sitecore built-in. */ readonly SHARED: "be351a73-fcb0-4213-93fa-c302d8ab4f51"; /** * `Unversioned` toggle on a Template Field — `"1"` makes the field's * value per-language but shared across numbered versions (vs `SHARED`, * which is one value for the whole item). Verified against the live * `test` tenant via Authoring API introspection on 2026-05-15. GUID is * the well-known Sitecore built-in. */ readonly UNVERSIONED: "39847666-389d-409b-95bd-f2016f11eed5"; }; /** * Sitecore layout fields. `__Renderings` carries the shared layout * (applies across all language versions); `__Final Renderings` carries * the per-version final layout. * * Layout-holding items follow the two-field model XM Cloud Pages authors: * `__Renderings` holds the device + JSON-layout shell (``), * and `__Final Renderings` holds the placements as an SXA delta patched over * it. Pages inherit the shell from their template's standard values and write * placements to `__Final Renderings`; partial designs carry the shell on their * own item and write placements to `__Final Renderings` the same way. A page * design's `__Renderings` holds the shell (plus any own placements) and its * `__Final Renderings` stays blank — the pages that apply it own that field. */ export declare const LAYOUT_FIELDS: { readonly RENDERINGS: "f1a1fe9e-a60c-4ddb-a3a0-bb5b29fe732e"; readonly FINAL_RENDERINGS: "04bf00db-f5fb-41f7-8ab7-22408372a981"; }; /** * Field GUIDs on the SXA `Solution template` (= Site Template) item. * Verified against sandbox on 2026-05-01 by inspecting the built-in * "Empty Site" template at `/sitecore/system/Settings/Foundation/JSS * Experience Accelerator/Scaffolding/Templates/Empty Site`. * * `SITE_MODULES` / `TENANT_MODULES` carry pipe-separated GUIDs of * *Module* items — the SXA model is "templates list modules; modules * hold the brand structure." Our `SiteTemplateRecipe` schema doesn't * model SXA modules yet; mapping is open work (see * `compileSiteTemplateRecipe` JSDoc). * * `BUILT_IN_TEMPLATE` is `"1"` on the SXA-shipped templates and `"0"` * on tenant-authored ones. Recipe-emitted templates set it to `"0"`. * * `CONTENT` is a JSON description of what the template includes * ("Pages: Home", "Components: SXA", etc.) — mostly for the Sites API * UI's preview pane. Recipes can leave it empty without breaking * createSite. */ export declare const SITE_TEMPLATE_FIELDS: { readonly SITE_MODULES: "c262443b-653d-461d-96c8-7cfaa0ef2b2d"; readonly TENANT_MODULES: "41ac536a-923a-43f9-ac87-f3993f638125"; readonly NAME: "82e64b52-0b8a-4a38-8c78-530c5493814e"; readonly DESCRIPTION: "9f437e68-a84d-48ae-8ce1-a3e26c0b5e64"; readonly ENABLED: "0d21f818-1938-4cd8-b0a8-a44f73d69367"; readonly BUILT_IN_TEMPLATE: "a13aae24-a295-4cc3-b188-dfa59e2172a9"; readonly CONTENT: "da855368-e5f2-4932-ae55-7f8b08a5a205"; }; /** * SXA Module root templates — the two SXA-shipped templates a Module * item conforms to. Captured by sub-milestone A introspection * (`docs/plans/site-template-modules-and-picker.investigation.json`, * U1): * * - `HEADLESS_SITE_SETUP_ROOT` — Module items referenced by a * Solution template's `Site Modules` field. Conforms to * `Foundation/JSS Experience Accelerator/Scaffolding/Roots/HeadlessSiteSetupRoot`. * - `HEADLESS_TENANT_SETUP_ROOT` — Module items referenced by * `Tenant Modules`. Conforms to `…/Scaffolding/Roots/HeadlessTenantSetupRoot`. * * Both templates only carry standard Sitecore sections; the brand * structure lives in the Module item's CHILDREN (setup-action items * conforming to `AddItem`, `EditSiteItem`, `EditTenantTemplate`, * `ExecuteScript`, `PostSetupStep`, etc.). */ export declare const HEADLESS_SITE_SETUP_ROOT = "bed31d6f-d968-45a9-b54e-12d7f977d861"; export declare const HEADLESS_TENANT_SETUP_ROOT = "f036b5e0-37fb-4537-9d36-ef84e5bd41b7"; /** * Standard Sitecore `__Thumbnail` field GUID (type `Thumbnail`). * The Sites API picker's thumbnail surface reads this field; encoding * is Sitecore media-XML: ``. * * Sub-milestone A U3 confirmed the SXA Solution Template has no * dedicated thumbnail or image field on its inheritance chain — both * the picker's `thumbnail` and `image` resolve through this standard * field (`image` likely renders the same media at full resolution). */ export declare const SYSTEM_THUMBNAIL_FIELD_ID = "c7c26117-dbb1-42b2-ab5e-f7223845cca3"; /** * Setup-action child template paths under SXA's Scaffolding/Templates * tree. Each Module item conforms to `HEADLESS_SITE_SETUP_ROOT` / * `HEADLESS_TENANT_SETUP_ROOT`; its CHILDREN conform to one of these * action templates. Sub-milestone A's U2 capture surfaced these names * via the `Dependencies` field source filter on the SXA module-root * templates (`IncludeTemplatesForSelection=EditTenantTemplate,AddItem, * ExecuteScript`); production module trees in `click-click-launch` * (Alaris/SYNC/Solterra and Co Setup) carry children of types * `AddItem`, `EditSiteItem`, `EditTenantTemplate`, `ExecuteScript`, * `PostSetupStep`, plus organisational `Folder` / `Node`. * * Template GUIDs are intentionally NOT captured here. A's introspection * captured the child template NAMES but not their GUIDs — that's the * single ambiguous pointer from A. The compiler resolves these * templates via the IR's `ref-path` `templateOf` shape (`CreateItemOp` * supports it), which the executor pre-seeds at apply time via a * `getItemsByPaths` batch — the same mechanism workflow templates * already use. * * **Open question for sub-milestone E:** verify these paths against a * live tenant before the first push; if any diverge, capture the * actual GUID here and switch the compile-side `templateOf` to a * direct GUID for slightly cheaper executor resolution. */ export declare const SETUP_ACTION_TEMPLATE_PATHS: { /** * Sub-milestone E (2026-06-06) verified path is `Actions/Site/AddItem` * — NOT `Templates/AddItem` as sub-milestone A surmised. The * `Templates` folder doesn't exist under SXA's Scaffolding tree; * action templates live under `Actions/Site/` (per-site setup * actions) or `Actions/Tenant/` (per-tenant setup actions), * mirroring the SITE_MODULES / TENANT_MODULES split on the parent * Module roots. There's also a `Foundation/Experience Accelerator/` * branch (classic SXA, .NET-rendering) alongside the JSS branch; * the JSS branch matches HeadlessSiteSetupRoot, so we use it here. */ readonly ADD_ITEM: "/sitecore/templates/Foundation/JSS Experience Accelerator/Scaffolding/Actions/Site/AddItem"; readonly EDIT_SITE_ITEM: "/sitecore/templates/Foundation/JSS Experience Accelerator/Scaffolding/Actions/Site/EditSiteItem"; readonly EDIT_TENANT_TEMPLATE: "/sitecore/templates/Foundation/JSS Experience Accelerator/Scaffolding/Actions/Tenant/EditTenantTemplate"; readonly EXECUTE_SCRIPT: "/sitecore/templates/Foundation/JSS Experience Accelerator/Scaffolding/Actions/Site/ExecuteScript"; readonly POST_SETUP_STEP: "/sitecore/templates/Foundation/JSS Experience Accelerator/Scaffolding/Actions/Site/PostSetupStep"; }; /** * Hardcoded Foundation Module GUIDs that every recipe-emitted site * template aggregates into its `Site Modules` field, alongside the * tenant-rooted Module the recipe synthesises. Captured by * sub-milestone A's U2 finding from the built-in "Empty Site" * template; the three production tenant-rooted Solution templates * (Alaris, SYNC, Solterra and Co) all mirror this list verbatim and * append their own tenant-rooted Module GUID. * * Stable: SXA-shipped Foundation items; GUIDs are constant across * tenants (same identity model as `SXA_COMPONENT_BASE_TEMPLATES`). * Ordering matches the U2 capture for deterministic compile output — * re-pushes against a tenant produce identical pipe-separated * payloads, so the planner reports a no-op for unchanged fields. */ export declare const FOUNDATION_SITE_MODULES: readonly ["5a2f6a6f-3028-4210-aad3-82c1365c4802", "9f10010e-49e2-4dcd-a5a1-4da752aded2a", "4342a029-0186-4b0d-8959-ffef4fd998c2", "ae5d1384-bb75-4c6b-a8b5-4b008c2ac5da", "c4658673-5d70-44ed-9004-d66eac1dc718", "ca502dcf-20d2-4618-a735-e4fcb6d5e114", "e2af1a41-799e-481b-8fdc-b2d33fb729a1", "66b9c663-2602-42b1-a5a2-3d04db6c506a", "1fd78e81-59a6-4513-90f1-165a95d4b16b", "bebf4026-24a3-4ea6-986a-518b76dbd71a", "385f31be-ff0c-4d84-a627-9ecd21295afd", "f0ea389e-f78d-440b-9429-f04fe735344a", "ac1a27ca-6bf3-4d23-915e-668326d52cf1", "d7eeaf4d-2b58-4029-b141-844221565ef0", "1f35559f-2140-4774-8bc1-525bb722baa2"]; /** * Hardcoded Foundation Tenant-Module GUIDs aggregated into the * `Tenant Modules` field. Same captured-from-U2 origin as * `FOUNDATION_SITE_MODULES` — the three production tenant-rooted * Solution templates all carry this list verbatim. The recipe- * synthesised tenant-rooted Module is NOT appended to this list * because today's `SiteTemplateRecipe` describes site-scoped brand * structure only (page templates, page designs, etc.); cross-site * tenant-scoped overrides would need a separate authoring surface. */ export declare const FOUNDATION_TENANT_MODULES: readonly ["7b81b847-1891-43b2-bc13-5047a62ec32a", "7baaa4fc-3051-442d-9bd2-ad720b655e0b", "0dc2e395-4a95-4773-88ca-75b22a130849", "4346a98a-d6e9-491e-a0ed-cd12f524cf4e", "4cbc64bf-8116-48a1-abac-db19103897a6", "7574f439-0b48-48be-ba6b-94b1a3ce01a3", "d912c30c-7a98-4a8d-a094-611d9af9605d", "6de1f4e9-815d-491d-923d-d5038100dbee", "02cd7086-1f87-41ec-b40f-b92c1226895b", "1b0a98c0-1801-44a0-85f2-845694feaff3", "d315a501-6503-4545-a5d8-b9fecba1097d"]; /** * Per-site `SiteTemplate` field on a Headless Site item — points at * the SXA Site Template (Solution template) item the site was cloned * from. Captured on the sandbox in 2026-05-01 introspection. */ export declare const SITE_FIELDS: { readonly SITE_TEMPLATE: "e2bf3c8d-a12e-45f4-98d6-a37f13bcf375"; readonly MODULES: "1230d2cb-4948-4d43-8a3b-b39978f6f1b3"; readonly NAME: "85a7501a-86d9-4243-9075-0b727c3a6db4"; readonly SITE_MEDIA_LIBRARY: "33d9005e-1f71-415f-b107-53b965c3b037"; readonly SITEMAP_MEDIA_ITEMS: "2b2fe9fd-78a6-40eb-b9f9-28409d8d3700"; }; /** * SXA-specific fields on partial-design and page-design items, plus the * Page Designs root's templates-to-designs mapping field. * * Verified against sandbox tenant (`xmc-sandbox-...`) on * 2026-04-30 via Authoring API introspection — both prior documented * values were wrong: * PARTIAL_DESIGNS: was 1f57aae2-da42-49d7-bfaa-b4c4d8398eb4 * TEMPLATES_MAPPING: was 1aa90e5a-4f5b-43c9-b78b-d28a5beae65a * * `PartialDesigns` is defined on the SXA Page Design template's base * inheritance chain (section "Designing"); `TemplatesMapping` is * defined on the "Page Designs" folder template (the parent item that * owns the field, not on individual page-design items). */ export declare const COMPOSITION_FIELDS: { /** On a Page Design item: pipe-separated GUIDs of partial designs to inject. */ readonly PARTIAL_DESIGNS: "0966b999-0d0e-4278-acc9-9da69d461fe6"; /** On the Page Designs root: URL-encoded {tplGuid}={designGuid}&… mapping. */ readonly TEMPLATES_MAPPING: "ba1f60d6-3deb-40cc-bb61-eec772279ee1"; }; /** * Sitecore Default Device — the device GUID layout XML wraps with. * ``. */ export declare const DEFAULT_DEVICE_ID = "fe5d7fdf-89c0-4d99-9aa3-b5fbd009c9f3"; /** Rendering-definition shared fields on a Rendering item. */ export declare const RENDERING_FIELDS: { readonly COMPONENT_NAME: "037fe404-dd19-4bf7-8e30-4dadf68b27b0"; readonly DATASOURCE_TEMPLATE: "1a7c85e5-dc0b-490d-9187-bb1dbcb4c72f"; readonly DATASOURCE_LOCATION: "b5b27af1-25ef-405c-87ce-369b3a004016"; readonly PARAMETERS_TEMPLATE: "a77e8568-1ab3-44f1-a664-b7c37ec7810d"; readonly OPEN_PROPERTIES_AFTER_ADD: "7d8ae35f-9ed1-43b5-96a2-0a5f040d4e4e"; readonly OTHER_PROPERTIES: "e829c217-5e94-4306-9c48-2634b094fdc2"; /** * "Placeholders" (PLURAL) Treelist field on the SXA Headless rendering * chain. Pipe-separated list of `{GUID}` references — each GUID points * at a Placeholder Settings item under `placeholderSettingsRoot`. * * Defined on `/sitecore/templates/System/Layout/Sections/Rendering Options/Layout Service/Placeholders`, * mixed into the SXA Headless rendering template via the * `Layout Service` section. The starter-kit `Container`, * `Column Splitter`, `Row Splitter` et al all populate this exact * field (e.g. Container's value is `{97CBC3BC-...-A5}` pointing at * the matching `/Placeholder Settings/.../Container` item). * * The layout service reads each referenced settings item to recover * the slot's `Placeholder Key` (e.g. `container-{*}`) and emit the * `placeholders` map in the layout-service response. Without this * field populated the layout service ships no `placeholders` array * for the rendering, no child renderings resolve, and the headless * SDK's `getPlaceholderRenderings` walks an empty object and warns * `Placeholder '-1' was not found in the current rendering data`. * * Distinct from (a) the legacy singular "Placeholder" field on * `/sitecore/templates/Foundation/JavaScript Services/Json Rendering` * (`592a1ce7-abe0-4986-9783-0a34f3961dc0`) — a free-form string that * the CMS-shaped Layout reads but SXA Headless does not; and (b) * the CMS "Placeholders" plural on `System/Layout/Renderings/Rendering` * (`b687328e-ca12-414d-a78e-6b4e6dca38fa`) which the Headless * Json Rendering template doesn't inherit at all. Two earlier scai * fixes tried each of these GUIDs in turn; the field reaching SXA's * runtime is THIS one. * * Sandbox-verified 2026-05-31 by introspecting the live agents * tenant: `/sitecore/layout/Renderings/Feature/JSS Experience Accelerator/Page Structure/Container` * carries the value `{97CBC3BC-B376-47AA-9238-240672E912A5}` in * its "Placeholders" field, which resolves to * `/sitecore/layout/Placeholder Settings/Feature/JSS Experience Accelerator/Page Structure/Container`. */ readonly PLACEHOLDERS: "069a8361-b1cd-437c-8c32-a3be78941446"; }; /** * Sitecore Dictionary Entry template fields. Used by SiteRecipe's * `dictionaryOverrides` AND by `compileDictionaryRecipe` when emitting * fresh Dictionary Entry items — each phrase becomes ONE Entry item * carrying these fields per item version per locale. * * TODO (sandbox-verify): the PHRASE GUID below is the standard * Sitecore Dictionary Entry "Phrase" field; KEY is the Entry's stable * key field consuming components reference. Both should be validated * via Authoring API introspection during the first integration test * push and updated if the SXA-shipped Dictionary Entry template * diverges. The KEY field is necessary because Sitecore Dictionary * Entry items carry BOTH a `Key` (stable, lookup-by-name) AND a * `Phrase` (translated value); consuming components look up by Key. */ export declare const DICTIONARY_ENTRY_FIELDS: { /** Field ID for "Phrase" — the translated string value on a Dictionary Entry. */ readonly PHRASE: "580c75a8-c01a-4580-83cb-987776ceb3af"; /** * Field ID for "Key" — the stable phrase-key consuming components * reference. TODO (sandbox-verify): the value below is a placeholder * derived from the standard Sitecore Dictionary Entry template's Key * field; verify via introspection before the first live push. * * **Gap (2026-06-06):** A's introspection focused on SiteTemplate / * Module GUIDs; Dictionary Entry field GUIDs were NOT captured. The * compile path emits a `fieldName: "Key"` alongside this GUID so the * authoring client can fall back to name-based resolution if the GUID * doesn't match the tenant's Dictionary Entry template — same * recipe-derived-vs-tenant-assigned pattern recipe-created template * fields already use. */ readonly KEY: "580c75a8-c01a-4580-83cb-987776ceb3b0"; }; /** * Sitecore-shipped Dictionary template paths. Both the Dictionary * Folder (organisational) and Dictionary Entry (leaf-phrase) templates * are Sitecore built-ins; their items live under * `/sitecore/templates/System/Dictionary/`. Used via `templateOf: { * kind: "ref-path", value }` so the executor resolves the GUID at * apply time — same mechanism setup-action templates already use. * * **Gap (2026-06-06):** Sub-milestone A's introspection focused on * Module GUIDs; Dictionary Folder + Dictionary Entry template GUIDs * were NOT captured. Using path-based refs keeps the compile honest * (no guessed GUIDs) and shifts the verification to first-push * integration time. If introspection later captures the GUIDs, switch * `templateOf` to direct values for slightly cheaper resolution. */ export declare const DICTIONARY_TEMPLATE_PATHS: { /** Standard Sitecore "Dictionary Folder" template path. */ readonly FOLDER: "/sitecore/templates/System/Dictionary/Dictionary Folder"; /** Standard Sitecore "Dictionary Entry" template path. */ readonly ENTRY: "/sitecore/templates/System/Dictionary/Dictionary Entry"; }; export declare const DEFAULT_LANGUAGE = "en"; export declare const DEFAULT_VERSION = 1; /** * Default icon for component-shaped recipe items — SXA Headless's * built-in component icon. Verified against live tenant 2026-05-02: * real component templates and rendering items in healthy SXA sites * (e.g. `AccordionBlock`, `Accordion`) carry this value on `__Icon`. * * Used for: component templates, parameters templates, rendering * items, and (as the fallback) any other recipe-emitted item that * doesn't override. */ export declare const DEFAULT_ICON = "office/32x32/elements3.png"; /** * Icon for folder-shaped recipe items — Sitecore's standard folder * icon. Real SXA tenants leave the icon blank on per-site folders * (Components, Renderings, Variants groupings) and inherit the * underlying template's icon, but recipe-emitted items don't have * that template inheritance set up the same way, so we stamp this * explicitly to give the SXA editor's tree a usable icon for every * recipe-created folder. * * Applied to: Components/
templates folder, Component * Folders bucket, Presentation Parameters bucket, renderings-tree * section folder, Headless Variants section grouping, per-rendering * Headless Variants folder. * * NOT applied to Available Renderings section items — those use the * SXA `Available Renderings` template (not a Folder template), and * its template-level icon shows through correctly without an explicit * `__Icon` override. */ export declare const FOLDER_ICON = "office/16x16/folder.png"; /** * Icon stamped on the per-site `Enumerations Folder` and `Enumeration` * templates emitted by `ensureEnumerationTemplates`. Matches the icon * SXA Headless's OOTB Enumeration templates carry on starter sites * (verified 2026-05-03 against * `/sitecore/templates/Project/click-click-launch/Presentation/Enumeration`), * so the SXA editor recognises enum items as enumeration entries — not * generic folders — and the content tree renders the "E" key glyph. * * Applied at the template level, NOT on individual value items: value * items conform to the per-site `Enumeration` template and inherit the * icon through template-level inheritance. */ export declare const ENUMERATION_ICON = "office/32x32/keyboard_key_e.png"; /** * Icon for recipe-emitted page templates — matches the icon the OOTB * SXA Headless `Page` template carries (`Office/32x32/document_text.png`, * verified 2026-05-15 on the sandbox tenant), so page templates read as * pages — not generic data templates — in the content-tree. */ export declare const PAGE_TEMPLATE_ICON = "Office/32x32/document_text.png";