@ccslabs/xtend 0.1.0-rc.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/catalog/component-catalog-coverage.js +2 -0
  4. package/catalog/epic13-package-export-lock.js +11 -1
  5. package/catalog/epic13-rmt-production-readiness.js +0 -1
  6. package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
  7. package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
  8. package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
  9. package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
  10. package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
  11. package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
  12. package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
  13. package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
  14. package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
  15. package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
  16. package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
  17. package/catalog/epic18-rmt-component-template-primitives.js +240 -0
  18. package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
  19. package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
  20. package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
  21. package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
  22. package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
  23. package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
  24. package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
  25. package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
  26. package/catalog/surface-manager-controller.js +5 -1
  27. package/catalog/surface-manager-materialization.js +7 -1
  28. package/catalog/surface-manager-overlay-bridge.js +41 -6
  29. package/catalog/surface-manager-workbench-fixture.js +1 -1
  30. package/catalog/surface-type-capability-matrix.d.ts +61 -0
  31. package/catalog/surface-type-capability-matrix.js +183 -0
  32. package/catalog/type-exports-rmt.js +37 -1
  33. package/catalog/type-exports.js +3 -3
  34. package/components/icon-packs/lucide.js +4 -0
  35. package/components/manifest.json +2 -0
  36. package/components/prism-rmt.d.ts +34 -0
  37. package/components/prism-rmt.js +130 -0
  38. package/components/xcards.js +15 -0
  39. package/components/xcode.d.ts +36 -1
  40. package/components/xcode.js +215 -20
  41. package/components/xfooter.js +17 -0
  42. package/components/xheader.js +14 -0
  43. package/components/xhero.js +16 -1
  44. package/components/xlink.js +97 -14
  45. package/components/xmasonry.js +15 -0
  46. package/components/xplayer.d.ts +44 -2
  47. package/components/xplayer.js +242 -15
  48. package/components/xrouter.js +27 -2
  49. package/components/xsection.js +15 -0
  50. package/components/xsidepanel.js +10 -2
  51. package/components/xsurfacemanager-controller.d.ts +2 -1
  52. package/components/xsurfacemanager-controller.js +27 -3
  53. package/components/xsurfacemanager.d.ts +2 -0
  54. package/components/xsurfacemanager.js +20 -8
  55. package/components/xsurfaceoverlay-bridge.d.ts +20 -5
  56. package/components/xsurfaceoverlay-bridge.js +114 -18
  57. package/components/xsurfaceportal.d.ts +29 -0
  58. package/components/xsurfaceportal.js +122 -0
  59. package/components/xsurfaceregion.d.ts +50 -0
  60. package/components/xsurfaceregion.js +285 -0
  61. package/components/xsurfacewindow.js +2 -1
  62. package/components/xtooltip.js +89 -23
  63. package/docs/README.md +222 -298
  64. package/docs/changelog.md +107 -0
  65. package/docs/component-catalog-coverage.md +9 -9
  66. package/docs/component-platform.md +19 -1
  67. package/docs/component-ux-app-authoring.md +56 -63
  68. package/docs/components/xcode.md +83 -53
  69. package/docs/components/xsurfaceportal.md +32 -0
  70. package/docs/components/xsurfaceregion.md +37 -0
  71. package/docs/components.md +105 -69
  72. package/docs/de/README.md +264 -0
  73. package/docs/de/XTend-ADR.md +221 -0
  74. package/docs/de/a11y-keyboard-smokes.md +62 -0
  75. package/docs/de/about.md +18 -0
  76. package/docs/de/api.md +157 -0
  77. package/docs/de/best-practices.md +76 -0
  78. package/docs/de/changelog.md +107 -0
  79. package/docs/de/component-catalog-coverage.md +58 -0
  80. package/docs/de/component-lab.md +103 -0
  81. package/docs/de/component-long-tail-migration.md +41 -0
  82. package/docs/de/component-platform.md +177 -0
  83. package/docs/de/component-ux-app-authoring.md +123 -0
  84. package/docs/de/component-ux-authoring.md +96 -0
  85. package/docs/de/component-ux-gates.md +45 -0
  86. package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
  87. package/docs/de/components/xalert.md +81 -0
  88. package/docs/de/components/xbutton.md +103 -0
  89. package/docs/de/components/xcalendar.md +82 -0
  90. package/docs/de/components/xcards.md +128 -0
  91. package/docs/de/components/xcheckbox.md +102 -0
  92. package/docs/de/components/xcode.md +156 -0
  93. package/docs/de/components/xdialog.md +92 -0
  94. package/docs/de/components/xdrawer.md +84 -0
  95. package/docs/de/components/xfooter.md +126 -0
  96. package/docs/de/components/xform.md +128 -0
  97. package/docs/de/components/xheader.md +308 -0
  98. package/docs/de/components/xhero.md +142 -0
  99. package/docs/de/components/xicon.md +125 -0
  100. package/docs/de/components/xinput.md +129 -0
  101. package/docs/de/components/xlightbox.md +98 -0
  102. package/docs/de/components/xlink.md +109 -0
  103. package/docs/de/components/xmasonry.md +124 -0
  104. package/docs/de/components/xmenu.md +158 -0
  105. package/docs/de/components/xmodal.md +82 -0
  106. package/docs/de/components/xplayer.md +104 -0
  107. package/docs/de/components/xpopover.md +67 -0
  108. package/docs/de/components/xprogress.md +56 -0
  109. package/docs/de/components/xradio.md +103 -0
  110. package/docs/de/components/xrouter.md +260 -0
  111. package/docs/de/components/xsection.md +125 -0
  112. package/docs/de/components/xselect.md +105 -0
  113. package/docs/de/components/xsidepanel.md +30 -0
  114. package/docs/de/components/xspinner.md +102 -0
  115. package/docs/de/components/xstate.md +148 -0
  116. package/docs/de/components/xstatus.md +55 -0
  117. package/docs/de/components/xsummary.md +78 -0
  118. package/docs/de/components/xsurfacemanager.md +27 -0
  119. package/docs/de/components/xsurfacewindow.md +21 -0
  120. package/docs/de/components/xtabs.md +160 -0
  121. package/docs/de/components/xtextarea.md +98 -0
  122. package/docs/de/components/xtheme.md +167 -0
  123. package/docs/de/components/xtoast.md +62 -0
  124. package/docs/de/components/xtooltip.md +66 -0
  125. package/docs/de/components/xtype.md +82 -0
  126. package/docs/de/components/xutils.md +144 -0
  127. package/docs/de/components/xwriter.md +94 -0
  128. package/docs/de/components.md +153 -0
  129. package/docs/de/conditional-network-evidence-ci.md +38 -0
  130. package/docs/de/conditional-network-evidence.md +50 -0
  131. package/docs/de/core-migration-guide.md +110 -0
  132. package/docs/de/design-tokens.md +116 -0
  133. package/docs/de/docs-rmt-production-hardening.md +31 -0
  134. package/docs/de/enterprise-adoption.md +413 -0
  135. package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
  136. package/docs/de/epic10-platform-gates.md +62 -0
  137. package/docs/de/epic10-release-handoff.md +81 -0
  138. package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
  139. package/docs/de/epic12-rc0-handoff.md +61 -0
  140. package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
  141. package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
  142. package/docs/de/epic18-vendor-bugfixes.md +34 -0
  143. package/docs/de/existing-component-metadata.md +67 -0
  144. package/docs/de/hydration-performance-closure.md +34 -0
  145. package/docs/de/hydration-policies.md +71 -0
  146. package/docs/de/known-residual-triage.md +22 -0
  147. package/docs/de/manifest-import-policy.md +79 -0
  148. package/docs/de/manifest.md +112 -0
  149. package/docs/de/motion-contrast.md +67 -0
  150. package/docs/de/package-export-lock.md +44 -0
  151. package/docs/de/performance-measurements.md +106 -0
  152. package/docs/de/performance-regression.md +89 -0
  153. package/docs/de/performance.md +94 -0
  154. package/docs/de/previews/README.md +17 -0
  155. package/docs/de/prod-browser-csp-smokes.md +40 -0
  156. package/docs/de/public-component-types.md +79 -0
  157. package/docs/de/quick-start-guide.md +220 -0
  158. package/docs/de/rc0-adoption-guide.md +102 -0
  159. package/docs/de/rc0-gate-matrix.md +58 -0
  160. package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
  161. package/docs/de/rc1-migration-notes.md +69 -0
  162. package/docs/de/rc1-readiness.md +46 -0
  163. package/docs/de/release-owner-acceptance.md +56 -0
  164. package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
  165. package/docs/de/rmt-action-effect-runtime.md +81 -0
  166. package/docs/de/rmt-app-platform-authoring.md +54 -0
  167. package/docs/de/rmt-app-platform-fixture.md +46 -0
  168. package/docs/de/rmt-app-platform-migration-guide.md +88 -0
  169. package/docs/de/rmt-app-platform-tooling.md +79 -0
  170. package/docs/de/rmt-component-template-primitives.md +57 -0
  171. package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
  172. package/docs/de/rmt-dsl-authoring-polish.md +145 -0
  173. package/docs/de/rmt-event-routing-runtime.md +81 -0
  174. package/docs/de/rmt-first-demo-app.md +77 -0
  175. package/docs/de/rmt-first-xtend-apps.md +129 -0
  176. package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  177. package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
  178. package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
  179. package/docs/de/rmt-language-server.md +234 -0
  180. package/docs/de/rmt-lifecycle-demo.md +24 -0
  181. package/docs/de/rmt-linter.md +140 -0
  182. package/docs/de/rmt-node-ssr-adapter.md +100 -0
  183. package/docs/de/rmt-php-ssr-adapter.md +120 -0
  184. package/docs/de/rmt-production-readiness.md +63 -0
  185. package/docs/de/rmt-state-selector-runtime.md +47 -0
  186. package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
  187. package/docs/de/rmt-tooling-release-gates.md +77 -0
  188. package/docs/de/rmt-vnext-authoring.md +170 -0
  189. package/docs/de/rmt-vnext-component-primitives.md +188 -0
  190. package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
  191. package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  192. package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
  193. package/docs/de/rmt-vnext-migration-notes.md +62 -0
  194. package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
  195. package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
  196. package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
  197. package/docs/de/rmt-vnext-primitive-migration.md +119 -0
  198. package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
  199. package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
  200. package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
  201. package/docs/de/rmt-vnext-release-handoff.md +83 -0
  202. package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
  203. package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
  204. package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
  205. package/docs/de/screenreader-signals.md +56 -0
  206. package/docs/de/supply-chain-gates.md +100 -0
  207. package/docs/de/surface-manager-authoring-guide.md +94 -0
  208. package/docs/de/surface-manager-browser-lab.md +45 -0
  209. package/docs/de/surface-manager-component-lab.md +43 -0
  210. package/docs/de/surface-manager-controller.md +66 -0
  211. package/docs/de/surface-manager-layout-engines.md +32 -0
  212. package/docs/de/surface-manager-lazy-hydration.md +63 -0
  213. package/docs/de/surface-manager-migration-guide.md +122 -0
  214. package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
  215. package/docs/de/surface-manager-overlay-bridge.md +53 -0
  216. package/docs/de/surface-manager-persistence.md +30 -0
  217. package/docs/de/surface-manager-quality-gates.md +51 -0
  218. package/docs/de/surface-manager-release-handoff.md +68 -0
  219. package/docs/de/surface-manager-remote-policy.md +54 -0
  220. package/docs/de/surface-manager-rmt-authoring.md +102 -0
  221. package/docs/de/surface-manager-route-lifecycle.md +59 -0
  222. package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
  223. package/docs/de/surface-manager-side-panel-runtime.md +36 -0
  224. package/docs/de/surface-manager-stack-policy.md +39 -0
  225. package/docs/de/surface-manager-window-runtime.md +47 -0
  226. package/docs/de/surface-manager-workbench-fixture.md +43 -0
  227. package/docs/de/third-party-design-authoring.md +406 -0
  228. package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
  229. package/docs/de/trusted-dom-sanitizing.md +110 -0
  230. package/docs/de/type-exports.md +61 -0
  231. package/docs/de/typescript-components.md +63 -0
  232. package/docs/de/visual-browser-regression.md +83 -0
  233. package/docs/de/visual-owner-artifacts.md +46 -0
  234. package/docs/de/visual-snapshot-automation.md +87 -0
  235. package/docs/de/xtend-api-types.md +55 -0
  236. package/docs/de/xtend-builder-types.md +55 -0
  237. package/docs/de/xtend-catalog-types.md +44 -0
  238. package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
  239. package/docs/de/xtend-fabric.md +474 -0
  240. package/docs/de/xtend-loader-types.md +58 -0
  241. package/docs/de/xtend-loader.md +265 -0
  242. package/docs/de/xtend-policy-types.md +38 -0
  243. package/docs/de/xtend-rmt-types.md +40 -0
  244. package/docs/de/xtend-vendor-types.md +36 -0
  245. package/docs/de/xtendrmt-app-dsl.md +334 -0
  246. package/docs/de/xtendrmt-migration-guide.md +266 -0
  247. package/docs/de/xtendrmt-native-authoring.md +333 -0
  248. package/docs/de/xtendrmt-overview.md +109 -0
  249. package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
  250. package/docs/de/xtendrmt-runtime-bridge.md +155 -0
  251. package/docs/en/README.md +163 -0
  252. package/docs/en/XTend-ADR.md +221 -0
  253. package/docs/en/a11y-keyboard-smokes.md +68 -0
  254. package/docs/en/about.md +25 -0
  255. package/docs/en/api.md +171 -0
  256. package/docs/en/best-practices.md +125 -0
  257. package/docs/en/changelog.md +104 -0
  258. package/docs/en/component-catalog-coverage.md +104 -0
  259. package/docs/en/component-lab.md +103 -0
  260. package/docs/en/component-long-tail-migration.md +41 -0
  261. package/docs/en/component-platform.md +243 -0
  262. package/docs/en/component-ux-app-authoring.md +118 -0
  263. package/docs/en/component-ux-authoring.md +96 -0
  264. package/docs/en/component-ux-gates.md +45 -0
  265. package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
  266. package/docs/en/components/xalert.md +94 -0
  267. package/docs/en/components/xbutton.md +118 -0
  268. package/docs/en/components/xcalendar.md +95 -0
  269. package/docs/en/components/xcards.md +139 -0
  270. package/docs/en/components/xcheckbox.md +118 -0
  271. package/docs/en/components/xcode.md +153 -0
  272. package/docs/en/components/xdialog.md +108 -0
  273. package/docs/en/components/xdrawer.md +110 -0
  274. package/docs/en/components/xfooter.md +138 -0
  275. package/docs/en/components/xform.md +147 -0
  276. package/docs/en/components/xheader.md +308 -0
  277. package/docs/en/components/xhero.md +157 -0
  278. package/docs/en/components/xicon.md +149 -0
  279. package/docs/en/components/xinput.md +147 -0
  280. package/docs/en/components/xlightbox.md +113 -0
  281. package/docs/en/components/xlink.md +130 -0
  282. package/docs/en/components/xmasonry.md +136 -0
  283. package/docs/en/components/xmenu.md +185 -0
  284. package/docs/en/components/xmodal.md +102 -0
  285. package/docs/en/components/xplayer.md +114 -0
  286. package/docs/en/components/xpopover.md +87 -0
  287. package/docs/en/components/xprogress.md +73 -0
  288. package/docs/en/components/xradio.md +119 -0
  289. package/docs/en/components/xrouter.md +260 -0
  290. package/docs/en/components/xsection.md +136 -0
  291. package/docs/en/components/xselect.md +122 -0
  292. package/docs/en/components/xsidepanel.md +48 -0
  293. package/docs/en/components/xspinner.md +118 -0
  294. package/docs/en/components/xstate.md +163 -0
  295. package/docs/en/components/xstatus.md +71 -0
  296. package/docs/en/components/xsummary.md +90 -0
  297. package/docs/en/components/xsurfacemanager.md +42 -0
  298. package/docs/en/components/xsurfacewindow.md +31 -0
  299. package/docs/en/components/xtabs.md +187 -0
  300. package/docs/en/components/xtextarea.md +115 -0
  301. package/docs/en/components/xtheme.md +203 -0
  302. package/docs/en/components/xtoast.md +78 -0
  303. package/docs/en/components/xtooltip.md +85 -0
  304. package/docs/en/components/xtype.md +91 -0
  305. package/docs/en/components/xutils.md +161 -0
  306. package/docs/en/components/xwriter.md +106 -0
  307. package/docs/en/components.md +151 -0
  308. package/docs/en/conditional-network-evidence-ci.md +38 -0
  309. package/docs/en/conditional-network-evidence.md +50 -0
  310. package/docs/en/core-migration-guide.md +110 -0
  311. package/docs/en/design-tokens.md +137 -0
  312. package/docs/en/docs-rmt-production-hardening.md +31 -0
  313. package/docs/en/enterprise-adoption.md +413 -0
  314. package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
  315. package/docs/en/epic10-platform-gates.md +62 -0
  316. package/docs/en/epic10-release-handoff.md +81 -0
  317. package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
  318. package/docs/en/epic12-rc0-handoff.md +61 -0
  319. package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
  320. package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
  321. package/docs/en/epic18-vendor-bugfixes.md +29 -0
  322. package/docs/en/existing-component-metadata.md +67 -0
  323. package/docs/en/hydration-performance-closure.md +34 -0
  324. package/docs/en/hydration-policies.md +75 -0
  325. package/docs/en/known-residual-triage.md +22 -0
  326. package/docs/en/manifest-import-policy.md +81 -0
  327. package/docs/en/manifest.md +135 -0
  328. package/docs/en/motion-contrast.md +67 -0
  329. package/docs/en/package-export-lock.md +44 -0
  330. package/docs/en/performance-measurements.md +106 -0
  331. package/docs/en/performance-regression.md +89 -0
  332. package/docs/en/performance.md +132 -0
  333. package/docs/en/previews/README.md +17 -0
  334. package/docs/en/prod-browser-csp-smokes.md +40 -0
  335. package/docs/en/public-component-types.md +79 -0
  336. package/docs/en/quick-start-guide.md +189 -0
  337. package/docs/en/rc0-adoption-guide.md +102 -0
  338. package/docs/en/rc0-gate-matrix.md +58 -0
  339. package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
  340. package/docs/en/rc1-migration-notes.md +69 -0
  341. package/docs/en/rc1-readiness.md +46 -0
  342. package/docs/en/release-owner-acceptance.md +56 -0
  343. package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
  344. package/docs/en/rmt-action-effect-runtime.md +101 -0
  345. package/docs/en/rmt-app-platform-authoring.md +47 -0
  346. package/docs/en/rmt-app-platform-fixture.md +35 -0
  347. package/docs/en/rmt-app-platform-migration-guide.md +75 -0
  348. package/docs/en/rmt-app-platform-tooling.md +58 -0
  349. package/docs/en/rmt-component-template-primitives.md +49 -0
  350. package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
  351. package/docs/en/rmt-dsl-authoring-polish.md +143 -0
  352. package/docs/en/rmt-event-routing-runtime.md +98 -0
  353. package/docs/en/rmt-first-demo-app.md +87 -0
  354. package/docs/en/rmt-first-xtend-apps.md +127 -0
  355. package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
  356. package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
  357. package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
  358. package/docs/en/rmt-language-server.md +243 -0
  359. package/docs/en/rmt-lifecycle-demo.md +23 -0
  360. package/docs/en/rmt-linter.md +146 -0
  361. package/docs/en/rmt-node-ssr-adapter.md +99 -0
  362. package/docs/en/rmt-php-ssr-adapter.md +118 -0
  363. package/docs/en/rmt-production-readiness.md +63 -0
  364. package/docs/en/rmt-state-selector-runtime.md +34 -0
  365. package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
  366. package/docs/en/rmt-tooling-release-gates.md +77 -0
  367. package/docs/en/rmt-vnext-authoring.md +102 -0
  368. package/docs/en/rmt-vnext-component-primitives.md +185 -0
  369. package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
  370. package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
  371. package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
  372. package/docs/en/rmt-vnext-migration-notes.md +62 -0
  373. package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
  374. package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
  375. package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
  376. package/docs/en/rmt-vnext-primitive-migration.md +93 -0
  377. package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
  378. package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
  379. package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
  380. package/docs/en/rmt-vnext-release-handoff.md +83 -0
  381. package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
  382. package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
  383. package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
  384. package/docs/en/screenreader-signals.md +56 -0
  385. package/docs/en/supply-chain-gates.md +106 -0
  386. package/docs/en/surface-manager-authoring-guide.md +94 -0
  387. package/docs/en/surface-manager-browser-lab.md +45 -0
  388. package/docs/en/surface-manager-component-lab.md +43 -0
  389. package/docs/en/surface-manager-controller.md +66 -0
  390. package/docs/en/surface-manager-layout-engines.md +32 -0
  391. package/docs/en/surface-manager-lazy-hydration.md +63 -0
  392. package/docs/en/surface-manager-migration-guide.md +113 -0
  393. package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
  394. package/docs/en/surface-manager-overlay-bridge.md +53 -0
  395. package/docs/en/surface-manager-persistence.md +30 -0
  396. package/docs/en/surface-manager-quality-gates.md +51 -0
  397. package/docs/en/surface-manager-release-handoff.md +68 -0
  398. package/docs/en/surface-manager-remote-policy.md +54 -0
  399. package/docs/en/surface-manager-rmt-authoring.md +89 -0
  400. package/docs/en/surface-manager-route-lifecycle.md +59 -0
  401. package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
  402. package/docs/en/surface-manager-side-panel-runtime.md +36 -0
  403. package/docs/en/surface-manager-stack-policy.md +39 -0
  404. package/docs/en/surface-manager-window-runtime.md +47 -0
  405. package/docs/en/surface-manager-workbench-fixture.md +43 -0
  406. package/docs/en/third-party-design-authoring.md +406 -0
  407. package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
  408. package/docs/en/trusted-dom-sanitizing.md +124 -0
  409. package/docs/en/type-exports.md +61 -0
  410. package/docs/en/typescript-components.md +63 -0
  411. package/docs/en/visual-browser-regression.md +83 -0
  412. package/docs/en/visual-owner-artifacts.md +46 -0
  413. package/docs/en/visual-snapshot-automation.md +87 -0
  414. package/docs/en/xtend-api-types.md +55 -0
  415. package/docs/en/xtend-builder-types.md +55 -0
  416. package/docs/en/xtend-catalog-types.md +44 -0
  417. package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
  418. package/docs/en/xtend-fabric.md +474 -0
  419. package/docs/en/xtend-loader-types.md +58 -0
  420. package/docs/en/xtend-loader.md +265 -0
  421. package/docs/en/xtend-policy-types.md +38 -0
  422. package/docs/en/xtend-rmt-types.md +40 -0
  423. package/docs/en/xtend-vendor-types.md +36 -0
  424. package/docs/en/xtendrmt-app-dsl.md +331 -0
  425. package/docs/en/xtendrmt-migration-guide.md +256 -0
  426. package/docs/en/xtendrmt-native-authoring.md +336 -0
  427. package/docs/en/xtendrmt-overview.md +63 -0
  428. package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
  429. package/docs/en/xtendrmt-runtime-bridge.md +155 -0
  430. package/docs/enterprise-adoption.md +4 -2
  431. package/docs/epic18-media-manager-vendor-upstream.md +318 -0
  432. package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
  433. package/docs/epic18-vendor-bugfixes.md +34 -0
  434. package/docs/index.php +1056 -109
  435. package/docs/manifest.md +8 -2
  436. package/docs/menu.json +986 -133
  437. package/docs/package-export-lock.md +2 -2
  438. package/docs/public-component-types.md +2 -2
  439. package/docs/quick-start-guide.md +126 -58
  440. package/docs/rmt-action-effect-runtime.md +101 -0
  441. package/docs/rmt-app-platform-authoring.md +54 -0
  442. package/docs/rmt-app-platform-fixture.md +46 -0
  443. package/docs/rmt-app-platform-migration-guide.md +88 -0
  444. package/docs/rmt-app-platform-tooling.md +79 -0
  445. package/docs/rmt-component-template-primitives.md +57 -0
  446. package/docs/rmt-dom-descriptor-renderer.md +64 -0
  447. package/docs/rmt-dsl-authoring-polish.md +67 -44
  448. package/docs/rmt-event-routing-runtime.md +98 -0
  449. package/docs/rmt-first-demo-app.md +2 -2
  450. package/docs/rmt-first-xtend-apps.md +70 -46
  451. package/docs/rmt-language-server.md +61 -4
  452. package/docs/rmt-lifecycle-demo.md +1 -2
  453. package/docs/rmt-node-ssr-adapter.md +144 -0
  454. package/docs/rmt-php-ssr-adapter.md +158 -0
  455. package/docs/rmt-state-selector-runtime.md +47 -0
  456. package/docs/rmt-surface-resource-graph-runtime.md +92 -0
  457. package/docs/rmt-vnext-authoring.md +128 -18
  458. package/docs/rmt-vnext-component-primitives.md +188 -0
  459. package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
  460. package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
  461. package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
  462. package/docs/rmt-vnext-primitive-lowering.md +108 -0
  463. package/docs/rmt-vnext-primitive-migration.md +119 -0
  464. package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
  465. package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
  466. package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
  467. package/docs/rmt-vnext-release-handoff.md +14 -0
  468. package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
  469. package/docs/surface-manager-migration-guide.md +34 -6
  470. package/docs/surface-manager-overlay-bridge.md +9 -4
  471. package/docs/surface-manager-rmt-authoring.md +50 -34
  472. package/docs/surface-manager-workbench-fixture.md +1 -2
  473. package/docs/third-party-design-authoring.md +1 -1
  474. package/docs/type-exports.md +3 -3
  475. package/docs/utils/pageloader.js +811 -62
  476. package/docs/visual-browser-regression.md +1 -1
  477. package/docs/xtend-rmt-types.md +3 -2
  478. package/docs/xtendrmt-app-dsl.md +187 -122
  479. package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
  480. package/docs/xtendrmt-migration-guide.md +48 -17
  481. package/docs/xtendrmt-native-authoring.md +213 -217
  482. package/docs/xtendrmt-overview.md +81 -61
  483. package/docs/xtendrmt-parsedown-scheduling.md +23 -8
  484. package/fabric/package.json +1 -1
  485. package/package.json +684 -21
  486. package/tools/package.json +5 -1
  487. package/tools/rmt-editor/vscode/README.md +72 -5
  488. package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
  489. package/tools/rmt-editor/vscode/extension.d.ts +33 -0
  490. package/tools/rmt-editor/vscode/extension.js +1816 -7
  491. package/tools/rmt-editor/vscode/language-configuration.json +2 -1
  492. package/tools/rmt-editor/vscode/package.json +193 -2
  493. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
  494. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
  495. package/tools/rmt-editor/vscode/templates/launch.json +70 -0
  496. package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
  497. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  498. package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
  499. package/tools/rmt-language/app-platform-tooling.js +677 -0
  500. package/tools/rmt-language/completions.d.ts +5 -0
  501. package/tools/rmt-language/completions.js +185 -3
  502. package/tools/rmt-language/diagnostics.js +54 -0
  503. package/tools/rmt-language/hover.js +36 -0
  504. package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
  505. package/tools/rmt-language/rules/app-platform-policy.js +39 -0
  506. package/tools/rmt-language/rules/index.js +5 -1
  507. package/tools/rmt-language/semantic-graph.d.ts +6 -0
  508. package/tools/rmt-language/semantic-graph.js +928 -0
  509. package/tools/rmt-language/snippets/index.js +44 -0
  510. package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
  511. package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
  512. package/tools/rmt-language/vnext-compatibility.js +642 -0
  513. package/tools/rmt-language/vnext-compiler.d.ts +5 -0
  514. package/tools/rmt-language/vnext-compiler.js +863 -17
  515. package/tools/rmt-language/vnext-parser.js +725 -9
  516. package/tools/rmt-language/vnext-release.d.ts +1 -0
  517. package/tools/rmt-language/vnext-release.js +20 -0
  518. package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
  519. package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
  520. package/tools/rmt-language/vnext-surfaces.js +111 -52
  521. package/tools/rmt-language/vnext-tooling.d.ts +19 -1
  522. package/tools/rmt-language/vnext-tooling.js +1247 -5
  523. package/tools/rmt-language-server/protocol.js +3 -0
  524. package/tools/rmt-language-server/server.d.ts +2 -0
  525. package/tools/rmt-language-server/server.js +176 -22
  526. package/tools/rmt-linter/cli.d.ts +2 -0
  527. package/tools/rmt-linter/cli.js +62 -0
  528. package/xtend-builder/generators/registry.js +11 -0
  529. package/xtend-builder/generators/rmt-app-platform.js +239 -0
  530. package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
  531. package/xtend-builder/lib/cli.js +38 -0
  532. package/xtend-builder/package.json +3 -3
  533. package/xtend-builder/scaffold.config.js +29 -2
  534. package/xtend.css +49 -2
  535. package/xtendrmt/package.json +49 -1
  536. package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
  537. package/xtendrmt/rmt-action-effect-runtime.js +494 -0
  538. package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
  539. package/xtendrmt/rmt-component-capability-registry.js +636 -0
  540. package/xtendrmt/rmt-core.d.ts +6 -0
  541. package/xtendrmt/rmt-core.esm.js +32 -6
  542. package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
  543. package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
  544. package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
  545. package/xtendrmt/rmt-event-routing-runtime.js +666 -0
  546. package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
  547. package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
  548. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
  549. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
  550. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
  551. package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
  552. package/xtendrmt/rmt-native-shell-runtime.js +309 -0
  553. package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
  554. package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
  555. package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
  556. package/xtendrmt/rmt-runtime.browser.js +32 -6
  557. package/xtendrmt/rmt-runtime.esm.js +32 -6
  558. package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
  559. package/xtendrmt/rmt-state-selector-runtime.js +866 -0
  560. package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
  561. package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
  562. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
  563. package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
  564. package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
  565. package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
  566. package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
@@ -0,0 +1,612 @@
1
+ # RMT vNext Source-to-Sea Gate
2
+
3
+ - Contract: `xtend.rmt.vnext.source-to-sea-gate.v1`
4
+ - Evidence: `xtend.rmt.vnext.source-to-sea-evidence.v1`
5
+ - Evidence Report: `xtend.rmt.vnext.source-to-sea-evidence-report.v1`
6
+ - Object Matrix: `xtend.rmt.vnext.source-to-sea-object-matrix.v1`
7
+ - CI Artifact Validation: `xtend.rmt.vnext.source-to-sea-ci-artifact-validation.v1`
8
+ - Fabric Bridge Evidence: `xtend.rmt.vnext.fabric-bridge-evidence.v1`
9
+ - Workpackage: `RMT-VNEXT-PRIM-06`
10
+ - Active Bridge Workpackage: `RMT-VNEXT-PRIM-05`
11
+ - Status: `in_progress`
12
+ - Fabric Bridge Handoff: [RMT vNext Fabric Bridge Evidence](./rmt-vnext-fabric-bridge-evidence.md)
13
+ - Quelle: Media-Manager-Downstream-Transfer, `2026-05-19`
14
+
15
+ ## Ziel
16
+
17
+ `RMT-VNEXT-PRIM-06` startet das Fullstack-Gate fuer vNext-authorierte
18
+ Primitives. Das Gate beweist nicht nur Parser- oder JSON-Output, sondern
19
+ rekonstruiert denselben sichtbaren Objekt-Lifecycle ueber alle Runtime-Grenzen:
20
+
21
+ ```text
22
+ source -> kernel -> Fabric -> UI -> Browser
23
+ ```
24
+
25
+ Die erste PRIM-06-Scheibe bleibt im Standardlauf deterministisch und laeuft
26
+ ohne externen Browser-Treiber. Sie verbindet eine vNext-Fixture mit einer
27
+ selbstpruefenden Browser-Smoke-Fixture und erzeugt daraus maschinenlesbare
28
+ Evidence. Seit dem aktuellen Ausbau kann ein WebDriver-, Firefox/Geckodriver-,
29
+ ChromeDriver- oder Safari-Driver-Pfad dieselbe Browser-Fixture oeffnen, den gleichen Result-Key
30
+ auslesen und das echte Browser-Ergebnis gegen Compiler-, Kernel- und Fabric-
31
+ Evidence vergleichen. Die Browser-Execution-Evidence ist jetzt auch als
32
+ Release-Artefakt unter
33
+ `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json`
34
+ schreibbar. In GitHub Actions ist dieser Pfad optional und laeuft nur bei
35
+ manuellem `workflow_dispatch` mit `run_source_to_sea=true`.
36
+
37
+ ## Fixture
38
+
39
+ Die vNext-Fixture liegt unter:
40
+
41
+ ```text
42
+ tests/rmt-language/fixtures/vnext-source-to-sea.rmt
43
+ ```
44
+
45
+ Sie deklariert ausschliesslich in RMT vNext:
46
+
47
+ - `state demo.feedback.status`
48
+ - `state demo.feedback.toast`
49
+ - `state demo.feedback.detail`
50
+ - `state demo.feedback.audit`
51
+ - `selector demo.feedback.status`
52
+ - `selector demo.feedback.toast`
53
+ - `selector demo.feedback.detail`
54
+ - `selector demo.feedback.audit`
55
+ - `action demo.feedback.save`
56
+ - `action demo.feedback.dismiss`
57
+ - `action demo.feedback.detail.ack`
58
+ - `action demo.feedback.audit.review`
59
+ - `portal surface.root`
60
+ - `resource demo.feedback.timer`
61
+ - `resource demo.feedback.toastTimer`
62
+ - `resource demo.feedback.detailTimer`
63
+ - `resource demo.feedback.auditTimer`
64
+ - `surface demo.feedback.status`
65
+ - `surface demo.feedback.toast`
66
+ - `surface demo.feedback.detail`
67
+ - `surface demo.feedback.audit`
68
+ - eine `visible` Lane mit `hydrate feedback-status`
69
+ - eine zweite `idle` Lane mit `hydrate feedback-toast`
70
+ - eine `transition` Lane mit `mount feedback-detail`
71
+ - eine zweite `transition` Lane mit `mount feedback-audit`
72
+ - ein Click-Event auf `[data-action='save']`
73
+ - ein Click-Event auf `[data-action='dismiss']`
74
+ - ein Click-Event auf `[data-action='ack-detail']`
75
+ - ein Click-Event auf `[data-action='review-audit']`
76
+ - ein Cross-Primitive-Reducer von `demo.feedback.save` nach
77
+ `state.demo.feedback.toast.text`
78
+
79
+ Damit sind State, Selector, Action, Event, Surface, Lane/Fiber und
80
+ Lifecycle-Owner in derselben Authoring-Sprache vorhanden.
81
+
82
+ ## Browser Probe
83
+
84
+ Die Browser-Fixture liegt unter:
85
+
86
+ ```text
87
+ tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html
88
+ ```
89
+
90
+ Sie enthaelt einen sichtbaren DOM-Marker:
91
+
92
+ ```html
93
+ data-rmt-primitive-id="demo.feedback.status"
94
+ data-rmt-primitive-id="demo.feedback.toast"
95
+ data-rmt-primitive-id="demo.feedback.detail"
96
+ data-rmt-primitive-id="demo.feedback.audit"
97
+ ```
98
+
99
+ und einen stabilen Result-Key:
100
+
101
+ ```js
102
+ window.__xtendRmtVNextSourceToSeaResult
103
+ ```
104
+
105
+ Die Fixture prueft lokal, dass das Objekt sichtbar ist, die erwartete
106
+ Schedule-/Fiber-Metadaten traegt, der Click das RMT-Action-Event aufzeichnet
107
+ und der sichtbare Text von `Ready` auf `Saved` wechselt.
108
+
109
+ Seit `RMT-VNEXT-PRIM-05` traegt dieselbe DOM-Probe zusaetzlich sichtbare
110
+ Fabric-Brueckenmarker:
111
+
112
+ ```html
113
+ data-xtend-fabric-lane="visible"
114
+ data-xtend-fabric-fiber="fiber:demo.feedback/demo.feedback.status/visible/0"
115
+ data-xtend-fabric-schedule="component.visible.hydrate"
116
+ data-xtend-host-adapter-telemetry="xtend.component.lifecycle-telemetry.v1"
117
+ ```
118
+
119
+ Die Bridge haertet ausserdem eine Lane-Matrix fuer `user-blocking`,
120
+ `transition`, `idle`, `background` und `diagnostics`. Jede Matrix-Lane erzeugt
121
+ eine echte Fabric-Fiber, eine Fabric/RMT-Mapping-Entscheidung und einen
122
+ Telemetry-Snapshot-Eintrag.
123
+
124
+ Die Browser-Probe enthaelt zusaetzlich einen Host-Adapter-Telemetry-Record mit
125
+ `xtend.component.lifecycle-telemetry.v1`. Das Gate normalisiert diesen Record
126
+ ueber `fabric.recordComponentTelemetry(...)`, damit PRIM-05 die XTend UI Host-
127
+ Adapter-Ebene im Fabric-Snapshot nachweisen kann.
128
+
129
+ Seit dem Multi-Object-Ausbau projiziert das Gate die Host-Adapter-Telemetrie
130
+ pro Primitive. `demo.feedback.status` bleibt auf `visible` und
131
+ `component.visible.hydrate`, waehrend `demo.feedback.toast` ueber `idle` und
132
+ `component.idle.hydrate` validiert wird. `demo.feedback.detail` und
133
+ `demo.feedback.audit` sind getrennte Route-Targets auf der `transition`-Lane.
134
+
135
+ Zusaetzlich bindet PRIM-05 die produktiven Fiber-Instrumentations an:
136
+
137
+ - `createComponentFiberInstrumentation(...)` erzeugt `component.mount` und
138
+ `component.hydrate`.
139
+ - `createRouteFiberInstrumentation(...)` erzeugt `route.navigate` und
140
+ `route.render`.
141
+ - Die Schedule Refs `component.visible.mount`, `component.idle.hydrate`,
142
+ `ui.user-blocking.input` und `route.transition.render` muessen im Fabric-
143
+ Telemetry-Snapshot auftauchen.
144
+
145
+ ## Evidence API
146
+
147
+ Das Gate wird von `tools/rmt-language/vnext-source-to-sea.js` erzeugt:
148
+
149
+ ```js
150
+ const {
151
+ createRmtVNextFabricBridgeEvidence,
152
+ createRmtVNextSourceToSeaEvidenceReport,
153
+ createRmtVNextSourceToSeaEvidence,
154
+ runRmtVNextSourceToSeaBrowserExecution,
155
+ writeRmtVNextSourceToSeaEvidenceReport
156
+ } = require('./tools/rmt-language/vnext-source-to-sea');
157
+
158
+ const evidence = createRmtVNextSourceToSeaEvidence({
159
+ text,
160
+ filePath
161
+ }, {
162
+ browserFixtureText,
163
+ browserFixturePath: 'tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html'
164
+ });
165
+
166
+ const browserExecution = await runRmtVNextSourceToSeaBrowserExecution(evidence, {
167
+ rootDir: process.cwd(),
168
+ browserFixturePath: 'tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html',
169
+ browserDriver: process.env.RMT_VNEXT_SOURCE_TO_SEA_BROWSER_DRIVER || 'chromedriver',
170
+ requireBrowserExecution: true
171
+ });
172
+
173
+ const evidenceReport = await createRmtVNextSourceToSeaEvidenceReport({
174
+ rootDir: process.cwd(),
175
+ evidence,
176
+ browserExecution
177
+ });
178
+
179
+ await writeRmtVNextSourceToSeaEvidenceReport({
180
+ rootDir: process.cwd()
181
+ });
182
+ ```
183
+
184
+ Die Evidence muss unter derselben Primitive-ID korrelieren:
185
+
186
+ ```json
187
+ {
188
+ "schema": "xtend.rmt.vnext.source-to-sea-evidence.v1",
189
+ "primitiveId": "demo.feedback.status",
190
+ "sourcePointer": "/events/0",
191
+ "kernel": {
192
+ "scheduleRef": "schedule:demo.feedback/demo.feedback.status/visible"
193
+ },
194
+ "fabric": {
195
+ "schema": "xtend.rmt.vnext.fabric-bridge-evidence.v1",
196
+ "workpackage": "RMT-VNEXT-PRIM-05",
197
+ "lane": "visible",
198
+ "fiber": "fiber:demo.feedback/demo.feedback.status/visible/0",
199
+ "scheduleRef": "component.visible.hydrate",
200
+ "endpointName": "xtendrmt.component.hydrate",
201
+ "hostAdapter": {
202
+ "schema": "xtend.component.lifecycle-telemetry.v1",
203
+ "source": "xtend.component-adapter",
204
+ "operation": "hydrate"
205
+ },
206
+ "routeComponentFibers": {
207
+ "schema": "xtend.rmt.vnext.route-component-fiber-evidence.v1",
208
+ "component": ["component.visible.mount", "component.idle.hydrate"],
209
+ "route": ["ui.user-blocking.input", "route.transition.render"]
210
+ }
211
+ },
212
+ "ui": {
213
+ "selector": "[data-rmt-primitive-id=\"demo.feedback.status\"]",
214
+ "visible": true,
215
+ "text": "Saved"
216
+ },
217
+ "browser": {
218
+ "viewportAsserted": true,
219
+ "eventObserved": true
220
+ },
221
+ "browserExecution": {
222
+ "schema": "xtend.rmt.vnext.browser-execution-evidence.v1",
223
+ "status": "skipped",
224
+ "driver": null,
225
+ "resultKey": "__xtendRmtVNextSourceToSeaResult"
226
+ }
227
+ }
228
+ ```
229
+
230
+ Der artefaktierte Report kapselt diese Evidence plus Browser-Execution-
231
+ Policy:
232
+
233
+ ```json
234
+ {
235
+ "schema": "xtend.rmt.vnext.source-to-sea-evidence-report.v1",
236
+ "workpackage": "RMT-VNEXT-PRIM-06",
237
+ "status": "passed",
238
+ "artifact": {
239
+ "path": ".xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json",
240
+ "browserExecutionRequired": false,
241
+ "browserExecutionStatus": "skipped"
242
+ },
243
+ "ciArtifactValidation": {
244
+ "schema": "xtend.rmt.vnext.source-to-sea-ci-artifact-validation.v1",
245
+ "status": "skipped"
246
+ }
247
+ }
248
+ ```
249
+
250
+ Seit dem Multi-Object-Ausbau enthaelt derselbe Report zusaetzlich eine
251
+ Object-Matrix:
252
+
253
+ ```json
254
+ {
255
+ "schema": "xtend.rmt.vnext.source-to-sea-object-matrix.v1",
256
+ "objectCount": 4,
257
+ "primitiveIds": [
258
+ "demo.feedback.status",
259
+ "demo.feedback.toast",
260
+ "demo.feedback.detail",
261
+ "demo.feedback.audit"
262
+ ],
263
+ "crossPrimitiveEvents": [
264
+ {
265
+ "sourcePrimitiveId": "demo.feedback.status",
266
+ "targetPrimitiveId": "demo.feedback.toast",
267
+ "actionId": "demo.feedback.save",
268
+ "eventId": "demo.feedback.toast.promoted",
269
+ "targetState": "state.demo.feedback.toast.text",
270
+ "lane": "idle"
271
+ }
272
+ ],
273
+ "routeSwitches": [
274
+ {
275
+ "sourcePrimitiveId": "demo.feedback.status",
276
+ "targetPrimitiveId": "demo.feedback.detail",
277
+ "actionId": "demo.feedback.save",
278
+ "from": "/rmt-vnext-source-to-sea",
279
+ "to": "/rmt-vnext-source-to-sea/toast",
280
+ "scheduleRef": "ui.user-blocking.input",
281
+ "renderScheduleRef": "route.transition.render",
282
+ "lane": "transition",
283
+ "targetScheduleRef": "schedule:demo.feedback/demo.feedback.detail/transition",
284
+ "targetFiberRef": "fiber:demo.feedback/demo.feedback.detail/transition/0",
285
+ "targetExpectedText": "Detail mounted"
286
+ },
287
+ {
288
+ "sourcePrimitiveId": "demo.feedback.status",
289
+ "targetPrimitiveId": "demo.feedback.audit",
290
+ "actionId": "demo.feedback.save",
291
+ "from": "/rmt-vnext-source-to-sea/toast",
292
+ "to": "/rmt-vnext-source-to-sea/audit",
293
+ "scheduleRef": "ui.user-blocking.input",
294
+ "renderScheduleRef": "route.transition.render",
295
+ "lane": "transition",
296
+ "targetScheduleRef": "schedule:demo.feedback/demo.feedback.audit/transition",
297
+ "targetFiberRef": "fiber:demo.feedback/demo.feedback.audit/transition/0",
298
+ "targetExpectedText": "Audit mounted"
299
+ }
300
+ ],
301
+ "routeLifecycleCycles": [
302
+ {
303
+ "targetPrimitiveId": "demo.feedback.detail",
304
+ "from": "/rmt-vnext-source-to-sea/toast",
305
+ "to": "/rmt-vnext-source-to-sea",
306
+ "unmountScheduleRef": "ui.background.work",
307
+ "remountScheduleRef": "route.transition.render",
308
+ "resourceId": "demo.feedback.detailTimer",
309
+ "expectedUnmountCount": 1,
310
+ "expectedRemountCount": 1
311
+ },
312
+ {
313
+ "targetPrimitiveId": "demo.feedback.audit",
314
+ "from": "/rmt-vnext-source-to-sea/audit",
315
+ "to": "/rmt-vnext-source-to-sea",
316
+ "unmountScheduleRef": "ui.background.work",
317
+ "remountScheduleRef": "route.transition.render",
318
+ "resourceId": "demo.feedback.auditTimer",
319
+ "expectedUnmountCount": 1,
320
+ "expectedRemountCount": 1
321
+ }
322
+ ]
323
+ }
324
+ ```
325
+
326
+ ## Gate-Regeln
327
+
328
+ Das Gate schlaegt fehl, wenn eines dieser Korrelationsglieder fehlt:
329
+
330
+ - Compiler-Result ist nicht erfolgreich.
331
+ - PRIM-03 Semantic Graph meldet Fehler.
332
+ - PRIM-04 App-Platform- oder Kernel-Records fehlen.
333
+ - Kernel-Boundary ist nicht `no-rmt-kernel-import-of-host-runtime-types`.
334
+ - Schedule oder Lifecycle-Record fehlt.
335
+ - Aus Schedule und Operation laesst sich keine Fabric-Fiber ableiten.
336
+ - Die Fabric-Bruecke kann keine `xtend.fabric.fiber.v1` erzeugen.
337
+ - Die Fabric/RMT-Lane-Aufloesung liefert kein
338
+ `xtend.fabric.rmt-lane-mapping.v1`.
339
+ - Der Fabric-Telemetry-Snapshot enthaelt die erwartete Lane oder Schedule Ref
340
+ nicht.
341
+ - Die PRIM-05-Lane-Matrix enthaelt nicht alle erwarteten Fabric-Lanes.
342
+ - Die Host-Adapter-Telemetrie fehlt im Fabric-Snapshot.
343
+ - Route- oder Component-Fiber fehlen im Fabric-Snapshot.
344
+ - Die Browser-Fixture enthaelt keine sichtbaren Fabric-Lane-/Fiber-Marker.
345
+ - Der Fiber-Source-Kind ist nicht `selector`.
346
+ - Source-Map-Pointer zum Event fehlt.
347
+ - Browser-Fixture deklariert keinen Probe-Contract.
348
+ - DOM-Marker, Viewport-Assertion oder Event-Result-Key fehlen.
349
+ - Die Object-Matrix enthaelt weniger als vier sichtbare Primitives, keine
350
+ getrennten Lanes oder kein Cross-Primitive-Event.
351
+ - Die Object-Matrix enthaelt nicht mindestens zwei valide Route-Switches mit
352
+ Navigation- und Render-Schedule.
353
+ - Der Route-Switch mountet kein Target-Objekt oder das Target ist im echten
354
+ Browser-Result nicht sichtbar.
355
+ - Ein Route-Lifecycle-Cycle unmountet oder remountet das Target nicht, die
356
+ erwarteten Unmount-/Remount-Zaehler pro Target fehlen, der deklarierte
357
+ Resource-Cleanup ist nicht in vNext/Core nachweisbar, oder der Resource-Owner
358
+ passt nicht zum Route-Target.
359
+ - Eines der Matrix-Objekte korreliert nicht durch Source, Kernel, Fabric, UI
360
+ und Browser.
361
+ - Der optionale Browser-Execution-Pfad liefert bei aktivem Driver keinen
362
+ `passed`-Result-Key oder weicht bei Primitive ID, Schedule, Fiber, Fabric
363
+ Schedule, Host-Adapter-Telemetrie oder Event von der Evidence ab.
364
+ - ChromeDriver-Auto-Cleanup kann einen automatisch gestarteten Driver nach
365
+ erfolgreichem Browser-Result nicht ueber `/shutdown` oder Prozess-Fallback
366
+ beenden.
367
+ - Kernel-Records enthalten XTend-Host-Imports.
368
+
369
+ ## Lokale Gates
370
+
371
+ Gezielte PRIM-06-Gates:
372
+
373
+ ```bash
374
+ node --check tools/rmt-language/vnext-source-to-sea.js
375
+ node --check tests/rmt-language/rmt_vnext_source_to_sea_suite.js
376
+ node --check scripts/capture_rmt_vnext_source_to_sea_evidence.js
377
+ node -e "const suite=require('./tests/rmt-language/rmt_vnext_source_to_sea_suite'); suite.runRmtVNextSourceToSeaSuite({rootDir:process.cwd()}).then((result)=>process.exit(result.ok ? 0 : 1));"
378
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js
379
+ node scripts/run_xtend_tests.js fabric-lane-mapping fabric-component-fibers fabric-runtime-bridge --json
380
+ ```
381
+
382
+ Echter Browser-Lauf mit externem WebDriver:
383
+
384
+ ```bash
385
+ RMT_VNEXT_SOURCE_TO_SEA_BROWSER_DRIVER=webdriver \
386
+ RMT_VNEXT_SOURCE_TO_SEA_WEBDRIVER_URL=http://127.0.0.1:9515 \
387
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js --require-browser
388
+ ```
389
+
390
+ Echter Browser-Lauf mit automatisch gestartetem ChromeDriver:
391
+
392
+ ```bash
393
+ npm run test:rmt-vnext-source-to-sea:chromedriver
394
+ ```
395
+
396
+ Echter Browser-Lauf mit automatisch gestartetem Firefox/Geckodriver:
397
+
398
+ ```bash
399
+ npm run test:rmt-vnext-source-to-sea:firefox
400
+ ```
401
+
402
+ Der GitHub-Actions-Job `rmt-vnext-primitive-gates` haelt diesen ChromeDriver-
403
+ Pfad als optionalen Evidence-Lauf hinter `workflow_dispatch` und uploaded dann
404
+ dasselbe Evidence-Artefakt.
405
+ Der Report enthaelt zusaetzlich eine CI-Artefaktvalidierung. Im lokalen
406
+ Browser-Skip-Modus bleibt sie `skipped`; im ChromeDriver-Required-Pfad muss sie
407
+ `passed` sein und `objectCount: 4`, zwei Cross-Primitive-Events, zwei
408
+ Route-Switches, zwei Route-Lifecycle-Cycles, `targetMounted`, `targetVisible`,
409
+ `countsMatch` und die Audit-Resources `demo.feedback.auditTimer` sowie
410
+ `demo.feedback.auditSubscription` nachweisen.
411
+
412
+ Ein bereits geschriebenes CI-Artefakt kann ohne neuen Browser-Lauf erneut gegen
413
+ denselben Contract geprueft werden:
414
+
415
+ ```bash
416
+ npm run test:rmt-vnext-source-to-sea:validate-artifact
417
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js --validate-artifact .xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json
418
+ ```
419
+
420
+ Der Replay-Pfad nutzt
421
+ `validateRmtVNextSourceToSeaCiArtifactFile(...)`, setzt Browser-Evidence als
422
+ erwartete Eingabe fuer diesen optionalen Replay voraus und faellt fuer
423
+ fehlende, nicht parsebare oder gedriftete Artefakte geschlossen mit
424
+ `status: "failed"` aus.
425
+
426
+ ChromeDriver-Auto-Cleanup nutzt fuer automatisch gestartete ChromeDriver zuerst
427
+ den lokalen WebDriver-Endpunkt `/shutdown`. Erst wenn dieser Pfad den Prozess
428
+ nicht beendet, faellt das Gate auf Prozess-Signale zurueck. Das ist wichtig fuer
429
+ Snap-/Chromium-Installationen, bei denen ein direkter `kill()` mit `EACCES`
430
+ scheitern kann.
431
+
432
+ ## Naechster Handoff
433
+
434
+ `RMT-VNEXT-PRIM-06` liefert nun die erste Source-to-Sea-Evidence.
435
+ `RMT-VNEXT-PRIM-05` ist als eigenes Fabric-Bridge-Paket abgeschlossen: echte
436
+ Fabric-Runtime-Fiber, Host-Adapter-Telemetrie, Route-/Component-Fiber, ein
437
+ Telemetry-Snapshot und eine Lane-Matrix fuer nicht sichtbare Scheduling-
438
+ Klassen sind ueber `rmt-vnext-fabric-bridge` gatebar. Der aktuelle PRIM-06-
439
+ Ausbau haelt den Browser-Execution-Pfad in GitHub Actions als optionalen,
440
+ manuell aktivierten Evidence-Lauf vor. Das Release-Artefakt ist als
441
+ `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json` angebunden.
442
+ Die Browser-Result-Matrix fuehrt jetzt vier Objekte, Cross-Primitive-Events
443
+ und zwei sequenzielle Route-Switches. Der aktuelle Runtime-Slice mountet
444
+ `demo.feedback.detail` und `demo.feedback.audit` erst nach Route-Wechseln und
445
+ verlangt im Browser-Result jeweils `targetMounted: true` sowie
446
+ `targetVisible: true`. Zusaetzlich fuehrt `routeLifecycleCycles` getrennte
447
+ Unmount-/Remount-Zyklen fuer beide Targets:
448
+ `demo.feedback.detailTimer` und `demo.feedback.auditTimer` muessen ueber
449
+ `dispose on surface.destroy` als Resource-Cleanup-Evidence vorliegen; die
450
+ Browser-Evidence muss pro Target `unmountCount: 1`, `remountCount: 1` und
451
+ `countsMatch: true` liefern. Der Audit-Zyklus prueft nun mehrere Resource-
452
+ Records: Neben `demo.feedback.auditTimer` muss auch
453
+ `demo.feedback.auditSubscription` mit `kind subscription`,
454
+ `owner surface.demo.feedback.audit` und `dispose on surface.destroy`
455
+ artefaktiert werden. Eine negative Fixture ohne Dispose-Policy muss
456
+ kontrolliert mit
457
+ `rmt.vnext.source_to_sea.cleanup_dispose_policy_missing` fehlschlagen. Eine
458
+ zweite negative Fixture besitzt zwar eine Dispose-Policy, bindet
459
+ `demo.feedback.detailTimer` aber an `surface.demo.feedback.toast`; sie muss mit
460
+ `rmt.vnext.source_to_sea.cleanup_owner_mismatch` fehlschlagen. Eine dritte
461
+ negative Fixture entfernt `demo.feedback.auditTimer` vollstaendig aus vNext,
462
+ laesst `demo.feedback.audit` aber als Route-Target bestehen; sie muss mit
463
+ `rmt.vnext.source_to_sea.cleanup_resource_missing` fehlschlagen. Der naechste
464
+ Schritt ist der Abgleich der lokalen `chromedriver`-Evidence mit echten
465
+ CI-Artefakten.
466
+
467
+ Die Cross-Primitive-Evidence ist nun zweistufig: Neben
468
+ `demo.feedback.save -> demo.feedback.toast` muss auch
469
+ `demo.feedback.detail.ack -> demo.feedback.audit` nach dem Route-Mount
470
+ nachgewiesen werden. Der zweite Eintrag reduziert
471
+ `state.demo.feedback.audit.text`, emittiert `demo.feedback.audit.escalated`
472
+ und muss als `stage: "route-target"` mit `sourceLane: "transition"` und
473
+ `targetLane: "transition"` im Browser-Result erscheinen.
474
+
475
+ Der negative Browser-Probe
476
+ `tests/browser/fixtures/rmt-vnext-source-to-sea-cross-route-invalid.html`
477
+ verschiebt den `stage: "route-target"`-Eintrag absichtlich auf
478
+ `targetPrimitiveId: "demo.feedback.toast"`, waehrend Event und Target-State
479
+ weiter auf `demo.feedback.audit` zeigen. Die Object-Matrix muss dadurch
480
+ geschlossen fehlschlagen und mindestens diese Guards als `false` ausweisen:
481
+ `cross event route-target state belongs to target primitive`,
482
+ `cross event route-target event belongs to target primitive` und
483
+ `cross event route-target stage uses transition lanes`.
484
+
485
+ ## Browser Result Drift
486
+
487
+ Der WebDriver-Result-Pfad wird zusaetzlich durch
488
+ `xtend.rmt.vnext.source-to-sea-browser-result-validation.v1` abgesichert.
489
+ `createRmtVNextSourceToSeaBrowserResultValidation(...)` kapselt dieselben
490
+ Checks, die der echte ChromeDriver-Lauf nach dem Headless-Browser auswertet.
491
+ Damit koennen Route-Switch- und Lifecycle-Drifts ohne neuen Browserstart
492
+ deterministisch rekonstruiert werden:
493
+
494
+ - `browser execution route switches pass` muss fehlschlagen, wenn ein
495
+ Route-Switch zwar im Result steht, aber `status: "failed"`,
496
+ `targetMounted: false` oder `targetVisible: false` liefert.
497
+ - `browser execution route lifecycle cycles pass` muss fehlschlagen, wenn ein
498
+ Lifecycle-Zyklus `countsMatch: false` oder abweichende Unmount-/Remount-
499
+ Zaehler ausweist.
500
+ - `browser execution cross-primitive events pass` muss fehlschlagen, wenn ein
501
+ Cross-Primitive-Event im Browser-Result nicht `status: "passed"` liefert.
502
+ - `browser execution object matrix passes` muss fehlschlagen, wenn ein
503
+ sichtbares Objekt im Browser-Result nicht `status: "passed"` liefert.
504
+
505
+ ## Cross-Route Event Evidence
506
+
507
+ Das positive Browser-Result muss zwei Cross-Primitive-Events enthalten:
508
+
509
+ ```json
510
+ {
511
+ "sourcePrimitiveId": "demo.feedback.status",
512
+ "targetPrimitiveId": "demo.feedback.toast",
513
+ "eventId": "demo.feedback.toast.promoted",
514
+ "targetLane": "idle"
515
+ }
516
+ ```
517
+
518
+ ```json
519
+ {
520
+ "sourcePrimitiveId": "demo.feedback.detail",
521
+ "targetPrimitiveId": "demo.feedback.audit",
522
+ "eventId": "demo.feedback.audit.escalated",
523
+ "stage": "route-target",
524
+ "sourceLane": "transition",
525
+ "targetLane": "transition"
526
+ }
527
+ ```
528
+
529
+ ## Multi-Resource Cleanup Evidence
530
+
531
+ Der positive Audit-Lifecycle muss mehrere Cleanup-Resources ausweisen:
532
+
533
+ ```json
534
+ {
535
+ "targetPrimitiveId": "demo.feedback.audit",
536
+ "resourceIds": [
537
+ "demo.feedback.auditTimer",
538
+ "demo.feedback.auditSubscription"
539
+ ],
540
+ "resourceKinds": [
541
+ "timer",
542
+ "subscription"
543
+ ],
544
+ "resourceDisposed": true
545
+ }
546
+ ```
547
+
548
+ Die Object-Matrix muss fuer `demo.feedback.auditSubscription` denselben Owner
549
+ und dieselbe Dispose-Policy wie fuer den Timer pruefen. Zyklen mit nur
550
+ `resourceId` bleiben kompatibel; produktive Zyklen koennen `resources` mit
551
+ mehreren Resource IDs und erwarteten Kinds deklarieren.
552
+
553
+ ## Negative Cleanup Fixtures
554
+
555
+ Die negativen Fixtures liegen unter:
556
+
557
+ ```text
558
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-invalid.rmt
559
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-owner-invalid.rmt
560
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-resource-missing.rmt
561
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-kind-invalid.rmt
562
+ ```
563
+
564
+ Die erste Fixture laesst `demo.feedback.detailTimer` absichtlich ohne
565
+ `dispose on surface.destroy`. Die zweite Fixture behaelt die Dispose-Policy,
566
+ bindet den Resource-Owner aber absichtlich an `surface.demo.feedback.toast`.
567
+ Die dritte Fixture laesst `demo.feedback.audit` als Route-Target bestehen,
568
+ entfernt aber `demo.feedback.auditTimer` vollstaendig aus der vNext-Quelle.
569
+ Die vierte Fixture behaelt `demo.feedback.auditSubscription` als Cleanup-
570
+ Resource, deklariert sie aber absichtlich mit `kind cache` statt
571
+ `kind subscription`.
572
+ Das positive Source-to-Sea-Gate bleibt erfolgreich, aber die negativen
573
+ Matrizen muessen fehlschlagen und folgende Evidence liefern:
574
+
575
+ ```json
576
+ {
577
+ "code": "rmt.vnext.source_to_sea.cleanup_dispose_policy_missing",
578
+ "targetPrimitiveId": "demo.feedback.detail",
579
+ "resourceId": "demo.feedback.detailTimer",
580
+ "dispose": null
581
+ }
582
+ ```
583
+
584
+ ```json
585
+ {
586
+ "code": "rmt.vnext.source_to_sea.cleanup_owner_mismatch",
587
+ "targetPrimitiveId": "demo.feedback.detail",
588
+ "resourceId": "demo.feedback.detailTimer",
589
+ "owner": {
590
+ "id": "demo.feedback.toast"
591
+ }
592
+ }
593
+ ```
594
+
595
+ ```json
596
+ {
597
+ "code": "rmt.vnext.source_to_sea.cleanup_resource_missing",
598
+ "targetPrimitiveId": "demo.feedback.audit",
599
+ "resourceId": "demo.feedback.auditTimer",
600
+ "resource": null
601
+ }
602
+ ```
603
+
604
+ ```json
605
+ {
606
+ "code": "rmt.vnext.source_to_sea.cleanup_kind_mismatch",
607
+ "targetPrimitiveId": "demo.feedback.audit",
608
+ "resourceId": "demo.feedback.auditSubscription",
609
+ "expectedKind": "subscription",
610
+ "actualKind": "cache"
611
+ }
612
+ ```
@@ -0,0 +1,76 @@
1
+ # RMT vNext Enterprise Surface Registry
2
+
3
+ `surface.registry` ist der gemeinsame Enterprise-MFE-Index fuer lokale und
4
+ remote Surfaces. Er ist kein Runtime-Manager und kein globaler Event Bus,
5
+ sondern ein auditierbarer Snapshot fuer Ownership, Discoverability, aktive
6
+ Versionen, Shell Targets, Lanes, Fallbacks und Event-Fakten.
7
+
8
+ ## Contract
9
+
10
+ ```js
11
+ schema: "xtend.rmt.vnext-enterprise-surface-registry.v1"
12
+ surfaceSchema: "xtend.rmt.vnext-enterprise-surface.v1"
13
+ targetReadiness: "rmt-vnext-enterprise-mfe-ready"
14
+ ```
15
+
16
+ Der Registry-Snapshot beantwortet die Enterprise-Fragen:
17
+
18
+ - Welche Surfaces existieren zur Laufzeit?
19
+ - Welches Team besitzt welche Surface?
20
+ - Welche Version ist aktiv und welche Range wurde erwartet?
21
+ - Welche Shell Targets und Lanes sind gebunden?
22
+ - Welche Surfaces sind lokal, remote oder Fallback?
23
+ - Welche Events duerfen eine Surface verlassen oder erreichen?
24
+ - Welche Degradation-Policy gilt bei Inkompatibilitaet?
25
+
26
+ ## Registry Shape
27
+
28
+ ```json
29
+ {
30
+ "schema": "xtend.rmt.vnext-enterprise-surface-registry.v1",
31
+ "registryId": "enterprise:xtend.enterprise-mfe.demo",
32
+ "surfaceCount": 4,
33
+ "localSurfaceCount": 3,
34
+ "remoteSurfaceCount": 1,
35
+ "indexes": {
36
+ "byOwner": {
37
+ "checkout-platform": ["surface:panel.checkoutFallback", "remote:checkout.cart"]
38
+ },
39
+ "byShellTarget": {
40
+ "shell.slot:sidebar.cart": ["remote:checkout.cart"]
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ Die Registry darf von Hosts und Operations-Tools gelesen werden. Sie bleibt aber
47
+ ein Language-Layer-Artefakt und erzeugt keine impliziten Runtime-Verbindungen.
48
+
49
+ ## Ownership
50
+
51
+ Jede Surface braucht einen fachlichen Owner. Der Owner verantwortet:
52
+
53
+ - Version Range und aktive Version.
54
+ - Fallback-Flaeche oder blockierenden Degradation-Pfad.
55
+ - Event Ownership und Payload Ownership.
56
+ - Security Policy und Trust Boundary.
57
+ - Migrationshinweise fuer Legacy-Surface-Fakten.
58
+
59
+ ## Discoverability
60
+
61
+ Discoverability entsteht ueber stabile Indizes, nicht ueber Laufzeit-Heuristik.
62
+ Die Registry muss mindestens nach Surface Name, Owner, Shell Target, Lane,
63
+ Status, Remote ID und Fallback aufloesbar sein. Das Demo-Szenario validiert dies
64
+ ueber `tools/rmt-language/vnext-enterprise-fixtures.js`.
65
+
66
+ ## Gates
67
+
68
+ ```bash
69
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-registry --json
70
+ node scripts/run_xtend_tests.js rmt-vnext-degradation --json
71
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-fixtures --json
72
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
73
+ ```
74
+
75
+ Der operative Handoff ist in `docs/rmt-vnext-enterprise-mfe-handoff.md`
76
+ zusammengefasst.