@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
@@ -12,6 +12,7 @@ Epic 15 ist mit dem vNext Release Handoff source-ready. Die neue Syntax ist doku
12
12
 
13
13
  ```bash
14
14
  npm run test:rmt-vnext-parser
15
+ npm run test:rmt-semantic-graph
15
16
  npm run test:rmt-vnext-compiler
16
17
  npm run test:rmt-vnext-lifecycle
17
18
  npm run test:rmt-vnext-scheduler
@@ -25,10 +26,23 @@ npm run test:rmt-vnext-streaming
25
26
  npm run test:rmt-vnext-tooling
26
27
  npm run test:rmt-vnext-compatibility
27
28
  npm run test:rmt-vnext-regression
29
+ npm run test:rmt-vnext-primitives:report
28
30
  npm run test:browser
29
31
  npm run test:references
30
32
  ```
31
33
 
34
+ ## Optional Browser Evidence
35
+
36
+ ```bash
37
+ npm run test:rmt-vnext-source-to-sea
38
+ npm run test:rmt-vnext-source-to-sea:evidence
39
+ npm run test:rmt-vnext-source-to-sea:chromedriver
40
+ npm run test:rmt-vnext-source-to-sea:validate-artifact
41
+ ```
42
+
43
+ In GitHub Actions, this evidence runs only through manual `workflow_dispatch`
44
+ with `run_source_to_sea=true`.
45
+
32
46
  Der Self-Gate fuer diesen Abschluss ist:
33
47
 
34
48
  ```bash
@@ -0,0 +1,629 @@
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-, ChromeDriver- oder
29
+ 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
+ Alternativ kann derselbe Gate gegen einen beliebigen W3C-WebDriver-Endpunkt
403
+ laufen. `--browser-name` bzw. `RMT_VNEXT_SOURCE_TO_SEA_BROWSER_NAME` waehlt
404
+ dann z. B. `firefox`, `chrome`, `MicrosoftEdge` oder `safari`:
405
+
406
+ ```bash
407
+ RMT_VNEXT_SOURCE_TO_SEA_BROWSER_DRIVER=webdriver \
408
+ RMT_VNEXT_SOURCE_TO_SEA_BROWSER_NAME=firefox \
409
+ RMT_VNEXT_SOURCE_TO_SEA_WEBDRIVER_URL=http://127.0.0.1:4444 \
410
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js --require-browser
411
+ ```
412
+
413
+ Der GitHub-Actions-Job `rmt-vnext-primitive-gates` haelt diesen ChromeDriver-
414
+ Pfad als optionalen Evidence-Lauf hinter `workflow_dispatch` und uploaded dann
415
+ dasselbe Evidence-Artefakt.
416
+ Der Report enthaelt zusaetzlich eine CI-Artefaktvalidierung. Im lokalen
417
+ Browser-Skip-Modus bleibt sie `skipped`; im ChromeDriver-Required-Pfad muss sie
418
+ `passed` sein und `objectCount: 4`, zwei Cross-Primitive-Events, zwei
419
+ Route-Switches, zwei Route-Lifecycle-Cycles, `targetMounted`, `targetVisible`,
420
+ `countsMatch` und die Audit-Resources `demo.feedback.auditTimer` sowie
421
+ `demo.feedback.auditSubscription` nachweisen.
422
+
423
+ Ein bereits geschriebenes CI-Artefakt kann ohne neuen Browser-Lauf erneut gegen
424
+ denselben Contract geprueft werden:
425
+
426
+ ```bash
427
+ npm run test:rmt-vnext-source-to-sea:validate-artifact
428
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js --validate-artifact .xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json
429
+ ```
430
+
431
+ Firefox-Artefakte koennen mit dem erwarteten Driver replayed werden:
432
+
433
+ ```bash
434
+ npm run test:rmt-vnext-source-to-sea:validate-artifact:firefox
435
+ ```
436
+
437
+ Der Replay-Pfad nutzt
438
+ `validateRmtVNextSourceToSeaCiArtifactFile(...)`, setzt Browser-Evidence als
439
+ erwartete Eingabe fuer diesen optionalen Replay voraus und faellt fuer
440
+ fehlende, nicht parsebare oder gedriftete Artefakte geschlossen mit
441
+ `status: "failed"` aus.
442
+
443
+ ChromeDriver-Auto-Cleanup nutzt fuer automatisch gestartete ChromeDriver zuerst
444
+ den lokalen WebDriver-Endpunkt `/shutdown`. Erst wenn dieser Pfad den Prozess
445
+ nicht beendet, faellt das Gate auf Prozess-Signale zurueck. Das ist wichtig fuer
446
+ Snap-/Chromium-Installationen, bei denen ein direkter `kill()` mit `EACCES`
447
+ scheitern kann.
448
+
449
+ ## Naechster Handoff
450
+
451
+ `RMT-VNEXT-PRIM-06` liefert nun die erste Source-to-Sea-Evidence.
452
+ `RMT-VNEXT-PRIM-05` ist als eigenes Fabric-Bridge-Paket abgeschlossen: echte
453
+ Fabric-Runtime-Fiber, Host-Adapter-Telemetrie, Route-/Component-Fiber, ein
454
+ Telemetry-Snapshot und eine Lane-Matrix fuer nicht sichtbare Scheduling-
455
+ Klassen sind ueber `rmt-vnext-fabric-bridge` gatebar. Der aktuelle PRIM-06-
456
+ Ausbau haelt den Browser-Execution-Pfad in GitHub Actions als optionalen,
457
+ manuell aktivierten Evidence-Lauf vor. Das Release-Artefakt ist als
458
+ `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json` angebunden.
459
+ Die Browser-Result-Matrix fuehrt jetzt vier Objekte, Cross-Primitive-Events
460
+ und zwei sequenzielle Route-Switches. Der aktuelle Runtime-Slice mountet
461
+ `demo.feedback.detail` und `demo.feedback.audit` erst nach Route-Wechseln und
462
+ verlangt im Browser-Result jeweils `targetMounted: true` sowie
463
+ `targetVisible: true`. Zusaetzlich fuehrt `routeLifecycleCycles` getrennte
464
+ Unmount-/Remount-Zyklen fuer beide Targets:
465
+ `demo.feedback.detailTimer` und `demo.feedback.auditTimer` muessen ueber
466
+ `dispose on surface.destroy` als Resource-Cleanup-Evidence vorliegen; die
467
+ Browser-Evidence muss pro Target `unmountCount: 1`, `remountCount: 1` und
468
+ `countsMatch: true` liefern. Der Audit-Zyklus prueft nun mehrere Resource-
469
+ Records: Neben `demo.feedback.auditTimer` muss auch
470
+ `demo.feedback.auditSubscription` mit `kind subscription`,
471
+ `owner surface.demo.feedback.audit` und `dispose on surface.destroy`
472
+ artefaktiert werden. Eine negative Fixture ohne Dispose-Policy muss
473
+ kontrolliert mit
474
+ `rmt.vnext.source_to_sea.cleanup_dispose_policy_missing` fehlschlagen. Eine
475
+ zweite negative Fixture besitzt zwar eine Dispose-Policy, bindet
476
+ `demo.feedback.detailTimer` aber an `surface.demo.feedback.toast`; sie muss mit
477
+ `rmt.vnext.source_to_sea.cleanup_owner_mismatch` fehlschlagen. Eine dritte
478
+ negative Fixture entfernt `demo.feedback.auditTimer` vollstaendig aus vNext,
479
+ laesst `demo.feedback.audit` aber als Route-Target bestehen; sie muss mit
480
+ `rmt.vnext.source_to_sea.cleanup_resource_missing` fehlschlagen. Der naechste
481
+ Schritt ist der Abgleich der lokalen `chromedriver`-Evidence mit echten
482
+ CI-Artefakten.
483
+
484
+ Die Cross-Primitive-Evidence ist nun zweistufig: Neben
485
+ `demo.feedback.save -> demo.feedback.toast` muss auch
486
+ `demo.feedback.detail.ack -> demo.feedback.audit` nach dem Route-Mount
487
+ nachgewiesen werden. Der zweite Eintrag reduziert
488
+ `state.demo.feedback.audit.text`, emittiert `demo.feedback.audit.escalated`
489
+ und muss als `stage: "route-target"` mit `sourceLane: "transition"` und
490
+ `targetLane: "transition"` im Browser-Result erscheinen.
491
+
492
+ Der negative Browser-Probe
493
+ `tests/browser/fixtures/rmt-vnext-source-to-sea-cross-route-invalid.html`
494
+ verschiebt den `stage: "route-target"`-Eintrag absichtlich auf
495
+ `targetPrimitiveId: "demo.feedback.toast"`, waehrend Event und Target-State
496
+ weiter auf `demo.feedback.audit` zeigen. Die Object-Matrix muss dadurch
497
+ geschlossen fehlschlagen und mindestens diese Guards als `false` ausweisen:
498
+ `cross event route-target state belongs to target primitive`,
499
+ `cross event route-target event belongs to target primitive` und
500
+ `cross event route-target stage uses transition lanes`.
501
+
502
+ ## Browser Result Drift
503
+
504
+ Der WebDriver-Result-Pfad wird zusaetzlich durch
505
+ `xtend.rmt.vnext.source-to-sea-browser-result-validation.v1` abgesichert.
506
+ `createRmtVNextSourceToSeaBrowserResultValidation(...)` kapselt dieselben
507
+ Checks, die der echte ChromeDriver-Lauf nach dem Headless-Browser auswertet.
508
+ Damit koennen Route-Switch- und Lifecycle-Drifts ohne neuen Browserstart
509
+ deterministisch rekonstruiert werden:
510
+
511
+ - `browser execution route switches pass` muss fehlschlagen, wenn ein
512
+ Route-Switch zwar im Result steht, aber `status: "failed"`,
513
+ `targetMounted: false` oder `targetVisible: false` liefert.
514
+ - `browser execution route lifecycle cycles pass` muss fehlschlagen, wenn ein
515
+ Lifecycle-Zyklus `countsMatch: false` oder abweichende Unmount-/Remount-
516
+ Zaehler ausweist.
517
+ - `browser execution cross-primitive events pass` muss fehlschlagen, wenn ein
518
+ Cross-Primitive-Event im Browser-Result nicht `status: "passed"` liefert.
519
+ - `browser execution object matrix passes` muss fehlschlagen, wenn ein
520
+ sichtbares Objekt im Browser-Result nicht `status: "passed"` liefert.
521
+
522
+ ## Cross-Route Event Evidence
523
+
524
+ Das positive Browser-Result muss zwei Cross-Primitive-Events enthalten:
525
+
526
+ ```json
527
+ {
528
+ "sourcePrimitiveId": "demo.feedback.status",
529
+ "targetPrimitiveId": "demo.feedback.toast",
530
+ "eventId": "demo.feedback.toast.promoted",
531
+ "targetLane": "idle"
532
+ }
533
+ ```
534
+
535
+ ```json
536
+ {
537
+ "sourcePrimitiveId": "demo.feedback.detail",
538
+ "targetPrimitiveId": "demo.feedback.audit",
539
+ "eventId": "demo.feedback.audit.escalated",
540
+ "stage": "route-target",
541
+ "sourceLane": "transition",
542
+ "targetLane": "transition"
543
+ }
544
+ ```
545
+
546
+ ## Multi-Resource Cleanup Evidence
547
+
548
+ Der positive Audit-Lifecycle muss mehrere Cleanup-Resources ausweisen:
549
+
550
+ ```json
551
+ {
552
+ "targetPrimitiveId": "demo.feedback.audit",
553
+ "resourceIds": [
554
+ "demo.feedback.auditTimer",
555
+ "demo.feedback.auditSubscription"
556
+ ],
557
+ "resourceKinds": [
558
+ "timer",
559
+ "subscription"
560
+ ],
561
+ "resourceDisposed": true
562
+ }
563
+ ```
564
+
565
+ Die Object-Matrix muss fuer `demo.feedback.auditSubscription` denselben Owner
566
+ und dieselbe Dispose-Policy wie fuer den Timer pruefen. Zyklen mit nur
567
+ `resourceId` bleiben kompatibel; produktive Zyklen koennen `resources` mit
568
+ mehreren Resource IDs und erwarteten Kinds deklarieren.
569
+
570
+ ## Negative Cleanup Fixtures
571
+
572
+ Die negativen Fixtures liegen unter:
573
+
574
+ ```text
575
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-invalid.rmt
576
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-owner-invalid.rmt
577
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-resource-missing.rmt
578
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-kind-invalid.rmt
579
+ ```
580
+
581
+ Die erste Fixture laesst `demo.feedback.detailTimer` absichtlich ohne
582
+ `dispose on surface.destroy`. Die zweite Fixture behaelt die Dispose-Policy,
583
+ bindet den Resource-Owner aber absichtlich an `surface.demo.feedback.toast`.
584
+ Die dritte Fixture laesst `demo.feedback.audit` als Route-Target bestehen,
585
+ entfernt aber `demo.feedback.auditTimer` vollstaendig aus der vNext-Quelle.
586
+ Die vierte Fixture behaelt `demo.feedback.auditSubscription` als Cleanup-
587
+ Resource, deklariert sie aber absichtlich mit `kind cache` statt
588
+ `kind subscription`.
589
+ Das positive Source-to-Sea-Gate bleibt erfolgreich, aber die negativen
590
+ Matrizen muessen fehlschlagen und folgende Evidence liefern:
591
+
592
+ ```json
593
+ {
594
+ "code": "rmt.vnext.source_to_sea.cleanup_dispose_policy_missing",
595
+ "targetPrimitiveId": "demo.feedback.detail",
596
+ "resourceId": "demo.feedback.detailTimer",
597
+ "dispose": null
598
+ }
599
+ ```
600
+
601
+ ```json
602
+ {
603
+ "code": "rmt.vnext.source_to_sea.cleanup_owner_mismatch",
604
+ "targetPrimitiveId": "demo.feedback.detail",
605
+ "resourceId": "demo.feedback.detailTimer",
606
+ "owner": {
607
+ "id": "demo.feedback.toast"
608
+ }
609
+ }
610
+ ```
611
+
612
+ ```json
613
+ {
614
+ "code": "rmt.vnext.source_to_sea.cleanup_resource_missing",
615
+ "targetPrimitiveId": "demo.feedback.audit",
616
+ "resourceId": "demo.feedback.auditTimer",
617
+ "resource": null
618
+ }
619
+ ```
620
+
621
+ ```json
622
+ {
623
+ "code": "rmt.vnext.source_to_sea.cleanup_kind_mismatch",
624
+ "targetPrimitiveId": "demo.feedback.audit",
625
+ "resourceId": "demo.feedback.auditSubscription",
626
+ "expectedKind": "subscription",
627
+ "actualKind": "cache"
628
+ }
629
+ ```