@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,233 @@
1
+ const {
2
+ KERNEL_BOUNDARY
3
+ } = require('./epic12-rc0-gate-matrix');
4
+ const {
5
+ EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
6
+ EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA,
7
+ createEpic13ProdBrowserCspSmokePlan,
8
+ createEpic13ProdBrowserCspSmokeReport,
9
+ validateEpic13ProdBrowserCspSmokePlan
10
+ } = require('./epic13-prod-browser-csp-smoke');
11
+ const {
12
+ VISUAL_SNAPSHOTS_BASELINE_PATH,
13
+ VISUAL_SNAPSHOTS_FIXTURE_PATH,
14
+ VISUAL_SNAPSHOTS_REPORT_SCHEMA,
15
+ createVisualSnapshotsRun,
16
+ validateVisualSnapshotsRun
17
+ } = require('../tests/browser/visual-snapshots-runner');
18
+
19
+ const EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA = 'xtend.epic13.visual-owner-artifact.v1';
20
+ const EPIC13_VISUAL_OWNER_ARTIFACT_MANIFEST_SCHEMA = 'xtend.epic13.visual-owner-artifact-manifest.v1';
21
+ const EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA = 'xtend.epic13.visual-owner-artifact-report.v1';
22
+ const EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE = 'WP-E13-08';
23
+ const EPIC13_VISUAL_OWNER_ARTIFACT_STATUS = 'accepted-visual-owner-artifact-normalization';
24
+ const EPIC13_VISUAL_OWNER_ARTIFACT_TARGET = 'visual-owner-artifact-normalized';
25
+ const EPIC13_VISUAL_OWNER_ARTIFACT_MODULE = 'catalog/epic13-visual-owner-artifact.js';
26
+ const EPIC13_VISUAL_OWNER_ARTIFACT_SUITE = 'tests/platform/epic13_visual_owner_artifact_suite.js';
27
+ const EPIC13_VISUAL_OWNER_ARTIFACT_STEERING = 'development/RC0-RC1-transfer-EPIC13.md';
28
+ const EPIC13_VISUAL_OWNER_ARTIFACT_CONTRACT = 'development/XTend-Epic13-Visual-Owner-Artifact-Contract.md';
29
+ const EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE_DOC = 'development/WP-E13-08-Visual-Screenshot-Pixels-als-RC1-Artefakt-normalisieren.md';
30
+ const EPIC13_VISUAL_OWNER_ARTIFACT_DOCS = 'docs/visual-owner-artifacts.md';
31
+ const EPIC13_VISUAL_OWNER_ARTIFACT_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic13-visual-owner-artifact --json';
32
+ const EPIC13_VISUAL_OWNER_ARTIFACT_PACKAGE_SCRIPT = 'npm run test:epic13-visual-owner-artifact';
33
+ const VISUAL_OWNER_ARTIFACT_ROOT = '.xtend-test-results/visual-snapshots/rc1';
34
+ const VISUAL_OWNER_ARTIFACT_MANIFEST = 'tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json';
35
+ const VISUAL_OWNER_ARTIFACT_REPORT = `${VISUAL_OWNER_ARTIFACT_ROOT}/visual-owner-artifact-report.json`;
36
+ const VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE = `${VISUAL_OWNER_ARTIFACT_ROOT}/{family}/{viewport}/{theme}/{density}/{motion}.png`;
37
+ const PUBLISH_BOUNDARY = 'private-until-release-owner-acceptance';
38
+
39
+ const DETERMINISTIC_VIEWPORTS = Object.freeze([
40
+ { id: 'desktop-1280', width: 1280, height: 900 },
41
+ { id: 'tablet-768', width: 768, height: 1024 },
42
+ { id: 'mobile-390', width: 390, height: 844 }
43
+ ]);
44
+
45
+ const REQUIRED_SOURCE_GATES = Object.freeze([
46
+ 'npm run test:visual-snapshots',
47
+ 'npm run test:visual-snapshot-automation',
48
+ 'npm run test:component-shell-theme-matrix',
49
+ 'npm run test:epic13-prod-browser-csp-smoke'
50
+ ]);
51
+
52
+ const REQUIRED_DOCS = Object.freeze([
53
+ EPIC13_VISUAL_OWNER_ARTIFACT_STEERING,
54
+ EPIC13_VISUAL_OWNER_ARTIFACT_CONTRACT,
55
+ EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE_DOC,
56
+ EPIC13_VISUAL_OWNER_ARTIFACT_DOCS,
57
+ 'development/XTend-Visual-Snapshot-Automation-Contract.md',
58
+ 'development/XTend-Epic13-PROD-Browser-CSP-Smoke-Contract.md',
59
+ 'docs/visual-snapshot-automation.md',
60
+ 'docs/prod-browser-csp-smokes.md',
61
+ 'docs/enterprise-adoption.md'
62
+ ]);
63
+
64
+ function createCaptureEntries(snapshotRun) {
65
+ return snapshotRun.snapshots.map((snapshot) => ({
66
+ id: `rc1-${snapshot.family}-owner-screenshot`,
67
+ family: snapshot.family,
68
+ sourceSnapshot: snapshot.id,
69
+ components: snapshot.components.slice(),
70
+ artifactPathTemplate: VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE.replace('{family}', snapshot.family),
71
+ domSignature: snapshot.domSignature.root,
72
+ rmtDescriptor: snapshot.domSignature.rmtDescriptor === true
73
+ }));
74
+ }
75
+
76
+ function createEpic13VisualOwnerArtifactPlan(options = {}) {
77
+ const sourcePlan = options.sourcePlan || createEpic13ProdBrowserCspSmokePlan(options);
78
+ const sourceValidation = options.sourceValidation || validateEpic13ProdBrowserCspSmokePlan(sourcePlan);
79
+ const sourceReport = options.sourceReport || createEpic13ProdBrowserCspSmokeReport({ ...options, plan: sourcePlan });
80
+ const visualRun = options.visualRun || createVisualSnapshotsRun(options);
81
+ const visualValidation = options.visualValidation || validateVisualSnapshotsRun(visualRun);
82
+ const captureEntries = createCaptureEntries(visualRun);
83
+
84
+ return {
85
+ schema: EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA,
86
+ manifestSchema: EPIC13_VISUAL_OWNER_ARTIFACT_MANIFEST_SCHEMA,
87
+ reportSchema: EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
88
+ workpackage: EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE,
89
+ status: EPIC13_VISUAL_OWNER_ARTIFACT_STATUS,
90
+ generatedAt: options.generatedAt || 'static-local',
91
+ module: EPIC13_VISUAL_OWNER_ARTIFACT_MODULE,
92
+ suite: EPIC13_VISUAL_OWNER_ARTIFACT_SUITE,
93
+ steeringDocument: EPIC13_VISUAL_OWNER_ARTIFACT_STEERING,
94
+ contract: EPIC13_VISUAL_OWNER_ARTIFACT_CONTRACT,
95
+ workpackageDocument: EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE_DOC,
96
+ docs: EPIC13_VISUAL_OWNER_ARTIFACT_DOCS,
97
+ localGate: EPIC13_VISUAL_OWNER_ARTIFACT_LOCAL_GATE,
98
+ packageScript: EPIC13_VISUAL_OWNER_ARTIFACT_PACKAGE_SCRIPT,
99
+ sourceSchema: EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA,
100
+ sourceReportSchema: EPIC13_PROD_BROWSER_CSP_SMOKE_REPORT_SCHEMA,
101
+ sourceStatus: sourcePlan.status,
102
+ sourceValidationOk: sourceValidation.ok,
103
+ sourceReportOk: sourceReport.ok,
104
+ visualSnapshotReportSchema: VISUAL_SNAPSHOTS_REPORT_SCHEMA,
105
+ visualSnapshotValidationOk: visualValidation.ok,
106
+ releaseCandidate: 'RC1',
107
+ targetReadiness: EPIC13_VISUAL_OWNER_ARTIFACT_TARGET,
108
+ artifactRoot: VISUAL_OWNER_ARTIFACT_ROOT,
109
+ artifactManifest: VISUAL_OWNER_ARTIFACT_MANIFEST,
110
+ reportPath: VISUAL_OWNER_ARTIFACT_REPORT,
111
+ screenshotPathTemplate: VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE,
112
+ domBaseline: VISUAL_SNAPSHOTS_BASELINE_PATH,
113
+ fixture: VISUAL_SNAPSHOTS_FIXTURE_PATH,
114
+ captureEntries,
115
+ deterministicViewports: DETERMINISTIC_VIEWPORTS.map((viewport) => ({ ...viewport })),
116
+ themeVariants: ['light', 'dark', 'high-contrast', 'forced-colors'],
117
+ motionModes: ['default-motion', 'reduced-motion'],
118
+ densities: ['comfortable', 'compact', 'dense'],
119
+ sourceGates: REQUIRED_SOURCE_GATES.slice(),
120
+ requiredDocs: REQUIRED_DOCS.slice(),
121
+ snapshotCount: visualRun.snapshotCount,
122
+ familyCount: visualRun.familyCount,
123
+ componentCount: visualRun.componentCount,
124
+ matrixCombinationCount: visualRun.matrixCombinationCount,
125
+ domDiffCount: visualRun.domDiffCount,
126
+ localGateMode: 'static-artifact-manifest-plus-dom-snapshot-gate',
127
+ ownerArtifactMode: 'optional-browser-driver-or-ci-artifact',
128
+ pixelDiffMode: 'optional-owner-artifact-pixel-diff',
129
+ pixelDiffRequiredInLocalGate: false,
130
+ screenshotRequiredInLocalGate: false,
131
+ binaryBaselineCommitted: false,
132
+ externalBrowserRequiredInLocalGate: false,
133
+ externalNetworkAllowedInLocalGate: false,
134
+ nextDecision: 'rc1-gate-matrix-ci-handoff',
135
+ nextWorkpackage: 'WP-E13-13',
136
+ kernelBoundary: KERNEL_BOUNDARY,
137
+ publishBoundary: PUBLISH_BOUNDARY,
138
+ publishAllowed: false,
139
+ packagePrivateRequired: true
140
+ };
141
+ }
142
+
143
+ function validateEpic13VisualOwnerArtifactPlan(plan = createEpic13VisualOwnerArtifactPlan()) {
144
+ const errors = [];
145
+
146
+ if (!plan || plan.schema !== EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA) errors.push(`schema must be ${EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA}`);
147
+ if (!plan || plan.manifestSchema !== EPIC13_VISUAL_OWNER_ARTIFACT_MANIFEST_SCHEMA) errors.push(`manifestSchema must be ${EPIC13_VISUAL_OWNER_ARTIFACT_MANIFEST_SCHEMA}`);
148
+ if (!plan || plan.reportSchema !== EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA) errors.push(`reportSchema must be ${EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA}`);
149
+ if (!plan || plan.workpackage !== EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE) errors.push(`workpackage must be ${EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE}`);
150
+ if (!plan || plan.status !== EPIC13_VISUAL_OWNER_ARTIFACT_STATUS) errors.push(`status must be ${EPIC13_VISUAL_OWNER_ARTIFACT_STATUS}`);
151
+ if (!plan || plan.sourceSchema !== EPIC13_PROD_BROWSER_CSP_SMOKE_SCHEMA) errors.push('source schema must be PROD browser CSP smoke');
152
+ if (!plan || plan.sourceValidationOk !== true || plan.sourceReportOk !== true) errors.push('PROD browser CSP smoke source must validate');
153
+ if (!plan || plan.visualSnapshotValidationOk !== true) errors.push('visual snapshot runner source must validate');
154
+ if (!plan || plan.targetReadiness !== EPIC13_VISUAL_OWNER_ARTIFACT_TARGET) errors.push(`targetReadiness must be ${EPIC13_VISUAL_OWNER_ARTIFACT_TARGET}`);
155
+ if (!plan || plan.artifactRoot !== VISUAL_OWNER_ARTIFACT_ROOT) errors.push(`artifactRoot must be ${VISUAL_OWNER_ARTIFACT_ROOT}`);
156
+ if (!plan || plan.artifactManifest !== VISUAL_OWNER_ARTIFACT_MANIFEST) errors.push(`artifactManifest must be ${VISUAL_OWNER_ARTIFACT_MANIFEST}`);
157
+ if (!plan || plan.reportPath !== VISUAL_OWNER_ARTIFACT_REPORT) errors.push(`reportPath must be ${VISUAL_OWNER_ARTIFACT_REPORT}`);
158
+ if (!plan || plan.screenshotPathTemplate !== VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE) errors.push(`screenshotPathTemplate must be ${VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE}`);
159
+ if (!plan || plan.snapshotCount !== 5 || plan.familyCount !== 5) errors.push('visual owner artifact must preserve five snapshot families');
160
+ if (!plan || plan.componentCount !== 17) errors.push('visual owner artifact must preserve seventeen representative components');
161
+ if (!plan || plan.matrixCombinationCount !== 360) errors.push('visual owner artifact must preserve 360 matrix combinations');
162
+ if (!plan || plan.domDiffCount !== 0) errors.push('visual owner artifact must be backed by a clean DOM diff');
163
+ if (!plan || !Array.isArray(plan.captureEntries) || plan.captureEntries.length !== 5) errors.push('visual owner artifact must define five capture entries');
164
+ if (!plan || plan.deterministicViewports.length !== 3) errors.push('visual owner artifact must define three deterministic viewports');
165
+ REQUIRED_SOURCE_GATES.forEach((gate) => {
166
+ if (!plan || !plan.sourceGates.includes(gate)) errors.push(`source gate missing: ${gate}`);
167
+ });
168
+ if (!plan || plan.localGateMode !== 'static-artifact-manifest-plus-dom-snapshot-gate') errors.push('local gate mode must stay manifest plus DOM snapshot gate');
169
+ if (!plan || plan.ownerArtifactMode !== 'optional-browser-driver-or-ci-artifact') errors.push('owner artifact mode must remain optional browser driver or CI artifact');
170
+ if (!plan || plan.pixelDiffRequiredInLocalGate !== false || plan.screenshotRequiredInLocalGate !== false) errors.push('pixel and screenshot capture must remain optional in the local gate');
171
+ if (!plan || plan.binaryBaselineCommitted !== false) errors.push('binary screenshot baselines must not be committed');
172
+ if (!plan || plan.externalBrowserRequiredInLocalGate !== false || plan.externalNetworkAllowedInLocalGate !== false) errors.push('local gate must not require browser driver or external network');
173
+ if (!plan || plan.nextDecision !== 'rc1-gate-matrix-ci-handoff') errors.push('next decision must be RC1 Gate Matrix und CI-Handoff');
174
+ if (!plan || plan.nextWorkpackage !== 'WP-E13-13') errors.push('next workpackage must be WP-E13-13');
175
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) errors.push(`kernelBoundary must be ${KERNEL_BOUNDARY}`);
176
+ if (!plan || plan.publishBoundary !== PUBLISH_BOUNDARY) errors.push(`publishBoundary must be ${PUBLISH_BOUNDARY}`);
177
+ if (!plan || plan.publishAllowed !== false || plan.packagePrivateRequired !== true) errors.push('publish must remain blocked and package private');
178
+
179
+ return {
180
+ schema: EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
181
+ ok: errors.length === 0,
182
+ errors
183
+ };
184
+ }
185
+
186
+ function createEpic13VisualOwnerArtifactReport(options = {}) {
187
+ const plan = options.plan || createEpic13VisualOwnerArtifactPlan(options);
188
+ const validation = validateEpic13VisualOwnerArtifactPlan(plan);
189
+
190
+ return {
191
+ schema: EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
192
+ ok: validation.ok,
193
+ errors: validation.errors,
194
+ plan,
195
+ artifactManifest: plan.artifactManifest,
196
+ captureEntryCount: plan.captureEntries.length,
197
+ snapshotCount: plan.snapshotCount,
198
+ matrixCombinationCount: plan.matrixCombinationCount,
199
+ domDiffCount: plan.domDiffCount,
200
+ pixelDiffRequiredInLocalGate: plan.pixelDiffRequiredInLocalGate,
201
+ screenshotRequiredInLocalGate: plan.screenshotRequiredInLocalGate,
202
+ publishAllowed: plan.publishAllowed,
203
+ nextWorkpackage: plan.nextWorkpackage
204
+ };
205
+ }
206
+
207
+ module.exports = {
208
+ DETERMINISTIC_VIEWPORTS,
209
+ EPIC13_VISUAL_OWNER_ARTIFACT_CONTRACT,
210
+ EPIC13_VISUAL_OWNER_ARTIFACT_DOCS,
211
+ EPIC13_VISUAL_OWNER_ARTIFACT_LOCAL_GATE,
212
+ EPIC13_VISUAL_OWNER_ARTIFACT_MANIFEST_SCHEMA,
213
+ EPIC13_VISUAL_OWNER_ARTIFACT_MODULE,
214
+ EPIC13_VISUAL_OWNER_ARTIFACT_PACKAGE_SCRIPT,
215
+ EPIC13_VISUAL_OWNER_ARTIFACT_REPORT_SCHEMA,
216
+ EPIC13_VISUAL_OWNER_ARTIFACT_SCHEMA,
217
+ EPIC13_VISUAL_OWNER_ARTIFACT_STATUS,
218
+ EPIC13_VISUAL_OWNER_ARTIFACT_STEERING,
219
+ EPIC13_VISUAL_OWNER_ARTIFACT_SUITE,
220
+ EPIC13_VISUAL_OWNER_ARTIFACT_TARGET,
221
+ EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE,
222
+ EPIC13_VISUAL_OWNER_ARTIFACT_WORKPACKAGE_DOC,
223
+ PUBLISH_BOUNDARY,
224
+ REQUIRED_DOCS,
225
+ REQUIRED_SOURCE_GATES,
226
+ VISUAL_OWNER_ARTIFACT_MANIFEST,
227
+ VISUAL_OWNER_ARTIFACT_PATH_TEMPLATE,
228
+ VISUAL_OWNER_ARTIFACT_REPORT,
229
+ VISUAL_OWNER_ARTIFACT_ROOT,
230
+ createEpic13VisualOwnerArtifactPlan,
231
+ createEpic13VisualOwnerArtifactReport,
232
+ validateEpic13VisualOwnerArtifactPlan
233
+ };
@@ -0,0 +1,28 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogGate,
4
+ XtendCatalogOptions,
5
+ XtendCatalogPlan,
6
+ XtendCatalogRecord,
7
+ XtendCatalogReport
8
+ } from './catalog-public-types';
9
+
10
+
11
+ export declare const CAPABILITY_MATRIX: readonly XtendCatalogConstant[] | XtendCatalogConstant;
12
+ export declare const EPIC14_LSP_HANDOFF_CONTRACT: string;
13
+ export declare const EPIC14_LSP_HANDOFF_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
14
+ export declare const EPIC14_LSP_HANDOFF_LOCAL_GATE: string;
15
+ export declare const EPIC14_LSP_HANDOFF_MODULE: string;
16
+ export declare const EPIC14_LSP_HANDOFF_PACKAGE_SCRIPT: string;
17
+ export declare const EPIC14_LSP_HANDOFF_REPORT_SCHEMA: string;
18
+ export declare const EPIC14_LSP_HANDOFF_SCHEMA: string;
19
+ export declare const EPIC14_LSP_HANDOFF_STATUS: string;
20
+ export declare const EPIC14_LSP_HANDOFF_SUITE: string;
21
+ export declare const EPIC14_LSP_HANDOFF_WORKPACKAGE: string;
22
+ export declare const EPIC14_LSP_HANDOFF_WORKPACKAGE_DOC: XtendCatalogConstant;
23
+ export declare const FOLLOW_UP_EPIC_CANDIDATES: XtendCatalogConstant;
24
+ export declare const KERNEL_BOUNDARY: XtendCatalogConstant;
25
+ export declare const KNOWN_LIMITATIONS: XtendCatalogConstant;
26
+ export declare function createEpic14LspHandoffPlan(options?: XtendCatalogOptions): XtendCatalogPlan;
27
+ export declare function createEpic14LspHandoffReport(options?: XtendCatalogOptions): XtendCatalogReport;
28
+ export declare function validateEpic14LspHandoffPlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,312 @@
1
+ const EPIC14_LSP_HANDOFF_SCHEMA = 'xtend.epic14.lsp-handoff.v1';
2
+ const EPIC14_LSP_HANDOFF_REPORT_SCHEMA = 'xtend.epic14.lsp-handoff-report.v1';
3
+ const EPIC14_LSP_HANDOFF_WORKPACKAGE = 'WP-E14-16';
4
+ const EPIC14_LSP_HANDOFF_STATUS = 'accepted-epic14-closure';
5
+ const EPIC14_LSP_HANDOFF_MODULE = 'catalog/epic14-lsp-handoff.js';
6
+ const EPIC14_LSP_HANDOFF_CONTRACT = 'development/XTendRMT-Epic14-Abschluss-und-LSP-Handoff.md';
7
+ const EPIC14_LSP_HANDOFF_WORKPACKAGE_DOC = 'development/WP-E14-16-Epic-Abschlussreview-und-Upstream-Handoff-erstellen.md';
8
+ const EPIC14_LSP_HANDOFF_DOCS = 'docs/rmt-language-server.md';
9
+ const EPIC14_LSP_HANDOFF_SUITE = 'tests/platform/epic14_lsp_handoff_suite.js';
10
+ const EPIC14_LSP_HANDOFF_LOCAL_GATE = 'node scripts/run_xtend_tests.js epic14-lsp-handoff --json';
11
+ const EPIC14_LSP_HANDOFF_PACKAGE_SCRIPT = 'npm run test:epic14-lsp-handoff';
12
+ const KERNEL_BOUNDARY = 'no-rmt-kernel-import-of-xtend-types';
13
+
14
+ const CAPABILITY_MATRIX = Object.freeze([
15
+ {
16
+ id: 'diagnostics',
17
+ protocol: 'textDocument/publishDiagnostics',
18
+ status: 'implemented',
19
+ source: 'xtend.rmt.linter.rule-engine.v1',
20
+ gate: 'rmt-linter-rules'
21
+ },
22
+ {
23
+ id: 'completion',
24
+ protocol: 'textDocument/completion',
25
+ status: 'implemented',
26
+ source: 'xtend.rmt.completion-provider.v1',
27
+ gate: 'rmt-completions'
28
+ },
29
+ {
30
+ id: 'hover',
31
+ protocol: 'textDocument/hover',
32
+ status: 'implemented',
33
+ source: 'xtend.rmt.hover-provider.v1',
34
+ gate: 'rmt-navigation'
35
+ },
36
+ {
37
+ id: 'documentSymbols',
38
+ protocol: 'textDocument/documentSymbol',
39
+ status: 'implemented',
40
+ source: 'xtend.rmt.document-symbols-provider.v1',
41
+ gate: 'rmt-navigation'
42
+ },
43
+ {
44
+ id: 'definition',
45
+ protocol: 'textDocument/definition',
46
+ status: 'implemented',
47
+ source: 'xtend.rmt.definition-provider.v1',
48
+ gate: 'rmt-navigation'
49
+ },
50
+ {
51
+ id: 'codeActions',
52
+ protocol: 'textDocument/codeAction',
53
+ status: 'implemented',
54
+ source: 'xtend.rmt.code-action-provider.v1',
55
+ gate: 'rmt-code-actions'
56
+ },
57
+ {
58
+ id: 'agentRepairReport',
59
+ protocol: 'cli-agent-report',
60
+ status: 'implemented',
61
+ source: 'xtend.rmt.ai-agent-repair-report.v1',
62
+ gate: 'rmt-agent-report'
63
+ },
64
+ {
65
+ id: 'snippets',
66
+ protocol: 'editor-packaging',
67
+ status: 'implemented',
68
+ source: 'xtend.rmt.snippet-catalog.v1',
69
+ gate: 'rmt-editor-packaging'
70
+ },
71
+ {
72
+ id: 'workspaceSymbols',
73
+ protocol: 'workspace/symbol',
74
+ status: 'planned',
75
+ source: 'project-index-follow-up',
76
+ gate: 'future'
77
+ },
78
+ {
79
+ id: 'rename',
80
+ protocol: 'textDocument/rename',
81
+ status: 'planned',
82
+ source: 'safe-refactor-follow-up',
83
+ gate: 'future'
84
+ },
85
+ {
86
+ id: 'references',
87
+ protocol: 'textDocument/references',
88
+ status: 'planned',
89
+ source: 'project-index-follow-up',
90
+ gate: 'future'
91
+ },
92
+ {
93
+ id: 'semanticTokens',
94
+ protocol: 'textDocument/semanticTokens',
95
+ status: 'planned',
96
+ source: 'syntax-highlighting-follow-up',
97
+ gate: 'future'
98
+ },
99
+ {
100
+ id: 'formatting',
101
+ protocol: 'textDocument/formatting',
102
+ status: 'planned',
103
+ source: 'formatter-follow-up',
104
+ gate: 'future'
105
+ }
106
+ ]);
107
+
108
+ const KNOWN_LIMITATIONS = Object.freeze([
109
+ {
110
+ id: 'json-based-dsl',
111
+ status: 'accepted-for-mvp',
112
+ followUp: 'friendlier-rmt-syntax',
113
+ note: 'RMT bleibt vorerst JSON-basiert; eine lesbarere DSL-Syntax wird als Folge-Epic geplant.'
114
+ },
115
+ {
116
+ id: 'formatter-not-released',
117
+ status: 'planned',
118
+ followUp: 'rmt-formatter',
119
+ note: 'Formatierung ist vorbereitet, aber nicht produktiv freigegeben.'
120
+ },
121
+ {
122
+ id: 'file-local-index',
123
+ status: 'accepted-for-mvp',
124
+ followUp: 'workspace-project-index',
125
+ note: 'Der MVP indexiert einzelne Dokumente stabil; projektweite Symbolsuche folgt separat.'
126
+ },
127
+ {
128
+ id: 'editor-marketplace-packaging',
129
+ status: 'planned',
130
+ followUp: 'editor-marketplace-packaging',
131
+ note: 'VS-Code-Bridge und generische LSP-Setups sind vorhanden; Marketplace-Publishing ist nicht Teil von Epic 14.'
132
+ },
133
+ {
134
+ id: 'no-runtime-execution',
135
+ status: 'intentional-boundary',
136
+ followUp: 'none',
137
+ note: 'Tooling fuehrt keine XTend-Komponenten aus und startet keinen XRouter.'
138
+ },
139
+ {
140
+ id: 'legacy-rmt-json-fallback',
141
+ status: 'warning-only',
142
+ followUp: 'migration-assist',
143
+ note: '.rmt.json bleibt lesbar, wird aber per Linter als Fallback markiert.'
144
+ }
145
+ ]);
146
+
147
+ const FOLLOW_UP_EPIC_CANDIDATES = Object.freeze([
148
+ {
149
+ id: 'rmt-dsl-syntax-and-formatter',
150
+ title: 'RMT DSL Syntax, Formatter und Writer API',
151
+ goal: 'RMT von JSON-kompatiblem Authoring zu einer lesbareren DSL mit stabiler Formatierung weiterentwickeln.'
152
+ },
153
+ {
154
+ id: 'rmt-project-index-and-refactors',
155
+ title: 'RMT Project Index, Rename und References',
156
+ goal: 'Workspace-weite Navigation, Rename, References und Symbolsuche aufbauen.'
157
+ },
158
+ {
159
+ id: 'rmt-editor-packages',
160
+ title: 'Editor Packages und Marketplace Distribution',
161
+ goal: 'VS Code, JetBrains, Neovim und Helix Packaging von der generischen LSP-Anbindung in installierbare Pakete ueberfuehren.'
162
+ }
163
+ ]);
164
+
165
+ function summarizeCapabilities(capabilities) {
166
+ return capabilities.reduce((summary, capability) => {
167
+ summary.byStatus[capability.status] = (summary.byStatus[capability.status] || 0) + 1;
168
+ return summary;
169
+ }, {
170
+ count: capabilities.length,
171
+ byStatus: {}
172
+ });
173
+ }
174
+
175
+ function createEpic14LspHandoffPlan(options = {}) {
176
+ const capabilities = (options.capabilities || CAPABILITY_MATRIX).map((capability) => ({ ...capability }));
177
+ const limitations = (options.limitations || KNOWN_LIMITATIONS).map((limitation) => ({ ...limitation }));
178
+ const followUps = (options.followUps || FOLLOW_UP_EPIC_CANDIDATES).map((entry) => ({ ...entry }));
179
+
180
+ return {
181
+ schema: EPIC14_LSP_HANDOFF_SCHEMA,
182
+ reportSchema: EPIC14_LSP_HANDOFF_REPORT_SCHEMA,
183
+ workpackage: EPIC14_LSP_HANDOFF_WORKPACKAGE,
184
+ status: EPIC14_LSP_HANDOFF_STATUS,
185
+ generatedAt: options.generatedAt || 'static-local',
186
+ module: EPIC14_LSP_HANDOFF_MODULE,
187
+ contract: EPIC14_LSP_HANDOFF_CONTRACT,
188
+ workpackageDocument: EPIC14_LSP_HANDOFF_WORKPACKAGE_DOC,
189
+ docs: EPIC14_LSP_HANDOFF_DOCS,
190
+ suite: EPIC14_LSP_HANDOFF_SUITE,
191
+ localGate: EPIC14_LSP_HANDOFF_LOCAL_GATE,
192
+ packageScript: EPIC14_LSP_HANDOFF_PACKAGE_SCRIPT,
193
+ toolingGate: 'npm run test:rmt-tooling',
194
+ releaseGate: 'npm run test:release:full:report',
195
+ completionState: 'rmt-authoring-tooling-ready',
196
+ acceptedContracts: [
197
+ 'xtend.rmt.source-model.v1',
198
+ 'xtend.rmt.parser.v1',
199
+ 'xtend.rmt.format-adapter.v1',
200
+ 'xtend.rmt.semantic-graph.v1',
201
+ 'xtend.rmt.linter.rule-engine.v1',
202
+ 'xtend.rmt.linter.cli.v1',
203
+ 'xtend.rmt.completion-provider.v1',
204
+ 'xtend.rmt.navigation-provider.v1',
205
+ 'xtend.rmt.language-server.v1',
206
+ 'xtend.rmt.code-action-provider.v1',
207
+ 'xtend.rmt.ai-agent-repair-report.v1',
208
+ 'xtend.rmt.editor-packaging.v1',
209
+ 'xtend.rmt.language-regression.v1',
210
+ 'xtend.rmt.tooling-docs.v1',
211
+ 'xtend.epic14.rmt-tooling.v1'
212
+ ],
213
+ capabilities,
214
+ knownLimitations: limitations,
215
+ followUpEpicCandidates: followUps,
216
+ summary: {
217
+ capabilities: summarizeCapabilities(capabilities),
218
+ knownLimitations: limitations.length,
219
+ followUpEpicCandidates: followUps.length
220
+ },
221
+ kernelBoundary: KERNEL_BOUNDARY,
222
+ networkRequired: false,
223
+ handoffTo: 'next-rmt-dsl-syntax-formatter-project-index-epic'
224
+ };
225
+ }
226
+
227
+ function validateEpic14LspHandoffPlan(plan) {
228
+ const failures = [];
229
+ const capabilityIds = new Set((plan && plan.capabilities || []).map((capability) => capability.id));
230
+ const limitationIds = new Set((plan && plan.knownLimitations || []).map((limitation) => limitation.id));
231
+
232
+ if (!plan || plan.schema !== EPIC14_LSP_HANDOFF_SCHEMA) {
233
+ failures.push('schema');
234
+ }
235
+ if (plan && plan.workpackage !== EPIC14_LSP_HANDOFF_WORKPACKAGE) {
236
+ failures.push('workpackage');
237
+ }
238
+ if (plan && plan.status !== EPIC14_LSP_HANDOFF_STATUS) {
239
+ failures.push('status');
240
+ }
241
+ if (plan && plan.kernelBoundary !== KERNEL_BOUNDARY) {
242
+ failures.push('kernelBoundary');
243
+ }
244
+ if (!plan || plan.networkRequired !== false) {
245
+ failures.push('networkRequired');
246
+ }
247
+ ['diagnostics', 'completion', 'hover', 'documentSymbols', 'definition', 'codeActions', 'agentRepairReport', 'snippets'].forEach((capability) => {
248
+ if (!capabilityIds.has(capability)) {
249
+ failures.push(`capability:${capability}`);
250
+ }
251
+ });
252
+ ['workspaceSymbols', 'rename', 'references', 'semanticTokens', 'formatting'].forEach((capability) => {
253
+ const entry = (plan && plan.capabilities || []).find((candidate) => candidate.id === capability);
254
+ if (!entry || entry.status !== 'planned') {
255
+ failures.push(`plannedCapability:${capability}`);
256
+ }
257
+ });
258
+ ['json-based-dsl', 'formatter-not-released', 'file-local-index', 'editor-marketplace-packaging', 'no-runtime-execution'].forEach((limitation) => {
259
+ if (!limitationIds.has(limitation)) {
260
+ failures.push(`limitation:${limitation}`);
261
+ }
262
+ });
263
+ if (!plan || !Array.isArray(plan.followUpEpicCandidates) || plan.followUpEpicCandidates.length < 2) {
264
+ failures.push('followUpEpicCandidates');
265
+ }
266
+
267
+ return {
268
+ schema: EPIC14_LSP_HANDOFF_REPORT_SCHEMA,
269
+ ok: failures.length === 0,
270
+ failures
271
+ };
272
+ }
273
+
274
+ function createEpic14LspHandoffReport(options = {}) {
275
+ const plan = options.plan || createEpic14LspHandoffPlan(options);
276
+ const validation = validateEpic14LspHandoffPlan(plan);
277
+
278
+ return {
279
+ schema: EPIC14_LSP_HANDOFF_REPORT_SCHEMA,
280
+ ok: validation.ok,
281
+ workpackage: EPIC14_LSP_HANDOFF_WORKPACKAGE,
282
+ status: validation.ok ? 'passed' : 'failed',
283
+ localGate: EPIC14_LSP_HANDOFF_LOCAL_GATE,
284
+ completionState: plan.completionState,
285
+ implementedCapabilities: plan.capabilities.filter((capability) => capability.status === 'implemented').map((capability) => capability.id),
286
+ plannedCapabilities: plan.capabilities.filter((capability) => capability.status === 'planned').map((capability) => capability.id),
287
+ knownLimitations: plan.knownLimitations.map((limitation) => limitation.id),
288
+ followUpEpicCandidates: plan.followUpEpicCandidates.map((entry) => entry.id),
289
+ failures: validation.failures
290
+ };
291
+ }
292
+
293
+ module.exports = {
294
+ CAPABILITY_MATRIX,
295
+ EPIC14_LSP_HANDOFF_CONTRACT,
296
+ EPIC14_LSP_HANDOFF_DOCS,
297
+ EPIC14_LSP_HANDOFF_LOCAL_GATE,
298
+ EPIC14_LSP_HANDOFF_MODULE,
299
+ EPIC14_LSP_HANDOFF_PACKAGE_SCRIPT,
300
+ EPIC14_LSP_HANDOFF_REPORT_SCHEMA,
301
+ EPIC14_LSP_HANDOFF_SCHEMA,
302
+ EPIC14_LSP_HANDOFF_STATUS,
303
+ EPIC14_LSP_HANDOFF_SUITE,
304
+ EPIC14_LSP_HANDOFF_WORKPACKAGE,
305
+ EPIC14_LSP_HANDOFF_WORKPACKAGE_DOC,
306
+ FOLLOW_UP_EPIC_CANDIDATES,
307
+ KERNEL_BOUNDARY,
308
+ KNOWN_LIMITATIONS,
309
+ createEpic14LspHandoffPlan,
310
+ createEpic14LspHandoffReport,
311
+ validateEpic14LspHandoffPlan
312
+ };
@@ -0,0 +1,33 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogGate,
4
+ XtendCatalogOptions,
5
+ XtendCatalogPlan,
6
+ XtendCatalogRecord,
7
+ XtendCatalogReport
8
+ } from './catalog-public-types';
9
+
10
+
11
+ export declare const EPIC14_RMT_TOOLING_BUNDLE_REPORT_SCRIPT: XtendCatalogConstant;
12
+ export declare const EPIC14_RMT_TOOLING_BUNDLE_SCRIPT: XtendCatalogConstant;
13
+ export declare const EPIC14_RMT_TOOLING_CONTRACT: string;
14
+ export declare const EPIC14_RMT_TOOLING_DOCS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
15
+ export declare const EPIC14_RMT_TOOLING_GATE_RECORD_SCHEMA: string;
16
+ export declare const EPIC14_RMT_TOOLING_LOCAL_GATE: string;
17
+ export declare const EPIC14_RMT_TOOLING_MODULE: string;
18
+ export declare const EPIC14_RMT_TOOLING_PACKAGE_SCRIPT: string;
19
+ export declare const EPIC14_RMT_TOOLING_PR_REPORT_SCRIPT: XtendCatalogConstant;
20
+ export declare const EPIC14_RMT_TOOLING_PR_SCRIPT: XtendCatalogConstant;
21
+ export declare const EPIC14_RMT_TOOLING_REPORT_SCHEMA: string;
22
+ export declare const EPIC14_RMT_TOOLING_SCHEMA: string;
23
+ export declare const EPIC14_RMT_TOOLING_STATUS: string;
24
+ export declare const EPIC14_RMT_TOOLING_SUITE: string;
25
+ export declare const EPIC14_RMT_TOOLING_WORKPACKAGE: string;
26
+ export declare const EPIC14_RMT_TOOLING_WORKPACKAGE_DOC: XtendCatalogConstant;
27
+ export declare const KERNEL_BOUNDARY: XtendCatalogConstant;
28
+ export declare const RMT_TOOLING_EXPORTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
29
+ export declare const RMT_TOOLING_OPTIONAL_PR_SUITE_IDS: XtendCatalogConstant;
30
+ export declare const RMT_TOOLING_SUITE_IDS: XtendCatalogConstant;
31
+ export declare function createEpic14RmtToolingGatePlan(options?: XtendCatalogOptions): XtendCatalogPlan;
32
+ export declare function createEpic14RmtToolingGateReport(options?: XtendCatalogOptions): XtendCatalogReport;
33
+ export declare function validateEpic14RmtToolingGatePlan(plan?: unknown): XtendCatalogReport;