@ccslabs/xtend 0.1.0-rc.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +4 -0
- package/catalog/component-catalog-coverage.js +2 -0
- package/catalog/epic13-package-export-lock.js +11 -1
- package/catalog/epic13-rmt-production-readiness.js +0 -1
- package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
- package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
- package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
- package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
- package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
- package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
- package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
- package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
- package/catalog/epic18-rmt-component-template-primitives.js +240 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
- package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
- package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
- package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
- package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
- package/catalog/surface-manager-controller.js +5 -1
- package/catalog/surface-manager-materialization.js +7 -1
- package/catalog/surface-manager-overlay-bridge.js +41 -6
- package/catalog/surface-manager-workbench-fixture.js +1 -1
- package/catalog/surface-type-capability-matrix.d.ts +61 -0
- package/catalog/surface-type-capability-matrix.js +183 -0
- package/catalog/type-exports-rmt.js +37 -1
- package/catalog/type-exports.js +3 -3
- package/components/icon-packs/lucide.js +4 -0
- package/components/manifest.json +2 -0
- package/components/prism-rmt.d.ts +34 -0
- package/components/prism-rmt.js +130 -0
- package/components/xcards.js +15 -0
- package/components/xcode.d.ts +36 -1
- package/components/xcode.js +215 -20
- package/components/xfooter.js +17 -0
- package/components/xheader.js +14 -0
- package/components/xhero.js +16 -1
- package/components/xlink.js +97 -14
- package/components/xmasonry.js +15 -0
- package/components/xplayer.d.ts +44 -2
- package/components/xplayer.js +242 -15
- package/components/xrouter.js +27 -2
- package/components/xsection.js +15 -0
- package/components/xsidepanel.js +10 -2
- package/components/xsurfacemanager-controller.d.ts +2 -1
- package/components/xsurfacemanager-controller.js +27 -3
- package/components/xsurfacemanager.d.ts +2 -0
- package/components/xsurfacemanager.js +20 -8
- package/components/xsurfaceoverlay-bridge.d.ts +20 -5
- package/components/xsurfaceoverlay-bridge.js +114 -18
- package/components/xsurfaceportal.d.ts +29 -0
- package/components/xsurfaceportal.js +122 -0
- package/components/xsurfaceregion.d.ts +50 -0
- package/components/xsurfaceregion.js +285 -0
- package/components/xsurfacewindow.js +2 -1
- package/components/xtooltip.js +89 -23
- package/docs/README.md +222 -298
- package/docs/changelog.md +107 -0
- package/docs/component-catalog-coverage.md +9 -9
- package/docs/component-platform.md +19 -1
- package/docs/component-ux-app-authoring.md +56 -63
- package/docs/components/xcode.md +83 -53
- package/docs/components/xsurfaceportal.md +32 -0
- package/docs/components/xsurfaceregion.md +37 -0
- package/docs/components.md +105 -69
- package/docs/de/README.md +264 -0
- package/docs/de/XTend-ADR.md +221 -0
- package/docs/de/a11y-keyboard-smokes.md +62 -0
- package/docs/de/about.md +18 -0
- package/docs/de/api.md +157 -0
- package/docs/de/best-practices.md +76 -0
- package/docs/de/changelog.md +107 -0
- package/docs/de/component-catalog-coverage.md +58 -0
- package/docs/de/component-lab.md +103 -0
- package/docs/de/component-long-tail-migration.md +41 -0
- package/docs/de/component-platform.md +177 -0
- package/docs/de/component-ux-app-authoring.md +123 -0
- package/docs/de/component-ux-authoring.md +96 -0
- package/docs/de/component-ux-gates.md +45 -0
- package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/de/components/xalert.md +81 -0
- package/docs/de/components/xbutton.md +103 -0
- package/docs/de/components/xcalendar.md +82 -0
- package/docs/de/components/xcards.md +128 -0
- package/docs/de/components/xcheckbox.md +102 -0
- package/docs/de/components/xcode.md +156 -0
- package/docs/de/components/xdialog.md +92 -0
- package/docs/de/components/xdrawer.md +84 -0
- package/docs/de/components/xfooter.md +126 -0
- package/docs/de/components/xform.md +128 -0
- package/docs/de/components/xheader.md +308 -0
- package/docs/de/components/xhero.md +142 -0
- package/docs/de/components/xicon.md +125 -0
- package/docs/de/components/xinput.md +129 -0
- package/docs/de/components/xlightbox.md +98 -0
- package/docs/de/components/xlink.md +109 -0
- package/docs/de/components/xmasonry.md +124 -0
- package/docs/de/components/xmenu.md +158 -0
- package/docs/de/components/xmodal.md +82 -0
- package/docs/de/components/xplayer.md +104 -0
- package/docs/de/components/xpopover.md +67 -0
- package/docs/de/components/xprogress.md +56 -0
- package/docs/de/components/xradio.md +103 -0
- package/docs/de/components/xrouter.md +260 -0
- package/docs/de/components/xsection.md +125 -0
- package/docs/de/components/xselect.md +105 -0
- package/docs/de/components/xsidepanel.md +30 -0
- package/docs/de/components/xspinner.md +102 -0
- package/docs/de/components/xstate.md +148 -0
- package/docs/de/components/xstatus.md +55 -0
- package/docs/de/components/xsummary.md +78 -0
- package/docs/de/components/xsurfacemanager.md +27 -0
- package/docs/de/components/xsurfacewindow.md +21 -0
- package/docs/de/components/xtabs.md +160 -0
- package/docs/de/components/xtextarea.md +98 -0
- package/docs/de/components/xtheme.md +167 -0
- package/docs/de/components/xtoast.md +62 -0
- package/docs/de/components/xtooltip.md +66 -0
- package/docs/de/components/xtype.md +82 -0
- package/docs/de/components/xutils.md +144 -0
- package/docs/de/components/xwriter.md +94 -0
- package/docs/de/components.md +153 -0
- package/docs/de/conditional-network-evidence-ci.md +38 -0
- package/docs/de/conditional-network-evidence.md +50 -0
- package/docs/de/core-migration-guide.md +110 -0
- package/docs/de/design-tokens.md +116 -0
- package/docs/de/docs-rmt-production-hardening.md +31 -0
- package/docs/de/enterprise-adoption.md +413 -0
- package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/de/epic10-platform-gates.md +62 -0
- package/docs/de/epic10-release-handoff.md +81 -0
- package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/de/epic12-rc0-handoff.md +61 -0
- package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/de/epic18-vendor-bugfixes.md +34 -0
- package/docs/de/existing-component-metadata.md +67 -0
- package/docs/de/hydration-performance-closure.md +34 -0
- package/docs/de/hydration-policies.md +71 -0
- package/docs/de/known-residual-triage.md +22 -0
- package/docs/de/manifest-import-policy.md +79 -0
- package/docs/de/manifest.md +112 -0
- package/docs/de/motion-contrast.md +67 -0
- package/docs/de/package-export-lock.md +44 -0
- package/docs/de/performance-measurements.md +106 -0
- package/docs/de/performance-regression.md +89 -0
- package/docs/de/performance.md +94 -0
- package/docs/de/previews/README.md +17 -0
- package/docs/de/prod-browser-csp-smokes.md +40 -0
- package/docs/de/public-component-types.md +79 -0
- package/docs/de/quick-start-guide.md +220 -0
- package/docs/de/rc0-adoption-guide.md +102 -0
- package/docs/de/rc0-gate-matrix.md +58 -0
- package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/de/rc1-migration-notes.md +69 -0
- package/docs/de/rc1-readiness.md +46 -0
- package/docs/de/release-owner-acceptance.md +56 -0
- package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/de/rmt-action-effect-runtime.md +81 -0
- package/docs/de/rmt-app-platform-authoring.md +54 -0
- package/docs/de/rmt-app-platform-fixture.md +46 -0
- package/docs/de/rmt-app-platform-migration-guide.md +88 -0
- package/docs/de/rmt-app-platform-tooling.md +79 -0
- package/docs/de/rmt-component-template-primitives.md +57 -0
- package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/de/rmt-dsl-authoring-polish.md +145 -0
- package/docs/de/rmt-event-routing-runtime.md +81 -0
- package/docs/de/rmt-first-demo-app.md +77 -0
- package/docs/de/rmt-first-xtend-apps.md +129 -0
- package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/de/rmt-language-server.md +234 -0
- package/docs/de/rmt-lifecycle-demo.md +24 -0
- package/docs/de/rmt-linter.md +140 -0
- package/docs/de/rmt-node-ssr-adapter.md +100 -0
- package/docs/de/rmt-php-ssr-adapter.md +120 -0
- package/docs/de/rmt-production-readiness.md +63 -0
- package/docs/de/rmt-state-selector-runtime.md +47 -0
- package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/de/rmt-tooling-release-gates.md +77 -0
- package/docs/de/rmt-vnext-authoring.md +170 -0
- package/docs/de/rmt-vnext-component-primitives.md +188 -0
- package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/de/rmt-vnext-migration-notes.md +62 -0
- package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/de/rmt-vnext-primitive-migration.md +119 -0
- package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
- package/docs/de/rmt-vnext-release-handoff.md +83 -0
- package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
- package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/de/screenreader-signals.md +56 -0
- package/docs/de/supply-chain-gates.md +100 -0
- package/docs/de/surface-manager-authoring-guide.md +94 -0
- package/docs/de/surface-manager-browser-lab.md +45 -0
- package/docs/de/surface-manager-component-lab.md +43 -0
- package/docs/de/surface-manager-controller.md +66 -0
- package/docs/de/surface-manager-layout-engines.md +32 -0
- package/docs/de/surface-manager-lazy-hydration.md +63 -0
- package/docs/de/surface-manager-migration-guide.md +122 -0
- package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/de/surface-manager-overlay-bridge.md +53 -0
- package/docs/de/surface-manager-persistence.md +30 -0
- package/docs/de/surface-manager-quality-gates.md +51 -0
- package/docs/de/surface-manager-release-handoff.md +68 -0
- package/docs/de/surface-manager-remote-policy.md +54 -0
- package/docs/de/surface-manager-rmt-authoring.md +102 -0
- package/docs/de/surface-manager-route-lifecycle.md +59 -0
- package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/de/surface-manager-side-panel-runtime.md +36 -0
- package/docs/de/surface-manager-stack-policy.md +39 -0
- package/docs/de/surface-manager-window-runtime.md +47 -0
- package/docs/de/surface-manager-workbench-fixture.md +43 -0
- package/docs/de/third-party-design-authoring.md +406 -0
- package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/de/trusted-dom-sanitizing.md +110 -0
- package/docs/de/type-exports.md +61 -0
- package/docs/de/typescript-components.md +63 -0
- package/docs/de/visual-browser-regression.md +83 -0
- package/docs/de/visual-owner-artifacts.md +46 -0
- package/docs/de/visual-snapshot-automation.md +87 -0
- package/docs/de/xtend-api-types.md +55 -0
- package/docs/de/xtend-builder-types.md +55 -0
- package/docs/de/xtend-catalog-types.md +44 -0
- package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/de/xtend-fabric.md +474 -0
- package/docs/de/xtend-loader-types.md +58 -0
- package/docs/de/xtend-loader.md +265 -0
- package/docs/de/xtend-policy-types.md +38 -0
- package/docs/de/xtend-rmt-types.md +40 -0
- package/docs/de/xtend-vendor-types.md +36 -0
- package/docs/de/xtendrmt-app-dsl.md +334 -0
- package/docs/de/xtendrmt-migration-guide.md +266 -0
- package/docs/de/xtendrmt-native-authoring.md +333 -0
- package/docs/de/xtendrmt-overview.md +109 -0
- package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/de/xtendrmt-runtime-bridge.md +155 -0
- package/docs/en/README.md +163 -0
- package/docs/en/XTend-ADR.md +221 -0
- package/docs/en/a11y-keyboard-smokes.md +68 -0
- package/docs/en/about.md +25 -0
- package/docs/en/api.md +171 -0
- package/docs/en/best-practices.md +125 -0
- package/docs/en/changelog.md +104 -0
- package/docs/en/component-catalog-coverage.md +104 -0
- package/docs/en/component-lab.md +103 -0
- package/docs/en/component-long-tail-migration.md +41 -0
- package/docs/en/component-platform.md +243 -0
- package/docs/en/component-ux-app-authoring.md +118 -0
- package/docs/en/component-ux-authoring.md +96 -0
- package/docs/en/component-ux-gates.md +45 -0
- package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
- package/docs/en/components/xalert.md +94 -0
- package/docs/en/components/xbutton.md +118 -0
- package/docs/en/components/xcalendar.md +95 -0
- package/docs/en/components/xcards.md +139 -0
- package/docs/en/components/xcheckbox.md +118 -0
- package/docs/en/components/xcode.md +153 -0
- package/docs/en/components/xdialog.md +108 -0
- package/docs/en/components/xdrawer.md +110 -0
- package/docs/en/components/xfooter.md +138 -0
- package/docs/en/components/xform.md +147 -0
- package/docs/en/components/xheader.md +308 -0
- package/docs/en/components/xhero.md +157 -0
- package/docs/en/components/xicon.md +149 -0
- package/docs/en/components/xinput.md +147 -0
- package/docs/en/components/xlightbox.md +113 -0
- package/docs/en/components/xlink.md +130 -0
- package/docs/en/components/xmasonry.md +136 -0
- package/docs/en/components/xmenu.md +185 -0
- package/docs/en/components/xmodal.md +102 -0
- package/docs/en/components/xplayer.md +114 -0
- package/docs/en/components/xpopover.md +87 -0
- package/docs/en/components/xprogress.md +73 -0
- package/docs/en/components/xradio.md +119 -0
- package/docs/en/components/xrouter.md +260 -0
- package/docs/en/components/xsection.md +136 -0
- package/docs/en/components/xselect.md +122 -0
- package/docs/en/components/xsidepanel.md +48 -0
- package/docs/en/components/xspinner.md +118 -0
- package/docs/en/components/xstate.md +163 -0
- package/docs/en/components/xstatus.md +71 -0
- package/docs/en/components/xsummary.md +90 -0
- package/docs/en/components/xsurfacemanager.md +42 -0
- package/docs/en/components/xsurfacewindow.md +31 -0
- package/docs/en/components/xtabs.md +187 -0
- package/docs/en/components/xtextarea.md +115 -0
- package/docs/en/components/xtheme.md +203 -0
- package/docs/en/components/xtoast.md +78 -0
- package/docs/en/components/xtooltip.md +85 -0
- package/docs/en/components/xtype.md +91 -0
- package/docs/en/components/xutils.md +161 -0
- package/docs/en/components/xwriter.md +106 -0
- package/docs/en/components.md +151 -0
- package/docs/en/conditional-network-evidence-ci.md +38 -0
- package/docs/en/conditional-network-evidence.md +50 -0
- package/docs/en/core-migration-guide.md +110 -0
- package/docs/en/design-tokens.md +137 -0
- package/docs/en/docs-rmt-production-hardening.md +31 -0
- package/docs/en/enterprise-adoption.md +413 -0
- package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/en/epic10-platform-gates.md +62 -0
- package/docs/en/epic10-release-handoff.md +81 -0
- package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/en/epic12-rc0-handoff.md +61 -0
- package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
- package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
- package/docs/en/epic18-vendor-bugfixes.md +29 -0
- package/docs/en/existing-component-metadata.md +67 -0
- package/docs/en/hydration-performance-closure.md +34 -0
- package/docs/en/hydration-policies.md +75 -0
- package/docs/en/known-residual-triage.md +22 -0
- package/docs/en/manifest-import-policy.md +81 -0
- package/docs/en/manifest.md +135 -0
- package/docs/en/motion-contrast.md +67 -0
- package/docs/en/package-export-lock.md +44 -0
- package/docs/en/performance-measurements.md +106 -0
- package/docs/en/performance-regression.md +89 -0
- package/docs/en/performance.md +132 -0
- package/docs/en/previews/README.md +17 -0
- package/docs/en/prod-browser-csp-smokes.md +40 -0
- package/docs/en/public-component-types.md +79 -0
- package/docs/en/quick-start-guide.md +189 -0
- package/docs/en/rc0-adoption-guide.md +102 -0
- package/docs/en/rc0-gate-matrix.md +58 -0
- package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/en/rc1-migration-notes.md +69 -0
- package/docs/en/rc1-readiness.md +46 -0
- package/docs/en/release-owner-acceptance.md +56 -0
- package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/en/rmt-action-effect-runtime.md +101 -0
- package/docs/en/rmt-app-platform-authoring.md +47 -0
- package/docs/en/rmt-app-platform-fixture.md +35 -0
- package/docs/en/rmt-app-platform-migration-guide.md +75 -0
- package/docs/en/rmt-app-platform-tooling.md +58 -0
- package/docs/en/rmt-component-template-primitives.md +49 -0
- package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
- package/docs/en/rmt-dsl-authoring-polish.md +143 -0
- package/docs/en/rmt-event-routing-runtime.md +98 -0
- package/docs/en/rmt-first-demo-app.md +87 -0
- package/docs/en/rmt-first-xtend-apps.md +127 -0
- package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
- package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
- package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
- package/docs/en/rmt-language-server.md +243 -0
- package/docs/en/rmt-lifecycle-demo.md +23 -0
- package/docs/en/rmt-linter.md +146 -0
- package/docs/en/rmt-node-ssr-adapter.md +99 -0
- package/docs/en/rmt-php-ssr-adapter.md +118 -0
- package/docs/en/rmt-production-readiness.md +63 -0
- package/docs/en/rmt-state-selector-runtime.md +34 -0
- package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
- package/docs/en/rmt-tooling-release-gates.md +77 -0
- package/docs/en/rmt-vnext-authoring.md +102 -0
- package/docs/en/rmt-vnext-component-primitives.md +185 -0
- package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
- package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
- package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
- package/docs/en/rmt-vnext-migration-notes.md +62 -0
- package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
- package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
- package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
- package/docs/en/rmt-vnext-primitive-migration.md +93 -0
- package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
- package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
- package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
- package/docs/en/rmt-vnext-release-handoff.md +83 -0
- package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
- package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
- package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
- package/docs/en/screenreader-signals.md +56 -0
- package/docs/en/supply-chain-gates.md +106 -0
- package/docs/en/surface-manager-authoring-guide.md +94 -0
- package/docs/en/surface-manager-browser-lab.md +45 -0
- package/docs/en/surface-manager-component-lab.md +43 -0
- package/docs/en/surface-manager-controller.md +66 -0
- package/docs/en/surface-manager-layout-engines.md +32 -0
- package/docs/en/surface-manager-lazy-hydration.md +63 -0
- package/docs/en/surface-manager-migration-guide.md +113 -0
- package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/en/surface-manager-overlay-bridge.md +53 -0
- package/docs/en/surface-manager-persistence.md +30 -0
- package/docs/en/surface-manager-quality-gates.md +51 -0
- package/docs/en/surface-manager-release-handoff.md +68 -0
- package/docs/en/surface-manager-remote-policy.md +54 -0
- package/docs/en/surface-manager-rmt-authoring.md +89 -0
- package/docs/en/surface-manager-route-lifecycle.md +59 -0
- package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/en/surface-manager-side-panel-runtime.md +36 -0
- package/docs/en/surface-manager-stack-policy.md +39 -0
- package/docs/en/surface-manager-window-runtime.md +47 -0
- package/docs/en/surface-manager-workbench-fixture.md +43 -0
- package/docs/en/third-party-design-authoring.md +406 -0
- package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/en/trusted-dom-sanitizing.md +124 -0
- package/docs/en/type-exports.md +61 -0
- package/docs/en/typescript-components.md +63 -0
- package/docs/en/visual-browser-regression.md +83 -0
- package/docs/en/visual-owner-artifacts.md +46 -0
- package/docs/en/visual-snapshot-automation.md +87 -0
- package/docs/en/xtend-api-types.md +55 -0
- package/docs/en/xtend-builder-types.md +55 -0
- package/docs/en/xtend-catalog-types.md +44 -0
- package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/en/xtend-fabric.md +474 -0
- package/docs/en/xtend-loader-types.md +58 -0
- package/docs/en/xtend-loader.md +265 -0
- package/docs/en/xtend-policy-types.md +38 -0
- package/docs/en/xtend-rmt-types.md +40 -0
- package/docs/en/xtend-vendor-types.md +36 -0
- package/docs/en/xtendrmt-app-dsl.md +331 -0
- package/docs/en/xtendrmt-migration-guide.md +256 -0
- package/docs/en/xtendrmt-native-authoring.md +336 -0
- package/docs/en/xtendrmt-overview.md +63 -0
- package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/en/xtendrmt-runtime-bridge.md +155 -0
- package/docs/enterprise-adoption.md +4 -2
- package/docs/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/epic18-vendor-bugfixes.md +34 -0
- package/docs/index.php +1056 -109
- package/docs/manifest.md +8 -2
- package/docs/menu.json +986 -133
- package/docs/package-export-lock.md +2 -2
- package/docs/public-component-types.md +2 -2
- package/docs/quick-start-guide.md +126 -58
- package/docs/rmt-action-effect-runtime.md +101 -0
- package/docs/rmt-app-platform-authoring.md +54 -0
- package/docs/rmt-app-platform-fixture.md +46 -0
- package/docs/rmt-app-platform-migration-guide.md +88 -0
- package/docs/rmt-app-platform-tooling.md +79 -0
- package/docs/rmt-component-template-primitives.md +57 -0
- package/docs/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/rmt-dsl-authoring-polish.md +67 -44
- package/docs/rmt-event-routing-runtime.md +98 -0
- package/docs/rmt-first-demo-app.md +2 -2
- package/docs/rmt-first-xtend-apps.md +70 -46
- package/docs/rmt-language-server.md +61 -4
- package/docs/rmt-lifecycle-demo.md +1 -2
- package/docs/rmt-node-ssr-adapter.md +144 -0
- package/docs/rmt-php-ssr-adapter.md +158 -0
- package/docs/rmt-state-selector-runtime.md +47 -0
- package/docs/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/rmt-vnext-authoring.md +128 -18
- package/docs/rmt-vnext-component-primitives.md +188 -0
- package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/rmt-vnext-primitive-migration.md +119 -0
- package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
- package/docs/rmt-vnext-release-handoff.md +14 -0
- package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
- package/docs/surface-manager-migration-guide.md +34 -6
- package/docs/surface-manager-overlay-bridge.md +9 -4
- package/docs/surface-manager-rmt-authoring.md +50 -34
- package/docs/surface-manager-workbench-fixture.md +1 -2
- package/docs/third-party-design-authoring.md +1 -1
- package/docs/type-exports.md +3 -3
- package/docs/utils/pageloader.js +811 -62
- package/docs/visual-browser-regression.md +1 -1
- package/docs/xtend-rmt-types.md +3 -2
- package/docs/xtendrmt-app-dsl.md +187 -122
- package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
- package/docs/xtendrmt-migration-guide.md +48 -17
- package/docs/xtendrmt-native-authoring.md +213 -217
- package/docs/xtendrmt-overview.md +81 -61
- package/docs/xtendrmt-parsedown-scheduling.md +23 -8
- package/fabric/package.json +1 -1
- package/package.json +684 -21
- package/tools/package.json +5 -1
- package/tools/rmt-editor/vscode/README.md +72 -5
- package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
- package/tools/rmt-editor/vscode/extension.d.ts +33 -0
- package/tools/rmt-editor/vscode/extension.js +1816 -7
- package/tools/rmt-editor/vscode/language-configuration.json +2 -1
- package/tools/rmt-editor/vscode/package.json +193 -2
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
- package/tools/rmt-editor/vscode/templates/launch.json +70 -0
- package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
- package/tools/rmt-language/app-platform-tooling.js +677 -0
- package/tools/rmt-language/completions.d.ts +5 -0
- package/tools/rmt-language/completions.js +185 -3
- package/tools/rmt-language/diagnostics.js +54 -0
- package/tools/rmt-language/hover.js +36 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
- package/tools/rmt-language/rules/app-platform-policy.js +39 -0
- package/tools/rmt-language/rules/index.js +5 -1
- package/tools/rmt-language/semantic-graph.d.ts +6 -0
- package/tools/rmt-language/semantic-graph.js +928 -0
- package/tools/rmt-language/snippets/index.js +44 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
- package/tools/rmt-language/vnext-compatibility.js +642 -0
- package/tools/rmt-language/vnext-compiler.d.ts +5 -0
- package/tools/rmt-language/vnext-compiler.js +863 -17
- package/tools/rmt-language/vnext-parser.js +725 -9
- package/tools/rmt-language/vnext-release.d.ts +1 -0
- package/tools/rmt-language/vnext-release.js +20 -0
- package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
- package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
- package/tools/rmt-language/vnext-surfaces.js +111 -52
- package/tools/rmt-language/vnext-tooling.d.ts +19 -1
- package/tools/rmt-language/vnext-tooling.js +1247 -5
- package/tools/rmt-language-server/protocol.js +3 -0
- package/tools/rmt-language-server/server.d.ts +2 -0
- package/tools/rmt-language-server/server.js +176 -22
- package/tools/rmt-linter/cli.d.ts +2 -0
- package/tools/rmt-linter/cli.js +62 -0
- package/xtend-builder/generators/registry.js +11 -0
- package/xtend-builder/generators/rmt-app-platform.js +239 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
- package/xtend-builder/lib/cli.js +38 -0
- package/xtend-builder/package.json +3 -3
- package/xtend-builder/scaffold.config.js +29 -2
- package/xtend.css +49 -2
- package/xtendrmt/package.json +49 -1
- package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
- package/xtendrmt/rmt-action-effect-runtime.js +494 -0
- package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
- package/xtendrmt/rmt-component-capability-registry.js +636 -0
- package/xtendrmt/rmt-core.d.ts +6 -0
- package/xtendrmt/rmt-core.esm.js +32 -6
- package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
- package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
- package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
- package/xtendrmt/rmt-event-routing-runtime.js +666 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
- package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
- package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
- package/xtendrmt/rmt-native-shell-runtime.js +309 -0
- package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
- package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
- package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
- package/xtendrmt/rmt-runtime.browser.js +32 -6
- package/xtendrmt/rmt-runtime.esm.js +32 -6
- package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
- package/xtendrmt/rmt-state-selector-runtime.js +866 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
- package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# RMT vNext Primitive Authoring Tooling
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext.primitive-authoring-tooling.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-07`
|
|
5
|
+
- Status: `completed`
|
|
6
|
+
- Quelle: Media-Manager-Downstream-Transfer, `2026-05-19`
|
|
7
|
+
|
|
8
|
+
## Ziel
|
|
9
|
+
|
|
10
|
+
`RMT-VNEXT-PRIM-07` macht die neue Primitive-Syntax in der Developer
|
|
11
|
+
Experience sichtbar. App-Autoren sollen State, Selectors, Actions, Events,
|
|
12
|
+
Surfaces, Portals, Overlays und Resources nicht in Legacy-JSON suchen muessen:
|
|
13
|
+
Completions, Hover, Document Symbols und Snippets fuehren direkt durch RMT
|
|
14
|
+
vNext.
|
|
15
|
+
|
|
16
|
+
## Tooling Surface
|
|
17
|
+
|
|
18
|
+
Die erste PRIM-07-Scheibe erweitert `tools/rmt-language/vnext-tooling.js`.
|
|
19
|
+
Das Modul indexiert nun auch Primitive-Domains aus PRIM-04:
|
|
20
|
+
|
|
21
|
+
- `states`
|
|
22
|
+
- `selectors`
|
|
23
|
+
- `actions`
|
|
24
|
+
- `effects`
|
|
25
|
+
- `portals`
|
|
26
|
+
- `overlays`
|
|
27
|
+
- `resources`
|
|
28
|
+
|
|
29
|
+
Bestehende Domains wie `surfaces`, `events` und `dataSources` bleiben erhalten
|
|
30
|
+
und werden fuer Primitive-Records angereichert.
|
|
31
|
+
|
|
32
|
+
## Completions
|
|
33
|
+
|
|
34
|
+
Neue Completion-Kontexte:
|
|
35
|
+
|
|
36
|
+
| Context | Zweck |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `vnext-primitive-keywords` | top-level Primitive-Keywords wie `state`, `selector`, `action`, `surface`, `resource` |
|
|
39
|
+
| `vnext-primitive-state-clauses` | `type`, `preserve`, `initial` |
|
|
40
|
+
| `vnext-primitive-selector-clauses` | `from state`, `where`, `find`, `sort by`, `output` |
|
|
41
|
+
| `vnext-primitive-action-clauses` | `input`, `reduce`, `effect fetch datasource`, `on success`, `on error`, `emit` |
|
|
42
|
+
| `vnext-primitive-surface-clauses` | `source selector`, `repeat from selector`, `key`, `portal`, `bounds`, `lane visible`, Event- und Lifecycle-Klauseln |
|
|
43
|
+
| `vnext-primitive-resource-kinds` | `object-url`, `stream`, `observer`, `timer`, `lazy-import` |
|
|
44
|
+
| `vnext-primitive-overlay-kinds` | `tooltip`, `toast`, `popover`, `lightbox`, `menu`, `dialog` |
|
|
45
|
+
|
|
46
|
+
Wenn ein Pointer in einer Primitive-Domain liegt, waehlt das Tooling den
|
|
47
|
+
passenden Kontext automatisch.
|
|
48
|
+
|
|
49
|
+
### Cursor-nahe Completion
|
|
50
|
+
|
|
51
|
+
Die zweite PRIM-07-Scheibe macht Completion ohne expliziten
|
|
52
|
+
`xtend.context` nutzbar. `getRmtVNextToolingCompletions(...)` akzeptiert nun
|
|
53
|
+
eine LSP-Position, loest daraus wenn moeglich den Source-Map-Pointer auf und
|
|
54
|
+
wertet die aktuelle Zeile sowie das Teilwort vor dem Cursor aus.
|
|
55
|
+
|
|
56
|
+
Abgedeckte Authoring-Faelle:
|
|
57
|
+
|
|
58
|
+
- `state ... {` liefert direkt State-Klauseln wie `initial`.
|
|
59
|
+
- `resource ... kind ` liefert Resource-Kinds wie `lazy-import`.
|
|
60
|
+
- Teilwoerter in Action-Bloecken, z. B. `red`, priorisieren Action-Klauseln
|
|
61
|
+
wie `reduce`.
|
|
62
|
+
|
|
63
|
+
Der Language Server reicht `textDocument/completion.position` an das vNext-
|
|
64
|
+
Tooling weiter. Damit bekommen Editoren Primitive-Completions auch dann, wenn
|
|
65
|
+
sie keine XTend-spezifischen Zusatzparameter setzen.
|
|
66
|
+
|
|
67
|
+
## Hover
|
|
68
|
+
|
|
69
|
+
Hover nutzt die PRIM-04-Core-Records und Source Maps. Beispiele:
|
|
70
|
+
|
|
71
|
+
- `State: media.records`
|
|
72
|
+
- `Action: media.select`
|
|
73
|
+
- `Resource: lightbox.import`
|
|
74
|
+
|
|
75
|
+
Die Hover-Ausgabe enthaelt weiterhin Core Pointer, damit Editor, Compiler und
|
|
76
|
+
Runtime-Evidence dieselbe Primitive-ID nachvollziehen koennen.
|
|
77
|
+
|
|
78
|
+
## Document Symbols
|
|
79
|
+
|
|
80
|
+
Document Symbols enthalten nun Primitive-Namespaces:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
states
|
|
84
|
+
selectors
|
|
85
|
+
actions
|
|
86
|
+
portals
|
|
87
|
+
overlays
|
|
88
|
+
resources
|
|
89
|
+
surfaces
|
|
90
|
+
events
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Damit kann ein Editor eine granulare App Shell aus der Outline heraus
|
|
94
|
+
navigieren, ohne Legacy-Records zu oeffnen.
|
|
95
|
+
|
|
96
|
+
## Code Actions
|
|
97
|
+
|
|
98
|
+
Die dritte PRIM-07-Scheibe liefert sichere Quick-Fixes fuer Primitive-
|
|
99
|
+
Diagnosen aus `getRmtVNextToolingCodeActions(...)` und ueber
|
|
100
|
+
`textDocument/codeAction` im Language Server.
|
|
101
|
+
|
|
102
|
+
Unterstuetzte erste Reparaturen:
|
|
103
|
+
|
|
104
|
+
- `rmt.vnext.primitive.owner-missing`: ergaenzt `owner surface.<id>` an einer
|
|
105
|
+
Resource-Deklaration, wenn eine Surface im Dokument vorhanden ist.
|
|
106
|
+
- `rmt.vnext.primitive.unkeyed-repeat`: ergaenzt `key instance.id` nach einer
|
|
107
|
+
`repeat from selector`-Klausel.
|
|
108
|
+
- `rmt.vnext.primitive.payload-contract-missing`: ergaenzt einen
|
|
109
|
+
Payload-Contract fuer Event-Bindings oder `emit`-Statements.
|
|
110
|
+
|
|
111
|
+
Die naechste Scheibe erweitert diese Reparaturen um die haeufigsten
|
|
112
|
+
Authoring-Luecken:
|
|
113
|
+
|
|
114
|
+
- `rmt.vnext.primitive.initial-missing`: ergaenzt einen sicheren initial-Wert
|
|
115
|
+
oder einen kleinen `initial {}`-Block.
|
|
116
|
+
- `rmt.vnext.primitive.resource-kind-missing`: ergaenzt `kind object-url` als
|
|
117
|
+
konservativen Resource-Default.
|
|
118
|
+
- `rmt.vnext.primitive.unknown-reference` fuer Selector-Referenzen: erzeugt
|
|
119
|
+
einen source-erhaltenden Selector-Stub aus dem ersten vorhandenen State.
|
|
120
|
+
- `rmt.vnext.primitive.unknown-reference` fuer Portal-Referenzen: erzeugt einen
|
|
121
|
+
Portal-Stub mit stabilem `root` und `layer surface`.
|
|
122
|
+
|
|
123
|
+
Die Action-Authoring-Scheibe ergaenzt ausserdem:
|
|
124
|
+
|
|
125
|
+
- `rmt.vnext.primitive.action-reducer-missing`: ergaenzt ein
|
|
126
|
+
`reduce state.<id> = input.<name>`-Ziel vor dem Action-Ende.
|
|
127
|
+
- `rmt.vnext.primitive.effect-source-missing`: ergaenzt
|
|
128
|
+
`datasource <id>` an einem `effect fetch`.
|
|
129
|
+
- `rmt.vnext.primitive.kernel-boundary`: erzeugt bewusst keinen Textedit,
|
|
130
|
+
sondern ein Command-Action-Handoff, damit Kernel-/Fabric-Imports in einen
|
|
131
|
+
Host-Adapter ausgelagert werden.
|
|
132
|
+
|
|
133
|
+
Die Actions sind absichtlich source-erhaltende Textedits. Sie reparieren die
|
|
134
|
+
naheliegende Authoring-Luecke und lassen weitergehende semantische Probleme
|
|
135
|
+
sichtbar, statt ganze Primitive-Bloecke synthetisch umzuschreiben.
|
|
136
|
+
|
|
137
|
+
### Code-Action-Previews und Fix-All
|
|
138
|
+
|
|
139
|
+
Die naechste PRIM-07-Scheibe macht die Quick-Fixes editorfreundlicher:
|
|
140
|
+
|
|
141
|
+
- Jede Code Action traegt eine `xtend.rmt.vnext.primitive-code-action-preview.v1`
|
|
142
|
+
Preview mit betroffenen URIs, Edit-Anzahl, erstem veraenderten Source-Line-
|
|
143
|
+
Ausschnitt und Vorher-/Nachher-Zeilen.
|
|
144
|
+
- Sichere Textedit-Actions werden zusaetzlich in
|
|
145
|
+
`source.fixAll.rmt.vnext.primitives` zusammengefasst.
|
|
146
|
+
- Das Fix-All bleibt auf Actions mit `safe: true` und `edit` begrenzt.
|
|
147
|
+
Manuelle Command-Handoffs wie `kernel-boundary` werden nicht automatisch
|
|
148
|
+
angewendet.
|
|
149
|
+
- Der Language Server gibt die Preview im `CodeAction.data.preview`-Feld
|
|
150
|
+
weiter, damit Editoren eine Reparatur anzeigen koennen, bevor sie den
|
|
151
|
+
WorkspaceEdit anwenden.
|
|
152
|
+
|
|
153
|
+
### Command-Handoff
|
|
154
|
+
|
|
155
|
+
Manuelle Boundary-Faelle bekommen jetzt ebenfalls eine stabile Editor-
|
|
156
|
+
Erfahrung:
|
|
157
|
+
|
|
158
|
+
- Der Language Server meldet `executeCommandProvider.commands` mit
|
|
159
|
+
`xtend.rmt.vnext.extractKernelImport`.
|
|
160
|
+
- `workspace/executeCommand` erzeugt fuer diesen Command ein
|
|
161
|
+
`xtend.rmt.vnext.primitive-command-handoff.v1` Ergebnis.
|
|
162
|
+
- Das Ergebnis bleibt `safe: false`, `edit: null` und `status:
|
|
163
|
+
"manual_handoff"`, weil Kernel-/Fabric-Imports nicht automatisch in RMT
|
|
164
|
+
vNext-Source geschrieben werden duerfen.
|
|
165
|
+
- Der Handoff benennt die Boundary
|
|
166
|
+
`no-kernel-fabric-imports-in-vnext-source` und fuehrt den Zielort
|
|
167
|
+
`xtend-rmt-host-adapter`, damit Editoren einen klaren manuellen Apply-Pfad
|
|
168
|
+
anzeigen koennen.
|
|
169
|
+
|
|
170
|
+
### VS Code Bridge Apply Experience
|
|
171
|
+
|
|
172
|
+
Die VS-Code-Bridge bietet nun eine erste sichtbare Authoring-Erfahrung fuer
|
|
173
|
+
die drei Apply-Pfade:
|
|
174
|
+
|
|
175
|
+
- `XTendRMT: Show vNext Primitive Apply Experience` rendert einen
|
|
176
|
+
`xtend.rmt.editor.vscode-primitive-authoring-experience.v1` Report im
|
|
177
|
+
Output Channel.
|
|
178
|
+
- `XTendRMT: Show vNext Primitive Code Action Preview` zeigt den Preview-
|
|
179
|
+
Ausschnitt einer einzelnen Code Action.
|
|
180
|
+
- `XTendRMT: Show vNext Primitive Command Handoff` zeigt manuelle Boundary-
|
|
181
|
+
Handoffs ohne WorkspaceEdit.
|
|
182
|
+
|
|
183
|
+
Die Bridge bleibt bewusst duenn: sie klassifiziert bereits vom Language Server
|
|
184
|
+
gelieferte Actions in `workspace-edit`, `fix-all` und `manual-command` und
|
|
185
|
+
macht diese Pfade sichtbar. Der LSP bleibt die Source of Truth fuer Diagnose,
|
|
186
|
+
Preview und Command-Handoff.
|
|
187
|
+
|
|
188
|
+
### Aktive VS-Code-Dokument-Integration
|
|
189
|
+
|
|
190
|
+
Die abschliessende PRIM-07-Scheibe verbindet die Bridge mit dem aktiven
|
|
191
|
+
`.rmt`-Dokument:
|
|
192
|
+
|
|
193
|
+
- `createActiveDocumentPrimitiveAuthoringExperience(...)` liest das aktive
|
|
194
|
+
Dokument, startet den lokalen RMT Language Server in-process und ruft
|
|
195
|
+
`textDocument/codeAction` gegen echte LSP-Diagnosen ab.
|
|
196
|
+
- `XTendRMT: Show vNext Primitive Apply Experience` kann ohne uebergebenen
|
|
197
|
+
Report direkt aus dem aktiven Dokument eine QuickPick-Auswahl fuer Preview,
|
|
198
|
+
Fix-All und manuelle Handoffs aufbauen.
|
|
199
|
+
- `applyPrimitiveAuthoringWorkspaceEdit(...)` wendet nur sichere
|
|
200
|
+
WorkspaceEdits an. `kernel-boundary`-Actions bleiben blockiert, weil sie
|
|
201
|
+
`edit: null` tragen und in einen Host-Adapter ueberfuehrt werden muessen.
|
|
202
|
+
- `XTendRMT: Apply Safe vNext Primitive Fix-All` wendet ausschliesslich
|
|
203
|
+
`source.fixAll.rmt.vnext.primitives` an. Wenn kein sicherer Fix-All
|
|
204
|
+
verfuegbar ist, rendert die Bridge den aktuellen Apply-Report statt blind
|
|
205
|
+
einzelne Edits auszufuehren.
|
|
206
|
+
|
|
207
|
+
Damit ist PRIM-07 nicht mehr nur ein LSP-/Dokumentationspaket: Die
|
|
208
|
+
Editor-Bruecke kann vNext-Primitive-Reparaturen aus echtem Source-Kontext
|
|
209
|
+
auswaehlen, previewen und sicher anwenden, waehrend Boundary-Handoffs sichtbar
|
|
210
|
+
und manuell bleiben.
|
|
211
|
+
|
|
212
|
+
## Snippet
|
|
213
|
+
|
|
214
|
+
Neues Snippet:
|
|
215
|
+
|
|
216
|
+
```text
|
|
217
|
+
RMT vNext Primitive Shell
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Prefix:
|
|
221
|
+
|
|
222
|
+
```text
|
|
223
|
+
rmt-vnext-primitive-shell
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Das Snippet erzeugt eine kleine App Shell mit State, Selector, Action, Portal,
|
|
227
|
+
Surface, sichtbarer Lane und Event-Payload-Contract.
|
|
228
|
+
|
|
229
|
+
## Lokale Gates
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
node --check tools/rmt-language/vnext-tooling.js
|
|
233
|
+
node --check tests/rmt-language/rmt_vnext_tooling_suite.js
|
|
234
|
+
node -e "const suite=require('./tests/rmt-language/rmt_vnext_tooling_suite'); const result=suite.runRmtVNextToolingSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Der globale Runner fuehrt `rmt-vnext-tooling` und `rmt-editor-packaging` als
|
|
238
|
+
Release-Gates aus. Die VS-Code-Bridge wird ueber
|
|
239
|
+
`node scripts/run_xtend_tests.js rmt-editor-packaging --json` gegen aktive
|
|
240
|
+
Dokument-CodeActions, Safe-Fix-All und blockierte Kernel-Boundary-Handoffs
|
|
241
|
+
geprueft.
|
|
242
|
+
|
|
243
|
+
## Naechster Handoff
|
|
244
|
+
|
|
245
|
+
`RMT-VNEXT-PRIM-07` ist abgeschlossen. Weitere Editor-Arbeit kann auf dieser
|
|
246
|
+
Bridge aufsetzen, etwa echte LanguageClient-Verpackung oder UI-spezifische
|
|
247
|
+
Preview-Panels; der vNext-Primitive-Authoring-Pfad selbst ist release-gated.
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# RMT vNext Primitive Grammar Design
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext-primitive-grammar-design.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-01`
|
|
5
|
+
- Status: `completed`
|
|
6
|
+
- Parent backlog: [RMT vNext Primitive Compiler Backlog](./rmt-vnext-primitives-compiler-backlog.md)
|
|
7
|
+
- Design fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
|
|
8
|
+
|
|
9
|
+
## Ziel
|
|
10
|
+
|
|
11
|
+
Dieser Slice definiert die vNext-Syntax, mit der App-Platform-Primitives direkt
|
|
12
|
+
in RMT authoriert werden sollen. Er ist bewusst ein Grammar-Design-Contract.
|
|
13
|
+
Parser-/AST-Implementierung ist in `RMT-VNEXT-PRIM-02` abgeschlossen; die erste
|
|
14
|
+
Semantic-Graph-Schicht ist in `RMT-VNEXT-PRIM-03` gestartet. Compiler-Lowering
|
|
15
|
+
folgt in `RMT-VNEXT-PRIM-04`.
|
|
16
|
+
|
|
17
|
+
Die Syntax muss App-Autoren aus Legacy-/JSON-Authoring herausfuehren. Ein
|
|
18
|
+
normaler App-Shell-Entwickler soll State, Selectors, Actions, Events,
|
|
19
|
+
DataSources, Surfaces, Overlays, Portals und Resources in einer lesbaren RMT
|
|
20
|
+
vNext-Datei deklarieren koennen.
|
|
21
|
+
|
|
22
|
+
## Design-Prinzipien
|
|
23
|
+
|
|
24
|
+
- **vNext first:** Die menschenfreundliche DSL ist die primaere Authoring-
|
|
25
|
+
Oberflaeche. JSON bleibt Compiler-Output oder Migrationsinput.
|
|
26
|
+
- **Kernel-neutral:** Syntax kann XTend-Komponenten referenzieren, aber der
|
|
27
|
+
RMT-Kernel importiert keine XTend-, Fabric- oder Browser-Module.
|
|
28
|
+
- **App-Graph vor Runtime:** Referenzen, Ownership, Payload Contracts und
|
|
29
|
+
Trust Boundaries muessen aus dem Source Graph pruefbar sein.
|
|
30
|
+
- **Source-map-faehig:** Jede Primitive-Deklaration braucht einen stabilen
|
|
31
|
+
Source Range und eine Primitive ID.
|
|
32
|
+
- **Composable:** App Shell, UI-Templates, State, Events und Resources duerfen
|
|
33
|
+
getrennt deklarierbar sein, muessen aber zu einem App Graph verbunden werden.
|
|
34
|
+
- **Legacy im Hintergrund:** Klassische Core-/Scaffold-Artefakte duerfen
|
|
35
|
+
weiterhin Targets sein, aber Entwickler sollen sie nicht bearbeiten muessen.
|
|
36
|
+
|
|
37
|
+
## Top-Level-Grammatik
|
|
38
|
+
|
|
39
|
+
Eine vNext-Datei kann weiterhin `import`, `template`, `surface` und `remote`
|
|
40
|
+
nutzen. Neu kommen primitive Deklarationen hinzu. Sie sind innerhalb eines
|
|
41
|
+
`template`-Blocks bevorzugt, duerfen fuer wiederverwendbare Bibliotheken aber
|
|
42
|
+
auch top-level authoriert werden.
|
|
43
|
+
|
|
44
|
+
```rmt
|
|
45
|
+
template media.manager {
|
|
46
|
+
state media.records type MediaRecord[] initial []
|
|
47
|
+
|
|
48
|
+
selector media.filtered from state media.records {
|
|
49
|
+
where record.kind == state.media.filters.kind || state.media.filters.kind == "all"
|
|
50
|
+
sort by record.name asc
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
datasource media.index from endpoint "/api/media?pageSize=200" {
|
|
54
|
+
method GET
|
|
55
|
+
contract MediaIndex
|
|
56
|
+
result records
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
action media.select {
|
|
60
|
+
input mediaId string
|
|
61
|
+
reduce state.media.selection.activeId = input.mediaId
|
|
62
|
+
emit media.selected with mediaId input.mediaId
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
portal surface.root root "#media-manager-root" layer surface
|
|
66
|
+
overlay feedback.toast kind toast portal surface.root
|
|
67
|
+
resource player.stream kind stream owner surface.player source state.media.selection.activeId
|
|
68
|
+
|
|
69
|
+
surface media.explorer kind window component x-surface-window {
|
|
70
|
+
source selector media.filtered
|
|
71
|
+
key record.id
|
|
72
|
+
portal surface.root
|
|
73
|
+
|
|
74
|
+
lane visible weight 80 {
|
|
75
|
+
hydrate explorer-list from selector media.filtered
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
on click "[data-media-id]" -> action media.select {
|
|
79
|
+
payload mediaId from target.dataset.mediaId
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Primitive-Formen
|
|
86
|
+
|
|
87
|
+
### State
|
|
88
|
+
|
|
89
|
+
```rmt
|
|
90
|
+
state media.filters type object preserve {
|
|
91
|
+
initial {
|
|
92
|
+
query ""
|
|
93
|
+
kind "all"
|
|
94
|
+
collection "all"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Lowering-Ziel:
|
|
100
|
+
|
|
101
|
+
- `core.state[]`
|
|
102
|
+
- Source-map entry mit `primitiveType: "state"`
|
|
103
|
+
- optionaler XState-Bridge-Hint fuer Host-Adapter
|
|
104
|
+
|
|
105
|
+
### Selector
|
|
106
|
+
|
|
107
|
+
```rmt
|
|
108
|
+
selector media.filtered from state media.records {
|
|
109
|
+
where record.kind == state.media.filters.kind || state.media.filters.kind == "all"
|
|
110
|
+
where contains(record.name, state.media.filters.query)
|
|
111
|
+
sort by record.name asc
|
|
112
|
+
output MediaRecord[]
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Einschraenkung fuer PRIM-01: Funktionen wie `contains()` sind als deklarative
|
|
117
|
+
Selector-Operatoren erlaubt, aber nicht als beliebige JS-Calls. PRIM-02 muss
|
|
118
|
+
sie als eigene AST-Nodes modellieren.
|
|
119
|
+
|
|
120
|
+
Lowering-Ziel:
|
|
121
|
+
|
|
122
|
+
- `core.selectors[]`
|
|
123
|
+
- Referenzen auf `core.state[]`
|
|
124
|
+
- Diagnose fuer unbekannte State- oder Record-Pfade
|
|
125
|
+
|
|
126
|
+
### DataSource
|
|
127
|
+
|
|
128
|
+
```rmt
|
|
129
|
+
datasource media.index from endpoint "/api/media?pageSize=200" {
|
|
130
|
+
method GET
|
|
131
|
+
contract MediaIndex
|
|
132
|
+
result records
|
|
133
|
+
fallback fixture media.fixture
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Lowering-Ziel:
|
|
138
|
+
|
|
139
|
+
- `core.dataSources[]`
|
|
140
|
+
- App-Platform-Report-Domain `dataSources`
|
|
141
|
+
- optionaler SSR-/Fixture-Fallback
|
|
142
|
+
|
|
143
|
+
### Action und Effect
|
|
144
|
+
|
|
145
|
+
```rmt
|
|
146
|
+
action media.reindex {
|
|
147
|
+
status state.actionStatus.reindex
|
|
148
|
+
effect fetch datasource media.reindex
|
|
149
|
+
on success -> reduce state.media.records = result.records
|
|
150
|
+
on success -> emit media.index.loaded with count result.records.length
|
|
151
|
+
on error -> overlay feedback.toast message error.message tone "danger"
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Lowering-Ziel:
|
|
156
|
+
|
|
157
|
+
- `core.actions[]`
|
|
158
|
+
- `core.effects[]` oder action-scoped `effects`
|
|
159
|
+
- Event-/Feedback-Result-Routing
|
|
160
|
+
- Resource ownership fuer async handles
|
|
161
|
+
|
|
162
|
+
### Event Binding
|
|
163
|
+
|
|
164
|
+
```rmt
|
|
165
|
+
on click "[data-command='scan']" -> action media.reindex {
|
|
166
|
+
preventDefault true
|
|
167
|
+
payload source from target.dataset.command
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
on xplayer-play target player.surface -> action media.playback.started {
|
|
171
|
+
payload mediaId from detail.mediaId
|
|
172
|
+
payload surfaceId from surface.id
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Lowering-Ziel:
|
|
177
|
+
|
|
178
|
+
- `core.events[]`
|
|
179
|
+
- Payload Contract
|
|
180
|
+
- DOM/custom event routing metadata
|
|
181
|
+
- Source pointer fuer jedes Payload Mapping
|
|
182
|
+
|
|
183
|
+
### Surface
|
|
184
|
+
|
|
185
|
+
```rmt
|
|
186
|
+
surface media.player kind window component x-surface-window {
|
|
187
|
+
repeat from selector player.instances
|
|
188
|
+
key instance.surfaceId
|
|
189
|
+
portal surface.root
|
|
190
|
+
bounds x 920 y 96 width 760 height 500
|
|
191
|
+
preserve on minimize
|
|
192
|
+
destroy releases resource player.stream
|
|
193
|
+
|
|
194
|
+
lane visible weight 90 {
|
|
195
|
+
hydrate player-view from selector media.activeRecord
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Lowering-Ziel:
|
|
201
|
+
|
|
202
|
+
- `core.surfaces[]`
|
|
203
|
+
- `core.lanes[]`
|
|
204
|
+
- `core.operations[]`
|
|
205
|
+
- Surface Graph Runtime records
|
|
206
|
+
- keyed repeater diagnostics
|
|
207
|
+
|
|
208
|
+
### Portal und Overlay
|
|
209
|
+
|
|
210
|
+
```rmt
|
|
211
|
+
portal overlay.root root "body" layer overlay z 1000 {
|
|
212
|
+
focus policy restore
|
|
213
|
+
pointer policy passthrough
|
|
214
|
+
scroll policy lock-when-modal
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
overlay media.lightbox kind lightbox portal overlay.root {
|
|
218
|
+
escape close topmost
|
|
219
|
+
focus trap
|
|
220
|
+
resource lightbox.import
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Lowering-Ziel:
|
|
225
|
+
|
|
226
|
+
- `core.portals[]`
|
|
227
|
+
- `core.overlays[]`
|
|
228
|
+
- portal reference diagnostics
|
|
229
|
+
- overlay stack policy
|
|
230
|
+
|
|
231
|
+
### Resource
|
|
232
|
+
|
|
233
|
+
```rmt
|
|
234
|
+
resource lightbox.import kind lazy-import owner overlay.media.lightbox {
|
|
235
|
+
import "@ccslabs/xtend/components/xlightbox"
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
resource preview.objectUrl kind object-url owner surface.media.player {
|
|
239
|
+
source selector media.activeRecord
|
|
240
|
+
dispose on surface.destroy
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Lowering-Ziel:
|
|
245
|
+
|
|
246
|
+
- `core.resources[]`
|
|
247
|
+
- owner-scoped lifecycle records
|
|
248
|
+
- teardown diagnostics fuer ownerless resources
|
|
249
|
+
|
|
250
|
+
## AST-Node-Namen
|
|
251
|
+
|
|
252
|
+
PRIM-02 soll mindestens diese Node-Typen erzeugen:
|
|
253
|
+
|
|
254
|
+
| Syntax | AST Node |
|
|
255
|
+
|--------|----------|
|
|
256
|
+
| `state` | `RmtStateDeclaration` |
|
|
257
|
+
| `selector` | `RmtSelectorDeclaration` |
|
|
258
|
+
| `datasource` | `RmtDataSourceDeclaration` |
|
|
259
|
+
| `action` | `RmtActionDeclaration` |
|
|
260
|
+
| `effect` | `RmtEffectStatement` |
|
|
261
|
+
| `on ... -> action ...` | `RmtEventBinding` mit Payload-Block |
|
|
262
|
+
| `surface ... kind ... component ...` | `RmtSurfaceDeclaration` mit Primitive-Metadata |
|
|
263
|
+
| `portal` | `RmtPortalDeclaration` |
|
|
264
|
+
| `overlay` | `RmtOverlayDeclaration` |
|
|
265
|
+
| `resource` | `RmtResourceDeclaration` |
|
|
266
|
+
| `template` primitive block | `RmtTemplateDeclaration.body[]` |
|
|
267
|
+
|
|
268
|
+
## Diagnostik-Mindestumfang
|
|
269
|
+
|
|
270
|
+
Der Grammar-Slice definiert folgende Fehlerklassen fuer PRIM-02/03:
|
|
271
|
+
|
|
272
|
+
| Code | Bedeutung |
|
|
273
|
+
|------|-----------|
|
|
274
|
+
| `rmt.vnext.primitive.unknown-reference` | Primitive referenziert unbekannten State, Selector, Action, Portal, Resource oder Surface. |
|
|
275
|
+
| `rmt.vnext.primitive.owner-missing` | Resource oder Overlay besitzt keinen stabilen Owner. |
|
|
276
|
+
| `rmt.vnext.primitive.unkeyed-repeat` | Surface oder Template wiederholt Records ohne `key`. |
|
|
277
|
+
| `rmt.vnext.primitive.payload-contract-missing` | Event bindet eine Action ohne Payload Contract oder Mapping. |
|
|
278
|
+
| `rmt.vnext.primitive.unsafe-html` | Template nutzt HTML ohne Trusted-DOM-Boundary. |
|
|
279
|
+
| `rmt.vnext.primitive.kernel-boundary` | Primitive verlangt Kernel-Import aus XTend, Fabric oder Browser Runtime. |
|
|
280
|
+
|
|
281
|
+
## Akzeptanz fuer PRIM-01
|
|
282
|
+
|
|
283
|
+
- Dieses Dokument definiert eine zusammenhaengende vNext-Syntax fuer alle P0-
|
|
284
|
+
Primitive-Familien.
|
|
285
|
+
- Die Fixture `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
|
|
286
|
+
zeigt denselben Syntaxumfang in einer kompakten App-Shell.
|
|
287
|
+
- Das Backlog markiert `RMT-VNEXT-PRIM-01` als `in_progress`.
|
|
288
|
+
- PRIM-02 kann direkt mit Parser-/AST-Arbeit starten, ohne die Syntaxfrage neu
|
|
289
|
+
zu klaeren.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# RMT vNext Primitive Lowering
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.rmt.vnext.primitive-lowering.v1`
|
|
4
|
+
- Workpackage: `RMT-VNEXT-PRIM-04`
|
|
5
|
+
- Status: `completed`
|
|
6
|
+
- Quelle: Media-Manager-Downstream-Transfer, `2026-05-19`
|
|
7
|
+
|
|
8
|
+
## Ziel
|
|
9
|
+
|
|
10
|
+
`RMT-VNEXT-PRIM-04` senkt validierte vNext-Primitives aus dem PRIM-03 Semantic
|
|
11
|
+
Graph in deterministische Core-, App-Platform- und Kernel-Records ab. App-
|
|
12
|
+
Autoren bleiben dabei in RMT vNext; JSON bleibt Compiler-Output und nicht der
|
|
13
|
+
Authoring-Pfad.
|
|
14
|
+
|
|
15
|
+
Die Lowering-Stufe ist Teil des bestehenden vNext-Compilers:
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
const {
|
|
19
|
+
compileRmtVNextSource
|
|
20
|
+
} = require('./tools/rmt-language/vnext-compiler');
|
|
21
|
+
|
|
22
|
+
const result = compileRmtVNextSource({ text, filePath });
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Bei Primitive-Quellen baut der Compiler zuerst
|
|
26
|
+
`buildRmtVNextPrimitiveSemanticGraph(...)`. Error-Diagnostics aus dem Graph
|
|
27
|
+
stoppen das Lowering mit `status: "semantic_error"` und ohne Core-Document.
|
|
28
|
+
|
|
29
|
+
## Core-Domains
|
|
30
|
+
|
|
31
|
+
Der vNext-Core erhaelt zusaetzliche Primitive-Domains:
|
|
32
|
+
|
|
33
|
+
- `states`
|
|
34
|
+
- `selectors`
|
|
35
|
+
- `actions`
|
|
36
|
+
- `effects`
|
|
37
|
+
- `portals`
|
|
38
|
+
- `overlays`
|
|
39
|
+
- `resources`
|
|
40
|
+
|
|
41
|
+
Vorhandene Domains wie `surfaces`, `lanes`, `operations`, `events` und
|
|
42
|
+
`dataSources` werden fuer Primitive angereichert, statt einen zweiten Runtime-
|
|
43
|
+
Pfad zu erzeugen.
|
|
44
|
+
|
|
45
|
+
## App-Platform Artifact
|
|
46
|
+
|
|
47
|
+
Wenn Primitive vorhanden sind, enthaelt das Core-Document `appPlatform`:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"schema": "xtend.rmt.vnext.app-platform-records.v1",
|
|
52
|
+
"sourceSyntax": "rmt-vnext",
|
|
53
|
+
"surfaces": [],
|
|
54
|
+
"events": [],
|
|
55
|
+
"resources": []
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Dieses Artefakt ist fuer Host-/Scaffold-Adapter gedacht. Host-spezifische
|
|
60
|
+
Imports, etwa Lazy Component Imports, bleiben dort sichtbar und tragen
|
|
61
|
+
`kernelVisible: false`.
|
|
62
|
+
|
|
63
|
+
## Kernel Records
|
|
64
|
+
|
|
65
|
+
Das Core-Document enthaelt bei Primitive-Quellen ausserdem `kernelRecords`:
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"schema": "xtend.rmt.vnext.kernel-records.v1",
|
|
70
|
+
"boundary": "no-rmt-kernel-import-of-host-runtime-types",
|
|
71
|
+
"schedules": [],
|
|
72
|
+
"fibers": [],
|
|
73
|
+
"lifecycleRecords": []
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Der Kernel-Record-Slice enthaelt Lanes, Fibers, Lifecycle-, State-, Selector-,
|
|
78
|
+
Action-, DataSource- und Resource-Fakten ohne Host-Runtime-Imports. Dadurch ist
|
|
79
|
+
PRIM-05 vorbereitet: Fabric kann Lane/Fiber-Evidence aus Compiler-Output
|
|
80
|
+
ableiten, ohne dass der Kernel Fabric oder XTend importieren muss.
|
|
81
|
+
|
|
82
|
+
## Evidence
|
|
83
|
+
|
|
84
|
+
Die Compiler-Suite prueft:
|
|
85
|
+
|
|
86
|
+
- positive Primitive-Fixture kompiliert zu State-, Selector-, DataSource-,
|
|
87
|
+
Action-, Effect-, Portal-, Overlay-, Resource-, Surface- und Event-Records;
|
|
88
|
+
- App-Platform-Artefakt und Kernel-Records werden erzeugt;
|
|
89
|
+
- keyed Surface-Repeater und Event-Payload-Contracts bleiben erhalten;
|
|
90
|
+
- Host-Imports bleiben ausserhalb der Kernel-Sichtbarkeit;
|
|
91
|
+
- negative PRIM-03-Fixture stoppt vor dem Lowering mit Semantic-Diagnostics;
|
|
92
|
+
- Core JSON bleibt byte-stabil.
|
|
93
|
+
|
|
94
|
+
Gezielte lokale Gates:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
node --check tools/rmt-language/vnext-compiler.js
|
|
98
|
+
node --check tests/rmt-language/rmt_vnext_compiler_suite.js
|
|
99
|
+
node -e "const suite=require('./tests/rmt-language/rmt_vnext_compiler_suite'); const result=suite.runRmtVNextCompilerSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## PRIM-06 Anschluss
|
|
103
|
+
|
|
104
|
+
`RMT-VNEXT-PRIM-06` setzt auf `kernelRecords.schedules` und
|
|
105
|
+
`kernelRecords.fibers` auf. Die erste Source-to-Sea-Scheibe erzeugt daraus
|
|
106
|
+
Evidence, die vNext-Source-Maps, Kernel-Schedules, ableitbare Fabric-Fibers,
|
|
107
|
+
UI-Marker und eine Browser-Smoke-Fixture unter derselben Primitive-ID
|
|
108
|
+
korreliert.
|