{"version":3,"sources":["../../node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts","../../node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts","../../node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts","../../node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts","../../node_modules/ajv/lib/vocabularies/dynamic/index.ts","../../node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts","../../node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts","../../node_modules/ajv/lib/vocabularies/validation/limitContains.ts","../../node_modules/ajv/lib/vocabularies/next.ts","../../node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts","../../node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts","../../node_modules/ajv/lib/vocabularies/unevaluated/index.ts","../../node_modules/ajv/lib/vocabularies/draft2020.ts","../../node_modules/ajv/dist/refs/json-schema-2020-12/schema.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json","../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json","../../node_modules/ajv/lib/refs/json-schema-2020-12/index.ts","../../node_modules/ajv/lib/2020.ts","../../src/runtime/capability-registry.ts","../../src/runtime/agent-session-projector.ts","../../src/runtime/declaration-compiler.ts","../../src/runtime/declarative-control-compiler.ts","../../src/runtime/render-tree-compiler.ts","../../src/runtime/navigation-availability.ts","../../src/runtime/menu-compiler.ts","../../src/runtime/view-provider-registry.ts","../../src/runtime/page-compiler.ts","../../src/runtime/product-runtime.ts","../../src/runtime/tenant-config.ts","../../src/runtime/tenant-runtime-bindings.ts","../../src/runtime/declarative-runtime-contract.ts","../../src/runtime/view-render-model.ts","../../src/runtime/workflow-compiler.ts","../../src/runtime/workflow-column.ts","../../src/runtime/access-compiler.ts","../../src/runtime/component-assembly.ts","../../src/runtime/page-expression.ts","../../src/runtime/record-editor-draft.ts","../../src/runtime/target-render-model.ts","../../src/runtime/page-stream.ts","../../src/runtime/action-program-author.ts","../../src/runtime/runtime-definition-wire.ts","../../src/runtime/page-composition.ts"],"sourcesContent":["import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Code} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, compileSchema} from \"../../compile\"\nimport {getValidate} from \"../core/ref\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"$dynamicAnchor\",\n  schemaType: \"string\",\n  code: (cxt) => dynamicAnchor(cxt, cxt.schema),\n}\n\nexport function dynamicAnchor(cxt: KeywordCxt, anchor: string): void {\n  const {gen, it} = cxt\n  it.schemaEnv.root.dynamicAnchors[anchor] = true\n  const v = _`${N.dynamicAnchors}${getProperty(anchor)}`\n  const validate = it.errSchemaPath === \"#\" ? it.validateName : _getValidate(cxt)\n  gen.if(_`!${v}`, () => gen.assign(v, validate))\n}\n\nfunction _getValidate(cxt: KeywordCxt): Code {\n  const {schemaEnv, schema, self} = cxt.it\n  const {root, baseId, localRefs, meta} = schemaEnv.root\n  const {schemaId} = self.opts\n  const sch = new SchemaEnv({schema, schemaId, root, baseId, localRefs, meta})\n  compileSchema.call(self, sch)\n  return getValidate(cxt, sch)\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {callRef} from \"../core/ref\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"$dynamicRef\",\n  schemaType: \"string\",\n  code: (cxt) => dynamicRef(cxt, cxt.schema),\n}\n\nexport function dynamicRef(cxt: KeywordCxt, ref: string): void {\n  const {gen, keyword, it} = cxt\n  if (ref[0] !== \"#\") throw new Error(`\"${keyword}\" only supports hash fragment reference`)\n  const anchor = ref.slice(1)\n  if (it.allErrors) {\n    _dynamicRef()\n  } else {\n    const valid = gen.let(\"valid\", false)\n    _dynamicRef(valid)\n    cxt.ok(valid)\n  }\n\n  function _dynamicRef(valid?: Name): void {\n    // TODO the assumption here is that `recursiveRef: #` always points to the root\n    // of the schema object, which is not correct, because there may be $id that\n    // makes # point to it, and the target schema may not contain dynamic/recursiveAnchor.\n    // Because of that 2 tests in recursiveRef.json fail.\n    // This is a similar problem to #815 (`$id` doesn't alter resolution scope for `{ \"$ref\": \"#\" }`).\n    // (This problem is not tested in JSON-Schema-Test-Suite)\n    if (it.schemaEnv.root.dynamicAnchors[anchor]) {\n      const v = gen.let(\"_v\", _`${N.dynamicAnchors}${getProperty(anchor)}`)\n      gen.if(v, _callRef(v, valid), _callRef(it.validateName, valid))\n    } else {\n      _callRef(it.validateName, valid)()\n    }\n  }\n\n  function _callRef(validate: Code, valid?: Name): () => void {\n    return valid\n      ? () =>\n          gen.block(() => {\n            callRef(cxt, validate)\n            gen.let(valid, true)\n          })\n      : () => callRef(cxt, validate)\n  }\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {dynamicAnchor} from \"./dynamicAnchor\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"$recursiveAnchor\",\n  schemaType: \"boolean\",\n  code(cxt) {\n    if (cxt.schema) dynamicAnchor(cxt, \"\")\n    else checkStrictMode(cxt.it, \"$recursiveAnchor: false is ignored\")\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {dynamicRef} from \"./dynamicRef\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"$recursiveRef\",\n  schemaType: \"string\",\n  code: (cxt) => dynamicRef(cxt, cxt.schema),\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport dynamicAnchor from \"./dynamicAnchor\"\nimport dynamicRef from \"./dynamicRef\"\nimport recursiveAnchor from \"./recursiveAnchor\"\nimport recursiveRef from \"./recursiveRef\"\n\nconst dynamic: Vocabulary = [dynamicAnchor, dynamicRef, recursiveAnchor, recursiveRef]\n\nexport default dynamic\n","import type {CodeKeywordDefinition, ErrorObject} from \"../../types\"\nimport {\n  validatePropertyDeps,\n  error,\n  DependenciesErrorParams,\n  PropertyDependencies,\n} from \"../applicator/dependencies\"\n\nexport type DependentRequiredError = ErrorObject<\n  \"dependentRequired\",\n  DependenciesErrorParams,\n  PropertyDependencies\n>\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"dependentRequired\",\n  type: \"object\",\n  schemaType: \"object\",\n  error,\n  code: (cxt) => validatePropertyDeps(cxt),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateSchemaDeps} from \"./dependencies\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"dependentSchemas\",\n  type: \"object\",\n  schemaType: \"object\",\n  code: (cxt) => validateSchemaDeps(cxt),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: [\"maxContains\", \"minContains\"],\n  type: \"array\",\n  schemaType: \"number\",\n  code({keyword, parentSchema, it}: KeywordCxt) {\n    if (parentSchema.contains === undefined) {\n      checkStrictMode(it, `\"${keyword}\" without \"contains\" is ignored`)\n    }\n  },\n}\n\nexport default def\n","import type {Vocabulary} from \"../types\"\nimport dependentRequired from \"./validation/dependentRequired\"\nimport dependentSchemas from \"./applicator/dependentSchemas\"\nimport limitContains from \"./validation/limitContains\"\n\nconst next: Vocabulary = [dependentRequired, dependentSchemas, limitContains]\n\nexport default next\n","import type {\n  CodeKeywordDefinition,\n  KeywordErrorDefinition,\n  ErrorObject,\n  AnySchema,\n} from \"../../types\"\nimport {_, not, and, Name, Code} from \"../../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../../compile/util\"\nimport N from \"../../compile/names\"\n\nexport type UnevaluatedPropertiesError = ErrorObject<\n  \"unevaluatedProperties\",\n  {unevaluatedProperty: string},\n  AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n  message: \"must NOT have unevaluated properties\",\n  params: ({params}) => _`{unevaluatedProperty: ${params.unevaluatedProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"unevaluatedProperties\",\n  type: \"object\",\n  schemaType: [\"boolean\", \"object\"],\n  trackErrors: true,\n  error,\n  code(cxt) {\n    const {gen, schema, data, errsCount, it} = cxt\n    /* istanbul ignore if */\n    if (!errsCount) throw new Error(\"ajv implementation error\")\n    const {allErrors, props} = it\n    if (props instanceof Name) {\n      gen.if(_`${props} !== true`, () =>\n        gen.forIn(\"key\", data, (key: Name) =>\n          gen.if(unevaluatedDynamic(props, key), () => unevaluatedPropCode(key))\n        )\n      )\n    } else if (props !== true) {\n      gen.forIn(\"key\", data, (key: Name) =>\n        props === undefined\n          ? unevaluatedPropCode(key)\n          : gen.if(unevaluatedStatic(props, key), () => unevaluatedPropCode(key))\n      )\n    }\n    it.props = true\n    cxt.ok(_`${errsCount} === ${N.errors}`)\n\n    function unevaluatedPropCode(key: Name): void {\n      if (schema === false) {\n        cxt.setParams({unevaluatedProperty: key})\n        cxt.error()\n        if (!allErrors) gen.break()\n        return\n      }\n\n      if (!alwaysValidSchema(it, schema)) {\n        const valid = gen.name(\"valid\")\n        cxt.subschema(\n          {\n            keyword: \"unevaluatedProperties\",\n            dataProp: key,\n            dataPropType: Type.Str,\n          },\n          valid\n        )\n        if (!allErrors) gen.if(not(valid), () => gen.break())\n      }\n    }\n\n    function unevaluatedDynamic(evaluatedProps: Name, key: Name): Code {\n      return _`!${evaluatedProps} || !${evaluatedProps}[${key}]`\n    }\n\n    function unevaluatedStatic(evaluatedProps: {[K in string]?: true}, key: Name): Code {\n      const ps: Code[] = []\n      for (const p in evaluatedProps) {\n        if (evaluatedProps[p] === true) ps.push(_`${key} !== ${p}`)\n      }\n      return and(...ps)\n    }\n  },\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../../compile/util\"\n\nexport type UnevaluatedItemsError = ErrorObject<\"unevaluatedItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n  params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"unevaluatedItems\",\n  type: \"array\",\n  schemaType: [\"boolean\", \"object\"],\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, schema, data, it} = cxt\n    const items = it.items || 0\n    if (items === true) return\n    const len = gen.const(\"len\", _`${data}.length`)\n    if (schema === false) {\n      cxt.setParams({len: items})\n      cxt.fail(_`${len} > ${items}`)\n    } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n      const valid = gen.var(\"valid\", _`${len} <= ${items}`)\n      gen.if(not(valid), () => validateItems(valid, items))\n      cxt.ok(valid)\n    }\n    it.items = true\n\n    function validateItems(valid: Name, from: Name | number): void {\n      gen.forRange(\"i\", from, len, (i) => {\n        cxt.subschema({keyword: \"unevaluatedItems\", dataProp: i, dataPropType: Type.Num}, valid)\n        if (!it.allErrors) gen.if(not(valid), () => gen.break())\n      })\n    }\n  },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport unevaluatedProperties from \"./unevaluatedProperties\"\nimport unevaluatedItems from \"./unevaluatedItems\"\n\nconst unevaluated: Vocabulary = [unevaluatedProperties, unevaluatedItems]\n\nexport default unevaluated\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport dynamicVocabulary from \"./dynamic\"\nimport nextVocabulary from \"./next\"\nimport unevaluatedVocabulary from \"./unevaluated\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft2020Vocabularies: Vocabulary[] = [\n  dynamicVocabulary,\n  coreVocabulary,\n  validationVocabulary,\n  getApplicatorVocabulary(true),\n  formatVocabulary,\n  metadataVocabulary,\n  contentVocabulary,\n  nextVocabulary,\n  unevaluatedVocabulary,\n]\n\nexport default draft2020Vocabularies\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/core\": true,\n    \"https://json-schema.org/draft/2020-12/vocab/applicator\": true,\n    \"https://json-schema.org/draft/2020-12/vocab/unevaluated\": true,\n    \"https://json-schema.org/draft/2020-12/vocab/validation\": true,\n    \"https://json-schema.org/draft/2020-12/vocab/meta-data\": true,\n    \"https://json-schema.org/draft/2020-12/vocab/format-annotation\": true,\n    \"https://json-schema.org/draft/2020-12/vocab/content\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Core and Validation specifications meta-schema\",\n  \"allOf\": [\n    {\"$ref\": \"meta/core\"},\n    {\"$ref\": \"meta/applicator\"},\n    {\"$ref\": \"meta/unevaluated\"},\n    {\"$ref\": \"meta/validation\"},\n    {\"$ref\": \"meta/meta-data\"},\n    {\"$ref\": \"meta/format-annotation\"},\n    {\"$ref\": \"meta/content\"}\n  ],\n  \"type\": [\"object\", \"boolean\"],\n  \"$comment\": \"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.\",\n  \"properties\": {\n    \"definitions\": {\n      \"$comment\": \"\\\"definitions\\\" has been replaced by \\\"$defs\\\".\",\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n      \"deprecated\": true,\n      \"default\": {}\n    },\n    \"dependencies\": {\n      \"$comment\": \"\\\"dependencies\\\" has been split and replaced by \\\"dependentSchemas\\\" and \\\"dependentRequired\\\" in order to serve their differing semantics.\",\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"anyOf\": [{\"$dynamicRef\": \"#meta\"}, {\"$ref\": \"meta/validation#/$defs/stringArray\"}]\n      },\n      \"deprecated\": true,\n      \"default\": {}\n    },\n    \"$recursiveAnchor\": {\n      \"$comment\": \"\\\"$recursiveAnchor\\\" has been replaced by \\\"$dynamicAnchor\\\".\",\n      \"$ref\": \"meta/core#/$defs/anchorString\",\n      \"deprecated\": true\n    },\n    \"$recursiveRef\": {\n      \"$comment\": \"\\\"$recursiveRef\\\" has been replaced by \\\"$dynamicRef\\\".\",\n      \"$ref\": \"meta/core#/$defs/uriReferenceString\",\n      \"deprecated\": true\n    }\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/applicator\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/applicator\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Applicator vocabulary meta-schema\",\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"prefixItems\": {\"$ref\": \"#/$defs/schemaArray\"},\n    \"items\": {\"$dynamicRef\": \"#meta\"},\n    \"contains\": {\"$dynamicRef\": \"#meta\"},\n    \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n    \"properties\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n      \"default\": {}\n    },\n    \"patternProperties\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n      \"propertyNames\": {\"format\": \"regex\"},\n      \"default\": {}\n    },\n    \"dependentSchemas\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n      \"default\": {}\n    },\n    \"propertyNames\": {\"$dynamicRef\": \"#meta\"},\n    \"if\": {\"$dynamicRef\": \"#meta\"},\n    \"then\": {\"$dynamicRef\": \"#meta\"},\n    \"else\": {\"$dynamicRef\": \"#meta\"},\n    \"allOf\": {\"$ref\": \"#/$defs/schemaArray\"},\n    \"anyOf\": {\"$ref\": \"#/$defs/schemaArray\"},\n    \"oneOf\": {\"$ref\": \"#/$defs/schemaArray\"},\n    \"not\": {\"$dynamicRef\": \"#meta\"}\n  },\n  \"$defs\": {\n    \"schemaArray\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"items\": {\"$dynamicRef\": \"#meta\"}\n    }\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/unevaluated\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/unevaluated\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Unevaluated applicator vocabulary meta-schema\",\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"unevaluatedItems\": {\"$dynamicRef\": \"#meta\"},\n    \"unevaluatedProperties\": {\"$dynamicRef\": \"#meta\"}\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/content\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/content\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Content vocabulary meta-schema\",\n\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"contentEncoding\": {\"type\": \"string\"},\n    \"contentMediaType\": {\"type\": \"string\"},\n    \"contentSchema\": {\"$dynamicRef\": \"#meta\"}\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/core\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/core\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Core vocabulary meta-schema\",\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"$id\": {\n      \"$ref\": \"#/$defs/uriReferenceString\",\n      \"$comment\": \"Non-empty fragments not allowed.\",\n      \"pattern\": \"^[^#]*#?$\"\n    },\n    \"$schema\": {\"$ref\": \"#/$defs/uriString\"},\n    \"$ref\": {\"$ref\": \"#/$defs/uriReferenceString\"},\n    \"$anchor\": {\"$ref\": \"#/$defs/anchorString\"},\n    \"$dynamicRef\": {\"$ref\": \"#/$defs/uriReferenceString\"},\n    \"$dynamicAnchor\": {\"$ref\": \"#/$defs/anchorString\"},\n    \"$vocabulary\": {\n      \"type\": \"object\",\n      \"propertyNames\": {\"$ref\": \"#/$defs/uriString\"},\n      \"additionalProperties\": {\n        \"type\": \"boolean\"\n      }\n    },\n    \"$comment\": {\n      \"type\": \"string\"\n    },\n    \"$defs\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$dynamicRef\": \"#meta\"}\n    }\n  },\n  \"$defs\": {\n    \"anchorString\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z_][-A-Za-z0-9._]*$\"\n    },\n    \"uriString\": {\n      \"type\": \"string\",\n      \"format\": \"uri\"\n    },\n    \"uriReferenceString\": {\n      \"type\": \"string\",\n      \"format\": \"uri-reference\"\n    }\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/format-annotation\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/format-annotation\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Format vocabulary meta-schema for annotation results\",\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"format\": {\"type\": \"string\"}\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/meta-data\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/meta-data\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Meta-data vocabulary meta-schema\",\n\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"title\": {\n      \"type\": \"string\"\n    },\n    \"description\": {\n      \"type\": \"string\"\n    },\n    \"default\": true,\n    \"deprecated\": {\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"readOnly\": {\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"writeOnly\": {\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"examples\": {\n      \"type\": \"array\",\n      \"items\": true\n    }\n  }\n}\n","{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://json-schema.org/draft/2020-12/meta/validation\",\n  \"$vocabulary\": {\n    \"https://json-schema.org/draft/2020-12/vocab/validation\": true\n  },\n  \"$dynamicAnchor\": \"meta\",\n\n  \"title\": \"Validation vocabulary meta-schema\",\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"type\": {\n      \"anyOf\": [\n        {\"$ref\": \"#/$defs/simpleTypes\"},\n        {\n          \"type\": \"array\",\n          \"items\": {\"$ref\": \"#/$defs/simpleTypes\"},\n          \"minItems\": 1,\n          \"uniqueItems\": true\n        }\n      ]\n    },\n    \"const\": true,\n    \"enum\": {\n      \"type\": \"array\",\n      \"items\": true\n    },\n    \"multipleOf\": {\n      \"type\": \"number\",\n      \"exclusiveMinimum\": 0\n    },\n    \"maximum\": {\n      \"type\": \"number\"\n    },\n    \"exclusiveMaximum\": {\n      \"type\": \"number\"\n    },\n    \"minimum\": {\n      \"type\": \"number\"\n    },\n    \"exclusiveMinimum\": {\n      \"type\": \"number\"\n    },\n    \"maxLength\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n    \"minLength\": {\"$ref\": \"#/$defs/nonNegativeIntegerDefault0\"},\n    \"pattern\": {\n      \"type\": \"string\",\n      \"format\": \"regex\"\n    },\n    \"maxItems\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n    \"minItems\": {\"$ref\": \"#/$defs/nonNegativeIntegerDefault0\"},\n    \"uniqueItems\": {\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"maxContains\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n    \"minContains\": {\n      \"$ref\": \"#/$defs/nonNegativeInteger\",\n      \"default\": 1\n    },\n    \"maxProperties\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n    \"minProperties\": {\"$ref\": \"#/$defs/nonNegativeIntegerDefault0\"},\n    \"required\": {\"$ref\": \"#/$defs/stringArray\"},\n    \"dependentRequired\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/$defs/stringArray\"\n      }\n    }\n  },\n  \"$defs\": {\n    \"nonNegativeInteger\": {\n      \"type\": \"integer\",\n      \"minimum\": 0\n    },\n    \"nonNegativeIntegerDefault0\": {\n      \"$ref\": \"#/$defs/nonNegativeInteger\",\n      \"default\": 0\n    },\n    \"simpleTypes\": {\n      \"enum\": [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n    },\n    \"stringArray\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"uniqueItems\": true,\n      \"default\": []\n    }\n  }\n}\n","import type Ajv from \"../../core\"\nimport type {AnySchemaObject} from \"../../types\"\nimport * as metaSchema from \"./schema.json\"\nimport * as applicator from \"./meta/applicator.json\"\nimport * as unevaluated from \"./meta/unevaluated.json\"\nimport * as content from \"./meta/content.json\"\nimport * as core from \"./meta/core.json\"\nimport * as format from \"./meta/format-annotation.json\"\nimport * as metadata from \"./meta/meta-data.json\"\nimport * as validation from \"./meta/validation.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nexport default function addMetaSchema2020(this: Ajv, $data?: boolean): Ajv {\n  ;[\n    metaSchema,\n    applicator,\n    unevaluated,\n    content,\n    core,\n    with$data(this, format),\n    metadata,\n    with$data(this, validation),\n  ].forEach((sch) => this.addMetaSchema(sch, undefined, false))\n  return this\n\n  function with$data(ajv: Ajv, sch: AnySchemaObject): AnySchemaObject {\n    return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch\n  }\n}\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore, {Options} from \"./core\"\n\nimport draft2020Vocabularies from \"./vocabularies/draft2020\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport addMetaSchema2020 from \"./refs/json-schema-2020-12\"\n\nconst META_SCHEMA_ID = \"https://json-schema.org/draft/2020-12/schema\"\n\nexport class Ajv2020 extends AjvCore {\n  constructor(opts: Options = {}) {\n    super({\n      ...opts,\n      dynamicRef: true,\n      next: true,\n      unevaluated: true,\n    })\n  }\n\n  _addVocabularies(): void {\n    super._addVocabularies()\n    draft2020Vocabularies.forEach((v) => this.addVocabulary(v))\n    if (this.opts.discriminator) this.addKeyword(discriminator)\n  }\n\n  _addDefaultMetaSchema(): void {\n    super._addDefaultMetaSchema()\n    const {$data, meta} = this.opts\n    if (!meta) return\n    addMetaSchema2020.call(this, $data)\n    this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n  }\n\n  defaultMeta(): string | AnySchemaObject | undefined {\n    return (this.opts.defaultMeta =\n      super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n  }\n}\n\nmodule.exports = exports = Ajv2020\nmodule.exports.Ajv2020 = Ajv2020\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv2020\n\nexport {\n  Format,\n  FormatDefinition,\n  AsyncFormatDefinition,\n  KeywordDefinition,\n  KeywordErrorDefinition,\n  CodeKeywordDefinition,\n  MacroKeywordDefinition,\n  FuncKeywordDefinition,\n  Vocabulary,\n  Schema,\n  SchemaObject,\n  AnySchemaObject,\n  AsyncSchema,\n  AnySchema,\n  ValidateFunction,\n  AsyncValidateFunction,\n  ErrorObject,\n  ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","import type {\n  CapabilityManifest,\n  CapabilityRegistryDocument,\n  CapabilityRegistrySource,\n  CapabilitySourceType,\n} from '../contracts/capability';\nimport {\n  CapabilityManifestSchema,\n  CapabilityRegistryDocumentSchema,\n  CapabilityRegistrySourceSchema,\n} from '../contracts/capability';\nimport type { EntityRef } from '../contracts/common';\nimport type { WorkflowDefinition } from '../contracts/workflow-definition';\nimport { WorkflowDefinitionSchema } from '../contracts/workflow-definition';\n\nexport interface CapabilityRegistryInputSource extends CapabilityRegistrySource {\n  manifests: readonly unknown[];\n}\n\nexport interface CompiledCapabilityRegistry {\n  document: CapabilityRegistryDocument;\n  manifests: readonly CapabilityManifest[];\n  manifestsById: ReadonlyMap<string, CapabilityManifest>;\n  sourcesByCapabilityId: ReadonlyMap<string, readonly CapabilityRegistrySource[]>;\n  require(reference: EntityRef | string): CapabilityManifest;\n}\n\nconst operationMethods = new Set(['get', 'post', 'put', 'patch', 'delete', 'options', 'head']);\n\n/** Extracts only canonical extensions and fails when a declared Monkeys tool has no manifest. */\nexport const extractOpenApiCapabilityManifests = (document: unknown): CapabilityManifest[] => {\n  if (!document || typeof document !== 'object' || Array.isArray(document)) {\n    throw new TypeError('OpenAPI capability source must be an object.');\n  }\n  const paths = (document as Record<string, unknown>).paths;\n  if (!paths || typeof paths !== 'object' || Array.isArray(paths)) {\n    throw new TypeError('OpenAPI capability source must contain a paths object.');\n  }\n\n  const manifests: CapabilityManifest[] = [];\n  for (const [path, pathValue] of Object.entries(paths)) {\n    if (!pathValue || typeof pathValue !== 'object' || Array.isArray(pathValue)) continue;\n    for (const [method, operationValue] of Object.entries(pathValue as Record<string, unknown>)) {\n      if (!operationMethods.has(method.toLowerCase()) || !operationValue || typeof operationValue !== 'object' || Array.isArray(operationValue)) continue;\n      const operation = operationValue as Record<string, unknown>;\n      const manifest = operation['x-monkeys-capability-manifest'];\n      if (manifest === undefined) {\n        if (operation['x-monkey-tool-name'] !== undefined) {\n          throw new Error(`OpenAPI operation ${method.toUpperCase()} ${path} declares a tool without x-monkeys-capability-manifest.`);\n        }\n        continue;\n      }\n      manifests.push(CapabilityManifestSchema.parse(manifest));\n    }\n  }\n  return manifests;\n};\n\nexport const createCapabilityRegistrySource = (\n  sourceType: CapabilitySourceType,\n  sourceId: string,\n  ownerRepo: string,\n  manifests: readonly unknown[],\n): CapabilityRegistryInputSource => ({\n  ...CapabilityRegistrySourceSchema.parse({ sourceType, sourceId, ownerRepo }),\n  manifests,\n});\n\nexport const createOpenApiCapabilityRegistrySource = (\n  sourceId: string,\n  ownerRepo: string,\n  document: unknown,\n): CapabilityRegistryInputSource =>\n  createCapabilityRegistrySource('openapi', sourceId, ownerRepo, extractOpenApiCapabilityManifests(document));\n\nexport interface WorkflowCapabilityManifestOptions {\n  ownerRepo: string;\n  surfaces: readonly string[];\n  slots?: readonly string[];\n  variants?: readonly string[];\n  tokenRefs?: readonly string[];\n}\n\nexport const createWorkflowCapabilityManifest = (\n  input: WorkflowDefinition,\n  options: WorkflowCapabilityManifestOptions,\n): CapabilityManifest => {\n  const workflow = WorkflowDefinitionSchema.parse(input);\n  return CapabilityManifestSchema.parse({\n    contract: 'CapabilityManifest',\n    id: workflow.metadata.id,\n    capabilityVersion: String(workflow.metadata.version),\n    ownerRepo: options.ownerRepo,\n    kind: 'workflow',\n    displayName: typeof workflow.metadata.name === 'string'\n      ? workflow.metadata.name\n      : workflow.metadata.name?.['en-US'] ?? workflow.metadata.name?.['zh-CN'] ?? workflow.metadata.id,\n    description: typeof workflow.metadata.description === 'string'\n      ? workflow.metadata.description\n      : workflow.metadata.description?.['en-US'] ?? workflow.metadata.description?.['zh-CN'],\n    ports: workflow.ports,\n    runtime: {\n      providerBindings: [{\n        providerRef: { kind: 'workflow', id: workflow.metadata.id, version: workflow.metadata.version, ownerRepo: options.ownerRepo },\n        productContexts: [],\n        priority: 0,\n      }],\n      loading: 'on-activation',\n      stateOwner: 'external',\n      sideEffects: ['network', 'storage', 'worker'],\n    },\n    placement: {\n      surfaces: options.surfaces,\n      slots: options.slots ?? [],\n      variants: options.variants ?? [],\n      tokenRefs: options.tokenRefs ?? [],\n    },\n    accessibility: {\n      keyboardModel: 'workflow-form',\n      focusModel: 'host-managed',\n      labelContract: 'workflow-display-name',\n    },\n    observability: {\n      eventNamespace: `workflow.${workflow.metadata.id}`,\n      metrics: ['runs', 'duration', 'errors'],\n      evidenceRefs: [],\n      performanceBudgetMs: workflow.execution.timeoutMs,\n    },\n  });\n};\n\n/** Compiles all production declaration sources into one immutable, conflict-free registry. */\nexport const compileCapabilityRegistry = (\n  sources: readonly CapabilityRegistryInputSource[],\n): CompiledCapabilityRegistry => {\n  const entriesById = new Map<string, { manifest: CapabilityManifest; sources: CapabilityRegistrySource[] }>();\n  const seenSources = new Set<string>();\n\n  for (const sourceInput of sources) {\n    const source = CapabilityRegistrySourceSchema.parse({\n      sourceType: sourceInput.sourceType,\n      sourceId: sourceInput.sourceId,\n      ownerRepo: sourceInput.ownerRepo,\n    });\n    const sourceKey = `${source.sourceType}:${source.sourceId}`;\n    if (seenSources.has(sourceKey)) throw new Error(`Duplicate capability source: ${sourceKey}`);\n    seenSources.add(sourceKey);\n\n    for (const manifestInput of sourceInput.manifests) {\n      const manifest = CapabilityManifestSchema.parse(manifestInput);\n      if (manifest.ownerRepo !== source.ownerRepo) {\n        throw new Error(`Capability ${manifest.id} owner ${manifest.ownerRepo} does not match source owner ${source.ownerRepo}.`);\n      }\n      const existing = entriesById.get(manifest.id);\n      if (!existing) {\n        entriesById.set(manifest.id, { manifest, sources: [source] });\n        continue;\n      }\n      if (JSON.stringify(existing.manifest) !== JSON.stringify(manifest)) {\n        throw new Error(`Conflicting capability declarations for ${manifest.id}.`);\n      }\n      existing.sources.push(source);\n    }\n  }\n\n  const document = CapabilityRegistryDocumentSchema.parse({\n    contract: 'CapabilityRegistry',\n    entries: Array.from(entriesById.values()).sort((left, right) => left.manifest.id.localeCompare(right.manifest.id)),\n  });\n  const manifests = Object.freeze(document.entries.map((entry) => entry.manifest));\n  const manifestsById = new Map(manifests.map((manifest) => [manifest.id, manifest]));\n  const sourcesByCapabilityId = new Map(document.entries.map((entry) => [entry.manifest.id, Object.freeze(entry.sources)]));\n\n  return Object.freeze({\n    document: Object.freeze(document),\n    manifests,\n    manifestsById,\n    sourcesByCapabilityId,\n    require(reference: EntityRef | string): CapabilityManifest {\n      if (typeof reference !== 'string' && reference.kind !== 'capability') {\n        throw new Error(`Expected a capability reference, received ${reference.kind}:${reference.id}.`);\n      }\n      const id = typeof reference === 'string' ? reference : reference.id;\n      const manifest = manifestsById.get(id);\n      if (!manifest) throw new Error(`Unknown capability: ${id}`);\n      if (typeof reference !== 'string' && reference.version !== undefined && String(reference.version) !== manifest.capabilityVersion) {\n        throw new Error(`Capability ${id} version ${String(reference.version)} is not active; expected ${manifest.capabilityVersion}.`);\n      }\n      return manifest;\n    },\n  });\n};\n","import {\n  AgentSessionEventSchema,\n  AgentSessionViewModelSchema,\n  type AgentSessionEvent,\n  type AgentSessionSnapshot,\n  type AgentSessionStatus,\n  type AgentSessionViewModel,\n} from \"../contracts/agent\";\n\nexport interface AgentSessionEventGap {\n  expectedSequence: number;\n  receivedSequence: number;\n}\n\nexport interface AgentSessionEventProjection {\n  sessionId: string;\n  events: AgentSessionEvent[];\n  lastSequence: number;\n  status: AgentSessionStatus;\n  resumable: boolean;\n  gap?: AgentSessionEventGap;\n}\n\nexport function createAgentSessionEventProjection(\n  sessionId: string,\n): AgentSessionEventProjection {\n  return {\n    sessionId,\n    events: [],\n    lastSequence: -1,\n    status: \"queued\",\n    resumable: false,\n  };\n}\n\nexport function projectAgentSessionEvents(\n  current: AgentSessionEventProjection,\n  candidates: readonly unknown[],\n): AgentSessionEventProjection {\n  const parsed = candidates.map((candidate) =>\n    AgentSessionEventSchema.parse(candidate),\n  );\n  if (parsed.some((event) => event.sessionId !== current.sessionId)) {\n    throw new TypeError(\n      \"Agent session event sessionId does not match the projection sessionId.\",\n    );\n  }\n\n  const eventIds = new Set(current.events.map((event) => event.eventId));\n  const idempotencyKeys = new Set(\n    current.events.map((event) => event.idempotencyKey),\n  );\n  const eventsBySequence = new Map(\n    current.events.map((event) => [event.sequence, event] as const),\n  );\n  const acceptedCandidates: AgentSessionEvent[] = [];\n  for (const event of parsed.sort(\n    (left, right) => left.sequence - right.sequence,\n  )) {\n    if (\n      eventIds.has(event.eventId) ||\n      idempotencyKeys.has(event.idempotencyKey)\n    )\n      continue;\n    const existing = eventsBySequence.get(event.sequence);\n    if (existing) {\n      throw new TypeError(\n        `Conflicting Agent session events share sequence ${event.sequence}.`,\n      );\n    }\n    eventsBySequence.set(event.sequence, event);\n    eventIds.add(event.eventId);\n    idempotencyKeys.add(event.idempotencyKey);\n    acceptedCandidates.push(event);\n  }\n\n  for (const event of acceptedCandidates)\n    eventsBySequence.delete(event.sequence);\n\n  let expectedSequence = current.lastSequence + 1;\n  let gap: AgentSessionEventGap | undefined;\n  for (const event of acceptedCandidates) {\n    if (event.sequence < expectedSequence) {\n      throw new TypeError(\n        `Agent session event sequence ${event.sequence} is behind the recovery cursor.`,\n      );\n    }\n    if (event.sequence > expectedSequence) {\n      gap = { expectedSequence, receivedSequence: event.sequence };\n      break;\n    }\n    eventsBySequence.set(event.sequence, event);\n    eventIds.add(event.eventId);\n    idempotencyKeys.add(event.idempotencyKey);\n    expectedSequence += 1;\n  }\n\n  const events = [...eventsBySequence.values()].sort(\n    (left, right) => left.sequence - right.sequence,\n  );\n  let status: AgentSessionStatus = \"queued\";\n  let resumable = false;\n  for (const event of events) {\n    if (event.eventType === \"status\") status = event.payload.status;\n    if (event.eventType === \"resume\") resumable = event.payload.resumable;\n  }\n  return {\n    sessionId: current.sessionId,\n    events,\n    lastSequence: events.length > 0 ? events[events.length - 1].sequence : -1,\n    status,\n    resumable,\n    ...(gap ? { gap } : {}),\n  };\n}\n\nexport function toAgentSessionViewModel(\n  projection: AgentSessionEventProjection,\n  snapshot: AgentSessionSnapshot,\n): AgentSessionViewModel {\n  return AgentSessionViewModelSchema.parse({\n    contract: \"AgentSessionViewModel\",\n    sessionId: projection.sessionId,\n    snapshot,\n    status: projection.status,\n    events: projection.events,\n    lastSequence: projection.lastSequence,\n    resumable: projection.resumable,\n  });\n}\n","import type { CapabilityManifest } from '../contracts/capability';\nimport { CapabilityManifestSchema } from '../contracts/capability';\nimport type { EntityRef } from '../contracts/common';\nimport type { MenuDefinition } from '../contracts/menu';\nimport type { PageDefinition } from '../contracts/page';\nimport {\n  ChangeImpactGraphSchema,\n  DomainCommandDefinitionSchema,\n  DomainCommandSchema,\n  ProductDeclarationSchema,\n  type ChangeImpactGraph,\n  type DomainCommand,\n  type DomainCommandDefinition,\n  type ProductDeclaration,\n} from '../contracts/semantic';\n\nconst uniqueIndex = <T>(values: readonly T[], key: (value: T) => string, label: string): ReadonlyMap<string, T> => {\n  const result = new Map<string, T>();\n  for (const value of values) {\n    const id = key(value);\n    if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n    result.set(id, value);\n  }\n  return result;\n};\n\nconst ref = (kind: string, id: string): EntityRef => ({ kind, id });\nconst refKey = (value: EntityRef) => `${value.kind}:${value.id}`;\n\nexport interface CompiledProductDeclaration {\n  declaration: ProductDeclaration;\n  conceptsById: ReadonlyMap<string, ProductDeclaration['concepts'][number]>;\n  ontologiesById: ReadonlyMap<string, ProductDeclaration['ontologies'][number]>;\n  projectionsById: ReadonlyMap<string, ProductDeclaration['projections'][number]>;\n  commandsByName: ReadonlyMap<string, DomainCommandDefinition>;\n  capabilitiesById: ReadonlyMap<string, CapabilityManifest>;\n  pagesById: ReadonlyMap<string, PageDefinition>;\n  menusByKey: ReadonlyMap<string, MenuDefinition>;\n  nodes: readonly EntityRef[];\n  edges: readonly ChangeImpactGraph['edges'][number][];\n}\n\nexport interface ToolCapabilityPortSource {\n  name: string;\n  required?: boolean;\n  type?: string;\n  description?: string;\n}\n\nexport interface ToolCapabilitySource {\n  id: string;\n  capabilityVersion: string;\n  ownerRepo: string;\n  displayName: string;\n  description?: string;\n  inputs?: readonly ToolCapabilityPortSource[];\n  outputs?: readonly ToolCapabilityPortSource[];\n  sideEffects?: CapabilityManifest['runtime']['sideEffects'];\n}\n\nexport interface OpenApiToolCapabilityPublisherOptions {\n  namespace: string;\n  ownerRepo: string;\n  capabilityVersion: string;\n}\n\nexport const compileToolCapabilityManifest = (input: unknown): CapabilityManifest => {\n  const manifest = CapabilityManifestSchema.parse(input);\n  if (manifest.kind !== 'tool') throw new Error(`Capability ${manifest.id} must use kind tool.`);\n  if (manifest.runtime.providerBindings.length !== 1 || manifest.runtime.providerBindings[0].providerRef.kind !== 'tool') {\n    throw new Error(`Tool capability ${manifest.id} must reference a tool provider.`);\n  }\n  return Object.freeze(manifest);\n};\n\nexport const createToolCapabilityManifest = (input: ToolCapabilitySource): CapabilityManifest => {\n  const ports = (direction: 'input' | 'output', values: readonly ToolCapabilityPortSource[] = []) =>\n    values.map((value) => ({\n      name: String(value.name),\n      schemaRef: `schema://tool/${input.id}/${direction}/${String(value.name)}`,\n      required: value.required === true,\n      multiple: value.type === 'array',\n      description: value.description,\n    }));\n  return compileToolCapabilityManifest({\n    contract: 'CapabilityManifest',\n    id: input.id,\n    capabilityVersion: input.capabilityVersion,\n    ownerRepo: input.ownerRepo,\n    kind: 'tool',\n    displayName: input.displayName,\n    description: input.description,\n    ports: { inputs: ports('input', input.inputs), outputs: ports('output', input.outputs) },\n    runtime: {\n      providerBindings: [{ providerRef: { kind: 'tool', id: input.id }, productContexts: [], priority: 0 }],\n      loading: 'on-activation',\n      stateOwner: 'provider',\n      sideEffects: input.sideEffects ?? ['network'],\n    },\n    placement: { surfaces: ['agent', 'workflow'], slots: [], variants: [], tokenRefs: [] },\n    accessibility: { keyboardModel: 'tool-form', focusModel: 'host-managed', labelContract: 'tool-display-name' },\n    observability: { eventNamespace: `tool.${input.id}`, metrics: ['calls', 'duration', 'errors'], evidenceRefs: [] },\n  });\n};\n\nconst TOOL_HTTP_METHODS = new Set(['get', 'post', 'put', 'patch', 'delete']);\nconst normalizeToolIdentifier = (value: string) => value.replace(/[^a-zA-Z0-9_.-]/g, '_');\nconst localizedText = (value: unknown, fallback: string): string => {\n  if (typeof value === 'string' && value.trim()) return value;\n  if (value && typeof value === 'object') {\n    const record = value as Record<string, unknown>;\n    for (const locale of ['en-US', 'zh-CN']) {\n      if (typeof record[locale] === 'string' && String(record[locale]).trim()) return String(record[locale]);\n    }\n  }\n  return fallback;\n};\n\nconst normalizeToolCapabilityPorts = (\n  value: unknown,\n  direction: 'input' | 'output',\n): ToolCapabilityPortSource[] => {\n  if (value === undefined) return [];\n  if (!Array.isArray(value)) throw new Error(`Tool ${direction} declaration must be an array.`);\n\n  const normalized = value.map((item, index) => {\n    if (!item || typeof item !== 'object' || Array.isArray(item)) {\n      throw new Error(`Tool ${direction} declaration at index ${index} must be an object.`);\n    }\n\n    const record = item as Record<string, unknown>;\n    if (typeof record.name !== 'string' || !record.name.trim()) {\n      throw new Error(`Tool ${direction} declaration at index ${index} must have a non-empty name.`);\n    }\n    if (record.required !== undefined && typeof record.required !== 'boolean') {\n      throw new Error(`Tool ${direction} ${record.name} required must be a boolean.`);\n    }\n    if (record.type !== undefined && (typeof record.type !== 'string' || !record.type.trim())) {\n      throw new Error(`Tool ${direction} ${record.name} type must be a non-empty string.`);\n    }\n\n    const name = record.name.trim();\n    const descriptionSource = record.description ?? record.displayName;\n    return {\n      name,\n      required: record.required === true,\n      type: typeof record.type === 'string' ? record.type.trim() : undefined,\n      description: descriptionSource === undefined\n        ? undefined\n        : localizedText(descriptionSource, name),\n    };\n  });\n\n  const portsByName = new Map<string, ToolCapabilityPortSource>();\n  for (const port of normalized) {\n    const existing = portsByName.get(port.name);\n    if (!existing) {\n      portsByName.set(port.name, port);\n      continue;\n    }\n\n    // OpenAPI tool forms may declare the same logical field more than once\n    // to provide conditional presentation/defaults (for example one code\n    // editor per selected language). A capability port is an identity and\n    // must remain unique, so collapse presentation-only duplicates while\n    // failing closed when their executable contract disagrees.\n    if (existing.required !== port.required || existing.type !== port.type) {\n      throw new Error(\n        `Tool ${direction} ${port.name} has conflicting duplicate declarations.`,\n      );\n    }\n  }\n\n  return [...portsByName.values()];\n};\n\n/** Publishes canonical CapabilityManifest values on every tool operation in an OpenAPI document. */\nexport const publishOpenApiToolCapabilityManifests = <T extends Record<string, unknown>>(\n  document: T,\n  options: OpenApiToolCapabilityPublisherOptions,\n): T => {\n  const paths = document.paths;\n  if (!paths || typeof paths !== 'object') throw new Error('OpenAPI document paths are required.');\n  for (const pathItem of Object.values(paths as Record<string, unknown>)) {\n    if (!pathItem || typeof pathItem !== 'object') continue;\n    for (const [method, operationValue] of Object.entries(pathItem as Record<string, unknown>)) {\n      if (!TOOL_HTTP_METHODS.has(method.toLowerCase()) || !operationValue || typeof operationValue !== 'object') continue;\n      const operation = operationValue as Record<string, unknown>;\n      const declaredName = operation['x-monkey-tool-name'];\n      if (typeof declaredName !== 'string' || !declaredName.trim()) continue;\n      const toolName = normalizeToolIdentifier(declaredName);\n      const id = `${normalizeToolIdentifier(options.namespace)}_${toolName}`;\n      const displayName = localizedText(operation['x-monkey-tool-display-name'] ?? operation.summary, toolName);\n      const description = localizedText(operation['x-monkey-tool-description'] ?? operation.description, displayName);\n      const inputs = normalizeToolCapabilityPorts(operation['x-monkey-tool-input'], 'input');\n      const outputs = normalizeToolCapabilityPorts(operation['x-monkey-tool-output'], 'output');\n      operation['x-monkeys-capability-manifest'] = createToolCapabilityManifest({\n        id,\n        capabilityVersion: typeof operation['x-monkey-tool-version'] === 'string'\n          ? operation['x-monkey-tool-version']\n          : options.capabilityVersion,\n        ownerRepo: options.ownerRepo,\n        displayName,\n        description,\n        inputs,\n        outputs,\n        sideEffects: Array.isArray(operation['x-monkey-tool-side-effects'])\n          ? operation['x-monkey-tool-side-effects'] as CapabilityManifest['runtime']['sideEffects']\n          : undefined,\n      });\n    }\n  }\n  return document;\n};\n\nexport const compileProductDeclaration = (input: ProductDeclaration): CompiledProductDeclaration => {\n  const declaration = ProductDeclarationSchema.parse(input);\n  const conceptsById = uniqueIndex(declaration.concepts, (value) => value.conceptId, 'concept id');\n  const ontologiesById = uniqueIndex(declaration.ontologies, (value) => value.ontologyId, 'ontology id');\n  const projectionsById = uniqueIndex(declaration.projections, (value) => value.projectionId, 'projection id');\n  const commandsByName = uniqueIndex(declaration.commands, (value) => value.commandName, 'command name');\n  const capabilitiesById = uniqueIndex(declaration.capabilities, (value) => value.id, 'capability id');\n  const pagesById = uniqueIndex(declaration.pages, (value) => value.pageId, 'page id');\n  const menusByKey = uniqueIndex(\n    declaration.menus,\n    (value) => `${value.applicationId}/${value.surface}/${value.menuId}`,\n    'menu definition',\n  );\n  const nodes: EntityRef[] = [];\n  const edges: ChangeImpactGraph['edges'] = [];\n\n  const addNode = (kind: string, id: string) => nodes.push(ref(kind, id));\n  const addEdge = (from: EntityRef, to: EntityRef, relation: ChangeImpactGraph['edges'][number]['relation']) =>\n    edges.push({ from, to, relation });\n\n  for (const ontology of declaration.ontologies) addNode('ontology', ontology.ontologyId);\n  for (const projection of declaration.projections) {\n    addNode('projection', projection.projectionId);\n    for (const ontologyId of projection.ontologyIds) {\n      if (!ontologiesById.has(ontologyId)) throw new Error(`Projection ${projection.projectionId} references unknown ontology ${ontologyId}.`);\n      addEdge(ref('projection', projection.projectionId), ref('ontology', ontologyId), 'uses-ontology');\n    }\n  }\n  for (const command of declaration.commands) addNode('command', command.commandName);\n  for (const capability of declaration.capabilities) addNode('capability', capability.id);\n  for (const menu of declaration.menus) addNode('menu', `${menu.applicationId}/${menu.surface}/${menu.menuId}`);\n  for (const concept of declaration.concepts) {\n    addNode('concept', concept.conceptId);\n    if (concept.ontologyId) {\n      if (!ontologiesById.has(concept.ontologyId)) throw new Error(`Concept ${concept.conceptId} references unknown ontology ${concept.ontologyId}.`);\n      addEdge(ref('concept', concept.conceptId), ref('ontology', concept.ontologyId), 'uses-ontology');\n    }\n    for (const capabilityId of concept.capabilityIds) {\n      if (!capabilitiesById.has(capabilityId)) throw new Error(`Concept ${concept.conceptId} references unknown capability ${capabilityId}.`);\n      addEdge(ref('concept', concept.conceptId), ref('capability', capabilityId), 'uses-capability');\n    }\n    for (const commandName of concept.commandNames) {\n      if (!commandsByName.has(commandName)) throw new Error(`Concept ${concept.conceptId} references unknown command ${commandName}.`);\n      addEdge(ref('concept', concept.conceptId), ref('command', commandName), 'uses-command');\n    }\n    for (const relationship of concept.relationships) {\n      if (!conceptsById.has(relationship.targetConceptId)) {\n        throw new Error(`Concept ${concept.conceptId} references unknown concept ${relationship.targetConceptId}.`);\n      }\n      addEdge(ref('concept', concept.conceptId), ref('concept', relationship.targetConceptId), 'relates-to-concept');\n    }\n  }\n  for (const page of declaration.pages) {\n    addNode('page', page.pageId);\n    if (page.binding.ontologyId) {\n      if (!ontologiesById.has(page.binding.ontologyId)) throw new Error(`Page ${page.pageId} references unknown ontology ${page.binding.ontologyId}.`);\n      addEdge(ref('page', page.pageId), ref('ontology', page.binding.ontologyId), 'uses-ontology');\n    }\n    if (page.binding.projectionRef) {\n      if (!projectionsById.has(page.binding.projectionRef)) throw new Error(`Page ${page.pageId} references unknown projection ${page.binding.projectionRef}.`);\n      addEdge(ref('page', page.pageId), ref('projection', page.binding.projectionRef), 'uses-projection');\n    }\n    for (const capabilityRef of [page.capabilityRef, ...page.capabilityRefs].filter(Boolean) as EntityRef[]) {\n      if (!capabilitiesById.has(capabilityRef.id)) throw new Error(`Page ${page.pageId} references unknown capability ${capabilityRef.id}.`);\n      addEdge(ref('page', page.pageId), ref('capability', capabilityRef.id), 'uses-capability');\n    }\n  }\n\n  uniqueIndex(nodes, refKey, 'declaration node');\n  return Object.freeze({\n    declaration: Object.freeze(declaration),\n    conceptsById,\n    ontologiesById,\n    projectionsById,\n    commandsByName,\n    capabilitiesById,\n    pagesById,\n    menusByKey,\n    nodes: Object.freeze(nodes),\n    edges: Object.freeze(edges),\n  });\n};\n\nexport const validateDomainCommand = (\n  input: DomainCommand,\n  definitions: readonly DomainCommandDefinition[],\n  permissionCodes: readonly string[],\n): DomainCommand => {\n  const command = DomainCommandSchema.parse(input);\n  const commandsByName = uniqueIndex(\n    definitions.map((definition) => DomainCommandDefinitionSchema.parse(definition)),\n    (definition) => definition.commandName,\n    'command name',\n  );\n  const definition = commandsByName.get(command.commandName);\n  if (!definition) throw new Error(`Unknown domain command: ${command.commandName}`);\n  if (!definition.targetKinds.includes(command.targetRef.kind)) {\n    throw new Error(`Command ${command.commandName} does not accept target kind ${command.targetRef.kind}.`);\n  }\n  const granted = new Set(permissionCodes);\n  const missing = definition.requiredPermissionCodes.filter((permission) => !granted.has(permission));\n  if (missing.length) throw new Error(`Command ${command.commandName} requires permissions: ${missing.join(', ')}`);\n  return Object.freeze(command);\n};\n\nconst declarationValuesByRef = (compiled: CompiledProductDeclaration): Map<string, unknown> => {\n  const values = new Map<string, unknown>();\n  for (const value of compiled.declaration.ontologies) values.set(refKey(ref('ontology', value.ontologyId)), value);\n  for (const value of compiled.declaration.projections) values.set(refKey(ref('projection', value.projectionId)), value);\n  for (const value of compiled.declaration.commands) values.set(refKey(ref('command', value.commandName)), value);\n  for (const value of compiled.declaration.capabilities) values.set(refKey(ref('capability', value.id)), value);\n  for (const value of compiled.declaration.concepts) values.set(refKey(ref('concept', value.conceptId)), value);\n  for (const value of compiled.declaration.pages) values.set(refKey(ref('page', value.pageId)), value);\n  return values;\n};\n\nexport const buildChangeImpactGraph = (\n  previousInput: ProductDeclaration,\n  nextInput: ProductDeclaration,\n  generatedAt = new Date().toISOString(),\n): ChangeImpactGraph => {\n  const previous = compileProductDeclaration(previousInput);\n  const next = compileProductDeclaration(nextInput);\n  const previousValues = declarationValuesByRef(previous);\n  const nextValues = declarationValuesByRef(next);\n  const changedKeys = new Set<string>();\n  for (const key of new Set([...previousValues.keys(), ...nextValues.keys()])) {\n    if (JSON.stringify(previousValues.get(key)) !== JSON.stringify(nextValues.get(key))) changedKeys.add(key);\n  }\n\n  const reverse = new Map<string, Set<string>>();\n  for (const edge of [...previous.edges, ...next.edges]) {\n    const dependency = refKey(edge.to);\n    const dependent = refKey(edge.from);\n    const values = reverse.get(dependency) ?? new Set<string>();\n    values.add(dependent);\n    reverse.set(dependency, values);\n  }\n  const refs = new Map<string, EntityRef>();\n  for (const node of [...previous.nodes, ...next.nodes]) refs.set(refKey(node), node);\n  const impacts = Array.from(changedKeys).sort().map((changedKey) => {\n    const affected = new Set<string>();\n    const queue = [...(reverse.get(changedKey) ?? [])];\n    while (queue.length) {\n      const current = queue.shift()!;\n      if (affected.has(current)) continue;\n      affected.add(current);\n      queue.push(...(reverse.get(current) ?? []));\n    }\n    return {\n      changedRef: refs.get(changedKey) ?? (() => {\n        const separator = changedKey.indexOf(':');\n        return ref(changedKey.slice(0, separator), changedKey.slice(separator + 1));\n      })(),\n      affectedRefs: Array.from(affected).sort().map((key) => refs.get(key)!),\n      reasons: affected.size ? ['dependency'] : ['direct-change'],\n    };\n  });\n\n  return ChangeImpactGraphSchema.parse({\n    contract: 'ChangeImpactGraph',\n    declarationId: next.declaration.declarationId,\n    nodes: Array.from(refs.values()).sort((left, right) => refKey(left).localeCompare(refKey(right))),\n    edges: next.edges,\n    impacts,\n    generatedAt,\n  });\n};\n","import { sha256Hex } from '#canonical-sha256';\nimport type { RenderNode, RenderTree } from \"../contracts/render\";\nimport { JsonObjectSchema } from \"../contracts/common\";\nimport {\n  DeclarativeProductResourceRegistrationSchema,\n  DeclarativeShellResourceDocumentSchema,\n  DesignCapabilityCatalogArtifactSchema,\n  ProductDeclarativeCapabilityRegistrationSchema,\n  type DeclarativeCreateTemplateRegistration,\n  type DeclarativeProductResourceRegistration,\n  type DeclarativeRouteSpaceRegistration,\n  type DeclarativeSchemaDefinitionRegistration,\n  type DesignCapabilityCatalogArtifact,\n  type DesignCapabilityCatalogEntry,\n  type ProductDeclarativeCapabilityRegistration,\n} from \"../contracts/declarative-control-http\";\nimport { compileRenderTree } from \"./render-tree-compiler\";\nimport { collectPageExpressionReads } from \"../contracts/page-expression\";\nimport {\n  ActionProgramDefinitionSchema,\n  type ActionProgramDefinition,\n  AccessPolicySchema,\n  CompiledRouteClaimSchema,\n  DeclarativeRouteOwnerIndexSchema,\n  DomainQueryDefinitionSchema,\n  PageSchema,\n  DeclarativeWorkbenchCatalogSchema,\n  LegacyRouteTakeoverAuthorizationSchema,\n  LegacyRouteClaimSchema,\n  PermissionAlternativePolicySchema,\n  NavigationReleaseSchema,\n  NavigationRuntimeBundleSchema,\n  NavigationSchema,\n  PageReleaseSchema,\n  PageRuntimeBundleSchema,\n  LegacyPageRuntimeBundleSchema,\n  ResolvedPageSchema,\n  OntologyBindingSchema,\n  LegacyOntologyBindingSchema,\n  ProductSurfaceSchema,\n  RevisionRefSchema,\n  RouteClaimSchema,\n  RoutePathTemplateSchema,\n  RouteSpaceSchema,\n  StableRefSchema,\n  TenantScopeSchema,\n  WorkbenchReleaseSchema,\n  WorkbenchRuntimeBundleSchema,\n  WorkbenchSchema,\n  type AccessPolicy,\n  type CompiledRouteClaim,\n  type DeclarativeRouteOwnerIndex,\n  type DeclarativeRouteOwnerIndexEntry,\n  type DeclarativeRouteClaim,\n  type DeclarativeWorkbenchCatalog,\n  type DeclarativeWorkbenchCatalogEntry,\n  type DomainQueryDefinition,\n  type LegacyRouteTakeoverAuthorization,\n  type PermissionAlternativePolicy,\n  type Navigation,\n  type NavigationRelease,\n  type NavigationRuntimeBundle,\n  type Page,\n  type ResolvedPage,\n  type PageRelease,\n  type PageRuntimeBundle,\n  type LegacyPageRuntimeBundle,\n  type ReleaseDependency,\n  type RevisionRef,\n  type RouteClaim,\n  type RouteSpace,\n  type StableRef,\n  type TenantScope,\n  type Workbench,\n  type WorkbenchRelease,\n  type WorkbenchRuntimeBundle,\n} from \"../contracts/declarative-control\";\nimport type { DomainCommandDefinition } from \"../contracts/semantic\";\nexport type DeclarativeControlCompilationErrorCode =\n  | \"AUDIENCE_WIDER_THAN_TARGET\"\n  | \"CAPABILITY_BINDING_MISMATCH\"\n  | \"CAPABILITY_NOT_EDITOR_ELIGIBLE\"\n  | \"COMMAND_DEFINITION_MISMATCH\"\n  | \"CROSS_TENANT_REFERENCE\"\n  | \"DEPENDENCY_MISSING\"\n  | \"DESIGN_CATALOG_INVALID\"\n  | \"HEAD_CONFLICT\"\n  | \"NAV_DEPTH_EXCEEDED\"\n  | \"NAV_ACTION_INPUT_INVALID\"\n  | \"NAV_NODE_LIMIT_EXCEEDED\"\n  | \"NAV_TARGET_UNRELEASED\"\n  | \"PAGE_ENTRY_TARGET_UNRELEASED\"\n  | \"PORT_TYPE_MISMATCH\"\n  | \"PRODUCT_CAPABILITY_CATALOG_INVALID\"\n  | \"QUERY_DEFINITION_MISMATCH\"\n  | \"RENDER_DEPTH_EXCEEDED\"\n  | \"RENDER_TREE_INVALID\"\n  | \"RENDER_NODE_LIMIT_EXCEEDED\"\n  | \"RELEASE_OPERATION_INVALID\"\n  | \"RELEASE_VALIDATION_FAILED\"\n  | \"REGISTRY_CONFLICT\"\n  | \"REVISION_MISMATCH\"\n  | \"ROUTE_CONFLICT\"\n  | \"ROUTE_RESERVED\"\n  | \"ROUTE_TAKEOVER_INVALID\"\n  | \"SCHEMA_DEFINITION_MISMATCH\"\n  | \"ROUTE_SPACE_MISSING\"\n  | \"ROUTE_SPACE_MISMATCH\"\n  | \"SHELL_CHROME_UNAVAILABLE\"\n  | \"SHELL_REVISION_MISMATCH\"\n  | \"SHELL_SURFACE_MISMATCH\"\n  | \"WORKBENCH_INSTANCE_LIMIT_EXCEEDED\"\n  | \"WORKBENCH_RELEASE_SET_INVALID\"\n  | \"WORKBENCH_TEMPLATE_UNRELEASABLE\";\nexport class DeclarativeControlCompilationError extends Error {\n  constructor(\n    public readonly code: DeclarativeControlCompilationErrorCode,\n    public readonly path: string,\n    message: string,\n  ) {\n    super(`${code} at ${path}: ${message}`);\n    this.name = \"DeclarativeControlCompilationError\";\n  }\n}\nexport interface DeclarativeControlCompileLimits {\n  maxNavigationNodes: number;\n  maxNavigationDepth: number;\n  maxRenderNodes: number;\n  maxRenderDepth: number;\n  maxWorkbenchGroups: number;\n  maxWorkbenchInstances: number;\n}\nexport interface RouteSpaceRegistration {\n  revisionRef: RevisionRef;\n  routeSpace: RouteSpace;\n}\nexport interface CapabilityPortRegistration {\n  name: string;\n  schemaRevisionRef: RevisionRef;\n}\nexport interface DeclarativeCapabilityRegistration {\n  runtimeContractVersion?: string;\n  capabilityRevisionRef: RevisionRef;\n  providerRevisionRef: RevisionRef;\n  propertySchemaRevisionRef: RevisionRef;\n  accessPolicy: AccessPolicy;\n  editorEligible: boolean;\n  inputPorts: readonly CapabilityPortRegistration[];\n  outputPorts: readonly CapabilityPortRegistration[];\n  allowedSideEffects: readonly (\n    | \"network\"\n    | \"storage\"\n    | \"navigation\"\n    | \"clipboard\"\n    | \"worker\"\n    | \"websocket\"\n  )[];\n}\nexport interface ActionProgramRegistration {\n  definitionRevisionRef: RevisionRef;\n  definition: ActionProgramDefinition;\n}\nexport interface DomainQueryRegistration {\n  definitionRevisionRef: RevisionRef;\n  definition: DomainQueryDefinition;\n}\nexport interface DomainCommandRegistration {\n  definitionRevisionRef: RevisionRef;\n  definition: DomainCommandDefinition;\n}\nexport interface ResolvePageDefaults {\n  routeSpace: RevisionRef;\n  shell: RevisionRef;\n  tokens: readonly RevisionRef[];\n  performanceBudget: RevisionRef;\n  observationPolicy: RevisionRef;\n}\nexport interface ResolvePageInput {\n  page: Page;\n  pageOwnerRepo: string;\n  defaults: ResolvePageDefaults;\n  routeSpaces?: readonly RouteSpaceRegistration[];\n  productResources?: readonly DeclarativeProductResourceRegistration[];\n  capabilityRegistry: readonly DeclarativeCapabilityRegistration[];\n  domainQueryRegistry?: readonly DomainQueryRegistration[];\n  programRegistry?: readonly ActionProgramRegistration[];\n  domainCommandRegistry?: readonly DomainCommandRegistration[];\n  schemaRegistry?: readonly DeclarativeSchemaDefinitionRegistration[];\n  targetRegistry?: readonly NavigationRouteTargetRegistration[];\n}\nexport interface WorkbenchTargetRegistration {\n  stableTargetRef: StableRef;\n  targetRevisionRef: RevisionRef;\n  accessPolicy: AccessPolicy;\n}\nexport interface NavigationRouteTargetRegistration extends WorkbenchTargetRegistration {\n  kind: \"route\";\n  releaseRevisionRef?: RevisionRef;\n  surface: \"studio\" | \"kernel\";\n  routeClaim: CompiledRouteClaim;\n}\nexport interface NavigationRegisteredMenuActionRegistration extends WorkbenchTargetRegistration {\n  kind: \"registered-menu-action\";\n  surface: \"studio\" | \"kernel\";\n  applicationId: string;\n  actionRef: string;\n  inputSchemaRef?: string;\n  validateInput?: (input: Record<string, unknown>) => Record<string, unknown>;\n  sourceCatalogRevisionRef: RevisionRef;\n}\nexport interface NavigationDomainCommandRegistration extends WorkbenchTargetRegistration {\n  kind: \"governed-domain-command\";\n  surface: \"studio\" | \"kernel\";\n  inputSchemaRevisionRef: RevisionRef;\n  resultSchemaRevisionRef?: RevisionRef;\n}\nexport type NavigationTargetRegistration =\n  | NavigationRouteTargetRegistration\n  | NavigationRegisteredMenuActionRegistration\n  | NavigationDomainCommandRegistration;\nexport interface CompileRouteClaimsInput {\n  claims: readonly (\n    | RouteClaim\n    | DeclarativeRouteClaim\n    | ResolvedPage[\"routeClaims\"][number]\n    | Workbench[\"routeClaims\"][number]\n  )[];\n  routeSpaces: readonly RouteSpaceRegistration[];\n  surface: \"studio\" | \"kernel\";\n  legacyRouteTakeoverAuthorizations?: readonly LegacyRouteTakeoverAuthorization[];\n}\nexport interface MaterializeRouteSpacePathInput {\n  routeSpace: RouteSpace;\n  applicationPath: string;\n  parameters?: Readonly<Record<string, string | number>>;\n}\nexport interface CompilePageRuntimeBundleInput {\n  page: ResolvedPage;\n  pageRevisionRef: RevisionRef;\n  release: PageRelease;\n  releaseRevisionRef: RevisionRef;\n  routeSpaces: readonly RouteSpaceRegistration[];\n  compilerRevisionRef: RevisionRef;\n  generation: number;\n  limits: DeclarativeControlCompileLimits;\n  capabilityRegistry: readonly DeclarativeCapabilityRegistration[];\n  domainQueryRegistry?: readonly DomainQueryRegistration[];\n  programRegistry?: readonly ActionProgramRegistration[];\n  targetRegistry?: readonly NavigationRouteTargetRegistration[];\n  shellRegistration: DeclarativeProductResourceRegistration;\n  /** Exact shared Studio Page references independently verified by the authenticated catalog. */\n  verifiedSharedPageReferences?: readonly RevisionRef[];\n}\nexport interface CompileWorkbenchRuntimeBundleInput {\n  capabilityRegistry?: readonly DeclarativeCapabilityRegistration[];\n  workbench: Workbench;\n  workbenchRevisionRef: RevisionRef;\n  release: WorkbenchRelease;\n  releaseRevisionRef: RevisionRef;\n  routeSpaces: readonly RouteSpaceRegistration[];\n  targetRegistry: readonly WorkbenchTargetRegistration[];\n  compilerRevisionRef: RevisionRef;\n  generation: number;\n  limits: DeclarativeControlCompileLimits;\n}\nexport interface CompileNavigationRuntimeBundleInput {\n  navigation: Navigation;\n  navigationRevisionRef: RevisionRef;\n  release: NavigationRelease;\n  releaseRevisionRef: RevisionRef;\n  targetRegistry: readonly NavigationTargetRegistration[];\n  /**\n   * Exact Page and PageRelease references independently verified by the\n   * authenticated Kernel catalog. These are the only cross-tenant references\n   * a Kernel Navigation may retain in its immutable runtime bundle.\n   */\n  verifiedKernelPageReferences?: readonly RevisionRef[];\n  compilerRevisionRef: RevisionRef;\n  generation: number;\n  limits: DeclarativeControlCompileLimits;\n}\nconst scopedIdentityKey = (reference: TenantScope[\"tenantRef\"]): string =>\n  `${reference.kind}:${reference.id}:${reference.ownerRepo}`;\nconst scopeKey = (scope: TenantScope): string =>\n  `${scopedIdentityKey(scope.tenantRef)}:${scopedIdentityKey(scope.dataSpaceRef)}:${scope.teamRef ? scopedIdentityKey(scope.teamRef) : \"\"}`;\nexport const stableRefKey = (reference: StableRef): string =>\n  `${reference.visibility}:${reference.tenantScope ? scopeKey(reference.tenantScope) : \"\"}:${reference.kind}:${reference.id}:${reference.ownerRepo}`;\nexport const revisionRefKey = (reference: RevisionRef): string =>\n  `${stableRefKey(reference)}@${reference.revision}:v${reference.schemaVersion}:${reference.contentHash.toLowerCase()}`;\nexport const sameStableRef = (left: StableRef, right: StableRef): boolean =>\n  stableRefKey(left) === stableRefKey(right);\nexport const sameRevisionRef = (\n  left: RevisionRef,\n  right: RevisionRef,\n): boolean => revisionRefKey(left) === revisionRefKey(right);\n\n/** Schema content and authority remain stable across catalog renumbering. */\nexport const sameSchemaContract = (left: RevisionRef, right: RevisionRef): boolean =>\n  left.kind === 'schema' && right.kind === 'schema' && sameStableRef(left, right) &&\n  left.schemaVersion === right.schemaVersion && left.contentHash === right.contentHash;\n\nconst assertUniqueRegistryKeys = (keys: readonly string[], path: string) => {\n  const seen = new Set<string>();\n  keys.forEach((key, index) => {\n    if (seen.has(key)) {\n      throw new DeclarativeControlCompilationError(\n        \"REGISTRY_CONFLICT\",\n        `${path}[${index}]`,\n        `Duplicate registry identity: ${key}`,\n      );\n    }\n    seen.add(key);\n  });\n};\nconst stableSerialize = (value: unknown): string => {\n  if (value === undefined) return \"null\";\n  if (value === null || typeof value !== \"object\")\n    return JSON.stringify(value) ?? \"null\";\n  if (Array.isArray(value))\n    return `[${value.map((item) => stableSerialize(item)).join(\",\")}]`;\n  const record = value as Record<string, unknown>;\n  return `{${Object.keys(record)\n    .filter((key) => record[key] !== undefined)\n    .sort()\n    .map((key) => `${JSON.stringify(key)}:${stableSerialize(record[key])}`)\n    .join(\",\")}}`;\n};\nexport const canonicalContentHash = (value: unknown): string =>\n  sha256Hex(stableSerialize(value));\n/**\n * Names one immutable Runtime Bundle projection by its exact Release evidence.\n * The fixed-size digest stays below Data Server's 256-byte projection id limit\n * even when a governed release slot uses the maximum contract identifier size.\n */\nexport const declarativeRuntimeProjectionId = (\n  resourceKind: \"page\" | \"navigation\" | \"workbench\",\n  releaseSlotId: string,\n  releaseRevisionRef: Pick<\n    RevisionRef,\n    \"kind\" | \"id\" | \"ownerRepo\" | \"revision\" | \"schemaVersion\" | \"contentHash\"\n  >,\n): string =>\n  `drb:${canonicalContentHash({ resourceKind, releaseSlotId, releaseRevisionRef })}`;\n/** Names the rebuildable route-owner index for one tenant environment surface. */\nexport const declarativeRouteOwnerIndexProjectionId = (\n  tenantScope: TenantScope,\n  environmentRef: StableRef,\n  surface: \"studio\" | \"kernel\",\n): string =>\n  `dri:${canonicalContentHash({\n    tenantScope: {\n      teamRef: tenantScope.teamRef\n        ? { kind: tenantScope.teamRef.kind, id: tenantScope.teamRef.id }\n        : null,\n    },\n    environmentRef,\n    surface,\n  })}`;\nexport const declarativeWorkbenchCatalogProjectionId = (\n  tenantScope: TenantScope,\n  environmentRef: StableRef,\n  surface: \"studio\" | \"kernel\",\n): string =>\n  `dwc:${canonicalContentHash({\n    tenantScope: {\n      teamRef: tenantScope.teamRef\n        ? { kind: tenantScope.teamRef.kind, id: tenantScope.teamRef.id }\n        : null,\n    },\n    environmentRef,\n    surface,\n  })}`;\nconst takeoverHashSource = (\n  authorization: Omit<LegacyRouteTakeoverAuthorization, \"contentHash\">,\n) => authorization;\nexport const compileLegacyRouteTakeoverAuthorization = (\n  input: Omit<LegacyRouteTakeoverAuthorization, \"contentHash\">,\n): LegacyRouteTakeoverAuthorization => {\n  const unsigned = {\n    ...input,\n    contract: \"LegacyRouteTakeoverAuthorization\" as const,\n    schemaVersion: 1 as const,\n  };\n  return deepFreeze(\n    LegacyRouteTakeoverAuthorizationSchema.parse({\n      ...unsigned,\n      contentHash: canonicalContentHash(takeoverHashSource(unsigned)),\n    }),\n  );\n};\nexport const legacyRouteTakeoverAuthorizationHash = (\n  input: Omit<LegacyRouteTakeoverAuthorization, \"contentHash\">,\n): string => canonicalContentHash(takeoverHashSource(input));\nexport const parseExactLegacyRouteTakeoverAuthorization = (\n  input: unknown,\n): LegacyRouteTakeoverAuthorization => {\n  const parsed = LegacyRouteTakeoverAuthorizationSchema.parse(input);\n  const { contentHash, ...unsigned } = parsed;\n  if (contentHash !== legacyRouteTakeoverAuthorizationHash(unsigned)) {\n    throw new DeclarativeControlCompilationError(\n      \"ROUTE_TAKEOVER_INVALID\",\n      \"contentHash\",\n      \"Legacy route takeover authorization content hash is not exact.\",\n    );\n  }\n  return deepFreeze(parsed);\n};\nexport const permissionAlternativePolicyAllows = (\n  policyInput: PermissionAlternativePolicy,\n  permissionCodes: ReadonlySet<string> | readonly string[],\n): boolean => {\n  const parsed = PermissionAlternativePolicySchema.parse(policyInput);\n  const available =\n    permissionCodes instanceof Set ? permissionCodes : new Set(permissionCodes);\n  return parsed.alternatives.some((alternative) =>\n    alternative.every((permission) => available.has(permission)),\n  );\n};\nexport const compileDeclarativeRouteOwnerIndex = (input: {\n  tenantScope: TenantScope;\n  environmentRef: StableRef;\n  surface: \"studio\" | \"kernel\";\n  generation: number;\n  entries: readonly DeclarativeRouteOwnerIndexEntry[];\n}): DeclarativeRouteOwnerIndex => {\n  const entries = input.entries\n    .map((entry) => ({ ...entry }))\n    .sort((left, right) => {\n      const leftKey = `${left.resourceKind}:${left.releaseSlotId}`;\n      const rightKey = `${right.resourceKind}:${right.releaseSlotId}`;\n      return leftKey.localeCompare(rightKey);\n    });\n  const unsigned = {\n    contract: \"DeclarativeRouteOwnerIndex\" as const,\n    schemaVersion: 1 as const,\n    tenantScope: TenantScopeSchema.parse(input.tenantScope),\n    environmentRef: StableRefSchema.parse(input.environmentRef),\n    surface: input.surface,\n    generation: input.generation,\n    entries,\n    rebuildable: true as const,\n  };\n  return deepFreeze(\n    DeclarativeRouteOwnerIndexSchema.parse({\n      ...unsigned,\n      contentHash: canonicalContentHash(unsigned),\n    }),\n  );\n};\nexport const compileDeclarativeWorkbenchCatalog = (input: {\n  tenantScope: TenantScope;\n  environmentRef: StableRef;\n  surface: \"studio\" | \"kernel\";\n  generation: number;\n  entries: readonly DeclarativeWorkbenchCatalogEntry[];\n}): DeclarativeWorkbenchCatalog => {\n  const entries = input.entries\n    .map((entry) => ({ ...entry }))\n    .sort(\n      (left, right) =>\n        left.order - right.order ||\n        left.workbenchId.localeCompare(right.workbenchId),\n    );\n  const unsigned = {\n    contract: \"DeclarativeWorkbenchCatalog\" as const,\n    schemaVersion: 1 as const,\n    tenantScope: TenantScopeSchema.parse(input.tenantScope),\n    environmentRef: StableRefSchema.parse(input.environmentRef),\n    surface: input.surface,\n    generation: input.generation,\n    entries,\n    rebuildable: true as const,\n  };\n  return deepFreeze(\n    DeclarativeWorkbenchCatalogSchema.parse({\n      ...unsigned,\n      contentHash: canonicalContentHash(unsigned),\n    }),\n  );\n};\nexport const declarativeCreateTemplateSourceHash = (\n  document: DeclarativeCreateTemplateRegistration[\"document\"],\n): string => canonicalContentHash(document);\nexport const declarativeCreateTemplateRevisionHash = (\n  registration: DeclarativeCreateTemplateRegistration,\n): string => canonicalContentHash(registration.document);\nexport const declarativeRouteSpaceSourceHash = (\n  routeSpace: DeclarativeRouteSpaceRegistration[\"routeSpace\"],\n): string => canonicalContentHash(routeSpace);\nexport const declarativeRouteSpaceRevisionHash = (\n  registration: DeclarativeRouteSpaceRegistration,\n): string => canonicalContentHash(registration.routeSpace);\nexport const declarativeProductResourceSourceHash = (\n  document: DeclarativeProductResourceRegistration[\"document\"],\n): string => canonicalContentHash(document);\nexport const declarativeProductResourceRevisionHash = (\n  registration: DeclarativeProductResourceRegistration,\n): string => canonicalContentHash(registration.document);\nconst designCapabilityCatalogHashSource = (input: {\n  sourceRef: string;\n  entries: readonly DesignCapabilityCatalogEntry[];\n}) => ({\n  contract: \"DesignCapabilityCatalogArtifact\" as const,\n  schemaVersion: 1 as const,\n  sourceRef: input.sourceRef,\n  entries: input.entries,\n});\nexport const designCapabilityCatalogArtifactHash = (input: {\n  sourceRef: string;\n  entries: readonly DesignCapabilityCatalogEntry[];\n}): string => canonicalContentHash(designCapabilityCatalogHashSource(input));\nexport const compileDesignCapabilityCatalogArtifact = (input: {\n  sourceRef: string;\n  revision: number;\n  entries: readonly DesignCapabilityCatalogEntry[];\n}): DesignCapabilityCatalogArtifact => {\n  const entries = input.entries\n    .map((entry) => ({ ...entry }))\n    .sort((left, right) => left.manifest.id.localeCompare(right.manifest.id));\n  entries.forEach((entry, index) => {\n    const registration = entry.declarativeRegistration;\n    const {\n      registrationRevisionRef: _registrationRevisionRef,\n      sourceContentHash: _sourceContentHash,\n      ...unsignedRegistration\n    } = registration;\n    const registrationHash = canonicalContentHash(unsignedRegistration);\n    if (\n      registration.runtimeContractVersion !== entry.provider.runtimeContractVersion ||\n      registration.capabilityRevisionRef.id !== entry.manifest.id ||\n      registration.capabilityRevisionRef.ownerRepo !==\n        entry.manifest.ownerRepo ||\n      String(registration.capabilityRevisionRef.revision) !==\n        String(entry.manifest.capabilityVersion) ||\n      registration.capabilityRevisionRef.contentHash !==\n        canonicalContentHash(entry.manifest) ||\n      registration.providerRevisionRef.id !== entry.provider.providerId ||\n      registration.providerRevisionRef.ownerRepo !== entry.provider.ownerRepo ||\n      String(registration.providerRevisionRef.revision) !==\n        String(entry.provider.providerVersion) ||\n      registration.providerRevisionRef.contentHash !==\n        canonicalContentHash(entry.provider) ||\n      registration.sourceContentHash !== registrationHash ||\n      registration.registrationRevisionRef.contentHash !== registrationHash\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"DESIGN_CATALOG_INVALID\",\n        `entries[${index}]`,\n        \"Design capability manifest, provider and authoring registration are not exact.\",\n      );\n    }\n    registration.schemaDocuments.forEach((schema, schemaIndex) => {\n      if (\n        schema.schemaRevisionRef.ownerRepo !== \"monkeys-design\" ||\n        schema.schemaRevisionRef.visibility !== \"global\" ||\n        schema.schemaRevisionRef.contentHash !==\n          canonicalContentHash(schema.document)\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"DESIGN_CATALOG_INVALID\",\n          `entries[${index}].declarativeRegistration.schemaDocuments[${schemaIndex}]`,\n          \"Design Schema documents require exact global monkeys-design authority.\",\n        );\n      }\n    });\n  });\n  const sourceContentHash = designCapabilityCatalogArtifactHash({\n    sourceRef: input.sourceRef,\n    entries,\n  });\n  const sourceRevisionRef = RevisionRefSchema.parse({\n    kind: \"design-capability-catalog\",\n    id: input.sourceRef,\n    ownerRepo: \"monkeys-design\",\n    visibility: \"global\",\n    revision: input.revision,\n    schemaVersion: 1,\n    contentHash: sourceContentHash,\n  });\n  return deepFreeze(\n    DesignCapabilityCatalogArtifactSchema.parse({\n      contract: \"DesignCapabilityCatalogArtifact\",\n      schemaVersion: 1,\n      sourceRef: input.sourceRef,\n      sourceRevisionRef,\n      entries,\n      sourceContentHash,\n    }),\n  );\n};\n/** Validate immutable product-owned capability provenance from an application release. */\nexport const parseExactProductDeclarativeCapabilityRegistration = (\n  input: unknown,\n): ProductDeclarativeCapabilityRegistration => {\n  const entry = ProductDeclarativeCapabilityRegistrationSchema.parse(input);\n  const registration = entry.declarativeRegistration;\n  const {\n    registrationRevisionRef: _registrationRevisionRef,\n    sourceContentHash: _sourceContentHash,\n    ...unsignedRegistration\n  } = registration;\n  if (\n    registration.capabilityRevisionRef.contentHash !==\n      canonicalContentHash(entry.manifest) ||\n    registration.providerRevisionRef.contentHash !==\n      canonicalContentHash(entry.provider) ||\n    registration.sourceContentHash !==\n      canonicalContentHash(unsignedRegistration) ||\n    registration.registrationRevisionRef.contentHash !==\n      registration.sourceContentHash\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"PRODUCT_CAPABILITY_CATALOG_INVALID\",\n      \"declarativeRegistration\",\n      \"Product capability manifest, provider and authoring registration are not exact.\",\n    );\n  }\n  registration.schemaDocuments.forEach((schema, schemaIndex) => {\n    if (\n      schema.schemaRevisionRef.contentHash !==\n      canonicalContentHash(schema.document)\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"PRODUCT_CAPABILITY_CATALOG_INVALID\",\n        `declarativeRegistration.schemaDocuments[${schemaIndex}]`,\n        \"Product capability Schema document does not match its exact RevisionRef.\",\n      );\n    }\n  });\n  return deepFreeze(entry);\n};\nexport const parseExactDesignCapabilityCatalogArtifact = (\n  input: unknown,\n): DesignCapabilityCatalogArtifact => {\n  const parsed = DesignCapabilityCatalogArtifactSchema.parse(input);\n  const expected = compileDesignCapabilityCatalogArtifact({\n    sourceRef: parsed.sourceRef,\n    revision: parsed.sourceRevisionRef.revision,\n    entries: parsed.entries,\n  });\n  if (\n    parsed.sourceContentHash !== expected.sourceContentHash ||\n    !sameRevisionRef(parsed.sourceRevisionRef, expected.sourceRevisionRef)\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"DESIGN_CATALOG_INVALID\",\n      \"sourceRevisionRef\",\n      \"Design capability catalog artifact provenance or content hash is not exact.\",\n    );\n  }\n  return deepFreeze(parsed);\n};\nconst deepFreeze = <T>(value: T): T => {\n  if (value === null || typeof value !== \"object\" || Object.isFrozen(value))\n    return value;\n  Object.values(value as Record<string, unknown>).forEach((child) =>\n    deepFreeze(child),\n  );\n  return Object.freeze(value);\n};\nconst assertTenantCompatible = (\n  reference: StableRef,\n  scope: TenantScope,\n  path: string,\n) => {\n  if (\n    reference.visibility === \"tenant\" &&\n    scopeKey(reference.tenantScope as TenantScope) !== scopeKey(scope)\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"CROSS_TENANT_REFERENCE\",\n      path,\n      `Reference ${reference.kind}/${reference.id} belongs to another tenant scope.`,\n    );\n  }\n};\nconst assertSameTenantScope = (\n  candidate: TenantScope,\n  expected: TenantScope,\n  path: string,\n) => {\n  if (scopeKey(candidate) !== scopeKey(expected)) {\n    throw new DeclarativeControlCompilationError(\n      \"CROSS_TENANT_REFERENCE\",\n      path,\n      \"Record and release tenant scopes do not match.\",\n    );\n  }\n};\nconst stableFromRevision = (reference: RevisionRef): StableRef =>\n  StableRefSchema.parse({\n    kind: reference.kind,\n    id: reference.id,\n    ownerRepo: reference.ownerRepo,\n    visibility: reference.visibility,\n    ...(reference.tenantScope ? { tenantScope: reference.tenantScope } : {}),\n  });\nconst assertRevisionIdentity = (\n  reference: RevisionRef,\n  expectedKind: string,\n  expectedId: string,\n  scope: TenantScope,\n  path: string,\n) => {\n  if (reference.kind !== expectedKind || reference.id !== expectedId) {\n    throw new DeclarativeControlCompilationError(\n      \"REVISION_MISMATCH\",\n      path,\n      `Expected ${expectedKind}/${expectedId}, received ${reference.kind}/${reference.id}.`,\n    );\n  }\n  assertTenantCompatible(reference, scope, path);\n};\nconst dependencyKey = (\n  role: ReleaseDependency[\"role\"],\n  reference: RevisionRef,\n) => `${role}:${revisionRefKey(reference)}`;\nconst requireDependencies = (\n  snapshot: readonly ReleaseDependency[],\n  required: readonly ReleaseDependency[],\n) => {\n  const available = new Set(\n    snapshot.map((dependency) =>\n      dependencyKey(dependency.role, dependency.revisionRef),\n    ),\n  );\n  for (const dependency of required) {\n    const key = dependencyKey(dependency.role, dependency.revisionRef);\n    if (!available.has(key)) {\n      throw new DeclarativeControlCompilationError(\n        \"DEPENDENCY_MISSING\",\n        \"dependencySnapshot\",\n        `Missing exact ${dependency.role} dependency ${revisionRefKey(dependency.revisionRef)}.`,\n      );\n    }\n  }\n};\nconst assertDependencyScopes = (\n  snapshot: readonly ReleaseDependency[],\n  scope: TenantScope,\n  allowedForeignReferences: ReadonlySet<string> = new Set(),\n) =>\n  snapshot.forEach((dependency, index) => {\n    const reference = dependency.revisionRef;\n    const foreign =\n      reference.visibility === \"tenant\" &&\n      scopeKey(reference.tenantScope as TenantScope) !== scopeKey(scope);\n    if (foreign && allowedForeignReferences.has(revisionRefKey(reference)))\n      return;\n    assertTenantCompatible(\n      reference,\n      scope,\n      `dependencySnapshot[${index}].revisionRef`,\n    );\n  });\nconst requireReleaseReady = (\n  release: PageRelease | WorkbenchRelease | NavigationRelease,\n) => {\n  if (release.operation === \"deactivate\") {\n    throw new DeclarativeControlCompilationError(\n      \"RELEASE_OPERATION_INVALID\",\n      \"operation\",\n      \"A deactivation Release cannot produce an active runtime bundle.\",\n    );\n  }\n  if (release.evidence.validation.result !== \"pass\") {\n    throw new DeclarativeControlCompilationError(\n      \"RELEASE_VALIDATION_FAILED\",\n      \"evidence.validation.result\",\n      \"Runtime bundles require a passing release validation result.\",\n    );\n  }\n};\nconst refSet = (values: readonly StableRef[]) =>\n  new Set(values.map(stableRefKey));\nconst chainRequiresAll = (\n  policies: readonly AccessPolicy[],\n  field: \"permissionAllOf\" | \"groupAllOf\" | \"conditionAllOf\",\n): ReadonlySet<string> => {\n  if (field === \"permissionAllOf\") {\n    return new Set(\n      policies.flatMap((policy) => [\n        ...policy.permissionAllOf,\n        ...(policy.permissionAnyOf.length === 1 ? policy.permissionAnyOf : []),\n      ]),\n    );\n  }\n  if (field === \"groupAllOf\") {\n    return refSet(\n      policies.flatMap((policy) => [\n        ...policy.groupAllOf,\n        ...(policy.groupAnyOf.length === 1 ? policy.groupAnyOf : []),\n      ]),\n    );\n  }\n  return new Set(\n    policies.flatMap((policy) => policy.conditionAllOf.map(revisionRefKey)),\n  );\n};\nconst chainImpliesAny = (\n  policies: readonly AccessPolicy[],\n  targetAny: ReadonlySet<string>,\n  allValues: ReadonlySet<string>,\n  anyValues: (policy: AccessPolicy) => readonly string[],\n): boolean => {\n  if (targetAny.size === 0) return true;\n  if ([...allValues].some((value) => targetAny.has(value))) return true;\n  return policies.some((policy) => {\n    const values = anyValues(policy);\n    return values.length > 0 && values.every((value) => targetAny.has(value));\n  });\n};\nexport const accessPolicyChainImplies = (\n  policyInputs: readonly AccessPolicy[],\n  targetInput: AccessPolicy,\n): boolean => {\n  const policies = policyInputs.map((policy) =>\n    AccessPolicySchema.parse(policy),\n  );\n  const target = AccessPolicySchema.parse(targetInput);\n  if (target.authenticated && !policies.some((policy) => policy.authenticated))\n    return false;\n  const permissionAll = chainRequiresAll(policies, \"permissionAllOf\");\n  if (\n    target.permissionAllOf.some((permission) => !permissionAll.has(permission))\n  )\n    return false;\n  if (\n    !chainImpliesAny(\n      policies,\n      new Set(target.permissionAnyOf),\n      permissionAll,\n      (policy) => policy.permissionAnyOf,\n    )\n  )\n    return false;\n  const groupAll = chainRequiresAll(policies, \"groupAllOf\");\n  if (target.groupAllOf.some((group) => !groupAll.has(stableRefKey(group))))\n    return false;\n  if (\n    !chainImpliesAny(policies, refSet(target.groupAnyOf), groupAll, (policy) =>\n      policy.groupAnyOf.map(stableRefKey),\n    )\n  )\n    return false;\n  const conditionAll = chainRequiresAll(policies, \"conditionAllOf\");\n  if (\n    target.conditionAllOf.some(\n      (condition) => !conditionAll.has(revisionRefKey(condition)),\n    )\n  )\n    return false;\n  return true;\n};\nconst normalizePath = (path: string, routeSpace: RouteSpace): string => {\n  let normalized = path;\n  if (!routeSpace.caseSensitive) {\n    normalized = normalized\n      .split(\"/\")\n      .map((segment) =>\n        segment.startsWith(\":\") ? segment : segment.toLowerCase(),\n      )\n      .join(\"/\");\n  }\n  if (routeSpace.trailingSlash === \"remove\" && normalized.length > 1)\n    normalized = normalized.replace(/\\/+$/, \"\");\n  if (\n    routeSpace.trailingSlash === \"require\" &&\n    normalized.length > 1 &&\n    !normalized.endsWith(\"/\")\n  )\n    normalized += \"/\";\n  return normalized;\n};\nconst acceptedTrailingSlashStates = (\n  claim: Pick<CompiledRouteClaim, \"normalizedPath\" | \"matcher\">,\n): ReadonlySet<boolean> => {\n  if (claim.matcher.trailingSlash === \"remove\") return new Set([false, true]);\n  if (claim.matcher.trailingSlash === \"require\") return new Set([true]);\n  return new Set([\n    claim.normalizedPath.length > 1 && claim.normalizedPath.endsWith(\"/\"),\n  ]);\n};\nconst routeSegmentParameter = (segment: string) =>\n  segment.match(/^[:$]([A-Za-z][A-Za-z0-9_-]*)$/)?.[1];\nconst parameterTypeFor = (\n  claim: Pick<CompiledRouteClaim, \"matcher\">,\n  name: string,\n) =>\n  claim.matcher.parameters.find((parameter) => parameter.name === name)?.type;\nexport const compiledRouteClaimsOverlap = (\n  leftInput: CompiledRouteClaim,\n  rightInput: CompiledRouteClaim,\n): boolean => {\n  const left = CompiledRouteClaimSchema.parse(leftInput);\n  const right = CompiledRouteClaimSchema.parse(rightInput);\n  if (\n    ![...acceptedTrailingSlashStates(left)].some((state) =>\n      acceptedTrailingSlashStates(right).has(state),\n    )\n  )\n    return false;\n  const leftSegments = left.normalizedPath.split(\"/\").filter(Boolean);\n  const rightSegments = right.normalizedPath.split(\"/\").filter(Boolean);\n  if (leftSegments.length !== rightSegments.length) return false;\n  return leftSegments.every((leftSegment, index) => {\n    const rightSegment = rightSegments[index];\n    const leftParameter = routeSegmentParameter(leftSegment);\n    const rightParameter = routeSegmentParameter(rightSegment);\n    if (!leftParameter && !rightParameter) {\n      if (left.matcher.caseSensitive && right.matcher.caseSensitive)\n        return leftSegment === rightSegment;\n      return leftSegment.toLowerCase() === rightSegment.toLowerCase();\n    }\n    if (leftParameter && !rightParameter) {\n      const type = parameterTypeFor(left, leftParameter);\n      return !!type && routeParameterPattern(type).test(rightSegment);\n    }\n    if (!leftParameter && rightParameter) {\n      const type = parameterTypeFor(right, rightParameter);\n      return !!type && routeParameterPattern(type).test(leftSegment);\n    }\n    const leftType = parameterTypeFor(left, leftParameter!);\n    const rightType = parameterTypeFor(right, rightParameter!);\n    if (!leftType || !rightType) return false;\n    return (\n      !(leftType === \"integer\" && rightType === \"uuid\") &&\n      !(leftType === \"uuid\" && rightType === \"integer\")\n    );\n  });\n};\nexport const compileRouteClaims = (\n  input: CompileRouteClaimsInput,\n): readonly CompiledRouteClaim[] => {\n  const embeddedTakeovers = input.claims.flatMap((claim) => {\n    const authorization =\n      \"legacyRouteTakeoverAuthorization\" in claim\n        ? claim.legacyRouteTakeoverAuthorization\n        : undefined;\n    return authorization ? [authorization] : [];\n  });\n  const takeoverAuthorizations = [\n    ...(input.legacyRouteTakeoverAuthorizations ?? []),\n    ...embeddedTakeovers,\n  ].map((authorization, index) => {\n    try {\n      return parseExactLegacyRouteTakeoverAuthorization(authorization);\n    } catch (error) {\n      if (error instanceof DeclarativeControlCompilationError) {\n        throw new DeclarativeControlCompilationError(\n          error.code,\n          `legacyRouteTakeoverAuthorizations[${index}].${error.path}`,\n          error.message,\n        );\n      }\n      throw error;\n    }\n  });\n  const registrations = input.routeSpaces.map((entry, index) => {\n    const revisionRef = RevisionRefSchema.parse(entry.revisionRef);\n    const routeSpace = RouteSpaceSchema.parse(entry.routeSpace);\n    if (\n      revisionRef.kind !== \"route-space\" ||\n      revisionRef.id !== routeSpace.routeSpaceId\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        `routeSpaces[${index}]`,\n        \"RouteSpace registration identity does not match its pinned revision.\",\n      );\n    }\n    return { revisionRef, routeSpace };\n  });\n  assertUniqueRegistryKeys(\n    registrations.map((entry) => revisionRefKey(entry.revisionRef)),\n    \"routeSpaces\",\n  );\n  const routeSpacesByRevision = new Map(\n    registrations.map((entry) => [\n      revisionRefKey(entry.revisionRef),\n      entry.routeSpace,\n    ]),\n  );\n  const compiled: CompiledRouteClaim[] = [];\n  input.claims.forEach((inputClaim, index) => {\n    const {\n      legacyRouteTakeoverAuthorization: _authorization,\n      ...runtimeClaim\n    } = inputClaim as DeclarativeRouteClaim;\n    const legacyClaim =\n      \"surface\" in runtimeClaim\n        ? RouteClaimSchema.parse(runtimeClaim)\n        : LegacyRouteClaimSchema.parse(runtimeClaim);\n    const routeSpace = routeSpacesByRevision.get(\n      revisionRefKey(legacyClaim.routeSpaceRevisionRef),\n    );\n    if (!routeSpace)\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISSING\",\n        `routeClaims[${index}].routeSpaceRevisionRef`,\n        \"No exact RouteSpace registration exists.\",\n      );\n    const claim = RouteClaimSchema.parse({\n      ...legacyClaim,\n      surface:\n        \"surface\" in legacyClaim\n          ? legacyClaim.surface\n          : routeSpace.supportedSurface,\n    });\n    if (routeSpace.supportedSurface !== claim.surface) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        `routeClaims[${index}].surface`,\n        `Route claim surface ${claim.surface} does not match RouteSpace ${routeSpace.routeSpaceId}.`,\n      );\n    }\n    if (claim.surface !== input.surface) return;\n    const normalizedPath = normalizePath(claim.pathTemplate, routeSpace);\n    const knownParameters = new Set(\n      routeSpace.parameters.map((parameter) => parameter.name),\n    );\n    const pathParameters = [\n      ...normalizedPath.matchAll(/:([A-Za-z][A-Za-z0-9_-]*)/g),\n    ].map((match) => match[1]);\n    if (new Set(pathParameters).size !== pathParameters.length) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        `routeClaims[${index}].pathTemplate`,\n        \"Route parameters must be unique within a path.\",\n      );\n    }\n    const unknownParameter = pathParameters.find(\n      (parameter) => !knownParameters.has(parameter),\n    );\n    if (unknownParameter) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        `routeClaims[${index}].pathTemplate`,\n        `Route parameter ${unknownParameter} is not declared by ${routeSpace.routeSpaceId}.`,\n      );\n    }\n    const matcher = {\n      surface: claim.surface,\n      caseSensitive: routeSpace.caseSensitive,\n      trailingSlash: routeSpace.trailingSlash,\n      parameters: routeSpace.parameters,\n    };\n    const compiledClaim = CompiledRouteClaimSchema.parse({\n      ...claim,\n      normalizedPath,\n      matcher,\n    });\n    const reserved = routeSpace.reservedPaths.some((candidate) => {\n      const normalizedReserved = normalizePath(candidate, routeSpace);\n      const reservedClaim = CompiledRouteClaimSchema.parse({\n        kind: \"canonical\",\n        routeSpaceRevisionRef: claim.routeSpaceRevisionRef,\n        pathTemplate: candidate,\n        surface: claim.surface,\n        normalizedPath: normalizedReserved,\n        matcher,\n      });\n      return (\n        compiledRouteClaimsOverlap(compiledClaim, reservedClaim) ||\n        normalizedPath.startsWith(`${normalizedReserved.replace(/\\/+$/, \"\")}/`)\n      );\n    });\n    if (reserved) {\n      const takeover = takeoverAuthorizations.find(\n        (authorization) =>\n          compiledClaim.kind === \"canonical\" &&\n          authorization.normalizedPath === compiledClaim.normalizedPath &&\n          sameRevisionRef(\n            authorization.routeSpaceRevisionRef,\n            compiledClaim.routeSpaceRevisionRef,\n          ),\n      );\n      if (!takeover) {\n        throw new DeclarativeControlCompilationError(\n          \"ROUTE_RESERVED\",\n          `routeClaims[${index}].pathTemplate`,\n          `Route ${normalizedPath} is reserved by ${routeSpace.routeSpaceId}.`,\n        );\n      }\n    }\n    const conflict = compiled.find(\n      (candidate) =>\n        sameRevisionRef(\n          candidate.routeSpaceRevisionRef,\n          claim.routeSpaceRevisionRef,\n        ) && compiledRouteClaimsOverlap(candidate, compiledClaim),\n    );\n    if (conflict)\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_CONFLICT\",\n        `routeClaims[${index}].pathTemplate`,\n        `Route ${normalizedPath} overlaps another active claim pattern.`,\n      );\n    compiled.push(compiledClaim);\n  });\n  if (!compiled.some((claim) => claim.kind === \"canonical\")) {\n    throw new DeclarativeControlCompilationError(\n      \"ROUTE_CONFLICT\",\n      \"routeClaims\",\n      \"At least one canonical route claim is required.\",\n    );\n  }\n  return Object.freeze(compiled);\n};\nexport type CompiledRouteMatch = {\n  matched: boolean;\n  normalizedPath?: string;\n  parameters: Readonly<Record<string, string>>;\n};\n/**\n * Matches an application-relative request path using only the policy frozen into\n * a CompiledRouteClaim. Runtime consumers must not reconstruct RouteSpace policy\n * from product ids or deployment configuration.\n */\nexport const matchCompiledRouteClaim = (\n  claimInput: CompiledRouteClaim,\n  pathInput: string,\n): CompiledRouteMatch => {\n  const claim = CompiledRouteClaimSchema.parse(claimInput);\n  const rawPath = String(pathInput || \"\").trim();\n  if (\n    !rawPath.startsWith(\"/\") ||\n    rawPath.includes(\"?\") ||\n    rawPath.includes(\"#\") ||\n    rawPath.includes(\"\\\\\") ||\n    rawPath.includes(\"://\")\n  ) {\n    return { matched: false, parameters: {} };\n  }\n  const rawSegments = rawPath.split(\"/\");\n  if (rawSegments.some((segment) => segment === \".\" || segment === \"..\"))\n    return { matched: false, parameters: {} };\n  const requestHasTrailingSlash = rawPath.length > 1 && rawPath.endsWith(\"/\");\n  if (claim.matcher.trailingSlash === \"require\" && !requestHasTrailingSlash)\n    return { matched: false, parameters: {} };\n  if (\n    claim.matcher.trailingSlash === \"preserve\" &&\n    requestHasTrailingSlash !==\n      (claim.normalizedPath.length > 1 && claim.normalizedPath.endsWith(\"/\"))\n  ) {\n    return { matched: false, parameters: {} };\n  }\n  const normalizeTrailing = (value: string) => {\n    if (claim.matcher.trailingSlash === \"remove\" && value.length > 1)\n      return value.replace(/\\/+$/, \"\");\n    if (\n      claim.matcher.trailingSlash === \"require\" &&\n      value.length > 1 &&\n      !value.endsWith(\"/\")\n    )\n      return `${value}/`;\n    return value;\n  };\n  const requestPath = normalizeTrailing(rawPath);\n  const templatePath = normalizeTrailing(claim.normalizedPath);\n  const requestSegments = requestPath.split(\"/\").filter(Boolean);\n  const templateSegments = templatePath.split(\"/\").filter(Boolean);\n  if (requestSegments.length !== templateSegments.length)\n    return { matched: false, parameters: {} };\n  const parameterDefinitions = new Map(\n    claim.matcher.parameters.map((parameter) => [parameter.name, parameter]),\n  );\n  const parameters: Record<string, string> = {};\n  const normalizedSegments: string[] = [];\n  for (let index = 0; index < templateSegments.length; index += 1) {\n    const template = templateSegments[index];\n    const rawValue = requestSegments[index];\n    const match = template.match(/^[:$]([A-Za-z][A-Za-z0-9_-]*)$/);\n    if (!match) {\n      if (\n        (claim.matcher.caseSensitive ? template : template.toLowerCase()) !==\n        (claim.matcher.caseSensitive ? rawValue : rawValue.toLowerCase())\n      ) {\n        return { matched: false, parameters: {} };\n      }\n      normalizedSegments.push(template);\n      continue;\n    }\n    const definition = parameterDefinitions.get(match[1]);\n    let value: string;\n    try {\n      value = decodeURIComponent(rawValue);\n    } catch {\n      return { matched: false, parameters: {} };\n    }\n    if (!definition || !routeParameterPattern(definition.type).test(value))\n      return { matched: false, parameters: {} };\n    parameters[definition.name] = value;\n    normalizedSegments.push(rawValue);\n  }\n  const canonicalPath = normalizeTrailing(\n    `/${normalizedSegments.join(\"/\")}` || \"/\",\n  );\n  return {\n    matched: true,\n    normalizedPath: canonicalPath,\n    parameters: Object.freeze(parameters),\n  };\n};\nfunction routeParameterPattern(\n  type: RouteSpace[\"parameters\"][number][\"type\"],\n): RegExp {\n  if (type === \"integer\") return /^-?\\d+$/;\n  if (type === \"uuid\")\n    return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n  if (type === \"slug\") return /^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$/;\n  return /^[A-Za-z0-9][A-Za-z0-9._-]*$/;\n}\n/**\n * Materializes the browser URL owned by a RouteSpace from an application-relative\n * compiled route. Declarations and runtime resolution remain application-relative;\n * only this boundary applies product bases such as /:teamId or /kernel.\n */\nexport const materializeRouteSpacePath = (\n  input: MaterializeRouteSpacePathInput,\n): string => {\n  const routeSpace = RouteSpaceSchema.parse(input.routeSpace);\n  const applicationPath = RoutePathTemplateSchema.parse(input.applicationPath);\n  const basePath =\n    routeSpace.basePath === \"/\" ? \"\" : routeSpace.basePath.replace(/\\/+$/, \"\");\n  let browserTemplate = normalizePath(\n    `${basePath}${applicationPath === \"/\" ? \"/\" : applicationPath}` || \"/\",\n    routeSpace,\n  );\n  const parameters = input.parameters || {};\n  const declared = new Map(\n    routeSpace.parameters.map((parameter) => [parameter.name, parameter]),\n  );\n  const referenced = [\n    ...browserTemplate.matchAll(/:([A-Za-z][A-Za-z0-9_-]*)/g),\n  ].map((match) => match[1]);\n  for (const name of referenced) {\n    const definition = declared.get(name);\n    const raw = parameters[name];\n    if (\n      !definition ||\n      raw === undefined ||\n      raw === null ||\n      String(raw).trim() === \"\"\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        \"parameters\",\n        `Route parameter ${name} is not resolved by ${routeSpace.routeSpaceId}.`,\n      );\n    }\n    const value = String(raw);\n    if (!routeParameterPattern(definition.type).test(value)) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        `parameters.${name}`,\n        `Route parameter ${name} does not satisfy ${definition.type}.`,\n      );\n    }\n    browserTemplate = browserTemplate.replace(\n      `:${name}`,\n      encodeURIComponent(value),\n    );\n  }\n  const unknown = Object.keys(parameters).find((name) => !declared.has(name));\n  if (unknown)\n    throw new DeclarativeControlCompilationError(\n      \"ROUTE_SPACE_MISMATCH\",\n      `parameters.${unknown}`,\n      `RouteSpace ${routeSpace.routeSpaceId} does not declare ${unknown}.`,\n    );\n  return browserTemplate;\n};\nconst renderTreeDepth = (tree: RenderTree): number => {\n  const byId = new Map(tree.nodes.map((node) => [node.nodeId, node]));\n  let maximum = 0;\n  tree.nodes.forEach((node) => {\n    let depth = 1;\n    let parentId = node.parentNodeId;\n    const ancestors = new Set([node.nodeId]);\n    while (parentId) {\n      if (ancestors.has(parentId)) {\n        throw new DeclarativeControlCompilationError(\n          \"RENDER_TREE_INVALID\",\n          \"page.renderTree.nodes\",\n          `RenderTree contains a parent cycle at ${parentId}.`,\n        );\n      }\n      ancestors.add(parentId);\n      depth += 1;\n      parentId = byId.get(parentId)?.parentNodeId;\n    }\n    maximum = Math.max(maximum, depth);\n  });\n  return maximum;\n};\nconst compareLegacyEntityRef = (\n  reference: {\n    kind: string;\n    id: string;\n    version?: number | string;\n    ownerRepo?: string;\n  },\n  revision: RevisionRef,\n) =>\n  reference.kind === revision.kind &&\n  reference.id === revision.id &&\n  String(reference.version) === String(revision.revision) &&\n  reference.ownerRepo === revision.ownerRepo;\nconst pageDependencies = (\n  page: ResolvedPage,\n  compilerRevisionRef: RevisionRef,\n): ReleaseDependency[] => [\n  ...page.routeClaims.map((claim) => ({\n    role: \"route-space\" as const,\n    revisionRef: claim.routeSpaceRevisionRef,\n  })),\n  { role: \"shell\", revisionRef: page.shellRevisionRef },\n  ...page.capabilityInstances.flatMap((instance) => [\n    {\n      role: \"capability\" as const,\n      revisionRef: instance.capabilityRevisionRef,\n    },\n    { role: \"provider\" as const, revisionRef: instance.providerRevisionRef },\n    ...(instance.eventEffects ?? []).map((effect) => ({\n      role: \"schema\" as const,\n      revisionRef: effect.sourceIntentSchemaRevisionRef,\n    })),\n    {\n      role: \"schema\" as const,\n      revisionRef: instance.propertySchemaRevisionRef,\n    },\n  ]),\n  ...(page.stateDefinitions ?? []).map((state) => ({\n    role: \"schema\" as const,\n    revisionRef: state.schemaRevisionRef,\n  })),\n  ...(page.interactionBindings ?? []).map((binding) => ({\n    role: \"schema\" as const,\n    revisionRef: binding.sourceIntentSchemaRevisionRef,\n  })),\n  ...page.ontologyBindings.flatMap((binding) => [\n    {\n      role: \"ontology-definition\" as const,\n      revisionRef: binding.ontologyDefinitionRevisionRef,\n    },\n    ...(binding.viewRevisionRef\n      ? [{ role: \"view\" as const, revisionRef: binding.viewRevisionRef }]\n      : []),\n    ...(\"projectionRevisionRef\" in binding && binding.projectionRevisionRef\n      ? [\n          {\n            role: \"projection-spec\" as const,\n            revisionRef: binding.projectionRevisionRef,\n          },\n        ]\n      : []),\n    ...(binding.canonicalDataViewRevisionRef\n      ? [\n          {\n            role: \"view\" as const,\n            revisionRef: binding.canonicalDataViewRevisionRef,\n          },\n        ]\n      : []),\n    {\n      role: \"schema\" as const,\n      revisionRef: binding.renderModelSchemaRevisionRef,\n    },\n    ...(binding.cursorWindow\n      ? [\n          {\n            role: \"schema\" as const,\n            revisionRef: binding.cursorWindow.pageChangeIntentSchemaRevisionRef,\n          },\n        ]\n      : []),\n  ]),\n  ...(page.queryBindings ?? []).flatMap((binding) => [\n    {\n      role: \"query-definition\" as const,\n      revisionRef: binding.queryDefinitionRevisionRef,\n    },\n    {\n      role: \"schema\" as const,\n      revisionRef: binding.renderModelSchemaRevisionRef,\n    },\n    ...(binding.targetProjection\n      ? [\n          {\n            role: \"schema\" as const,\n            revisionRef: binding.targetProjection.schemaRevisionRef,\n          },\n        ]\n      : []),\n    ...(binding.streamTargetProjection\n      ? [\n          {\n            role: \"schema\" as const,\n            revisionRef: binding.streamTargetProjection.schemaRevisionRef,\n          },\n        ]\n      : []),\n    ...(binding.cursorWindow\n      ? [\n          {\n            role: \"schema\" as const,\n            revisionRef: binding.cursorWindow.pageChangeIntentSchemaRevisionRef,\n          },\n        ]\n      : []),\n  ]),\n  ...(page.programBindings ?? []).flatMap((binding) => [\n    {\n      role: \"action-program\" as const,\n      revisionRef: binding.programRevisionRef,\n    },\n    {\n      role: \"schema\" as const,\n      revisionRef: binding.sourceIntentSchemaRevisionRef,\n    },\n    ...programDependencies(binding.definition),\n  ]),\n  ...page.actionBindings.flatMap((binding) => [\n    { role: \"action\" as const, revisionRef: binding.commandRevisionRef },\n    {\n      role: \"schema\" as const,\n      revisionRef: binding.sourceIntentSchemaRevisionRef,\n    },\n    { role: \"schema\" as const, revisionRef: binding.inputSchemaRevisionRef },\n    { role: \"schema\" as const, revisionRef: binding.resultSchemaRevisionRef },\n    ...(binding.compensationCommandRevisionRef\n      ? [\n          {\n            role: \"action\" as const,\n            revisionRef: binding.compensationCommandRevisionRef,\n          },\n        ]\n      : []),\n  ]),\n  ...page.tokenRevisionRefs.map((revisionRef) => ({\n    role: \"token\" as const,\n    revisionRef,\n  })),\n  { role: \"performance-budget\", revisionRef: page.performanceBudgetRef },\n  {\n    role: \"observation-policy\",\n    revisionRef: page.observationPolicyRevisionRef,\n  },\n  { role: \"compiler\", revisionRef: compilerRevisionRef },\n];\nconst domainQueryDependencies = (\n  definition: DomainQueryDefinition,\n): ReleaseDependency[] => [\n  ...(definition.ontologyDefinitionRevisionRef\n    ? [\n        {\n          role: \"ontology-definition\" as const,\n          revisionRef: definition.ontologyDefinitionRevisionRef,\n        },\n      ]\n    : []),\n  ...(definition.viewRevisionRef\n    ? [{ role: \"view\" as const, revisionRef: definition.viewRevisionRef }]\n    : []),\n  ...(definition.canonicalDataViewRevisionRef\n    ? [\n        {\n          role: \"view\" as const,\n          revisionRef: definition.canonicalDataViewRevisionRef,\n        },\n      ]\n    : []),\n  { role: \"schema\", revisionRef: definition.inputSchemaRevisionRef },\n  { role: \"schema\", revisionRef: definition.resultSchemaRevisionRef },\n];\nconst singleByStableIdentity = <T extends { revisionRef: RevisionRef }>(\n  registrations: readonly T[],\n  kind: string,\n  id: string,\n  path: string,\n): T => {\n  const matches = registrations.filter(\n    ({ revisionRef }) => revisionRef.kind === kind && revisionRef.id === id,\n  );\n  if (matches.length !== 1) {\n    throw new DeclarativeControlCompilationError(\n      \"DEPENDENCY_MISSING\",\n      path,\n      `Expected exactly one active ${kind} registration for ${id}; found ${matches.length}.`,\n    );\n  }\n  return matches[0]!;\n};\nconst usesResultValue = (\n  mapping: Readonly<Record<string, { kind: string; expression?: unknown }>>,\n): boolean =>\n  Object.values(mapping).some(\n    (source) =>\n      source.kind === \"result-field\" ||\n      (source.kind === \"expression\" &&\n        source.expression !== undefined &&\n        collectPageExpressionReads(\n          source.expression as Parameters<typeof collectPageExpressionReads>[0],\n        ).some((read) => read.root === \"result\")),\n  );\nconst simpleEntityRef = (revisionRef: RevisionRef) => ({\n  kind: revisionRef.kind,\n  id: revisionRef.id,\n  version: revisionRef.revision,\n  ownerRepo: revisionRef.ownerRepo,\n});\nconst defaultRenderSurface = {\n  frameOwner: \"host\" as const,\n  density: \"default\" as const,\n};\nconst defaultRenderScroll = {\n  owner: \"surface\" as const,\n  axis: \"none\" as const,\n  virtualizationBoundary: false,\n};\nconst defaultRenderLifecycle = {\n  mountPolicy: \"always\" as const,\n  queryPolicy: \"always\" as const,\n  retainOnDeactivate: false,\n  deepLink: false,\n  focusReturn: false,\n};\n\nexport const resolvePage = (input: ResolvePageInput): ResolvedPage => {\n  const page = PageSchema.parse(input.page);\n  const defaults = {\n    routeSpace: RevisionRefSchema.parse(input.defaults.routeSpace),\n    shell: RevisionRefSchema.parse(input.defaults.shell),\n    tokens: input.defaults.tokens.map((reference) =>\n      RevisionRefSchema.parse(reference),\n    ),\n    performanceBudget: RevisionRefSchema.parse(\n      input.defaults.performanceBudget,\n    ),\n    observationPolicy: RevisionRefSchema.parse(\n      input.defaults.observationPolicy,\n    ),\n  };\n  const resourceRegistrations = (input.productResources ?? []).map(\n    (registration) => ({\n      revisionRef: RevisionRefSchema.parse(registration.resourceRevisionRef),\n      registration:\n        DeclarativeProductResourceRegistrationSchema.parse(registration),\n    }),\n  );\n  const resolveResource = (\n    kind: DeclarativeProductResourceRegistration[\"resourceKind\"],\n    id: string | undefined,\n    fallback: RevisionRef,\n    path: string,\n  ): RevisionRef => {\n    const targetId = id ?? fallback.id;\n    if (resourceRegistrations.length === 0) {\n      if (targetId !== fallback.id || fallback.kind !== kind) {\n        throw new DeclarativeControlCompilationError(\n          \"DEPENDENCY_MISSING\",\n          path,\n          `No ${kind} registry was supplied for ${targetId}.`,\n        );\n      }\n      return fallback;\n    }\n    return singleByStableIdentity(resourceRegistrations, kind, targetId, path)\n      .revisionRef;\n  };\n  const routeSpaceId = page.routeSpace ?? defaults.routeSpace.id;\n  const routeRegistrations = (input.routeSpaces ?? []).map((registration) => ({\n    revisionRef: RevisionRefSchema.parse(registration.revisionRef),\n    routeSpace: registration.routeSpace,\n  }));\n  const routeSpaceRevisionRef =\n    routeRegistrations.length === 0\n      ? (() => {\n          if (routeSpaceId !== defaults.routeSpace.id) {\n            throw new DeclarativeControlCompilationError(\n              \"ROUTE_SPACE_MISSING\",\n              \"page.routeSpace\",\n              `No RouteSpace registry was supplied for ${routeSpaceId}.`,\n            );\n          }\n          return defaults.routeSpace;\n        })()\n      : singleByStableIdentity(\n          routeRegistrations,\n          \"route-space\",\n          routeSpaceId,\n          \"page.routeSpace\",\n        ).revisionRef;\n  const shellRevisionRef = resolveResource(\n    \"shell\",\n    page.shell,\n    defaults.shell,\n    \"page.shell\",\n  );\n  const tokenRevisionRefs = page.tokens?.map((id, index) =>\n    resolveResource(\n      \"design-token\",\n      id,\n      defaults.tokens[0]!,\n      `page.tokens[${index}]`,\n    ),\n  ) ?? [...defaults.tokens];\n  const performanceBudgetRef = resolveResource(\n    \"performance-budget\",\n    page.performanceBudget,\n    defaults.performanceBudget,\n    \"page.performanceBudget\",\n  );\n  const observationPolicyRevisionRef = resolveResource(\n    \"observation-policy\",\n    page.observationPolicy,\n    defaults.observationPolicy,\n    \"page.observationPolicy\",\n  );\n  const capabilityRegistrations = input.capabilityRegistry.map(\n    (registration) => ({\n      ...registration,\n      revisionRef: RevisionRefSchema.parse(registration.capabilityRevisionRef),\n      providerRevisionRef: RevisionRefSchema.parse(\n        registration.providerRevisionRef,\n      ),\n      propertySchemaRevisionRef: RevisionRefSchema.parse(\n        registration.propertySchemaRevisionRef,\n      ),\n      inputPorts: registration.inputPorts.map((port) => ({\n        ...port,\n        schemaRevisionRef: RevisionRefSchema.parse(port.schemaRevisionRef),\n      })),\n      outputPorts: registration.outputPorts.map((port) => ({\n        ...port,\n        schemaRevisionRef: RevisionRefSchema.parse(port.schemaRevisionRef),\n      })),\n    }),\n  );\n  const queryRegistrations = (input.domainQueryRegistry ?? []).map(\n    (registration) => ({\n      revisionRef: RevisionRefSchema.parse(registration.definitionRevisionRef),\n      definition: DomainQueryDefinitionSchema.parse(registration.definition),\n    }),\n  );\n  const commandRegistrations = (input.domainCommandRegistry ?? []).map(\n    (registration) => ({\n      revisionRef: RevisionRefSchema.parse(registration.definitionRevisionRef),\n      definition: registration.definition,\n    }),\n  );\n  const schemaRegistrations = (input.schemaRegistry ?? []).map(\n    (registration) => ({\n      revisionRef: RevisionRefSchema.parse(registration.definitionRevisionRef),\n      definition: registration.definition,\n    }),\n  );\n  const stateSchemaById = new Map(\n    schemaRegistrations.map((registration) => [\n      registration.definition.schemaId,\n      registration.revisionRef,\n    ]),\n  );\n  const stateDefinitions = (page.state ?? []).map(\n    ({ schema, ...state }, index) => {\n      const schemaRevisionRef = stateSchemaById.get(schema);\n      if (!schemaRevisionRef) {\n        throw new DeclarativeControlCompilationError(\n          \"SCHEMA_DEFINITION_MISMATCH\",\n          `page.state[${index}].schema`,\n          `No active Schema registration exists for ${schema}.`,\n        );\n      }\n      return { ...state, schemaRevisionRef };\n    },\n  );\n  const stateSchemasByStateId = new Map(\n    stateDefinitions.map((definition) => [\n      definition.stateId,\n      definition.schemaRevisionRef,\n    ]),\n  );\n  const renderNodes: RenderNode[] = [];\n  const capabilityInstances: ResolvedPage[\"capabilityInstances\"] = [];\n  const queryBindings: NonNullable<ResolvedPage[\"queryBindings\"]> = [];\n  const actionBindings: ResolvedPage[\"actionBindings\"] = [];\n  const programBindings: NonNullable<ResolvedPage[\"programBindings\"]> = [];\n  const interactionBindings: NonNullable<ResolvedPage[\"interactionBindings\"]> =\n    [];\n  const nodesById = new Map<string, Page[\"body\"]>();\n  const indexNode = (node: Page[\"body\"]): void => {\n    nodesById.set(node.id, node);\n    node.children?.forEach(indexNode);\n  };\n  indexNode(page.body);\n  const visitNode = (node: Page[\"body\"], parentNodeId?: string): void => {\n    const registration = singleByStableIdentity(\n      capabilityRegistrations,\n      \"capability\",\n      node.component,\n      `page.body.${node.id}.component`,\n    );\n    const children = node.children ?? [];\n    const defaultActivation = {\n      activationId: node.id,\n      mode: \"inline\" as const,\n    };\n    renderNodes.push({\n      contract: \"RenderNode\",\n      nodeId: node.id,\n      kind: node.kind ?? \"view\",\n      version: 1,\n      ownerRepo: registration.providerRevisionRef.ownerRepo,\n      ...(parentNodeId ? { parentNodeId } : {}),\n      children: children.map((child) => child.id),\n      ...(node.slot ? { slot: node.slot } : {}),\n      pageRef: {\n        kind: \"page\",\n        id: page.pageId,\n        version: 1,\n        ownerRepo: input.pageOwnerRepo,\n      },\n      ...(registration.runtimeContractVersion ? { runtimeContractVersion: registration.runtimeContractVersion } : {}),\n      capabilityRef: simpleEntityRef(registration.revisionRef),\n      providerRef: simpleEntityRef(registration.providerRevisionRef),\n      surface: node.surface ?? defaultRenderSurface,\n      scroll: node.scroll ?? defaultRenderScroll,\n      activation: node.activation ?? defaultActivation,\n      lifecycle: node.lifecycle ?? defaultRenderLifecycle,\n      layout: node.layout ?? { mode: \"contents\" },\n      ...(node.style ? { style: node.style } : {}),\n      responsive: node.responsive ?? [],\n      state: node.state ?? \"idle\",\n      renderModel: node.model ?? {},\n      ...(node.repeat\n        ? { repeat: { ...node.repeat, limit: node.repeat.limit ?? 200 } }\n        : {}),\n    });\n    capabilityInstances.push({\n      ...(registration.runtimeContractVersion ? { runtimeContractVersion: registration.runtimeContractVersion } : {}),\n      instanceId: node.id,\n      nodeId: node.id,\n      capabilityRevisionRef: registration.revisionRef,\n      providerRevisionRef: registration.providerRevisionRef,\n      propertySchemaRevisionRef: registration.propertySchemaRevisionRef,\n      properties: node.props ?? {},\n      ...(node.bindings ? { propertyBindings: node.bindings } : {}),\n      ...(node.eventPayloads\n        ? { eventPayloadBindings: node.eventPayloads }\n        : {}),\n      ...(node.effects\n        ? {\n            eventEffects: node.effects.map((effect, index) => {\n              const port = registration.outputPorts.find(\n                (candidate) => candidate.name === effect.port,\n              );\n              if (!port) {\n                throw new DeclarativeControlCompilationError(\n                  \"PORT_TYPE_MISMATCH\",\n                  `page.body.${node.id}.effects[${index}].port`,\n                  `No output port ${effect.port} exists on ${node.component}.`,\n                );\n              }\n              return {\n                sourcePort: effect.port,\n                sourceIntentSchemaRevisionRef: port.schemaRevisionRef,\n                refreshBindingIds: effect.refresh,\n              };\n            }),\n          }\n        : {}),\n      ...(node.access ? { accessPolicy: node.access } : {}),\n      ...(node.activeWhen ? { activationWhen: node.activeWhen } : {}),\n      allowedSideEffects: [...registration.allowedSideEffects],\n    });\n    for (const [index, binding] of (node.data ?? []).entries()) {\n      const queryRegistration = singleByStableIdentity(\n        queryRegistrations,\n        \"domain-query-definition\",\n        binding.query,\n        `page.body.${node.id}.data[${index}].query`,\n      );\n      const port = registration.inputPorts.find(\n        (candidate) => candidate.name === binding.port,\n      );\n      if (!port) {\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `page.body.${node.id}.data[${index}].port`,\n          `No input port ${binding.port} exists on ${node.component}.`,\n        );\n      }\n      const {\n        query,\n        port: _port,\n        targetProjection,\n        streamTargetProjection,\n        cursorWindow,\n        resultStateBindings,\n        ...rest\n      } = binding;\n      queryBindings.push({\n        ...rest,\n        queryDefinitionRevisionRef: queryRegistration.revisionRef,\n        target: { capabilityInstanceId: node.id, port: binding.port },\n        renderModelSchemaRevisionRef:\n          queryRegistration.definition.resultSchemaRevisionRef,\n        ...(targetProjection\n          ? {\n              targetProjection: {\n                ...targetProjection,\n                schemaRevisionRef: port.schemaRevisionRef,\n              },\n            }\n          : {}),\n        ...(streamTargetProjection\n          ? {\n              streamTargetProjection: {\n                ...streamTargetProjection,\n                schemaRevisionRef: port.schemaRevisionRef,\n              },\n            }\n          : {}),\n        ...(cursorWindow\n          ? {\n              cursorWindow: {\n                ...cursorWindow,\n                pageChangeIntentSchemaRevisionRef: (() => {\n                  const sourceInstanceId =\n                    cursorWindow.sourceCapabilityInstanceId ?? node.id;\n                  const sourceNode = nodesById.get(sourceInstanceId);\n                  const sourceCapability = sourceNode\n                    ? singleByStableIdentity(\n                        capabilityRegistrations,\n                        \"capability\",\n                        sourceNode.component,\n                        `page.body.${sourceNode.id}.component`,\n                      )\n                    : undefined;\n                  const sourcePort = sourceCapability?.outputPorts.find(\n                    (candidate) =>\n                      candidate.name === cursorWindow.pageChangePort,\n                  );\n                  if (!sourcePort) {\n                    throw new DeclarativeControlCompilationError(\n                      \"PORT_TYPE_MISMATCH\",\n                      `page.body.${node.id}.data[${index}].cursorWindow.pageChangePort`,\n                      `No output port ${cursorWindow.pageChangePort} exists on the cursor source component.`,\n                    );\n                  }\n                  return sourcePort.schemaRevisionRef;\n                })(),\n              },\n            }\n          : {}),\n        ...(resultStateBindings\n          ? {\n              resultStateBindings: resultStateBindings.map(\n                (stateBinding, stateIndex) => {\n                  const targetStateSchemaRevisionRef =\n                    stateSchemasByStateId.get(stateBinding.targetStateId);\n                  if (!targetStateSchemaRevisionRef) {\n                    throw new DeclarativeControlCompilationError(\n                      \"SCHEMA_DEFINITION_MISMATCH\",\n                      `page.body.${node.id}.data[${index}].resultStateBindings[${stateIndex}].targetStateId`,\n                      `Unknown Page state ${stateBinding.targetStateId}.`,\n                    );\n                  }\n                  return { ...stateBinding, targetStateSchemaRevisionRef };\n                },\n              ),\n            }\n          : {}),\n      });\n    }\n    for (const [index, binding] of (node.actions ?? []).entries()) {\n      const commandRegistration = singleByStableIdentity(\n        commandRegistrations,\n        \"domain-command\",\n        binding.command,\n        `page.body.${node.id}.actions[${index}].command`,\n      );\n      const port = registration.outputPorts.find(\n        (candidate) => candidate.name === binding.port,\n      );\n      if (!port) {\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `page.body.${node.id}.actions[${index}].port`,\n          `No output port ${binding.port} exists on ${node.component}.`,\n        );\n      }\n      const inputSchemaRevisionRef = stateSchemaById.get(\n        commandRegistration.definition.inputSchemaRef,\n      );\n      const resultSchemaRevisionRef = commandRegistration.definition\n        .outputSchemaRef\n        ? stateSchemaById.get(commandRegistration.definition.outputSchemaRef)\n        : undefined;\n      if (!inputSchemaRevisionRef || !resultSchemaRevisionRef) {\n        throw new DeclarativeControlCompilationError(\n          \"COMMAND_DEFINITION_MISMATCH\",\n          `page.body.${node.id}.actions[${index}].command`,\n          `Command ${binding.command} must resolve active input and output Schemas.`,\n        );\n      }\n      const compensationCommandRevisionRef = binding.compensationCommand\n        ? singleByStableIdentity(\n            commandRegistrations,\n            \"domain-command\",\n            binding.compensationCommand,\n            `page.body.${node.id}.actions[${index}].compensationCommand`,\n          ).revisionRef\n        : undefined;\n      const { command, port: _port, compensationCommand, ...rest } = binding;\n      actionBindings.push({\n        ...rest,\n        commandRevisionRef: commandRegistration.revisionRef,\n        source: { capabilityInstanceId: node.id, port: binding.port },\n        sourceIntentSchemaRevisionRef: port.schemaRevisionRef,\n        inputSchemaRevisionRef,\n        ...(compensationCommandRevisionRef\n          ? { compensationCommandRevisionRef }\n          : {}),\n        resultSchemaRevisionRef,\n      });\n    }\n    for (const [index, binding] of (node.programActions ?? []).entries()) {\n      const path = `page.body.${node.id}.programActions[${index}]`;\n      const matches = (input.programRegistry ?? []).filter(\n        (entry) => entry.definition.programId === binding.program,\n      );\n      if (matches.length !== 1)\n        throw new DeclarativeControlCompilationError(\n          \"DEPENDENCY_MISSING\",\n          path,\n          \"Expected one exact program registration.\",\n        );\n      const program = matches[0]!;\n      const definition = ActionProgramDefinitionSchema.parse(\n        program.definition,\n      );\n      assertProgramRegistration(program, page.tenantScope, page.surface, path);\n      const port = registration.outputPorts.find(\n        (candidate) => candidate.name === binding.port,\n      );\n      if (!port)\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          path,\n          \"Program source port is not registered.\",\n        );\n      if (\n        (node.actions ?? []).some((action) => action.port === binding.port) ||\n        programBindings.some(\n          (action) =>\n            action.source.capabilityInstanceId === node.id &&\n            action.source.port === binding.port,\n        )\n      )\n        throw new DeclarativeControlCompilationError(\n          \"CAPABILITY_BINDING_MISMATCH\",\n          path,\n          \"A program output port must have one exclusive action binding.\",\n        );\n      for (const dep of definition.dependencies) {\n        const registrations =\n          dep.kind === \"query\" ? queryRegistrations : commandRegistrations;\n        const actual = registrations.find((entry) =>\n          sameRevisionRef(entry.revisionRef, dep.revisionRef),\n        );\n        if (\n          !actual ||\n          canonicalContentHash(actual.definition) !==\n            dep.revisionRef.contentHash ||\n          (\"sensitiveInputPaths\" in actual.definition &&\n            !!actual.definition.sensitiveInputPaths?.length) ||\n          (\"sensitiveResultPaths\" in actual.definition &&\n            !!actual.definition.sensitiveResultPaths?.length) ||\n          (\"queryId\" in actual.definition\n            ? !sameRevisionRef(\n                actual.definition.inputSchemaRevisionRef,\n                dep.inputSchemaRevisionRef,\n              ) ||\n              !sameRevisionRef(\n                actual.definition.resultSchemaRevisionRef,\n                dep.resultSchemaRevisionRef,\n              )\n            : actual.definition.inputSchemaRef !==\n                dep.inputSchemaRevisionRef.id ||\n              actual.definition.outputSchemaRef !==\n                dep.resultSchemaRevisionRef.id)\n        )\n          throw new DeclarativeControlCompilationError(\n            \"DEPENDENCY_MISSING\",\n            path,\n            \"Program capability/schema revision is not registered.\",\n          );\n      }\n      for (const ref of programDependencies(definition)\n        .filter((dep) => dep.role === \"schema\")\n        .map((dep) => dep.revisionRef)) {\n        if (\n          !schemaRegistrations.some((entry) =>\n            sameRevisionRef(entry.revisionRef, ref),\n          )\n        )\n          throw new DeclarativeControlCompilationError(\n            \"SCHEMA_DEFINITION_MISMATCH\",\n            path,\n            \"Program requires an exact registered Schema.\",\n          );\n      }\n      const { program: _program, port: _port, ...rest } = binding;\n      programBindings.push({\n        ...rest,\n        source: { capabilityInstanceId: node.id, port: binding.port },\n        sourceIntentSchemaRevisionRef: port.schemaRevisionRef,\n        programRevisionRef: program.definitionRevisionRef,\n        definition,\n      });\n    }\n    for (const [index, binding] of (node.on ?? []).entries()) {\n      const port = registration.outputPorts.find(\n        (candidate) => candidate.name === binding.port,\n      );\n      if (!port) {\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `page.body.${node.id}.on[${index}].port`,\n          `No output port ${binding.port} exists on ${node.component}.`,\n        );\n      }\n      const matchingAction = actionBindings.find(\n        (action) =>\n          action.source.capabilityInstanceId === node.id &&\n          action.source.port === binding.port,\n      );\n      const { port: _port, ...rest } = binding;\n      interactionBindings.push({\n        ...rest,\n        source: { capabilityInstanceId: node.id, port: binding.port },\n        sourceIntentSchemaRevisionRef: port.schemaRevisionRef,\n        ...(usesResultValue(binding.inputMapping)\n          ? (() => {\n              if (!matchingAction) {\n                throw new DeclarativeControlCompilationError(\n                  \"COMMAND_DEFINITION_MISMATCH\",\n                  `page.body.${node.id}.on[${index}].inputMapping`,\n                  \"A result-driven interaction requires an Action on the same output port.\",\n                );\n              }\n              return {\n                sourceResultSchemaRevisionRef:\n                  matchingAction.resultSchemaRevisionRef,\n              };\n            })()\n          : {}),\n      });\n    }\n    children.forEach((child) => visitNode(child, node.id));\n  };\n  visitNode(page.body);\n  const resolved = {\n    contract: \"Page\" as const,\n    schemaVersion: 1 as const,\n    pageId: page.pageId,\n    tenantScope: page.tenantScope,\n    identity: page.identity,\n    supportedSurfaces: [page.surface],\n    lifecycle: page.lifecycle,\n    ...(page.routeStatePresentations\n      ? { routeStatePresentations: page.routeStatePresentations }\n      : {}),\n    routeClaims: [\n      {\n        kind: \"canonical\" as const,\n        surface: page.surface,\n        routeSpaceRevisionRef,\n        pathTemplate: page.route,\n      },\n    ],\n    shellRevisionRef,\n    renderTree: {\n      contract: \"RenderTree\" as const,\n      treeId: page.pageId,\n      product: page.surface,\n      rootNodeId: page.body.id,\n      nodes: renderNodes,\n    },\n    capabilityInstances,\n    ...(stateDefinitions.length ? { stateDefinitions } : {}),\n    ...(page.sharedStateBindings ? { sharedStateBindings: page.sharedStateBindings } : {}),\n    ...(page.entryTransitions\n      ? {\n          entryTransitions: page.entryTransitions.map(\n            ({ target, ...transition }, index) => {\n              const matches = (input.targetRegistry ?? []).filter(\n                (registration) =>\n                  registration.stableTargetRef.kind === target.kind &&\n                  registration.stableTargetRef.id === target.id,\n              );\n              if (matches.length !== 1) {\n                throw new DeclarativeControlCompilationError(\n                  \"PAGE_ENTRY_TARGET_UNRELEASED\",\n                  `page.entryTransitions[${index}].target`,\n                  `Expected one active ${target.kind} target for ${target.id}; found ${matches.length}.`,\n                );\n              }\n              return { ...transition, targetRef: matches[0]!.stableTargetRef };\n            },\n          ),\n        }\n      : {}),\n    ...(interactionBindings.length ? { interactionBindings } : {}),\n    ontologyBindings: [],\n    ...(queryBindings.length ? { queryBindings } : {}),\n    ...(page.initialQueryPolicy ? { initialQueryPolicy: page.initialQueryPolicy } : {}),\n    actionBindings,\n    ...(programBindings.length ? { programBindings } : {}),\n    pageAccessPolicy: page.access,\n    managementAccess: page.managementAccess,\n    tokenRevisionRefs,\n    performanceBudgetRef,\n    observationPolicyRevisionRef,\n    privacyClassification: page.privacyClassification,\n  };\n  return ResolvedPageSchema.parse(resolved);\n};\nexport type LegacyCompilePageRuntimeBundleInput = Omit<\n  CompilePageRuntimeBundleInput,\n  \"capabilityRegistry\" | \"shellRegistration\"\n> & {\n  capabilityRegistry: readonly (Omit<\n    DeclarativeCapabilityRegistration,\n    \"propertySchemaRevisionRef\" | \"accessPolicy\"\n  > &\n    Partial<\n      Pick<\n        DeclarativeCapabilityRegistration,\n        \"propertySchemaRevisionRef\" | \"accessPolicy\"\n      >\n    >)[];\n};\n\n/** Explicit compatibility boundary for previously persisted resolved Page documents. */\nexport const compileLegacyPageRuntimeBundle = (\n  input: LegacyCompilePageRuntimeBundleInput,\n): LegacyPageRuntimeBundle =>\n  deepFreeze(\n    LegacyPageRuntimeBundleSchema.parse(\n      compilePageRuntimeBundleInternal(input, true),\n    ),\n  );\n\nexport const compilePageRuntimeBundle = (\n  input: CompilePageRuntimeBundleInput,\n): PageRuntimeBundle =>\n  deepFreeze(\n    PageRuntimeBundleSchema.parse(\n      compilePageRuntimeBundleInternal(input, false),\n    ),\n  );\n\nconst compilePageRuntimeBundleInternal = (\n  input: LegacyCompilePageRuntimeBundleInput & {\n    shellRegistration?: DeclarativeProductResourceRegistration;\n  },\n  legacy: boolean,\n): unknown => {\n  const parsedPage = ResolvedPageSchema.parse(input.page);\n  parsedPage.ontologyBindings.forEach((binding) =>\n    (legacy ? LegacyOntologyBindingSchema : OntologyBindingSchema).parse(\n      binding,\n    ),\n  );\n  if (\n    legacy &&\n    (parsedPage.queryBindings?.length || input.domainQueryRegistry?.length)\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"QUERY_DEFINITION_MISMATCH\",\n      \"queryBindings\",\n      \"Domain queries require the current compiler and its governed registries.\",\n    );\n  }\n  const page = {\n    ...parsedPage,\n    routeStatePresentations: parsedPage.routeStatePresentations ?? [],\n    stateDefinitions: parsedPage.stateDefinitions ?? [],\n    entryTransitions: parsedPage.entryTransitions ?? [],\n    interactionBindings: parsedPage.interactionBindings ?? [],\n    queryBindings: parsedPage.queryBindings ?? [],\n  };\n  const pageRevisionRef = RevisionRefSchema.parse(input.pageRevisionRef);\n  const release = PageReleaseSchema.parse(input.release);\n  const releaseRevisionRef = RevisionRefSchema.parse(input.releaseRevisionRef);\n  const compilerRevisionRef = RevisionRefSchema.parse(\n    input.compilerRevisionRef,\n  );\n  const scope = TenantScopeSchema.parse(page.tenantScope);\n  assertSameTenantScope(release.tenantScope, scope, \"release.tenantScope\");\n  assertRevisionIdentity(\n    pageRevisionRef,\n    \"page\",\n    page.pageId,\n    scope,\n    \"pageRevisionRef\",\n  );\n  assertRevisionIdentity(\n    release.pageRevisionRef,\n    \"page\",\n    page.pageId,\n    scope,\n    \"release.pageRevisionRef\",\n  );\n  if (!sameRevisionRef(pageRevisionRef, release.pageRevisionRef))\n    throw new DeclarativeControlCompilationError(\n      \"REVISION_MISMATCH\",\n      \"release.pageRevisionRef\",\n      \"Release does not pin the supplied Page revision.\",\n    );\n  assertRevisionIdentity(\n    releaseRevisionRef,\n    \"page-release\",\n    release.releaseSlotId,\n    scope,\n    \"releaseRevisionRef\",\n  );\n  requireReleaseReady(release);\n  requireDependencies(\n    release.dependencySnapshot,\n    pageDependencies(page, compilerRevisionRef),\n  );\n  const verifiedSharedPageReferences = (input.verifiedSharedPageReferences ?? []).map((value, index) => {\n    const reference = RevisionRefSchema.parse(value);\n    const target = (input.targetRegistry ?? []).find((candidate) =>\n      page.entryTransitions.some((entry) => sameStableRef(entry.targetRef, candidate.stableTargetRef)) &&\n      [candidate.targetRevisionRef, candidate.releaseRevisionRef].some((ref) => ref && sameRevisionRef(ref, reference)),\n    );\n    if (\n      release.target.surface !== \"studio\" || reference.visibility !== \"tenant\" ||\n      reference.ownerRepo !== \"monkeys-server\" || ![\"page\", \"page-release\"].includes(reference.kind) ||\n      reference.tenantScope?.tenantRef.id !== \"0\" || reference.tenantScope?.teamRef?.id !== \"0\" ||\n      !target || target.surface !== \"studio\" || target.targetRevisionRef.kind !== \"page\" ||\n      scopeKey(target.targetRevisionRef.tenantScope as TenantScope) !== scopeKey(reference.tenantScope) ||\n      (target.releaseRevisionRef && (target.releaseRevisionRef.kind !== \"page-release\" ||\n        !target.releaseRevisionRef.tenantScope ||\n        scopeKey(target.releaseRevisionRef.tenantScope) !== scopeKey(reference.tenantScope)))\n    ) throw new DeclarativeControlCompilationError(\n      \"CROSS_TENANT_REFERENCE\", `verifiedSharedPageReferences[${index}]`,\n      \"Shared Studio Page references must pin an authenticated catalog route target in the shared scope.\",\n    );\n    return revisionRefKey(reference);\n  });\n  assertDependencyScopes(release.dependencySnapshot, scope, new Set(verifiedSharedPageReferences));\n  const queryRegistrations = (input.domainQueryRegistry ?? []).map(\n    (registration, index) => {\n      const definitionRevisionRef = RevisionRefSchema.parse(\n        registration.definitionRevisionRef,\n      );\n      const definition = DomainQueryDefinitionSchema.parse(\n        registration.definition,\n      );\n      assertSameTenantScope(\n        definition.tenantScope,\n        scope,\n        `domainQueryRegistry[${index}].definition.tenantScope`,\n      );\n      assertRevisionIdentity(\n        definitionRevisionRef,\n        \"domain-query-definition\",\n        definition.queryId,\n        scope,\n        `domainQueryRegistry[${index}].definitionRevisionRef`,\n      );\n      if (\n        definitionRevisionRef.contentHash !== canonicalContentHash(definition)\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"QUERY_DEFINITION_MISMATCH\",\n          `domainQueryRegistry[${index}].definitionRevisionRef.contentHash`,\n          \"Domain Query registry entry does not match its exact definition content hash.\",\n        );\n      }\n      return { definitionRevisionRef, definition };\n    },\n  );\n  assertUniqueRegistryKeys(\n    queryRegistrations.map((registration) =>\n      revisionRefKey(registration.definitionRevisionRef),\n    ),\n    \"domainQueryRegistry\",\n  );\n  const queryDefinitionsByRevision = new Map(\n    queryRegistrations.map((registration) => [\n      revisionRefKey(registration.definitionRevisionRef),\n      registration.definition,\n    ]),\n  );\n  page.queryBindings.forEach((binding, index) => {\n    const definition = queryDefinitionsByRevision.get(\n      revisionRefKey(binding.queryDefinitionRevisionRef),\n    );\n    if (!definition) {\n      throw new DeclarativeControlCompilationError(\n        \"QUERY_DEFINITION_MISMATCH\",\n        `queryBindings[${index}].queryDefinitionRevisionRef`,\n        \"Query binding does not resolve to one exact governed Domain Query definition.\",\n      );\n    }\n    if (\n      !sameRevisionRef(\n        definition.resultSchemaRevisionRef,\n        binding.renderModelSchemaRevisionRef,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"QUERY_DEFINITION_MISMATCH\",\n        `queryBindings[${index}].renderModelSchemaRevisionRef`,\n        \"Query binding render model does not match the exact Domain Query result schema.\",\n      );\n    }\n    if (\n      !accessPolicyChainImplies(\n        [page.pageAccessPolicy],\n        definition.accessPolicy,\n      ) &&\n      binding.accessFailure !== \"render-forbidden\"\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"AUDIENCE_WIDER_THAN_TARGET\",\n        `queryBindings[${index}]`,\n        \"Page access is wider than the governed Domain Query audience.\",\n      );\n    }\n    const sourceKind = definition.dataSource?.kind ?? \"exact-view\";\n    if (binding.execution === \"local-state\" && sourceKind !== \"page-state\") {\n      throw new DeclarativeControlCompilationError(\n        \"QUERY_DEFINITION_MISMATCH\",\n        `queryBindings[${index}].execution`,\n        \"A local-state binding must resolve to one page-state Domain Query definition.\",\n      );\n    }\n    if (binding.execution === \"server\" && sourceKind === \"page-state\") {\n      throw new DeclarativeControlCompilationError(\n        \"QUERY_DEFINITION_MISMATCH\",\n        `queryBindings[${index}].execution`,\n        \"A page-state Domain Query cannot execute on the Server.\",\n      );\n    }\n    requireDependencies(\n      release.dependencySnapshot,\n      domainQueryDependencies(definition),\n    );\n  });\n  const shellDescriptor = legacy\n    ? undefined\n    : (() => {\n        const shellRegistration =\n          DeclarativeProductResourceRegistrationSchema.parse(\n            input.shellRegistration,\n          );\n        if (\n          shellRegistration.resourceKind !== \"shell\" ||\n          !sameRevisionRef(\n            shellRegistration.resourceRevisionRef,\n            page.shellRevisionRef,\n          ) ||\n          declarativeProductResourceRevisionHash(shellRegistration) !==\n            shellRegistration.resourceRevisionRef.contentHash ||\n          declarativeProductResourceSourceHash(shellRegistration.document) !==\n            shellRegistration.sourceContentHash\n        ) {\n          throw new DeclarativeControlCompilationError(\n            \"SHELL_REVISION_MISMATCH\",\n            \"shellRegistration\",\n            \"The active Shell registration does not match the Page exact Shell revision.\",\n          );\n        }\n        if (\n          !shellRegistration.supportedSurfaces.includes(release.target.surface)\n        ) {\n          throw new DeclarativeControlCompilationError(\n            \"SHELL_SURFACE_MISMATCH\",\n            \"shellRegistration.supportedSurfaces\",\n            \"The active Shell registration does not support the release surface.\",\n          );\n        }\n        const shellDocument = DeclarativeShellResourceDocumentSchema.parse(\n          shellRegistration.document,\n        );\n        const shellChrome = shellDocument.surfaceChrome.find(\n          (entry) => entry.surface === release.target.surface,\n        );\n        if (!shellChrome) {\n          throw new DeclarativeControlCompilationError(\n            \"SHELL_CHROME_UNAVAILABLE\",\n            \"shellRegistration.document.surfaceChrome\",\n            \"The active Shell does not declare chrome for the release surface.\",\n          );\n        }\n        return {\n          shellRevisionRef: page.shellRevisionRef,\n          header: shellChrome.header,\n        };\n      })();\n  if (page.renderTree.nodes.length > input.limits.maxRenderNodes)\n    throw new DeclarativeControlCompilationError(\n      \"RENDER_NODE_LIMIT_EXCEEDED\",\n      \"page.renderTree.nodes\",\n      \"RenderTree exceeds the caller-approved node limit.\",\n    );\n  if (renderTreeDepth(page.renderTree) > input.limits.maxRenderDepth)\n    throw new DeclarativeControlCompilationError(\n      \"RENDER_DEPTH_EXCEEDED\",\n      \"page.renderTree.nodes\",\n      \"RenderTree exceeds the caller-approved depth limit.\",\n    );\n  const renderTree = compileRenderTree(page.renderTree).tree;\n  const instancesByNode = new Map(\n    page.capabilityInstances.map((instance) => [instance.nodeId, instance]),\n  );\n  const registrations = input.capabilityRegistry.map(\n    (registration, registrationIndex) => ({\n      ...registration,\n      capabilityRevisionRef: RevisionRefSchema.parse(\n        registration.capabilityRevisionRef,\n      ),\n      providerRevisionRef: RevisionRefSchema.parse(\n        registration.providerRevisionRef,\n      ),\n      inputPorts: registration.inputPorts.map((port, portIndex) => {\n        const schemaRevisionRef = RevisionRefSchema.parse(\n          port.schemaRevisionRef,\n        );\n        if (schemaRevisionRef.kind !== \"schema\") {\n          throw new DeclarativeControlCompilationError(\n            \"PORT_TYPE_MISMATCH\",\n            `capabilityRegistry[${registrationIndex}].inputPorts[${portIndex}].schemaRevisionRef`,\n            \"Capability ports must pin schema revisions.\",\n          );\n        }\n        return { ...port, schemaRevisionRef };\n      }),\n      outputPorts: registration.outputPorts.map((port, portIndex) => {\n        const schemaRevisionRef = RevisionRefSchema.parse(\n          port.schemaRevisionRef,\n        );\n        if (schemaRevisionRef.kind !== \"schema\") {\n          throw new DeclarativeControlCompilationError(\n            \"PORT_TYPE_MISMATCH\",\n            `capabilityRegistry[${registrationIndex}].outputPorts[${portIndex}].schemaRevisionRef`,\n            \"Capability ports must pin schema revisions.\",\n          );\n        }\n        return { ...port, schemaRevisionRef };\n      }),\n    }),\n  );\n  assertUniqueRegistryKeys(\n    registrations.map(\n      (registration) =>\n        `${revisionRefKey(registration.capabilityRevisionRef)}:${revisionRefKey(registration.providerRevisionRef)}`,\n    ),\n    \"capabilityRegistry\",\n  );\n  const registrationsByPair = new Map(\n    registrations.map((registration) => [\n      `${revisionRefKey(registration.capabilityRevisionRef)}:${revisionRefKey(registration.providerRevisionRef)}`,\n      registration,\n    ]),\n  );\n  page.capabilityInstances.forEach((instance, index) => {\n    const node = renderTree.nodes.find(\n      (candidate) => candidate.nodeId === instance.nodeId,\n    );\n    if (\n      !node ||\n      !compareLegacyEntityRef(\n        node.capabilityRef,\n        instance.capabilityRevisionRef,\n      ) ||\n      !node.providerRef ||\n      !compareLegacyEntityRef(node.providerRef, instance.providerRevisionRef) ||\n      node.pageRef.id !== page.pageId\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"CAPABILITY_BINDING_MISMATCH\",\n        `capabilityInstances[${index}]`,\n        \"RenderTree node identity does not match the declared capability/provider instance.\",\n      );\n    }\n    const registration = registrationsByPair.get(\n      `${revisionRefKey(instance.capabilityRevisionRef)}:${revisionRefKey(instance.providerRevisionRef)}`,\n    );\n    if (!registration) {\n      throw new DeclarativeControlCompilationError(\n        \"CAPABILITY_BINDING_MISMATCH\",\n        `capabilityInstances[${index}]`,\n        \"Capability/provider pair has no exact governed Design registration.\",\n      );\n    }\n    if (instance.runtimeContractVersion !== registration.runtimeContractVersion || node.runtimeContractVersion !== instance.runtimeContractVersion) {\n      throw new DeclarativeControlCompilationError(\"CAPABILITY_BINDING_MISMATCH\", `capabilityInstances[${index}].runtimeContractVersion`, \"Runtime contract must be issued by the exact governed registration.\");\n    }\n    if (\n      instance.allowedSideEffects.some(\n        (sideEffect) => !registration.allowedSideEffects.includes(sideEffect),\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"CAPABILITY_BINDING_MISMATCH\",\n        `capabilityInstances[${index}].allowedSideEffects`,\n        \"Page requests undeclared provider side effects.\",\n      );\n    }\n    if (\n      !legacy &&\n      (!registration.propertySchemaRevisionRef ||\n        !sameRevisionRef(\n          instance.propertySchemaRevisionRef,\n          registration.propertySchemaRevisionRef,\n        ))\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"CAPABILITY_BINDING_MISMATCH\",\n        `capabilityInstances[${index}].propertySchemaRevisionRef`,\n        \"Capability properties do not pin the exact schema registered by the active Design catalog.\",\n      );\n    }\n    if (\n      !legacy &&\n      (!registration.accessPolicy ||\n        !accessPolicyChainImplies(\n          [\n            page.pageAccessPolicy,\n            ...(instance.accessPolicy ? [instance.accessPolicy] : []),\n          ],\n          registration.accessPolicy,\n        ))\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"AUDIENCE_WIDER_THAN_TARGET\",\n        `capabilityInstances[${index}]`,\n        \"Page access is wider than the governed capability audience.\",\n      );\n    }\n  });\n  if (instancesByNode.size !== page.capabilityInstances.length) {\n    throw new DeclarativeControlCompilationError(\n      \"CAPABILITY_BINDING_MISMATCH\",\n      \"capabilityInstances\",\n      \"Each executable RenderTree node must be governed by at most one capability instance.\",\n    );\n  }\n  renderTree.nodes.forEach((node, index) => {\n    if (!node.providerRef) return;\n    if (!instancesByNode.has(node.nodeId)) {\n      throw new DeclarativeControlCompilationError(\n        \"CAPABILITY_BINDING_MISMATCH\",\n        `renderTree.nodes[${index}]`,\n        \"Every provider-backed RenderTree node must be governed by one capability instance.\",\n      );\n    }\n  });\n  page.ontologyBindings.forEach((binding, index) => {\n    const instance = page.capabilityInstances.find(\n      (candidate) =>\n        candidate.instanceId === binding.target.capabilityInstanceId,\n    );\n    const registration =\n      instance &&\n      registrationsByPair.get(\n        `${revisionRefKey(instance.capabilityRevisionRef)}:${revisionRefKey(instance.providerRevisionRef)}`,\n      );\n    const port = registration?.inputPorts.find(\n      (candidate) => candidate.name === binding.target.port,\n    );\n    if (\n      !port ||\n      !sameSchemaContract(\n        port.schemaRevisionRef,\n        binding.renderModelSchemaRevisionRef,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"PORT_TYPE_MISMATCH\",\n        `ontologyBindings[${index}].target.port`,\n        \"Ontology render model does not match the registered capability input port.\",\n      );\n    }\n    if (binding.cursorWindow) {\n      const sourceInstance = page.capabilityInstances.find(\n        (candidate) =>\n          candidate.instanceId ===\n          (binding.cursorWindow!.sourceCapabilityInstanceId ??\n            binding.target.capabilityInstanceId),\n      );\n      const sourceRegistration =\n        sourceInstance &&\n        registrationsByPair.get(\n          `${revisionRefKey(sourceInstance.capabilityRevisionRef)}:${revisionRefKey(sourceInstance.providerRevisionRef)}`,\n        );\n      const pageChangePort = sourceRegistration?.outputPorts.find(\n        (candidate) => candidate.name === binding.cursorWindow!.pageChangePort,\n      );\n      if (\n        !pageChangePort ||\n        !sameSchemaContract(\n          pageChangePort.schemaRevisionRef,\n          binding.cursorWindow.pageChangeIntentSchemaRevisionRef,\n        )\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `ontologyBindings[${index}].cursorWindow.pageChangePort`,\n          \"Cursor-window page-change intent does not match the registered capability output port.\",\n        );\n      }\n    }\n  });\n  page.queryBindings.forEach((binding, index) => {\n    const instance = page.capabilityInstances.find(\n      (candidate) =>\n        candidate.instanceId === binding.target.capabilityInstanceId,\n    );\n    const registration =\n      instance &&\n      registrationsByPair.get(\n        `${revisionRefKey(instance.capabilityRevisionRef)}:${revisionRefKey(instance.providerRevisionRef)}`,\n      );\n    const port = registration?.inputPorts.find(\n      (candidate) => candidate.name === binding.target.port,\n    );\n    if (\n      !port ||\n      !sameSchemaContract(\n        port.schemaRevisionRef,\n        binding.targetProjection?.schemaRevisionRef ??\n          binding.renderModelSchemaRevisionRef,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"PORT_TYPE_MISMATCH\",\n        `queryBindings[${index}].target.port`,\n        \"Domain Query render model does not match the registered capability input port.\",\n      );\n    }\n    if (\n      binding.streamTargetProjection &&\n      (!port ||\n        !sameRevisionRef(\n          port.schemaRevisionRef,\n          binding.streamTargetProjection.schemaRevisionRef,\n        ))\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"PORT_TYPE_MISMATCH\",\n        `queryBindings[${index}].streamTargetProjection`,\n        \"Stream render model does not match the registered capability input port.\",\n      );\n    }\n    if (binding.cursorWindow) {\n      const sourceInstance = page.capabilityInstances.find(\n        (candidate) =>\n          candidate.instanceId ===\n          (binding.cursorWindow!.sourceCapabilityInstanceId ??\n            binding.target.capabilityInstanceId),\n      );\n      const sourceRegistration =\n        sourceInstance &&\n        registrationsByPair.get(\n          `${revisionRefKey(sourceInstance.capabilityRevisionRef)}:${revisionRefKey(sourceInstance.providerRevisionRef)}`,\n        );\n      const pageChangePort = sourceRegistration?.outputPorts.find(\n        (candidate) => candidate.name === binding.cursorWindow!.pageChangePort,\n      );\n      if (\n        !pageChangePort ||\n        !sameSchemaContract(\n          pageChangePort.schemaRevisionRef,\n          binding.cursorWindow.pageChangeIntentSchemaRevisionRef,\n        )\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `queryBindings[${index}].cursorWindow.pageChangePort`,\n          \"Cursor-window page-change intent does not match the registered capability output port.\",\n        );\n      }\n    }\n  });\n  page.capabilityInstances.forEach((instance, index) => {\n    const registration = registrationsByPair.get(\n      `${revisionRefKey(instance.capabilityRevisionRef)}:${revisionRefKey(instance.providerRevisionRef)}`,\n    );\n    instance.eventPayloadBindings?.forEach((binding, bindingIndex) => {\n      if (!registration?.outputPorts.some((port) => port.name === binding.port))\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `capabilityInstances[${index}].eventPayloadBindings[${bindingIndex}]`,\n          \"Event payload projection must reference a registered output port.\",\n        );\n    });\n    instance.eventEffects?.forEach((effect, effectIndex) => {\n      const port = registration?.outputPorts.find(\n        (candidate) => candidate.name === effect.sourcePort,\n      );\n      if (\n        !port ||\n        !sameRevisionRef(\n          port.schemaRevisionRef,\n          effect.sourceIntentSchemaRevisionRef,\n        )\n      )\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `capabilityInstances[${index}].eventEffects[${effectIndex}]`,\n          \"Event effect source must match an exact registered output port schema.\",\n        );\n    });\n  });\n  page.interactionBindings.forEach((binding, index) => {\n    const instance = page.capabilityInstances.find(\n      (candidate) =>\n        candidate.instanceId === binding.source.capabilityInstanceId,\n    );\n    const registration =\n      instance &&\n      registrationsByPair.get(\n        `${revisionRefKey(instance.capabilityRevisionRef)}:${revisionRefKey(instance.providerRevisionRef)}`,\n      );\n    const port = registration?.outputPorts.find(\n      (candidate) => candidate.name === binding.source.port,\n    );\n    if (\n      !port ||\n      !sameSchemaContract(\n        port.schemaRevisionRef,\n        binding.sourceIntentSchemaRevisionRef,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"PORT_TYPE_MISMATCH\",\n        `interactionBindings[${index}].sourceIntentSchemaRevisionRef`,\n        \"Interaction source intent does not match the registered capability output port.\",\n      );\n    }\n  });\n  (page.programBindings ?? []).forEach((binding, index) => {\n    const path = `programBindings[${index}]`;\n    const registration = (input.programRegistry ?? []).find((entry) =>\n      sameRevisionRef(entry.definitionRevisionRef, binding.programRevisionRef),\n    );\n    if (\n      !registration ||\n      canonicalContentHash(registration.definition) !==\n        canonicalContentHash(binding.definition)\n    )\n      throw new DeclarativeControlCompilationError(\n        \"DEPENDENCY_MISSING\",\n        path,\n        \"Exact program registration does not match binding.\",\n      );\n    assertProgramRegistration(\n      registration,\n      page.tenantScope,\n      release.target.surface,\n      path,\n    );\n  });\n  [...page.actionBindings, ...(page.programBindings ?? [])].forEach(\n    (binding, index) => {\n      const instance = page.capabilityInstances.find(\n        (candidate) =>\n          candidate.instanceId === binding.source.capabilityInstanceId,\n      );\n      const registration =\n        instance &&\n        registrationsByPair.get(\n          `${revisionRefKey(instance.capabilityRevisionRef)}:${revisionRefKey(instance.providerRevisionRef)}`,\n        );\n      const port = registration?.outputPorts.find(\n        (candidate) => candidate.name === binding.source.port,\n      );\n      if (\n        !port ||\n        !sameSchemaContract(\n          port.schemaRevisionRef,\n          binding.sourceIntentSchemaRevisionRef,\n        )\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"PORT_TYPE_MISMATCH\",\n          `actionBindings[${index}].sourceIntentSchemaRevisionRef`,\n          \"Action source intent does not match the registered capability output port.\",\n        );\n      }\n    },\n  );\n  const routeClaims = compileRouteClaims({\n    claims: page.routeClaims,\n    routeSpaces: input.routeSpaces,\n    surface: release.target.surface,\n    legacyRouteTakeoverAuthorizations: release.target\n      .legacyRouteTakeoverAuthorization\n      ? [release.target.legacyRouteTakeoverAuthorization]\n      : [],\n  });\n  const releaseRoute = routeClaims.find(\n    (claim) =>\n      claim.kind === \"canonical\" &&\n      claim.normalizedPath === release.target.normalizedPath,\n  );\n  if (\n    !releaseRoute ||\n    !sameRevisionRef(\n      releaseRoute.routeSpaceRevisionRef,\n      release.target.routeSpaceRevisionRef,\n    )\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"ROUTE_SPACE_MISMATCH\",\n      \"release.target\",\n      \"Release target does not match an exact Page route claim.\",\n    );\n  }\n  if (!page.supportedSurfaces.includes(release.target.surface)) {\n    throw new DeclarativeControlCompilationError(\n      \"ROUTE_SPACE_MISMATCH\",\n      \"release.target.surface\",\n      \"Page does not support the release surface.\",\n    );\n  }\n  const routeTargets = (input.targetRegistry ?? []).map(\n    (registration, index) => ({\n      ...registration,\n      stableTargetRef: StableRefSchema.parse(registration.stableTargetRef),\n      targetRevisionRef: RevisionRefSchema.parse(\n        registration.targetRevisionRef,\n      ),\n      ...(registration.releaseRevisionRef\n        ? {\n            releaseRevisionRef: RevisionRefSchema.parse(\n              registration.releaseRevisionRef,\n            ),\n          }\n        : {}),\n      accessPolicy: AccessPolicySchema.parse(registration.accessPolicy),\n      routeClaim: CompiledRouteClaimSchema.parse(registration.routeClaim),\n      sourceIndex: index,\n    }),\n  );\n  assertUniqueRegistryKeys(\n    routeTargets.map((registration) =>\n      stableRefKey(registration.stableTargetRef),\n    ),\n    \"targetRegistry\",\n  );\n  const entryTransitions = page.entryTransitions.map((transition, index) => {\n    const matches = routeTargets.filter(\n      (registration) =>\n        registration.kind === \"route\" &&\n        sameStableRef(registration.stableTargetRef, transition.targetRef) &&\n        registration.surface === release.target.surface,\n    );\n    if (matches.length !== 1) {\n      throw new DeclarativeControlCompilationError(\n        \"PAGE_ENTRY_TARGET_UNRELEASED\",\n        `entryTransitions[${index}].targetRef`,\n        \"Entry transition target must resolve to one exact active route registration on the same surface.\",\n      );\n    }\n    const target = matches[0]!;\n    if (\n      target.releaseRevisionRef &&\n      ![\"page-release\", \"workbench-release\"].includes(\n        target.releaseRevisionRef.kind,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"PAGE_ENTRY_TARGET_UNRELEASED\",\n        `entryTransitions[${index}].targetRef`,\n        \"Entry transition Release provenance must identify a Page or Workbench Release.\",\n      );\n    }\n    if (target.routeClaim.kind !== \"canonical\") {\n      throw new DeclarativeControlCompilationError(\n        \"PAGE_ENTRY_TARGET_UNRELEASED\",\n        `entryTransitions[${index}].targetRef`,\n        \"Entry transition targets must expose one canonical route claim.\",\n      );\n    }\n    if (!sameStableRef(target.stableTargetRef, target.targetRevisionRef)) {\n      throw new DeclarativeControlCompilationError(\n        \"PAGE_ENTRY_TARGET_UNRELEASED\",\n        `targetRegistry[${target.sourceIndex}]`,\n        \"Entry transition target registration identity is not exact.\",\n      );\n    }\n    // Entry transitions may narrow into a separately protected route. The target\n    // route remains authoritative and re-evaluates its own access policy after\n    // navigation, so a source Page must not inherit the target's permissions.\n    const requiredPathParameters = [\n      ...target.routeClaim.normalizedPath.matchAll(\n        /:([A-Za-z][A-Za-z0-9_-]*)/g,\n      ),\n    ].map((match) => match[1]!);\n    const mappedPathParameters = Object.keys(transition.pathParameters);\n    const missing = requiredPathParameters.find(\n      (name) => !mappedPathParameters.includes(name),\n    );\n    const unknown = mappedPathParameters.find(\n      (name) => !requiredPathParameters.includes(name),\n    );\n    if (missing || unknown) {\n      throw new DeclarativeControlCompilationError(\n        \"ROUTE_SPACE_MISMATCH\",\n        `entryTransitions[${index}].pathParameters`,\n        missing\n          ? `Entry transition does not resolve target route parameter ${missing}.`\n          : `Entry transition maps unknown target route parameter ${unknown}.`,\n      );\n    }\n    requireDependencies(release.dependencySnapshot, [\n      {\n        role: target.targetRevisionRef.kind as \"page\" | \"workbench\",\n        revisionRef: target.targetRevisionRef,\n      },\n      ...(target.releaseRevisionRef\n        ? [\n            {\n              role: target.releaseRevisionRef.kind as\n                | \"page-release\"\n                | \"workbench-release\",\n              revisionRef: target.releaseRevisionRef,\n            },\n          ]\n        : []),\n    ]);\n    return {\n      ...transition,\n      browsingContext: transition.browsingContext ?? \"same\",\n      targetRevisionRef: target.targetRevisionRef,\n      ...(target.releaseRevisionRef\n        ? { targetReleaseRevisionRef: target.releaseRevisionRef }\n        : {}),\n      targetAccessPolicy: target.accessPolicy,\n      targetRouteClaim: target.routeClaim,\n    };\n  });\n  const unsigned = {\n    contract: \"PageRuntimeBundle\" as const,\n    schemaVersion: 1 as const,\n    tenantScope: scope,\n    releaseRevisionRef,\n    compilerRevisionRef,\n    generation: input.generation,\n    dependencySnapshot: release.dependencySnapshot,\n    rebuildable: true as const,\n    diagnostics: [],\n    pageId: page.pageId,\n    pageRevisionRef,\n    surface: release.target.surface,\n    routeClaims,\n    routeStatePresentations: page.routeStatePresentations.filter(\n      (presentation) => presentation.surface === release.target.surface,\n    ),\n    shellRevisionRef: page.shellRevisionRef,\n    ...(shellDescriptor ? { shellDescriptor } : {}),\n    renderTree,\n    capabilityInstances: page.capabilityInstances,\n    deniedCapabilityInstanceIds: [],\n    stateDefinitions: page.stateDefinitions,\n    ...(page.sharedStateBindings ? { sharedStateBindings: page.sharedStateBindings } : {}),\n    entryTransitions,\n    interactionBindings: page.interactionBindings,\n    ontologyBindings: page.ontologyBindings,\n    queryBindings: page.queryBindings,\n    ...(page.initialQueryPolicy ? { initialQueryPolicy: page.initialQueryPolicy } : {}),\n    actionBindings: page.actionBindings,\n    ...(page.programBindings?.length\n      ? { programBindings: page.programBindings }\n      : {}),\n    pageAccessPolicy: page.pageAccessPolicy,\n    tokenRevisionRefs: page.tokenRevisionRefs,\n    performanceBudgetRef: page.performanceBudgetRef,\n    observationPolicyRevisionRef: page.observationPolicyRevisionRef,\n    privacyClassification: page.privacyClassification,\n  };\n  return { ...unsigned, contentHash: canonicalContentHash(unsigned) };\n};\nconst workbenchDependencyRole = (kind: string): ReleaseDependency[\"role\"] => {\n  switch (kind) {\n    case \"workflow\":\n      return \"workflow\";\n    case \"agent\":\n      return \"agent\";\n    case \"capability\":\n      return \"capability\";\n    case \"design\":\n      return \"design\";\n    case \"built-in-application\":\n      return \"built-in-application\";\n    default:\n      return \"workflow\";\n  }\n};\nconst workbenchDependencies = (\n  workbench: Workbench,\n  compilerRevisionRef: RevisionRef,\n): ReleaseDependency[] => [\n  ...workbench.routeClaims.map((claim) => ({\n    role: \"route-space\" as const,\n    revisionRef: claim.routeSpaceRevisionRef,\n  })),\n  ...workbench.appInstances.flatMap((instance) => [\n    {\n      role: workbenchDependencyRole(instance.targetRevisionRef.kind),\n      revisionRef: instance.targetRevisionRef,\n    },\n    { role: \"provider\" as const, revisionRef: instance.providerRevisionRef },\n    { role: \"schema\" as const, revisionRef: instance.inputSchemaRevisionRef },\n  ]),\n  {\n    role: \"capability\",\n    revisionRef: workbench.layout.hostCapabilityRevisionRef,\n  },\n  { role: \"provider\", revisionRef: workbench.layout.hostProviderRevisionRef },\n  {\n    role: \"layout-policy\",\n    revisionRef: workbench.layout.layoutPolicyRevisionRef,\n  },\n  ...workbench.layout.tokenRevisionRefs.map((revisionRef) => ({\n    role: \"token\" as const,\n    revisionRef,\n  })),\n  { role: \"performance-budget\", revisionRef: workbench.performanceBudgetRef },\n  {\n    role: \"observation-policy\",\n    revisionRef: workbench.observationPolicyRevisionRef,\n  },\n  { role: \"compiler\", revisionRef: compilerRevisionRef },\n];\nexport const compileWorkbenchRuntimeBundle = (\n  input: CompileWorkbenchRuntimeBundleInput,\n): WorkbenchRuntimeBundle => {\n  const workbench = WorkbenchSchema.parse(input.workbench);\n  const workbenchRevisionRef = RevisionRefSchema.parse(\n    input.workbenchRevisionRef,\n  );\n  const release = WorkbenchReleaseSchema.parse(input.release);\n  const releaseRevisionRef = RevisionRefSchema.parse(input.releaseRevisionRef);\n  const compilerRevisionRef = RevisionRefSchema.parse(\n    input.compilerRevisionRef,\n  );\n  const scope = TenantScopeSchema.parse(workbench.tenantScope);\n  assertSameTenantScope(release.tenantScope, scope, \"release.tenantScope\");\n  if (workbench.purpose === \"template\")\n    throw new DeclarativeControlCompilationError(\n      \"WORKBENCH_TEMPLATE_UNRELEASABLE\",\n      \"workbench.purpose\",\n      \"Workbench templates cannot be activated.\",\n    );\n  if (\n    workbench.groups.length > input.limits.maxWorkbenchGroups ||\n    workbench.appInstances.length > input.limits.maxWorkbenchInstances\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"WORKBENCH_INSTANCE_LIMIT_EXCEEDED\",\n      \"workbench\",\n      \"Workbench exceeds caller-approved compilation limits.\",\n    );\n  }\n  assertRevisionIdentity(\n    workbenchRevisionRef,\n    \"workbench\",\n    workbench.workbenchId,\n    scope,\n    \"workbenchRevisionRef\",\n  );\n  assertRevisionIdentity(\n    release.workbenchRevisionRef,\n    \"workbench\",\n    workbench.workbenchId,\n    scope,\n    \"release.workbenchRevisionRef\",\n  );\n  if (!sameRevisionRef(workbenchRevisionRef, release.workbenchRevisionRef))\n    throw new DeclarativeControlCompilationError(\n      \"REVISION_MISMATCH\",\n      \"release.workbenchRevisionRef\",\n      \"Release does not pin the supplied Workbench revision.\",\n    );\n  assertRevisionIdentity(\n    releaseRevisionRef,\n    \"workbench-release\",\n    release.releaseSlotId,\n    scope,\n    \"releaseRevisionRef\",\n  );\n  if (release.target.workbenchId !== workbench.workbenchId)\n    throw new DeclarativeControlCompilationError(\n      \"REVISION_MISMATCH\",\n      \"release.target.workbenchId\",\n      \"Release target does not match Workbench identity.\",\n    );\n  requireReleaseReady(release);\n  requireDependencies(\n    release.dependencySnapshot,\n    workbenchDependencies(workbench, compilerRevisionRef),\n  );\n  assertDependencyScopes(release.dependencySnapshot, scope);\n  const routeClaims = compileRouteClaims({\n    claims: workbench.routeClaims,\n    routeSpaces: input.routeSpaces,\n    surface: release.target.surface,\n    legacyRouteTakeoverAuthorizations: release.target\n      .legacyRouteTakeoverAuthorization\n      ? [release.target.legacyRouteTakeoverAuthorization]\n      : [],\n  });\n  const releaseRoute = routeClaims.find(\n    (claim) =>\n      claim.kind === \"canonical\" &&\n      claim.normalizedPath === release.target.normalizedPath,\n  );\n  if (\n    !releaseRoute ||\n    !sameRevisionRef(\n      releaseRoute.routeSpaceRevisionRef,\n      release.target.routeSpaceRevisionRef,\n    )\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"ROUTE_SPACE_MISMATCH\",\n      \"release.target\",\n      \"Release target does not match an exact Workbench route claim.\",\n    );\n  }\n  const targetRegistry = input.targetRegistry.map((registration) => ({\n    stableTargetRef: StableRefSchema.parse(registration.stableTargetRef),\n    targetRevisionRef: RevisionRefSchema.parse(registration.targetRevisionRef),\n    accessPolicy: AccessPolicySchema.parse(registration.accessPolicy),\n  }));\n  assertUniqueRegistryKeys(\n    targetRegistry.map((registration) =>\n      stableRefKey(registration.stableTargetRef),\n    ),\n    \"targetRegistry\",\n  );\n  const targetsByStableRef = new Map(\n    targetRegistry.map((registration) => [\n      stableRefKey(registration.stableTargetRef),\n      registration,\n    ]),\n  );\n  const groupsById = new Map(\n    workbench.groups.map((group) => [group.groupId, group]),\n  );\n  const contractFor = (capabilityRef: RevisionRef, providerRef: RevisionRef, declared?: string) => {\n    const registration = input.capabilityRegistry?.find(candidate => sameRevisionRef(candidate.capabilityRevisionRef, capabilityRef) && sameRevisionRef(candidate.providerRevisionRef, providerRef));\n    if (declared !== undefined && declared !== registration?.runtimeContractVersion) {\n      throw new DeclarativeControlCompilationError(\"CAPABILITY_BINDING_MISMATCH\", \"workbench.runtimeContractVersion\", \"Runtime contract must be issued by the exact governed registration.\");\n    }\n    return registration?.runtimeContractVersion;\n  };\n  const layoutContract = contractFor(workbench.layout.hostCapabilityRevisionRef, workbench.layout.hostProviderRevisionRef, workbench.layout.runtimeContractVersion);\n  const appInstances = workbench.appInstances.map((instance, index) => {\n    const stableTarget = StableRefSchema.parse({\n      kind: instance.targetRevisionRef.kind,\n      id: instance.targetRevisionRef.id,\n      ownerRepo: instance.targetRevisionRef.ownerRepo,\n      visibility: instance.targetRevisionRef.visibility,\n      ...(instance.targetRevisionRef.tenantScope\n        ? { tenantScope: instance.targetRevisionRef.tenantScope }\n        : {}),\n    });\n    const registration = targetsByStableRef.get(stableRefKey(stableTarget));\n    if (\n      !registration ||\n      !sameStableRef(\n        registration.stableTargetRef,\n        stableFromRevision(registration.targetRevisionRef),\n      ) ||\n      !sameRevisionRef(\n        registration.targetRevisionRef,\n        instance.targetRevisionRef,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        `appInstances[${index}].targetRevisionRef`,\n        \"Workbench app target is not present at the exact registered revision.\",\n      );\n    }\n    assertTenantCompatible(\n      instance.targetRevisionRef,\n      scope,\n      `appInstances[${index}].targetRevisionRef`,\n    );\n    const group = groupsById.get(instance.groupId);\n    const chain = [\n      workbench.workbenchAccessPolicy,\n      ...(group?.accessPolicy ? [group.accessPolicy] : []),\n      instance.accessPolicy,\n    ];\n    if (!accessPolicyChainImplies(chain, registration.accessPolicy)) {\n      throw new DeclarativeControlCompilationError(\n        \"AUDIENCE_WIDER_THAN_TARGET\",\n        `appInstances[${index}].accessPolicy`,\n        \"Workbench and instance audience is wider than the target audience.\",\n      );\n    }\n    const runtimeContractVersion = contractFor(instance.targetRevisionRef, instance.providerRevisionRef, instance.runtimeContractVersion);\n    return { ...instance, ...(runtimeContractVersion ? { runtimeContractVersion } : {}), targetAccessPolicy: registration.accessPolicy };\n  });\n  const unsigned = {\n    contract: \"WorkbenchRuntimeBundle\" as const,\n    schemaVersion: 1 as const,\n    tenantScope: scope,\n    releaseRevisionRef,\n    compilerRevisionRef,\n    generation: input.generation,\n    dependencySnapshot: release.dependencySnapshot,\n    rebuildable: true as const,\n    diagnostics: [],\n    workbenchId: workbench.workbenchId,\n    workbenchRevisionRef,\n    identity: {\n      name: workbench.identity.name,\n      ...(workbench.identity.description\n        ? { description: workbench.identity.description }\n        : {}),\n    },\n    surface: release.target.surface,\n    routeClaims,\n    groups: workbench.groups,\n    appInstances,\n    defaultEntry: workbench.defaultEntry,\n    layout: { ...workbench.layout, ...(layoutContract ? { runtimeContractVersion: layoutContract } : {}) },\n    workbenchAccessPolicy: workbench.workbenchAccessPolicy,\n    personalPreferencesPolicy: workbench.personalPreferencesPolicy,\n    target: { ...release.target, routeClaim: releaseRoute },\n    performanceBudgetRef: workbench.performanceBudgetRef,\n    observationPolicyRevisionRef: workbench.observationPolicyRevisionRef,\n    privacyClassification: workbench.privacyClassification,\n  };\n  return deepFreeze(\n    WorkbenchRuntimeBundleSchema.parse({\n      ...unsigned,\n      contentHash: canonicalContentHash(unsigned),\n    }),\n  );\n};\nconst navigationDepth = (navigation: Navigation): number => {\n  const byId = new Map(navigation.nodes.map((node) => [node.nodeId, node]));\n  let maximum = 0;\n  navigation.nodes.forEach((node) => {\n    let depth = 1;\n    let parentId = node.parentNodeId;\n    while (parentId) {\n      depth += 1;\n      parentId = byId.get(parentId)?.parentNodeId ?? null;\n    }\n    maximum = Math.max(maximum, depth);\n  });\n  return maximum;\n};\nconst orderedNavigationNodes = (\n  navigation: Navigation,\n): Navigation[\"nodes\"] => {\n  const children = new Map<string, Navigation[\"nodes\"]>();\n  navigation.nodes.forEach((node) => {\n    const parent = node.parentNodeId ?? \"\";\n    const siblings = children.get(parent) ?? [];\n    children.set(parent, [...siblings, node]);\n  });\n  children.forEach((siblings) =>\n    siblings.sort(\n      (left, right) =>\n        left.order - right.order || left.nodeId.localeCompare(right.nodeId),\n    ),\n  );\n  const ordered: Navigation[\"nodes\"] = [];\n  const append = (parentId: string) => {\n    for (const node of children.get(parentId) ?? []) {\n      ordered.push(node);\n      append(node.nodeId);\n    }\n  };\n  append(\"\");\n  return ordered;\n};\nconst navigationDependencies = (\n  navigation: Navigation,\n  release: NavigationRelease,\n  compilerRevisionRef: RevisionRef,\n): ReleaseDependency[] => [\n  ...release.resolvedTargets.flatMap((target) => [\n    {\n      role:\n        target.targetRevisionRef.kind === \"domain-command\"\n          ? (\"action\" as const)\n          : (target.targetRevisionRef.kind as ReleaseDependency[\"role\"]),\n      revisionRef: target.targetRevisionRef,\n    },\n    ...(target.releaseRevisionRef\n      ? [\n          {\n            role: target.releaseRevisionRef.kind as ReleaseDependency[\"role\"],\n            revisionRef: target.releaseRevisionRef,\n          },\n        ]\n      : []),\n  ]),\n  { role: \"performance-budget\", revisionRef: navigation.performanceBudgetRef },\n  {\n    role: \"observation-policy\",\n    revisionRef: navigation.observationPolicyRevisionRef,\n  },\n  { role: \"compiler\", revisionRef: compilerRevisionRef },\n];\nexport const compileNavigationRuntimeBundle = (\n  input: CompileNavigationRuntimeBundleInput,\n): NavigationRuntimeBundle => {\n  const navigation = NavigationSchema.parse(input.navigation);\n  const navigationRevisionRef = RevisionRefSchema.parse(\n    input.navigationRevisionRef,\n  );\n  const release = NavigationReleaseSchema.parse(input.release);\n  const releaseRevisionRef = RevisionRefSchema.parse(input.releaseRevisionRef);\n  const compilerRevisionRef = RevisionRefSchema.parse(\n    input.compilerRevisionRef,\n  );\n  const scope = TenantScopeSchema.parse(navigation.tenantScope);\n  const verifiedKernelPageReferences = [\n    ...(input.verifiedKernelPageReferences ?? []),\n  ].map((reference, index) => {\n    const parsed = RevisionRefSchema.parse(reference);\n    if (\n      release.target.surface !== \"kernel\" ||\n      parsed.visibility !== \"tenant\" ||\n      !parsed.tenantScope?.teamRef?.id.startsWith(\"kernel-page.\") ||\n      parsed.ownerRepo !== \"monkeys-server\" ||\n      ![\"page\", \"page-release\"].includes(parsed.kind)\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"CROSS_TENANT_REFERENCE\",\n        `verifiedKernelPageReferences[${index}]`,\n        \"Verified Kernel Page references must be exact tenant-scoped Page and PageRelease revisions from the Kernel page catalog.\",\n      );\n    }\n    if (scopeKey(parsed.tenantScope) === scopeKey(scope)) {\n      throw new DeclarativeControlCompilationError(\n        \"CROSS_TENANT_REFERENCE\",\n        `verifiedKernelPageReferences[${index}]`,\n        \"Verified Kernel Page references must belong to a different tenant scope.\",\n      );\n    }\n    return parsed;\n  });\n  const verifiedKernelPageReferenceKeys = new Set(\n    verifiedKernelPageReferences.map(revisionRefKey),\n  );\n  assertSameTenantScope(release.tenantScope, scope, \"release.tenantScope\");\n  if (navigation.nodes.length > input.limits.maxNavigationNodes)\n    throw new DeclarativeControlCompilationError(\n      \"NAV_NODE_LIMIT_EXCEEDED\",\n      \"navigation.nodes\",\n      \"Navigation exceeds the caller-approved node limit.\",\n    );\n  if (navigationDepth(navigation) > input.limits.maxNavigationDepth)\n    throw new DeclarativeControlCompilationError(\n      \"NAV_DEPTH_EXCEEDED\",\n      \"navigation.nodes\",\n      \"Navigation exceeds the caller-approved depth limit.\",\n    );\n  assertRevisionIdentity(\n    navigationRevisionRef,\n    \"navigation\",\n    navigation.navigationId,\n    scope,\n    \"navigationRevisionRef\",\n  );\n  assertRevisionIdentity(\n    release.navigationRevisionRef,\n    \"navigation\",\n    navigation.navigationId,\n    scope,\n    \"release.navigationRevisionRef\",\n  );\n  if (!sameRevisionRef(navigationRevisionRef, release.navigationRevisionRef))\n    throw new DeclarativeControlCompilationError(\n      \"REVISION_MISMATCH\",\n      \"release.navigationRevisionRef\",\n      \"Release does not pin the supplied Navigation revision.\",\n    );\n  assertRevisionIdentity(\n    releaseRevisionRef,\n    \"navigation-release\",\n    release.releaseSlotId,\n    scope,\n    \"releaseRevisionRef\",\n  );\n  if (\n    release.target.surface !==\n      navigation.supportedSurfaces.find(\n        (surface) => surface === release.target.surface,\n      ) ||\n    !navigation.placements.includes(release.target.placement)\n  ) {\n    throw new DeclarativeControlCompilationError(\n      \"REVISION_MISMATCH\",\n      \"release.target\",\n      \"Navigation release target is not declared by the Navigation record.\",\n    );\n  }\n  requireReleaseReady(release);\n  requireDependencies(\n    release.dependencySnapshot,\n    navigationDependencies(navigation, release, compilerRevisionRef),\n  );\n  assertDependencyScopes(\n    release.dependencySnapshot,\n    scope,\n    verifiedKernelPageReferenceKeys,\n  );\n  const targetRegistry = input.targetRegistry.map((registration, index) => {\n    const common = {\n      stableTargetRef: StableRefSchema.parse(registration.stableTargetRef),\n      targetRevisionRef: RevisionRefSchema.parse(\n        registration.targetRevisionRef,\n      ),\n      surface: ProductSurfaceSchema.parse(registration.surface),\n      accessPolicy: AccessPolicySchema.parse(registration.accessPolicy),\n    };\n    if (registration.kind === \"route\") {\n      const routeClaim = CompiledRouteClaimSchema.parse(\n        registration.routeClaim,\n      );\n      if (routeClaim.surface !== common.surface) {\n        throw new DeclarativeControlCompilationError(\n          \"ROUTE_SPACE_MISMATCH\",\n          `targetRegistry[${index}].routeClaim.surface`,\n          \"Navigation route claim must match its registered surface.\",\n        );\n      }\n      return {\n        ...common,\n        kind: \"route\" as const,\n        releaseRevisionRef: registration.releaseRevisionRef\n          ? RevisionRefSchema.parse(registration.releaseRevisionRef)\n          : undefined,\n        routeClaim,\n      };\n    }\n    if (registration.kind === \"registered-menu-action\") {\n      const sourceCatalogRevisionRef = RevisionRefSchema.parse(\n        registration.sourceCatalogRevisionRef,\n      );\n      if (\n        sourceCatalogRevisionRef.kind !== \"application-menu-catalog\" ||\n        registration.targetRevisionRef.kind !== \"menu-action\"\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"NAV_TARGET_UNRELEASED\",\n          \"targetRegistry\",\n          \"Registered Menu Actions require exact menu-action and application-menu-catalog revisions.\",\n        );\n      }\n      if (registration.inputSchemaRef && !registration.validateInput) {\n        throw new DeclarativeControlCompilationError(\n          \"NAV_TARGET_UNRELEASED\",\n          \"targetRegistry\",\n          \"Registered Menu Actions with input schemas require the active catalog validator.\",\n        );\n      }\n      return {\n        ...common,\n        kind: \"registered-menu-action\" as const,\n        applicationId: registration.applicationId,\n        actionRef: registration.actionRef,\n        inputSchemaRef: registration.inputSchemaRef,\n        validateInput: registration.validateInput,\n        sourceCatalogRevisionRef,\n      };\n    }\n    if (registration.targetRevisionRef.kind !== \"domain-command\") {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        \"targetRegistry\",\n        \"Governed DomainCommand actions require an exact domain-command revision.\",\n      );\n    }\n    const inputSchemaRevisionRef = RevisionRefSchema.parse(\n      registration.inputSchemaRevisionRef,\n    );\n    const resultSchemaRevisionRef = registration.resultSchemaRevisionRef\n      ? RevisionRefSchema.parse(registration.resultSchemaRevisionRef)\n      : undefined;\n    if (\n      inputSchemaRevisionRef.kind !== \"schema\" ||\n      (resultSchemaRevisionRef && resultSchemaRevisionRef.kind !== \"schema\")\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        \"targetRegistry\",\n        \"Governed DomainCommand actions require exact input and output Schema revisions.\",\n      );\n    }\n    return {\n      ...common,\n      kind: \"governed-domain-command\" as const,\n      inputSchemaRevisionRef,\n      resultSchemaRevisionRef,\n    };\n  });\n  assertUniqueRegistryKeys(\n    targetRegistry.map((registration) =>\n      stableRefKey(registration.stableTargetRef),\n    ),\n    \"targetRegistry\",\n  );\n  const targetsByStableRef = new Map(\n    targetRegistry.map((registration) => [\n      stableRefKey(registration.stableTargetRef),\n      registration,\n    ]),\n  );\n  const releasedByNodeId = new Map(\n    release.resolvedTargets.map((target) => [target.nodeId, target]),\n  );\n  const unavailableByNodeId = new Map(\n    (release.unavailableTargets ?? []).map((target) => [target.nodeId, target]),\n  );\n  const nodesById = new Map(\n    navigation.nodes.map((node) => [node.nodeId, node]),\n  );\n  for (const target of release.unavailableTargets ?? []) {\n    const node = nodesById.get(target.nodeId);\n    if (\n      node?.kind !== \"target\" ||\n      !sameStableRef(node.targetRef, target.stableTargetRef)\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        \"release.unavailableTargets\",\n        \"An unavailable target must identify its source Page node exactly.\",\n      );\n    }\n  }\n  const nodes = orderedNavigationNodes(navigation).map((node, index) => {\n    const ancestors: AccessPolicy[] = [];\n    let parentId = node.parentNodeId;\n    while (parentId) {\n      const parent = nodesById.get(parentId);\n      if (parent?.kind === \"group\") ancestors.unshift(parent.audience);\n      parentId = parent?.parentNodeId ?? null;\n    }\n    if (node.kind !== \"target\")\n      return { ...node, ancestorAccessPolicies: ancestors };\n    if (\n      ![\"page\", \"workbench\", \"menu-action\", \"domain-command\"].includes(\n        node.targetRef.kind,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        `nodes[${index}].targetRef.kind`,\n        \"Navigation targets may reference only Page, Workbench, registered Menu Action, or DomainCommand identities.\",\n      );\n    }\n    const registration = targetsByStableRef.get(stableRefKey(node.targetRef));\n    const released = releasedByNodeId.get(node.nodeId);\n    const unavailable = unavailableByNodeId.get(node.nodeId);\n    if (\n      !registration &&\n      node.targetRef.kind === \"page\" &&\n      ((unavailable && sameStableRef(unavailable.stableTargetRef, node.targetRef)) ||\n        (released && sameStableRef(released.stableTargetRef, node.targetRef)))\n    ) {\n      if (\n        !released ||\n        !verifiedKernelPageReferenceKeys.has(\n          revisionRefKey(released.targetRevisionRef),\n        )\n      ) {\n        assertTenantCompatible(\n          node.targetRef,\n          scope,\n          `nodes[${index}].targetRef`,\n        );\n      }\n      if (\n        unavailable?.accessPolicy &&\n        !accessPolicyChainImplies(\n          [...ancestors, node.audience],\n          unavailable.accessPolicy,\n        )\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"AUDIENCE_WIDER_THAN_TARGET\",\n          `nodes[${index}].audience`,\n          \"Effective Navigation audience is wider than the last verified target audience.\",\n        );\n      }\n      return {\n        ...node,\n        disabled: true,\n        parameterMapping: {},\n        ancestorAccessPolicies: ancestors,\n        resolvedTarget: {\n          kind: \"unavailable\" as const,\n          nodeId: node.nodeId,\n          stableTargetRef: node.targetRef,\n          accessPolicy: unavailable?.accessPolicy ?? null,\n        },\n      };\n    }\n    const currentPage = node.targetRef.kind === \"page\" && registration?.kind === \"route\";\n    if (\n      !registration ||\n      (!released && !(currentPage && unavailable && sameStableRef(unavailable.stableTargetRef, node.targetRef))) ||\n      !sameStableRef(\n        registration.stableTargetRef,\n        stableFromRevision(registration.targetRevisionRef),\n      ) ||\n      (released &&\n        !sameStableRef(\n          registration.stableTargetRef,\n          released.stableTargetRef,\n        )) ||\n      (!currentPage &&\n        released &&\n        !sameRevisionRef(\n          registration.targetRevisionRef,\n          released.targetRevisionRef,\n        )) ||\n      (!currentPage &&\n        released &&\n        registration.kind === \"route\" &&\n        (Boolean(registration.releaseRevisionRef) !==\n          Boolean(released.releaseRevisionRef) ||\n          (registration.releaseRevisionRef &&\n            released.releaseRevisionRef &&\n            !sameRevisionRef(\n              registration.releaseRevisionRef,\n              released.releaseRevisionRef,\n            ))))\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        `nodes[${index}].targetRef`,\n        \"Navigation target must resolve to the same Page identity or the exact non-Page binding recorded by NavigationRelease.\",\n      );\n    }\n    if (registration.surface !== release.target.surface) {\n      throw new DeclarativeControlCompilationError(\n        \"NAV_TARGET_UNRELEASED\",\n        `nodes[${index}].targetRef`,\n        \"Navigation target is active on another surface.\",\n      );\n    }\n    const targetIsForeignTenant =\n      registration.targetRevisionRef.visibility === \"tenant\" &&\n      scopeKey(registration.targetRevisionRef.tenantScope as TenantScope) !==\n        scopeKey(scope);\n    if (targetIsForeignTenant) {\n      const releaseReference =\n        registration.kind === \"route\"\n          ? registration.releaseRevisionRef\n          : undefined;\n      if (\n        release.target.surface !== \"kernel\" ||\n        registration.kind !== \"route\" ||\n        registration.targetRevisionRef.kind !== \"page\" ||\n        !releaseReference ||\n        !verifiedKernelPageReferenceKeys.has(\n          revisionRefKey(registration.targetRevisionRef),\n        ) ||\n        !verifiedKernelPageReferenceKeys.has(revisionRefKey(releaseReference))\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"CROSS_TENANT_REFERENCE\",\n          `nodes[${index}].targetRef`,\n          \"Kernel Navigation may retain only Page references independently verified by the authenticated Kernel page catalog.\",\n        );\n      }\n      if (\n        scopeKey(releaseReference.tenantScope as TenantScope) !==\n        scopeKey(registration.targetRevisionRef.tenantScope as TenantScope)\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"CROSS_TENANT_REFERENCE\",\n          `nodes[${index}].targetRef`,\n          \"Verified Kernel Page and PageRelease references must belong to the same tenant scope.\",\n        );\n      }\n    } else {\n      assertTenantCompatible(\n        registration.targetRevisionRef,\n        scope,\n        `nodes[${index}].targetRef`,\n      );\n    }\n    // Page visibility is the intersection of the Navigation and current Page policies.\n    // A Page permission change must not require republishing its navigation.\n    if (\n      !currentPage && !accessPolicyChainImplies(\n        [...ancestors, node.audience],\n        registration.accessPolicy,\n      )\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"AUDIENCE_WIDER_THAN_TARGET\",\n        `nodes[${index}].audience`,\n        \"Effective Navigation audience is wider than the target audience.\",\n      );\n    }\n    const mappedInput = Object.fromEntries(\n      Object.entries(node.parameterMapping).map(([name, source]) => {\n        if (source.kind !== \"constant\") {\n          throw new DeclarativeControlCompilationError(\n            \"NAV_TARGET_UNRELEASED\",\n            `nodes[${index}].parameterMapping.${name}`,\n            \"Navigation actions accept only publication-time constant input.\",\n          );\n        }\n        return [name, source.value];\n      }),\n    );\n    let resolvedTarget: Record<string, unknown>;\n    if (registration.kind === \"route\") {\n      resolvedTarget = {\n        nodeId: node.nodeId,\n        stableTargetRef: registration.stableTargetRef,\n        targetRevisionRef: registration.targetRevisionRef,\n        ...(registration.releaseRevisionRef ? { releaseRevisionRef: registration.releaseRevisionRef } : {}),\n        kind: \"route\",\n        accessPolicy: registration.accessPolicy,\n        routeClaim: registration.routeClaim,\n      };\n    } else if (registration.kind === \"registered-menu-action\") {\n      if (!registration.inputSchemaRef && Object.keys(mappedInput).length > 0) {\n        throw new DeclarativeControlCompilationError(\n          \"NAV_TARGET_UNRELEASED\",\n          `nodes[${index}].parameterMapping`,\n          \"The registered Menu Action does not accept input.\",\n        );\n      }\n      let input: Record<string, unknown>;\n      try {\n        input = JsonObjectSchema.parse(\n          registration.validateInput\n            ? registration.validateInput(mappedInput)\n            : mappedInput,\n        );\n      } catch (error) {\n        throw new DeclarativeControlCompilationError(\n          \"NAV_ACTION_INPUT_INVALID\",\n          `nodes[${index}].parameterMapping`,\n          `Registered Menu Action input failed its active catalog schema: ${error instanceof Error ? error.message : String(error)}`,\n        );\n      }\n      const sourceDependency = release.dependencySnapshot.find(\n        (dependency) =>\n          dependency.role === \"application-menu-catalog\" &&\n          sameRevisionRef(\n            dependency.revisionRef,\n            registration.sourceCatalogRevisionRef,\n          ),\n      );\n      if (!sourceDependency)\n        throw new DeclarativeControlCompilationError(\n          \"DEPENDENCY_MISSING\",\n          `nodes[${index}].targetRef`,\n          \"Registered Menu Action source catalog is not pinned by NavigationRelease.\",\n        );\n      resolvedTarget = {\n        ...released,\n        kind: \"registered-menu-action\",\n        accessPolicy: registration.accessPolicy,\n        execution: \"client\",\n        applicationId: registration.applicationId,\n        actionRef: registration.actionRef,\n        ...(registration.inputSchemaRef\n          ? { inputSchemaRef: registration.inputSchemaRef }\n          : {}),\n        input,\n        sourceCatalogRevisionRef: registration.sourceCatalogRevisionRef,\n      };\n    } else {\n      const inputDependency = release.dependencySnapshot.find(\n        (dependency) =>\n          dependency.role === \"schema\" &&\n          sameRevisionRef(\n            dependency.revisionRef,\n            registration.inputSchemaRevisionRef,\n          ),\n      );\n      const resultDependency = registration.resultSchemaRevisionRef\n        ? release.dependencySnapshot.find(\n            (dependency) =>\n              dependency.role === \"schema\" &&\n              sameRevisionRef(\n                dependency.revisionRef,\n                registration.resultSchemaRevisionRef!,\n              ),\n          )\n        : undefined;\n      if (\n        !inputDependency ||\n        (registration.resultSchemaRevisionRef && !resultDependency)\n      ) {\n        throw new DeclarativeControlCompilationError(\n          \"DEPENDENCY_MISSING\",\n          `nodes[${index}].targetRef`,\n          \"Governed DomainCommand schemas are not pinned by NavigationRelease.\",\n        );\n      }\n      resolvedTarget = {\n        ...released,\n        kind: \"governed-domain-command\",\n        accessPolicy: registration.accessPolicy,\n        execution: \"server\",\n        commandRevisionRef: registration.targetRevisionRef,\n        inputSchemaRevisionRef: registration.inputSchemaRevisionRef,\n        ...(registration.resultSchemaRevisionRef\n          ? { resultSchemaRevisionRef: registration.resultSchemaRevisionRef }\n          : {}),\n        input: JsonObjectSchema.parse(mappedInput),\n      };\n    }\n    return {\n      ...node,\n      ancestorAccessPolicies: ancestors,\n      resolvedTarget,\n    };\n  });\n  const unsigned = {\n    contract: \"NavigationRuntimeBundle\" as const,\n    schemaVersion: 1 as const,\n    tenantScope: scope,\n    releaseRevisionRef,\n    compilerRevisionRef,\n    generation: input.generation,\n    dependencySnapshot: release.dependencySnapshot,\n    rebuildable: true as const,\n    diagnostics: [],\n    navigationId: navigation.navigationId,\n    navigationRevisionRef,\n    surface: release.target.surface,\n    placement: release.target.placement,\n    nodes,\n    performanceBudgetRef: navigation.performanceBudgetRef,\n    observationPolicyRevisionRef: navigation.observationPolicyRevisionRef,\n  };\n  return deepFreeze(\n    NavigationRuntimeBundleSchema.parse({\n      ...unsigned,\n      contentHash: canonicalContentHash(unsigned),\n    }),\n  );\n};\nexport const validateWorkbenchRuntimeSet = (\n  bundleInputs: readonly WorkbenchRuntimeBundle[],\n): readonly WorkbenchRuntimeBundle[] => {\n  const bundles = bundleInputs.map((bundle) =>\n    WorkbenchRuntimeBundleSchema.parse(bundle),\n  );\n  if (bundles.length === 0) {\n    throw new DeclarativeControlCompilationError(\n      \"WORKBENCH_RELEASE_SET_INVALID\",\n      \"bundles\",\n      \"An active Workbench release set must retain at least one Workbench.\",\n    );\n  }\n  const first = bundles[0];\n  const seenIds = new Set<string>();\n  const seenOrders = new Set<number>();\n  let defaultCount = 0;\n  bundles.forEach((bundle, index) => {\n    if (\n      scopeKey(bundle.tenantScope) !== scopeKey(first.tenantScope) ||\n      bundle.surface !== first.surface ||\n      !sameStableRef(bundle.target.environmentRef, first.target.environmentRef)\n    ) {\n      throw new DeclarativeControlCompilationError(\n        \"WORKBENCH_RELEASE_SET_INVALID\",\n        `bundles[${index}]`,\n        \"Workbench release set entries must share tenant, environment, and surface.\",\n      );\n    }\n    if (seenIds.has(bundle.workbenchId))\n      throw new DeclarativeControlCompilationError(\n        \"WORKBENCH_RELEASE_SET_INVALID\",\n        `bundles[${index}].workbenchId`,\n        \"Workbench identities must be unique in an active release set.\",\n      );\n    if (seenOrders.has(bundle.target.order))\n      throw new DeclarativeControlCompilationError(\n        \"WORKBENCH_RELEASE_SET_INVALID\",\n        `bundles[${index}].target.order`,\n        \"Workbench order values must be unique in an active release set.\",\n      );\n    seenIds.add(bundle.workbenchId);\n    seenOrders.add(bundle.target.order);\n    if (bundle.target.isDefaultCandidate) defaultCount += 1;\n  });\n  if (defaultCount > 1)\n    throw new DeclarativeControlCompilationError(\n      \"WORKBENCH_RELEASE_SET_INVALID\",\n      \"bundles\",\n      \"An active Workbench release set may have at most one default candidate.\",\n    );\n  return Object.freeze(\n    [...bundles].sort(\n      (left, right) =>\n        left.target.order - right.target.order ||\n        left.workbenchId.localeCompare(right.workbenchId),\n    ),\n  );\n};\nexport type WorkbenchEntryResolution =\n  | {\n      status: \"resolved\";\n      bundle: WorkbenchRuntimeBundle;\n      source: \"explicit\" | \"default\" | \"first-accessible\";\n    }\n  | {\n      status: \"not-found\";\n      workbenchId: string;\n    }\n  | {\n      status: \"forbidden\";\n      workbenchId: string;\n    };\nexport const resolveWorkbenchEntry = (input: {\n  bundles: readonly WorkbenchRuntimeBundle[];\n  requestedWorkbenchId?: string;\n  isAllowed: (bundle: WorkbenchRuntimeBundle) => boolean;\n}): WorkbenchEntryResolution => {\n  if (input.requestedWorkbenchId) {\n    const requested = input.bundles.find(\n      (bundle) => bundle.workbenchId === input.requestedWorkbenchId,\n    );\n    if (!requested)\n      return { status: \"not-found\", workbenchId: input.requestedWorkbenchId };\n    if (!input.isAllowed(requested))\n      return { status: \"forbidden\", workbenchId: input.requestedWorkbenchId };\n    return { status: \"resolved\", bundle: requested, source: \"explicit\" };\n  }\n  const allowed = input.bundles\n    .filter(input.isAllowed)\n    .sort(\n      (left, right) =>\n        left.target.order - right.target.order ||\n        left.workbenchId.localeCompare(right.workbenchId),\n    );\n  const defaultBundle = allowed.find(\n    (bundle) => bundle.target.isDefaultCandidate,\n  );\n  if (defaultBundle)\n    return { status: \"resolved\", bundle: defaultBundle, source: \"default\" };\n  if (allowed[0])\n    return {\n      status: \"resolved\",\n      bundle: allowed[0],\n      source: \"first-accessible\",\n    };\n  return { status: \"forbidden\", workbenchId: \"\" };\n};\n\nexport const programDependencies = (\n  definition: ActionProgramDefinition,\n): ReleaseDependency[] => [\n  ...[\n    definition.inputSchemaRevisionRef,\n    definition.resultSchemaRevisionRef,\n    ...definition.stateAliases.map((entry) => entry.schemaRevisionRef),\n  ].map((revisionRef) => ({ role: \"schema\" as const, revisionRef })),\n  ...definition.dependencies.flatMap((dep) => [\n    {\n      role:\n        dep.kind === \"query\"\n          ? (\"query-definition\" as const)\n          : (\"action\" as const),\n      revisionRef: dep.revisionRef,\n    },\n    { role: \"schema\" as const, revisionRef: dep.inputSchemaRevisionRef },\n    { role: \"schema\" as const, revisionRef: dep.resultSchemaRevisionRef },\n  ]),\n];\nexport function assertProgramRegistration(\n  registration: ActionProgramRegistration,\n  scope: TenantScope,\n  surface: string,\n  path = \"program\",\n) {\n  const definition = ActionProgramDefinitionSchema.parse(\n    registration.definition,\n  );\n  const ref = RevisionRefSchema.parse(registration.definitionRevisionRef);\n  if (\n    ref.kind !== \"action-program\" ||\n    ref.id !== definition.programId ||\n    ref.ownerRepo !== definition.ownerRepo ||\n    ref.visibility !== \"tenant\" ||\n    canonicalContentHash(ref.tenantScope) !== canonicalContentHash(scope) ||\n    canonicalContentHash(definition.tenantScope) !==\n      canonicalContentHash(scope) ||\n    ref.schemaVersion !== definition.schemaVersion ||\n    ref.contentHash !== canonicalContentHash(definition) ||\n    definition.supportedSurface !== surface\n  )\n    throw new DeclarativeControlCompilationError(\n      \"CROSS_TENANT_REFERENCE\",\n      path,\n      \"Program identity, scope, surface or content hash does not match its exact reference.\",\n    );\n}\n","import type { RenderNode, RenderTree } from '../contracts/render';\nimport { RenderTreeSchema } from '../contracts/render';\n\nexport interface CompiledRenderTree {\n  tree: RenderTree;\n  root: RenderNode;\n  nodesById: ReadonlyMap<string, RenderNode>;\n  traversal: readonly RenderNode[];\n  childrenOf(nodeId: string): readonly RenderNode[];\n  ancestorsOf(nodeId: string): readonly RenderNode[];\n}\n\nexport const compileRenderTree = (input: RenderTree): CompiledRenderTree => {\n  const tree = RenderTreeSchema.parse(input);\n  const nodesById = new Map<string, RenderNode>();\n  for (const node of tree.nodes) {\n    if (nodesById.has(node.nodeId)) throw new Error(`Duplicate render node id: ${node.nodeId}`);\n    nodesById.set(node.nodeId, node);\n  }\n  const root = nodesById.get(tree.rootNodeId);\n  if (!root) throw new Error(`Render tree ${tree.treeId} has no root node ${tree.rootNodeId}.`);\n  if (root.parentNodeId !== undefined) throw new Error(`Render tree root ${root.nodeId} cannot declare a parent.`);\n\n  for (const node of tree.nodes) {\n    if (node.nodeId !== root.nodeId && node.parentNodeId === undefined) {\n      throw new Error(`Render node ${node.nodeId} is disconnected from root ${root.nodeId}.`);\n    }\n    if (node.parentNodeId !== undefined) {\n      const parent = nodesById.get(node.parentNodeId);\n      if (!parent) throw new Error(`Render node ${node.nodeId} references missing parent ${node.parentNodeId}.`);\n      if (!parent.children.includes(node.nodeId)) {\n        throw new Error(`Render node ${node.nodeId} is not declared by parent ${parent.nodeId}.`);\n      }\n    }\n    for (const childId of node.children) {\n      const child = nodesById.get(childId);\n      if (!child) throw new Error(`Render node ${node.nodeId} references missing child ${childId}.`);\n      if (child.parentNodeId !== node.nodeId) {\n        throw new Error(`Render child ${childId} does not point back to parent ${node.nodeId}.`);\n      }\n    }\n  }\n\n  const visiting = new Set<string>();\n  const visited = new Set<string>();\n  const traversal: RenderNode[] = [];\n  const visit = (node: RenderNode) => {\n    if (visiting.has(node.nodeId)) throw new Error(`Render tree ${tree.treeId} contains a cycle at ${node.nodeId}.`);\n    if (visited.has(node.nodeId)) return;\n    visiting.add(node.nodeId);\n    traversal.push(node);\n    node.children.forEach((childId) => visit(nodesById.get(childId)!));\n    visiting.delete(node.nodeId);\n    visited.add(node.nodeId);\n  };\n  visit(root);\n  if (visited.size !== nodesById.size) {\n    const disconnected = tree.nodes.find((node) => !visited.has(node.nodeId))!;\n    throw new Error(`Render node ${disconnected.nodeId} is not reachable from root ${root.nodeId}.`);\n  }\n\n  const childrenOf = (nodeId: string): readonly RenderNode[] => {\n    const node = nodesById.get(nodeId);\n    if (!node) throw new Error(`Unknown render node: ${nodeId}`);\n    return Object.freeze(node.children.map((childId) => nodesById.get(childId)!));\n  };\n  const ancestorsOf = (nodeId: string): readonly RenderNode[] => {\n    let node = nodesById.get(nodeId);\n    if (!node) throw new Error(`Unknown render node: ${nodeId}`);\n    const ancestors: RenderNode[] = [];\n    while (node.parentNodeId !== undefined) {\n      node = nodesById.get(node.parentNodeId)!;\n      ancestors.push(node);\n    }\n    return Object.freeze(ancestors);\n  };\n\n  return Object.freeze({\n    tree,\n    root,\n    nodesById,\n    traversal: Object.freeze(traversal),\n    childrenOf,\n    ancestorsOf,\n  });\n};\n","import { NavigationRuntimeBundleSchema, type NavigationRuntimeBundle } from '../contracts/declarative-control';\nimport { canonicalContentHash, sameStableRef } from './declarative-control-compiler';\n\nexport const NAVIGATION_UNAVAILABLE_CAPABILITY_HEADER = 'x-monkeys-navigation-capabilities';\nexport const NAVIGATION_UNAVAILABLE_CAPABILITY = 'unavailable-pages-v1';\n\n/** Old strict readers receive only representable nodes, never a fabricated route. */\nexport function projectNavigationCompatibility(bundle: NavigationRuntimeBundle, supportsUnavailable: boolean): NavigationRuntimeBundle {\n  if (supportsUnavailable || !bundle.nodes.some((node) => node.kind === 'target' && node.resolvedTarget.kind === 'unavailable')) return bundle;\n  const { contentHash: _hash, ...unsigned } = bundle;\n  const nodes = bundle.nodes.filter((node) => node.kind !== 'target' || node.resolvedTarget.kind !== 'unavailable');\n  return NavigationRuntimeBundleSchema.parse({ ...unsigned, nodes, contentHash: canonicalContentHash({ ...unsigned, nodes }) });\n}\n\n/** Project Page links against a complete, tenant-authorized current target catalog. */\nexport function projectCurrentNavigationPages(\n  source: NavigationRuntimeBundle,\n  navigation: import('../contracts/declarative-control').Navigation,\n  targets: readonly import('./declarative-control-compiler').NavigationTargetRegistration[],\n): NavigationRuntimeBundle {\n  const currentTargets = new Map(targets.map(target => [canonicalContentHash(target.stableTargetRef), target]));\n  if (currentTargets.size !== targets.length) throw new TypeError('DECLARATIVE_TARGET_CATALOG_INVALID');\n  const authored = new Map(navigation.nodes.map(node => [node.nodeId, node]));\n  const nodes = source.nodes.map(node => {\n    if (node.kind !== 'target' || node.targetRef.kind !== 'page') return node;\n    const original = authored.get(node.nodeId);\n    if (original?.kind !== 'target' || canonicalContentHash(original.targetRef) !== canonicalContentHash(node.targetRef)) {\n      throw new TypeError('DECLARATIVE_TARGET_IDENTITY_MISMATCH');\n    }\n    const current = currentTargets.get(canonicalContentHash(node.targetRef));\n    if (current && (!sameStableRef(current.stableTargetRef, current.targetRevisionRef) || current.kind !== 'route' || current.surface !== source.surface || current.routeClaim.surface !== source.surface)) {\n      throw new TypeError('DECLARATIVE_TARGET_CATALOG_INVALID');\n    }\n    if (!current || current.kind !== 'route' || !current.routeClaim.matcher.parameters.filter(parameter => current.routeClaim.normalizedPath.split('/').includes(`:${parameter.name}`)).every(parameter => {\n      if (!parameter.required) return true;\n      const binding = original.parameterMapping[parameter.name];\n      return binding?.kind === 'constant' && (typeof binding.value === 'string' || typeof binding.value === 'number') && String(binding.value).length > 0;\n    })) {\n      return { ...node, disabled: true, parameterMapping: {}, resolvedTarget: {\n        kind: 'unavailable' as const, nodeId: node.nodeId, stableTargetRef: node.targetRef, accessPolicy: null,\n      } };\n    }\n    return { ...node, disabled: original.disabled, parameterMapping: original.parameterMapping, resolvedTarget: {\n      kind: 'route' as const, nodeId: node.nodeId, stableTargetRef: current.stableTargetRef,\n      targetRevisionRef: current.targetRevisionRef,\n      ...(current.releaseRevisionRef ? { releaseRevisionRef: current.releaseRevisionRef } : {}),\n      accessPolicy: current.accessPolicy, routeClaim: current.routeClaim,\n    } };\n  });\n  const { contentHash: _hash, ...unsigned } = source;\n  return NavigationRuntimeBundleSchema.parse({ ...unsigned, nodes, contentHash: canonicalContentHash({ ...unsigned, nodes }) });\n}\n","import { ContractIdentifierSchema, type JsonObject } from '../contracts/common';\nimport {\n  CompiledMenuItemNodeSchema,\n  CompiledMenuProjectionSchema,\n  MENU_ACTIVATION_QUERY_PARAMETER,\n  MENU_CONTRACT_VERSION,\n  MenuActionRegistrationSchema,\n  MenuAccessRequirementSchema,\n  MenuBoundedInputSchema,\n  MenuContributionProviderRegistrationSchema,\n  MenuDefinitionSchema,\n  MenuPageRefSchema,\n  MenuPageRegistrationSchema,\n  MenuRuntimeBundleSchema,\n  type CompiledMenuItemNode,\n  type CompiledMenuNode,\n  type CompiledMenuProjection,\n  type MenuAccessRequirement,\n  type MenuActionRegistration,\n  type MenuContributionProviderRegistration,\n  type MenuDefinition,\n  type MenuItemNode,\n  type MenuNavigationTarget,\n  type MenuPageRef,\n  type MenuPageRegistration,\n  type MenuRuntimeBundle,\n  type MenuRuntimeInputBinding,\n} from '../contracts/menu';\n\nexport type MenuCompilationErrorCode =\n  | 'duplicate-definition'\n  | 'duplicate-registration'\n  | 'unsupported-surface'\n  | 'invalid-page-application'\n  | 'unknown-page'\n  | 'unknown-action'\n  | 'unknown-contribution-provider'\n  | 'unsupported-contribution-surface'\n  | 'unknown-permission'\n  | 'missing-input-schema'\n  | 'unknown-input-schema'\n  | 'invalid-input'\n  | 'conflicting-navigation-target';\n\nexport class MenuCompilationError extends Error {\n  readonly code: MenuCompilationErrorCode;\n  readonly path: string;\n\n  constructor(code: MenuCompilationErrorCode, path: string, message: string) {\n    super(`${path}: ${message}`);\n    this.name = 'MenuCompilationError';\n    this.code = code;\n    this.path = path;\n  }\n}\n\nexport type MenuInputValidator = (value: JsonObject) => unknown;\n\nexport interface CompileMenuRuntimeBundleInput {\n  applicationId: string;\n  supportedSurfaces: readonly string[];\n  sourceVersion: string;\n  definitions: readonly MenuDefinition[];\n  pages: readonly MenuPageRegistration[];\n  actions: readonly MenuActionRegistration[];\n  contributionProviders: readonly MenuContributionProviderRegistration[];\n  permissionCodes: readonly string[];\n  inputValidators?: ReadonlyMap<string, MenuInputValidator>;\n  sourceMap?: Readonly<Record<string, string>>;\n  /** Enable isolation only after successfully loading complete catalogs for these applications. */\n  missingPagePolicy?: {\n    completeApplicationIds: readonly string[];\n    /** Explicit restricted audience when the removed target's original policy is unavailable. */\n    unavailableAccess: MenuAccessRequirement;\n  };\n}\n\nexport interface MenuCompilationDiagnostic {\n  code: 'missing-page';\n  severity: 'warning';\n  applicationId: string;\n  surface: string;\n  menuId: string;\n  nodeId: string;\n  page: MenuPageRef;\n  path: string;\n}\n\nexport interface MenuAccessContext {\n  sessionResolved: boolean;\n  authenticated: boolean;\n  permissionCodes: readonly string[];\n  featureFlags: Readonly<Record<string, boolean>>;\n}\n\nexport type MenuAccessDenialReason =\n  | 'session-unresolved'\n  | 'authentication'\n  | 'permission-all'\n  | 'permission-any'\n  | 'required-permission'\n  | 'feature-flag';\n\nexport interface MenuAccessDecision {\n  allowed: boolean;\n  reasons: readonly MenuAccessDenialReason[];\n}\n\nexport type MenuNavigationResolution =\n  | { status: 'resolved'; target: MenuNavigationTarget }\n  | { status: 'unmatched' }\n  | { status: 'invalid'; reason: 'invalid-activation' | 'unknown-activation' | 'page-mismatch' };\n\nexport interface CompiledMenuRuntimeBundle {\n  document: MenuRuntimeBundle;\n  /** Authoring diagnostics; never included in the ordinary menu document. */\n  diagnostics: readonly MenuCompilationDiagnostic[];\n  menusByKey: ReadonlyMap<string, CompiledMenuProjection>;\n  navigationTargetsByKey: ReadonlyMap<string, MenuNavigationTarget>;\n  serverInputByTargetKey: ReadonlyMap<string, JsonObject>;\n  /** Evaluates visibility/access only. Callers must separately block dispatch when `item.disabled === true`. */\n  evaluateItemAccess(item: CompiledMenuItemNode, context: MenuAccessContext): MenuAccessDecision;\n  /** Resolves route identity and input; it does not authorize interaction with a disabled placement. */\n  resolveNavigationTarget(page: MenuPageRef, explicitActivationId?: string): MenuNavigationResolution;\n  selectedNodeIds(menu: CompiledMenuProjection, page: MenuPageRef, activationId?: string): ReadonlySet<string>;\n}\n\nconst menuKey = (applicationId: string, surface: string, menuId: string) =>\n  `${applicationId}\\u0000${surface}\\u0000${menuId}`;\n\nconst pageKey = (page: MenuPageRef) => `${page.applicationId}\\u0000${page.pageId}`;\nconst targetKey = (page: MenuPageRef, activationId: string) =>\n  `${page.applicationId}\\u0000${page.pageId}\\u0000${activationId}`;\nconst actionKey = (applicationId: string, actionRef: string) => `${applicationId}\\u0000${actionRef}`;\nconst providerKey = (applicationId: string, providerId: string) => `${applicationId}\\u0000${providerId}`;\n\nconst stableSerialize = (value: unknown): string => {\n  if (value === undefined) return 'null';\n  if (value === null || typeof value !== 'object') return JSON.stringify(value) ?? 'null';\n  if (Array.isArray(value)) return `[${value.map((item) => stableSerialize(item)).join(',')}]`;\n  const record = value as Record<string, unknown>;\n  return `{${Object.keys(record)\n    .filter((key) => record[key] !== undefined)\n    .sort()\n    .map((key) => `${JSON.stringify(key)}:${stableSerialize(record[key])}`)\n    .join(',')}}`;\n};\n\nconst deepFreeze = <T>(value: T): T => {\n  if (value === null || typeof value !== 'object' || Object.isFrozen(value)) return value;\n  Object.values(value as Record<string, unknown>).forEach((child) => deepFreeze(child));\n  return Object.freeze(value);\n};\n\nconst SHA256_INITIAL = [\n  0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n  0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n];\n\nconst SHA256_ROUND = [\n  0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n  0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n  0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n  0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n  0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n  0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n];\n\nconst rotateRight = (value: number, amount: number) => (value >>> amount) | (value << (32 - amount));\n\nconst sha256Hex = (value: string): string => {\n  const source = [...new TextEncoder().encode(value)];\n  const bitLength = source.length * 8;\n  source.push(0x80);\n  while (source.length % 64 !== 56) source.push(0);\n  const high = Math.floor(bitLength / 0x1_0000_0000);\n  const low = bitLength >>> 0;\n  for (let shift = 24; shift >= 0; shift -= 8) source.push((high >>> shift) & 0xff);\n  for (let shift = 24; shift >= 0; shift -= 8) source.push((low >>> shift) & 0xff);\n\n  const hash = [...SHA256_INITIAL];\n  const words = new Array<number>(64).fill(0);\n  for (let offset = 0; offset < source.length; offset += 64) {\n    for (let index = 0; index < 16; index += 1) {\n      const start = offset + index * 4;\n      words[index] = (\n        (source[start] << 24)\n        | (source[start + 1] << 16)\n        | (source[start + 2] << 8)\n        | source[start + 3]\n      ) >>> 0;\n    }\n    for (let index = 16; index < 64; index += 1) {\n      const previous = words[index - 15];\n      const recent = words[index - 2];\n      const small0 = rotateRight(previous, 7) ^ rotateRight(previous, 18) ^ (previous >>> 3);\n      const small1 = rotateRight(recent, 17) ^ rotateRight(recent, 19) ^ (recent >>> 10);\n      words[index] = (words[index - 16] + small0 + words[index - 7] + small1) >>> 0;\n    }\n\n    let [a, b, c, d, e, f, g, h] = hash;\n    for (let index = 0; index < 64; index += 1) {\n      const big1 = rotateRight(e, 6) ^ rotateRight(e, 11) ^ rotateRight(e, 25);\n      const choice = (e & f) ^ (~e & g);\n      const temp1 = (h + big1 + choice + SHA256_ROUND[index] + words[index]) >>> 0;\n      const big0 = rotateRight(a, 2) ^ rotateRight(a, 13) ^ rotateRight(a, 22);\n      const majority = (a & b) ^ (a & c) ^ (b & c);\n      const temp2 = (big0 + majority) >>> 0;\n      h = g;\n      g = f;\n      f = e;\n      e = (d + temp1) >>> 0;\n      d = c;\n      c = b;\n      b = a;\n      a = (temp1 + temp2) >>> 0;\n    }\n    hash[0] = (hash[0] + a) >>> 0;\n    hash[1] = (hash[1] + b) >>> 0;\n    hash[2] = (hash[2] + c) >>> 0;\n    hash[3] = (hash[3] + d) >>> 0;\n    hash[4] = (hash[4] + e) >>> 0;\n    hash[5] = (hash[5] + f) >>> 0;\n    hash[6] = (hash[6] + g) >>> 0;\n    hash[7] = (hash[7] + h) >>> 0;\n  }\n  return hash.map((part) => part.toString(16).padStart(8, '0')).join('');\n};\n\nconst uniqueIndex = <T>(\n  values: readonly T[],\n  key: (value: T) => string,\n  path: string,\n): ReadonlyMap<string, T> => {\n  const result = new Map<string, T>();\n  values.forEach((value, index) => {\n    const identity = key(value);\n    if (result.has(identity)) {\n      throw new MenuCompilationError(\n        'duplicate-registration',\n        `${path}[${index}]`,\n        `Duplicate registry identity: ${identity.split('\\u0000').join('/')}`,\n      );\n    }\n    result.set(identity, value);\n  });\n  return result;\n};\n\nconst normalizedSiblingOrder = <T extends { order: number; nodeId: string }>(left: T, right: T) =>\n  left.order - right.order || left.nodeId.localeCompare(right.nodeId);\n\nconst normalizeNodeOrder = (nodes: readonly CompiledMenuNode[]): CompiledMenuNode[] => {\n  const childrenByParent = new Map<string, CompiledMenuNode[]>();\n  nodes.forEach((node) => {\n    const parent = node.parentNodeId ?? '';\n    const children = childrenByParent.get(parent) ?? [];\n    children.push(node);\n    childrenByParent.set(parent, children);\n  });\n  childrenByParent.forEach((children) => children.sort(normalizedSiblingOrder));\n\n  const ordered: CompiledMenuNode[] = [];\n  const appendChildren = (parentNodeId: string) => {\n    for (const node of childrenByParent.get(parentNodeId) ?? []) {\n      ordered.push(node);\n      appendChildren(node.nodeId);\n    }\n  };\n  appendChildren('');\n  return ordered;\n};\n\nconst requirementFromPage = (registration: MenuPageRegistration): MenuAccessRequirement => ({\n  authenticated: registration.page.visibility.authenticated,\n  permissionAllOf: registration.page.visibility.permissionAllOf,\n  permissionAnyOf: registration.page.visibility.permissionAnyOf,\n  featureFlags: registration.page.visibility.featureFlags,\n});\n\nconst validatePermissionCodes = (\n  permissions: readonly string[],\n  knownPermissions: ReadonlySet<string>,\n  path: string,\n) => {\n  permissions.forEach((permission, index) => {\n    if (!knownPermissions.has(permission)) {\n      throw new MenuCompilationError(\n        'unknown-permission',\n        `${path}[${index}]`,\n        `Unknown platform permission: ${permission}`,\n      );\n    }\n  });\n};\n\nconst validateInput = (\n  value: JsonObject,\n  schemaRef: string | undefined,\n  validators: ReadonlyMap<string, MenuInputValidator>,\n  path: string,\n): JsonObject => {\n  if (!schemaRef) {\n    throw new MenuCompilationError(\n      'missing-input-schema',\n      path,\n      'Input is configured but the target has no input schema reference.',\n    );\n  }\n  const validator = validators.get(schemaRef);\n  if (!validator) {\n    throw new MenuCompilationError(\n      'unknown-input-schema',\n      path,\n      `No input validator is registered for ${schemaRef}.`,\n    );\n  }\n  try {\n    return MenuBoundedInputSchema.parse(validator(value));\n  } catch (error) {\n    const message = error instanceof Error ? error.message : String(error);\n    throw new MenuCompilationError('invalid-input', path, `Input validation failed for ${schemaRef}: ${message}`);\n  }\n};\n\nconst evaluateAccess = (item: CompiledMenuItemNode, context: MenuAccessContext): MenuAccessDecision => {\n  const reasons: MenuAccessDenialReason[] = [];\n  const protectedBySession = item.access.authenticated\n    || item.access.permissionAllOf.length > 0\n    || item.access.permissionAnyOf.length > 0\n    || item.access.requiredPermission !== undefined;\n  if (!context.sessionResolved && protectedBySession) reasons.push('session-unresolved');\n  if (item.access.authenticated && !context.authenticated) reasons.push('authentication');\n\n  const granted = new Set(context.permissionCodes);\n  if (item.access.permissionAllOf.some((permission) => !granted.has(permission))) {\n    reasons.push('permission-all');\n  }\n  if (\n    item.access.permissionAnyOf.length > 0\n    && !item.access.permissionAnyOf.some((permission) => granted.has(permission))\n  ) {\n    reasons.push('permission-any');\n  }\n  if (item.access.requiredPermission && !granted.has(item.access.requiredPermission)) {\n    reasons.push('required-permission');\n  }\n  if (item.access.featureFlags.some((flag) => context.featureFlags[flag] !== true)) {\n    reasons.push('feature-flag');\n  }\n  return Object.freeze({ allowed: reasons.length === 0, reasons: Object.freeze(reasons) });\n};\n\nexport const resolveMenuActivationId = (page: MenuPageRef, activationId?: string): string =>\n  activationId ?? page.pageId;\n\nexport const readMenuActivationFromSearch = (search: string | URLSearchParams): string | undefined => {\n  const params = typeof search === 'string' ? new URLSearchParams(search) : search;\n  const value = params.get(MENU_ACTIVATION_QUERY_PARAMETER)?.trim();\n  return value || undefined;\n};\n\nexport const serializeMenuActivationSearch = (\n  search: string | URLSearchParams,\n  page: MenuPageRef,\n  activationId?: string,\n): string => {\n  const params = new URLSearchParams(typeof search === 'string' ? search : search.toString());\n  const effectiveActivationId = resolveMenuActivationId(page, activationId);\n  if (effectiveActivationId === page.pageId) params.delete(MENU_ACTIVATION_QUERY_PARAMETER);\n  else params.set(MENU_ACTIVATION_QUERY_PARAMETER, effectiveActivationId);\n  return params.toString();\n};\n\nexport const isCompiledMenuItemSelected = (\n  item: CompiledMenuItemNode,\n  page: MenuPageRef,\n  activationId?: string,\n): boolean => item.behavior.kind === 'navigate'\n  && pageKey(item.behavior.page) === pageKey(page)\n  && item.behavior.activationId === resolveMenuActivationId(page, activationId);\n\n/** Compiles source definitions into one browser-safe application bundle and a server-only input index. */\nexport const compileMenuRuntimeBundle = (\n  input: CompileMenuRuntimeBundleInput,\n): CompiledMenuRuntimeBundle => {\n  const applicationId = ContractIdentifierSchema.parse(input.applicationId);\n  const supportedSurfaces = new Set(input.supportedSurfaces.map((surface) => ContractIdentifierSchema.parse(surface)));\n  const definitions = input.definitions.map((definition) => MenuDefinitionSchema.parse(definition));\n  const pages = input.pages.map((registration) => MenuPageRegistrationSchema.parse(registration));\n  const actions = input.actions.map((registration) => MenuActionRegistrationSchema.parse(registration));\n  const contributionProviders = input.contributionProviders.map((registration) =>\n    MenuContributionProviderRegistrationSchema.parse(registration));\n  const inputValidators = input.inputValidators ?? new Map<string, MenuInputValidator>();\n  const knownPermissions = new Set(input.permissionCodes.map((permission) => ContractIdentifierSchema.parse(permission)));\n  const completeApplications = new Set(input.missingPagePolicy?.completeApplicationIds.map((id) => ContractIdentifierSchema.parse(id)) ?? []);\n  const unavailableAccess = input.missingPagePolicy\n    ? MenuAccessRequirementSchema.parse(input.missingPagePolicy.unavailableAccess)\n    : undefined;\n  if (unavailableAccess) {\n    validatePermissionCodes(unavailableAccess.permissionAllOf, knownPermissions, 'missingPagePolicy.unavailableAccess.permissionAllOf');\n    validatePermissionCodes(unavailableAccess.permissionAnyOf, knownPermissions, 'missingPagePolicy.unavailableAccess.permissionAnyOf');\n  }\n  const diagnostics: MenuCompilationDiagnostic[] = [];\n  pages.forEach((registration, index) => {\n    if (!registration.page.visibility.productContexts.some((context) => context === registration.applicationId)) {\n      throw new MenuCompilationError(\n        'invalid-page-application',\n        `pages[${index}].applicationId`,\n        `Page ${registration.page.pageId} is not visible in ${registration.applicationId}.`,\n      );\n    }\n  });\n  const pagesByKey = uniqueIndex(pages, (registration) => pageKey({\n    applicationId: registration.applicationId,\n    pageId: registration.page.pageId,\n  }), 'pages');\n  const actionsByKey = uniqueIndex(actions, (registration) => actionKey(\n    registration.applicationId,\n    registration.actionRef,\n  ), 'actions');\n  const providersByKey = uniqueIndex(contributionProviders, (registration) => providerKey(\n    registration.applicationId,\n    registration.providerId,\n  ), 'contributionProviders');\n\n  const definitionsByKey = new Map<string, MenuDefinition>();\n  definitions.forEach((definition, index) => {\n    const identity = menuKey(definition.applicationId, definition.surface, definition.menuId);\n    if (definitionsByKey.has(identity)) {\n      throw new MenuCompilationError(\n        'duplicate-definition',\n        `definitions[${index}]`,\n        `Duplicate menu definition: ${definition.applicationId}/${definition.surface}/${definition.menuId}`,\n      );\n    }\n    definitionsByKey.set(identity, definition);\n  });\n\n  const targetSourceSignatures = new Map<string, string>();\n  const navigationTargetsByKey = new Map<string, MenuNavigationTarget>();\n  const serverInputByTargetKey = new Map<string, JsonObject>();\n  const requestedTargetKeys = new Set<string>();\n  const requestedMenus: CompiledMenuProjection[] = [];\n\n  definitions.forEach((definition, definitionIndex) => {\n    if (definition.applicationId === applicationId && !supportedSurfaces.has(definition.surface)) {\n      throw new MenuCompilationError(\n        'unsupported-surface',\n        `definitions[${definitionIndex}].surface`,\n        `Application ${applicationId} does not support menu surface ${definition.surface}.`,\n      );\n    }\n    const compiledNodes: CompiledMenuNode[] = definition.nodes.map((node, nodeIndex) => {\n      if (node.kind === 'divider') return node;\n      if (node.kind === 'group') {\n        const { disabled, ...presentation } = node;\n        return disabled === true ? { ...presentation, disabled } : presentation;\n      }\n      const nodePath = `definitions[${definitionIndex}].nodes[${nodeIndex}]`;\n      if (node.requiredPermission && !knownPermissions.has(node.requiredPermission)) {\n        throw new MenuCompilationError(\n          'unknown-permission',\n          `${nodePath}.requiredPermission`,\n          `Unknown platform permission: ${node.requiredPermission}`,\n        );\n      }\n\n      let access: MenuAccessRequirement;\n      if (node.behavior.kind === 'navigate') {\n        const registration = pagesByKey.get(pageKey(node.behavior.page));\n        if (!registration) {\n          if (unavailableAccess && completeApplications.has(node.behavior.page.applicationId)) {\n            const activationId = resolveMenuActivationId(node.behavior.page, node.behavior.activationId);\n            const identity = targetKey(node.behavior.page, activationId);\n            const signature = stableSerialize({ ...node.behavior, activationId });\n            const previous = targetSourceSignatures.get(identity);\n            if (previous !== undefined && previous !== signature) {\n              throw new MenuCompilationError('conflicting-navigation-target', `${nodePath}.behavior`, 'Missing navigation target has conflicting behavior or input.');\n            }\n            targetSourceSignatures.set(identity, signature);\n            if (definition.applicationId === applicationId) {\n              diagnostics.push({\n                code: 'missing-page', severity: 'warning', applicationId: definition.applicationId,\n                surface: definition.surface, menuId: definition.menuId, nodeId: node.nodeId,\n                page: node.behavior.page, path: `${nodePath}.behavior.page`,\n              });\n            }\n            const { requiredPermission, behavior: _behavior, ...presentation } = node;\n            return CompiledMenuItemNodeSchema.parse({\n              ...presentation,\n              disabled: true,\n              behavior: { kind: 'navigate', page: node.behavior.page, activationId },\n              access: { ...unavailableAccess, requiredPermission },\n            });\n          }\n          throw new MenuCompilationError(\n            'unknown-page',\n            `${nodePath}.behavior.page`,\n            `Unknown page reference: ${node.behavior.page.applicationId}/${node.behavior.page.pageId}`,\n          );\n        }\n        access = requirementFromPage(registration);\n        validatePermissionCodes(access.permissionAllOf, knownPermissions, `${nodePath}.targetAccess.permissionAllOf`);\n        validatePermissionCodes(access.permissionAnyOf, knownPermissions, `${nodePath}.targetAccess.permissionAnyOf`);\n\n        const activationId = resolveMenuActivationId(node.behavior.page, node.behavior.activationId);\n        const identity = targetKey(node.behavior.page, activationId);\n        let runtimeInput: MenuRuntimeInputBinding | undefined;\n        let normalizedSourceInput: unknown;\n        if (node.behavior.input) {\n          const normalized = validateInput(\n            node.behavior.input.value,\n            registration.page.input?.schemaRef,\n            inputValidators,\n            `${nodePath}.behavior.input.value`,\n          );\n          normalizedSourceInput = { exposure: node.behavior.input.exposure, value: normalized };\n          runtimeInput = node.behavior.input.exposure === 'client'\n            ? { exposure: 'client', value: normalized }\n            : { exposure: 'server' };\n          if (node.behavior.input.exposure === 'server' && definition.applicationId === applicationId) {\n            serverInputByTargetKey.set(identity, deepFreeze(normalized));\n          }\n        }\n        const signature = stableSerialize({\n          kind: 'navigate',\n          page: node.behavior.page,\n          activationId,\n          input: normalizedSourceInput,\n        });\n        const existingSignature = targetSourceSignatures.get(identity);\n        if (existingSignature !== undefined && existingSignature !== signature) {\n          throw new MenuCompilationError(\n            'conflicting-navigation-target',\n            `${nodePath}.behavior`,\n            `Navigation target ${node.behavior.page.applicationId}/${node.behavior.page.pageId}/${activationId} has conflicting behavior or input.`,\n          );\n        }\n        targetSourceSignatures.set(identity, signature);\n        if (!navigationTargetsByKey.has(identity)) {\n          navigationTargetsByKey.set(identity, {\n            page: node.behavior.page,\n            activationId,\n            input: runtimeInput,\n          });\n        }\n        if (definition.applicationId === applicationId) requestedTargetKeys.add(identity);\n\n        const {\n          requiredPermission,\n          behavior: _behavior,\n          disabled,\n          ...presentation\n        } = node;\n        return CompiledMenuItemNodeSchema.parse({\n          ...presentation,\n          ...(disabled === true ? { disabled } : {}),\n          behavior: {\n            kind: 'navigate',\n            page: node.behavior.page,\n            activationId,\n            input: runtimeInput,\n          },\n          access: { ...access, requiredPermission },\n        });\n      }\n\n      const action = actionsByKey.get(actionKey(definition.applicationId, node.behavior.actionRef));\n      if (!action) {\n        throw new MenuCompilationError(\n          'unknown-action',\n          `${nodePath}.behavior.actionRef`,\n          `Unknown action reference for ${definition.applicationId}: ${node.behavior.actionRef}`,\n        );\n      }\n      access = action.access;\n      validatePermissionCodes(access.permissionAllOf, knownPermissions, `${nodePath}.targetAccess.permissionAllOf`);\n      validatePermissionCodes(access.permissionAnyOf, knownPermissions, `${nodePath}.targetAccess.permissionAnyOf`);\n      const actionInput = node.behavior.input\n        ? validateInput(node.behavior.input, action.inputSchemaRef, inputValidators, `${nodePath}.behavior.input`)\n        : undefined;\n      const {\n        requiredPermission,\n        behavior: _behavior,\n        disabled,\n        ...presentation\n      } = node;\n      return CompiledMenuItemNodeSchema.parse({\n        ...presentation,\n        ...(disabled === true ? { disabled } : {}),\n        behavior: { kind: 'action', actionRef: node.behavior.actionRef, input: actionInput },\n        access: { ...access, requiredPermission },\n      });\n    });\n\n    definition.contributions.forEach((contribution, contributionIndex) => {\n      const provider = providersByKey.get(providerKey(definition.applicationId, contribution.providerId));\n      const path = `definitions[${definitionIndex}].contributions[${contributionIndex}].providerId`;\n      if (!provider) {\n        throw new MenuCompilationError(\n          'unknown-contribution-provider',\n          path,\n          `Unknown contribution provider for ${definition.applicationId}: ${contribution.providerId}`,\n        );\n      }\n      if (provider.surfaces && !provider.surfaces.includes(definition.surface)) {\n        throw new MenuCompilationError(\n          'unsupported-contribution-surface',\n          path,\n          `Provider ${contribution.providerId} does not support surface ${definition.surface}.`,\n        );\n      }\n    });\n\n    if (definition.applicationId !== applicationId) return;\n    requestedMenus.push(CompiledMenuProjectionSchema.parse({\n      applicationId: definition.applicationId,\n      surface: definition.surface,\n      menuId: definition.menuId,\n      nodes: normalizeNodeOrder(compiledNodes),\n      contributions: [...definition.contributions].sort((left, right) =>\n        (left.parentNodeId ?? '').localeCompare(right.parentNodeId ?? '')\n        || left.order - right.order\n        || left.providerId.localeCompare(right.providerId)),\n    }));\n  });\n\n  const menus = requestedMenus.sort((left, right) =>\n    left.surface.localeCompare(right.surface) || left.menuId.localeCompare(right.menuId));\n  const navigationTargets = [...requestedTargetKeys]\n    .map((identity) => navigationTargetsByKey.get(identity))\n    .filter((target): target is MenuNavigationTarget => target !== undefined)\n    .sort((left, right) =>\n      left.page.applicationId.localeCompare(right.page.applicationId)\n      || left.page.pageId.localeCompare(right.page.pageId)\n      || left.activationId.localeCompare(right.activationId));\n  const unsignedDocument = {\n    contract: 'MenuRuntimeBundle' as const,\n    version: MENU_CONTRACT_VERSION,\n    applicationId,\n    sourceVersion: input.sourceVersion,\n    menus,\n    navigationTargets,\n    sourceMap: Object.fromEntries(\n      Object.entries(input.sourceMap ?? {}).sort(([left], [right]) => left.localeCompare(right)),\n    ),\n  };\n  const document = MenuRuntimeBundleSchema.parse({\n    ...unsignedDocument,\n    contentHash: sha256Hex(stableSerialize(unsignedDocument)),\n  });\n  const menusByKey = new Map(document.menus.map((menu) => [\n    menuKey(menu.applicationId, menu.surface, menu.menuId),\n    menu,\n  ]));\n  const documentTargetsByKey = new Map(document.navigationTargets.map((target) => [\n    targetKey(target.page, target.activationId),\n    target,\n  ]));\n\n  const resolveNavigationTarget = (page: MenuPageRef, explicitActivationId?: string): MenuNavigationResolution => {\n    const parsedPage = MenuPageRefSchema.parse(page);\n    if (explicitActivationId !== undefined) {\n      const parsedActivation = ContractIdentifierSchema.safeParse(explicitActivationId);\n      if (!parsedActivation.success) return Object.freeze({ status: 'invalid', reason: 'invalid-activation' });\n      const target = documentTargetsByKey.get(targetKey(parsedPage, parsedActivation.data));\n      if (target) return Object.freeze({ status: 'resolved', target });\n      const sameActivation = document.navigationTargets.find((candidate) =>\n        candidate.page.applicationId === parsedPage.applicationId\n        && candidate.activationId === parsedActivation.data);\n      return Object.freeze({\n        status: 'invalid',\n        reason: sameActivation ? 'page-mismatch' : 'unknown-activation',\n      });\n    }\n    const target = documentTargetsByKey.get(targetKey(parsedPage, parsedPage.pageId));\n    return target\n      ? Object.freeze({ status: 'resolved', target })\n      : Object.freeze({ status: 'unmatched' });\n  };\n\n  return Object.freeze({\n    document: deepFreeze(document),\n    diagnostics: deepFreeze(diagnostics),\n    menusByKey,\n    navigationTargetsByKey: documentTargetsByKey,\n    serverInputByTargetKey,\n    evaluateItemAccess: evaluateAccess,\n    resolveNavigationTarget,\n    selectedNodeIds(menu: CompiledMenuProjection, page: MenuPageRef, activationId?: string) {\n      if (menu.applicationId !== document.applicationId) return new Set<string>();\n      const nodesById = new Map(menu.nodes.map((node) => [node.nodeId, node]));\n      const selected = new Set<string>();\n      for (const node of menu.nodes) {\n        if (node.kind !== 'item' || !isCompiledMenuItemSelected(node, page, activationId)) continue;\n        selected.add(node.nodeId);\n        let parentNodeId = node.parentNodeId;\n        while (parentNodeId) {\n          selected.add(parentNodeId);\n          parentNodeId = nodesById.get(parentNodeId)?.parentNodeId;\n        }\n      }\n      return selected;\n    },\n  });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport { CapabilityManifestSchema } from '../contracts/capability';\nimport { PageTypeSchema } from '../contracts/page';\nimport type { ProductContext, ViewProviderDescriptor } from '../contracts/render';\nimport { ViewProviderDescriptorSchema } from '../contracts/render';\n\nconst referenceVersion = (version: string | number | undefined): string | undefined =>\n  version === undefined ? undefined : String(version);\n\nconst sameStringSet = (left: readonly string[], right: readonly string[]): boolean => {\n  if (left.length !== right.length) return false;\n  const expected = new Set(left);\n  return right.every((value) => expected.has(value));\n};\n\nconst unique = <T>(values: readonly T[], key: (value: T) => string, label: string): ReadonlyMap<string, T> => {\n  const result = new Map<string, T>();\n  for (const value of values) {\n    const id = key(value);\n    if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n    result.set(id, value);\n  }\n  return result;\n};\n\nexport interface CompileViewProviderRegistryInput {\n  capabilities: readonly CapabilityManifest[];\n  providers: readonly ViewProviderDescriptor[];\n}\n\nexport interface CompiledViewProviderRegistry {\n  capabilities: readonly CapabilityManifest[];\n  providers: readonly ViewProviderDescriptor[];\n  capabilitiesById: ReadonlyMap<string, CapabilityManifest>;\n  providersById: ReadonlyMap<string, ViewProviderDescriptor>;\n  providersByRendererKey: ReadonlyMap<string, readonly ViewProviderDescriptor[]>;\n  requireCapability(capabilityId: string): CapabilityManifest;\n  requireProvider(providerId: string): ViewProviderDescriptor;\n  resolveProvider(capabilityId: string, product: ProductContext, preferredProviderId?: string): ViewProviderDescriptor;\n}\n\n/**\n * Compiles the canonical capability-to-provider graph independently of pages.\n * Nested views and component catalogs use this boundary so descriptor metadata\n * cannot drift away from the implementation registry that renders it.\n */\nexport const compileViewProviderRegistry = (\n  input: CompileViewProviderRegistryInput,\n): CompiledViewProviderRegistry => {\n  const capabilities = input.capabilities.map((capability) => CapabilityManifestSchema.parse(capability));\n  const providers = input.providers.map((provider) => ViewProviderDescriptorSchema.parse(provider));\n  const capabilitiesById = unique(capabilities, (capability) => capability.id, 'capability id');\n  const providersById = unique(providers, (provider) => provider.providerId, 'provider id');\n  const providersByRendererKeyMutable = new Map<string, ViewProviderDescriptor[]>();\n  for (const provider of providers) {\n    const values = providersByRendererKeyMutable.get(provider.rendererKey) ?? [];\n    values.push(provider);\n    providersByRendererKeyMutable.set(provider.rendererKey, values);\n  }\n  const providersByRendererKey = new Map(\n    Array.from(providersByRendererKeyMutable.entries()).map(([key, values]) => [key, Object.freeze(values)] as const),\n  );\n\n  unique(\n    providers,\n    (provider) => `${provider.rendererKey}:${provider.capabilityRef.id}`,\n    'renderer/capability provider binding',\n  );\n\n  for (const provider of providers) {\n    const capability = capabilitiesById.get(provider.capabilityRef.id);\n    if (!capability) {\n      throw new Error(`Provider ${provider.providerId} references unknown capability ${provider.capabilityRef.id}.`);\n    }\n    if (!['view', 'professional-provider'].includes(capability.kind)) {\n      throw new Error(`Provider ${provider.providerId} capability must be a view or professional-provider.`);\n    }\n    if (referenceVersion(provider.capabilityRef.version) !== capability.capabilityVersion) {\n      throw new Error(`Provider ${provider.providerId} references inactive capability version ${String(provider.capabilityRef.version)}.`);\n    }\n    if (provider.capabilityRef.ownerRepo !== capability.ownerRepo) {\n      throw new Error(`Provider ${provider.providerId} must reference capability owner ${capability.ownerRepo}.`);\n    }\n    const providerBindings = capability.runtime.providerBindings.filter((binding) => binding.providerRef.id === provider.providerId);\n    if (providerBindings.length !== 1) {\n      throw new Error(`Capability ${capability.id} must declare exactly one binding for provider ${provider.providerId}.`);\n    }\n    const providerRef = providerBindings[0].providerRef;\n    if (providerRef.kind !== 'view-provider' || providerRef.ownerRepo !== provider.ownerRepo || referenceVersion(providerRef.version) !== provider.providerVersion) {\n      throw new Error(`Capability ${capability.id} provider binding does not match ${provider.providerId}@${provider.providerVersion}.`);\n    }\n    if (provider.loading !== capability.runtime.loading || provider.stateOwner !== capability.runtime.stateOwner) {\n      throw new Error(`Provider ${provider.providerId} loading and state ownership must match capability ${capability.id}.`);\n    }\n    if (!sameStringSet(provider.sideEffects, capability.runtime.sideEffects)) {\n      throw new Error(`Provider ${provider.providerId} side effects must match capability ${capability.id}.`);\n    }\n    const renderModelPort = capability.ports.inputs.find((port) => port.schemaRef === provider.renderModelSchemaRef);\n    if (!renderModelPort?.required) {\n      throw new Error(`Provider ${provider.providerId} render model schema is not a required capability input.`);\n    }\n    if (provider.intentSchemaRef && !capability.ports.outputs.some((port) => port.schemaRef === provider.intentSchemaRef)) {\n      throw new Error(`Provider ${provider.providerId} intent schema is not declared by capability ${capability.id}.`);\n    }\n    if (provider.lifecycle.focusModel !== capability.accessibility.focusModel) {\n      throw new Error(`Provider ${provider.providerId} focus model must match capability ${capability.id}.`);\n    }\n    if (provider.supportedSurfaces.some((surface) => !capability.placement.surfaces.includes(surface))) {\n      throw new Error(`Provider ${provider.providerId} surfaces must be declared by capability ${capability.id}.`);\n    }\n    for (const pageType of provider.supportedPageTypes) {\n      if (!PageTypeSchema.safeParse(pageType).success) {\n        throw new Error(`Provider ${provider.providerId} declares unsupported page type ${pageType}.`);\n      }\n    }\n  }\n\n  for (const capability of capabilities) {\n    if (!['view', 'professional-provider'].includes(capability.kind)) continue;\n    for (const binding of capability.runtime.providerBindings) {\n      const providerRef = binding.providerRef;\n      if (providerRef.kind !== 'view-provider') throw new Error(`View capability ${capability.id} must resolve to view providers.`);\n      const provider = providersById.get(providerRef.id);\n      if (!provider || provider.capabilityRef.id !== capability.id) {\n        throw new Error(`View capability ${capability.id} references missing provider ${providerRef.id}.`);\n      }\n    }\n    for (const product of ['studio', 'kernel'] as const) {\n      const candidates = capability.runtime.providerBindings.filter((binding) => binding.productContexts.length === 0 || binding.productContexts.includes(product));\n      const priorities = candidates.map((binding) => binding.priority).sort((left, right) => right - left);\n      if (priorities.length > 1 && priorities[0] === priorities[1]) {\n        throw new Error(`Capability ${capability.id} has ambiguous provider bindings for ${product}.`);\n      }\n    }\n  }\n\n  const requireCapability = (capabilityId: string): CapabilityManifest => {\n    const capability = capabilitiesById.get(capabilityId);\n    if (!capability) throw new Error(`Unknown capability: ${capabilityId}`);\n    return capability;\n  };\n  const requireProvider = (providerId: string): ViewProviderDescriptor => {\n    const provider = providersById.get(providerId);\n    if (!provider) throw new Error(`Unknown view provider: ${providerId}`);\n    return provider;\n  };\n\n  return Object.freeze({\n    capabilities: Object.freeze(capabilities),\n    providers: Object.freeze(providers),\n    capabilitiesById,\n    providersById,\n    providersByRendererKey,\n    requireCapability,\n    requireProvider,\n    resolveProvider: (capabilityId: string, product: ProductContext, preferredProviderId?: string) => {\n      const capability = requireCapability(capabilityId);\n      const candidates = capability.runtime.providerBindings\n        .filter((binding) => binding.productContexts.length === 0 || binding.productContexts.includes(product))\n        .sort((left, right) => right.priority - left.priority || left.providerRef.id.localeCompare(right.providerRef.id));\n      if (preferredProviderId) {\n        const preferred = candidates.find((binding) => binding.providerRef.id === preferredProviderId);\n        if (!preferred) throw new Error(`Provider ${preferredProviderId} is not available for capability ${capabilityId} in ${product}.`);\n        return requireProvider(preferred.providerRef.id);\n      }\n      if (candidates.length === 0) throw new Error(`Capability ${capabilityId} has no provider for ${product}.`);\n      if (candidates.length > 1 && candidates[0].priority === candidates[1].priority) {\n        throw new Error(`Capability ${capabilityId} has ambiguous providers for ${product}.`);\n      }\n      return requireProvider(candidates[0].providerRef.id);\n    },\n  });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport type {\n  PageDefinition,\n  PageGuardProjection,\n  PageNavigationProjection,\n  PageRendererProjection,\n  PageRouteProjection,\n  PageRuntimeProjection,\n} from '../contracts/page';\nimport {\n  PageDefinitionSchema,\n  PageRuntimeProjectionSchema,\n} from '../contracts/page';\nimport type { ProductContext, ViewProviderDescriptor } from '../contracts/render';\nimport { compileViewProviderRegistry } from './view-provider-registry';\n\nconst escapeRegExp = (value: string) => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nconst routePattern = (path: string): RegExp => {\n  const parts = path.split('/').filter(Boolean);\n  const expression = parts.map((part, index) => {\n    if (part === '*') return index === parts.length - 1 ? '(?:/.*)?' : '/.*';\n    if (part.startsWith(':') || part.startsWith('$')) return '/[^/]+';\n    if (part.endsWith('*')) return `/${escapeRegExp(part.slice(0, -1))}.*`;\n    return `/${escapeRegExp(part)}`;\n  }).join('');\n  return new RegExp(`^${expression || '/'}\\/?$`);\n};\n\nconst routeSignature = (path: string): string => path\n  .split('/')\n  .map((part) => {\n    if (part === '*' || part.endsWith('*')) return '*';\n    if (part.startsWith(':') || part.startsWith('$')) return ':';\n    return part;\n  })\n  .join('/');\n\nconst routeSpecificity = (path: string): number => path.split('/').filter(Boolean).reduce((score, part) => {\n  if (part === '*' || part.endsWith('*')) return score;\n  if (part.startsWith(':') || part.startsWith('$')) return score + 1;\n  return score + 10;\n}, 0);\n\nconst unique = <T>(values: readonly T[], key: (value: T) => string, label: string): Map<string, T> => {\n  const result = new Map<string, T>();\n  for (const value of values) {\n    const id = key(value);\n    if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n    result.set(id, value);\n  }\n  return result;\n};\n\nconst referenceVersion = (version: string | number | undefined): string | undefined =>\n  version === undefined ? undefined : String(version);\n\nconst assertCapabilityReference = (\n  owner: string,\n  reference: PageDefinition['capabilityRef'],\n  capability: CapabilityManifest | undefined,\n) => {\n  if (!capability) throw new Error(`${owner} references unknown capability ${reference.id}.`);\n  if (referenceVersion(reference.version) !== capability.capabilityVersion) {\n    throw new Error(`${owner} references inactive capability version ${String(reference.version)} for ${reference.id}.`);\n  }\n  if (reference.ownerRepo !== capability.ownerRepo) {\n    throw new Error(`${owner} capability ${reference.id} owner must be ${capability.ownerRepo}.`);\n  }\n};\n\nexport interface PageAccessContext {\n  authenticated: boolean;\n  permissionCodes: readonly string[];\n  featureFlags: Readonly<Record<string, boolean>>;\n}\n\nexport interface PageAccessDecision {\n  allowed: boolean;\n  reasons: readonly (\n    | 'authentication'\n    | 'permission-all'\n    | 'permission-any'\n    | 'feature-flag'\n  )[];\n}\n\nexport interface CompilePageRuntimeProjectionInput {\n  product: ProductContext;\n  pages: readonly PageDefinition[];\n  capabilities: readonly CapabilityManifest[];\n  providers: readonly ViewProviderDescriptor[];\n}\n\nexport interface CompiledPageRuntimeProjection {\n  document: PageRuntimeProjection;\n  pagesById: ReadonlyMap<string, PageDefinition>;\n  providersById: ReadonlyMap<string, ViewProviderDescriptor>;\n  routesById: ReadonlyMap<string, PageRouteProjection>;\n  navigationByPageId: ReadonlyMap<string, PageNavigationProjection>;\n  guardsByPageId: ReadonlyMap<string, PageGuardProjection>;\n  renderersByPageId: ReadonlyMap<string, PageRendererProjection>;\n  evaluateAccess(pageId: string, context: PageAccessContext): PageAccessDecision;\n  visibleNavigation(context: PageAccessContext): readonly PageNavigationProjection[];\n  matchRoute(pathname: string): PageDefinition | undefined;\n  requireRoute(routeId: string): PageRouteProjection;\n  requireGuard(pageId: string): PageGuardProjection;\n  requireRenderer(pageId: string): PageRendererProjection;\n}\n\n/** Compiles route, navigation, guard and renderer tables from one canonical PageDefinition set. */\nexport const compilePageRuntimeProjection = (\n  input: CompilePageRuntimeProjectionInput,\n): CompiledPageRuntimeProjection => {\n  const pages = input.pages.map((page) => PageDefinitionSchema.parse(page));\n  const providerRegistry = compileViewProviderRegistry(input);\n  const capabilities = providerRegistry.capabilities;\n  const providers = providerRegistry.providers;\n  const pagesById = unique(pages, (page) => page.pageId, 'pageId');\n  unique(pages, (page) => page.routeId, 'routeId');\n  unique(pages, (page) => page.routePath, 'route path');\n  unique(pages, (page) => routeSignature(page.routePath), 'route pattern');\n  const capabilitiesById = providerRegistry.capabilitiesById;\n  const providersById = providerRegistry.providersById;\n\n  for (const page of pages) {\n    if (page.record.deleted) {\n      throw new Error(`Deleted page ${page.pageId} cannot be compiled into a runtime projection.`);\n    }\n    if (!page.visibility.productContexts.includes(input.product)) {\n      throw new Error(`Page ${page.pageId} is not visible in ${input.product}.`);\n    }\n    if (page.navigation.parentPageId && !pagesById.has(page.navigation.parentPageId)) {\n      throw new Error(`Page ${page.pageId} references unknown parent ${page.navigation.parentPageId}.`);\n    }\n    for (const reference of [page.capabilityRef, ...page.capabilityRefs]) {\n      assertCapabilityReference(`Page ${page.pageId}`, reference, capabilitiesById.get(reference.id));\n    }\n\n    const provider = providerRegistry.resolveProvider(page.capabilityRef.id, input.product);\n    if (provider.rendererKey !== page.rendererKey || provider.capabilityRef.id !== page.capabilityRef.id) {\n      throw new Error(`Page ${page.pageId} renderer ${page.rendererKey} does not match provider ${provider.providerId}.`);\n    }\n    if (!provider.supportedPageTypes.includes(page.pageType)) {\n      throw new Error(`Provider ${provider.providerId} does not support page type ${page.pageType}.`);\n    }\n    if (!provider.supportedSurfaces.includes(page.surface)) {\n      throw new Error(`Provider ${provider.providerId} does not support surface ${page.surface}.`);\n    }\n  }\n\n  for (const page of pages) {\n    const ancestors = new Set([page.pageId]);\n    let parent = page.navigation.parentPageId;\n    while (parent) {\n      if (ancestors.has(parent)) throw new Error(`Navigation cycle contains page ${page.pageId}.`);\n      ancestors.add(parent);\n      parent = pagesById.get(parent)?.navigation.parentPageId;\n    }\n  }\n\n  const routes = pages.map((page) => ({\n    pageId: page.pageId,\n    routeId: page.routeId,\n    path: page.routePath,\n  }));\n  const navigation = pages\n    .filter((page) => !page.navigation.hidden)\n    .map((page) => ({\n      pageId: page.pageId,\n      routeId: page.routeId,\n      path: page.routePath,\n      label: page.navigation.label,\n      iconRef: page.navigation.iconRef,\n      parentPageId: page.navigation.parentPageId,\n      order: page.navigation.order,\n      pinned: page.navigation.pinned,\n    }))\n    .sort((left, right) =>\n      (left.order ?? Number.MAX_SAFE_INTEGER) - (right.order ?? Number.MAX_SAFE_INTEGER)\n      || left.pageId.localeCompare(right.pageId));\n  const guards = pages.map((page) => ({\n    pageId: page.pageId,\n    authenticated: page.visibility.authenticated,\n    permissionAllOf: page.visibility.permissionAllOf,\n    permissionAnyOf: page.visibility.permissionAnyOf,\n    featureFlags: page.visibility.featureFlags,\n    actions: page.access.actions,\n  }));\n  const renderers = pages.map((page) => {\n    const provider = providerRegistry.resolveProvider(page.capabilityRef.id, input.product);\n    return {\n      pageId: page.pageId,\n      surface: page.surface,\n      rendererKey: page.rendererKey,\n      capabilityRef: page.capabilityRef,\n      capabilityRefs: page.capabilityRefs,\n      providerRef: {\n        kind: 'view-provider' as const,\n        id: provider.providerId,\n        version: provider.providerVersion,\n        ownerRepo: provider.ownerRepo,\n      },\n      binding: page.binding,\n      rendererConfig: page.rendererConfig,\n      workflowRef: page.workflowRef,\n    };\n  });\n  const document = PageRuntimeProjectionSchema.parse({\n    contract: 'PageRuntimeProjection',\n    product: input.product,\n    routes,\n    navigation,\n    guards,\n    renderers,\n  });\n  const routesById = unique(document.routes, (route) => route.routeId, 'projected routeId');\n  const navigationByPageId = unique(document.navigation, (item) => item.pageId, 'navigation pageId');\n  const guardsByPageId = unique(document.guards, (guard) => guard.pageId, 'guard pageId');\n  const renderersByPageId = unique(document.renderers, (renderer) => renderer.pageId, 'renderer pageId');\n  const matchers = pages\n    .map((page) => ({ page, pattern: routePattern(page.routePath), specificity: routeSpecificity(page.routePath) }))\n    .sort((left, right) => right.specificity - left.specificity || left.page.pageId.localeCompare(right.page.pageId));\n\n  const evaluateAccess = (pageId: string, context: PageAccessContext): PageAccessDecision => {\n    const guard = guardsByPageId.get(pageId);\n    if (!guard) throw new Error(`Unknown page guard: ${pageId}`);\n    const reasons: PageAccessDecision['reasons'][number][] = [];\n    if (guard.authenticated && !context.authenticated) reasons.push('authentication');\n    const permissions = new Set(context.permissionCodes);\n    if (guard.permissionAllOf.some((permission) => !permissions.has(permission))) {\n      reasons.push('permission-all');\n    }\n    if (guard.permissionAnyOf.length > 0 && !guard.permissionAnyOf.some((permission) => permissions.has(permission))) {\n      reasons.push('permission-any');\n    }\n    if (guard.featureFlags.some((flag) => context.featureFlags[flag] !== true)) reasons.push('feature-flag');\n    return Object.freeze({ allowed: reasons.length === 0, reasons: Object.freeze(reasons) });\n  };\n\n  return Object.freeze({\n    document: Object.freeze(document),\n    pagesById,\n    providersById,\n    routesById,\n    navigationByPageId,\n    guardsByPageId,\n    renderersByPageId,\n    evaluateAccess,\n    visibleNavigation(context: PageAccessContext) {\n      return Object.freeze(document.navigation.filter((item) => evaluateAccess(item.pageId, context).allowed));\n    },\n    matchRoute(pathname: string) {\n      const path = pathname.split('?')[0]?.split('#')[0] || '/';\n      return matchers.find((matcher) => matcher.pattern.test(path))?.page;\n    },\n    requireRoute(routeId: string) {\n      const route = routesById.get(routeId);\n      if (!route) throw new Error(`Unknown route: ${routeId}`);\n      return route;\n    },\n    requireGuard(pageId: string) {\n      const guard = guardsByPageId.get(pageId);\n      if (!guard) throw new Error(`Unknown page guard: ${pageId}`);\n      return guard;\n    },\n    requireRenderer(pageId: string) {\n      const renderer = renderersByPageId.get(pageId);\n      if (!renderer) throw new Error(`Unknown page renderer: ${pageId}`);\n      return renderer;\n    },\n  });\n};\n","import type { CapabilityManifest } from '../contracts/capability';\nimport type { PageRuntimeProjection } from '../contracts/page';\nimport type { PageDefinition } from '../contracts/page';\nimport type { ProductDeclaration } from '../contracts/semantic';\nimport type {\n  ApplicationHandoff,\n  ProductContext,\n  ViewProviderDescriptor,\n} from '../contracts/render';\nimport { ApplicationHandoffSchema } from '../contracts/render';\nimport type { PageAccessContext, PageAccessDecision } from './page-compiler';\nimport { compilePageRuntimeProjection } from './page-compiler';\nimport { compileProductDeclaration, type CompiledProductDeclaration } from './declaration-compiler';\n\nexport const APPLICATION_HANDOFF_QUERY_PARAMETER = 'monkeys-handoff';\n\nexport interface ProductRuntimeCatalogInput {\n  product: ProductContext;\n  declaration: ProductDeclaration;\n  providers: readonly ViewProviderDescriptor[];\n}\n\nexport interface ProductRuntimeCatalog {\n  product: ProductContext;\n  declaration: CompiledProductDeclaration;\n  pages: readonly PageDefinition[];\n  capabilities: readonly CapabilityManifest[];\n  providers: readonly ViewProviderDescriptor[];\n  pagesById: ReadonlyMap<string, PageDefinition>;\n  pagesByRouteId: ReadonlyMap<string, PageDefinition>;\n  capabilitiesById: ReadonlyMap<string, CapabilityManifest>;\n  providersById: ReadonlyMap<string, ViewProviderDescriptor>;\n  projection: PageRuntimeProjection;\n  document: PageRuntimeProjection;\n  navigation: readonly PageDefinition[];\n  evaluateAccess(pageId: string, context: PageAccessContext): PageAccessDecision;\n  matchPage(pathname: string): PageDefinition | undefined;\n  matchRoute(pathname: string): PageDefinition | undefined;\n  requireRenderer(pageId: string): PageRuntimeProjection['renderers'][number];\n}\n\nconst indexUnique = <T>(values: readonly T[], key: (value: T) => string, label: string): ReadonlyMap<string, T> => {\n  const result = new Map<string, T>();\n  for (const value of values) {\n    const id = key(value);\n    if (result.has(id)) throw new Error(`Duplicate ${label}: ${id}`);\n    result.set(id, value);\n  }\n  return result;\n};\n\nexport const compileProductRuntimeCatalog = (input: ProductRuntimeCatalogInput): ProductRuntimeCatalog => {\n  const declaration = compileProductDeclaration(input.declaration);\n  const compiled = compilePageRuntimeProjection({\n    product: input.product,\n    pages: declaration.declaration.pages,\n    capabilities: declaration.declaration.capabilities,\n    providers: input.providers,\n  });\n  const pages = [...compiled.pagesById.values()];\n  const capabilities = [...declaration.declaration.capabilities];\n  const providers = [...compiled.providersById.values()];\n  const pagesById = compiled.pagesById;\n  const pagesByRouteId = indexUnique(pages, (page) => page.routeId, 'routeId');\n  const capabilitiesById = indexUnique(capabilities, (capability) => capability.id, 'capability id');\n  const providersById = compiled.providersById;\n  const navigation = compiled.document.navigation.map((item) => pagesById.get(item.pageId)!);\n\n  return Object.freeze({\n    product: input.product,\n    declaration,\n    pages: Object.freeze(pages),\n    capabilities: Object.freeze(capabilities),\n    providers: Object.freeze(providers),\n    pagesById,\n    pagesByRouteId,\n    capabilitiesById,\n    providersById,\n    projection: compiled.document,\n    document: compiled.document,\n    navigation: Object.freeze(navigation),\n    evaluateAccess: compiled.evaluateAccess,\n    matchPage: compiled.matchRoute,\n    matchRoute: compiled.matchRoute,\n    requireRenderer: compiled.requireRenderer,\n  });\n};\n\nexport const serializeApplicationHandoff = (handoff: ApplicationHandoff): string =>\n  JSON.stringify(ApplicationHandoffSchema.parse(handoff));\n\nexport const parseApplicationHandoff = (value: string | null | undefined): ApplicationHandoff | undefined => {\n  if (!value) return undefined;\n  try {\n    return ApplicationHandoffSchema.parse(JSON.parse(value));\n  } catch {\n    return undefined;\n  }\n};\n\nexport const readApplicationHandoffFromUrl = (input: string | URL): ApplicationHandoff | undefined => {\n  const url = typeof input === 'string' ? new URL(input, 'https://monkeys.local') : input;\n  return parseApplicationHandoff(url.searchParams.get(APPLICATION_HANDOFF_QUERY_PARAMETER));\n};\n\nexport const buildApplicationHandoffUrl = (targetPath: string, handoff: ApplicationHandoff): string => {\n  const parsed = ApplicationHandoffSchema.parse(handoff);\n  const isRelative = targetPath.startsWith('/') && !targetPath.startsWith('//');\n  const url = new URL(targetPath, 'https://monkeys.local');\n  url.searchParams.set(APPLICATION_HANDOFF_QUERY_PARAMETER, serializeApplicationHandoff(parsed));\n  return isRelative ? `${url.pathname}${url.search}${url.hash}` : url.toString();\n};\n","import type { ThemeTokens } from '../contracts/theme';\nimport type {\n  TenantProductConfig,\n  TenantRuntimeConfig,\n} from '../contracts/tenant';\nimport type { MenuRuntimeBundle } from '../contracts/menu';\nimport {\n  TenantProductConfigSchema,\n  TenantRuntimeConfigSchema,\n} from '../contracts/tenant';\nimport { resolveThemeTokens } from './theme-tokens';\n\nexport interface CompileTenantRuntimeConfigInput {\n  productConfig: TenantProductConfig;\n  resolvedDesignTokens: ThemeTokens;\n  menuBundle?: MenuRuntimeBundle;\n}\n\n/** Missing rollout capability is intentionally legacy-only for old Servers. */\nexport const isDeclarativeRuntimeEnabled = (\n  config: Pick<TenantRuntimeConfig, 'declarativeRuntime'>,\n  surface: 'studio' | 'kernel',\n): boolean => config.declarativeRuntime?.state === 'enabled'\n  && config.declarativeRuntime.enabledSurfaces.includes(surface);\n\n/**\n * Builds the only browser-facing tenant configuration projection.\n * The source list is deliberately not copied, and resolving again guarantees\n * that aliases cannot escape the server boundary.\n */\nexport const compileTenantRuntimeConfig = (\n  input: CompileTenantRuntimeConfigInput,\n): TenantRuntimeConfig => {\n  const productConfig = TenantProductConfigSchema.parse(input.productConfig);\n  const designTokens = resolveThemeTokens(input.resolvedDesignTokens).resolvedDocument;\n\n  return Object.freeze(TenantRuntimeConfigSchema.parse({\n    contract: 'TenantRuntimeConfig',\n    tenantId: productConfig.tenantId,\n    appId: productConfig.appId,\n    environment: productConfig.environment,\n    designTokens,\n    moduleRefs: productConfig.moduleRefs,\n    pageRefs: productConfig.pageRefs,\n    featureFlags: productConfig.featureFlags,\n    authBinding: productConfig.authBinding,\n    dataBinding: productConfig.dataBinding,\n    sourceMap: productConfig.sourceMap,\n    warnings: productConfig.warnings,\n    menuBundle: input.menuBundle,\n    applicationConfig: productConfig.applicationConfig,\n    declarativeRuntime: productConfig.declarativeRuntime,\n  }));\n};\n","import type {\n  TenantAuthBinding,\n  TenantDataBinding,\n  TenantRuntimeConfig,\n} from '../contracts/tenant';\n\nexport interface TenantRuntimeBindingPolicy {\n  authProviderIds: readonly string[];\n  dataProviderIds: readonly string[];\n  projectionRefs?: readonly string[];\n  requiredAuthBindings?: readonly string[];\n  requiredDataBindings?: readonly string[];\n}\n\nexport interface CompiledTenantRuntimeBindings {\n  readonly auth: Readonly<Record<string, TenantAuthBinding>>;\n  readonly data: Readonly<Record<string, TenantDataBinding>>;\n  requireAuth(bindingId?: string): TenantAuthBinding;\n  requireData(bindingId?: string): TenantDataBinding;\n}\n\nconst requireBinding = <T>(\n  kind: 'auth' | 'data',\n  bindings: Readonly<Record<string, T>>,\n  bindingId: string,\n): T => {\n  const binding = bindings[bindingId];\n  if (!binding) {\n    throw new TypeError(`Tenant runtime is missing required ${kind} binding \"${bindingId}\".`);\n  }\n  return binding;\n};\n\n/**\n * Compiles tenant provider references against the providers actually shipped by\n * a product. This is the browser-side fail-closed boundary: a typo or an\n * uninstalled provider cannot silently fall back to a legacy endpoint.\n */\nexport const compileTenantRuntimeBindings = (\n  config: Pick<TenantRuntimeConfig, 'authBinding' | 'dataBinding'>,\n  policy: TenantRuntimeBindingPolicy,\n): CompiledTenantRuntimeBindings => {\n  const authProviderIds = new Set(policy.authProviderIds);\n  const dataProviderIds = new Set(policy.dataProviderIds);\n  const projectionRefs = new Set(policy.projectionRefs ?? []);\n\n  const auth = Object.freeze({ ...config.authBinding });\n  const data = Object.freeze({ ...config.dataBinding });\n\n  for (const [bindingId, binding] of Object.entries(auth)) {\n    if (!authProviderIds.has(binding.providerId)) {\n      throw new TypeError(\n        `Tenant auth binding \"${bindingId}\" references unavailable provider \"${binding.providerId}\".`,\n      );\n    }\n  }\n  for (const [bindingId, binding] of Object.entries(data)) {\n    const supported =\n      binding.kind === 'data-provider'\n        ? dataProviderIds.has(binding.providerId)\n        : projectionRefs.has(binding.projectionRef);\n    if (!supported) {\n      const target = binding.kind === 'data-provider' ? binding.providerId : binding.projectionRef;\n      throw new TypeError(`Tenant data binding \"${bindingId}\" references unavailable provider or projection \"${target}\".`);\n    }\n  }\n\n  for (const bindingId of policy.requiredAuthBindings ?? []) {\n    requireBinding('auth', auth, bindingId);\n  }\n  for (const bindingId of policy.requiredDataBindings ?? []) {\n    requireBinding('data', data, bindingId);\n  }\n\n  return Object.freeze({\n    auth,\n    data,\n    requireAuth: (bindingId = 'primary') => requireBinding('auth', auth, bindingId),\n    requireData: (bindingId = 'primary') => requireBinding('data', data, bindingId),\n  });\n};\n","import type { CapabilityInstance, RevisionRef } from '../contracts/declarative-control';\nimport type { DesignCapabilityCatalogEntry } from '../contracts/declarative-control-http';\nimport type { RenderNode, ViewProviderDescriptor } from '../contracts/render';\nimport { canonicalContentHash, sameStableRef, sameSchemaContract, sameRevisionRef } from './declarative-control-compiler';\n\n/** The public contract is independent of the implementation snapshot revision. */\nexport const assertViewProviderContract = (\n  node: Pick<RenderNode, 'capabilityRef' | 'providerRef' | 'runtimeContractVersion'>,\n  provider: ViewProviderDescriptor,\n): void => {\n  if (node.capabilityRef.kind !== 'capability' || node.providerRef?.kind !== 'view-provider' ||\n      node.capabilityRef.id !== provider.capabilityRef.id || node.capabilityRef.ownerRepo !== provider.capabilityRef.ownerRepo ||\n      node.providerRef.id !== provider.providerId || node.providerRef.ownerRepo !== provider.ownerRepo) {\n    throw new TypeError('Runtime capability and provider identities do not match their registered owners.');\n  }\n  if (node.runtimeContractVersion !== undefined) {\n    if (node.runtimeContractVersion !== provider.runtimeContractVersion) {\n      throw new TypeError('The provider does not implement the declared runtime contract.');\n    }\n  } else if (String(node.capabilityRef.version) !== String(provider.capabilityRef.version) ||\n      String(node.providerRef.version) !== provider.providerVersion) {\n    throw new TypeError('An unversioned runtime contract requires an exact provider snapshot.');\n  }\n};\n\nexport type DeclarativeCapabilityContractRequest = Pick<CapabilityInstance,\n  'capabilityRevisionRef' | 'providerRevisionRef' | 'runtimeContractVersion'> &\n  Partial<Pick<CapabilityInstance, 'propertySchemaRevisionRef'>> & { inputSchemaRevisionRef?: RevisionRef };\n\nexport const supportsCapabilityInputSchema = (\n  entry: DesignCapabilityCatalogEntry,\n  reference: RevisionRef,\n  runtimeContractVersion?: string,\n  portName?: string,\n): boolean => entry.declarativeRegistration.inputPorts.some(port =>\n  (portName === undefined || port.name === portName) &&\n  (sameSchemaContract(port.schemaRevisionRef, reference) ||\n    (runtimeContractVersion !== undefined && runtimeContractVersion === entry.provider.runtimeContractVersion &&\n      reference.schemaVersion === port.schemaRevisionRef.schemaVersion && sameStableRef(port.schemaRevisionRef, reference))));\n\n/** Validate the saved contract without rewriting the declaration or its hashes. */\nexport const assertDeclarativeCapabilityContract = (\n  entry: DesignCapabilityCatalogEntry,\n  request: DeclarativeCapabilityContractRequest,\n): void => {\n  const registration = entry.declarativeRegistration;\n  if (request.inputSchemaRevisionRef && !supportsCapabilityInputSchema(entry, request.inputSchemaRevisionRef, request.runtimeContractVersion)) {\n    throw new TypeError('The input schema is not owned by the runtime contract.');\n  }\n  if (!sameStableRef(request.capabilityRevisionRef, registration.capabilityRevisionRef) ||\n      !sameStableRef(request.providerRevisionRef, registration.providerRevisionRef) ||\n      request.capabilityRevisionRef.schemaVersion !== registration.capabilityRevisionRef.schemaVersion ||\n      request.providerRevisionRef.schemaVersion !== registration.providerRevisionRef.schemaVersion) {\n    throw new TypeError('Runtime contract snapshots must retain their registered identity, scope and schema version.');\n  }\n  if (request.runtimeContractVersion !== undefined) {\n    if (request.runtimeContractVersion !== entry.provider.runtimeContractVersion ||\n        (request.propertySchemaRevisionRef && (!sameStableRef(request.propertySchemaRevisionRef, registration.propertySchemaRevisionRef) || request.propertySchemaRevisionRef.schemaVersion !== registration.propertySchemaRevisionRef.schemaVersion))) {\n      throw new TypeError('The capability does not implement the declared runtime contract.');\n    }\n    return;\n  }\n  // Older declarations contain only immutable snapshots. Reconstruct their\n  // numbering and require both full hashes; matching IDs never proves support.\n  const capabilityVersion = String(request.capabilityRevisionRef.revision);\n  const providerVersion = String(request.providerRevisionRef.revision);\n  const manifest = {\n    ...entry.manifest, capabilityVersion,\n    runtime: {\n      ...entry.manifest.runtime,\n      providerBindings: entry.manifest.runtime.providerBindings.map(binding => ({\n        ...binding,\n        providerRef: binding.providerRef.id === entry.provider.providerId\n          ? { ...binding.providerRef, version: providerVersion } : binding.providerRef,\n      })),\n    },\n  };\n  const { runtimeContractVersion: _contract, ...descriptor } = entry.provider;\n  const provider = {\n    ...descriptor, providerVersion,\n    capabilityRef: { ...descriptor.capabilityRef, version: capabilityVersion },\n    ...(descriptor.sideEffectAdapterRef ? { sideEffectAdapterRef: { ...descriptor.sideEffectAdapterRef, version: capabilityVersion } } : {}),\n  };\n  const exact = sameRevisionRef(request.capabilityRevisionRef, registration.capabilityRevisionRef) &&\n    sameRevisionRef(request.providerRevisionRef, registration.providerRevisionRef);\n  const equivalent = request.capabilityRevisionRef.contentHash === canonicalContentHash(manifest) &&\n    request.providerRevisionRef.contentHash === canonicalContentHash(provider);\n  if ((!exact && !equivalent) || (request.propertySchemaRevisionRef &&\n      !sameSchemaContract(request.propertySchemaRevisionRef, registration.propertySchemaRevisionRef))) {\n    throw new TypeError('The historical capability snapshot is not supported by the current runtime contract.');\n  }\n};\n\n/** Prove exclusion from explicit constraints; unknown relationships may overlap. */\nconst schemasCannotOverlap = (left: unknown, right: unknown): boolean => {\n  if (left === false || right === false) return true;\n  if (!left || !right || typeof left !== 'object' || typeof right !== 'object' ||\n      Array.isArray(left) || Array.isArray(right)) return false;\n  const a = left as Record<string, any>;\n  const b = right as Record<string, any>;\n  if (a.$ref || b.$ref) return false;\n  // A union cannot overlap a schema when none of its branches can overlap it.\n  // Sibling constraints can only reduce this union's accepted values.\n  for (const key of ['anyOf', 'oneOf']) {\n    if (Array.isArray(a[key]) && a[key].every((branch: unknown) => schemasCannotOverlap(branch, b))) return true;\n    if (Array.isArray(b[key]) && b[key].every((branch: unknown) => schemasCannotOverlap(a, branch))) return true;\n  }\n  const values = (schema: typeof a): unknown[] | undefined =>\n    Object.prototype.hasOwnProperty.call(schema, 'const') ? [schema.const] : Array.isArray(schema.enum) ? schema.enum : undefined;\n  const av = values(a), bv = values(b);\n  if (av && bv && av.every(value => !bv.some(other => canonicalContentHash(value) === canonicalContentHash(other)))) return true;\n  // JSON primitive types can prove union branches disjoint even when only one\n  // branch has const/enum (for example \"auto\" versus an integer column count).\n  // Keep integer and number together: their value sets overlap.\n  const declaredTypes = (schema: typeof a): string[] | undefined => {\n    const types = typeof schema.type === 'string' ? [schema.type] : schema.type;\n    if (!Array.isArray(types) || !types.length || types.some(type => !['null', 'boolean', 'object', 'array', 'number', 'integer', 'string'].includes(type))) return undefined;\n    return types.map(type => type === 'integer' ? 'number' : type);\n  };\n  const valueTypes = (entries: unknown[] | undefined): string[] | undefined => entries?.map(value =>\n    value === null ? 'null' : Array.isArray(value) ? 'array' : typeof value);\n  const disjoint = (leftTypes: string[] | undefined, rightTypes: string[] | undefined): boolean =>\n    !!leftTypes && !!rightTypes && leftTypes.every(type => !rightTypes.includes(type));\n  const at = declaredTypes(a), bt = declaredTypes(b);\n  if (disjoint(at, bt) || disjoint(valueTypes(av), bt) || disjoint(at, valueTypes(bv))) return true;\n  if (a.type !== 'object' || b.type !== 'object') return false;\n  const property = (schema: typeof a, key: string): unknown => schema.properties?.[key] ??\n    (schema.patternProperties ? true : schema.additionalProperties ?? true);\n  return [...(a.required ?? []), ...(b.required ?? [])].some(key =>\n    schemasCannotOverlap(property(a, key), property(b, key)));\n};\n\ntype NumericBound = { value: number; inclusive: boolean };\n\nconst numericBound = (schema: Record<string, unknown>, direction: 'lower' | 'upper'): NumericBound | undefined | null => {\n  const inclusiveKey = direction === 'lower' ? 'minimum' : 'maximum';\n  const exclusiveKey = direction === 'lower' ? 'exclusiveMinimum' : 'exclusiveMaximum';\n  const inclusiveValue = schema[inclusiveKey];\n  const exclusiveValue = schema[exclusiveKey];\n  const candidates: NumericBound[] = [];\n  if (inclusiveValue !== undefined) {\n    if (typeof inclusiveValue !== 'number' || !Number.isFinite(inclusiveValue)) return null;\n    candidates.push({ value: inclusiveValue, inclusive: true });\n  }\n  if (typeof exclusiveValue === 'number') {\n    if (!Number.isFinite(exclusiveValue)) return null;\n    candidates.push({ value: exclusiveValue, inclusive: false });\n  } else if (exclusiveValue === true) {\n    if (typeof inclusiveValue !== 'number' || !Number.isFinite(inclusiveValue)) return null;\n    candidates.push({ value: inclusiveValue, inclusive: false });\n  } else if (exclusiveValue !== undefined && exclusiveValue !== false) {\n    return null;\n  }\n  if (!candidates.length) return undefined;\n  const compare = direction === 'lower' ? Math.max : Math.min;\n  const value = compare(...candidates.map(candidate => candidate.value));\n  return { value, inclusive: candidates.filter(candidate => candidate.value === value).every(candidate => candidate.inclusive) };\n};\n\nconst boundAcceptsPrevious = (previous: NumericBound | undefined | null, next: NumericBound | undefined | null, direction: 'lower' | 'upper'): boolean => {\n  if (previous === null || next === null) return false;\n  if (!next) return true;\n  if (!previous) return false;\n  if (direction === 'lower' && previous.value < next.value) return false;\n  if (direction === 'upper' && previous.value > next.value) return false;\n  return previous.value !== next.value || !previous.inclusive || next.inclusive;\n};\n\nconst numericRangesAcceptPrevious = (previous: Record<string, unknown>, next: Record<string, unknown>): boolean =>\n  boundAcceptsPrevious(numericBound(previous, 'lower'), numericBound(next, 'lower'), 'lower') &&\n  boundAcceptsPrevious(numericBound(previous, 'upper'), numericBound(next, 'upper'), 'upper');\n\nconst containsSchemaReference = (value: unknown): boolean => !!value && typeof value === 'object' &&\n  Object.entries(value).some(([key, child]) => ['$ref', '$dynamicRef', '$recursiveRef'].includes(key) || containsSchemaReference(child));\n\n/** Definitions may expand together only when all references occur positively.\n * In particular, oneOf, negation and conditional tests are not monotone. */\nconst hasPositiveLocalReferences = (schema: unknown, names: ReadonlySet<string>, root = true): boolean => {\n  if (typeof schema === 'boolean') return true;\n  if (!schema || typeof schema !== 'object' || Array.isArray(schema)) return false;\n  return Object.entries(schema).every(([key, value]) => {\n    if (key === '$ref') return typeof value === 'string' && [...names].some(name => value === `#/$defs/${name.replace(/~/g, '~0').replace(/\\//g, '~1')}`);\n    if (['$dynamicRef', '$recursiveRef', '$dynamicAnchor', '$recursiveAnchor', '$anchor'].includes(key)) return false;\n    if (key === '$id') return root;\n    if (key === '$defs' || key === 'properties') {\n      if (key === '$defs' && !root) return false;\n      return !!value && typeof value === 'object' && !Array.isArray(value) && Object.values(value).every(child => hasPositiveLocalReferences(child, names, false));\n    }\n    if (['items', 'additionalProperties'].includes(key)) return hasPositiveLocalReferences(value, names, false);\n    if (['anyOf', 'allOf'].includes(key)) return Array.isArray(value) && value.every(child => hasPositiveLocalReferences(child, names, false));\n    return !containsSchemaReference(value);\n  });\n};\n\n/** A newly introduced conditional must be unreachable for every old object,\n * including objects omitting the discriminant. Unknown predicates stay exact. */\nconst isUnreachableConditional = (previous: Record<string, any>, branch: unknown): boolean => {\n  if (previous.type !== 'object' || !branch || typeof branch !== 'object' || Array.isArray(branch)) return false;\n  const rule = branch as Record<string, any>;\n  if (!rule.if || Object.keys(rule).some(key => !['if', 'then'].includes(key))) return false;\n  const condition = rule.if;\n  if (typeof condition !== 'object' || Array.isArray(condition) ||\n      Object.keys(condition).some(key => !['type', 'properties', 'required'].includes(key)) ||\n      (condition.type !== undefined && condition.type !== 'object') || !Array.isArray(condition.required)) return false;\n  return condition.required.some((key: unknown) => typeof key === 'string' &&\n    schemasCannotOverlap(previous.properties?.[key] ?? (previous.patternProperties ? true : previous.additionalProperties ?? true), condition.properties?.[key] ?? true));\n};\n\n/** Conservative schema inclusion; unknown relationships fail closed. */\nexport const acceptsPreviousSchema = (previous: unknown, next: unknown): boolean => {\n  if (canonicalContentHash(previous) === canonicalContentHash(next) || next === true) return true;\n  if (previous === false) return true;\n  if (!previous || !next || typeof previous !== 'object' || typeof next !== 'object' ||\n      Array.isArray(previous) || Array.isArray(next)) return false;\n  const withoutAnnotations = (schema: object) => Object.fromEntries(Object.entries(schema).filter(([key]) => !['title', 'description', 'examples', '$comment'].includes(key)));\n  const before = withoutAnnotations(previous) as Record<string, any>;\n  const after = withoutAnnotations(next) as Record<string, any>;\n  // Keep all sibling constraints exact while comparing branches of a tagged\n  // union. oneOf additionally requires proof that no other target branch matches.\n  const union = (schema: typeof before) => {\n    const key = Array.isArray(schema.oneOf) && !schema.anyOf ? 'oneOf' : Array.isArray(schema.anyOf) && !schema.oneOf ? 'anyOf' : undefined;\n    if (!key) return undefined;\n    const { [key]: alternatives, ...siblings } = schema;\n    return { key, alternatives: alternatives as unknown[], siblings };\n  };\n  const oldUnion = union(before), newUnion = union(after);\n  if (oldUnion && newUnion && canonicalContentHash(oldUnion.siblings) === canonicalContentHash(newUnion.siblings)) {\n    return oldUnion.alternatives.every(branch => newUnion.alternatives.some((candidate, index) =>\n      acceptsPreviousSchema(branch, candidate) && (newUnion.key !== 'oneOf' || newUnion.alternatives.every((other, otherIndex) =>\n        index === otherIndex || schemasCannotOverlap(branch, other)))));\n  }\n  // Resolve standalone unions before inspecting sibling constraints. An old\n  // allOf may be preserved inside a new union branch rather than at its root.\n  const branches = (schema: typeof before): unknown[] | undefined => Object.keys(schema).length === 1\n    ? Array.isArray(schema.anyOf) ? schema.anyOf : Array.isArray(schema.oneOf) ? schema.oneOf : undefined\n    : undefined;\n  const oldBranches = branches(before);\n  if (oldBranches) return oldBranches.every(branch => acceptsPreviousSchema(branch, next));\n  const newBranches = branches(after);\n  if (newBranches) return newBranches.some((branch, index) => acceptsPreviousSchema(previous, branch) &&\n    (!after.oneOf || newBranches.every((other, otherIndex) => index === otherIndex || schemasCannotOverlap(previous, other))));\n  if (canonicalContentHash(before.$defs ?? null) !== canonicalContentHash(after.$defs ?? null)) {\n    const oldDefinitions = before.$defs, newDefinitions = after.$defs;\n    if (!oldDefinitions || !newDefinitions || typeof oldDefinitions !== 'object' || typeof newDefinitions !== 'object' ||\n        Array.isArray(oldDefinitions) || Array.isArray(newDefinitions)) return false;\n    const names = new Set(Object.keys(oldDefinitions));\n    if (names.size !== Object.keys(newDefinitions).length || [...names].some(name => !Object.prototype.hasOwnProperty.call(newDefinitions, name)) ||\n        !hasPositiveLocalReferences(before, names) || !hasPositiveLocalReferences(after, names) ||\n        [...names].some(name => !acceptsPreviousSchema(oldDefinitions[name], newDefinitions[name]))) return false;\n    // The positive recursive graph is monotone; every referenced definition\n    // accepts its previous values. Compare the remaining root constraints.\n    delete before.$defs;\n    delete after.$defs;\n  }\n  if (canonicalContentHash(before.allOf ?? null) !== canonicalContentHash(after.allOf ?? null)) {\n    if ((before.allOf !== undefined && !Array.isArray(before.allOf)) || !Array.isArray(after.allOf)) return false;\n    const previousBranches: unknown[] = before.allOf ?? [];\n    if (previousBranches.some(branch => !after.allOf.some((candidate: unknown) => canonicalContentHash(branch) === canonicalContentHash(candidate))) ||\n        after.allOf.some((branch: unknown) => !previousBranches.some(candidate => canonicalContentHash(branch) === canonicalContentHash(candidate)) && !isUnreachableConditional(before, branch))) return false;\n    if (before.allOf === undefined) delete after.allOf;\n    else after.allOf = before.allOf;\n  }\n  const { properties: oldProperties, required: oldRequired, additionalProperties: oldAdditional,\n    enum: oldEnum, items: oldItems, minimum: _oldMinimum, maximum: _oldMaximum,\n    exclusiveMinimum: _oldExclusiveMinimum, exclusiveMaximum: _oldExclusiveMaximum, ...oldFixed } = before;\n  const { properties: newProperties, required: newRequired, additionalProperties: newAdditional,\n    enum: newEnum, items: newItems, minimum: _newMinimum, maximum: _newMaximum,\n    exclusiveMinimum: _newExclusiveMinimum, exclusiveMaximum: _newExclusiveMaximum, ...newFixed } = after;\n  if (canonicalContentHash(oldFixed) !== canonicalContentHash(newFixed)) return false;\n  if (!numericRangesAcceptPrevious(before, after)) return false;\n  // Homogeneous arrays apply the same inclusion rule to every element. Tuple\n  // schemas and other array constraints stay exact unless already identical.\n  if (!acceptsPreviousSchema(oldItems ?? true, newItems ?? true)) return false;\n  if (newEnum && (!oldEnum || oldEnum.some((value: unknown) => !newEnum.some((candidate: unknown) =>\n    canonicalContentHash(candidate) === canonicalContentHash(value))))) return false;\n  if ((newRequired ?? []).some((key: string) => !(oldRequired ?? []).includes(key))) return false;\n  const oldExtra = oldAdditional ?? true;\n  const newExtra = newAdditional ?? true;\n  if (!acceptsPreviousSchema(oldExtra, newExtra)) return false;\n  const keys = new Set([...Object.keys(oldProperties ?? {}), ...Object.keys(newProperties ?? {})]);\n  for (const key of keys) {\n    if (!acceptsPreviousSchema(oldProperties?.[key] ?? oldExtra, newProperties?.[key] ?? newExtra)) return false;\n  }\n  return true;\n};\n\n/** A provider identity continues to serve every declaration on its public contract. */\nexport const assertCompatibleCapabilityUpgrade = (\n  previous: DesignCapabilityCatalogEntry,\n  next: DesignCapabilityCatalogEntry,\n): void => {\n  if ((previous.provider.runtimeContractVersion !== undefined && previous.provider.runtimeContractVersion !== next.provider.runtimeContractVersion) ||\n      !sameStableRef(previous.declarativeRegistration.capabilityRevisionRef, next.declarativeRegistration.capabilityRevisionRef) ||\n      !sameStableRef(previous.declarativeRegistration.providerRevisionRef, next.declarativeRegistration.providerRevisionRef)) {\n    throw new TypeError('A breaking runtime contract requires a new capability/provider identity while the existing contract remains supported.');\n  }\n  const providerContract = (entry: DesignCapabilityCatalogEntry) => {\n    const { providerVersion: _revision, capabilityRef, performance: _performance, sideEffectAdapterRef, ...rest } = entry.provider;\n    const { version: _capabilityRevision, ...capability } = capabilityRef;\n    return { ...rest, runtimeContractVersion: next.provider.runtimeContractVersion, capabilityRef: capability,\n      ...(sideEffectAdapterRef ? { sideEffectAdapterRef: { ...sideEffectAdapterRef, version: undefined } } : {}) };\n  };\n  if (canonicalContentHash(providerContract(previous)) !== canonicalContentHash(providerContract(next))) {\n    throw new TypeError('A compatible provider upgrade must preserve lifecycle, effects, ownership and public rendering semantics.');\n  }\n  const manifestContract = (entry: DesignCapabilityCatalogEntry) => ({\n    kind: entry.manifest.kind,\n    runtime: { ...entry.manifest.runtime, providerBindings: entry.manifest.runtime.providerBindings.map(binding => ({ ...binding, providerRef: { ...binding.providerRef, version: undefined } })) },\n    placement: entry.manifest.placement && { ...entry.manifest.placement, slots: undefined },\n    accessibility: entry.manifest.accessibility,\n  });\n  if (canonicalContentHash(manifestContract(previous)) !== canonicalContentHash(manifestContract(next))) {\n    throw new TypeError('Capability behavior, placement and access semantics must preserve the published runtime contract.');\n  }\n  const oldRegistration = previous.declarativeRegistration;\n  const newRegistration = next.declarativeRegistration;\n  // Slots name optional composition points. Adding one cannot invalidate a\n  // saved tree, while removing an existing point would orphan its children.\n  for (const [oldSlots, newSlots] of [\n    [previous.manifest.placement?.slots ?? [], next.manifest.placement?.slots ?? []],\n    [oldRegistration.allowedSlots, newRegistration.allowedSlots],\n  ]) {\n    if (oldSlots.some(slot => !newSlots.includes(slot))) {\n      throw new TypeError('Published runtime slots cannot be removed.');\n    }\n  }\n  const schema = (entry: typeof oldRegistration, reference: RevisionRef) => {\n    const document = entry.schemaDocuments.find(candidate => sameSchemaContract(candidate.schemaRevisionRef, reference));\n    if (!document || canonicalContentHash(document.document) !== reference.contentHash) throw new TypeError('Runtime contract schema integrity failed.');\n    return document.document;\n  };\n  const checkSchema = (oldRef: RevisionRef, newRef: RevisionRef, output = false) => {\n    if (!sameStableRef(oldRef, newRef) || oldRef.schemaVersion !== newRef.schemaVersion ||\n        !acceptsPreviousSchema(schema(output ? newRegistration : oldRegistration, output ? newRef : oldRef),\n          schema(output ? oldRegistration : newRegistration, output ? oldRef : newRef))) {\n      throw new TypeError(`Schema ${oldRef.id} breaks the published runtime contract.`);\n    }\n  };\n  checkSchema(oldRegistration.propertySchemaRevisionRef, newRegistration.propertySchemaRevisionRef);\n  for (const direction of ['inputPorts', 'outputPorts'] as const) {\n    const oldPorts = oldRegistration[direction];\n    const newPorts = newRegistration[direction];\n    const oldManifestPorts = previous.manifest.ports?.[direction === 'inputPorts' ? 'inputs' : 'outputs'] ?? [];\n    const newManifestPorts = next.manifest.ports?.[direction === 'inputPorts' ? 'inputs' : 'outputs'] ?? [];\n    for (const port of oldManifestPorts) {\n      const replacement = newManifestPorts.find(candidate => candidate.name === port.name);\n      if (!replacement || canonicalContentHash(port) !== canonicalContentHash(replacement)) throw new TypeError('Published runtime port semantics changed.');\n    }\n    if (newManifestPorts.some(port => port.required && !oldManifestPorts.some(previousPort => previousPort.name === port.name)) ||\n        newPorts.some(port => port.required && !oldPorts.some(previousPort => previousPort.name === port.name))) {\n      throw new TypeError('New runtime ports must be optional for published declarations.');\n    }\n    for (const port of oldPorts) {\n      const replacement = newPorts.find(candidate => candidate.name === port.name);\n      if (!replacement || port.required !== replacement.required || port.multiple !== replacement.multiple) throw new TypeError('Public runtime port cardinality changed.');\n      checkSchema(port.schemaRevisionRef, replacement.schemaRevisionRef, direction === 'outputPorts');\n    }\n  }\n  const requirements = (entry: typeof oldRegistration) => entry.ontologyRequirements.map(requirement => {\n    const { revision: _revision, contentHash: _hash, ...schema } = requirement.renderModelSchemaRevisionRef;\n    return { ...requirement, renderModelSchemaRevisionRef: schema };\n  });\n  if (canonicalContentHash(requirements(oldRegistration)) !== canonicalContentHash(requirements(newRegistration))) {\n    throw new TypeError('Runtime Ontology access requirements changed.');\n  }\n  const existingOutputs = new Set(oldRegistration.outputPorts.map(port => port.name));\n  const existingActions = newRegistration.actionRequirements.filter(requirement => existingOutputs.has(requirement.outputPort));\n  if (canonicalContentHash(oldRegistration.actionRequirements) !== canonicalContentHash(existingActions)) {\n    throw new TypeError('Published output action and permission requirements changed.');\n  }\n  for (const key of ['allowedSideEffects', 'supportedSurfaces', 'allowedParentCapabilityRefs', 'allowedChildCapabilityRefs'] as const) {\n    if (canonicalContentHash(oldRegistration[key]) !== canonicalContentHash(newRegistration[key])) throw new TypeError(`Runtime contract ${key} changed.`);\n  }\n};\n\n/** Enrich a rebuildable runtime projection using governed historical catalog entries.\n * Page definitions, release snapshots and dependency hashes remain immutable.\n */\ntype RuntimeContractProjection = { contentHash: string } & ({\n  contract: 'PageRuntimeBundle';\n  capabilityInstances: (DeclarativeCapabilityContractRequest & { nodeId: string })[];\n  renderTree: { nodes: Pick<RenderNode, 'nodeId' | 'providerRef' | 'capabilityRef' | 'runtimeContractVersion'>[] };\n} | {\n  contract: 'WorkbenchRuntimeBundle';\n  appInstances: { targetRevisionRef: RevisionRef; providerRevisionRef: RevisionRef; inputSchemaRevisionRef: RevisionRef; runtimeContractVersion?: string }[];\n  layout: { hostCapabilityRevisionRef: RevisionRef; hostProviderRevisionRef: RevisionRef; runtimeContractVersion?: string };\n});\nexport const projectRuntimeContracts = <T extends RuntimeContractProjection>(\n  bundle: T,\n  entries: readonly DesignCapabilityCatalogEntry[],\n): T => {\n  const resolve = (request: DeclarativeCapabilityContractRequest): string | undefined => {\n    if (request.runtimeContractVersion) return request.runtimeContractVersion;\n    const candidates = entries.filter(entry =>\n      sameStableRef(entry.declarativeRegistration.capabilityRevisionRef, request.capabilityRevisionRef) &&\n      sameStableRef(entry.declarativeRegistration.providerRevisionRef, request.providerRevisionRef));\n    const current = [...candidates].sort((a, b) =>\n      b.declarativeRegistration.capabilityRevisionRef.revision - a.declarativeRegistration.capabilityRevisionRef.revision ||\n      b.declarativeRegistration.registrationRevisionRef.revision - a.declarativeRegistration.registrationRevisionRef.revision ||\n      Number(Boolean(b.provider.runtimeContractVersion)) - Number(Boolean(a.provider.runtimeContractVersion)))[0];\n    if (!current?.provider.runtimeContractVersion) return undefined;\n    try {\n      assertDeclarativeCapabilityContract(current, request);\n      return current.provider.runtimeContractVersion;\n    } catch {\n      const historical = candidates.find(entry =>\n        sameRevisionRef(entry.declarativeRegistration.capabilityRevisionRef, request.capabilityRevisionRef) &&\n        sameRevisionRef(entry.declarativeRegistration.providerRevisionRef, request.providerRevisionRef));\n      if (!historical) return undefined;\n      try {\n        assertDeclarativeCapabilityContract(historical, request);\n        assertCompatibleCapabilityUpgrade(historical, current);\n        return current.provider.runtimeContractVersion;\n      } catch {\n        // An incompatible retained contract must resolve to its own implementation.\n        return undefined;\n      }\n    }\n  };\n  const projected = structuredClone(bundle);\n  if (projected.contract === 'PageRuntimeBundle') {\n    for (const instance of projected.capabilityInstances) {\n      const contract = resolve(instance);\n      if (!contract) continue;\n      const node = projected.renderTree.nodes.find(node => node.nodeId === instance.nodeId);\n      if (!node || String(node.providerRef?.version) !== String(instance.providerRevisionRef.revision) ||\n          String(node.capabilityRef.version) !== String(instance.capabilityRevisionRef.revision) ||\n          node.providerRef?.id !== instance.providerRevisionRef.id || node.capabilityRef.id !== instance.capabilityRevisionRef.id) continue;\n      instance.runtimeContractVersion = contract;\n      node.runtimeContractVersion = contract;\n    }\n  } else {\n    for (const instance of projected.appInstances) {\n      const contract = resolve({ capabilityRevisionRef: instance.targetRevisionRef, providerRevisionRef: instance.providerRevisionRef, inputSchemaRevisionRef: instance.inputSchemaRevisionRef, runtimeContractVersion: instance.runtimeContractVersion });\n      if (contract) instance.runtimeContractVersion = contract;\n    }\n    const contract = resolve({ capabilityRevisionRef: projected.layout.hostCapabilityRevisionRef, providerRevisionRef: projected.layout.hostProviderRevisionRef, runtimeContractVersion: projected.layout.runtimeContractVersion });\n    if (contract) projected.layout.runtimeContractVersion = contract;\n  }\n  const { contentHash: _hash, ...unsigned } = projected;\n  projected.contentHash = canonicalContentHash(unsigned);\n  return projected;\n};\n","export type PureRenderModelValue = null | boolean | number | string | PureRenderModelArray | PureRenderModelObject;\nexport interface PureRenderModelArray extends ReadonlyArray<PureRenderModelValue> {}\nexport interface PureRenderModelObject {\n  readonly [key: string]: PureRenderModelValue;\n}\n\nexport type ViewRuntimeBindingKind = 'intent-adapter' | 'visual-slot' | 'opaque-adapter';\n\nexport interface ViewRuntimeBinding {\n  readonly path: string;\n  readonly kind: ViewRuntimeBindingKind;\n  readonly value: unknown;\n}\n\nexport interface CompiledViewProviderInput {\n  readonly renderModel: PureRenderModelValue;\n  readonly runtimeBindings: readonly ViewRuntimeBinding[];\n}\n\nconst DEFAULT_FORBIDDEN_RENDER_MODEL_KEYS = Object.freeze([\n  'tenant',\n  'tenantId',\n  'customer',\n  'customerId',\n  'route',\n  'routeId',\n  'pathname',\n  'location',\n  'raw',\n  'rawRow',\n  '__raw',\n  '__rawRow',\n]);\n\nconst escapePointer = (value: string): string => value.replace(/~/g, '~0').replace(/\\//g, '~1');\nconst unescapePointer = (value: string): string => value.replace(/~1/g, '/').replace(/~0/g, '~');\nconst childPath = (path: string, key: string | number): string => `${path}/${escapePointer(String(key))}`;\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n  if (!value || typeof value !== 'object') return false;\n  const prototype = Object.getPrototypeOf(value);\n  return prototype === Object.prototype || prototype === null;\n};\n\nconst bindingKind = (value: unknown): ViewRuntimeBindingKind => {\n  if (typeof value === 'function') return 'intent-adapter';\n  if (value && typeof value === 'object' && '$$typeof' in value) return 'visual-slot';\n  return 'opaque-adapter';\n};\n\nexport interface CompileViewProviderInputOptions {\n  forbiddenKeys?: readonly string[];\n}\n\n/**\n * Separates deterministic, serializable view data from runtime adapters.\n * React elements become visual slots and functions become intent adapters\n * without adding a React dependency to the SDK.\n */\nexport const compileViewProviderInput = (\n  input: unknown,\n  options: CompileViewProviderInputOptions = {},\n): CompiledViewProviderInput => {\n  const forbidden = new Set([...DEFAULT_FORBIDDEN_RENDER_MODEL_KEYS, ...(options.forbiddenKeys ?? [])]);\n  const runtimeBindings: ViewRuntimeBinding[] = [];\n  const ancestors = new WeakSet<object>();\n\n  const visit = (value: unknown, path: string): PureRenderModelValue => {\n    if (value === null) return null;\n    if (typeof value === 'string' || typeof value === 'boolean') return value;\n    if (typeof value === 'number') {\n      if (!Number.isFinite(value)) throw new Error(`Non-finite number is not allowed in renderModel at ${path || '/'}.`);\n      return value;\n    }\n    if (value === undefined) return null;\n    if (typeof value === 'bigint' || typeof value === 'symbol' || typeof value === 'function') {\n      runtimeBindings.push(Object.freeze({ path, kind: bindingKind(value), value }));\n      return null;\n    }\n    if (!value || typeof value !== 'object') {\n      throw new Error(`Unsupported renderModel value at ${path || '/'}.`);\n    }\n    if (!Array.isArray(value) && !isPlainObject(value)) {\n      runtimeBindings.push(Object.freeze({ path, kind: bindingKind(value), value }));\n      return null;\n    }\n    if (!Array.isArray(value) && '$$typeof' in value) {\n      runtimeBindings.push(Object.freeze({ path, kind: 'visual-slot', value }));\n      return null;\n    }\n    if (ancestors.has(value)) throw new Error(`Cyclic renderModel input at ${path || '/'}.`);\n    ancestors.add(value);\n    try {\n      if (Array.isArray(value)) {\n        return Object.freeze(value.map((item, index) => visit(item, childPath(path, index))));\n      }\n      const output: Record<string, PureRenderModelValue> = {};\n      for (const [key, item] of Object.entries(value)) {\n        if (forbidden.has(key)) {\n          throw new Error(`Forbidden renderModel field ${key} at ${childPath(path, key)}.`);\n        }\n        output[key] = visit(item, childPath(path, key));\n      }\n      return Object.freeze(output);\n    } finally {\n      ancestors.delete(value);\n    }\n  };\n\n  return Object.freeze({\n    renderModel: visit(input, ''),\n    runtimeBindings: Object.freeze(runtimeBindings),\n  });\n};\n\nconst cloneRenderModel = (value: PureRenderModelValue): unknown => {\n  if (Array.isArray(value)) return value.map((item) => cloneRenderModel(item));\n  if (value && typeof value === 'object') {\n    return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneRenderModel(item)]));\n  }\n  return value;\n};\n\n/** Provider adapters use this only at the final implementation edge. */\nexport const applyViewRuntimeBindings = (\n  renderModel: PureRenderModelValue,\n  bindings: readonly ViewRuntimeBinding[],\n): unknown => {\n  const root = { value: cloneRenderModel(renderModel) };\n  for (const binding of bindings) {\n    const segments = binding.path.split('/').slice(1).map(unescapePointer);\n    if (segments.length === 0) {\n      root.value = binding.value;\n      continue;\n    }\n    let cursor: any = root.value;\n    for (let index = 0; index < segments.length - 1; index += 1) {\n      cursor = cursor?.[segments[index]];\n      if (cursor === undefined || cursor === null) {\n        throw new Error(`Runtime binding path does not exist: ${binding.path}`);\n      }\n    }\n    cursor[segments[segments.length - 1]] = binding.value;\n  }\n  return root.value;\n};\n","import type { ContractPort } from '../contracts/capability';\nimport type {\n  ConductorTaskDefinition,\n  ConductorWorkflowDefinition,\n  WorkflowDefinition,\n  WorkflowOutputBinding,\n  WorkflowParameter,\n} from '../contracts/workflow-definition';\nimport {\n  ConductorWorkflowDefinitionSchema,\n  WorkflowDefinitionSchema,\n  WorkflowOutputBindingSchema,\n  WorkflowParameterSchema,\n} from '../contracts/workflow-definition';\n\nexport interface CompileWorkflowDefinitionFromConductorInput {\n  metadata: WorkflowDefinition['metadata'];\n  revision: WorkflowDefinition['revision'];\n  presentation: WorkflowDefinition['presentation'];\n  conductor: ConductorWorkflowDefinition;\n  variables: readonly WorkflowParameter[];\n  output: readonly WorkflowOutputBinding[];\n  execution: Omit<WorkflowDefinition['execution'], 'timeoutMs' | 'conductor'>;\n  triggers: WorkflowDefinition['triggers'];\n  views: WorkflowDefinition['views'];\n  dataContracts: WorkflowDefinition['dataContracts'];\n  governance: WorkflowDefinition['governance'];\n  interfaces: WorkflowDefinition['interfaces'];\n}\n\nexport interface WorkflowPersistenceProjection {\n  tasks: readonly ConductorTaskDefinition[];\n  variables: readonly WorkflowParameter[];\n  output: readonly WorkflowOutputBinding[];\n}\n\nexport const DEFAULT_CONDUCTOR_OWNER_EMAIL = 'dev@inf-monkeys.com';\n\nconst localizedText = (value: WorkflowDefinition['metadata']['description']): string | undefined => {\n  if (typeof value === 'string') return value;\n  if (!value) return undefined;\n  return value['en-US'] ?? value['zh-CN'] ?? Object.values(value)[0];\n};\nconst parameterPort = (workflowId: string, parameter: WorkflowParameter): ContractPort => ({\n  name: parameter.name,\n  schemaRef: `schema://workflow/${workflowId}/input/${parameter.name}`,\n  required: parameter.required === true,\n  multiple: parameter.typeOptions?.multipleValues === true,\n  description: localizedText(parameter.description),\n});\n\nconst outputPort = (workflowId: string, output: WorkflowOutputBinding): ContractPort => ({\n  name: output.key,\n  schemaRef: `schema://workflow/${workflowId}/output/${output.key}`,\n  required: false,\n  multiple: false,\n});\n\n/**\n * One-time production compiler from Conductor + authoring data to the canonical\n * WorkflowDefinition. Nested control-flow tasks remain typed inside each node,\n * so the projection does not depend on a lossy graph reconstruction.\n */\nexport const compileWorkflowDefinitionFromConductor = (\n  input: CompileWorkflowDefinitionFromConductorInput,\n): WorkflowDefinition => {\n  const conductor = ConductorWorkflowDefinitionSchema.parse(input.conductor);\n  if (conductor.name !== input.metadata.id || conductor.version !== input.metadata.version) {\n    throw new Error('Conductor workflow identity must match canonical metadata.');\n  }\n  const variables = input.variables.map((parameter) => WorkflowParameterSchema.parse(parameter));\n  const outputs = input.output.map((output) => WorkflowOutputBindingSchema.parse(output));\n  if (JSON.stringify(conductor.inputParameters) !== JSON.stringify(variables.map((parameter) => parameter.name))) {\n    throw new Error('Conductor inputParameters must match canonical workflow variables in order.');\n  }\n  const expectedOutput = Object.fromEntries(outputs.map((output) => [output.key, output.value]));\n  if (JSON.stringify(conductor.outputParameters ?? {}) !== JSON.stringify(expectedOutput)) {\n    throw new Error('Conductor outputParameters must match canonical workflow output bindings.');\n  }\n\n  const nodes = conductor.tasks.map((task) => ({\n    id: task.taskReferenceName,\n    referenceName: task.taskReferenceName,\n    capabilityRef: task.name,\n    inputBindings: task.inputParameters ?? {},\n    configuration: { executor: 'conductor' as const, task },\n  }));\n  const edges = nodes.slice(1).map((node, index) => ({ from: nodes[index].id, to: node.id }));\n  const {\n    name: _name,\n    description: _description,\n    version: _version,\n    tasks: _tasks,\n    inputParameters: _inputParameters,\n    outputParameters: _outputParameters,\n    timeoutSeconds,\n    ...conductorOptions\n  } = conductor;\n\n  return WorkflowDefinitionSchema.parse({\n    contract: 'WorkflowDefinition',\n    metadata: input.metadata,\n    revision: input.revision,\n    presentation: input.presentation,\n    ports: {\n      inputs: variables.map((parameter) => parameterPort(input.metadata.id, parameter)),\n      outputs: outputs.map((output) => outputPort(input.metadata.id, output)),\n    },\n    parameters: { variables, outputs },\n    graph: { nodes, edges },\n    execution: {\n      ...input.execution,\n      ...(timeoutSeconds > 0 ? { timeoutMs: timeoutSeconds * 1000 } : {}),\n      conductor: {\n        ...conductorOptions,\n        ownerEmail:\n          conductorOptions.ownerEmail ?? DEFAULT_CONDUCTOR_OWNER_EMAIL,\n      },\n    },\n    triggers: input.triggers,\n    views: input.views,\n    dataContracts: input.dataContracts,\n    governance: input.governance,\n    interfaces: input.interfaces,\n  });\n};\n\nexport const compileConductorWorkflowDefinition = (\n  input: WorkflowDefinition,\n): ConductorWorkflowDefinition => {\n  const workflow = WorkflowDefinitionSchema.parse(input);\n  return ConductorWorkflowDefinitionSchema.parse({\n    ...workflow.execution.conductor,\n    ownerEmail:\n      workflow.execution.conductor.ownerEmail ??\n      DEFAULT_CONDUCTOR_OWNER_EMAIL,\n    name: workflow.metadata.id,\n    description: localizedText(workflow.metadata.description),\n    version: workflow.metadata.version,\n    tasks: workflow.graph.nodes.map((node) => node.configuration.task),\n    inputParameters: workflow.parameters.variables.map((parameter) => parameter.name),\n    outputParameters: Object.fromEntries(workflow.parameters.outputs.map((output) => [output.key, output.value])),\n    timeoutSeconds: workflow.execution.timeoutMs ? Math.ceil(workflow.execution.timeoutMs / 1000) : 0,\n  });\n};\n\nexport const compileWorkflowPersistenceProjection = (\n  input: WorkflowDefinition,\n): WorkflowPersistenceProjection => {\n  const workflow = WorkflowDefinitionSchema.parse(input);\n  return Object.freeze({\n    tasks: Object.freeze(workflow.graph.nodes.map((node) => node.configuration.task)),\n    variables: Object.freeze(workflow.parameters.variables),\n    output: Object.freeze(workflow.parameters.outputs),\n  });\n};\n","import { IsoDateTimeSchema, JsonValueSchema, type JsonValue } from '../contracts/common';\nimport {\n  WorkflowColumnBindingSchema,\n  type WorkflowColumnBinding,\n} from '../contracts/workflow-column';\n\nexport function parseWorkflowColumnBinding(value: unknown): WorkflowColumnBinding {\n  const binding = WorkflowColumnBindingSchema.parse(value);\n  if (Object.keys(binding.inputs).length > 100)\n    throw new Error('Workflow column supports at most 100 input bindings.');\n  if (binding.policy.maxDelayMs < binding.policy.debounceMs)\n    throw new Error('Workflow column maxDelayMs must be at least debounceMs.');\n  for (const name of Object.keys(binding.inputs)) {\n    if (\n      name !== name.trim() ||\n      name.startsWith('__') ||\n      name === 'constructor' ||\n      name === 'prototype'\n    ) {\n      throw new Error(`Invalid Workflow input name: ${name}`);\n    }\n  }\n  return binding;\n}\n\nfunction selectOwnValue(payload: unknown, path: string[]): unknown {\n  let value = payload;\n  for (const key of path) {\n    if (\n      value === null ||\n      typeof value !== 'object' ||\n      !Object.prototype.hasOwnProperty.call(value, key)\n    ) {\n      throw new Error(`Workflow output is missing the configured path: ${JSON.stringify(path)}`);\n    }\n    value = (value as Record<string, unknown>)[key];\n  }\n  if (value === undefined) throw new Error('Workflow output is absent.');\n  return value;\n}\n\nexport function resolveWorkflowColumnResult(\n  binding: WorkflowColumnBinding,\n  payload: unknown,\n  nowMs = Date.now(),\n): { value: JsonValue; expiresAt?: string } {\n  const selected = selectOwnValue(payload, binding.output.path);\n  if (selected === null && !binding.output.nullable)\n    throw new Error('Workflow output is null but this column does not allow null results.');\n  if (selected !== null) {\n    if (\n      binding.output.type === 'number' &&\n      (typeof selected !== 'number' || !Number.isFinite(selected))\n    )\n      throw new Error('Workflow output must be a finite number.');\n    if (binding.output.type === 'text' && typeof selected !== 'string')\n      throw new Error('Workflow output must be text.');\n  }\n  const value = JsonValueSchema.parse(selected);\n  if (!binding.expiry) return { value };\n  const expiresAt = IsoDateTimeSchema.parse(selectOwnValue(payload, binding.expiry.path));\n  if (!Number.isFinite(nowMs) || Date.parse(expiresAt) <= nowMs)\n    throw new Error('Workflow expiry must be a future datetime.');\n  return { value, expiresAt };\n}\n","import {\n  ProductAccessDeclarationSchema,\n  type ProductAccessDeclaration,\n} from '../contracts/access';\n\nexport interface CompiledProductAccessDeclaration {\n  declaration: ProductAccessDeclaration;\n  permissionsByCode: ReadonlyMap<string, ProductAccessDeclaration['permissions'][number]>;\n  permissionCodesByBundle: ReadonlyMap<string, readonly string[]>;\n  permissionCodesBySystemGroup: ReadonlyMap<string, readonly string[]>;\n  permissionPolicyBySystemGroup: ReadonlyMap<string, ProductAccessDeclaration['systemGroups'][number]['permissionPolicy']>;\n}\n\nconst uniqueBy = <T>(values: readonly T[], key: (value: T) => string, label: string): Map<string, T> => {\n  const result = new Map<string, T>();\n  for (const value of values) {\n    const id = key(value);\n    if (result.has(id)) throw new Error(`Duplicate ${label} ${id}.`);\n    result.set(id, value);\n  }\n  return result;\n};\n\nexport const compileProductAccessDeclaration = (\n  input: ProductAccessDeclaration,\n): CompiledProductAccessDeclaration => {\n  const declaration = ProductAccessDeclarationSchema.parse(input);\n  const permissionsByCode = uniqueBy(declaration.permissions, (item) => item.code, 'permission');\n  const bundlesById = uniqueBy(declaration.permissionBundles, (item) => item.bundleId, 'permission bundle');\n  uniqueBy(declaration.systemGroups, (item) => item.groupCode, 'system group');\n\n  const permissionCodesByBundle = new Map<string, readonly string[]>();\n  for (const bundle of declaration.permissionBundles) {\n    for (const permissionCode of bundle.permissionCodes) {\n      if (!permissionsByCode.has(permissionCode)) {\n        throw new Error(`Permission bundle ${bundle.bundleId} references unknown permission ${permissionCode}.`);\n      }\n    }\n    permissionCodesByBundle.set(bundle.bundleId, [...new Set(bundle.permissionCodes)]);\n  }\n\n  const permissionCodesBySystemGroup = new Map<string, readonly string[]>();\n  const permissionPolicyBySystemGroup = new Map<string, ProductAccessDeclaration['systemGroups'][number]['permissionPolicy']>();\n  for (const group of declaration.systemGroups) {\n    const permissionCodes = new Set<string>();\n    permissionPolicyBySystemGroup.set(group.groupCode, group.permissionPolicy);\n    if (group.permissionPolicy === 'all_current') {\n      for (const permission of declaration.permissions) permissionCodes.add(permission.code);\n    }\n    if (group.permissionPolicy === 'studio_current') {\n      for (const permission of declaration.permissions) {\n        if (permission.domain === 'studio' || permission.code.startsWith('studio:')) permissionCodes.add(permission.code);\n      }\n    }\n    for (const bundleId of group.permissionBundleIds) {\n      if (!bundlesById.has(bundleId)) {\n        throw new Error(`System group ${group.groupCode} references unknown permission bundle ${bundleId}.`);\n      }\n      for (const permissionCode of permissionCodesByBundle.get(bundleId) ?? []) {\n        permissionCodes.add(permissionCode);\n      }\n    }\n    permissionCodesBySystemGroup.set(group.groupCode, [...permissionCodes]);\n  }\n\n  return {\n    declaration,\n    permissionsByCode,\n    permissionCodesByBundle,\n    permissionCodesBySystemGroup,\n    permissionPolicyBySystemGroup,\n  };\n};\n","import Ajv from 'ajv';\nimport type { ComponentAssembly, ComponentAssemblyDescriptor } from '../contracts/component-assembly';\nimport { ComponentAssemblySchema } from '../contracts/component-assembly';\n\nconst validatorPools = new WeakMap<object, Ajv>();\nconst definitionId = 'https://monkeys.design/schemas/component-props/v1';\n\nconst schemaObject = (value: unknown): Record<string, unknown> | undefined =>\n  value !== null && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : undefined;\n\n/** Only declared text leaves are localizable; unrestricted objects do not declare text. */\nconst declaresTextPath = (schema: unknown, path: readonly (string | number)[], definitions: Record<string, unknown>, depth = 0): boolean => {\n  if (depth > 48) return false;\n  const node = schemaObject(schema);\n  if (!node) return false;\n  if (node.const !== undefined || node.enum !== undefined || node.pattern !== undefined || node.format !== undefined) return false;\n  if (Array.isArray(node.allOf) && node.allOf.some(variant => {\n    const constraint = schemaObject(variant);\n    return constraint && ['const', 'enum', 'pattern', 'format'].some(key => constraint[key] !== undefined);\n  })) return false;\n  if (typeof node.$ref === 'string' && node.$ref.startsWith('#/$defs/')) {\n    const name = node.$ref.slice('#/$defs/'.length).replace(/~1/g, '/').replace(/~0/g, '~');\n    if (Object.prototype.hasOwnProperty.call(definitions, name) && declaresTextPath(definitions[name], path, definitions, depth + 1)) return true;\n  }\n  for (const kind of ['anyOf', 'oneOf', 'allOf']) {\n    const variants = node[kind];\n    if (Array.isArray(variants) && variants.some(variant => declaresTextPath(variant, path, definitions, depth + 1))) return true;\n  }\n  if (path.length === 0) {\n    // Enums and discriminators describe structure, even when encoded as strings.\n    return node.type === 'string' || (Array.isArray(node.type) && node.type.includes('string'));\n  }\n  const [part, ...rest] = path;\n  if (typeof part === 'number') {\n    const tuple = Array.isArray(node.prefixItems) ? node.prefixItems : Array.isArray(node.items) ? node.items : undefined;\n    return declaresTextPath(tuple ? tuple[part] : node.items, rest, definitions, depth + 1);\n  }\n  const properties = schemaObject(node.properties);\n  const child = properties && Object.prototype.hasOwnProperty.call(properties, part!) ? properties[part!] : node.additionalProperties;\n  return declaresTextPath(child, rest, definitions, depth + 1);\n};\n\nconst readOwnTextTarget = (props: unknown, path: readonly (string | number)[]): unknown => {\n  let current = props;\n  for (const part of path) {\n    if (current === null || typeof current !== 'object' ||\n      (Array.isArray(current) ? typeof part !== 'number' || part >= current.length : typeof part !== 'string') ||\n      !Object.prototype.hasOwnProperty.call(current, part)) throw new TypeError('Localized component path does not exist.');\n    current = (current as Record<string | number, unknown>)[part];\n  }\n  return current;\n};\n\n/** Compile once per descriptor; runtime values still come from the owning props. */\nexport function compileComponentAssemblyValidator(\n  descriptor: ComponentAssemblyDescriptor,\n  definitions: Record<string, unknown> = {},\n): (value: unknown) => ComponentAssembly {\n  let ajv = validatorPools.get(definitions);\n  if (!ajv) {\n    ajv = new Ajv({ strict: false, allErrors: true, validateFormats: false });\n    ajv.addSchema({ $id: definitionId, $defs: definitions });\n    validatorPools.set(definitions, ajv);\n  }\n  const propertySchema = (schema: unknown): any => {\n    if (Array.isArray(schema)) return schema.map(propertySchema);\n    if (schema && typeof schema === 'object') return Object.fromEntries(Object.entries(schema).map(([key, value]) => [key, key === '$ref' && typeof value === 'string' && value.startsWith('#/$defs/') ? definitionId + value : propertySchema(value)]));\n    return schema ?? {};\n  };\n  const scalarSlot = { anyOf: [{ type: ['string', 'number', 'boolean', 'null'] }, { type: 'array', items: { $ref: '#/$defs/renderable' } }] };\n  const properties = Object.fromEntries(descriptor.props.filter((prop) => prop.kind === 'property' || prop.kind === 'slot' || prop.accepts?.includes('slot') || prop.accepts?.includes('property')).map((prop) => [prop.name, prop.schema === undefined ? scalarSlot : propertySchema(prop.schema)]));\n  const variants = descriptor.variants?.map((variant) => ({ ...variant, validate: ajv.compile({ type: 'object', properties: Object.fromEntries(Object.entries(variant.properties).map(([name, schema]) => [name, propertySchema(schema)])) }) }));\n  const validate = ajv.compile({ $defs: { renderable: scalarSlot }, type: 'object', properties, patternProperties: { '^(data-|aria-)[a-zA-Z0-9_-]+$': { type: ['string', 'number', 'boolean', 'null'] } }, additionalProperties: false });\n  const byName = new Map(descriptor.props.map((prop) => [prop.name, prop]));\n  return (value) => {\n    // Preserve explicit slot-name arrays in declaration order; RenderTree owns each slot.\n    const assembly = ComponentAssemblySchema.parse(value);\n    if (Object.prototype.hasOwnProperty.call(assembly.props, 'dangerouslySetInnerHTML')) throw new TypeError('Executable HTML is not a component assembly prop.');\n    if (!validate(assembly.props)) throw new TypeError(`Invalid ${descriptor.id} props: ${ajv.errorsText(validate.errors)}`);\n    for (const [group, kind] of [['events', 'event'], ['slots', 'slot'], ['renderers', 'renderer']] as const) {\n      for (const name of Object.keys(assembly[group])) {\n        if (byName.get(name)?.kind !== kind && !byName.get(name)?.accepts?.includes(kind)) throw new TypeError(`Invalid ${descriptor.id} ${group} member: ${name}`);\n      }\n    }\n    for (const name of Object.keys(assembly.hosts)) {\n      if (!byName.has(name)) throw new TypeError(`Unknown ${descriptor.id} host member: ${name}`);\n    }\n    for (const name of Object.keys(assembly.messages)) {\n      if (!byName.has(name) || !(['slot', 'property'].includes(byName.get(name)!.kind) || byName.get(name)?.accepts?.includes('slot'))) throw new TypeError(`Invalid ${descriptor.id} localized member: ${name}`);\n    }\n    for (const binding of assembly.messageBindings ?? []) {\n      const root = binding.path[0];\n      const prop = typeof root === 'string' ? byName.get(root) : undefined;\n      if (!prop || !['property', 'slot'].includes(prop.kind) || !Object.prototype.hasOwnProperty.call(assembly.props, root!)) throw new TypeError(`Invalid ${descriptor.id} localized path root.`);\n      if (['id', 'type', 'key', 'contract', 'schemaVersion'].includes(String(binding.path[binding.path.length - 1]))) throw new TypeError(`Invalid ${descriptor.id} structural localization target.`);\n      const target = readOwnTextTarget(assembly.props, binding.path);\n      if ((typeof target !== 'string' && target !== null) || !declaresTextPath(prop.schema ?? scalarSlot, binding.path.slice(1), definitions)) throw new TypeError(`Invalid ${descriptor.id} localized text path.`);\n    }\n    for (const prop of descriptor.props) {\n      if (prop.required && !Object.values(assembly).some((group) => group && typeof group === 'object' && Object.prototype.hasOwnProperty.call(group, prop.name))) {\n        throw new TypeError(`Missing ${descriptor.id} prop: ${prop.name}`);\n      }\n    }\n    if (variants) {\n      const supplied = new Set(['props', 'events', 'slots', 'renderers', 'hosts', 'messages'].flatMap((group) => Object.keys(assembly[group as 'props'])));\n      if (!variants.some((variant) => variant.required.every((name) => supplied.has(name)) && [...supplied].every((name) => variant.allowed.includes(name) || /^(data-|aria-)/.test(name)) && variant.validate(assembly.props))) throw new TypeError(`Invalid ${descriptor.id} prop combination.`);\n    }\n    return assembly;\n  };\n}\n","import type { JsonObject, JsonValue } from '../contracts/common';\nimport {\n  PageExpressionSchema, PagePropertyBindingSchema, PAGE_EXPRESSION_LIMITS, assertPageValueBudget,\n  type PageExpression, type PagePropertyBinding,\n} from '../contracts/page-expression';\n\nexport type PageExpressionContext = Partial<Record<'state' | 'model' | 'bindings' | 'queries' | 'scope' | 'intent' | 'result' | 'actions', JsonValue>>;\nconst unsafe = new Set(['__proto__', 'prototype', 'constructor']);\nconst fail = (code: string): never => { throw Object.assign(new Error(code), { code }); };\nconst assertBudget = assertPageValueBudget;\n\nexport const readPageValue = (value: JsonValue | undefined, path: readonly string[]): JsonValue | undefined => {\n  let current = value;\n  for (const segment of path) {\n    if (unsafe.has(segment)) fail('PAGE_EXPRESSION_UNSAFE_PATH');\n    if (!current || typeof current !== 'object' || !Object.prototype.hasOwnProperty.call(current, segment)) return undefined;\n    if (Array.isArray(current) && !/^(0|[1-9][0-9]*)$/.test(segment)) return undefined;\n    current = (current as JsonObject)[segment];\n  }\n  return current;\n};\n\nconst unary = new Set(['not', 'string', 'number', 'length', 'round', 'entries', 'from-entries', 'trim', 'encode-uri-component']);\nconst binary = new Set(['subtract', 'divide', 'equals', 'not-equals', 'less-than', 'less-or-equal', 'greater-than', 'greater-or-equal', 'includes', 'get', 'fixed']);\n\nconst assertExpressionArity = (expression: PageExpression): void => {\n  const check = (node: PageExpression): void => {\n    if (node.kind === 'operator') {\n      if ((unary.has(node.operator) && node.arguments.length !== 1) || (binary.has(node.operator) && node.arguments.length !== 2) || (['set-path', 'slice'].includes(node.operator) && node.arguments.length !== 3) || (node.operator === 'number-format' && node.arguments.length !== 5)) fail('PAGE_EXPRESSION_ARITY');\n      node.arguments.forEach(check);\n    } else if (node.kind === 'conditional') {\n      check(node.condition); check(node.then); check(node.else);\n    } else if (node.kind === 'object') Object.values(node.fields).forEach(check);\n    else if (node.kind === 'array') node.items.forEach(check);\n    else if (node.kind === 'map' || node.kind === 'filter' || node.kind === 'sum') { check(node.source); check(node.value); }\n  };\n  check(expression);\n};\n\nexport const compilePageExpression = (input: unknown): PageExpression => {\n  assertBudget(input);\n  const expression = PageExpressionSchema.parse(input);\n  assertExpressionArity(expression);\n  return expression;\n};\n\nconst number = (value: JsonValue): number => typeof value === 'number' && Number.isFinite(value) ? value : fail('PAGE_EXPRESSION_TYPE_NUMBER');\nconst boolean = (value: JsonValue): boolean => typeof value === 'boolean' ? value : fail('PAGE_EXPRESSION_TYPE_BOOLEAN');\nconst finite = (value: number): number => Number.isFinite(value) ? value : fail('PAGE_EXPRESSION_NUMBER');\nconst object = (value: JsonValue): JsonObject => value && typeof value === 'object' && !Array.isArray(value) ? value : fail('PAGE_EXPRESSION_TYPE_OBJECT');\nconst valuePath = (value: JsonValue): string[] => {\n  if (!Array.isArray(value) || value.length > 16 || value.some((segment) => typeof segment !== 'string' || !segment || unsafe.has(segment))) return fail('PAGE_EXPRESSION_UNSAFE_PATH');\n  return value as string[];\n};\n\nexport const writePageDraftPath = (source: JsonValue, path: readonly string[], value: JsonValue): JsonValue => {\n  if (!path.length) return value;\n  const [segment, ...rest] = path;\n  if (!segment || unsafe.has(segment) || path.length > 16) return fail('PAGE_EXPRESSION_UNSAFE_PATH');\n  if (Array.isArray(source)) {\n    if (!/^(0|[1-9][0-9]*)$/.test(segment) || Number(segment) >= source.length) return fail('PAGE_EXPRESSION_ARRAY_INDEX');\n    return source.map((item, index) => index === Number(segment) ? writePageDraftPath(item, rest, value) : item);\n  }\n  const current = object(source);\n  return { ...current, [segment]: writePageDraftPath(current[segment] ?? {}, rest, value) };\n};\n\nconst same = (a: JsonValue, b: JsonValue): boolean => {\n  if (a === b) return true;\n  if (!a || !b || typeof a !== 'object' || typeof b !== 'object' || Array.isArray(a) !== Array.isArray(b)) return false;\n  const keys = Object.keys(a);\n  return keys.length === Object.keys(b).length && keys.every((key) => Object.prototype.hasOwnProperty.call(b, key) && same((a as JsonObject)[key]!, (b as JsonObject)[key]!));\n};\n\ntype EvaluationBudget = { operations: number; literals?: Map<PageExpression, JsonValue> };\n\nconst evaluateCompiled = (expression: PageExpression, context: PageExpressionContext, budget: EvaluationBudget): JsonValue => {\n  const run = (node: PageExpression, current: PageExpressionContext): JsonValue => {\n    if (++budget.operations > PAGE_EXPRESSION_LIMITS.operations) fail('PAGE_EXPRESSION_BUDGET');\n    if (node.kind === 'literal') {\n      // Prepared declarations are private snapshots. Never expose their mutable\n      // literal objects to a renderer (or retain a renderer's edits next time).\n      if (!budget.literals || node.value === null || typeof node.value !== 'object') return node.value;\n      if (!budget.literals.has(node)) budget.literals.set(node, structuredClone(node.value));\n      return budget.literals.get(node)!;\n    }\n    if (node.kind === 'read') {\n      const value = readPageValue(current[node.root], node.path) ?? null;\n      assertBudget(value);\n      return value;\n    }\n    if (node.kind === 'conditional') return run(boolean(run(node.condition, current)) ? node.then : node.else, current);\n    if (node.kind === 'object') return Object.fromEntries(Object.entries(node.fields).map(([key, value]) => [key, run(value, current)]));\n    if (node.kind === 'array') return node.items.map((value) => run(value, current));\n    if (node.kind === 'map' || node.kind === 'filter' || node.kind === 'sum') {\n      const source = run(node.source, current);\n      if (!Array.isArray(source)) return fail('PAGE_EXPRESSION_TYPE_ARRAY');\n      if (source.length > PAGE_EXPRESSION_LIMITS.collection) fail('PAGE_EXPRESSION_BUDGET');\n      const values = source.map((item, index) => run(node.value, { ...current, scope: { item, index, parent: current.scope ?? null } }));\n      if (node.kind === 'map') return values;\n      if (node.kind === 'filter') return source.filter((_, index) => boolean(values[index]!));\n      return finite(values.reduce<number>((total, value) => total + number(value), 0));\n    }\n    if (node.kind !== 'operator') return fail('PAGE_EXPRESSION_INVALID');\n    if (node.operator === 'coalesce') {\n      for (const argument of node.arguments) { const value = run(argument, current); if (value !== null) return value; }\n      return null;\n    }\n    if (node.operator === 'and') return node.arguments.every((argument) => boolean(run(argument, current)));\n    if (node.operator === 'or') return node.arguments.some((argument) => boolean(run(argument, current)));\n    const values = node.arguments.map((argument) => run(argument, current));\n    const first = values[0]!;\n    const second = values[1]!;\n    switch (node.operator) {\n      case 'add': return finite(values.reduce<number>((a, b) => a + number(b), 0));\n      case 'subtract': return finite(number(first) - number(second));\n      case 'multiply': return finite(values.reduce<number>((a, b) => a * number(b), 1));\n      case 'divide': { const numerator = number(first); const denominator = number(second); return denominator === 0 ? null : finite(numerator / denominator); }\n      case 'min': return Math.min(...values.map(number));\n      case 'max': return Math.max(...values.map(number));\n      case 'round': return Math.round(number(first));\n      case 'equals': return same(first, second);\n      case 'not-equals': return !same(first, second);\n      case 'less-than': return number(first) < number(second);\n      case 'less-or-equal': return number(first) <= number(second);\n      case 'greater-than': return number(first) > number(second);\n      case 'greater-or-equal': return number(first) >= number(second);\n      case 'not': return !boolean(first);\n      case 'string': return first === null ? '' : typeof first === 'object' ? fail('PAGE_EXPRESSION_TYPE_SCALAR') : String(first);\n      case 'number': return typeof first === 'number' ? first : typeof first === 'string' && first.trim() && Number.isFinite(Number(first)) ? Number(first) : null;\n      case 'concat': {\n        const strings = values.map((value) => typeof value === 'string' ? value : fail('PAGE_EXPRESSION_TYPE_STRING'));\n        if (strings.reduce((bytes, value) => bytes + value.length * 2, 0) > PAGE_EXPRESSION_LIMITS.bytes) fail('PAGE_EXPRESSION_BUDGET');\n        return strings.join('');\n      }\n      case 'length': return typeof first === 'string' || Array.isArray(first) ? first.length : fail('PAGE_EXPRESSION_TYPE_COLLECTION');\n      case 'includes': return Array.isArray(first) ? first.some((value) => same(value, second)) : typeof first === 'string' && typeof second === 'string' ? first.includes(second) : fail('PAGE_EXPRESSION_TYPE_COLLECTION');\n      case 'get': {\n        if (typeof second !== 'string') return fail('PAGE_EXPRESSION_TYPE_STRING');\n        return readPageValue(first, [second]) ?? null;\n      }\n      case 'set-path': return writePageDraftPath(first, valuePath(second), values[2]!);\n      case 'merge': {\n        const objects = values.map(object);\n        const merged = Object.assign({}, ...objects) as JsonObject;\n        assertBudget(merged);\n        return merged;\n      }\n      case 'entries': return Object.entries(object(first));\n      case 'from-entries': {\n        const result: JsonObject = {};\n        if (!Array.isArray(first) || first.length > PAGE_EXPRESSION_LIMITS.collection) return fail('PAGE_EXPRESSION_TYPE_ARRAY');\n        for (const pair of first) {\n          if (!Array.isArray(pair) || pair.length !== 2 || typeof pair[0] !== 'string' || unsafe.has(pair[0])) return fail('PAGE_EXPRESSION_ENTRY');\n          if (Object.prototype.hasOwnProperty.call(result, pair[0])) return fail('PAGE_EXPRESSION_DUPLICATE_KEY');\n          result[pair[0]] = pair[1]!;\n        }\n        return result;\n      }\n      case 'array-concat': {\n        const result: JsonValue[] = [];\n        for (const value of values) {\n          if (!Array.isArray(value)) return fail('PAGE_EXPRESSION_TYPE_ARRAY');\n          if (result.length + value.length > PAGE_EXPRESSION_LIMITS.collection) return fail('PAGE_EXPRESSION_BUDGET');\n          result.push(...value);\n        }\n        return result;\n      }\n      case 'slice': {\n        const start = number(second); const end = number(values[2]!);\n        if (!Array.isArray(first) || !Number.isSafeInteger(start) || !Number.isSafeInteger(end)) return fail('PAGE_EXPRESSION_TYPE_ARRAY');\n        return first.slice(start, end);\n      }\n      case 'trim': return typeof first === 'string' ? first.trim() : fail('PAGE_EXPRESSION_TYPE_STRING');\n      case 'encode-uri-component': {\n        if (typeof first !== 'string') return fail('PAGE_EXPRESSION_TYPE_STRING');\n        try { return encodeURIComponent(first); } catch { return fail('PAGE_EXPRESSION_INVALID_UNICODE'); }\n      }\n      case 'number-format': {\n        if (second !== 'en-US' && second !== 'zh-CN') return fail('PAGE_EXPRESSION_LOCALE');\n        const minimumFractionDigits = number(values[2]!);\n        const maximumFractionDigits = number(values[3]!);\n        if (![minimumFractionDigits, maximumFractionDigits].every((digits) => Number.isSafeInteger(digits) && digits >= 0 && digits <= 10) || minimumFractionDigits > maximumFractionDigits) return fail('PAGE_EXPRESSION_PRECISION');\n        return new Intl.NumberFormat(second, { minimumFractionDigits, maximumFractionDigits, useGrouping: boolean(values[4]!) }).format(number(first));\n      }\n      case 'fixed': {\n        const digits = number(second);\n        if (!Number.isSafeInteger(digits) || digits < 0 || digits > 10) return fail('PAGE_EXPRESSION_PRECISION');\n        return number(first).toFixed(digits);\n      }\n\n    }\n  };\n  const result = run(expression, context);\n  assertBudget(result);\n  return result;\n};\n\nexport const evaluatePageExpression = (expression: unknown, context: PageExpressionContext): JsonValue =>\n  evaluateCompiled(compilePageExpression(expression), context, { operations: 0 });\n\n/** Snapshot and validate an immutable expression once, then evaluate fresh inputs.\n * Dynamic value limits and the operation budget apply independently to every call.\n * Mutable literal outputs are isolated from the private compiled declaration.\n */\nexport const preparePageExpression = (input: unknown): ((context: PageExpressionContext) => JsonValue) => {\n  const expression = compilePageExpression(input);\n  return context => evaluateCompiled(expression, context, { operations: 0, literals: new Map() });\n};\n\nconst write = (input: JsonObject, path: readonly string[], value: JsonValue): JsonObject => {\n  const [key, ...rest] = path;\n  if (!key || unsafe.has(key)) return fail('PAGE_EXPRESSION_UNSAFE_PATH');\n  if (!rest.length) return { ...input, [key]: value };\n  const child = input[key];\n  if (child !== undefined && (child === null || typeof child !== 'object' || Array.isArray(child))) fail('PAGE_PROPERTY_PATH_TYPE');\n  return { ...input, [key]: write((child ?? {}) as JsonObject, rest, value) };\n};\n\nconst parsePropertyBindings = (bindings: readonly PagePropertyBinding[]): PagePropertyBinding[] => {\n  assertBudget(bindings);\n  const parsed = bindings.map((binding) => PagePropertyBindingSchema.parse(binding));\n  const paths: string[][] = [];\n  for (const binding of parsed) {\n    if (paths.some((path) => path.slice(0, Math.min(path.length, binding.targetPath.length)).every((key, i) => key === binding.targetPath[i]))) fail('PAGE_PROPERTY_OVERLAP');\n    paths.push(binding.targetPath);\n  }\n  return parsed;\n};\n\ntype PropertyWriter = (input: JsonObject, value: JsonValue) => JsonObject;\nconst preparePropertyWriter = (path: readonly string[], index = 0): PropertyWriter => {\n  // The private path was validated by PagePropertyBindingSchema. Only the\n  // destination model's shape can change between evaluations.\n  const key = path[index]!;\n  if (index === path.length - 1) return (input, value) => ({ ...input, [key]: value });\n  const childWriter = preparePropertyWriter(path, index + 1);\n  return (input, value) => {\n    const child = input[key];\n    if (child !== undefined && (child === null || typeof child !== 'object' || Array.isArray(child))) fail('PAGE_PROPERTY_PATH_TYPE');\n    return { ...input, [key]: childWriter((child ?? {}) as JsonObject, value) };\n  };\n};\n\nconst projectParsedProperties = (base: JsonObject, parsed: readonly PagePropertyBinding[], context: PageExpressionContext, writers?: readonly PropertyWriter[]): JsonObject => {\n  const budget: EvaluationBudget = { operations: 0, ...(writers ? { literals: new Map<PageExpression, JsonValue>() } : {}) };\n  return parsed.reduce((model, binding, index) => {\n    // PagePropertyBindingSchema has already parsed and budget-checked the AST.\n    // Legacy calls retain evaluation-order arity errors; prepared plans do this once.\n    if (!writers) assertExpressionArity(binding.expression);\n    const value = evaluateCompiled(binding.expression, context, budget);\n    const type = value === null ? 'null' : Array.isArray(value) ? 'array' : typeof value;\n    if (binding.valueType && type !== binding.valueType) fail('PAGE_PROPERTY_TYPE');\n    return writers ? writers[index]!(model, value) : write(model, binding.targetPath, value);\n  }, base);\n};\n\n/** Validate and snapshot declarations once; each call evaluates fresh dynamic inputs.\n * Keeps one operation budget across all bindings and all dynamic value/type guards.\n * The returned closure owns its snapshot and can be shared by repeated row instances.\n */\nexport const preparePagePropertyProjection = (bindings: readonly PagePropertyBinding[]): ((base: JsonObject, context: PageExpressionContext) => JsonObject) => {\n  const parsed = parsePropertyBindings(bindings);\n  parsed.forEach(binding => assertExpressionArity(binding.expression));\n  const writers = parsed.map(binding => preparePropertyWriter(binding.targetPath));\n  return (base, context) => projectParsedProperties(base, parsed, context, writers);\n};\n\nexport const projectPageProperties = (base: JsonObject, bindings: readonly PagePropertyBinding[], context: PageExpressionContext): JsonObject =>\n  projectParsedProperties(base, parsePropertyBindings(bindings), context);\n","import type { JsonObject, JsonValue } from '../contracts/common';\nimport { RecordEditorDraftOperationSchema, RecordEditorPathSchema, RecordEditorSubmissionSnapshotSchema, RecordEditorValidationDetailsSchema, type RecordEditorSubmissionSnapshot, type RecordEditorDraft, type RecordEditorDraftOperation, type RecordEditorPath } from '../contracts/record-editor-draft';\n\nconst own = (value: object, key: string) => Object.prototype.hasOwnProperty.call(value, key);\nexport const recordEditorValuesEqual = (left: JsonValue, right: JsonValue): boolean => {\n  if (left === right) return true;\n  if (!left || !right || typeof left !== 'object' || typeof right !== 'object' || Array.isArray(left) !== Array.isArray(right)) return false;\n  const keys = Object.keys(left);\n  return keys.length === Object.keys(right).length && keys.every((key) => own(right, key) && recordEditorValuesEqual((left as JsonObject)[key]!, (right as JsonObject)[key]!));\n};\nexport const recordEditorPathKey = (path: RecordEditorPath): string => JSON.stringify(RecordEditorPathSchema.parse(path));\nconst assertValue = (value: JsonValue) => {\n  let nodes = 0;\n  const visit = (current: JsonValue, depth: number) => {\n    if (++nodes > 16384 || depth > 32) throw new RangeError('Editor draft exceeds its value budget.');\n    if (current !== null && typeof current !== 'string' && typeof current !== 'boolean' && !(typeof current === 'number' && Number.isFinite(current)) && typeof current !== 'object') throw new TypeError('Editor draft requires JSON values.');\n    if (typeof current === 'number' && !Number.isFinite(current)) throw new TypeError('Editor draft requires finite numbers.');\n    if (current && typeof current === 'object' && !Array.isArray(current) && Object.getPrototypeOf(current) !== Object.prototype && Object.getPrototypeOf(current) !== null) throw new TypeError('Editor draft requires plain objects.');\n    if (current && typeof current === 'object') for (const [key, child] of Object.entries(current)) {\n      if (['__proto__', 'prototype', 'constructor'].includes(key)) throw new TypeError('Unsafe editor member.');\n      visit(child, depth + 1);\n    }\n  };\n  visit(value, 0);\n};\nexport const createRecordEditorDraft = (revision: string, value: JsonObject): RecordEditorDraft => {\n  if (!revision || revision.length > 256) throw new TypeError('Editor reset requires a revision.');\n  assertValue(value);\n  const original = JSON.parse(JSON.stringify(value)) as JsonObject;\n  return { revision, original, value: JSON.parse(JSON.stringify(original)), touched: [], errors: [] };\n};\nexport const recordEditorDraftIsDirty = (draft: RecordEditorDraft): boolean => !recordEditorValuesEqual(draft.original, draft.value);\nexport const recordEditorArrayItems = (value: JsonValue | undefined, idKey: string): JsonObject[] => {\n  RecordEditorPathSchema.parse([idKey]);\n  if (!Array.isArray(value) || value.length > 1000) throw new TypeError('Editor array requires at most 1000 identified objects.');\n  const seen = new Set<string>();\n  for (const item of value) {\n    if (!item || typeof item !== 'object' || Array.isArray(item) || !own(item, idKey) || typeof item[idKey] !== 'string' || !item[idKey] || seen.has(item[idKey] as string)) throw new TypeError('Editor array requires unique non-empty stable IDs.');\n    seen.add(item[idKey] as string);\n  }\n  return value as JsonObject[];\n};\nexport const readRecordEditorPath = (value: JsonValue, path: RecordEditorPath): JsonValue | undefined => {\n  let current: JsonValue | undefined = value;\n  for (const segment of RecordEditorPathSchema.parse(path)) {\n    if (typeof segment !== 'string') current = recordEditorArrayItems(current, segment.idKey).find((item) => item[segment.idKey] === segment.itemId);\n    else current = current && typeof current === 'object' && !Array.isArray(current) && own(current, segment) ? current[segment] : undefined;\n    if (current === undefined) return undefined;\n  }\n  return current;\n};\nconst write = (value: JsonValue, path: RecordEditorPath, replacement: JsonValue): JsonValue => {\n  if (!path.length) return replacement;\n  const [segment, ...rest] = path;\n  if (typeof segment !== 'string') {\n    const items = recordEditorArrayItems(value, segment!.idKey);\n    const index = items.findIndex((item) => item[segment!.idKey] === segment!.itemId);\n    if (index < 0 || rest[0] === segment!.idKey) throw new TypeError('Editor item is missing or its stable ID is being changed.');\n    const result = items.map((item, i) => i === index ? write(item, rest, replacement) : item);\n    recordEditorArrayItems(result, segment!.idKey);\n    if ((result[index] as JsonObject)[segment!.idKey] !== segment!.itemId) throw new TypeError('Editor stable ID cannot change.');\n    return result;\n  }\n  if (!value || typeof value !== 'object' || Array.isArray(value)) throw new TypeError('Editor path requires an object.');\n  return { ...value, [segment]: write(own(value, segment) ? value[segment]! : {}, rest, replacement) };\n};\nexport const applyRecordEditorDraft = (draft: RecordEditorDraft, input: RecordEditorDraftOperation): RecordEditorDraft => {\n  const operation = RecordEditorDraftOperationSchema.parse(input);\n  if (operation.kind === 'reset') return createRecordEditorDraft(operation.revision, operation.value);\n  const key = recordEditorPathKey(operation.path);\n  const touched = draft.touched.some((path) => recordEditorPathKey(path) === key) ? draft.touched : [...draft.touched, operation.path];\n  if (touched.length > 4096) throw new RangeError('Editor touched path budget exceeded.');\n  if (operation.kind === 'touch') return { ...draft, touched };\n  let replacement: JsonValue;\n  if (operation.kind === 'set') replacement = operation.value;\n  else {\n    const items = [...recordEditorArrayItems(readRecordEditorPath(draft.value, operation.path), operation.idKey)];\n    if (operation.kind === 'insert') {\n      recordEditorArrayItems([...items, operation.value], operation.idKey);\n      const before = operation.beforeId === undefined ? items.length : items.findIndex((item) => item[operation.idKey] === operation.beforeId);\n      if (before < 0) throw new TypeError('Editor insertion target is missing.');\n      items.splice(before, 0, operation.value);\n    } else {\n      const index = items.findIndex((item) => item[operation.idKey] === operation.itemId);\n      if (index < 0) throw new TypeError('Editor item is missing.');\n      if (operation.kind === 'move' && operation.beforeId === operation.itemId) return { ...draft, touched };\n      const [item] = items.splice(index, 1);\n      if (operation.kind === 'move') {\n        const before = operation.beforeId === undefined ? items.length : items.findIndex((entry) => entry[operation.idKey] === operation.beforeId);\n        if (before < 0) throw new TypeError('Editor move target is missing.');\n        items.splice(before, 0, item!);\n      }\n    }\n    replacement = items;\n  }\n  const value = write(draft.value, operation.path, replacement);\n  if (!value || typeof value !== 'object' || Array.isArray(value)) throw new TypeError('Editor root requires an object.');\n  assertValue(value);\n  return { ...draft, value, touched, errors: [] };\n};\n\n\n/** Deliberately select only the non-sensitive draft envelope, excluding secretChanges. */\nexport const captureRecordEditorSubmission = (payload: unknown): RecordEditorSubmissionSnapshot | undefined => {\n  if (!payload || typeof payload !== 'object' || Array.isArray(payload)) return undefined;\n  const input = payload as Record<string, unknown>;\n  const parsed = RecordEditorSubmissionSnapshotSchema.safeParse({ revision: input.draftRevision, value: input.values });\n  if (!parsed.success) return undefined;\n  try {\n    const draft = createRecordEditorDraft(parsed.data.revision, parsed.data.value);\n    return { revision: draft.revision, value: draft.value };\n  } catch { return undefined; }\n};\n\nexport const projectRecordEditorValidation = (details: unknown, submission: RecordEditorSubmissionSnapshot | undefined) => {\n  if (!submission) return undefined;\n  const parsed = RecordEditorValidationDetailsSchema.safeParse(details);\n  return parsed.success ? { revision: submission.revision, value: submission.value, errors: parsed.data.errors } : undefined;\n};\n","import Ajv2020 from 'ajv/dist/2020';\nimport { JsonObjectSchema, type JsonObject } from '../contracts/common';\n\n/** Compile the authoritative target input schema once; never fetch external schemas. */\nexport const compileTargetRenderModelValidator = (schema: JsonObject, documents: readonly JsonObject[] = []): ((model: unknown) => JsonObject) => {\n  const ajv = new Ajv2020({ strict: false, allErrors: false, coerceTypes: false, useDefaults: false, removeAdditional: false });\n  const registered = new Set<string>();\n  for (const document of documents) {\n    if (document !== schema && typeof document.$id === 'string' && document.$id !== schema.$id && !registered.has(document.$id)) {\n      ajv.addSchema(document);\n      registered.add(document.$id);\n    }\n  }\n  const validate = ajv.compile(schema);\n  return (input) => {\n    const model = JsonObjectSchema.parse(input);\n    if (!validate(model)) throw Object.assign(new TypeError('Target render model does not match its declared schema.'), { code: 'DECLARATIVE_TARGET_RENDER_MODEL_INVALID' });\n    return model;\n  };\n};\n","import { PageStreamEventSchema, PageStreamDescriptorSchema, PAGE_STREAM_MAX_BUFFER_BYTES, PAGE_STREAM_MAX_BUFFER_EVENTS, PAGE_STREAM_MAX_FRAME_BYTES } from '../contracts/page-stream';\nimport type { JsonObject } from '../contracts/common';\nimport { canonicalContentHash } from './declarative-control-compiler';\nexport type PageStreamReducerErrorCode = 'PAGE_STREAM_INVALID_FRAME' | 'PAGE_STREAM_ID_MISMATCH' | 'PAGE_STREAM_SNAPSHOT_REQUIRED' | 'PAGE_STREAM_SEQUENCE_CONFLICT' | 'PAGE_STREAM_SEQUENCE_GAP' | 'PAGE_STREAM_TERMINATED' | 'PAGE_STREAM_CAPACITY_EXCEEDED';\nexport class PageStreamReducerError extends Error { constructor(readonly code: PageStreamReducerErrorCode) { super(code); this.name = 'PageStreamReducerError'; } }\nexport interface PageStreamState {\n readonly streamId: string;\n readonly status: 'awaiting-snapshot' | 'open' | 'ended' | 'error';\n readonly model: JsonObject | undefined;\n readonly events: readonly JsonObject[];\n readonly sequence: number;\n readonly cursor: string | undefined;\n readonly error: { code: string; retryable: boolean } | undefined;\n readonly seen: Readonly<Record<string, string>>;\n readonly retainedBytes: number;\n}\nexport function createPageStreamState(streamId: string): PageStreamState {\n if (!PageStreamDescriptorSchema.shape.streamId.safeParse(streamId).success) throw new PageStreamReducerError('PAGE_STREAM_ID_MISMATCH');\n return { streamId, status: 'awaiting-snapshot', model: undefined, events: [], sequence: 0, cursor: undefined, error: undefined, seen: {}, retainedBytes: 0 };\n}\nconst MAX_SEEN_FRAMES = 2048;\nconst bytes = (value: unknown) => new TextEncoder().encode(JSON.stringify(value)).byteLength;\n/** Verified snapshots replace presentation state; deltas retain every event or reject atomically. */\nexport function applyPageStreamEvent(state: PageStreamState, input: unknown): PageStreamState {\n let frame: ReturnType<typeof PageStreamEventSchema.parse>;\n try { if (bytes(input) > PAGE_STREAM_MAX_FRAME_BYTES) throw new Error(); frame = PageStreamEventSchema.parse(input); }\n catch { throw new PageStreamReducerError('PAGE_STREAM_INVALID_FRAME'); }\n if (frame.streamId !== state.streamId) throw new PageStreamReducerError('PAGE_STREAM_ID_MISMATCH');\n const fingerprint = canonicalContentHash(frame);\n const seen = state.seen[String(frame.sequence)];\n if (seen) { if (seen === fingerprint) return state; throw new PageStreamReducerError('PAGE_STREAM_SEQUENCE_CONFLICT'); }\n if (state.status === 'ended' || state.status === 'error') throw new PageStreamReducerError('PAGE_STREAM_TERMINATED');\n if (state.status === 'awaiting-snapshot') { if (frame.type !== 'snapshot') throw new PageStreamReducerError('PAGE_STREAM_SNAPSHOT_REQUIRED'); }\n else if (frame.sequence !== state.sequence + 1) throw new PageStreamReducerError(frame.sequence <= state.sequence ? 'PAGE_STREAM_SEQUENCE_CONFLICT' : 'PAGE_STREAM_SEQUENCE_GAP');\n const model = frame.type === 'snapshot' ? frame.payload.model : state.model;\n const events = frame.type === 'snapshot' ? [] : frame.type === 'delta' ? [...state.events, ...frame.payload.events] : state.events;\n // A snapshot replaces the model and replay baseline. Deltas retain a bounded\n // fingerprint window; replay older than that window still fails sequence checks.\n const nextSeen = frame.type === 'snapshot' ? { [String(frame.sequence)]: fingerprint } : {\n  ...Object.fromEntries(Object.entries(state.seen).filter(([sequence]) => Number(sequence) > frame.sequence - MAX_SEEN_FRAMES)),\n  [String(frame.sequence)]: fingerprint,\n };\n const retainedBytes = bytes({ model, events, seen: nextSeen });\n if (events.length > PAGE_STREAM_MAX_BUFFER_EVENTS || retainedBytes > PAGE_STREAM_MAX_BUFFER_BYTES) throw new PageStreamReducerError('PAGE_STREAM_CAPACITY_EXCEEDED');\n return { streamId: state.streamId, model, events, sequence: frame.sequence, cursor: frame.cursor, seen: nextSeen, retainedBytes,\n status: frame.type === 'end' ? 'ended' : frame.type === 'error' ? 'error' : 'open', error: frame.type === 'error' ? frame.payload : undefined };\n}\n","import Ajv2020 from \"ajv/dist/2020\";\nimport type {\n  ActionProgramDefinition,\n  RevisionRef,\n} from \"../contracts/declarative-control\";\nimport type { SchemaDefinition } from \"../contracts/semantic\";\nimport {\n  canonicalContentHash,\n  sameRevisionRef,\n} from \"./declarative-control-compiler\";\n\nexport interface ProgramCapability {\n  input: unknown;\n  result: unknown;\n}\nexport type ProgramCapabilityMap = Record<string, ProgramCapability>;\nexport interface ActionProgramContext<\n  Q extends ProgramCapabilityMap,\n  C extends ProgramCapabilityMap,\n  F extends Record<string, unknown> = Record<string, unknown>,\n  S extends Record<string, unknown> = Record<string, unknown>,\n  R extends string = string,\n> {\n  query<K extends keyof Q & string>(\n    id: K,\n    input: Q[K][\"input\"],\n  ): Promise<Q[K][\"result\"]>;\n  command<K extends keyof C & string>(\n    id: K,\n    input: C[K][\"input\"],\n    options: { stepKey: string },\n  ): Promise<C[K][\"result\"]>;\n  ui: {\n    form<K extends keyof F & string>(\n      schemaId: K,\n      value: F[K],\n    ): Promise<{ status: \"submitted\"; value: F[K] } | { status: \"cancelled\" }>;\n    toast(message: string, tone: \"success\" | \"error\" | \"info\"): Promise<void>;\n    refresh(alias: R): Promise<void>;\n    download(handle: string): Promise<{ status: \"started\" }>;\n  };\n  state: {\n    get<K extends keyof S & string>(alias: K): Promise<S[K]>;\n    set<K extends keyof S & string>(alias: K, value: S[K]): Promise<void>;\n  };\n}\nexport interface ProgramSchemaRegistration {\n  definitionRevisionRef: RevisionRef;\n  definition: SchemaDefinition;\n}\n\n/** Strict structural projection. Validation-only keywords remain enforced by runtime AJV. */\nexport function programSchemaType(\n  schema: unknown,\n  path = \"$\",\n  depth = 0,\n): string {\n  if (\n    depth > 32 ||\n    !schema ||\n    typeof schema !== \"object\" ||\n    Array.isArray(schema)\n  )\n    throw new Error(`Unsupported schema at ${path}`);\n  const value = schema as Record<string, unknown>;\n  const allowed = new Set([\n    \"$schema\",\n    \"$id\",\n    \"title\",\n    \"description\",\n    \"type\",\n    \"properties\",\n    \"required\",\n    \"additionalProperties\",\n    \"items\",\n    \"enum\",\n    \"const\",\n    \"anyOf\",\n    \"oneOf\",\n    \"minLength\",\n    \"maxLength\",\n    \"pattern\",\n    \"format\",\n    \"minimum\",\n    \"maximum\",\n    \"exclusiveMinimum\",\n    \"exclusiveMaximum\",\n    \"multipleOf\",\n    \"minItems\",\n    \"maxItems\",\n    \"uniqueItems\",\n    \"minProperties\",\n    \"maxProperties\",\n    \"default\",\n    \"examples\",\n    \"readOnly\",\n    \"writeOnly\",\n  ]);\n  for (const key of Object.keys(value))\n    if (!allowed.has(key))\n      throw new Error(`Unsupported schema keyword ${path}.${key}`);\n  const child = (schema: unknown, key: string) =>\n    programSchemaType(schema, `${path}.${key}`, depth + 1);\n  const literal = (input: unknown) => {\n    if (\n      input !== null &&\n      ![\"string\", \"number\", \"boolean\"].includes(typeof input)\n    )\n      throw new Error(`Unsupported literal at ${path}`);\n    return JSON.stringify(input);\n  };\n  if (\"const\" in value) return literal(value.const);\n  if (Array.isArray(value.enum) && value.enum.length)\n    return value.enum.map(literal).join(\" | \");\n  if (Array.isArray(value.anyOf) || Array.isArray(value.oneOf))\n    return (\n      ((value.anyOf ?? value.oneOf) as unknown[])\n        .map((schema, i) => `(${child(schema, String(i))})`)\n        .join(\" | \") || \"never\"\n    );\n  if (Array.isArray(value.type))\n    return value.type\n      .map((type) => child({ ...value, type }, String(type)))\n      .join(\" | \");\n  switch (value.type) {\n    case \"null\":\n      return \"null\";\n    case \"boolean\":\n      return \"boolean\";\n    case \"string\":\n      return \"string\";\n    case \"number\":\n    case \"integer\":\n      return \"number\";\n    case \"array\":\n      return `Array<${child(value.items, \"items\")}>`;\n    case \"object\": {\n      const properties = value.properties ?? {};\n      if (\n        typeof properties !== \"object\" ||\n        !properties ||\n        Array.isArray(properties)\n      )\n        throw new Error(`Invalid properties at ${path}`);\n      const required = value.required ?? [];\n      if (\n        !Array.isArray(required) ||\n        required.some(\n          (key) =>\n            typeof key !== \"string\" ||\n            !Object.prototype.hasOwnProperty.call(properties, key),\n        )\n      )\n        throw new Error(`Unsupported required keys at ${path}`);\n      const fields = Object.entries(properties).map(\n        ([key, schema]) =>\n          `${JSON.stringify(key)}${required.includes(key) ? \"\" : \"?\"}: ${child(schema, key)};`,\n      );\n      if (value.additionalProperties !== false) {\n        // A schema-valued index signature could conflict with named fields; reject it explicitly.\n        if (\n          value.additionalProperties !== undefined &&\n          value.additionalProperties !== true\n        )\n          throw new Error(`Unsupported additionalProperties at ${path}`);\n        fields.push(\"[key: string]: unknown;\");\n      }\n      return `{ ${fields.join(\" \")} }`;\n    }\n    default:\n      throw new Error(`Schema needs a supported explicit type at ${path}`);\n  }\n}\n\nexport function generateActionProgramTypes(\n  definition: ActionProgramDefinition,\n  schemas: readonly ProgramSchemaRegistration[],\n): string {\n  const resolve = (ref: RevisionRef) => {\n    const matches = schemas.filter((entry) =>\n      sameRevisionRef(entry.definitionRevisionRef, ref),\n    );\n    if (\n      matches.length !== 1 ||\n      canonicalContentHash(matches[0]!.definition) !== ref.contentHash\n    )\n      throw new Error(`Missing exact Schema ${ref.id}`);\n    return programSchemaType(matches[0]!.definition.document);\n  };\n  const formRefs = new Map(\n    [\n      definition.inputSchemaRevisionRef,\n      definition.resultSchemaRevisionRef,\n      ...definition.dependencies.flatMap((dep) => [\n        dep.inputSchemaRevisionRef,\n        dep.resultSchemaRevisionRef,\n      ]),\n    ].map((ref) => [ref.id, ref]),\n  );\n  for (const ref of [\n    definition.inputSchemaRevisionRef,\n    definition.resultSchemaRevisionRef,\n    ...definition.dependencies.flatMap((dep) => [\n      dep.inputSchemaRevisionRef,\n      dep.resultSchemaRevisionRef,\n    ]),\n  ]) {\n    if (!sameRevisionRef(formRefs.get(ref.id)!, ref))\n      throw new Error(\"Ambiguous form Schema revision \" + ref.id);\n  }\n  const forms =\n    \"{\" +\n    [...formRefs]\n      .map(([id, ref]) => JSON.stringify(id) + \": \" + resolve(ref) + \";\")\n      .join(\" \") +\n    \"}\";\n  const states =\n    \"{\" +\n    definition.stateAliases\n      .map(\n        (entry) =>\n          JSON.stringify(entry.alias) +\n          \": \" +\n          resolve(entry.schemaRevisionRef) +\n          \";\",\n      )\n      .join(\" \") +\n    \"}\";\n  const refresh =\n    definition.refreshAliases\n      .map((alias) => JSON.stringify(alias))\n      .join(\" | \") || \"never\";\n  const capabilityMap = (kind: \"query\" | \"command\") =>\n    `{\\n${definition.dependencies\n      .filter((dep) => dep.kind === kind)\n      .map(\n        (dep) =>\n          `${JSON.stringify(dep.revisionRef.id)}: {input: ${\"Pick<\" + resolve(dep.inputSchemaRevisionRef) + \", \" + (dep.dynamicInputKeys.map((key) => JSON.stringify(key)).join(\" | \") || \"never\") + \">\"}; result: ${resolve(dep.resultSchemaRevisionRef)}};`,\n      )\n      .join(\"\\n\")}\\n}`;\n  return `// Generated from exact program/schema revisions. Do not edit.\\nimport type { ActionProgramContext } from \"@inf-monkeys-tech/monkeys\";\\nexport type Input = ${resolve(definition.inputSchemaRevisionRef)};\\nexport type Result = ${resolve(definition.resultSchemaRevisionRef)};\\nexport type Queries = ${capabilityMap(\"query\")};\\nexport type Commands = ${capabilityMap(\"command\")};\\nexport type BaseContext = ActionProgramContext<Queries, Commands, ${forms}, ${states}, ${refresh}>;\\nexport type Context = Omit<BaseContext, \"ui\" | \"state\"> & {ui: Pick<BaseContext[\"ui\"], ${\n    definition.effects\n      .filter((effect) => !effect.startsWith(\"state.\"))\n      .map((effect) => JSON.stringify(effect))\n      .join(\" | \") || \"never\"\n  }>; state: Pick<BaseContext[\"state\"], ${\n    definition.effects\n      .filter((effect) => effect.startsWith(\"state.\"))\n      .map((effect) => JSON.stringify(effect.slice(6)))\n      .join(\" | \") || \"never\"\n  }>};\\nexport type Program = (context: Context, input: Input) => Promise<Result>;\\n`;\n}\n\n/** Validates JSON values without imposing a component render-model object shape. */\nexport function compileProgramValueValidator(schema: Record<string, unknown>, documents: readonly Record<string, unknown>[] = []) {\n  const ajv = new Ajv2020({ strict: false, allErrors: false, coerceTypes: false, removeAdditional: false, useDefaults: false });\n  const ids = new Set<string>();\n  for (const document of documents) if (typeof document.$id === \"string\" && document.$id !== schema.$id && !ids.has(document.$id)) { ajv.addSchema(document); ids.add(document.$id); }\n  return ajv.compile(schema);\n}\n","import { z } from 'zod';\nimport { DeclarativeRuntimeResolveResultSchema, type DeclarativeRuntimeResolveResult } from '../contracts/declarative-control-http';\n\nexport const RUNTIME_DEFINITION_FORMAT = 'dictionary-v1';\nexport const RUNTIME_DEFINITION_FORMAT_HEADER = 'x-monkeys-runtime-definition-format';\nconst CONTRACT = 'DeclarativeRuntimeDictionary';\nconst MAX_ENTRIES = 8192;\nconst MAX_EXPANDED_CHARACTERS = 32 * 1024 * 1024;\ntype ObjectValue = Record<string, any>;\nexport interface RuntimeDefinitionDictionary {\n  contract: typeof CONTRACT;\n  schemaVersion: 1;\n  payload: unknown;\n  values: unknown[];\n}\n\nconst record = (value: unknown): value is ObjectValue => value !== null && typeof value === 'object' && !Array.isArray(value);\nconst list = (value: unknown): ObjectValue[] => {\n  if (!Array.isArray(value) || value.length > 4096 || value.some(item => !record(item))) throw new TypeError('Invalid runtime definition collection.');\n  return value;\n};\n\n/** Copy only protocol containers. Opaque props, expressions and business JSON are never rewritten. */\nfunction mapDefinition(input: unknown, map: (value: unknown) => unknown): unknown {\n  if (!record(input) || input.outcome !== 'declarative' || !record(input.resolved) || !record(input.resolved.page)) return input;\n  const page = input.resolved.page;\n  const fields = (source: ObjectValue, names: string[]) => {\n    const result = { ...source };\n    for (const name of names) if (source[name] !== undefined) result[name] = map(source[name]);\n    return result;\n  };\n  return { ...input, resolved: { ...input.resolved, page: {\n    ...page,\n    capabilityInstances: list(page.capabilityInstances).map(instance => fields(instance, [\n      'capabilityRevisionRef', 'providerRevisionRef', 'propertySchemaRevisionRef',\n    ])),\n    programBindings: list(page.programBindings ?? []).map(binding => fields(binding, [\n      'definition', 'programRevisionRef', 'sourceIntentSchemaRevisionRef',\n    ])),\n    renderTree: { ...page.renderTree, nodes: list(page.renderTree?.nodes).map(node => fields(node, [\n      'pageRef', 'capabilityRef', 'providerRef', 'lifecycle', 'scroll', 'surface',\n    ])) },\n  } } };\n}\n\n/** Input has already passed the runtime service contract. No extra whole-page parse/copy here. */\nexport function encodeRuntimeDefinition(input: DeclarativeRuntimeResolveResult): RuntimeDefinitionDictionary {\n  const values: unknown[] = [];\n  const indices = new Map<string, number>();\n  const identities = new WeakMap<object, number>();\n  const payload = mapDefinition(input, value => {\n    if (!record(value)) throw new TypeError('Invalid runtime definition object.');\n    const existing = identities.get(value);\n    if (existing !== undefined) return existing;\n    const key = JSON.stringify(value);\n    let index = indices.get(key);\n    if (index === undefined) {\n      index = values.length;\n      if (index >= MAX_ENTRIES) throw new RangeError('Runtime definition dictionary is too large.');\n      indices.set(key, index);\n      values.push(value);\n    }\n    identities.set(value, index);\n    return index;\n  });\n  return { contract: CONTRACT, schemaVersion: 1, payload, values };\n}\n\n/** Expansion is transport-only. The caller validates the canonical schema exactly once afterwards. */\nexport function expandRuntimeDefinition(input: unknown): unknown {\n  if (!record(input) || input.contract !== CONTRACT) return input;\n  if (input.schemaVersion !== 1 || !Array.isArray(input.values) || input.values.length > MAX_ENTRIES ||\n      Object.keys(input).some(key => !['contract', 'schemaVersion', 'payload', 'values'].includes(key)))\n    throw new TypeError('Invalid runtime definition dictionary.');\n  const lengths = input.values.map(value => {\n    if (!record(value)) throw new TypeError('Invalid runtime definition dictionary entry.');\n    return JSON.stringify(value).length;\n  });\n  let expandedLength = JSON.stringify(input.payload).length;\n  const used = new Set<number>();\n  const result = mapDefinition(input.payload, index => {\n    if (typeof index !== 'number' || !Number.isSafeInteger(index) || index < 0 || index >= input.values.length)\n      throw new TypeError('Invalid runtime definition dictionary reference.');\n    expandedLength += lengths[index];\n    if (expandedLength > MAX_EXPANDED_CHARACTERS) throw new RangeError('Expanded runtime definition is too large.');\n    used.add(index);\n    return input.values[index];\n  });\n  if (used.size !== input.values.length) throw new TypeError('Unused runtime definition dictionary entry.');\n  return result;\n}\n\nexport const RuntimeDefinitionResponseSchema = z.preprocess((input, context) => {\n  try { return expandRuntimeDefinition(input); }\n  catch (error) { context.addIssue({ code: 'custom', message: error instanceof Error ? error.message : 'Invalid runtime definition.' }); return z.NEVER; }\n}, DeclarativeRuntimeResolveResultSchema);\n\nexport const runtimeDefinitionEtag = (etag: string): string => {\n  if (!/^\"[^\"\\r\\n]+\"$/.test(etag)) throw new TypeError('Invalid runtime ETag.');\n  return `\"${RUNTIME_DEFINITION_FORMAT}.${etag.slice(1, -1)}\"`;\n};\n","import { z } from 'zod';\nimport { PageNodeSchema, PageSchema, type Page, type PageNode } from '../contracts/declarative-control';\nimport { JsonValueSchema, type JsonValue } from '../contracts/common';\n\n/** Source-level components expand at publication, so existing hosts keep the same Page contract. */\nconst Name = z.string().regex(/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/);\nconst Path = z.array(z.union([Name, z.number().int().min(0).max(4095)])).min(1).max(32);\nexport const PageComponentDefinitionSchema = z.object({\n  root: PageNodeSchema,\n  inputs: z.record(Name, z.object({ path: Path, default: JsonValueSchema.optional() }).strict()).optional(),\n  /** A slot names the local node whose children are supplied by the instance. */\n  slots: z.record(Name, Name).optional(),\n}).strict();\nexport type PageComponentDefinition = z.infer<typeof PageComponentDefinitionSchema>;\nexport type PageCompositionNode = PageNode | {\n  id: string;\n  use: string;\n  inputs?: Record<string, JsonValue>;\n  slots?: Record<string, PageCompositionNode[]>;\n};\nconst SourceNode: z.ZodType<any> = z.lazy(() => z.union([\n  z.object({ id: Name, use: Name, inputs: z.record(Name, JsonValueSchema).optional(), slots: z.record(Name, z.array(SourceNode)).optional() }).strict(),\n  z.object({ children: z.array(SourceNode).optional() }).passthrough(),\n]));\nexport const PageCompositionSchema = z.object({\n  contract: z.literal('PageComposition'),\n  schemaVersion: z.literal(1),\n  /** Page header and state declarations; body is supplied separately. */\n  page: z.record(z.string(), z.unknown()),\n  components: z.record(Name, PageComponentDefinitionSchema),\n  body: SourceNode,\n}).strict();\n\nconst forbidden = new Set(['__proto__', 'prototype', 'constructor']);\nfunction assign(root: Record<string, any>, path: (string | number)[], value: JsonValue): void {\n  let target: any = root;\n  for (const [index, key] of path.entries()) {\n    if (forbidden.has(String(key)) || ['id', 'children', 'data', 'actions', 'programActions', 'on', 'effects'].includes(String(path[0])))\n      throw new TypeError('A component input must target presentation fields, not identities or executable declarations.');\n    if (index === path.length - 1) { target[key] = structuredClone(value); return; }\n    if (target[key] === null || typeof target[key] !== 'object') throw new TypeError('Component input path does not exist.');\n    target = target[key];\n  }\n}\n\n/** Reusable presentation trees with explicit inputs/slots; business state and operations stay in Page. */\nexport function compilePageComposition(input: unknown): Page {\n  const source = PageCompositionSchema.parse(input);\n  let count = 0;\n  const ids = new Set<string>();\n  const expand = (value: any, depth: number): PageNode => {\n    if (++count > 4096 || depth > 64) throw new RangeError('Page composition exceeds its node budget.');\n    if ('use' in value) {\n      const definition = source.components[value.use];\n      if (!definition) throw new TypeError(`Unknown Page component ${value.use}.`);\n      const root = structuredClone(definition.root);\n      const localNodes = new Map<string, PageNode>();\n      const namespace = (node: PageNode, isRoot = false) => {\n        if (localNodes.has(node.id)) throw new TypeError('Duplicate component-local node id.');\n        localNodes.set(node.id, node);\n        // Operations and scoped state belong to the instance's supplied slots, not a shared template.\n        if (node.data?.length || node.actions?.length || node.programActions?.length || node.on?.length || node.effects?.length)\n          throw new TypeError('Component templates contain presentation only; supply business operations through slots.');\n        node.id = isRoot ? value.id : `${value.id}.${node.id}`;\n        node.children?.forEach(child => namespace(child));\n      };\n      namespace(root, true);\n      for (const node of localNodes.values()) {\n        if (node.slot && localNodes.has(node.slot)) node.slot = localNodes.get(node.slot)!.id;\n        const slots = node.model?.slots;\n        if (slots && typeof slots === 'object' && !Array.isArray(slots)) {\n          node.model!.slots = Object.fromEntries(Object.entries(slots).map(([name, target]) => [\n            name, typeof target === 'string' && localNodes.has(target) ? localNodes.get(target)!.id : target,\n          ]));\n        }\n      }\n      for (const name of Object.keys(value.inputs ?? {}))\n        if (!definition.inputs?.[name]) throw new TypeError(`Unknown component input ${name}.`);\n      for (const [name, binding] of Object.entries(definition.inputs ?? {})) {\n        const supplied = Object.prototype.hasOwnProperty.call(value.inputs ?? {}, name) ? value.inputs[name] : binding.default;\n        if (supplied === undefined) throw new TypeError(`Missing component input ${name}.`);\n        assign(root, binding.path, supplied);\n      }\n      for (const name of Object.keys(value.slots ?? {}))\n        if (!definition.slots?.[name]) throw new TypeError(`Unknown component slot ${name}.`);\n      for (const [name, localId] of Object.entries(definition.slots ?? {})) {\n        const node = localNodes.get(localId);\n        if (!node) throw new TypeError(`Unknown component slot target ${localId}.`);\n        if (value.slots?.[name]) node.children = value.slots[name];\n      }\n      return expand(root, depth + 1);\n    }\n    if (ids.has(value.id)) throw new TypeError(`Duplicate Page node ${value.id}.`);\n    ids.add(value.id);\n    return { ...value, ...(value.children ? { children: value.children.map((child: unknown) => expand(child, depth + 1)) } : {}) };\n  };\n  return PageSchema.parse({ ...source.page, contract: 'Page', schemaVersion: 1, body: expand(source.body, 0) });\n}\n"],"mappings":"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","names":["ref","require_applicator","require_unevaluated","require_core","require_validation","Ajv2020","record","definition","record","ref","input","stableSerialize","record","deepFreeze","sha256Hex","uniqueIndex","disabled","presentation","activationId","identity","signature","requiredPermission","_behavior","target","unique","referenceVersion","evaluateAccess","schema","node","contract","forbidden","localizedText","Ajv","values","bytes","result","write","item","Ajv2020","import__","schema","ref","Ajv2020","z","z"]}