/** * Recipe identity marker — the `Scai Handle` field. * * Every recipe-managed Sitecore item carries its recipe handle in a * `Scai Handle` field (a shared field on the Standard Template). The * handle — not the mutable content-tree path — is the recipe's identity * hook: a moved or renamed item is still matched on the next push, and * `readCurrent` recovers the exact authored handle instead of * synthesising one from the item name. * * This module owns the push-write half — `injectHandleMarker` stamps the * marker onto every `CreateItem` op a compiled recipe emits. Reading the * marker back (planner match + `readCurrent`) lives with those consumers. * * See docs/recipe-sync-architecture.md, "Recipe identity — the marker field". */ import type { OperationIr } from "../ir/operations.js"; /** Field name of the recipe-identity marker on the Standard Template. */ export declare const SCAI_HANDLE_FIELD_NAME = "Scai Handle"; /** * Inject the recipe handle as a `Scai Handle` field on every content-item * `CreateItem` op in an IR, so every recipe-managed content item carries its * recipe identity. Template-authoring items (template / section / field) are * skipped — they cannot carry the field (see `createsTemplateSystemItem`). * * Pure. Idempotent — a `CreateItem` op that already carries the marker is * returned unchanged. The marker rides the op's `fields`, so it is written * on create and re-converged through the same field-drift path on update. */ export declare const injectHandleMarker: (ir: OperationIr) => OperationIr;