Assign field semantics to plugin owner

This commit is contained in:
Meta Vens 2026-07-10 14:50:52 +01:00
commit 73ba02c7b2
4 changed files with 28 additions and 1 deletions

View file

@ -107,6 +107,10 @@ advertisements and typed command/receipt documents are the boundary.
RUDP operation envelopes. A Sai surface may request RUDP operation envelopes. A Sai surface may request
nested Norn or TeX capabilities when those plugins are available. nested Norn or TeX capabilities when those plugins are available.
- EvePlugins owns the TeX sidecar and KaTeX-backed semantic witness. - EvePlugins owns the TeX sidecar and KaTeX-backed semantic witness.
- EvePlugins owns the independent `fields.surface` sidecar, generic
`gamecult.fields.*` document model, fixtures, tests, and CultNet witness.
Aetheria remains owner of sampled field truth; runtimes remain owners of
native field projection.
- The TeX owner sidecar serves its Eve ABI over CultNet RUDP operation - The TeX owner sidecar serves its Eve ABI over CultNet RUDP operation
envelopes; its stdio protocol is retained only as a local debug adapter. envelopes; its stdio protocol is retained only as a local debug adapter.
- Aetheria owns its provider advertisement, world surface, scenario, asset - Aetheria owns its provider advertisement, world surface, scenario, asset
@ -151,6 +155,10 @@ advertisements and typed command/receipt documents are the boundary.
is its semantic owner. Sai already owns VN/Ink execution and its live witness. is its semantic owner. Sai already owns VN/Ink execution and its live witness.
- Keep nested plugin availability explicit and non-transitive: Sai does not own - Keep nested plugin availability explicit and non-transitive: Sai does not own
Norn or TeX. Norn or TeX.
- Migrate Aetheria viewport publications from `gamecult.aetheria.*_viewport`
arrays to the `fields.surface` document model, then delete the Aetheria schema
decoders from Hermodr and move browser field projection behind a runtime
adapter for the advertised plugin.
### Conformance ### Conformance

View file

@ -467,6 +467,16 @@ Sai surface deploys with nested Norn or TeX, Sai composes the slots and keeps VN
stage authority; Norn and TeX still publish and validate their own semantic stage authority; Norn and TeX still publish and validate their own semantic
contracts. Each plugin advertises only the ABI operations it actually owns. contracts. Each plugin advertises only the ABI operations it actually owns.
### Semantic Fields
`fields.surface` owns `field.surface2d` and `gravity.surface` semantics plus the
generic `gamecult.fields.*` document family. Providers own sampled scalar,
vector, color, mask, and object documents. The plugin validates and projects
those documents through the executable ABI; browser, Unity, and other runtimes
own native canvas, shader, texture, or scene projection. A provider-specific
field schema or array layout is not Eve core and must not be decoded inside a
generic runtime transport.
The carrier does not define the plugin. UTF-8 NDJSON over stdio remains a local The carrier does not define the plugin. UTF-8 NDJSON over stdio remains a local
debug adapter: one request document per line, one response per request in debug adapter: one request document per line, one response per request in
order, blank lines ignored, diagnostics on stderr. The production sidecar path order, blank lines ignored, diagnostics on stderr. The production sidecar path

View file

@ -7,6 +7,10 @@ $requiredPaths = @(
"plugins\eve-plugin-tex\advertisement.json", "plugins\eve-plugin-tex\advertisement.json",
"plugins\eve-plugin-tex\plugin-abi-fixture.json", "plugins\eve-plugin-tex\plugin-abi-fixture.json",
"plugins\eve-plugin-tex\src\sidecar.mjs", "plugins\eve-plugin-tex\src\sidecar.mjs",
"plugins\eve-plugin-fields\plugin.json",
"plugins\eve-plugin-fields\advertisement.json",
"plugins\eve-plugin-fields\plugin-abi-fixture.json",
"plugins\eve-plugin-fields\src\sidecar.mjs",
"scripts\run-tex-witness.mjs" "scripts\run-tex-witness.mjs"
) )
@ -23,8 +27,10 @@ try {
if ($LASTEXITCODE -ne 0) { throw "EvePlugins tests failed." } if ($LASTEXITCODE -ne 0) { throw "EvePlugins tests failed." }
npm run witness:tex npm run witness:tex
if ($LASTEXITCODE -ne 0) { throw "EvePlugins TeX witness failed." } if ($LASTEXITCODE -ne 0) { throw "EvePlugins TeX witness failed." }
npm run witness:fields
if ($LASTEXITCODE -ne 0) { throw "EvePlugins fields witness failed." }
} finally { } finally {
Pop-Location Pop-Location
} }
Write-Host "EvePlugins TeX owner smoke passed: $EvePluginsRoot" Write-Host "EvePlugins TeX and fields owner smoke passed: $EvePluginsRoot"

View file

@ -62,6 +62,9 @@ try {
node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") ` node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") `
"E:\Projects\EvePlugins\artifacts\tex-math\runtime-witness.json" ` "E:\Projects\EvePlugins\artifacts\tex-math\runtime-witness.json" `
".\artifacts\conformance\latest" ".\artifacts\conformance\latest"
node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") `
"E:\Projects\EvePlugins\artifacts\fields-surface\runtime-witness.json" `
".\artifacts\conformance\latest"
node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") ` node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") `
"E:\Projects\Sai\artifacts\eve-plugin\runtime-witness.json" ` "E:\Projects\Sai\artifacts\eve-plugin\runtime-witness.json" `
".\artifacts\conformance\latest" ".\artifacts\conformance\latest"