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
nested Norn or TeX capabilities when those plugins are available.
- 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
envelopes; its stdio protocol is retained only as a local debug adapter.
- 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.
- Keep nested plugin availability explicit and non-transitive: Sai does not own
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

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
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
debug adapter: one request document per line, one response per request in
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\plugin-abi-fixture.json",
"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"
)
@ -23,8 +27,10 @@ try {
if ($LASTEXITCODE -ne 0) { throw "EvePlugins tests failed." }
npm run witness:tex
if ($LASTEXITCODE -ne 0) { throw "EvePlugins TeX witness failed." }
npm run witness:fields
if ($LASTEXITCODE -ne 0) { throw "EvePlugins fields witness failed." }
} finally {
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") `
"E:\Projects\EvePlugins\artifacts\tex-math\runtime-witness.json" `
".\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") `
"E:\Projects\Sai\artifacts\eve-plugin\runtime-witness.json" `
".\artifacts\conformance\latest"