@ccslabs/xtend 0.1.0-rc.1

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 (664) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/LICENSE +201 -0
  3. package/README.md +184 -0
  4. package/a11y/motion-contrast-policy.d.ts +32 -0
  5. package/a11y/motion-contrast-policy.js +261 -0
  6. package/a11y/runtime-a11y-contract.d.ts +44 -0
  7. package/a11y/runtime-a11y-contract.js +385 -0
  8. package/a11y/screenreader-signals.d.ts +32 -0
  9. package/a11y/screenreader-signals.js +372 -0
  10. package/api.d.ts +168 -0
  11. package/api.js +864 -0
  12. package/catalog/catalog-public-types.d.ts +66 -0
  13. package/catalog/component-catalog-coverage.d.ts +20 -0
  14. package/catalog/component-catalog-coverage.js +377 -0
  15. package/catalog/component-long-tail-migration.d.ts +18 -0
  16. package/catalog/component-long-tail-migration.js +305 -0
  17. package/catalog/component-regression-priority.d.ts +20 -0
  18. package/catalog/component-regression-priority.js +305 -0
  19. package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
  20. package/catalog/enterprise-component-flex-release-handoff.js +437 -0
  21. package/catalog/enterprise-component-style-audit.d.ts +22 -0
  22. package/catalog/enterprise-component-style-audit.js +353 -0
  23. package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
  24. package/catalog/enterprise-form-control-theme-a11y.js +220 -0
  25. package/catalog/enterprise-icon-control-audit.d.ts +21 -0
  26. package/catalog/enterprise-icon-control-audit.js +258 -0
  27. package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
  28. package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
  29. package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
  30. package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
  31. package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
  32. package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
  33. package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
  34. package/catalog/enterprise-third-party-authoring-guide.js +310 -0
  35. package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
  36. package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
  37. package/catalog/epic10-existing-component-metadata.d.ts +25 -0
  38. package/catalog/epic10-existing-component-metadata.js +534 -0
  39. package/catalog/epic10-p0-component-wave.d.ts +28 -0
  40. package/catalog/epic10-p0-component-wave.js +688 -0
  41. package/catalog/epic10-platform-gates.d.ts +31 -0
  42. package/catalog/epic10-platform-gates.js +425 -0
  43. package/catalog/epic10-release-handoff.d.ts +30 -0
  44. package/catalog/epic10-release-handoff.js +195 -0
  45. package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
  46. package/catalog/epic11-enterprise-ux-handoff.js +403 -0
  47. package/catalog/epic12-docs-adoption.d.ts +29 -0
  48. package/catalog/epic12-docs-adoption.js +183 -0
  49. package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
  50. package/catalog/epic12-rc0-gate-matrix.js +439 -0
  51. package/catalog/epic12-rc0-handoff.d.ts +30 -0
  52. package/catalog/epic12-rc0-handoff.js +385 -0
  53. package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
  54. package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
  55. package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
  56. package/catalog/epic13-conditional-network-evidence.js +280 -0
  57. package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
  58. package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
  59. package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
  60. package/catalog/epic13-hydration-performance-closure.js +234 -0
  61. package/catalog/epic13-known-residual-triage.d.ts +32 -0
  62. package/catalog/epic13-known-residual-triage.js +339 -0
  63. package/catalog/epic13-package-export-lock.d.ts +41 -0
  64. package/catalog/epic13-package-export-lock.js +604 -0
  65. package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
  66. package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
  67. package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
  68. package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
  69. package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
  70. package/catalog/epic13-rc1-migration-notes.js +271 -0
  71. package/catalog/epic13-rc1-readiness.d.ts +33 -0
  72. package/catalog/epic13-rc1-readiness.js +487 -0
  73. package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
  74. package/catalog/epic13-release-owner-acceptance.js +354 -0
  75. package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
  76. package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
  77. package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
  78. package/catalog/epic13-rmt-production-readiness.js +314 -0
  79. package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
  80. package/catalog/epic13-trusted-dom-boundary.js +230 -0
  81. package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
  82. package/catalog/epic13-visual-owner-artifact.js +233 -0
  83. package/catalog/epic14-lsp-handoff.d.ts +28 -0
  84. package/catalog/epic14-lsp-handoff.js +312 -0
  85. package/catalog/epic14-rmt-tooling.d.ts +33 -0
  86. package/catalog/epic14-rmt-tooling.js +282 -0
  87. package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
  88. package/catalog/surface-manager-adapter-runtime.js +203 -0
  89. package/catalog/surface-manager-browser-lab.d.ts +39 -0
  90. package/catalog/surface-manager-browser-lab.js +225 -0
  91. package/catalog/surface-manager-controller.d.ts +43 -0
  92. package/catalog/surface-manager-controller.js +290 -0
  93. package/catalog/surface-manager-layout-engines.d.ts +32 -0
  94. package/catalog/surface-manager-layout-engines.js +161 -0
  95. package/catalog/surface-manager-lazy-loading.d.ts +35 -0
  96. package/catalog/surface-manager-lazy-loading.js +173 -0
  97. package/catalog/surface-manager-materialization.d.ts +37 -0
  98. package/catalog/surface-manager-materialization.js +202 -0
  99. package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
  100. package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
  101. package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
  102. package/catalog/surface-manager-overlay-bridge.js +247 -0
  103. package/catalog/surface-manager-persistence.d.ts +37 -0
  104. package/catalog/surface-manager-persistence.js +178 -0
  105. package/catalog/surface-manager-quality-gates.d.ts +48 -0
  106. package/catalog/surface-manager-quality-gates.js +324 -0
  107. package/catalog/surface-manager-release-handoff.d.ts +47 -0
  108. package/catalog/surface-manager-release-handoff.js +274 -0
  109. package/catalog/surface-manager-remote-policy.d.ts +34 -0
  110. package/catalog/surface-manager-remote-policy.js +199 -0
  111. package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
  112. package/catalog/surface-manager-rmt-authoring.js +368 -0
  113. package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
  114. package/catalog/surface-manager-route-lifecycle.js +162 -0
  115. package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
  116. package/catalog/surface-manager-runtime-release-handoff.js +245 -0
  117. package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
  118. package/catalog/surface-manager-side-panel-runtime.js +307 -0
  119. package/catalog/surface-manager-stack-policy.d.ts +32 -0
  120. package/catalog/surface-manager-stack-policy.js +169 -0
  121. package/catalog/surface-manager-window-runtime.d.ts +45 -0
  122. package/catalog/surface-manager-window-runtime.js +285 -0
  123. package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
  124. package/catalog/surface-manager-workbench-fixture.js +315 -0
  125. package/catalog/type-exports-api.js +236 -0
  126. package/catalog/type-exports-builder.js +405 -0
  127. package/catalog/type-exports-catalog.js +394 -0
  128. package/catalog/type-exports-loader.js +266 -0
  129. package/catalog/type-exports-policy.js +461 -0
  130. package/catalog/type-exports-rmt.js +407 -0
  131. package/catalog/type-exports-vendor.js +365 -0
  132. package/catalog/type-exports.js +574 -0
  133. package/components/icon-packs/core.js +154 -0
  134. package/components/icon-packs/lucide.js +136 -0
  135. package/components/manifest.json +44 -0
  136. package/components/prism.d.ts +73 -0
  137. package/components/prism.js +300 -0
  138. package/components/turndown.d.ts +34 -0
  139. package/components/turndown.js +107 -0
  140. package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
  141. package/components/x-rmt-lifecycle-demo-build.js +1175 -0
  142. package/components/x-rmt-lifecycle-demo.d.ts +83 -0
  143. package/components/x-rmt-lifecycle-demo.js +1175 -0
  144. package/components/xalert.d.ts +42 -0
  145. package/components/xalert.js +538 -0
  146. package/components/xbutton.d.ts +127 -0
  147. package/components/xbutton.js +612 -0
  148. package/components/xcalendar.d.ts +39 -0
  149. package/components/xcalendar.js +338 -0
  150. package/components/xcards.d.ts +34 -0
  151. package/components/xcards.js +253 -0
  152. package/components/xcheckbox.d.ts +48 -0
  153. package/components/xcheckbox.js +448 -0
  154. package/components/xcode.d.ts +35 -0
  155. package/components/xcode.js +370 -0
  156. package/components/xdialog.d.ts +48 -0
  157. package/components/xdialog.js +763 -0
  158. package/components/xdrawer.d.ts +61 -0
  159. package/components/xdrawer.js +654 -0
  160. package/components/xfooter.d.ts +41 -0
  161. package/components/xfooter.js +351 -0
  162. package/components/xform.d.ts +43 -0
  163. package/components/xform.js +456 -0
  164. package/components/xheader.d.ts +68 -0
  165. package/components/xheader.js +1253 -0
  166. package/components/xhero.d.ts +42 -0
  167. package/components/xhero.js +475 -0
  168. package/components/xicon.d.ts +146 -0
  169. package/components/xicon.js +688 -0
  170. package/components/xinput.d.ts +37 -0
  171. package/components/xinput.js +444 -0
  172. package/components/xlightbox.d.ts +48 -0
  173. package/components/xlightbox.js +571 -0
  174. package/components/xlink.d.ts +63 -0
  175. package/components/xlink.js +565 -0
  176. package/components/xmasonry.d.ts +35 -0
  177. package/components/xmasonry.js +666 -0
  178. package/components/xmenu.d.ts +118 -0
  179. package/components/xmenu.js +1005 -0
  180. package/components/xmodal.d.ts +64 -0
  181. package/components/xmodal.js +831 -0
  182. package/components/xplayer.d.ts +57 -0
  183. package/components/xplayer.js +1748 -0
  184. package/components/xpopover.d.ts +54 -0
  185. package/components/xpopover.js +466 -0
  186. package/components/xprogress.d.ts +40 -0
  187. package/components/xprogress.js +345 -0
  188. package/components/xradio.d.ts +50 -0
  189. package/components/xradio.js +474 -0
  190. package/components/xrouter.d.ts +244 -0
  191. package/components/xrouter.js +1841 -0
  192. package/components/xsection.d.ts +34 -0
  193. package/components/xsection.js +253 -0
  194. package/components/xselect.d.ts +46 -0
  195. package/components/xselect.js +463 -0
  196. package/components/xsidepanel.d.ts +56 -0
  197. package/components/xsidepanel.js +728 -0
  198. package/components/xspinner.d.ts +38 -0
  199. package/components/xspinner.js +388 -0
  200. package/components/xstate.d.ts +137 -0
  201. package/components/xstate.js +493 -0
  202. package/components/xstatus.d.ts +41 -0
  203. package/components/xstatus.js +381 -0
  204. package/components/xsummary.d.ts +43 -0
  205. package/components/xsummary.js +293 -0
  206. package/components/xsurfacemanager-controller.d.ts +130 -0
  207. package/components/xsurfacemanager-controller.js +699 -0
  208. package/components/xsurfacemanager.d.ts +452 -0
  209. package/components/xsurfacemanager.js +3775 -0
  210. package/components/xsurfaceoverlay-bridge.d.ts +43 -0
  211. package/components/xsurfaceoverlay-bridge.js +238 -0
  212. package/components/xsurfacewindow.d.ts +50 -0
  213. package/components/xsurfacewindow.js +576 -0
  214. package/components/xtabs.d.ts +73 -0
  215. package/components/xtabs.js +611 -0
  216. package/components/xtend-public-types.d.ts +208 -0
  217. package/components/xtextarea.d.ts +46 -0
  218. package/components/xtextarea.js +451 -0
  219. package/components/xtheme.d.ts +253 -0
  220. package/components/xtheme.js +1438 -0
  221. package/components/xtoast.d.ts +39 -0
  222. package/components/xtoast.js +389 -0
  223. package/components/xtooltip.d.ts +53 -0
  224. package/components/xtooltip.js +432 -0
  225. package/components/xtype.d.ts +42 -0
  226. package/components/xtype.js +244 -0
  227. package/components/xutils.d.ts +164 -0
  228. package/components/xutils.js +496 -0
  229. package/components/xwriter.d.ts +67 -0
  230. package/components/xwriter.js +854 -0
  231. package/design-tokens/themes/enterprise-light.json +40 -0
  232. package/design-tokens/themes/xtend-signature.json +126 -0
  233. package/design-tokens/xtend-design-tokens.d.ts +95 -0
  234. package/design-tokens/xtend-design-tokens.js +395 -0
  235. package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
  236. package/design-tokens/xtheme-token-alias-layer.js +423 -0
  237. package/docs/.htaccess +51 -0
  238. package/docs/README.md +340 -0
  239. package/docs/XTend-ADR.md +221 -0
  240. package/docs/a11y-keyboard-smokes.md +62 -0
  241. package/docs/about.md +18 -0
  242. package/docs/api.md +157 -0
  243. package/docs/best-practices.md +76 -0
  244. package/docs/component-catalog-coverage.md +58 -0
  245. package/docs/component-lab.md +103 -0
  246. package/docs/component-long-tail-migration.md +41 -0
  247. package/docs/component-platform.md +159 -0
  248. package/docs/component-ux-app-authoring.md +130 -0
  249. package/docs/component-ux-authoring.md +96 -0
  250. package/docs/component-ux-gates.md +45 -0
  251. package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
  252. package/docs/components/xalert.md +81 -0
  253. package/docs/components/xbutton.md +103 -0
  254. package/docs/components/xcalendar.md +82 -0
  255. package/docs/components/xcards.md +128 -0
  256. package/docs/components/xcheckbox.md +102 -0
  257. package/docs/components/xcode.md +126 -0
  258. package/docs/components/xdialog.md +92 -0
  259. package/docs/components/xdrawer.md +84 -0
  260. package/docs/components/xfooter.md +126 -0
  261. package/docs/components/xform.md +128 -0
  262. package/docs/components/xheader.md +308 -0
  263. package/docs/components/xhero.md +142 -0
  264. package/docs/components/xicon.md +125 -0
  265. package/docs/components/xinput.md +129 -0
  266. package/docs/components/xlightbox.md +98 -0
  267. package/docs/components/xlink.md +109 -0
  268. package/docs/components/xmasonry.md +124 -0
  269. package/docs/components/xmenu.md +158 -0
  270. package/docs/components/xmodal.md +82 -0
  271. package/docs/components/xplayer.md +104 -0
  272. package/docs/components/xpopover.md +67 -0
  273. package/docs/components/xprogress.md +56 -0
  274. package/docs/components/xradio.md +103 -0
  275. package/docs/components/xrouter.md +260 -0
  276. package/docs/components/xsection.md +125 -0
  277. package/docs/components/xselect.md +105 -0
  278. package/docs/components/xsidepanel.md +30 -0
  279. package/docs/components/xspinner.md +102 -0
  280. package/docs/components/xstate.md +148 -0
  281. package/docs/components/xstatus.md +55 -0
  282. package/docs/components/xsummary.md +78 -0
  283. package/docs/components/xsurfacemanager.md +27 -0
  284. package/docs/components/xsurfacewindow.md +21 -0
  285. package/docs/components/xtabs.md +160 -0
  286. package/docs/components/xtextarea.md +98 -0
  287. package/docs/components/xtheme.md +167 -0
  288. package/docs/components/xtoast.md +62 -0
  289. package/docs/components/xtooltip.md +66 -0
  290. package/docs/components/xtype.md +82 -0
  291. package/docs/components/xutils.md +144 -0
  292. package/docs/components/xwriter.md +94 -0
  293. package/docs/components.md +117 -0
  294. package/docs/conditional-network-evidence-ci.md +38 -0
  295. package/docs/conditional-network-evidence.md +50 -0
  296. package/docs/core-migration-guide.md +110 -0
  297. package/docs/design-tokens.md +116 -0
  298. package/docs/docs-rmt-production-hardening.md +31 -0
  299. package/docs/enterprise-adoption.md +411 -0
  300. package/docs/enterprise-component-flex-release-handoff.md +129 -0
  301. package/docs/epic10-platform-gates.md +62 -0
  302. package/docs/epic10-release-handoff.md +81 -0
  303. package/docs/epic11-enterprise-ux-handoff.md +70 -0
  304. package/docs/epic12-rc0-handoff.md +61 -0
  305. package/docs/existing-component-metadata.md +67 -0
  306. package/docs/hydration-performance-closure.md +34 -0
  307. package/docs/hydration-policies.md +71 -0
  308. package/docs/index.php +1625 -0
  309. package/docs/known-residual-triage.md +22 -0
  310. package/docs/manifest-import-policy.md +79 -0
  311. package/docs/manifest.md +106 -0
  312. package/docs/menu.json +1190 -0
  313. package/docs/motion-contrast.md +67 -0
  314. package/docs/package-export-lock.md +44 -0
  315. package/docs/performance-measurements.md +106 -0
  316. package/docs/performance-regression.md +89 -0
  317. package/docs/performance.md +94 -0
  318. package/docs/previews/README.md +17 -0
  319. package/docs/prod-browser-csp-smokes.md +40 -0
  320. package/docs/public-component-types.md +79 -0
  321. package/docs/quick-start-guide.md +152 -0
  322. package/docs/rc0-adoption-guide.md +102 -0
  323. package/docs/rc0-gate-matrix.md +58 -0
  324. package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
  325. package/docs/rc1-migration-notes.md +69 -0
  326. package/docs/rc1-readiness.md +46 -0
  327. package/docs/release-owner-acceptance.md +56 -0
  328. package/docs/release-report-pack-dry-run-evidence.md +39 -0
  329. package/docs/rmt-dsl-authoring-polish.md +122 -0
  330. package/docs/rmt-first-demo-app.md +77 -0
  331. package/docs/rmt-first-xtend-apps.md +105 -0
  332. package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  333. package/docs/rmt-kernel-security-hardening-migration.md +50 -0
  334. package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
  335. package/docs/rmt-language-server.md +177 -0
  336. package/docs/rmt-lifecycle-demo.md +25 -0
  337. package/docs/rmt-linter.md +140 -0
  338. package/docs/rmt-production-readiness.md +63 -0
  339. package/docs/rmt-tooling-release-gates.md +77 -0
  340. package/docs/rmt-vnext-authoring.md +60 -0
  341. package/docs/rmt-vnext-cross-surface-events.md +68 -0
  342. package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  343. package/docs/rmt-vnext-migration-notes.md +62 -0
  344. package/docs/rmt-vnext-release-handoff.md +69 -0
  345. package/docs/rmt-vnext-remote-surfaces.md +90 -0
  346. package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
  347. package/docs/screenreader-signals.md +56 -0
  348. package/docs/supply-chain-gates.md +100 -0
  349. package/docs/surface-manager-authoring-guide.md +94 -0
  350. package/docs/surface-manager-browser-lab.md +45 -0
  351. package/docs/surface-manager-component-lab.md +43 -0
  352. package/docs/surface-manager-controller.md +66 -0
  353. package/docs/surface-manager-layout-engines.md +32 -0
  354. package/docs/surface-manager-lazy-hydration.md +63 -0
  355. package/docs/surface-manager-migration-guide.md +94 -0
  356. package/docs/surface-manager-native-rmt-surfaces.md +38 -0
  357. package/docs/surface-manager-overlay-bridge.md +53 -0
  358. package/docs/surface-manager-persistence.md +30 -0
  359. package/docs/surface-manager-quality-gates.md +51 -0
  360. package/docs/surface-manager-release-handoff.md +68 -0
  361. package/docs/surface-manager-remote-policy.md +54 -0
  362. package/docs/surface-manager-rmt-authoring.md +86 -0
  363. package/docs/surface-manager-route-lifecycle.md +59 -0
  364. package/docs/surface-manager-runtime-release-handoff.md +69 -0
  365. package/docs/surface-manager-side-panel-runtime.md +36 -0
  366. package/docs/surface-manager-stack-policy.md +39 -0
  367. package/docs/surface-manager-window-runtime.md +47 -0
  368. package/docs/surface-manager-workbench-fixture.md +43 -0
  369. package/docs/third-party-design-authoring.md +406 -0
  370. package/docs/trusted-dom-boundary-browser-proof.md +32 -0
  371. package/docs/trusted-dom-sanitizing.md +110 -0
  372. package/docs/type-exports.md +61 -0
  373. package/docs/typescript-components.md +63 -0
  374. package/docs/utils/fabric-runtime.js +650 -0
  375. package/docs/utils/pageloader.js +2823 -0
  376. package/docs/utils/parsedown.php +298 -0
  377. package/docs/visual-browser-regression.md +83 -0
  378. package/docs/visual-owner-artifacts.md +46 -0
  379. package/docs/visual-snapshot-automation.md +87 -0
  380. package/docs/xtend-api-types.md +55 -0
  381. package/docs/xtend-builder-types.md +55 -0
  382. package/docs/xtend-catalog-types.md +44 -0
  383. package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
  384. package/docs/xtend-fabric.md +474 -0
  385. package/docs/xtend-loader-types.md +58 -0
  386. package/docs/xtend-loader.md +265 -0
  387. package/docs/xtend-policy-types.md +38 -0
  388. package/docs/xtend-rmt-types.md +39 -0
  389. package/docs/xtend-vendor-types.md +36 -0
  390. package/docs/xtendrmt-app-dsl.md +269 -0
  391. package/docs/xtendrmt-migration-guide.md +235 -0
  392. package/docs/xtendrmt-native-authoring.md +337 -0
  393. package/docs/xtendrmt-overview.md +89 -0
  394. package/docs/xtendrmt-parsedown-docs.rmt +956 -0
  395. package/docs/xtendrmt-parsedown-scheduling.md +301 -0
  396. package/docs/xtendrmt-runtime-bridge.md +155 -0
  397. package/fabric/hydration-policy.d.ts +27 -0
  398. package/fabric/hydration-policy.js +306 -0
  399. package/fabric/package.json +58 -0
  400. package/fabric/rmt-lane-mapping.d.ts +47 -0
  401. package/fabric/rmt-lane-mapping.js +504 -0
  402. package/fabric/xtend-fabric.d.ts +81 -0
  403. package/fabric/xtend-fabric.js +2669 -0
  404. package/fabric/xtend-policy-public-types.d.ts +135 -0
  405. package/package.json +8225 -0
  406. package/security/README.md +54 -0
  407. package/security/manifest-import-policy.d.ts +43 -0
  408. package/security/manifest-import-policy.js +260 -0
  409. package/security/supply-chain-gate-policy.d.ts +45 -0
  410. package/security/supply-chain-gate-policy.js +249 -0
  411. package/security/trusted-dom-policy.d.ts +36 -0
  412. package/security/trusted-dom-policy.js +316 -0
  413. package/tools/package.json +77 -0
  414. package/tools/rmt-editor/vscode/README.md +33 -0
  415. package/tools/rmt-editor/vscode/extension.d.ts +9 -0
  416. package/tools/rmt-editor/vscode/extension.js +55 -0
  417. package/tools/rmt-editor/vscode/language-configuration.json +28 -0
  418. package/tools/rmt-editor/vscode/package.json +83 -0
  419. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
  420. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
  421. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  422. package/tools/rmt-language/code-actions.d.ts +15 -0
  423. package/tools/rmt-language/code-actions.js +566 -0
  424. package/tools/rmt-language/completions.d.ts +22 -0
  425. package/tools/rmt-language/completions.js +475 -0
  426. package/tools/rmt-language/definitions.d.ts +13 -0
  427. package/tools/rmt-language/definitions.js +212 -0
  428. package/tools/rmt-language/diagnostics.d.ts +23 -0
  429. package/tools/rmt-language/diagnostics.js +486 -0
  430. package/tools/rmt-language/format-adapter.d.ts +16 -0
  431. package/tools/rmt-language/format-adapter.js +270 -0
  432. package/tools/rmt-language/hover.d.ts +12 -0
  433. package/tools/rmt-language/hover.js +326 -0
  434. package/tools/rmt-language/kernel-escalation.d.ts +122 -0
  435. package/tools/rmt-language/kernel-escalation.js +427 -0
  436. package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
  437. package/tools/rmt-language/kernel-panic-monitor.js +674 -0
  438. package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
  439. package/tools/rmt-language/kernel-policy-parity.js +629 -0
  440. package/tools/rmt-language/kernel-recovery.d.ts +173 -0
  441. package/tools/rmt-language/kernel-recovery.js +666 -0
  442. package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
  443. package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
  444. package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
  445. package/tools/rmt-language/kernel-security-regression.js +465 -0
  446. package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
  447. package/tools/rmt-language/kernel-trust-authority.js +549 -0
  448. package/tools/rmt-language/parser.d.ts +14 -0
  449. package/tools/rmt-language/parser.js +111 -0
  450. package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
  451. package/tools/rmt-language/rules/boundary-policy.js +81 -0
  452. package/tools/rmt-language/rules/document-policy.js +65 -0
  453. package/tools/rmt-language/rules/index.js +29 -0
  454. package/tools/rmt-language/rules/route-policy.js +81 -0
  455. package/tools/rmt-language/rules/scheduler-policy.js +66 -0
  456. package/tools/rmt-language/rules/template-policy.js +130 -0
  457. package/tools/rmt-language/semantic-graph.d.ts +18 -0
  458. package/tools/rmt-language/semantic-graph.js +827 -0
  459. package/tools/rmt-language/snippets/README.md +17 -0
  460. package/tools/rmt-language/snippets/index.d.ts +17 -0
  461. package/tools/rmt-language/snippets/index.js +417 -0
  462. package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
  463. package/tools/rmt-language/source-model.d.ts +14 -0
  464. package/tools/rmt-language/source-model.js +731 -0
  465. package/tools/rmt-language/symbols.d.ts +13 -0
  466. package/tools/rmt-language/symbols.js +183 -0
  467. package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
  468. package/tools/rmt-language/vnext-compatibility.js +675 -0
  469. package/tools/rmt-language/vnext-compiler.d.ts +17 -0
  470. package/tools/rmt-language/vnext-compiler.js +716 -0
  471. package/tools/rmt-language/vnext-composition.d.ts +30 -0
  472. package/tools/rmt-language/vnext-composition.js +595 -0
  473. package/tools/rmt-language/vnext-conditions.d.ts +25 -0
  474. package/tools/rmt-language/vnext-conditions.js +474 -0
  475. package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
  476. package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
  477. package/tools/rmt-language/vnext-degradation.d.ts +23 -0
  478. package/tools/rmt-language/vnext-degradation.js +428 -0
  479. package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
  480. package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
  481. package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
  482. package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
  483. package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
  484. package/tools/rmt-language/vnext-enterprise-release.js +472 -0
  485. package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
  486. package/tools/rmt-language/vnext-event-governance.js +488 -0
  487. package/tools/rmt-language/vnext-events.d.ts +44 -0
  488. package/tools/rmt-language/vnext-events.js +680 -0
  489. package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
  490. package/tools/rmt-language/vnext-import-resolver.js +642 -0
  491. package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
  492. package/tools/rmt-language/vnext-lifecycle.js +404 -0
  493. package/tools/rmt-language/vnext-parser.d.ts +21 -0
  494. package/tools/rmt-language/vnext-parser.js +1391 -0
  495. package/tools/rmt-language/vnext-regression.d.ts +25 -0
  496. package/tools/rmt-language/vnext-regression.js +394 -0
  497. package/tools/rmt-language/vnext-release.d.ts +29 -0
  498. package/tools/rmt-language/vnext-release.js +293 -0
  499. package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
  500. package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
  501. package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
  502. package/tools/rmt-language/vnext-remote-compiler.js +520 -0
  503. package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
  504. package/tools/rmt-language/vnext-remote-manifest.js +538 -0
  505. package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
  506. package/tools/rmt-language/vnext-remote-security.js +380 -0
  507. package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
  508. package/tools/rmt-language/vnext-remote-tooling.js +805 -0
  509. package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
  510. package/tools/rmt-language/vnext-scheduler.js +469 -0
  511. package/tools/rmt-language/vnext-security.d.ts +28 -0
  512. package/tools/rmt-language/vnext-security.js +597 -0
  513. package/tools/rmt-language/vnext-streaming.d.ts +28 -0
  514. package/tools/rmt-language/vnext-streaming.js +593 -0
  515. package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
  516. package/tools/rmt-language/vnext-surfaces.js +406 -0
  517. package/tools/rmt-language/vnext-tooling.d.ts +25 -0
  518. package/tools/rmt-language/vnext-tooling.js +728 -0
  519. package/tools/rmt-language-server/protocol.d.ts +22 -0
  520. package/tools/rmt-language-server/protocol.js +352 -0
  521. package/tools/rmt-language-server/server.d.ts +15 -0
  522. package/tools/rmt-language-server/server.js +622 -0
  523. package/tools/rmt-linter/cli.d.ts +14 -0
  524. package/tools/rmt-linter/cli.js +450 -0
  525. package/tools/rmt-linter/reporter.d.ts +16 -0
  526. package/tools/rmt-linter/reporter.js +472 -0
  527. package/xtend-builder/README.md +83 -0
  528. package/xtend-builder/a11y/README.md +42 -0
  529. package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
  530. package/xtend-builder/a11y/component-a11y-profile.js +314 -0
  531. package/xtend-builder/blueprints/README.md +105 -0
  532. package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
  533. package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
  534. package/xtend-builder/builder-public-types.d.ts +234 -0
  535. package/xtend-builder/extensions/README.md +26 -0
  536. package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
  537. package/xtend-builder/extensions/component-extension-points.js +277 -0
  538. package/xtend-builder/generators/README.md +149 -0
  539. package/xtend-builder/generators/component-files.d.ts +5 -0
  540. package/xtend-builder/generators/component-files.js +769 -0
  541. package/xtend-builder/generators/component-plan.d.ts +4 -0
  542. package/xtend-builder/generators/component-plan.js +104 -0
  543. package/xtend-builder/generators/registry.d.ts +6 -0
  544. package/xtend-builder/generators/registry.js +118 -0
  545. package/xtend-builder/generators/rmt-build.js +738 -0
  546. package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
  547. package/xtend-builder/lib/cli.d.ts +9 -0
  548. package/xtend-builder/lib/cli.js +543 -0
  549. package/xtend-builder/lib/layout.d.ts +6 -0
  550. package/xtend-builder/lib/layout.js +153 -0
  551. package/xtend-builder/lib/package-resolver.js +25 -0
  552. package/xtend-builder/package.json +90 -0
  553. package/xtend-builder/performance/README.md +31 -0
  554. package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
  555. package/xtend-builder/performance/component-performance-profile.js +347 -0
  556. package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
  557. package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
  558. package/xtend-builder/preview/README.md +61 -0
  559. package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
  560. package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
  561. package/xtend-builder/preview/component-lab.d.ts +14 -0
  562. package/xtend-builder/preview/component-lab.js +278 -0
  563. package/xtend-builder/preview/component-preview.d.ts +5 -0
  564. package/xtend-builder/preview/component-preview.js +160 -0
  565. package/xtend-builder/scaffold.config.d.ts +4 -0
  566. package/xtend-builder/scaffold.config.js +2056 -0
  567. package/xtend-builder/scaffold.d.ts +3 -0
  568. package/xtend-builder/scaffold.js +11 -0
  569. package/xtend-builder/templates/README.md +33 -0
  570. package/xtend-builder/templates/component/a11y.template.ts +11 -0
  571. package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
  572. package/xtend-builder/templates/component/component-suite.template.js +108 -0
  573. package/xtend-builder/templates/component/contract.template.ts +10 -0
  574. package/xtend-builder/templates/component/demo-plan.template.md +73 -0
  575. package/xtend-builder/templates/component/docs.template.md +301 -0
  576. package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
  577. package/xtend-builder/templates/component/fixture.template.html +37 -0
  578. package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
  579. package/xtend-builder/templates/component/performance.template.ts +13 -0
  580. package/xtend-builder/templates/component/rmt.template.ts +12 -0
  581. package/xtend-builder/templates/component/source.template.d.ts +2 -0
  582. package/xtend-builder/templates/component/source.template.js +137 -0
  583. package/xtend-builder/templates/component/source.template.ts +110 -0
  584. package/xtend-builder/templates/component/types.template.d.ts +423 -0
  585. package/xtend-builder/templates/loader.d.ts +4 -0
  586. package/xtend-builder/templates/loader.js +51 -0
  587. package/xtend-builder/templates/registry.d.ts +6 -0
  588. package/xtend-builder/templates/registry.js +119 -0
  589. package/xtend-builder/typing/README.md +130 -0
  590. package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
  591. package/xtend-builder/typing/component-contract-v2.js +248 -0
  592. package/xtend-builder/typing/component-network-contract.d.ts +22 -0
  593. package/xtend-builder/typing/component-network-contract.js +478 -0
  594. package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
  595. package/xtend-builder/typing/component-shell-contract.js +312 -0
  596. package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
  597. package/xtend-builder/typing/component-styling-contract.js +301 -0
  598. package/xtend-builder/typing/component-types.d.ts +10 -0
  599. package/xtend-builder/typing/component-types.js +551 -0
  600. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
  601. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
  602. package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
  603. package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
  604. package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
  605. package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
  606. package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
  607. package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
  608. package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
  609. package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
  610. package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
  611. package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
  612. package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
  613. package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
  614. package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
  615. package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
  616. package/xtend-builder/utils/README.md +8 -0
  617. package/xtend-builder/utils/naming.d.ts +7 -0
  618. package/xtend-builder/utils/naming.js +36 -0
  619. package/xtend-builder/utils/validation.d.ts +5 -0
  620. package/xtend-builder/utils/validation.js +95 -0
  621. package/xtend-builder/wiring/README.md +46 -0
  622. package/xtend-builder/wiring/features.d.ts +5 -0
  623. package/xtend-builder/wiring/features.js +165 -0
  624. package/xtend-builder/wiring/hydration.d.ts +4 -0
  625. package/xtend-builder/wiring/hydration.js +44 -0
  626. package/xtend-builder/wiring/manifest.d.ts +5 -0
  627. package/xtend-builder/wiring/manifest.js +48 -0
  628. package/xtend-builder/workflows/README.md +47 -0
  629. package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
  630. package/xtend-builder/workflows/developer-workflow.js +125 -0
  631. package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
  632. package/xtend-builder/writing/manifest-patcher.js +391 -0
  633. package/xtend-builder/writing/write-plan.d.ts +148 -0
  634. package/xtend-builder/writing/write-plan.js +646 -0
  635. package/xtend-dev.d.ts +23 -0
  636. package/xtend-dev.js +4 -0
  637. package/xtend-loader.d.ts +201 -0
  638. package/xtend-loader.js +1704 -0
  639. package/xtend.css +402 -0
  640. package/xtendrmt/package.json +64 -0
  641. package/xtendrmt/rmt-core.d.ts +4452 -0
  642. package/xtendrmt/rmt-core.esm.js +25793 -0
  643. package/xtendrmt/rmt-first-demo-app.js +265 -0
  644. package/xtendrmt/rmt-first-demo-app.rmt +737 -0
  645. package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
  646. package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
  647. package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
  648. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
  649. package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
  650. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
  651. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
  652. package/xtendrmt/rmt-manifest.json +548 -0
  653. package/xtendrmt/rmt-runtime.browser.js +26183 -0
  654. package/xtendrmt/rmt-runtime.esm.js +26214 -0
  655. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
  656. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
  657. package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
  658. package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
  659. package/xtendrmt/rmt.schema.json +3145 -0
  660. package/xtendrmt/surface-workbench.js +316 -0
  661. package/xtendrmt/surface-workbench.rmt +762 -0
  662. package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
  663. package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
  664. package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
@@ -0,0 +1,2056 @@
1
+ // XTend-Builder Scaffold Config
2
+
3
+ module.exports = {
4
+ componentDir: "components/",
5
+ styleDir: "styles/",
6
+ utilsDir: "utils/",
7
+ testDir: "tests/",
8
+ docsDir: "docs/",
9
+ templatesDir: "templates/",
10
+ pluginsDir: "plugins/",
11
+ scaffoldName: "XTend-Scaffold",
12
+ scaffoldRole: "repo-local-build-environment",
13
+ runtimeBoundary: "dry-run-first-but-write-capable",
14
+ tooling: {
15
+ runtime: "node",
16
+ moduleSystem: "commonjs",
17
+ packageManager: "npm-scripts",
18
+ dependencyPolicy: "no-new-runtime-dependencies-for-core-generator",
19
+ writeStrategy: "dry-run-first-but-write-capable",
20
+ writePlanSchema: "xtend.scaffold.write-plan.v1",
21
+ writeReportSchema: "xtend.scaffold.write-report.v1",
22
+ ownershipSchema: "xtend.scaffold.generated-ownership.v1",
23
+ patchersSchema: "xtend.scaffold.patchers.v1",
24
+ manifestPatcherSchema: "xtend.scaffold.manifest-patcher.v1",
25
+ buildReportSchema: "xtend.scaffold.build-report.v1",
26
+ writeCapability: "central-writer-and-structured-patchers"
27
+ },
28
+ entryPoints: {
29
+ cli: "xtend-builder/scaffold.js",
30
+ cliModule: "xtend-builder/lib/cli.js",
31
+ layoutContract: "xtend-builder/lib/layout.js",
32
+ binAliases: ["xt", "xtend", "xtend-scaffold"],
33
+ npmScript: "npm run scaffold"
34
+ },
35
+ moduleLayout: {
36
+ root: "xtend-builder/",
37
+ lib: "xtend-builder/lib/",
38
+ blueprints: "xtend-builder/blueprints/",
39
+ generators: "xtend-builder/generators/",
40
+ templates: "xtend-builder/templates/",
41
+ wiring: "xtend-builder/wiring/",
42
+ typing: "xtend-builder/typing/",
43
+ preview: "xtend-builder/preview/",
44
+ extensions: "xtend-builder/extensions/",
45
+ a11y: "xtend-builder/a11y/",
46
+ performance: "xtend-builder/performance/",
47
+ workflows: "xtend-builder/workflows/",
48
+ utils: "xtend-builder/utils/",
49
+ writing: "xtend-builder/writing/"
50
+ },
51
+ namingConventions: {
52
+ componentTagPattern: "^x-[a-z0-9]+(?:-[a-z0-9]+)*$",
53
+ commandNames: ["help", "layout", "config", "blueprint", "generators", "templates", "component-plan", "component-files", "typing", "preview", "extensions", "workflow", "verify", "validate"],
54
+ commandAliases: {
55
+ validate: "verify"
56
+ },
57
+ generatedFileStrategy: "artifact-paths-from-config"
58
+ },
59
+ blueprints: {
60
+ component: {
61
+ schema: "xtend.scaffold.component-blueprint.v1",
62
+ contract: "xtend-builder/blueprints/component-blueprint.contract.js",
63
+ documentation: "xtend-builder/blueprints/README.md",
64
+ workpackage: "development/WP-E03-03-Komponenten-Blueprint-und-Artefaktcontract-entwerfen.md",
65
+ requiredArtifacts: ["component", "docs", "tests", "fixtures", "types", "manifest", "ts-source", "ts-contract", "ts-rmt", "ts-a11y", "ts-performance", "ts-fixture"],
66
+ conditionalArtifacts: ["demo"],
67
+ exceptionPolicy: "documented-exception-required"
68
+ }
69
+ },
70
+ generators: {
71
+ schema: "xtend.scaffold.generator-registry.v1",
72
+ registry: "xtend-builder/generators/registry.js",
73
+ componentPlan: "xtend-builder/generators/component-plan.js",
74
+ componentFiles: "xtend-builder/generators/component-files.js",
75
+ componentTyping: "xtend-builder/typing/component-types.js",
76
+ componentPreview: "xtend-builder/preview/component-preview.js",
77
+ componentExtensions: "xtend-builder/extensions/component-extension-points.js",
78
+ componentA11y: "xtend-builder/a11y/component-a11y-profile.js",
79
+ componentPerformance: "xtend-builder/performance/component-performance-profile.js",
80
+ rmtBuild: "xtend-builder/generators/rmt-build.js",
81
+ mode: "plan-dry-run-render-type-preview-extension-and-write-plan-contract",
82
+ defaultCommand: "component-plan",
83
+ fileOutputMode: "dry-run-render-or-write-with-feature-type-preview-extension-ownership-manifest-patch-and-build-report"
84
+ },
85
+ rmtAppBuild: {
86
+ schema: "xtend.scaffold.rmt-app-build.v1",
87
+ reportSchema: "xtend.scaffold.rmt-app-build-report.v1",
88
+ browserSmokeSchema: "xtend.scaffold.rmt-app-browser-smoke.v1",
89
+ generator: "xtend-builder/generators/rmt-build.js",
90
+ sourcePattern: "xtendrmt/*.rmt",
91
+ outputMode: "rmt-vnext-template-to-core-json-xtend-app-host-smoke-and-report",
92
+ buildCommand: "node xtend-builder/scaffold.js rmt-build --source xtendrmt/rmt-lifecycle-demo.rmt --write --json",
93
+ checkCommand: "node xtend-builder/scaffold.js rmt-build --source xtendrmt/rmt-lifecycle-demo.rmt --check --json",
94
+ localGate: "node scripts/run_xtend_tests.js scaffold-rmt-build --json",
95
+ writer: "xtend.scaffold.write-plan.v1",
96
+ manifestPatcher: "xtend.scaffold.manifest-patcher.v1",
97
+ ownership: "xtend.scaffold.generated-ownership.v1",
98
+ httpServerCompatible: true,
99
+ networkPolicy: "repo-local-assets-only"
100
+ },
101
+ a11y: {
102
+ schema: "xtend.scaffold.a11y-profile-plan.v1",
103
+ module: "xtend-builder/a11y/component-a11y-profile.js",
104
+ screenreaderSignalsModule: "a11y/screenreader-signals.js",
105
+ motionContrastModule: "a11y/motion-contrast-policy.js",
106
+ componentContract: "xtend.a11y.component-contract.v1",
107
+ profileContract: "xtend.a11y.profile.v1",
108
+ screenreaderSignalsContract: "xtend.a11y.screenreader-signals.v1",
109
+ motionContrastContract: "xtend.a11y.motion-contrast-policy.v1",
110
+ motionPolicyContract: "xtend.a11y.motion-policy.v1",
111
+ contrastPolicyContract: "xtend.a11y.contrast-policy.v1",
112
+ testContract: "xtend.a11y.test-contract.v1",
113
+ sourceStaticGetter: "xtendScaffoldA11yProfile",
114
+ manifestKey: "a11yProfile",
115
+ screenreaderManifestKey: "screenreaderSignals",
116
+ motionContrastManifestKey: "motionContrastPolicy",
117
+ requiredDocsSections: ["A11y-Profil", "Screenreader-Signale", "Motion-und-Contrast-Policy", "Accessibility und Hydration"],
118
+ requiredFixtureAttributes: ["aria-label"],
119
+ requiredProfileFields: ["role", "accessibleName", "focusStrategy", "keyboard", "ariaStates", "screenreader", "motion", "contrast", "motionContrast", "testPlan"],
120
+ requiredSuites: ["components", "a11y-hydration", "screenreader-signals", "motion-contrast", "references"],
121
+ reducedMotion: "required",
122
+ focusVisible: "required",
123
+ forcedColors: "required",
124
+ highContrast: "required",
125
+ screenreaderPolicy: "profile-specific-live-region-or-none"
126
+ },
127
+ performance: {
128
+ schema: "xtend.scaffold.performance-policy.v1",
129
+ module: "xtend-builder/performance/component-performance-profile.js",
130
+ componentProfileContract: "xtend.performance.component-profile.v1",
131
+ budgetMatrix: "development/XTend-Performance-Budget-Matrix.md",
132
+ authorGuide: "docs/performance.md",
133
+ measurementContract: "xtend.performance.measurement.v1",
134
+ regressionGate: "xtend.performance.regression-gate.v1",
135
+ hydrationPolicyContract: "xtend.fabric.hydration-policy.v1",
136
+ sourceStaticGetter: "xtendScaffoldPerformanceProfile",
137
+ manifestKey: "performanceProfile",
138
+ requiredDocsSections: ["Performance-Profil", "Performance-Regeln"],
139
+ requiredProfileFields: ["performanceProfile", "budgetClass", "lane", "hydrationPolicy", "criticalMeasurements", "idleOrBackgroundAllowed"],
140
+ requiredSuites: ["component-ux-performance", "fabric-performance-measurements", "performance-regression", "hydration-policy", "references"],
141
+ globalRules: ["scoped-dom-queries", "no-layout-thrashing", "event-handler-budget", "shadow-dom-style-cache", "observer-and-timer-cleanup", "reduced-motion-aware-animations"],
142
+ defaultProfiles: ["display", "interactive", "stateful", "feedback", "overlay", "routing", "theme", "form", "media"]
143
+ },
144
+ templateLoader: {
145
+ schema: "xtend.scaffold.template-registry.v1",
146
+ registry: "xtend-builder/templates/registry.js",
147
+ loader: "xtend-builder/templates/loader.js",
148
+ root: "xtend-builder/templates/",
149
+ mode: "render-only-with-WP-E03-11-extension-contract",
150
+ implementedArtifacts: ["component", "docs", "tests", "fixtures", "types", "manifest", "demo", "ts-source", "ts-contract", "ts-rmt", "ts-a11y", "ts-performance", "ts-fixture"]
151
+ },
152
+ typing: {
153
+ schema: "xtend.scaffold.component-typing.v1",
154
+ module: "xtend-builder/typing/component-types.js",
155
+ componentContractV2Schema: "xtend.component.contract.v2",
156
+ componentContractV2Module: "xtend-builder/typing/component-contract-v2.js",
157
+ rmtAttachmentSchema: "xtend.scaffold.rmt-attachment.v1",
158
+ artifact: "components/<tag>.d.ts",
159
+ mode: "types-only-no-runtime-imports",
160
+ eventPolicy: "event-name-union-and-detail-interface",
161
+ attributePolicy: "observed-attributes-as-string-null-map",
162
+ propertyPolicy: "explicit-public-property-map",
163
+ exceptionPolicy: "documented-type-exception-required",
164
+ rmtAttachment: {
165
+ status: "prepared-contract-only",
166
+ adapter: "xtend.component",
167
+ routerAdapter: "xtend.xrouter",
168
+ templateAdapter: "xtend.template",
169
+ componentContractVersion: "xtend.rmt.component-contract.v1",
170
+ templateAuthoringContractVersion: "xtend.rmt.template-authoring.v1",
171
+ rootHandshakeContractVersion: "xtend.rmt.root-handshake.v1",
172
+ hostCapabilitiesContractVersion: "xtend.rmt.host-capabilities.v1",
173
+ hostCapabilities: {
174
+ adapterId: "xtend",
175
+ required: ["manifest", "customElements", "stateBridge", "hydration", "schedulerEndpoints"],
176
+ optional: ["theme", "api", "router", "diagnostics"],
177
+ kernelVisible: false
178
+ },
179
+ bridgeEpic: "development/EPIC-05-XTendRMT-Bridge-und-Natives-Routing.md",
180
+ architectureEpic: "development/EPIC-04-XTend-Templating-Rendering-und-Framework-Erweiterung.md",
181
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
182
+ }
183
+ },
184
+ typescriptSource: {
185
+ schema: "xtend.scaffold.typescript-source-strategy.v1",
186
+ sourceStrategyContract: "xtend.typescript.component-source-strategy.v1",
187
+ workpackage: "development/WP-E10-02-TypeScript-Source-und-Build-Strategie-entscheiden.md",
188
+ strategy: "development/XTend-TypeScript-Component-Source-Strategie.md",
189
+ status: "strategy-accepted",
190
+ sourceRoot: "src/components/",
191
+ runtimeOutputRoot: "components/",
192
+ declarationOutputRoot: "components/",
193
+ sourcePattern: "src/components/<tag>/<tag>.ts",
194
+ contractPattern: "src/components/<tag>/<tag>.contract.ts",
195
+ rmtMetadataPattern: "src/components/<tag>/<tag>.rmt.ts",
196
+ a11yProfilePattern: "src/components/<tag>/<tag>.a11y.ts",
197
+ performanceProfilePattern: "src/components/<tag>/<tag>.performance.ts",
198
+ fixtureDataPattern: "src/components/<tag>/<tag>.fixture.ts",
199
+ esmArtifactPattern: "components/<basename>.js",
200
+ declarationArtifactPattern: "components/<basename>.d.ts",
201
+ manifestArtifact: "components/manifest.json",
202
+ loader: "xtend-loader.js",
203
+ buildMode: "ts-source-to-local-esm-artifacts",
204
+ runtimeFormat: "esm",
205
+ bundlerPolicy: "no-bundler-required-for-core-components",
206
+ runtimeDependencyPolicy: "no-new-runtime-dependencies",
207
+ networkPolicy: "no-cdn-no-remote-runtime-imports",
208
+ migrationPolicy: "new-components-typescript-first-existing-js-incremental",
209
+ migrationStates: ["js-legacy", "ts-planned", "ts-source", "ts-generated-esm", "contract-only"],
210
+ noRmtKernelCoupling: true,
211
+ productiveCompilerIntroduced: false,
212
+ requiredFollowUps: ["WP-E10-03", "WP-E10-07"],
213
+ localGates: ["references", "components", "rmt-compatibility"]
214
+ },
215
+ typescriptComponentBlueprint: {
216
+ schema: "xtend.scaffold.typescript-component-blueprint.v1",
217
+ workpackage: "development/WP-E10-07-xtend-builder-TypeScript-Blueprint-vorbereiten.md",
218
+ contract: "development/XTend-TypeScript-Component-Blueprint.md",
219
+ status: "accepted-contract",
220
+ builderModule: "xtend-builder/blueprints/component-blueprint.contract.js",
221
+ generator: "xtend-builder/generators/component-files.js",
222
+ templateRegistry: "xtend-builder/templates/registry.js",
223
+ componentContract: "xtend.component.contract.v2",
224
+ sourceStrategy: "xtend.typescript.component-source-strategy.v1",
225
+ rmtComponentContract: "xtend.rmt.component-contract.v1",
226
+ fabricLaneIngestion: "xtend.component.fabric-lane-ingestion.v2",
227
+ lifecycleTelemetry: "xtend.component.lifecycle-telemetry.v1",
228
+ telemetrySnapshot: "xtend.fabric.telemetry-snapshot.v1",
229
+ requiredArtifacts: ["ts-source", "ts-contract", "ts-rmt", "ts-a11y", "ts-performance", "ts-fixture"],
230
+ runtimeArtifacts: ["component", "types", "manifest"],
231
+ companionArtifacts: ["docs", "tests", "fixtures", "demo"],
232
+ sourceRoot: "src/components/",
233
+ runtimeOutputRoot: "components/",
234
+ declarationOutputRoot: "components/",
235
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
236
+ noRuntimeImports: true,
237
+ noProductiveWrites: true,
238
+ productiveCompilerIntroduced: false,
239
+ localGate: "node scripts/run_xtend_tests.js builder-typescript-blueprint --json",
240
+ requiredFollowUps: ["WP-E10-08", "WP-E10-12", "WP-E10-14", "WP-E10-15"]
241
+ },
242
+ componentPlatformP0Wave: {
243
+ schema: "xtend.epic10.p0-component-wave.v1",
244
+ stubSchema: "xtend.epic10.p0-component-contract-stub.v1",
245
+ gateSchema: "xtend.epic10.p0-component-wave-gate.v1",
246
+ workpackage: "development/WP-E10-08-P0-Komponentenwelle-priorisieren-und-Contracts-anlegen.md",
247
+ contract: "development/XTend-P0-Komponentenwelle-und-Contract-Stubs.md",
248
+ module: "catalog/epic10-p0-component-wave.js",
249
+ suite: "tests/components/epic10_p0_component_wave_suite.js",
250
+ status: "accepted-contract",
251
+ componentContract: "xtend.component.contract.v2",
252
+ sourceStrategy: "xtend.typescript.component-source-strategy.v1",
253
+ maturityModel: "xtend.component.maturity-model.v2",
254
+ sourceState: "ts-planned",
255
+ targetMaturity: "stable",
256
+ components: ["x-select", "x-checkbox", "x-radio", "x-textarea", "x-status", "x-progress", "x-tooltip", "x-popover", "x-drawer"],
257
+ workpackageMap: {
258
+ "WP-E10-09": ["x-select", "x-checkbox", "x-radio"],
259
+ "WP-E10-10": ["x-textarea", "x-status", "x-progress"],
260
+ "WP-E10-11": ["x-tooltip", "x-popover", "x-drawer"]
261
+ },
262
+ requiredArtifacts: ["ts-source", "ts-contract", "ts-rmt", "ts-a11y", "ts-performance", "ts-fixture"],
263
+ requiredGates: ["component-contract-v2", "builder-typescript-blueprint", "epic10-p0-component-wave", "references"],
264
+ localGate: "node scripts/run_xtend_tests.js epic10-p0-component-wave --json",
265
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
266
+ noRuntimeImports: true,
267
+ noProductiveWrites: true,
268
+ requiredFollowUps: ["WP-E10-09", "WP-E10-10", "WP-E10-11", "WP-E10-15"]
269
+ },
270
+ componentContractV2: {
271
+ schema: "xtend.component.contract.v2",
272
+ reportSchema: "xtend.component.contract-report.v2",
273
+ module: "xtend-builder/typing/component-contract-v2.js",
274
+ workpackage: "development/WP-E10-03-Component-Contract-v2-fuer-TypeScript-RMT-und-Fabric-definieren.md",
275
+ contract: "development/XTend-Component-Contract-v2.md",
276
+ status: "accepted-contract",
277
+ sourceStrategy: "xtend.typescript.component-source-strategy.v1",
278
+ maturityModel: "xtend.component.maturity-model.v2",
279
+ requiredDomains: ["source", "runtime", "publicApi", "rmt", "fabric", "telemetry", "lanes", "a11y", "performance", "tests", "docs", "maturity"],
280
+ publicApiDomains: ["attributes", "properties", "slots", "events", "methods", "state", "theme", "typeExports"],
281
+ rmtComponentContract: "xtend.rmt.component-contract.v1",
282
+ rmtAdapter: "xtend.component",
283
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
284
+ fabricApi: "@xtend-fabric",
285
+ telemetrySnapshot: "xtend.fabric.telemetry-snapshot.v1",
286
+ a11yComponentContract: "xtend.a11y.component-contract.v1",
287
+ performanceComponentProfile: "xtend.performance.component-profile.v1",
288
+ lifecycleOperations: ["mount", "hydrate", "render", "update", "event", "error", "unmount"],
289
+ lanePrecedence: ["rmt.schedule-record", "rmt.component-metadata", "fabric.runtime-override", "component.static-contract", "scaffold.blueprint-default"],
290
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
291
+ noRuntimeImports: true,
292
+ noProductiveWrites: true,
293
+ localGate: "node scripts/run_xtend_tests.js component-contract-v2 --json",
294
+ requiredFollowUps: ["WP-E10-05", "WP-E10-06", "WP-E10-07", "WP-E10-08", "WP-E10-15"]
295
+ },
296
+ componentShellContract: {
297
+ schema: "xtend.component.shell.v1",
298
+ reportSchema: "xtend.component.shell-report.v1",
299
+ module: "xtend-builder/typing/component-shell-contract.js",
300
+ workpackage: "development/WP-E11-02-Component-Shell-Contract-spezifizieren.md",
301
+ contract: "development/XTend-Component-Shell-Contract.md",
302
+ suite: "tests/components/component_shell_contract_suite.js",
303
+ status: "accepted-contract",
304
+ componentContract: "xtend.component.contract.v2",
305
+ uxMaturityModel: "xtend.component.ux-maturity-model.v1",
306
+ rmtShellAuthoring: "xtend.rmt.shell-authoring.v1",
307
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
308
+ fabricApi: "@xtend-fabric",
309
+ a11yComponentContract: "xtend.a11y.component-contract.v1",
310
+ performanceComponentProfile: "xtend.performance.component-profile.v1",
311
+ requiredDomains: ["dom", "states", "slots", "parts", "tokens", "focus", "a11y", "performance", "rmt", "fabric", "compatibility", "docs", "tests"],
312
+ requiredStates: ["empty", "loading", "ready", "error", "disabled", "busy", "invalid"],
313
+ domModes: ["shadow", "light", "hybrid"],
314
+ focusStrategies: ["none", "host", "delegates-focus", "managed-roving", "trap"],
315
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
316
+ noRuntimeImports: true,
317
+ noProductiveWrites: true,
318
+ localGate: "node scripts/run_xtend_tests.js component-shell-contract --json",
319
+ requiredFollowUps: ["WP-E11-03", "WP-E11-04", "WP-E11-05", "WP-E11-06", "WP-E11-07"]
320
+ },
321
+ componentStylingContract: {
322
+ schema: "xtend.component.styling.v1",
323
+ reportSchema: "xtend.component.styling-report.v1",
324
+ module: "xtend-builder/typing/component-styling-contract.js",
325
+ workpackage: "development/WP-E11-03-Styling-Token-und-CSS-Part-Contract-definieren.md",
326
+ contract: "development/XTend-Component-Styling-Token-und-Part-Contract.md",
327
+ suite: "tests/components/component_styling_contract_suite.js",
328
+ status: "accepted-contract",
329
+ componentContract: "xtend.component.contract.v2",
330
+ shellContract: "xtend.component.shell.v1",
331
+ uxMaturityModel: "xtend.component.ux-maturity-model.v1",
332
+ rmtStyleAuthoring: "xtend.rmt.style-authoring.v1",
333
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
334
+ fabricApi: "@xtend-fabric",
335
+ requiredDomains: ["tokens", "customProperties", "parts", "variants", "sizes", "density", "themes", "motion", "contrast", "rmt", "fabric", "compatibility", "docs", "tests"],
336
+ requiredTokenCategories: ["color", "surface", "text", "space", "radius", "typography", "motion", "elevation", "state"],
337
+ requiredVariants: ["default", "primary", "secondary", "success", "warning", "danger", "neutral"],
338
+ requiredSizes: ["sm", "md", "lg"],
339
+ requiredDensities: ["comfortable", "compact", "dense"],
340
+ requiredThemes: ["light", "dark", "high-contrast", "forced-colors"],
341
+ requiredParts: ["root", "control", "label", "content", "helper", "error"],
342
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
343
+ noRuntimeImports: true,
344
+ noProductiveWrites: true,
345
+ localGate: "node scripts/run_xtend_tests.js component-styling-contract --json",
346
+ requiredFollowUps: ["WP-E11-04", "WP-E11-05", "WP-E11-07", "WP-E11-08", "WP-E11-15"]
347
+ },
348
+ runtimeA11yContract: {
349
+ schema: "xtend.component.runtime-a11y.v1",
350
+ reportSchema: "xtend.component.runtime-a11y-report.v1",
351
+ module: "a11y/runtime-a11y-contract.js",
352
+ workpackage: "development/WP-E11-04-Runtime-A11y-Contract-fuer-echte-UI-Bedienbarkeit-haerten.md",
353
+ contract: "development/XTend-Runtime-A11y-UX-Contract.md",
354
+ suite: "tests/a11y/runtime_a11y_contract_suite.js",
355
+ status: "accepted-contract",
356
+ componentA11yContract: "xtend.a11y.component-contract.v1",
357
+ shellContract: "xtend.component.shell.v1",
358
+ stylingContract: "xtend.component.styling.v1",
359
+ screenreaderSignals: "xtend.a11y.screenreader-signals.v1",
360
+ motionContrastPolicy: "xtend.a11y.motion-contrast-policy.v1",
361
+ rmtA11yAuthoring: "xtend.rmt.a11y-authoring.v1",
362
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
363
+ fabricLane: "a11y",
364
+ requiredDomains: ["semantics", "accessibleName", "keyboard", "focus", "aria", "screenreader", "motion", "contrast", "states", "forms", "overlays", "routing", "rmt", "fabric", "compatibility", "docs", "tests"],
365
+ profiles: ["display", "interactive", "form", "feedback", "overlay", "routing", "media"],
366
+ requiredAssertions: ["semantic-role", "accessible-name", "keyboard-path", "focus-visible", "focus-order", "screenreader-signal", "reduced-motion-safe", "forced-colors-safe", "no-color-only-state"],
367
+ requiredStates: ["disabled", "busy", "invalid", "error", "expanded", "selected", "active"],
368
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
369
+ noRuntimeImports: true,
370
+ noProductiveWrites: true,
371
+ localGate: "node scripts/run_xtend_tests.js runtime-a11y-contract --json",
372
+ requiredFollowUps: ["WP-E11-05", "WP-E11-06", "WP-E11-07", "WP-E11-08", "WP-E11-14"]
373
+ },
374
+ componentUxPerformanceContract: {
375
+ schema: "xtend.component.ux-performance.v1",
376
+ reportSchema: "xtend.component.ux-performance-report.v1",
377
+ module: "xtend-builder/performance/component-ux-performance-contract.js",
378
+ workpackage: "development/WP-E11-05-Component-Performance-Profiles-und-Budgets-erweitern.md",
379
+ contract: "development/XTend-Component-UX-Performance-Profile.md",
380
+ suite: "tests/performance/component_ux_performance_contract_suite.js",
381
+ status: "accepted-contract",
382
+ performancePolicy: "xtend.scaffold.performance-policy.v1",
383
+ componentPerformanceProfile: "xtend.performance.component-profile.v1",
384
+ budgetMatrix: "xtend.performance.budget-matrix.v1",
385
+ measurementContract: "xtend.performance.measurement.v1",
386
+ regressionGate: "xtend.performance.regression-gate.v1",
387
+ hydrationPolicy: "xtend.fabric.hydration-policy.v1",
388
+ shellContract: "xtend.component.shell.v1",
389
+ stylingContract: "xtend.component.styling.v1",
390
+ runtimeA11yContract: "xtend.component.runtime-a11y.v1",
391
+ rmtPerformanceAuthoring: "xtend.rmt.performance-authoring.v1",
392
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
393
+ requiredProfiles: ["display", "interactive", "form", "feedback", "overlay", "routing", "media", "stateful", "theme"],
394
+ requiredBudgetClasses: ["critical", "interactive", "background", "diagnostics", "best_effort"],
395
+ requiredLanes: ["user-blocking", "a11y", "transition", "visible", "idle", "background", "diagnostics"],
396
+ requiredHydrationPolicies: ["visible", "idle", "lazy", "visible-or-idle"],
397
+ requiredAssertions: ["budget-class-derived", "lane-derived", "hydration-policy-derived", "critical-measurements-present", "event-budget-bounded", "no-layout-thrashing", "observer-cleanup", "reduced-motion-safe", "telemetry-correlation", "regression-gate-linked"],
398
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
399
+ noRuntimeImports: true,
400
+ noProductiveWrites: true,
401
+ localGate: "node scripts/run_xtend_tests.js component-ux-performance --json",
402
+ requiredFollowUps: ["WP-E11-06", "WP-E11-07", "WP-E11-08", "WP-E11-13", "WP-E11-14"]
403
+ },
404
+ componentNetworkContract: {
405
+ schema: "xtend.component.network.v1",
406
+ reportSchema: "xtend.component.network-report.v1",
407
+ module: "xtend-builder/typing/component-network-contract.js",
408
+ workpackage: "development/WP-E11-06-Component-Network-Contract-definieren.md",
409
+ contract: "development/XTend-Component-Network-Compatibility-Contract.md",
410
+ suite: "tests/components/component_network_contract_suite.js",
411
+ status: "accepted-contract",
412
+ componentContract: "xtend.component.contract.v2",
413
+ shellContract: "xtend.component.shell.v1",
414
+ stylingContract: "xtend.component.styling.v1",
415
+ runtimeA11yContract: "xtend.component.runtime-a11y.v1",
416
+ uxPerformanceContract: "xtend.component.ux-performance.v1",
417
+ rmtNetworkAuthoring: "xtend.rmt.component-network-authoring.v1",
418
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
419
+ requiredDomains: ["events", "commands", "contexts", "forms", "validation", "feedback", "overlays", "routing", "theme", "state", "slots", "focus", "a11y", "performance", "rmt", "fabric", "compatibility", "docs", "tests"],
420
+ contexts: ["form", "validation", "feedback", "overlay", "router", "theme", "state", "diagnostics"],
421
+ requiredProfiles: ["form-control", "form-container", "feedback-source", "feedback-consumer", "overlay-trigger", "overlay-surface", "router-link", "router-outlet", "theme-provider", "state-source", "display-consumer"],
422
+ requiredEvents: ["xtend:value-change", "xtend:validation-change", "xtend:form-submit", "xtend:feedback-request", "xtend:overlay-open", "xtend:overlay-close", "xtend:route-change", "xtend:theme-change", "xtend:network-diagnostic"],
423
+ requiredCommands: ["focus", "validate", "reset", "submit", "announce", "open", "close", "navigate", "apply-theme", "snapshot"],
424
+ requiredAssertions: ["events-composed-bubbling", "commands-diagnostics-first", "form-association-safe", "validation-feedback-linked", "overlay-stack-coordinated", "router-context-stable", "theme-density-propagated", "fabric-context-resolved", "rmt-authoring-host-neutral", "no-global-magic-state"],
425
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
426
+ noRuntimeImports: true,
427
+ noProductiveWrites: true,
428
+ localGate: "node scripts/run_xtend_tests.js component-network-contract --json",
429
+ requiredFollowUps: ["WP-E11-07", "WP-E11-08", "WP-E11-09", "WP-E11-10", "WP-E11-11", "WP-E11-13", "WP-E11-14"]
430
+ },
431
+ rmtShellAuthoringComponentUx: {
432
+ schema: "xtend.rmt.shell-authoring.v1",
433
+ reportSchema: "xtend.rmt.shell-authoring-report.v1",
434
+ module: "xtend-builder/typing/rmt-shell-authoring-contract.js",
435
+ workpackage: "development/WP-E11-07-RMT-Shell-Authoring-fuer-Component-UX-erweitern.md",
436
+ contract: "development/XTend-RMT-Shell-Authoring-fuer-Component-UX.md",
437
+ fixture: "tests/fixtures/rmt-shell-authoring-component-ux.rmt",
438
+ suite: "tests/rmt/rmt_shell_authoring_component_ux_suite.js",
439
+ status: "accepted-contract",
440
+ componentContract: "xtend.component.contract.v2",
441
+ shellContract: "xtend.component.shell.v1",
442
+ stylingContract: "xtend.component.styling.v1",
443
+ runtimeA11yContract: "xtend.component.runtime-a11y.v1",
444
+ uxPerformanceContract: "xtend.component.ux-performance.v1",
445
+ componentNetworkContract: "xtend.component.network.v1",
446
+ rmtStyleAuthoring: "xtend.rmt.style-authoring.v1",
447
+ rmtA11yAuthoring: "xtend.rmt.a11y-authoring.v1",
448
+ rmtPerformanceAuthoring: "xtend.rmt.performance-authoring.v1",
449
+ rmtNetworkAuthoring: "xtend.rmt.component-network-authoring.v1",
450
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
451
+ requiredDomains: ["manifest", "adapters", "components", "templates", "shell", "style", "a11y", "variants", "density", "events", "commands", "hydration", "schedules", "fabric", "compatibility", "docs", "tests"],
452
+ authoringFields: ["shell", "style", "a11y", "commands", "events", "variants", "density", "hydration", "schedule", "fabric"],
453
+ requiredAdapters: ["xtend.component", "xtend.xrouter", "rmt.state-scheduler-diagnostics"],
454
+ requiredSchedules: ["component.shell.render", "component.visible.mount", "ui.user-blocking.input", "route.transition.render", "a11y.announce", "diagnostics.snapshot"],
455
+ requiredAssertions: ["shell-first-authoring", "style-token-authoring", "runtime-a11y-authoring", "command-event-network-binding", "schedule-fabric-lane-binding", "kernel-boundary-preserved", "host-neutral-adapters", "no-inline-runtime-code", "density-theme-propagation", "validation-fixture-resolves"],
456
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
457
+ noRuntimeImports: true,
458
+ noProductiveWrites: true,
459
+ localGate: "node scripts/run_xtend_tests.js rmt-shell-authoring-ux --json",
460
+ requiredFollowUps: ["WP-E11-08", "WP-E11-09", "WP-E11-10", "WP-E11-11", "WP-E11-13", "WP-E11-14", "WP-E11-17"]
461
+ },
462
+ formControlsUxMaturity: {
463
+ schema: "xtend.component.form-controls-ux.v1",
464
+ reportSchema: "xtend.component.form-controls-ux-report.v1",
465
+ module: "xtend-builder/typing/form-controls-ux-contract.js",
466
+ workpackage: "development/WP-E11-08-Form-Controls-UX-Reife-umsetzen.md",
467
+ contract: "development/XTend-Form-Controls-UX-Reife-Contract.md",
468
+ fixture: "tests/fixtures/rmt-form-controls-ux.rmt",
469
+ suite: "tests/components/form_controls_ux_suite.js",
470
+ status: "accepted",
471
+ profileGetter: "xtendFormControlUxProfile",
472
+ targets: ["x-input", "x-select", "x-checkbox", "x-radio", "x-textarea", "x-calendar", "x-form", "x-writer"],
473
+ requiredDomains: ["shell", "style", "a11y", "validation", "formAssociation", "events", "commands", "state", "rmt", "fabric", "performance", "docs", "tests"],
474
+ requiredSchedules: ["component.visible.mount", "component.idle.hydrate", "ui.user-blocking.input", "a11y.announce", "diagnostics.snapshot"],
475
+ requiredAssertions: ["form-associated-or-form-host", "accessible-name-required", "help-and-error-regions", "runtime-validation-events", "form-data-aggregation", "keyboard-path-documented", "style-token-surface", "fabric-lane-profile", "rmt-shell-authoring-ready", "kernel-boundary-preserved"],
476
+ rmtShellAuthoring: "xtend.rmt.shell-authoring.v1",
477
+ componentNetworkContract: "xtend.component.network.v1",
478
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
479
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
480
+ localGate: "node scripts/run_xtend_tests.js form-controls-ux --json",
481
+ requiredFollowUps: ["WP-E11-09", "WP-E11-10", "WP-E11-11", "WP-E11-12", "WP-E11-13", "WP-E11-14", "WP-E11-15"]
482
+ },
483
+ feedbackStatusUxMaturity: {
484
+ schema: "xtend.component.feedback-status-ux.v1",
485
+ reportSchema: "xtend.component.feedback-status-ux-report.v1",
486
+ module: "xtend-builder/typing/feedback-status-ux-contract.js",
487
+ workpackage: "development/WP-E11-09-Feedback-und-Status-UX-Reife-umsetzen.md",
488
+ contract: "development/XTend-Feedback-und-Status-UX-Reife-Contract.md",
489
+ fixture: "tests/fixtures/rmt-feedback-status-ux.rmt",
490
+ suite: "tests/components/feedback_status_ux_suite.js",
491
+ status: "accepted",
492
+ profileGetter: "xtendFeedbackStatusUxProfile",
493
+ targets: ["x-alert", "x-toast", "x-status", "x-progress", "x-spinner"],
494
+ requiredDomains: ["shell", "style", "a11y", "liveRegion", "motion", "timeout", "dismiss", "statusSemantics", "events", "commands", "state", "rmt", "fabric", "performance", "docs", "tests"],
495
+ requiredSchedules: ["component.visible.mount", "component.idle.hydrate", "a11y.announce", "feedback.status.update", "feedback.progress.update", "diagnostics.snapshot"],
496
+ requiredAssertions: ["live-region-semantics", "dismiss-timeout-policy", "reduced-motion-safe", "forced-colors-safe", "no-color-only-status", "event-source-detail", "fabric-lane-profile", "rmt-shell-authoring-ready", "form-feedback-compatible", "kernel-boundary-preserved"],
497
+ rmtShellAuthoring: "xtend.rmt.shell-authoring.v1",
498
+ componentNetworkContract: "xtend.component.network.v1",
499
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
500
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
501
+ localGate: "node scripts/run_xtend_tests.js feedback-status-ux --json",
502
+ requiredFollowUps: ["WP-E11-10", "WP-E11-11", "WP-E11-12", "WP-E11-13", "WP-E11-14", "WP-E11-15"]
503
+ },
504
+ navigationRoutingUxMaturity: {
505
+ schema: "xtend.component.navigation-routing-ux.v1",
506
+ reportSchema: "xtend.component.navigation-routing-ux-report.v1",
507
+ module: "xtend-builder/typing/navigation-routing-ux-contract.js",
508
+ workpackage: "development/WP-E11-10-Navigation-und-Routing-UX-Reife-umsetzen.md",
509
+ contract: "development/XTend-Navigation-und-Routing-UX-Reife-Contract.md",
510
+ fixture: "tests/fixtures/rmt-navigation-routing-ux.rmt",
511
+ suite: "tests/components/navigation_routing_ux_suite.js",
512
+ status: "accepted",
513
+ profileGetter: "xtendNavigationRoutingUxProfile",
514
+ targets: ["x-router", "x-link"],
515
+ requiredDomains: ["shell", "style", "a11y", "activeState", "focusRestore", "routeAnnouncements", "keyboardNavigation", "events", "commands", "state", "rmt", "fabric", "performance", "docs", "tests"],
516
+ requiredSchedules: ["component.visible.mount", "route.visible.render", "route.transition.render", "route.focus.restore", "a11y.announce", "ui.user-blocking.navigation", "diagnostics.snapshot"],
517
+ requiredAssertions: ["active-state-aria-current", "focus-restore-after-route", "route-announcement-live-region", "keyboard-activation", "history-hash-mode-compatible", "insular-route-component-reuse", "event-source-detail", "fabric-lane-profile", "rmt-shell-authoring-ready", "feedback-status-compatible", "kernel-boundary-preserved"],
518
+ rmtShellAuthoring: "xtend.rmt.shell-authoring.v1",
519
+ componentNetworkContract: "xtend.component.network.v1",
520
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
521
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
522
+ localGate: "node scripts/run_xtend_tests.js navigation-routing-ux --json",
523
+ requiredFollowUps: ["WP-E11-11", "WP-E11-12", "WP-E11-13", "WP-E11-14", "WP-E11-15"]
524
+ },
525
+ overlayInteractionUxMaturity: {
526
+ schema: "xtend.component.overlay-interaction-ux.v1",
527
+ reportSchema: "xtend.component.overlay-interaction-ux-report.v1",
528
+ module: "xtend-builder/typing/overlay-interaction-ux-contract.js",
529
+ workpackage: "development/WP-E11-11-Overlay-und-Interaction-UX-Reife-umsetzen.md",
530
+ contract: "development/XTend-Overlay-und-Interaction-UX-Reife-Contract.md",
531
+ fixture: "tests/fixtures/rmt-overlay-interaction-ux.rmt",
532
+ suite: "tests/components/overlay_interaction_ux_suite.js",
533
+ status: "accepted",
534
+ profileGetter: "xtendOverlayInteractionUxProfile",
535
+ targets: ["x-modal", "x-dialog", "x-popover", "x-tooltip", "x-drawer"],
536
+ requiredDomains: ["shell", "style", "a11y", "overlayStack", "focusTrap", "inert", "scrollLock", "escape", "outsideClick", "portal", "events", "commands", "state", "rmt", "fabric", "performance", "docs", "tests"],
537
+ requiredSchedules: ["component.visible.mount", "component.idle.hydrate", "component.lazy.hydrate", "overlay.stack.open", "overlay.stack.close", "overlay.focus.trap", "overlay.inert.apply", "overlay.scroll.lock", "overlay.position.update", "a11y.announce", "diagnostics.snapshot"],
538
+ requiredAssertions: ["focus-trap-contained", "focus-return-on-close", "escape-topmost-only", "outside-click-policy", "inert-background-policy", "scroll-lock-balanced", "portal-container-stable", "reduced-motion-safe", "forced-colors-safe", "kernel-boundary-preserved"],
539
+ rmtShellAuthoring: "xtend.rmt.shell-authoring.v1",
540
+ componentNetworkContract: "xtend.component.network.v1",
541
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
542
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
543
+ localGate: "node scripts/run_xtend_tests.js overlay-interaction-ux --json",
544
+ requiredFollowUps: ["WP-E11-12", "WP-E11-13", "WP-E11-14", "WP-E11-15"]
545
+ },
546
+ layoutDisplayMediaUxMaturity: {
547
+ schema: "xtend.component.layout-display-media-ux.v1",
548
+ reportSchema: "xtend.component.layout-display-media-ux-report.v1",
549
+ module: "xtend-builder/typing/layout-display-media-ux-contract.js",
550
+ workpackage: "development/WP-E11-12-Layout-Display-und-Media-Shell-Reife-umsetzen.md",
551
+ contract: "development/XTend-Layout-Display-und-Media-Shell-Reife-Contract.md",
552
+ fixture: "tests/fixtures/rmt-layout-display-media-ux.rmt",
553
+ suite: "tests/components/layout_display_media_ux_suite.js",
554
+ status: "accepted",
555
+ profileGetter: "xtendLayoutDisplayMediaUxProfile",
556
+ targets: ["x-section", "x-cards", "x-header", "x-footer", "x-hero", "x-type", "x-code", "x-masonry", "x-summary", "x-player", "x-lightbox"],
557
+ requiredDomains: ["shell", "style", "a11y", "responsiveLayout", "contentProjection", "mediaLifecycle", "lazyLoading", "overflow", "aspectRatio", "events", "commands", "state", "rmt", "fabric", "performance", "docs", "tests"],
558
+ requiredSchedules: ["component.shell.render", "component.visible.mount", "component.idle.hydrate", "component.lazy.hydrate", "layout.measure", "layout.reflow.commit", "media.lazy.load", "media.playback.user", "a11y.announce", "diagnostics.snapshot"],
559
+ requiredAssertions: ["responsive-overflow-safe", "css-parts-present", "slot-contract-stable", "lazy-media-scheduled", "aspect-ratio-stable", "reduced-motion-safe", "forced-colors-safe", "docs-app-compatible", "fabric-lane-profile", "kernel-boundary-preserved"],
560
+ rmtShellAuthoring: "xtend.rmt.shell-authoring.v1",
561
+ componentNetworkContract: "xtend.component.network.v1",
562
+ fabricBoundary: "xtend.component.fabric-boundary.v2",
563
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
564
+ localGate: "node scripts/run_xtend_tests.js layout-display-media-ux --json",
565
+ requiredFollowUps: ["WP-E11-13", "WP-E11-14", "WP-E11-15", "WP-E11-17"]
566
+ },
567
+ rmtFirstClassAppAuthoring: {
568
+ schema: "xtend.rmt.first-class-app-authoring.v1",
569
+ reportSchema: "xtend.rmt.first-class-app-authoring-report.v1",
570
+ workpackage: "development/WP-E10-04-RMT-App-Authoring-Contract-fuer-vollstaendige-XTend-Apps-spezifizieren.md",
571
+ contract: "development/XTend-RMT-First-Class-App-Authoring.md",
572
+ fixture: "tests/fixtures/rmt-first-class-xtend-app.rmt",
573
+ status: "accepted-contract",
574
+ renderMode: "shell-first",
575
+ componentContract: "xtend.component.contract.v2",
576
+ sourceStrategy: "xtend.typescript.component-source-strategy.v1",
577
+ requiredDomains: ["manifest", "adapters", "components", "routes", "schedules", "templates"],
578
+ requiredAdapters: ["xtend.component", "xtend.xrouter", "rmt.state-scheduler-diagnostics"],
579
+ appSurfaces: ["app-shell", "routes", "component-tree", "templates", "slots", "events", "commands", "hydration", "schedules", "fabric", "telemetry", "diagnostics"],
580
+ requiredSchedules: ["app.shell.render", "route.visible.render", "route.transition.render", "component.visible.mount", "component.idle.hydrate", "ui.user-blocking.input", "diagnostics.snapshot"],
581
+ preferredTemplateMode: "dom_descriptor",
582
+ eventBindingMode: "dom-event-to-rmt-command",
583
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
584
+ noRuntimeImports: true,
585
+ noProductiveWrites: true,
586
+ localGate: "node scripts/run_xtend_tests.js rmt-first-class-app --json",
587
+ requiredFollowUps: ["WP-E10-05", "WP-E10-07", "WP-E10-12", "WP-E10-13", "WP-E10-15"]
588
+ },
589
+ surfaceManagerRmtAuthoring: {
590
+ schema: "xtend.rmt.surface-authoring.v1",
591
+ reportSchema: "xtend.rmt.surface-authoring-report.v1",
592
+ surfaceManagerSchema: "xtend.surface.manager.v1",
593
+ surfaceRecordSchema: "xtend.surface.record.v1",
594
+ workpackage: "development/WP-SM-01-SurfaceManager-Contract-und-RMT-Authoring-Model-definieren.md",
595
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
596
+ contract: "development/XTend-SurfaceManager-Contract-und-RMT-Authoring-Model.md",
597
+ fixture: "tests/fixtures/rmt-surface-manager-workbench.rmt",
598
+ module: "catalog/surface-manager-rmt-authoring.js",
599
+ suite: "tests/rmt/rmt_surface_manager_authoring_suite.js",
600
+ docs: "docs/surface-manager-rmt-authoring.md",
601
+ status: "accepted-contract",
602
+ targetReadiness: "rmt-native-surface-authoring-ready",
603
+ mvpPath: "component-records-with-metadata.surface",
604
+ futureDomain: "surfaces",
605
+ futureAdapter: "xtend.surface",
606
+ componentAdapter: "xtend.component",
607
+ requiredAdapters: ["xtend.component", "xtend.xrouter", "rmt.state-scheduler-diagnostics"],
608
+ componentTags: ["x-surface-manager", "x-surface-window", "x-side-panel"],
609
+ compatibilityTags: ["x-modal", "x-dialog", "x-drawer", "x-popover", "x-tooltip"],
610
+ mvpSurfaceTypes: ["window", "side-panel"],
611
+ requiredSchedules: ["app.shell.render", "route.visible.render", "surface.visible.render", "surface.user-blocking.open", "surface.user-blocking.close", "surface.transition.layout", "surface.background.persist", "surface.diagnostics.snapshot", "component.visible.mount", "component.idle.hydrate", "a11y.user-blocking.announce", "diagnostics.snapshot"],
612
+ preferredTemplateMode: "dom_descriptor",
613
+ eventBindingMode: "dom-event-to-rmt-command",
614
+ runtimeComponentsImplemented: false,
615
+ noRmtKernelCoupling: true,
616
+ noRuntimeImports: true,
617
+ externalBrowserRequiredInLocalGate: false,
618
+ externalNetworkAllowedInLocalGate: false,
619
+ localGate: "node scripts/run_xtend_tests.js rmt-surface-authoring --json",
620
+ packageScript: "npm run test:rmt-surface-authoring",
621
+ nextWorkpackage: "WP-SM-02",
622
+ nextDecision: "surface-controller-state-snapshot",
623
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
624
+ requiredFollowUps: ["WP-SM-02", "WP-SM-03", "WP-SM-08"]
625
+ },
626
+ surfaceManagerController: {
627
+ schema: "xtend.surface.controller.v1",
628
+ reportSchema: "xtend.surface.controller-report.v1",
629
+ recordSchema: "xtend.surface.record.v1",
630
+ snapshotSchema: "xtend.surface.snapshot.v1",
631
+ diagnosticSchema: "xtend.surface.diagnostic.v1",
632
+ operationResultSchema: "xtend.surface.operation-result.v1",
633
+ workpackage: "development/WP-SM-02-Surface-Controller-und-State-Snapshot-bauen.md",
634
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
635
+ contract: "development/XTend-SurfaceManager-Controller-und-State-Snapshot-Contract.md",
636
+ module: "catalog/surface-manager-controller.js",
637
+ runtime: "components/xsurfacemanager-controller.js",
638
+ types: "components/xsurfacemanager-controller.d.ts",
639
+ sourceArtifacts: ["src/components/x-surface-manager/surface-record.ts", "src/components/x-surface-manager/surface-layout.ts", "src/components/x-surface-manager/surface-controller.ts"],
640
+ suite: "tests/components/surface_controller_suite.js",
641
+ docs: "docs/surface-manager-controller.md",
642
+ status: "accepted-controller-contract",
643
+ targetReadiness: "surface-controller-state-snapshot-ready",
644
+ runtimeModel: "controller-only-no-custom-element",
645
+ controllerBoundary: "component-owned-controller",
646
+ statePolicy: "digital-twin-ssot-with-xstate-mirror",
647
+ fabricPolicy: "emit-diagnostics-consume-fabric-do-not-replace-fabric",
648
+ persistencePolicy: "layout-state-only-no-content-payload",
649
+ methods: ["registerSurface", "openSurface", "closeSurface", "focusSurface", "updateSurface", "moveSurface", "resizeSurface", "minimizeSurface", "maximizeSurface", "restoreSurface", "snapshot", "dispose"],
650
+ stateKeys: ["xtend.surface.registry", "xtend.surface.active", "xtend.surface.<surfaceId>.state", "xtend.surface.<surfaceId>.bounds", "xtend.surface.<surfaceId>.lifecycle", "xtend.surface.diagnostics", "xtend.surface.snapshot"],
651
+ lanes: ["user-blocking", "visible", "transition", "diagnostics"],
652
+ customElementsImplemented: false,
653
+ visibleSurfaceChromeImplemented: false,
654
+ runtimeHasDomDependency: false,
655
+ runtimeHasRmtKernelImport: false,
656
+ runtimeHasFabricHardDependency: false,
657
+ browserRequiredInLocalGate: false,
658
+ externalNetworkAllowedInLocalGate: false,
659
+ localGate: "node scripts/run_xtend_tests.js surface-controller --json",
660
+ packageScript: "npm run test:surface-controller",
661
+ nextWorkpackage: "WP-SM-03",
662
+ nextDecision: "x-surface-manager-window-runtime",
663
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
664
+ requiredFollowUps: ["WP-SM-03", "WP-SM-04", "WP-SM-05"]
665
+ },
666
+ surfaceManagerWindowRuntime: {
667
+ schema: "xtend.surface.window-runtime.v1",
668
+ reportSchema: "xtend.surface.window-runtime-report.v1",
669
+ surfaceManagerSchema: "xtend.surface.manager.v1",
670
+ surfaceRecordSchema: "xtend.surface.record.v1",
671
+ surfaceControllerSchema: "xtend.surface.controller.v1",
672
+ snapshotSchema: "xtend.surface.snapshot.v1",
673
+ workpackage: "development/WP-SM-03-x-surface-manager-und-x-surface-window-implementieren.md",
674
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
675
+ contract: "development/XTend-SurfaceManager-Window-Runtime-Contract.md",
676
+ module: "catalog/surface-manager-window-runtime.js",
677
+ suite: "tests/components/surface_manager_runtime_suite.js",
678
+ docs: "docs/surface-manager-window-runtime.md",
679
+ status: "accepted-window-runtime",
680
+ targetReadiness: "multi-window-spa-surface-runtime-ready",
681
+ componentTags: ["x-surface-manager", "x-surface-window"],
682
+ runtimeArtifacts: ["components/xsurfacemanager.js", "components/xsurfacemanager.d.ts", "components/xsurfacewindow.js", "components/xsurfacewindow.d.ts", "components/xsurfacemanager-controller.js"],
683
+ sourceArtifacts: ["src/components/x-surface-manager/x-surface-manager.ts", "src/components/x-surface-window/x-surface-window.ts"],
684
+ componentDocs: ["docs/components/xsurfacemanager.md", "docs/components/xsurfacewindow.md"],
685
+ componentFixtures: ["tests/components/fixtures/xsurfacemanager.component.html", "tests/components/fixtures/xsurfacewindow.component.html"],
686
+ runtimeModel: "x-surface-manager-owns-controller-x-surface-window-visible-managed-surface",
687
+ commandBridge: "surface-window-command-to-controller-operation",
688
+ snapshotBridge: "controller-snapshot-to-window-attributes-css-vars",
689
+ manifestPolicy: "manifest-loadable-components",
690
+ usesControllerFromWpSm02: true,
691
+ createsSecondRegistry: false,
692
+ sidePanelImplemented: false,
693
+ nativeSurfacesDomainImplemented: false,
694
+ externalNetworkAllowedInLocalGate: false,
695
+ browserRequiredInLocalGate: false,
696
+ localGate: "node scripts/run_xtend_tests.js surface-manager --json",
697
+ packageScript: "npm run test:surface-manager",
698
+ nextWorkpackage: "WP-SM-04",
699
+ nextDecision: "x-side-panel-responsive-surface-modes",
700
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
701
+ requiredFollowUps: ["WP-SM-04", "WP-SM-05", "WP-SM-07"]
702
+ },
703
+ surfaceManagerSidePanelRuntime: {
704
+ schema: "xtend.surface.side-panel-runtime.v1",
705
+ reportSchema: "xtend.surface.side-panel-runtime-report.v1",
706
+ surfaceManagerSchema: "xtend.surface.manager.v1",
707
+ surfaceRecordSchema: "xtend.surface.record.v1",
708
+ surfaceControllerSchema: "xtend.surface.controller.v1",
709
+ snapshotSchema: "xtend.surface.snapshot.v1",
710
+ workpackage: "development/WP-SM-04-x-side-panel-und-responsive-surface-modes-umsetzen.md",
711
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
712
+ contract: "development/XTend-SurfaceManager-SidePanel-Runtime-Contract.md",
713
+ module: "catalog/surface-manager-side-panel-runtime.js",
714
+ suite: "tests/components/surface_manager_side_panel_suite.js",
715
+ docs: "docs/surface-manager-side-panel-runtime.md",
716
+ status: "accepted-side-panel-runtime",
717
+ targetReadiness: "responsive-side-panel-surface-runtime-ready",
718
+ componentTags: ["x-surface-manager", "x-side-panel"],
719
+ runtimeArtifacts: ["components/xsurfacemanager.js", "components/xsidepanel.js", "components/xsidepanel.d.ts", "components/xsurfacemanager-controller.js"],
720
+ sourceArtifacts: ["src/components/x-surface-manager/x-surface-manager.ts", "src/components/x-side-panel/x-side-panel.ts"],
721
+ componentDocs: ["docs/components/xsidepanel.md"],
722
+ componentFixtures: ["tests/components/fixtures/xsidepanel.component.html"],
723
+ runtimeModel: "x-surface-manager-owns-controller-x-side-panel-visible-managed-surface",
724
+ commandBridge: "surface-panel-command-to-controller-update-and-resize",
725
+ snapshotBridge: "controller-snapshot-to-panel-attributes-css-vars",
726
+ responsivePolicy: "fullscreen-under-720-and-bottom-sheet-compatible",
727
+ manifestPolicy: "manifest-loadable-components",
728
+ placements: ["left", "right", "bottom", "inline"],
729
+ modes: ["docked", "overlay", "pinned", "collapsed", "fullscreen"],
730
+ usesControllerFromWpSm02: true,
731
+ createsSecondRegistry: false,
732
+ sidePanelImplemented: true,
733
+ nativeSurfacesDomainImplemented: false,
734
+ externalNetworkAllowedInLocalGate: false,
735
+ browserRequiredInLocalGate: false,
736
+ localGate: "node scripts/run_xtend_tests.js surface-side-panel --json",
737
+ packageScript: "npm run test:surface-side-panel",
738
+ nextWorkpackage: "WP-SM-05",
739
+ nextDecision: "rmt-first-workbench-fixture",
740
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
741
+ requiredFollowUps: ["WP-SM-05", "WP-SM-07", "WP-SM-08"]
742
+ },
743
+ surfaceManagerWorkbenchFixture: {
744
+ schema: "xtend.surface.workbench-fixture.v1",
745
+ reportSchema: "xtend.surface.workbench-fixture-report.v1",
746
+ surfaceAuthoringSchema: "xtend.rmt.surface-authoring.v1",
747
+ surfaceManagerSchema: "xtend.surface.manager.v1",
748
+ surfaceRecordSchema: "xtend.surface.record.v1",
749
+ surfaceControllerSchema: "xtend.surface.controller.v1",
750
+ snapshotSchema: "xtend.surface.snapshot.v1",
751
+ workpackage: "development/WP-SM-05-RMT-first-Workbench-Fixture-bauen.md",
752
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
753
+ contract: "development/XTend-SurfaceManager-RMT-Workbench-Fixture-Contract.md",
754
+ module: "catalog/surface-manager-workbench-fixture.js",
755
+ suite: "tests/rmt/surface_manager_workbench_fixture_suite.js",
756
+ docs: "docs/surface-manager-workbench-fixture.md",
757
+ fixture: "xtendrmt/surface-workbench.rmt",
758
+ host: "xtendrmt-surface-workbench.html",
759
+ runtime: "xtendrmt/surface-workbench.js",
760
+ browserSmoke: "tests/browser/fixtures/rmt-surface-workbench-smoke.html",
761
+ status: "accepted-rmt-first-workbench-fixture",
762
+ targetReadiness: "rmt-first-surface-workbench-fixture-ready",
763
+ componentTags: ["x-section", "x-router", "x-surface-manager", "x-surface-window", "x-side-panel", "x-code", "x-form"],
764
+ surfaceComponents: ["workbench.inspector", "workbench.editor", "workbench.properties"],
765
+ requiredSchedules: ["app.shell.render", "route.visible.render", "surface.visible.render", "surface.user-blocking.open", "surface.user-blocking.close", "surface.transition.layout", "surface.background.persist", "surface.diagnostics.snapshot", "component.visible.mount", "component.idle.hydrate", "a11y.user-blocking.announce", "diagnostics.snapshot"],
766
+ runtimeModel: "shell-first-rmt-document-to-route-bound-surface-workbench",
767
+ hostHasNoManualShell: true,
768
+ routeBoundContent: true,
769
+ sharedSurfaceSnapshot: true,
770
+ browserSmokePrepared: true,
771
+ nativeSurfacesDomainImplemented: false,
772
+ externalNetworkAllowedInLocalGate: false,
773
+ browserRequiredInLocalGate: false,
774
+ localGate: "node scripts/run_xtend_tests.js surface-workbench-fixture --json",
775
+ packageScript: "npm run test:surface-workbench-fixture",
776
+ nextWorkpackage: "WP-SM-06",
777
+ nextDecision: "overlay-stack-bridge",
778
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
779
+ requiredFollowUps: ["WP-SM-06", "WP-SM-07", "WP-SM-08"]
780
+ },
781
+ surfaceManagerOverlayBridge: {
782
+ schema: "xtend.surface.overlay-stack-bridge.v1",
783
+ reportSchema: "xtend.surface.overlay-stack-bridge-report.v1",
784
+ surfaceManagerSchema: "xtend.surface.manager.v1",
785
+ surfaceRecordSchema: "xtend.surface.record.v1",
786
+ surfaceControllerSchema: "xtend.surface.controller.v1",
787
+ snapshotSchema: "xtend.surface.snapshot.v1",
788
+ workpackage: "development/WP-SM-06-Overlay-Kompatibilitaet-und-Stack-Bridge-vorbereiten.md",
789
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
790
+ contract: "development/XTend-SurfaceManager-Overlay-Stack-Bridge-Contract.md",
791
+ module: "catalog/surface-manager-overlay-bridge.js",
792
+ suite: "tests/components/surface_manager_overlay_bridge_suite.js",
793
+ docs: "docs/surface-manager-overlay-bridge.md",
794
+ fixture: "tests/components/fixtures/xsurfaceoverlaybridge.component.html",
795
+ status: "accepted-overlay-stack-bridge",
796
+ targetReadiness: "overlay-stack-bridge-ready",
797
+ componentTags: ["x-surface-manager", "x-modal", "x-dialog", "x-drawer"],
798
+ runtimeArtifacts: ["components/xsurfaceoverlay-bridge.js", "components/xsurfaceoverlay-bridge.d.ts", "components/xsurfacemanager.js", "components/xsurfacemanager-controller.js", "components/xmodal.js", "components/xdialog.js", "components/xdrawer.js"],
799
+ overlaySurfaceTypes: ["modal", "dialog", "drawer"],
800
+ legacyEvents: ["modal-opened", "modal-closed", "dialog-opened", "dialog-closed", "drawer-opened", "drawer-closed", "drawer-route-selected"],
801
+ legacyStateKeys: ["modal-open-<id>", "dialog-open-<id>", "xdrawer-open-<id>"],
802
+ runtimeModel: "xsurfaceoverlay-bridge-adapts-existing-overlays-to-shared-surface-stack",
803
+ commandBridge: "surface-overlay-command-to-controller-operation",
804
+ lifecycleBridge: "legacy-overlay-events-to-surface-controller",
805
+ stackPolicy: "single-controller-stack-for-windows-panels-and-compatible-overlays",
806
+ legacyApiPreserved: true,
807
+ controllerReusedFromWpSm02: true,
808
+ createsSecondRegistry: false,
809
+ nativeSurfacesDomainImplemented: false,
810
+ externalNetworkAllowedInLocalGate: false,
811
+ browserRequiredInLocalGate: false,
812
+ localGate: "node scripts/run_xtend_tests.js surface-overlay-bridge --json",
813
+ packageScript: "npm run test:surface-overlay-bridge",
814
+ nextWorkpackage: "WP-SM-07",
815
+ nextDecision: "surface-browser-a11y-performance-visual-gates",
816
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
817
+ requiredFollowUps: ["WP-SM-07", "WP-SM-08", "WP-SM-09"]
818
+ },
819
+ surfaceManagerQualityGates: {
820
+ schema: "xtend.surface.quality-gates.v1",
821
+ reportSchema: "xtend.surface.quality-gates-report.v1",
822
+ browserSmokeSchema: "xtend.surface.quality-gates.browser-smoke.v1",
823
+ visualBaselineSchema: "xtend.surface.quality-gates.visual-baseline.v1",
824
+ surfaceManagerSchema: "xtend.surface.manager.v1",
825
+ surfaceRecordSchema: "xtend.surface.record.v1",
826
+ surfaceControllerSchema: "xtend.surface.controller.v1",
827
+ snapshotSchema: "xtend.surface.snapshot.v1",
828
+ overlayBridgeSchema: "xtend.surface.overlay-stack-bridge.v1",
829
+ workpackage: "development/WP-SM-07-Browser-A11y-Performance-und-Visual-Gates-ergaenzen.md",
830
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
831
+ contract: "development/XTend-SurfaceManager-Quality-Gates-Contract.md",
832
+ module: "catalog/surface-manager-quality-gates.js",
833
+ suite: "tests/components/surface_manager_quality_gates_suite.js",
834
+ docs: "docs/surface-manager-quality-gates.md",
835
+ browserFixture: "tests/browser/fixtures/surface-manager-quality-smoke.html",
836
+ visualBaseline: "tests/browser/visual-baselines/surface-manager-quality.dom-baseline.json",
837
+ status: "accepted-quality-gates",
838
+ targetReadiness: "surface-manager-quality-gates-ready",
839
+ domains: ["browser", "a11y", "performance", "visual"],
840
+ domainGates: ["surface-manager-browser", "surface-manager-a11y", "surface-manager-performance", "surface-manager-visual"],
841
+ componentTags: ["x-surface-manager", "x-surface-window", "x-side-panel", "x-modal", "x-dialog", "x-drawer"],
842
+ surfaceTypes: ["window", "side-panel", "modal", "dialog", "drawer"],
843
+ a11yAssertions: ["role-application", "role-dialog", "role-complementary", "aria-live-status", "focus-return", "escape-topmost", "tab-focus-trap", "forced-colors-focus-visible", "reduced-motion-safe"],
844
+ performanceBudgets: {
845
+ openCloseBudgetMs: 16,
846
+ focusBudgetMs: 16,
847
+ layoutTransitionBudgetMs: 16,
848
+ snapshotBudgetMs: 8,
849
+ registrationBudgetMs: 16,
850
+ browserFixtureMeasure: "surface-quality-open-close"
851
+ },
852
+ visualSnapshotIds: ["surface-quality-desktop-mixed-stack", "surface-quality-mobile-responsive-panel", "surface-quality-topmost-overlay", "surface-quality-forced-colors-a11y"],
853
+ runtimeModel: "mixed-stack-browser-a11y-performance-visual-gates-for-shared-surface-stack",
854
+ browserHarness: "tests/browser/browser_smoke_suite.js",
855
+ usesWorkbenchFixtureFromWpSm05: true,
856
+ usesOverlayBridgeFromWpSm06: true,
857
+ controllerReusedFromWpSm02: true,
858
+ createsSecondRegistry: false,
859
+ nativeSurfacesDomainImplemented: false,
860
+ externalNetworkAllowedInLocalGate: false,
861
+ browserRequiredInLocalGate: false,
862
+ localGate: "node scripts/run_xtend_tests.js surface-manager-quality --json",
863
+ packageScript: "npm run test:surface-manager-quality",
864
+ nextWorkpackage: "WP-SM-08",
865
+ nextDecision: "native-rmt-surfaces-domain-and-xtend-surface-adapter",
866
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
867
+ requiredFollowUps: ["WP-SM-08", "WP-SM-09"]
868
+ },
869
+ surfaceManagerNativeRmtSurfaces: {
870
+ schema: "xtend.rmt.surfaces-domain.v1",
871
+ reportSchema: "xtend.rmt.surfaces-domain-report.v1",
872
+ adapterSchema: "xtend.surface.adapter.v1",
873
+ surfaceManagerSchema: "xtend.surface.manager.v1",
874
+ surfaceRecordSchema: "xtend.surface.record.v1",
875
+ surfaceControllerSchema: "xtend.surface.controller.v1",
876
+ snapshotSchema: "xtend.surface.snapshot.v1",
877
+ qualityGatesSchema: "xtend.surface.quality-gates.v1",
878
+ workpackage: "development/WP-SM-08-Native-RMT-surfaces-Domain-und-xtend-surface-Adapter-entwerfen.md",
879
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
880
+ contract: "development/XTend-SurfaceManager-Native-RMT-Surfaces-Domain-Contract.md",
881
+ module: "catalog/surface-manager-native-rmt-surfaces.js",
882
+ suite: "tests/rmt/surface_manager_native_rmt_surfaces_suite.js",
883
+ docs: "docs/surface-manager-native-rmt-surfaces.md",
884
+ fixture: "tests/fixtures/rmt-surface-native-domain.rmt",
885
+ status: "accepted-native-surfaces-domain-contract",
886
+ targetReadiness: "native-rmt-surfaces-domain-handoff-ready",
887
+ domain: "surfaces",
888
+ adapterId: "xtend.surface",
889
+ adapterKind: "surface_adapter",
890
+ requiredDomains: ["manifest", "adapters", "components", "routes", "schedules", "surfaces", "templates"],
891
+ requiredAdapters: ["xtend.component", "xtend.xrouter", "rmt.state-scheduler-diagnostics", "xtend.surface"],
892
+ surfaceTypes: ["window", "side-panel", "modal", "dialog", "drawer"],
893
+ adapterOperations: ["registerSurface", "openSurface", "closeSurface", "focusSurface", "moveSurface", "resizeSurface", "dockSurface", "undockSurface", "snapshotSurfaces", "emitDiagnostic"],
894
+ referenceChecks: ["surfaces[*].adapter -> adapters[*].id", "surfaces[*].manager -> components[*].id", "surfaces[*].component -> components[*].id", "surfaces[*].route -> routes[*].id", "surfaces[*].schedule -> schedules[*].id|endpointName"],
895
+ migrationModel: "components-metadata-surface-to-native-surfaces-dual-records",
896
+ rmtSchemaSynchronized: true,
897
+ rmtTypesSynchronized: true,
898
+ rmtNormalizerReadsSurfaces: true,
899
+ semanticGraphIndexesSurfaces: true,
900
+ completionProviderKnowsSurfaces: true,
901
+ surfaceAdapterRuntimeImplemented: false,
902
+ componentRecordCompatibilityKept: true,
903
+ createsSecondRegistry: false,
904
+ externalNetworkAllowedInLocalGate: false,
905
+ browserRequiredInLocalGate: false,
906
+ localGate: "node scripts/run_xtend_tests.js surface-native-rmt --json",
907
+ packageScript: "npm run test:surface-native-rmt",
908
+ nextWorkpackage: "WP-SM-09",
909
+ nextDecision: "surface-docs-component-lab-migration-guide",
910
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
911
+ requiredFollowUps: ["WP-SM-09"]
912
+ },
913
+ surfaceManagerReleaseHandoff: {
914
+ schema: "xtend.surface.release-handoff.v1",
915
+ reportSchema: "xtend.surface.release-handoff-report.v1",
916
+ componentLabFixtureSchema: "xtend.surface.component-lab-fixture.v1",
917
+ surfaceManagerSchema: "xtend.surface.manager.v1",
918
+ surfaceRecordSchema: "xtend.surface.record.v1",
919
+ surfaceControllerSchema: "xtend.surface.controller.v1",
920
+ snapshotSchema: "xtend.surface.snapshot.v1",
921
+ nativeRmtSchema: "xtend.rmt.surfaces-domain.v1",
922
+ surfaceAdapterSchema: "xtend.surface.adapter.v1",
923
+ workpackage: "development/WP-SM-09-Docs-Component-Lab-und-Migration-Guide-finalisieren.md",
924
+ plan: "development/XTend-SurfaceManager-und-Multi-Window-Plan.md",
925
+ contract: "development/XTend-SurfaceManager-Release-Handoff-Contract.md",
926
+ module: "catalog/surface-manager-release-handoff.js",
927
+ suite: "tests/rmt/surface_manager_release_handoff_suite.js",
928
+ docs: "docs/surface-manager-release-handoff.md",
929
+ authoringGuide: "docs/surface-manager-authoring-guide.md",
930
+ componentLabDocs: "docs/surface-manager-component-lab.md",
931
+ migrationGuide: "docs/surface-manager-migration-guide.md",
932
+ componentLabFixture: "tests/fixtures/rmt-surface-manager-component-lab.rmt",
933
+ status: "accepted-docs-component-lab-release-handoff",
934
+ targetReadiness: "surface-manager-release-handoff-ready",
935
+ authoringModes: ["component-metadata-mvp", "dual-record-handoff", "native-surfaces-preferred"],
936
+ componentLabPanels: ["surface-preview", "native-rmt-inspector", "migration-diff", "quality-gates", "source-links"],
937
+ releaseGates: ["rmt-surface-authoring", "surface-controller", "surface-manager", "surface-side-panel", "surface-workbench-fixture", "surface-overlay-bridge", "surface-manager-quality", "surface-native-rmt", "surface-release-handoff"],
938
+ preferredAuthoringPath: "native-surfaces-preferred-with-component-metadata-compatibility",
939
+ publishBoundary: "no-public-runtime-claim-for-xtend.surface-adapter-yet",
940
+ surfaceAdapterRuntimeImplemented: false,
941
+ componentRecordCompatibilityKept: true,
942
+ createsSecondRegistry: false,
943
+ externalNetworkAllowedInLocalGate: false,
944
+ browserRequiredInLocalGate: false,
945
+ localGate: "node scripts/run_xtend_tests.js surface-release-handoff --json",
946
+ packageScript: "npm run test:surface-release-handoff",
947
+ nextWorkpackage: "surface-manager-stabilization-backlog",
948
+ nextDecision: "ship-surface-manager-or-schedule-runtime-hardening",
949
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
950
+ requiredFollowUps: []
951
+ },
952
+ componentFabricLaneIngestion: {
953
+ schema: "xtend.component.fabric-lane-ingestion.v2",
954
+ reportSchema: "xtend.component.fabric-lane-ingestion-report.v1",
955
+ workpackage: "development/WP-E10-05-XTend-Component-Adapter-um-Fabric-Lane-Ingestion-erweitern.md",
956
+ contract: "development/XTend-Fabric-Component-Compatibility-v2.md",
957
+ fixture: "tests/fixtures/rmt-first-class-xtend-app.rmt",
958
+ status: "accepted-contract",
959
+ adapter: "xtend.component",
960
+ runtimeSurface: ["resolveFabricContext", "mountComponent", "hydrateComponent"],
961
+ capabilities: ["fabricContext", "laneIngestion", "fiberHints"],
962
+ precedence: ["rmt.schedule-record", "rmt.component-metadata", "fabric.runtime-override", "component.static-contract", "scaffold.blueprint-default"],
963
+ diagnosticCodes: ["rmt.xtend.component.fabric_lane.conflict", "rmt.xtend.component.fabric_lane.defaulted"],
964
+ resultMetadataPath: "result.metadata.fabric",
965
+ domAttributes: ["data-xtend-fabric-lane", "data-xtend-rmt-lane", "data-xtend-fabric-fiber", "data-xtend-fabric-source", "data-rmt-endpoint"],
966
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
967
+ noRuntimeImports: true,
968
+ noProductiveWrites: false,
969
+ localGate: "node scripts/run_xtend_tests.js rmt-component-fabric-ingestion --json",
970
+ requiredFollowUps: ["WP-E10-06", "WP-E10-12", "WP-E10-13", "WP-E10-15"]
971
+ },
972
+ componentLifecycleTelemetry: {
973
+ schema: "xtend.component.lifecycle-telemetry.v1",
974
+ reportSchema: "xtend.component.lifecycle-telemetry-report.v1",
975
+ workpackage: "development/WP-E10-06-Telemetry-API-Anschluss-fuer-Component-Lifecycle-standardisieren.md",
976
+ contract: "development/XTend-Component-Lifecycle-Telemetry-Contract.md",
977
+ suite: "tests/rmt/rmt_component_lifecycle_telemetry_suite.js",
978
+ status: "accepted-contract",
979
+ adapter: "xtend.component",
980
+ fabricSnapshot: "xtend.fabric.telemetry-snapshot.v1",
981
+ snapshotPath: "snapshot.componentTelemetry",
982
+ runtimeSurface: ["mountComponent", "hydrateComponent", "recordComponentTelemetry"],
983
+ operations: ["mount", "hydrate", "render", "update", "event", "unmount", "error"],
984
+ correlationFields: ["componentId", "rmtComponentId", "routeRef", "scheduleRef", "fabricLane", "rmtLane", "fiberKind"],
985
+ capabilities: ["componentTelemetry", "backpressureSignals", "performanceGates"],
986
+ resultMetadataPath: "result.metadata.telemetry",
987
+ collectorOptions: ["telemetryCollector", "recordTelemetry", "fabric"],
988
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
989
+ noRuntimeImports: true,
990
+ noProductiveWrites: false,
991
+ localGate: "node scripts/run_xtend_tests.js rmt-component-lifecycle-telemetry --json",
992
+ requiredFollowUps: ["WP-E10-07", "WP-E10-12", "WP-E10-14", "WP-E10-15"]
993
+ },
994
+ workflows: {
995
+ schema: "xtend.scaffold.developer-workflow.v1",
996
+ module: "xtend-builder/workflows/developer-workflow.js",
997
+ verifySchema: "xtend.scaffold.verify-plan.v1",
998
+ commands: ["workflow", "verify"],
999
+ npmScripts: ["scaffold:workflow", "scaffold:verify", "scaffold:dry-run", "scaffold:typing", "scaffold:preview", "scaffold:extensions"],
1000
+ defaultVerifySuites: ["rmt-compatibility"],
1001
+ fullVerificationCommand: "npm test",
1002
+ reportCommand: "npm run test:report",
1003
+ outputModes: ["text", "json", "json-report"],
1004
+ writePolicy: "dry-run-first"
1005
+ },
1006
+ preview: {
1007
+ schema: "xtend.scaffold.component-preview.v1",
1008
+ module: "xtend-builder/preview/component-preview.js",
1009
+ artifact: "docs/previews/<name>.preview.md",
1010
+ registry: "development/XTend-Dokumentations-und-Demo-Referenzpfade.md",
1011
+ command: "preview",
1012
+ status: "automated-static-candidate",
1013
+ mode: "dry-run-preview-contract",
1014
+ externalNetworkAllowed: false,
1015
+ requiredReferences: ["component", "docs", "fixtures", "types", "manifest"],
1016
+ referenceGate: "node scripts/run_xtend_tests.js references",
1017
+ browserSmokeStatus: "candidate-only",
1018
+ writePolicy: "manual-review-before-write"
1019
+ },
1020
+ componentLabRmtInspector: {
1021
+ schema: "xtend.epic10.component-lab-rmt-inspector.v1",
1022
+ gateSchema: "xtend.epic10.component-lab-rmt-inspector-gate.v1",
1023
+ module: "xtend-builder/preview/component-lab.js",
1024
+ fixture: "tests/fixtures/rmt-component-lab-pilot.rmt",
1025
+ contract: "development/XTend-Component-Lab-und-RMT-Inspector-Pilot.md",
1026
+ workpackage: "development/WP-E10-12-Component-Lab-und-RMT-Inspector-Pilot-anlegen.md",
1027
+ suite: "tests/builder/component_lab_rmt_inspector_suite.js",
1028
+ status: "accepted-pilot",
1029
+ renderMode: "shell-first",
1030
+ previewTargetSource: "xtend.epic10.p0-component-wave.v1",
1031
+ panels: ["component-preview", "rmt-inspector", "telemetry", "a11y", "performance", "source-links"],
1032
+ inspectorDomains: ["manifest", "adapters", "components", "routes", "schedules", "templates", "diagnostics"],
1033
+ localGate: "node scripts/run_xtend_tests.js component-lab-rmt-inspector --json",
1034
+ writePolicy: "pilot-rmt-fixture-only",
1035
+ externalNetworkAllowed: false,
1036
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
1037
+ },
1038
+ componentLabUxInspector: {
1039
+ schema: "xtend.epic11.component-lab-ux-inspector.v1",
1040
+ reportSchema: "xtend.epic11.component-lab-ux-inspector-report.v1",
1041
+ module: "xtend-builder/preview/component-lab-ux-inspector.js",
1042
+ fixture: "tests/fixtures/rmt-component-lab-ux-inspector.rmt",
1043
+ contract: "development/XTend-Component-Lab-UX-Inspector.md",
1044
+ workpackage: "development/WP-E11-13-Component-Lab-UX-Inspector-erweitern.md",
1045
+ suite: "tests/builder/component_lab_ux_inspector_suite.js",
1046
+ status: "accepted-inspector",
1047
+ renderMode: "shell-first",
1048
+ previewTargetCount: 31,
1049
+ uxFamilies: ["form-controls", "feedback-status", "navigation-routing", "overlay-interaction", "layout-display-media"],
1050
+ panels: ["ux-family-matrix", "component-preview", "rmt-inspector", "state", "styling", "a11y", "performance", "component-network", "telemetry", "source-links"],
1051
+ inspectorDomains: ["shell", "style", "a11y", "performance", "state", "componentNetwork", "rmtAuthoring", "fabricTelemetry", "diagnostics", "sourceLinks"],
1052
+ localGate: "node scripts/run_xtend_tests.js component-lab-ux-inspector --json",
1053
+ packageScript: "npm run test:component-lab-ux-inspector",
1054
+ writePolicy: "inspector-rmt-fixture-only",
1055
+ externalNetworkAllowed: false,
1056
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1057
+ requiredFollowUps: ["WP-E11-17"]
1058
+ },
1059
+ componentUxBrowserSmokes: {
1060
+ schema: "xtend.epic11.component-ux-browser-smokes.v1",
1061
+ reportSchema: "xtend.epic11.component-ux-browser-smokes-report.v1",
1062
+ module: "tests/browser/component-ux-browser-smoke-plan.js",
1063
+ fixture: "tests/browser/fixtures/epic11-ux-compatibility-smoke.html",
1064
+ contract: "development/XTend-Epic11-Browsernahe-UX-Smoke-Matrix.md",
1065
+ workpackage: "development/WP-E11-14-Browsernahe-UX-und-Kompatibilitaets-Smokes-erweitern.md",
1066
+ suite: "tests/browser/component_ux_browser_smoke_suite.js",
1067
+ status: "accepted-smoke-plan",
1068
+ renderMode: "shell-first",
1069
+ uxFamilies: ["form-controls", "feedback-status", "navigation-routing", "overlay-interaction", "layout-display-media"],
1070
+ flows: ["form-validation-journey", "feedback-status-journey", "navigation-routing-journey", "overlay-focus-journey", "layout-display-media-journey"],
1071
+ componentCount: 17,
1072
+ resultKey: "__xtendEpic11UxSmokeResult",
1073
+ browserHarness: "browser",
1074
+ optionalDriver: "XTEND_BROWSER_SMOKE_DRIVER=safari",
1075
+ localGate: "node scripts/run_xtend_tests.js component-ux-browser-smokes --json",
1076
+ packageScript: "npm run test:component-ux-browser-smokes",
1077
+ externalNetworkAllowed: false,
1078
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1079
+ requiredFollowUps: ["WP-E11-17"]
1080
+ },
1081
+ componentShellThemeMatrix: {
1082
+ schema: "xtend.epic11.component-shell-theme-matrix.v1",
1083
+ entrySchema: "xtend.epic11.component-shell-theme-matrix-entry.v1",
1084
+ reportSchema: "xtend.epic11.component-shell-theme-matrix-report.v1",
1085
+ module: "tests/browser/component-shell-theme-matrix-plan.js",
1086
+ fixture: "tests/browser/fixtures/epic11-theme-matrix-smoke.html",
1087
+ contract: "development/XTend-Epic11-Component-Shell-Visual-Theme-Matrix.md",
1088
+ workpackage: "development/WP-E11-15-Visual-Regression-und-Theme-Matrix-fuer-Component-Shells-aufbauen.md",
1089
+ suite: "tests/browser/component_shell_theme_matrix_suite.js",
1090
+ status: "accepted-theme-matrix",
1091
+ renderMode: "shell-first",
1092
+ sourceBrowserSmokes: "xtend.epic11.component-ux-browser-smokes.v1",
1093
+ sourceRegressionPriority: "xtend.catalog.component-regression-priority-plan.v1",
1094
+ uxFamilies: ["form-controls", "feedback-status", "navigation-routing", "overlay-interaction", "layout-display-media"],
1095
+ themeVariants: ["light", "dark", "high-contrast", "forced-colors"],
1096
+ motionModes: ["default-motion", "reduced-motion"],
1097
+ densities: ["comfortable", "compact", "dense"],
1098
+ viewports: ["desktop-1280", "tablet-768", "mobile-390"],
1099
+ componentCount: 17,
1100
+ flowCount: 5,
1101
+ matrixCombinationCount: 360,
1102
+ resultKey: "__xtendEpic11ThemeMatrixResult",
1103
+ browserHarness: "browser",
1104
+ optionalDriver: "XTEND_BROWSER_SMOKE_DRIVER=safari",
1105
+ localGate: "node scripts/run_xtend_tests.js component-shell-theme-matrix --json",
1106
+ packageScript: "npm run test:component-shell-theme-matrix",
1107
+ externalNetworkAllowed: false,
1108
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1109
+ requiredFollowUps: ["WP-E11-17"]
1110
+ },
1111
+ visualSnapshotAutomation: {
1112
+ schema: "xtend.epic12.visual-snapshot-automation-contract.v1",
1113
+ entrySchema: "xtend.epic12.visual-snapshot-automation-entry.v1",
1114
+ reportSchema: "xtend.epic12.visual-snapshot-automation-report.v1",
1115
+ module: "tests/browser/visual-snapshot-automation-plan.js",
1116
+ contract: "development/XTend-Visual-Snapshot-Automation-Contract.md",
1117
+ workpackage: "development/WP-E12-10-Visual-Snapshot-Automation-Contract-definieren.md",
1118
+ suite: "tests/browser/visual_snapshot_automation_suite.js",
1119
+ status: "accepted-snapshot-contract",
1120
+ renderMode: "shell-first",
1121
+ runnerImplementation: "deferred-to-WP-E12-11",
1122
+ sourceThemeMatrix: "xtend.epic11.component-shell-theme-matrix.v1",
1123
+ sourceRegressionPriority: "xtend.catalog.component-regression-priority-plan.v1",
1124
+ snapshotScopes: ["shell-structure", "visual-state", "theme-token-state", "motion-density-state", "viewport-layout", "focus-a11y-state", "rmt-shell-descriptor"],
1125
+ themeVariants: ["light", "dark", "high-contrast", "forced-colors"],
1126
+ motionModes: ["default-motion", "reduced-motion"],
1127
+ densities: ["comfortable", "compact", "dense"],
1128
+ viewports: ["desktop-1280", "tablet-768", "mobile-390"],
1129
+ componentCount: 17,
1130
+ familyCount: 5,
1131
+ matrixCombinationCount: 360,
1132
+ diffStrategy: "dom-first-pixel-ready",
1133
+ outputRoot: ".xtend-test-results/visual-snapshots",
1134
+ baselineRoot: "tests/browser/visual-baselines",
1135
+ baselineCommitPolicy: "no-binary-baselines-in-WP-E12-10",
1136
+ localGate: "node scripts/run_xtend_tests.js visual-snapshot-automation --json",
1137
+ packageScript: "npm run test:visual-snapshot-automation",
1138
+ externalNetworkAllowed: false,
1139
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1140
+ requiredFollowUps: ["WP-E12-11"]
1141
+ },
1142
+ visualSnapshots: {
1143
+ schema: "xtend.epic12.visual-snapshot-runner.v1",
1144
+ fixtureSchema: "xtend.epic12.visual-snapshot-fixture.v1",
1145
+ recordSchema: "xtend.epic12.visual-snapshot-record.v1",
1146
+ baselineSchema: "xtend.epic12.visual-snapshot-dom-baseline.v1",
1147
+ reportSchema: "xtend.epic12.visual-snapshot-runner-report.v1",
1148
+ workpackage: "WP-E12-11",
1149
+ status: "accepted-local-dom-diff-runner",
1150
+ sourceAutomationContract: "xtend.epic12.visual-snapshot-automation-contract.v1",
1151
+ runner: "tests/browser/visual-snapshots-runner.js",
1152
+ fixture: "tests/browser/fixtures/visual-snapshots-fixture.html",
1153
+ baseline: "tests/browser/visual-baselines/visual-snapshots.dom-baseline.json",
1154
+ suite: "tests/browser/visual_snapshots_suite.js",
1155
+ workpackageDocument: "development/WP-E12-11-Snapshot-Fixture-und-lokalen-Diff-Runner-vorbereiten.md",
1156
+ renderMode: "shell-first",
1157
+ domDiffMode: "dom-structure-and-state-diff",
1158
+ pixelDiffMode: "optional-local-pixel-diff",
1159
+ pixelDiffStatus: "not-run-in-node-contract-gate",
1160
+ localOnly: true,
1161
+ externalNetworkAllowed: false,
1162
+ snapshotCount: 5,
1163
+ familyCount: 5,
1164
+ componentCount: 17,
1165
+ matrixCombinationCount: 360,
1166
+ outputRoot: ".xtend-test-results/visual-snapshots",
1167
+ reportPath: ".xtend-test-results/visual-snapshots/visual-snapshots-report.json",
1168
+ localGate: "node scripts/run_xtend_tests.js visual-snapshots --json",
1169
+ packageScript: "npm run test:visual-snapshots",
1170
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1171
+ requiredFollowUps: ["WP-E12-12"]
1172
+ },
1173
+ designTokens: {
1174
+ schema: "xtend.design-tokens.product-contract.v1",
1175
+ packSchema: "xtend.design-tokens.pack.v1",
1176
+ reportSchema: "xtend.design-tokens.report.v1",
1177
+ workpackage: "WP-E12-12",
1178
+ status: "accepted-productization-contract",
1179
+ sourceContracts: [
1180
+ "xtend.component.styling.v1",
1181
+ "xtend.theme.context.v1",
1182
+ "xtend.epic11.component-shell-theme-matrix.v1",
1183
+ "xtend.epic12.visual-snapshot-runner.v1"
1184
+ ],
1185
+ module: "design-tokens/xtend-design-tokens.js",
1186
+ contract: "development/XTend-Enterprise-Design-System-Token-Contract.md",
1187
+ docs: "docs/design-tokens.md",
1188
+ exampleTheme: "design-tokens/themes/enterprise-light.json",
1189
+ suite: "tests/tokens/design_token_contract_suite.js",
1190
+ runtimeProvider: "x-theme",
1191
+ namespace: "--xtend-",
1192
+ themePacks: ["light", "dark", "high-contrast", "forced-colors"],
1193
+ densityPacks: ["comfortable", "compact", "dense"],
1194
+ cssParts: ["root", "control", "label", "content", "helper", "error"],
1195
+ localOnly: true,
1196
+ externalNetworkAllowed: false,
1197
+ localGate: "node scripts/run_xtend_tests.js design-tokens --json",
1198
+ packageScript: "npm run test:design-tokens",
1199
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1200
+ requiredFollowUps: ["WP-E12-13"]
1201
+ },
1202
+ rmtDslAuthoringPolish: {
1203
+ schema: "xtend.rmt.dsl-authoring-polish.v1",
1204
+ fixtureSchema: "xtend.rmt.dsl-authoring-polish-fixture.v1",
1205
+ reportSchema: "xtend.rmt.dsl-authoring-polish-report.v1",
1206
+ workpackage: "WP-E12-13",
1207
+ status: "accepted-polish-plan",
1208
+ sourceContracts: [
1209
+ "xtend.rmt.shell-authoring.v1",
1210
+ "xtend.rmt.style-authoring.v1",
1211
+ "xtend.rmt.first-class-app-authoring.v1",
1212
+ "xtend.rmt.xrouter-adapter.v1",
1213
+ "xtend.component.network.v1",
1214
+ "xtend.design-tokens.product-contract.v1"
1215
+ ],
1216
+ module: "xtend-builder/typing/rmt-dsl-authoring-polish.js",
1217
+ fixture: "tests/fixtures/rmt-dsl-authoring-polish.rmt",
1218
+ contract: "development/XTend-RMT-DSL-Authoring-Polish-fuer-Component-Shells.md",
1219
+ docs: "docs/rmt-dsl-authoring-polish.md",
1220
+ suite: "tests/rmt/rmt_dsl_authoring_polish_suite.js",
1221
+ aliases: ["component", "shell", "slot", "style", "token", "theme", "density", "a11y", "on", "command", "hydrate", "lane", "route", "link", "outlet"],
1222
+ diagnostics: [
1223
+ "rmt.dsl.alias.unknown",
1224
+ "rmt.dsl.alias.required-field-missing",
1225
+ "rmt.dsl.token.unknown",
1226
+ "rmt.dsl.route.target-unresolved",
1227
+ "rmt.dsl.link.route-unresolved",
1228
+ "rmt.dsl.slot.target-unresolved",
1229
+ "rmt.dsl.schedule.unresolved",
1230
+ "rmt.dsl.inline-runtime-code-refused",
1231
+ "rmt.dsl.kernel-boundary.refused"
1232
+ ],
1233
+ routingSugar: ["route", "link", "outlet"],
1234
+ tokenContract: "xtend.design-tokens.product-contract.v1",
1235
+ localOnly: true,
1236
+ externalNetworkAllowed: false,
1237
+ localGate: "node scripts/run_xtend_tests.js rmt-dsl-authoring-polish --json",
1238
+ packageScript: "npm run test:rmt-dsl-authoring-polish",
1239
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1240
+ requiredFollowUps: ["WP-E12-14"]
1241
+ },
1242
+ epic14RmtTooling: {
1243
+ schema: "xtend.epic14.rmt-tooling.v1",
1244
+ gateRecordSchema: "xtend.epic14.rmt-tooling-gate.record.v1",
1245
+ reportSchema: "xtend.epic14.rmt-tooling-report.v1",
1246
+ workpackage: "development/WP-E14-15-Release-Gates-Package-Metadaten-und-CI-Handoff-vorbereiten.md",
1247
+ status: "accepted-release-gate-handoff",
1248
+ module: "catalog/epic14-rmt-tooling.js",
1249
+ contract: "development/XTend-Epic14-RMT-Tooling-Release-Gates.md",
1250
+ docs: "docs/rmt-tooling-release-gates.md",
1251
+ suite: "tests/platform/epic14_rmt_tooling_release_gates_suite.js",
1252
+ localGate: "node scripts/run_xtend_tests.js epic14-rmt-tooling --json",
1253
+ packageScript: "npm run test:epic14-rmt-tooling",
1254
+ bundleScript: "npm run test:rmt-tooling",
1255
+ optionalPrCommand: "npm run test:pr:rmt",
1256
+ optionalPrReportCommand: "npm run test:pr:rmt:report",
1257
+ releaseReportCommand: "npm run test:rmt-tooling:report",
1258
+ primarySuiteIds: ["rmt-source-model", "rmt-parser", "rmt-semantic-graph", "rmt-linter-rules", "rmt-linter-cli", "rmt-completions", "rmt-navigation", "rmt-language-server", "rmt-code-actions", "rmt-agent-report", "rmt-editor-packaging", "rmt-language-regression", "rmt-tooling-docs"],
1259
+ optionalPrSuiteIds: ["rmt-linter-cli", "rmt-language-server", "rmt-language-regression", "rmt-tooling-docs"],
1260
+ packageExports: ["./rmt-language/source-model", "./rmt-language/parser", "./rmt-language/format-adapter", "./rmt-language/semantic-graph", "./rmt-language/diagnostics", "./rmt-language/completions", "./rmt-language/hover", "./rmt-language/symbols", "./rmt-language/definitions", "./rmt-language/code-actions", "./rmt-language-server", "./rmt-language-server/protocol", "./rmt-linter/cli", "./rmt-linter/reporter", "./rmt-language/snippets", "./rmt-editor/vscode", "./catalog/epic14-rmt-tooling"],
1261
+ networkRequired: false,
1262
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1263
+ requiredFollowUps: ["WP-E14-16"]
1264
+ },
1265
+ epic14LspHandoff: {
1266
+ schema: "xtend.epic14.lsp-handoff.v1",
1267
+ reportSchema: "xtend.epic14.lsp-handoff-report.v1",
1268
+ workpackage: "development/WP-E14-16-Epic-Abschlussreview-und-Upstream-Handoff-erstellen.md",
1269
+ status: "accepted-epic14-closure",
1270
+ module: "catalog/epic14-lsp-handoff.js",
1271
+ contract: "development/XTendRMT-Epic14-Abschluss-und-LSP-Handoff.md",
1272
+ docs: "docs/rmt-language-server.md",
1273
+ suite: "tests/platform/epic14_lsp_handoff_suite.js",
1274
+ localGate: "node scripts/run_xtend_tests.js epic14-lsp-handoff --json",
1275
+ packageScript: "npm run test:epic14-lsp-handoff",
1276
+ toolingGate: "npm run test:rmt-tooling",
1277
+ completionState: "rmt-authoring-tooling-ready",
1278
+ implementedCapabilities: ["diagnostics", "completion", "hover", "documentSymbols", "definition", "codeActions", "agentRepairReport", "snippets"],
1279
+ plannedCapabilities: ["workspaceSymbols", "rename", "references", "semanticTokens", "formatting"],
1280
+ knownLimitations: ["json-based-dsl", "formatter-not-released", "file-local-index", "editor-marketplace-packaging", "no-runtime-execution", "legacy-rmt-json-fallback"],
1281
+ followUpEpicCandidates: ["rmt-dsl-syntax-and-formatter", "rmt-project-index-and-refactors", "rmt-editor-packages"],
1282
+ networkRequired: false,
1283
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
1284
+ },
1285
+ rc0GateMatrix: {
1286
+ schema: "xtend.epic12.rc0-gate-matrix.v1",
1287
+ gateRecordSchema: "xtend.epic12.rc0-gate-record.v1",
1288
+ reportSchema: "xtend.epic12.rc0-gate-matrix-report.v1",
1289
+ knownResidualPolicy: "xtend.epic12.rc0-known-residual-policy.v1",
1290
+ workpackage: "WP-E12-14",
1291
+ status: "accepted-rc0-gate-matrix",
1292
+ releaseCandidate: "RC0",
1293
+ module: "catalog/epic12-rc0-gate-matrix.js",
1294
+ contract: "development/XTend-RC0-Gate-Matrix.md",
1295
+ workpackageDocument: "development/WP-E12-14-Release-Candidate-Gate-Matrix-fuer-RC0-schneiden.md",
1296
+ docs: "docs/rc0-gate-matrix.md",
1297
+ suite: "tests/platform/epic12_rc0_gate_matrix_suite.js",
1298
+ localGate: "node scripts/run_xtend_tests.js rc0-gate-matrix --json",
1299
+ packageScript: "npm run test:rc0-gate-matrix",
1300
+ prFastCommand: "npm run test:pr:report",
1301
+ fullReleaseCommand: "npm run test:release:full:report",
1302
+ snapshotSuites: ["component-shell-theme-matrix", "visual-snapshot-automation", "visual-snapshots", "design-tokens"],
1303
+ rmtAuthoringSuites: ["rmt-shell-authoring-ux", "rmt-first-class-app", "rmt-first-demo-app", "docs-rmt-pilot", "rmt-dsl-authoring-polish"],
1304
+ conditionalNetworkGates: ["npm audit --audit-level=moderate", "npm sbom --sbom-format=cyclonedx --json"],
1305
+ packageDryRun: "npm run pack:dry-run",
1306
+ knownResiduals: ["xstate", "x-utils", "xtend.component.hydrate"],
1307
+ maxWarningCount: 2,
1308
+ publishAllowed: false,
1309
+ publishBoundary: "private-until-release-owner-approval",
1310
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1311
+ requiredFollowUps: ["WP-E12-15"]
1312
+ },
1313
+ epic12DocsAdoption: {
1314
+ schema: "xtend.epic12.docs-adoption.v1",
1315
+ reportSchema: "xtend.epic12.docs-adoption-report.v1",
1316
+ workpackage: "WP-E12-15",
1317
+ status: "accepted-docs-adoption",
1318
+ module: "catalog/epic12-docs-adoption.js",
1319
+ contract: "development/XTend-Epic12-Docs-Migration-und-Adoption-Guide.md",
1320
+ workpackageDocument: "development/WP-E12-15-Docs-Migration-Notes-und-Enterprise-Adoption-Guide-aktualisieren.md",
1321
+ docs: "docs/rc0-adoption-guide.md",
1322
+ suite: "tests/docs/epic12_docs_adoption_suite.js",
1323
+ localGate: "node scripts/run_xtend_tests.js epic12-docs-adoption --json",
1324
+ packageScript: "npm run test:epic12-docs-adoption",
1325
+ requiredDocs: ["docs/rc0-adoption-guide.md", "docs/enterprise-adoption.md", "docs/component-long-tail-migration.md", "docs/visual-snapshot-automation.md", "docs/design-tokens.md", "docs/rmt-dsl-authoring-polish.md", "docs/rc0-gate-matrix.md", "docs/README.md", "docs/menu.json"],
1326
+ migrationTopics: ["long-tail-runtime-closure", "dom-first-visual-snapshots", "design-token-productization", "rmt-dsl-authoring-polish", "rc0-gate-matrix", "known-residual-policy", "publish-boundary"],
1327
+ requiredGates: ["node scripts/run_xtend_tests.js epic12-docs-adoption --json", "node scripts/run_xtend_tests.js references --json", "node scripts/run_xtend_tests.js rc0-gate-matrix --json", "npm run test:release:full:report", "npm run pack:dry-run"],
1328
+ conditionalNetworkGates: ["npm audit --audit-level=moderate", "npm sbom --sbom-format=cyclonedx --json"],
1329
+ knownResiduals: ["xstate", "x-utils", "xtend.component.hydrate"],
1330
+ publishAllowed: false,
1331
+ publishBoundary: "private-until-release-owner-approval",
1332
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1333
+ requiredFollowUps: ["WP-E12-16"]
1334
+ },
1335
+ epic12Rc0Handoff: {
1336
+ schema: "xtend.epic12.rc0-handoff.v1",
1337
+ reportSchema: "xtend.epic12.rc0-handoff-report.v1",
1338
+ workpackage: "WP-E12-16",
1339
+ status: "accepted-rc0-handoff",
1340
+ releaseCandidate: "RC0",
1341
+ module: "catalog/epic12-rc0-handoff.js",
1342
+ contract: "development/XTend-Epic12-Abschluss-und-RC0-Handoff.md",
1343
+ workpackageDocument: "development/WP-E12-16-Epic-12-Abschlussreview-und-RC0-Handoff.md",
1344
+ docs: "docs/epic12-rc0-handoff.md",
1345
+ suite: "tests/platform/epic12_rc0_handoff_suite.js",
1346
+ localGate: "node scripts/run_xtend_tests.js epic12-rc0-handoff --json",
1347
+ packageScript: "npm run test:epic12-rc0-handoff",
1348
+ requiredDocs: ["docs/component-long-tail-migration.md", "docs/visual-snapshot-automation.md", "docs/design-tokens.md", "docs/rmt-dsl-authoring-polish.md", "docs/rc0-gate-matrix.md", "docs/rc0-adoption-guide.md", "docs/epic12-rc0-handoff.md", "docs/enterprise-adoption.md"],
1349
+ requiredGates: ["epic12-rc0-handoff", "epic12-docs-adoption", "rc0-gate-matrix", "component-long-tail-migration", "visual-snapshot-automation", "visual-snapshots", "design-tokens", "rmt-dsl-authoring-polish", "catalog-coverage", "performance-regression", "references", "npm test", "npm run pack:dry-run"],
1350
+ ownerReviewInputs: ["xtend-release-gate-report", "xtend-rc0-gate-matrix-report", "xtend-epic12-rc0-handoff-report", "package-dry-run-output", "conditional-network-gate-status", "known-residual-policy", "migration-notes", "publish-boundary-decision"],
1351
+ conditionalNetworkGates: ["npm audit --audit-level=moderate", "npm sbom --sbom-format=cyclonedx --json"],
1352
+ knownResiduals: ["xstate", "x-utils", "xtend.component.hydrate"],
1353
+ decision: "ready-for-release-owner-review-not-publish",
1354
+ nextDecision: "release-owner-acceptance",
1355
+ publishAllowed: false,
1356
+ publishBoundary: "private-until-release-owner-approval",
1357
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1358
+ requiredFollowUps: ["release-owner-acceptance"]
1359
+ },
1360
+ epic13Rc1Readiness: {
1361
+ schema: "xtend.epic13.rc1-production-readiness.v1",
1362
+ reportSchema: "xtend.epic13.rc1-readiness-report.v1",
1363
+ workpackage: "WP-E13-01",
1364
+ status: "accepted-rc1-readiness-model",
1365
+ sourceReleaseCandidate: "RC0",
1366
+ targetReleaseCandidate: "RC1",
1367
+ targetReadiness: "rc1-production-candidate-ready",
1368
+ module: "catalog/epic13-rc1-readiness.js",
1369
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1370
+ contract: "development/XTend-Epic13-RC1-Readiness-Modell.md",
1371
+ workpackageDocument: "development/WP-E13-01-RC1-Readiness-Model-und-Gate-Abgleich-einfrieren.md",
1372
+ docs: "docs/rc1-readiness.md",
1373
+ suite: "tests/platform/epic13_rc1_readiness_suite.js",
1374
+ localGate: "node scripts/run_xtend_tests.js epic13-rc1-readiness --json",
1375
+ packageScript: "npm run test:epic13-rc1-readiness",
1376
+ sourceSchemas: ["xtend.epic12.rc0-handoff.v1", "xtend.epic12.rc0-gate-matrix.v1", "xtend.release.checklist-semver-policy.v1", "xtend.ci.gate-matrix.v1"],
1377
+ baselineGates: ["epic12-rc0-handoff", "rc0-gate-matrix", "references"],
1378
+ gateGaps: ["rc1-gate-matrix", "release-owner-acceptance", "network-evidence", "package-export-lock", "known-residuals", "prod-browser-csp", "visual-owner-artifact", "rmt-production-readiness", "docs-rmt-production-hardening", "trusted-dom-boundary", "rc1-migration-notes", "rc1-handoff"],
1379
+ nextWorkpackage: "WP-E13-13",
1380
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1381
+ publishAllowed: false,
1382
+ publishBoundary: "private-until-release-owner-acceptance",
1383
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1384
+ requiredFollowUps: ["WP-E13-13"]
1385
+ },
1386
+ epic13ReleaseOwnerAcceptance: {
1387
+ schema: "xtend.epic13.release-owner-acceptance.v1",
1388
+ reportSchema: "xtend.epic13.release-owner-acceptance-report.v1",
1389
+ workpackage: "WP-E13-02",
1390
+ status: "accepted-release-owner-acceptance-contract",
1391
+ targetReadiness: "release-owner-acceptance-contract-ready",
1392
+ sourceSchema: "xtend.epic13.rc1-production-readiness.v1",
1393
+ module: "catalog/epic13-release-owner-acceptance.js",
1394
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1395
+ contract: "development/XTend-Epic13-Release-Owner-Acceptance-Contract.md",
1396
+ workpackageDocument: "development/WP-E13-02-Release-Owner-Acceptance-Contract-definieren.md",
1397
+ docs: "docs/release-owner-acceptance.md",
1398
+ suite: "tests/platform/epic13_release_owner_acceptance_suite.js",
1399
+ localGate: "node scripts/run_xtend_tests.js epic13-release-owner-acceptance --json",
1400
+ packageScript: "npm run test:epic13-release-owner-acceptance",
1401
+ ownerDecisionStates: ["accepted", "deferred", "blocked"],
1402
+ requiredOwnerInputs: ["xtend-release-gate-report", "xtend-release-report", "xtend-rc0-gate-matrix-report", "xtend-epic12-rc0-handoff-report", "xtend-epic13-rc1-readiness-report", "package-dry-run-output", "conditional-network-gate-status", "known-residual-policy", "migration-notes", "publish-boundary-decision"],
1403
+ nextWorkpackage: "WP-E13-13",
1404
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1405
+ publishAllowed: false,
1406
+ automaticPublishApproval: false,
1407
+ publishBoundary: "private-until-release-owner-acceptance",
1408
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1409
+ requiredFollowUps: ["WP-E13-13"]
1410
+ },
1411
+ epic13ConditionalNetworkEvidence: {
1412
+ schema: "xtend.epic13.conditional-network-evidence.v1",
1413
+ reportSchema: "xtend.epic13.conditional-network-evidence-report.v1",
1414
+ deferralSchema: "xtend.epic13.conditional-network-deferral.v1",
1415
+ workpackage: "WP-E13-03",
1416
+ status: "accepted-conditional-network-evidence-contract",
1417
+ targetReadiness: "conditional-network-evidence-ready",
1418
+ sourceSchema: "xtend.epic13.release-owner-acceptance.v1",
1419
+ module: "catalog/epic13-conditional-network-evidence.js",
1420
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1421
+ contract: "development/XTend-Epic13-Conditional-Network-Evidence-Contract.md",
1422
+ workpackageDocument: "development/WP-E13-03-Conditional-Network-Gate-Evidence-vorbereiten.md",
1423
+ docs: "docs/conditional-network-evidence.md",
1424
+ suite: "tests/platform/epic13_conditional_network_evidence_suite.js",
1425
+ localGate: "node scripts/run_xtend_tests.js epic13-conditional-network-evidence --json",
1426
+ packageScript: "npm run test:epic13-conditional-network-evidence",
1427
+ commands: ["npm audit --audit-level=moderate", "npm sbom --sbom-format=cyclonedx --json"],
1428
+ requiredArtifacts: [".xtend-test-results/xtend-npm-audit-report.json", ".xtend-test-results/xtend-npm-sbom.json", ".xtend-test-results/xtend-conditional-network-evidence-report.json"],
1429
+ localDefaultMode: "defer-with-owner-reason",
1430
+ externalNetworkAllowedInLocalGate: false,
1431
+ ownerDeferralAllowed: true,
1432
+ publishRequiresExecutedOrOwnerAcceptedDeferral: true,
1433
+ nextWorkpackage: "WP-E13-13",
1434
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1435
+ publishAllowed: false,
1436
+ publishBoundary: "private-until-release-owner-acceptance",
1437
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1438
+ requiredFollowUps: ["WP-E13-13"]
1439
+ },
1440
+ epic13PackageExportLock: {
1441
+ schema: "xtend.epic13.package-export-lock.v1",
1442
+ reportSchema: "xtend.epic13.package-export-lock-report.v1",
1443
+ surfaceSchema: "xtend.epic13.package-export-surface.v1",
1444
+ dryRunArtifactSchema: "xtend.epic13.package-dry-run-artifact.v1",
1445
+ workpackage: "WP-E13-04",
1446
+ status: "accepted-package-export-lock",
1447
+ targetReadiness: "package-export-lock-ready",
1448
+ sourceSchema: "xtend.epic13.conditional-network-evidence.v1",
1449
+ module: "catalog/epic13-package-export-lock.js",
1450
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1451
+ contract: "development/XTend-Epic13-Package-Export-Lock-Contract.md",
1452
+ workpackageDocument: "development/WP-E13-04-Package-Dry-Run-Artefakt-und-Export-Surface-Lock-bauen.md",
1453
+ docs: "docs/package-export-lock.md",
1454
+ suite: "tests/platform/epic13_package_export_lock_suite.js",
1455
+ localGate: "node scripts/run_xtend_tests.js epic13-package-export-lock --json",
1456
+ packageScript: "npm run test:epic13-package-export-lock",
1457
+ captureScript: "npm run pack:dry-run:report",
1458
+ packageDryRunCommand: "npm run pack:dry-run",
1459
+ packageDryRunArtifact: ".xtend-test-results/xtend-pack-dry-run.json",
1460
+ packageExportSurfaceArtifact: ".xtend-test-results/xtend-package-export-surface-lock.json",
1461
+ packageExportLockReportArtifact: ".xtend-test-results/xtend-package-export-lock-report.json",
1462
+ expectedExportCount: 115,
1463
+ localGateRequiresNpmPackExecution: false,
1464
+ artifactRequiredForRc1: true,
1465
+ nextWorkpackage: "WP-E13-13",
1466
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1467
+ publishAllowed: false,
1468
+ publishBoundary: "private-until-release-owner-acceptance",
1469
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1470
+ requiredFollowUps: ["WP-E13-13"]
1471
+ },
1472
+ epic13KnownResidualTriage: {
1473
+ schema: "xtend.epic13.known-residual-triage.v1",
1474
+ decisionSchema: "xtend.epic13.known-residual-decision.v1",
1475
+ reportSchema: "xtend.epic13.known-residual-triage-report.v1",
1476
+ workpackage: "WP-E13-05",
1477
+ status: "accepted-known-residual-triage",
1478
+ targetReadiness: "known-residual-triage-ready",
1479
+ sourceSchema: "xtend.epic13.package-export-lock.v1",
1480
+ module: "catalog/epic13-known-residual-triage.js",
1481
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1482
+ contract: "development/XTend-Epic13-Known-Residual-Triage-Contract.md",
1483
+ workpackageDocument: "development/WP-E13-05-RC0-Known-Residuals-fuer-RC1-triagieren.md",
1484
+ docs: "docs/known-residual-triage.md",
1485
+ suite: "tests/platform/epic13_known_residual_triage_suite.js",
1486
+ localGate: "node scripts/run_xtend_tests.js epic13-known-residual-triage --json",
1487
+ packageScript: "npm run test:epic13-known-residual-triage",
1488
+ closedResiduals: ["xstate", "x-utils"],
1489
+ watchpoints: ["xtend.component.hydrate"],
1490
+ publishBlockingResiduals: ["xtend.component.hydrate"],
1491
+ nextWorkpackage: "WP-E13-06",
1492
+ nextDecision: "hydration-performance-warning-decision",
1493
+ publishAllowed: false,
1494
+ publishBoundary: "private-until-release-owner-acceptance",
1495
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1496
+ requiredFollowUps: ["WP-E13-06"]
1497
+ },
1498
+ epic13HydrationPerformanceClosure: {
1499
+ schema: "xtend.epic13.hydration-performance-closure.v1",
1500
+ decisionSchema: "xtend.epic13.hydration-performance-decision.v1",
1501
+ reportSchema: "xtend.epic13.hydration-performance-closure-report.v1",
1502
+ workpackage: "WP-E13-06",
1503
+ status: "accepted-hydration-performance-closure",
1504
+ targetReadiness: "hydration-performance-warning-closed",
1505
+ sourceSchema: "xtend.epic13.known-residual-triage.v1",
1506
+ module: "catalog/epic13-hydration-performance-closure.js",
1507
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1508
+ contract: "development/XTend-Epic13-Hydration-Performance-Closure-Contract.md",
1509
+ workpackageDocument: "development/WP-E13-06-Hydration-Performance-Warning-schliessen.md",
1510
+ docs: "docs/hydration-performance-closure.md",
1511
+ suite: "tests/platform/epic13_hydration_performance_closure_suite.js",
1512
+ localGate: "node scripts/run_xtend_tests.js epic13-hydration-performance-closure --json",
1513
+ packageScript: "npm run test:epic13-hydration-performance-closure",
1514
+ closedWatchpoints: ["xtend.component.hydrate"],
1515
+ remainingWatchpoints: [],
1516
+ publishBlockingResiduals: [],
1517
+ nextWorkpackage: "WP-E13-13",
1518
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1519
+ publishAllowed: false,
1520
+ publishBoundary: "private-until-release-owner-acceptance",
1521
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1522
+ requiredFollowUps: ["WP-E13-13"]
1523
+ },
1524
+ epic13ProdBrowserCspSmoke: {
1525
+ schema: "xtend.epic13.prod-browser-csp-smoke.v1",
1526
+ fixtureSchema: "xtend.epic13.prod-browser-csp-smoke-fixture.v1",
1527
+ reportSchema: "xtend.epic13.prod-browser-csp-smoke-report.v1",
1528
+ workpackage: "WP-E13-07",
1529
+ status: "accepted-prod-browser-csp-smoke-preparation",
1530
+ targetReadiness: "prod-browser-csp-smoke-prepared",
1531
+ sourceSchema: "xtend.epic13.hydration-performance-closure.v1",
1532
+ module: "catalog/epic13-prod-browser-csp-smoke.js",
1533
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1534
+ contract: "development/XTend-Epic13-PROD-Browser-CSP-Smoke-Contract.md",
1535
+ workpackageDocument: "development/WP-E13-07-PROD-nahe-Browser-Local-Server-und-CSP-Smokes-vorbereiten.md",
1536
+ docs: "docs/prod-browser-csp-smokes.md",
1537
+ suite: "tests/platform/epic13_prod_browser_csp_smoke_suite.js",
1538
+ fixture: "tests/browser/fixtures/epic13-prod-csp-smoke.html",
1539
+ localGate: "node scripts/run_xtend_tests.js epic13-prod-browser-csp-smoke --json",
1540
+ packageScript: "npm run test:epic13-prod-browser-csp-smoke",
1541
+ localServerContract: "xtend.local-dev-server.v1",
1542
+ localGateMode: "static-fixture-plus-local-server-header-probe",
1543
+ cspHeaderPrepared: true,
1544
+ cspMetaPrepared: true,
1545
+ sameOriginOnly: true,
1546
+ externalBrowserRequiredInLocalGate: false,
1547
+ externalNetworkAllowedInLocalGate: false,
1548
+ nextWorkpackage: "WP-E13-13",
1549
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1550
+ publishAllowed: false,
1551
+ publishBoundary: "private-until-release-owner-acceptance",
1552
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1553
+ requiredFollowUps: ["WP-E13-13"]
1554
+ },
1555
+ epic13VisualOwnerArtifact: {
1556
+ schema: "xtend.epic13.visual-owner-artifact.v1",
1557
+ manifestSchema: "xtend.epic13.visual-owner-artifact-manifest.v1",
1558
+ reportSchema: "xtend.epic13.visual-owner-artifact-report.v1",
1559
+ workpackage: "WP-E13-08",
1560
+ status: "accepted-visual-owner-artifact-normalization",
1561
+ targetReadiness: "visual-owner-artifact-normalized",
1562
+ sourceSchema: "xtend.epic13.prod-browser-csp-smoke.v1",
1563
+ module: "catalog/epic13-visual-owner-artifact.js",
1564
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1565
+ contract: "development/XTend-Epic13-Visual-Owner-Artifact-Contract.md",
1566
+ workpackageDocument: "development/WP-E13-08-Visual-Screenshot-Pixels-als-RC1-Artefakt-normalisieren.md",
1567
+ docs: "docs/visual-owner-artifacts.md",
1568
+ suite: "tests/platform/epic13_visual_owner_artifact_suite.js",
1569
+ artifactRoot: ".xtend-test-results/visual-snapshots/rc1",
1570
+ artifactManifest: "tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json",
1571
+ reportPath: ".xtend-test-results/visual-snapshots/rc1/visual-owner-artifact-report.json",
1572
+ screenshotPathTemplate: ".xtend-test-results/visual-snapshots/rc1/{family}/{viewport}/{theme}/{density}/{motion}.png",
1573
+ localGate: "node scripts/run_xtend_tests.js epic13-visual-owner-artifact --json",
1574
+ packageScript: "npm run test:epic13-visual-owner-artifact",
1575
+ localGateMode: "static-artifact-manifest-plus-dom-snapshot-gate",
1576
+ ownerArtifactMode: "optional-browser-driver-or-ci-artifact",
1577
+ pixelDiffRequiredInLocalGate: false,
1578
+ screenshotRequiredInLocalGate: false,
1579
+ binaryBaselineCommitted: false,
1580
+ externalBrowserRequiredInLocalGate: false,
1581
+ externalNetworkAllowedInLocalGate: false,
1582
+ nextWorkpackage: "WP-E13-13",
1583
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1584
+ publishAllowed: false,
1585
+ publishBoundary: "private-until-release-owner-acceptance",
1586
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1587
+ requiredFollowUps: ["WP-E13-13"]
1588
+ },
1589
+ epic13RmtProductionReadiness: {
1590
+ schema: "xtend.epic13.rmt-production-readiness.v1",
1591
+ reportSchema: "xtend.epic13.rmt-production-readiness-report.v1",
1592
+ workpackage: "WP-E13-09",
1593
+ status: "accepted-rmt-production-readiness-bundling",
1594
+ targetReadiness: "rmt-first-production-readiness-bundled",
1595
+ sourceSchema: "xtend.epic13.visual-owner-artifact.v1",
1596
+ module: "catalog/epic13-rmt-production-readiness.js",
1597
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1598
+ contract: "development/XTend-Epic13-RMT-Production-Readiness-Contract.md",
1599
+ workpackageDocument: "development/WP-E13-09-RMT-first-App-Production-Readiness-Gate-buendeln.md",
1600
+ docs: "docs/rmt-production-readiness.md",
1601
+ suite: "tests/platform/epic13_rmt_production_readiness_suite.js",
1602
+ localGate: "node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json",
1603
+ packageScript: "npm run test:epic13-rmt-production-readiness",
1604
+ reportArtifact: ".xtend-test-results/xtend-epic13-rmt-production-readiness-report.json",
1605
+ requiredDomains: ["app-shell", "routing", "components", "fabric", "lanes", "diagnostics", "artifact-parity", "kernel-boundary"],
1606
+ sourceGates: ["npm run test:rmt-compatibility", "npm run test:rmt-first-class-app", "npm run test:rmt-first-demo-app", "npm run test:rmt-artifact-parity", "npm run test:rmt-component-fabric-ingestion", "npm run test:rmt-component-lifecycle-telemetry", "npm run test:epic13-visual-owner-artifact"],
1607
+ appAuthoringSchema: "xtend.rmt.first-class-app-authoring.v1",
1608
+ demoAppSchema: "xtend.epic10.rmt-first-demo-app.v1",
1609
+ artifactParitySchema: "xtend.rmt.artifact-parity.v1",
1610
+ fabricLaneIngestionSchema: "xtend.component.fabric-lane-ingestion.v2",
1611
+ lifecycleTelemetrySchema: "xtend.component.lifecycle-telemetry.v1",
1612
+ localGateMode: "static-rc1-rmt-gate-bundle",
1613
+ externalBrowserRequiredInLocalGate: false,
1614
+ externalNetworkAllowedInLocalGate: false,
1615
+ frameworkAgnostic: true,
1616
+ rmtKernelImportsXtendTypes: false,
1617
+ adapterBoundary: "xtend-adapters-only",
1618
+ nextWorkpackage: "WP-E13-13",
1619
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1620
+ publishAllowed: false,
1621
+ publishBoundary: "private-until-release-owner-acceptance",
1622
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1623
+ requiredFollowUps: ["WP-E13-13"]
1624
+ },
1625
+ epic13DocsRmtProductionHardening: {
1626
+ schema: "xtend.epic13.docs-rmt-production-hardening.v1",
1627
+ reportSchema: "xtend.epic13.docs-rmt-production-hardening-report.v1",
1628
+ workpackage: "WP-E13-10",
1629
+ status: "accepted-docs-rmt-production-hardening",
1630
+ targetReadiness: "docs-rmt-parsedown-shell-prod-hardened",
1631
+ sourceSchema: "xtend.epic13.rmt-production-readiness.v1",
1632
+ module: "catalog/epic13-docs-rmt-production-hardening.js",
1633
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1634
+ contract: "development/XTend-Epic13-Docs-RMT-Production-Hardening-Contract.md",
1635
+ workpackageDocument: "development/WP-E13-10-Docs-App-RMT-Parsedown-Shell-fuer-PROD-nahe-Erweiterungen-haerten.md",
1636
+ docs: "docs/docs-rmt-production-hardening.md",
1637
+ suite: "tests/platform/epic13_docs_rmt_production_hardening_suite.js",
1638
+ rmtDocument: "docs/xtendrmt-parsedown-docs.rmt",
1639
+ activeHost: "docs/index.php",
1640
+ pageLoader: "docs/utils/pageloader.js",
1641
+ localGate: "node scripts/run_xtend_tests.js epic13-docs-rmt-production-hardening --json",
1642
+ packageScript: "npm run test:epic13-docs-rmt-production-hardening",
1643
+ reportArtifact: ".xtend-test-results/xtend-epic13-docs-rmt-production-hardening-report.json",
1644
+ requiredGates: ["npm run test:docs-rmt-pilot", "npm run test:browser", "npm run test:epic13-rmt-production-readiness"],
1645
+ extensionSlots: ["docs.slot.content", "docs.slot.rich-content", "docs.slot.media", "docs.slot.diagnostics"],
1646
+ trustBoundary: "xtend.security.sanitizing-boundary.v1",
1647
+ shellFirst: true,
1648
+ parsedownOrchestrated: true,
1649
+ parsedownEmbeddedInRmtKernel: false,
1650
+ richHtmlSchedulable: true,
1651
+ xplayerTutorialSchedulable: true,
1652
+ diagnosticsSnapshotRequired: true,
1653
+ nextWorkpackage: "WP-E13-13",
1654
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1655
+ publishAllowed: false,
1656
+ publishBoundary: "private-until-release-owner-acceptance",
1657
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1658
+ requiredFollowUps: ["WP-E13-13"]
1659
+ },
1660
+ epic13TrustedDomBoundary: {
1661
+ schema: "xtend.epic13.trusted-dom-boundary.v1",
1662
+ fixtureSchema: "xtend.epic13.trusted-dom-boundary-browser-smoke.v1",
1663
+ reportSchema: "xtend.epic13.trusted-dom-boundary-report.v1",
1664
+ workpackage: "WP-E13-11",
1665
+ status: "accepted-trusted-dom-boundary-browser-proof",
1666
+ targetReadiness: "trusted-dom-parsedown-rmt-html-boundary-browser-proofed",
1667
+ sourceSchema: "xtend.epic13.docs-rmt-production-hardening.v1",
1668
+ module: "catalog/epic13-trusted-dom-boundary.js",
1669
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1670
+ contract: "development/XTend-Epic13-Trusted-DOM-Boundary-Contract.md",
1671
+ workpackageDocument: "development/WP-E13-11-Trusted-DOM-Parsedown-und-RMT-HTML-Boundary-browsernah-pruefen.md",
1672
+ docs: "docs/trusted-dom-boundary-browser-proof.md",
1673
+ suite: "tests/platform/epic13_trusted_dom_boundary_suite.js",
1674
+ fixture: "tests/browser/fixtures/epic13-trusted-dom-boundary-smoke.html",
1675
+ localGate: "node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json",
1676
+ packageScript: "npm run test:epic13-trusted-dom-boundary",
1677
+ reportArtifact: ".xtend-test-results/xtend-epic13-trusted-dom-boundary-report.json",
1678
+ trustedDomPolicy: "xtend.security.trusted-dom-policy.v1",
1679
+ trustedDomSanitizer: "xtend.security.trusted-dom-sanitizer.v1",
1680
+ trustBoundary: "xtend.security.sanitizing-boundary.v1",
1681
+ blockedVectors: ["script", "inline-event-handler", "javascript-url", "srcdoc"],
1682
+ sourceGates: ["npm run test:manifest-policy", "npm run test:docs-rmt-pilot", "npm run test:browser", "npm run test:epic13-prod-browser-csp-smoke", "npm run test:epic13-docs-rmt-production-hardening"],
1683
+ localGateMode: "static-fixture-plus-trusted-dom-sanitizer-proof",
1684
+ externalBrowserRequiredInLocalGate: false,
1685
+ externalNetworkAllowedInLocalGate: false,
1686
+ nextWorkpackage: "WP-E13-13",
1687
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1688
+ publishAllowed: false,
1689
+ publishBoundary: "private-until-release-owner-acceptance",
1690
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1691
+ requiredFollowUps: ["WP-E13-13"]
1692
+ },
1693
+ epic13Rc1MigrationNotes: {
1694
+ schema: "xtend.epic13.rc1-migration-notes-semver.v1",
1695
+ reportSchema: "xtend.epic13.rc1-migration-notes-semver-report.v1",
1696
+ workpackage: "WP-E13-12",
1697
+ status: "accepted-rc1-migration-notes-semver-changelog",
1698
+ targetReadiness: "rc1-consumer-communication-ready",
1699
+ sourceSchema: "xtend.epic13.trusted-dom-boundary.v1",
1700
+ ownerSourceSchema: "xtend.epic13.release-owner-acceptance.v1",
1701
+ module: "catalog/epic13-rc1-migration-notes.js",
1702
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1703
+ contract: "development/XTend-Epic13-RC1-Migration-Notes-und-SemVer-Entscheid.md",
1704
+ workpackageDocument: "development/WP-E13-12-RC1-Migration-Notes-SemVer-Entscheid-und-Changelog-vorbereiten.md",
1705
+ docs: "docs/rc1-migration-notes.md",
1706
+ suite: "tests/platform/epic13_rc1_migration_notes_suite.js",
1707
+ localGate: "node scripts/run_xtend_tests.js epic13-rc1-migration-notes --json",
1708
+ packageScript: "npm run test:epic13-rc1-migration-notes",
1709
+ reportArtifact: ".xtend-test-results/xtend-epic13-rc1-migration-notes-report.json",
1710
+ currentVersion: "0.1.0-rc.1",
1711
+ proposedVersion: "0.1.0-rc.1",
1712
+ semverClassification: "minor-pre-1.0-release-candidate",
1713
+ migrationNotesRequired: true,
1714
+ changelogRequired: true,
1715
+ docsMenuSlug: "rc1-migration-notes",
1716
+ nextWorkpackage: "WP-E13-13",
1717
+ nextDecision: "rc1-gate-matrix-ci-handoff",
1718
+ publishAllowed: false,
1719
+ publishBoundary: "private-until-release-owner-acceptance",
1720
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1721
+ requiredFollowUps: ["WP-E13-13"]
1722
+ },
1723
+ epic13Rc1GateMatrixCiHandoff: {
1724
+ schema: "xtend.epic13.rc1-gate-matrix-ci-handoff.v1",
1725
+ reportSchema: "xtend.epic13.rc1-gate-matrix-ci-handoff-report.v1",
1726
+ workpackage: "WP-E13-13",
1727
+ dpfWorkpackage: "DPF-WP-01-rc1-gate-matrix-ci-handoff",
1728
+ status: "accepted-rc1-gate-matrix-ci-handoff",
1729
+ targetReadiness: "rc1-ci-handoff-ready",
1730
+ module: "catalog/epic13-rc1-gate-matrix-ci-handoff.js",
1731
+ steeringDocument: "development/RC0-RC1-transfer-EPIC13.md",
1732
+ contract: "development/XTend-Epic13-RC1-Gate-Matrix-und-CI-Handoff.md",
1733
+ workpackageDocument: "development/WP-E13-13-RC1-Gate-Matrix-und-CI-Handoff-erstellen.md",
1734
+ docs: "docs/rc1-gate-matrix-ci-handoff.md",
1735
+ suite: "tests/platform/epic13_rc1_gate_matrix_ci_handoff_suite.js",
1736
+ localGate: "node scripts/run_xtend_tests.js epic13-rc1-gate-matrix-ci-handoff --json",
1737
+ packageScript: "npm run test:epic13-rc1-gate-matrix-ci-handoff",
1738
+ packageExport: "./catalog/epic13-rc1-gate-matrix-ci-handoff",
1739
+ reportArtifact: ".xtend-test-results/xtend-epic13-rc1-gate-matrix-ci-handoff-report.json",
1740
+ sourceGateCount: 12,
1741
+ ciLanes: ["pr-fast", "rc1-full-release", "conditional-network-evidence", "owner-handoff"],
1742
+ docsMenuSlug: "rc1-gate-matrix-ci-handoff",
1743
+ nextWorkpackage: "WP-E13-14",
1744
+ nextDecision: "epic13-final-rc1-handoff",
1745
+ publishAllowed: false,
1746
+ publishBoundary: "private-until-release-owner-acceptance",
1747
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1748
+ requiredFollowUps: ["WP-E13-14"]
1749
+ },
1750
+ epic13ReleaseReportPackDryRunEvidence: {
1751
+ schema: "xtend.epic13.release-report-pack-dry-run-evidence.v1",
1752
+ reportSchema: "xtend.epic13.release-report-pack-dry-run-evidence-report.v1",
1753
+ workpackage: "DPF-WP-02-release-report-pack-dry-run",
1754
+ status: "accepted-release-report-pack-dry-run-evidence",
1755
+ targetReadiness: "release-owner-artifacts-reproducible",
1756
+ sourceSchema: "xtend.epic13.rc1-gate-matrix-ci-handoff.v1",
1757
+ module: "catalog/epic13-release-report-pack-dry-run-evidence.js",
1758
+ contract: "development/XTend-Epic13-Release-Report-und-Pack-Dry-Run-Evidence.md",
1759
+ workpackageDocument: "development/DPF-WP-02-Release-Report-und-Pack-Dry-Run-Evidence.md",
1760
+ docs: "docs/release-report-pack-dry-run-evidence.md",
1761
+ suite: "tests/platform/epic13_release_report_pack_dry_run_evidence_suite.js",
1762
+ localGate: "node scripts/run_xtend_tests.js epic13-release-report-pack-dry-run-evidence --json",
1763
+ packageScript: "npm run test:epic13-release-report-pack-dry-run-evidence",
1764
+ packageExport: "./catalog/epic13-release-report-pack-dry-run-evidence",
1765
+ reportArtifact: ".xtend-test-results/xtend-epic13-release-report-pack-dry-run-evidence-report.json",
1766
+ releaseReportCommand: "npm run release:report",
1767
+ releaseReportArtifact: ".xtend-test-results/xtend-release-report.json",
1768
+ packDryRunCommand: "npm run pack:dry-run",
1769
+ packDryRunArtifact: ".xtend-test-results/xtend-pack-dry-run.json",
1770
+ packageExportSurfaceArtifact: ".xtend-test-results/xtend-package-export-surface-lock.json",
1771
+ packageExportLockReportArtifact: ".xtend-test-results/xtend-package-export-lock-report.json",
1772
+ docsMenuSlug: "release-report-pack-dry-run-evidence",
1773
+ nextWorkpackage: "DPF-WP-03-conditional-network-evidence-ci",
1774
+ nextDecision: "conditional-network-evidence-ci",
1775
+ publishAllowed: false,
1776
+ publishBoundary: "private-until-release-owner-acceptance",
1777
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1778
+ requiredFollowUps: ["DPF-WP-03-conditional-network-evidence-ci"]
1779
+ },
1780
+ epic13ConditionalNetworkEvidenceCi: {
1781
+ schema: "xtend.epic13.conditional-network-evidence-ci.v1",
1782
+ reportSchema: "xtend.epic13.conditional-network-evidence-ci-report.v1",
1783
+ workpackage: "DPF-WP-03-conditional-network-evidence-ci",
1784
+ status: "accepted-conditional-network-evidence-ci",
1785
+ targetReadiness: "conditional-network-evidence-ci-ready",
1786
+ sourceSchema: "xtend.epic13.conditional-network-evidence.v1",
1787
+ releaseEvidenceSchema: "xtend.epic13.release-report-pack-dry-run-evidence.v1",
1788
+ module: "catalog/epic13-conditional-network-evidence-ci.js",
1789
+ contract: "development/XTend-Epic13-Conditional-Network-Evidence-CI-Contract.md",
1790
+ workpackageDocument: "development/DPF-WP-03-Conditional-Network-Evidence-CI.md",
1791
+ docs: "docs/conditional-network-evidence-ci.md",
1792
+ suite: "tests/platform/epic13_conditional_network_evidence_ci_suite.js",
1793
+ localGate: "node scripts/run_xtend_tests.js epic13-conditional-network-evidence-ci --json",
1794
+ packageScript: "npm run test:epic13-conditional-network-evidence-ci",
1795
+ packageExport: "./catalog/epic13-conditional-network-evidence-ci",
1796
+ reportArtifact: ".xtend-test-results/xtend-epic13-conditional-network-evidence-ci-report.json",
1797
+ captureCommand: "npm run conditional-network:evidence",
1798
+ captureScript: "node scripts/capture_conditional_network_evidence.js",
1799
+ workflow: ".github/workflows/xtend-default-gates.yml",
1800
+ workflowJob: "conditional-network-evidence",
1801
+ workflowArtifact: "xtend-conditional-network-evidence-node-26",
1802
+ evidenceArtifacts: [".xtend-test-results/xtend-npm-audit-report.json", ".xtend-test-results/xtend-npm-sbom.json", ".xtend-test-results/xtend-conditional-network-evidence-report.json"],
1803
+ docsMenuSlug: "conditional-network-evidence-ci",
1804
+ nextWorkpackage: "DPF-WP-04-visual-pixel-evidence-storage",
1805
+ nextDecision: "visual-pixel-evidence-storage",
1806
+ publishAllowed: false,
1807
+ publishBoundary: "private-until-release-owner-acceptance",
1808
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1809
+ requiredFollowUps: ["DPF-WP-04-visual-pixel-evidence-storage"]
1810
+ },
1811
+ componentUxAuthoringDocs: {
1812
+ schema: "xtend.epic11.component-ux-authoring-docs.v1",
1813
+ reportSchema: "xtend.epic11.component-ux-authoring-docs-report.v1",
1814
+ contract: "development/XTend-Component-UX-Authoring-Guides.md",
1815
+ workpackage: "development/WP-E11-16-Docs-und-Authoring-Guides-fuer-Component-UX-aktualisieren.md",
1816
+ docs: ["docs/component-ux-authoring.md", "docs/component-ux-app-authoring.md", "docs/component-ux-gates.md"],
1817
+ suite: "tests/docs/component_ux_authoring_docs_suite.js",
1818
+ status: "accepted-docs",
1819
+ sourceBrowserSmokes: "xtend.epic11.component-ux-browser-smokes.v1",
1820
+ sourceThemeMatrix: "xtend.epic11.component-shell-theme-matrix.v1",
1821
+ requiredContracts: ["xtend.component.shell.v1", "xtend.component.styling.v1", "xtend.component.runtime-a11y.v1", "xtend.component.ux-performance.v1", "xtend.component.network.v1", "xtend.rmt.shell-authoring.v1", "xtend.epic11.component-lab-ux-inspector.v1", "xtend.epic11.component-ux-browser-smokes.v1", "xtend.epic11.component-shell-theme-matrix.v1"],
1822
+ authorAudiences: ["component-authors", "app-authors", "reviewers", "ci-maintainers"],
1823
+ localGate: "node scripts/run_xtend_tests.js component-ux-authoring-docs --json",
1824
+ packageScript: "npm run test:component-ux-authoring-docs",
1825
+ externalNetworkAllowed: false,
1826
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1827
+ requiredFollowUps: ["WP-E11-17"]
1828
+ },
1829
+ componentLongTailMigration: {
1830
+ schema: "xtend.epic11.legacy-long-tail-migration.v1",
1831
+ entrySchema: "xtend.epic11.legacy-long-tail-migration-entry.v1",
1832
+ gateSchema: "xtend.epic11.legacy-long-tail-migration-gate.v1",
1833
+ module: "catalog/component-long-tail-migration.js",
1834
+ contract: "development/XTend-Epic11-Legacy-Long-Tail-Migrationsplan.md",
1835
+ workpackage: "development/WP-E11-17-Legacy-Long-Tail-Migration-planen.md",
1836
+ docs: "docs/component-long-tail-migration.md",
1837
+ suite: "tests/catalog/component_long_tail_migration_suite.js",
1838
+ status: "accepted-migration-plan",
1839
+ strategy: "incremental-no-big-bang",
1840
+ sourceCatalogCoverage: "xtend.catalog.component-coverage-matrix.v1",
1841
+ sourceRegressionPriority: "xtend.catalog.component-regression-priority-plan.v1",
1842
+ sourceAuthoringDocs: "xtend.epic11.component-ux-authoring-docs.v1",
1843
+ targetComponents: ["xstate", "x-utils"],
1844
+ waves: ["wave-1-p0-routing-interaction", "wave-2-p1-theme-and-interaction", "wave-3-infrastructure-and-utility-probes"],
1845
+ localGate: "node scripts/run_xtend_tests.js component-long-tail-migration --json",
1846
+ packageScript: "npm run test:component-long-tail-migration",
1847
+ externalNetworkAllowed: false,
1848
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types",
1849
+ requiredFollowUps: ["WP-E11-18"]
1850
+ },
1851
+ epic11EnterpriseUxHandoff: {
1852
+ schema: "xtend.epic11.enterprise-ux-handoff.v1",
1853
+ reportSchema: "xtend.epic11.enterprise-ux-handoff-report.v1",
1854
+ module: "catalog/epic11-enterprise-ux-handoff.js",
1855
+ contract: "development/XTend-Epic11-Abschluss-und-Enterprise-UX-Handoff.md",
1856
+ workpackage: "development/WP-E11-18-Epic-11-Abschlussreview-und-Enterprise-UX-Handoff.md",
1857
+ docs: "docs/epic11-enterprise-ux-handoff.md",
1858
+ suite: "tests/platform/epic11_enterprise_ux_handoff_suite.js",
1859
+ status: "accepted-enterprise-ux-handoff",
1860
+ completionMode: "completed-with-accepted-long-tail-handoff",
1861
+ sourceCatalogCoverage: "xtend.catalog.component-coverage-matrix.v1",
1862
+ sourceRegressionPriority: "xtend.catalog.component-regression-priority-plan.v1",
1863
+ sourceLongTailMigration: "xtend.epic11.legacy-long-tail-migration.v1",
1864
+ acceptedResiduals: ["xstate", "x-utils"],
1865
+ requiredGates: ["component-shell-contract", "component-styling-contract", "runtime-a11y-contract", "component-ux-performance", "component-network-contract", "rmt-shell-authoring-ux", "form-controls-ux", "feedback-status-ux", "navigation-routing-ux", "overlay-interaction-ux", "layout-display-media-ux", "component-lab-ux-inspector", "component-ux-browser-smokes", "component-shell-theme-matrix", "component-ux-authoring-docs", "component-long-tail-migration", "catalog-coverage", "regression-priority", "references", "npm test"],
1866
+ localGate: "node scripts/run_xtend_tests.js epic11-enterprise-ux-handoff --json",
1867
+ packageScript: "npm run test:epic11-enterprise-ux-handoff",
1868
+ writePolicy: "docs-and-enterprise-ux-handoff-only",
1869
+ publishBoundary: "private-until-release-owner-acceptance",
1870
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
1871
+ },
1872
+ existingComponentMetadataMigration: {
1873
+ schema: "xtend.epic10.existing-component-metadata.v1",
1874
+ gateSchema: "xtend.epic10.existing-component-metadata-gate.v1",
1875
+ module: "catalog/epic10-existing-component-metadata.js",
1876
+ contract: "development/XTend-Existing-Component-RMT-Fabric-Metadata.md",
1877
+ workpackage: "development/WP-E10-14-Existing-Component-Metadata-Migration-fuer-priorisierte-Komponenten.md",
1878
+ suite: "tests/components/existing_component_metadata_migration_suite.js",
1879
+ status: "accepted-migration",
1880
+ migrationStrategy: "js-legacy-contract-overlay-no-runtime-rewrite",
1881
+ targetComponents: ["x-router", "x-link", "x-input", "x-form", "x-modal", "x-dialog", "x-tabs", "x-toast", "x-alert"],
1882
+ sourceState: "js-legacy",
1883
+ runtimeRewriteRequired: false,
1884
+ noBigBangTypeScriptMigration: true,
1885
+ requiredContracts: ["xtend.component.contract.v2", "xtend.rmt.component-contract.v1", "xtend.component.fabric-boundary.v2", "xtend.fabric.telemetry-snapshot.v1"],
1886
+ localGate: "node scripts/run_xtend_tests.js existing-component-metadata --json",
1887
+ writePolicy: "metadata-overlay-first-runtime-migration-later",
1888
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
1889
+ },
1890
+ epic10PlatformGates: {
1891
+ schema: "xtend.epic10.platform-gates.v1",
1892
+ recordSchema: "xtend.epic10.platform-gate.record.v1",
1893
+ reportSchema: "xtend.epic10.platform-gates-report.v1",
1894
+ module: "catalog/epic10-platform-gates.js",
1895
+ contract: "development/XTend-Epic10-Platform-Gates.md",
1896
+ workpackage: "development/WP-E10-15-Browser-A11y-Performance-und-Visual-Gates-erweitern.md",
1897
+ docs: "docs/epic10-platform-gates.md",
1898
+ suite: "tests/platform/epic10_platform_gates_suite.js",
1899
+ status: "accepted-gate-chain",
1900
+ requiredDomains: ["component-contract", "rmt-first-app", "browser-smoke", "a11y", "performance", "visual-browser-regression", "ci-handoff"],
1901
+ fastPrSuites: ["component-contract-v2", "epic10-p0-component-wave", "component-lab-rmt-inspector", "component-lab-ux-inspector", "component-ux-browser-smokes", "component-shell-theme-matrix", "component-ux-authoring-docs", "component-long-tail-migration", "epic11-enterprise-ux-handoff", "rmt-first-demo-app", "existing-component-metadata", "epic10-release-handoff", "browser", "a11y-hydration", "screenreader-signals", "motion-contrast", "regression-priority", "references"],
1902
+ releaseOnlyPerformanceSuites: ["fabric-performance-measurements", "performance-regression", "hydration-policy"],
1903
+ visualRegressionGate: "node scripts/run_xtend_tests.js regression-priority --json",
1904
+ browserGate: "node scripts/run_xtend_tests.js browser --json",
1905
+ localGate: "node scripts/run_xtend_tests.js epic10-platform-gates --json",
1906
+ writePolicy: "gate-chain-and-ci-handoff-only",
1907
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
1908
+ },
1909
+ epic10ReleaseHandoff: {
1910
+ schema: "xtend.epic10.release-handoff.v1",
1911
+ reportSchema: "xtend.epic10.release-handoff-report.v1",
1912
+ module: "catalog/epic10-release-handoff.js",
1913
+ contract: "development/XTend-Epic10-Abschluss-und-Release-Handoff.md",
1914
+ workpackage: "development/WP-E10-16-Dokumentation-Guides-und-Release-Handoff-finalisieren.md",
1915
+ docs: "docs/epic10-release-handoff.md",
1916
+ rmtFirstXtendAppsDocs: "docs/rmt-first-xtend-apps.md",
1917
+ suite: "tests/platform/epic10_release_handoff_suite.js",
1918
+ status: "accepted-release-handoff",
1919
+ canonicalFabricBoundary: "adapter-injection-via-xtend-component-resolveFabricContext",
1920
+ requiredDocs: ["docs/component-platform.md", "docs/typescript-components.md", "docs/rmt-first-xtend-apps.md", "docs/epic10-platform-gates.md", "docs/epic10-release-handoff.md"],
1921
+ requiredGates: ["epic10-release-handoff", "epic10-platform-gates", "component-contract-v2", "rmt-first-class-app", "rmt-first-demo-app", "existing-component-metadata", "browser", "performance-regression", "references"],
1922
+ localGate: "node scripts/run_xtend_tests.js epic10-release-handoff --json",
1923
+ writePolicy: "docs-and-release-handoff-only",
1924
+ publishBoundary: "private-until-release-owner-acceptance",
1925
+ kernelBoundary: "no-rmt-kernel-import-of-xtend-types"
1926
+ },
1927
+ rmtCompatibility: {
1928
+ schema: "xtend.scaffold.rmt-compatibility-binding.v1",
1929
+ status: "dry-run-contract-binding",
1930
+ surfaces: ["typing", "manifest-plan", "preview-plan", "extension-points", "component-files", "workflow"],
1931
+ requiredContracts: [
1932
+ "xtend.rmt.component-contract.v1",
1933
+ "xtend.rmt.template-authoring.v1",
1934
+ "xtend.rmt.root-handshake.v1",
1935
+ "xtend.rmt.host-capabilities.v1"
1936
+ ],
1937
+ minimumGate: "node scripts/run_xtend_tests.js rmt-compatibility --json",
1938
+ fullGate: "npm test",
1939
+ noRuntimeImports: true,
1940
+ noProductiveWrites: true,
1941
+ noRmtKernelCoupling: true,
1942
+ bridgeRuntime: "reserved-for-Epic-05"
1943
+ },
1944
+ extensions: {
1945
+ schema: "xtend.scaffold.component-extension-points.v1",
1946
+ module: "xtend-builder/extensions/component-extension-points.js",
1947
+ rootLifecycleSchema: "xtend.scaffold.root-lifecycle.v1",
1948
+ templateExtensionSchema: "xtend.scaffold.template-extension.v1",
1949
+ renderingExtensionSchema: "xtend.scaffold.rendering-extension.v1",
1950
+ command: "extensions",
1951
+ mode: "dry-run-extension-contract",
1952
+ status: "prepared-extension-points-only",
1953
+ sourceStaticGetter: "xtendScaffoldExtensionPoints",
1954
+ manifestKey: "extensions",
1955
+ rootLifecycleHooks: ["beforeHydrate", "afterHydrate", "beforeRender", "afterRender", "onDisconnect"],
1956
+ rootHandshakeContractVersion: "xtend.rmt.root-handshake.v1",
1957
+ rootLifecyclePhases: ["create", "mount", "hydrate", "activate", "update", "unmount", "diagnostics"],
1958
+ schedulerEndpointHints: ["component.visible.mount", "component.idle.hydrate", "route.visible.render", "diagnostics.snapshot"],
1959
+ hostCapabilitiesContractVersion: "xtend.rmt.host-capabilities.v1",
1960
+ hostCapabilities: ["manifest", "customElements", "stateBridge", "hydration", "schedulerEndpoints", "theme", "api", "router", "diagnostics"],
1961
+ hostCapabilityBoundary: "rmt-negotiates-capability-data-host-adapter-executes-xtend-work",
1962
+ templateAdapter: "xtend.template",
1963
+ templateAuthoringContractVersion: "xtend.rmt.template-authoring.v1",
1964
+ templateAuthoringModes: ["html_fragment", "dom_descriptor"],
1965
+ templateEventBindingMode: "dom-event-to-rmt-command",
1966
+ componentAdapter: "xtend.component",
1967
+ routerAdapter: "xtend.xrouter",
1968
+ noRuntimeImports: true,
1969
+ noProductiveWrites: true,
1970
+ noRmtKernelCoupling: true,
1971
+ noRouterRegistration: true,
1972
+ noTemplateParsing: true,
1973
+ architectureEpic: "development/EPIC-04-XTend-Templating-Rendering-und-Framework-Erweiterung.md",
1974
+ bridgeEpic: "development/EPIC-05-XTendRMT-Bridge-und-Natives-Routing.md"
1975
+ },
1976
+ wiring: {
1977
+ manifest: {
1978
+ schema: "xtend.scaffold.manifest-wiring.v1",
1979
+ module: "xtend-builder/wiring/manifest.js",
1980
+ patchPlanSchema: "xtend.scaffold.manifest-patch-plan.v1",
1981
+ target: "components/manifest.json",
1982
+ mode: "dry-run-patch-plan",
1983
+ importMode: "repo-local",
1984
+ localImportOnly: true,
1985
+ cdnAllowed: false
1986
+ },
1987
+ hydration: {
1988
+ schema: "xtend.scaffold.hydration-wiring.v1",
1989
+ module: "xtend-builder/wiring/hydration.js",
1990
+ stateAttribute: "data-xtend-hydrated",
1991
+ fixtureScriptPattern: "../../../components/<tag>.js",
1992
+ fixtureResultPattern: "window.__<className>FixtureResult",
1993
+ lifecycleCallbacks: ["connectedCallback", "attributeChangedCallback", "disconnectedCallback"],
1994
+ minimumMethods: ["hydrate", "render"]
1995
+ },
1996
+ features: {
1997
+ schema: "xtend.scaffold.feature-wiring.v1",
1998
+ module: "xtend-builder/wiring/features.js",
1999
+ statePrefixPattern: "xtend.component.<tag>.<id>.",
2000
+ stateApi: "xstate.subscribe(fn, keyFilter?)",
2001
+ writeApi: "xstate.set(key, value)",
2002
+ namespaceRoot: "window.XTend",
2003
+ localUiPolicy: "derived-render-cache-only",
2004
+ forbiddenStateFacades: ["xstate.on", "xstate.off"],
2005
+ forbiddenGlobalHelpers: ["window.show*"],
2006
+ profileDriven: true
2007
+ }
2008
+ },
2009
+ scope: {
2010
+ inScope: ["component-blueprints", "docs", "tests", "fixtures", "types", "typescript-component-blueprint", "typescript-source-strategy", "component-contract-v2", "rmt-first-class-app-authoring", "component-fabric-lane-ingestion", "component-lifecycle-telemetry", "component-lab-rmt-inspector", "manifest-plan", "feature-wiring", "type-contract", "rmt-attachment-plan", "rmt-compatibility-binding", "demo-preview-plan", "reference-gate-plan", "extension-point-contract", "a11y-profile-plan", "screenreader-signal-contract", "motion-contrast-policy", "performance-policy"],
2011
+ outOfScope: ["runtime-engine", "productive-typescript-compiler", "bundler", "publishing", "rmt-runtime", "rmt-bridge-runtime", "rendering-runtime", "route-registration-runtime", "template-parser-runtime", "browser-automation-for-every-preview"]
2012
+ },
2013
+ defaultFeatures: ["state", "events", "css", "accessibility", "docs"],
2014
+ requiredArtifacts: ["component", "docs", "tests", "fixtures", "types", "manifest", "ts-source", "ts-contract", "ts-rmt", "ts-a11y", "ts-performance", "ts-fixture"],
2015
+ componentTestProfiles: [
2016
+ "display",
2017
+ "interactive",
2018
+ "stateful",
2019
+ "feedback",
2020
+ "overlay",
2021
+ "routing",
2022
+ "theme",
2023
+ "form",
2024
+ "media"
2025
+ ],
2026
+ testObligation: {
2027
+ required: true,
2028
+ standard: "development/XTend-Testpflicht-und-Scaffold-Anschluss.md",
2029
+ componentStandard: "development/XTend-Component-Level-Teststandard.md",
2030
+ reportingStandard: "development/XTend-Test-Reporting-und-CI-Vorbereitung.md",
2031
+ runner: "node scripts/run_xtend_tests.js",
2032
+ reportCommand: "node scripts/run_xtend_tests.js --report .xtend-test-results/xtend-test-report.json",
2033
+ requiredSuites: ["components", "a11y-hydration", "references", "rmt-compatibility"],
2034
+ coreSuitesForRuntimeChanges: ["core", "architecture", "browser"],
2035
+ reviewActors: ["human", "ai-agent"]
2036
+ },
2037
+ artifactPaths: {
2038
+ component: "components/<tag>.js",
2039
+ docs: "docs/components/<name>.md",
2040
+ tests: "tests/components/<tag>.component_suite.js",
2041
+ fixtures: "tests/components/fixtures/<tag>.component.html",
2042
+ types: "components/<tag>.d.ts",
2043
+ manifest: "components/manifest.json",
2044
+ demo: "docs/previews/<name>.preview.md",
2045
+ "ts-source": "src/components/<tag>/<tag>.ts",
2046
+ "ts-contract": "src/components/<tag>/<tag>.contract.ts",
2047
+ "ts-rmt": "src/components/<tag>/<tag>.rmt.ts",
2048
+ "ts-a11y": "src/components/<tag>/<tag>.a11y.ts",
2049
+ "ts-performance": "src/components/<tag>/<tag>.performance.ts",
2050
+ "ts-fixture": "src/components/<tag>/<tag>.fixture.ts"
2051
+ },
2052
+ enableHotReload: true,
2053
+ enableLinting: true,
2054
+ enableDocsGen: true,
2055
+ pluginAPI: true,
2056
+ };