Add EveTui split boundary

This commit is contained in:
Meta Vens 2026-07-09 02:38:17 +01:00
commit 64494bffac
5 changed files with 150 additions and 9 deletions

View file

@ -297,6 +297,13 @@ Recently cut:
client, and the split-target consumer smoke keeps the missing shell,
provider-advertisement consumption, command transport, and capture proofs
visible as blockers.
- EveTui now has a pending split target and handoff at
`runtimes/incubating/eve-tui/evetui-split-handoff.json`. It does not claim
the advertised `tui` world-surface lowering target yet. The handoff draws the
line between a future provider-agnostic terminal/grid lowerer and
provider-owned TUI surfaces, and the split-target consumer smoke keeps the
missing runtime body, provider-advertisement consumption, command transport,
transcript/cell-grid capture, and `tui` lowering proof visible as blockers.
- Aetheria interactive world surfaces now carry a structured provider-owned
`worldInteraction` contract. The provider advertisement names projection
kind, provider state schemas, daemon command boundary, receipt schema,

View file

@ -199,14 +199,16 @@ Split-target consumer smoke:
powershell -ExecutionPolicy Bypass -File .\scripts\run-split-target-conformance-consumer-smoke.ps1
```
That script asserts that EveFlutter, EveUnity, and EveElectron are exported as
incubating split targets, that their current split-readiness proofs are passed,
and that their graduation blockers remain visible to consumers. A target being
present is not enough; future owner repos must be able to consume why it is or
is not ready to leave Eve incubation. EveElectron is intentionally pending: its
handoff names the generic Electron shell boundary, while the Starbridge RTS
client remains Aetheria-owned product code until a provider-agnostic shell
exists.
That script asserts that EveFlutter, EveUnity, EveElectron, and EveTui are
exported as incubating split targets, that their current split-readiness proofs
are passed, and that their graduation blockers remain visible to consumers. A
target being present is not enough; future owner repos must be able to consume
why it is or is not ready to leave Eve incubation. EveElectron is intentionally
pending: its handoff names the generic Electron shell boundary, while the
Starbridge RTS client remains Aetheria-owned product code until a
provider-agnostic shell exists. EveTui is also intentionally pending: Aetheria
advertises `tui` as an agent-facing lowering target, but Eve should not claim
that target until a real terminal/grid lowerer and transcript capture exist.
The Flutter widget smoke also exercises `EveProviderCatalog` and
`EveProviderPicker` against a conformance-export-shaped provider list. That is

View file

@ -0,0 +1,64 @@
{
"schema": "gamecult.eve.runtime_split_handoff.v1",
"splitTarget": "EveTui",
"ownerRepo": "EveTui",
"currentHostRepo": "Eve",
"runtimeId": "tui",
"packageName": "eve-tui",
"sourcePackageRoot": "runtimes/incubating/eve-tui",
"destinationPackageRoot": "packages/eve-tui",
"authorityBoundary": "EveTui owns compact terminal/grid projection, keyboard command input, dense state inspection, terminal capability manifests, capture transcripts, and TUI-specific style/token lowering. Providers such as Aetheria own live state, authored TUI surfaces, command authorization, receipts, and product-specific flows. Eve keeps the GUI/TUI surface contracts, command descriptors, provider advertisements, plugin advertisements, and conformance export contracts.",
"moveSets": [
{
"id": "tui-runtime-body",
"stage": "runtime-body",
"currentPaths": [],
"destinationOwner": "EveTui",
"replacementProof": "EveTui hosts a provider-agnostic TUI lowerer that consumes provider advertisements and Eve surface documents without importing provider internals."
},
{
"id": "tui-world-surface-lowering",
"stage": "world-surface-lowering",
"currentPaths": [],
"destinationOwner": "EveTui",
"replacementProof": "EveTui claims the provider-advertised tui world-surface lowering target with explicit support level, lossiness, command boundary, and transcript evidence."
},
{
"id": "tui-command-transport",
"stage": "command",
"currentPaths": [],
"destinationOwner": "EveTui",
"replacementProof": "TUI actions emit gamecult.eve.command.v1 intents through provider-advertised command boundaries and render provider receipts instead of mutating local state."
},
{
"id": "tui-capture-lifecycle",
"stage": "capture",
"currentPaths": [],
"destinationOwner": "EveTui",
"replacementProof": "EveTui attaches deterministic terminal transcript or cell-grid capture artifacts to conformance output."
}
],
"contractInputs": [
"gamecult.eve.surface.v1",
"gamecult.eve.command.v1",
"gamecult.eve.provider_advertisement.v1",
"gamecult.eve.plugin_advertisement.v1",
"gamecult.eve.plugin.v1",
"gamecult.eve.conformance_export.v1"
],
"forbiddenImports": [
"provider internals as TUI runtime authority",
"renderer-local product state as provider truth",
"terminal-only command routes that bypass gamecult.eve.command.v1",
"plugin semantic internals",
"lossy text summaries pretending to be provider state"
],
"requiredExternalProofs": [
"EveTui publishes a runtime capability manifest with terminal/grid capabilities.",
"EveTui claims the tui world-surface lowering target only after a real provider-agnostic lowerer exists.",
"EveTui consumes at least one non-Aetheria provider advertisement.",
"EveTui consumes Aetheria's agent-facing TUI surface through provider advertisements without importing Aetheria internals.",
"EveTui emits gamecult.eve.command.v1 intents and renders provider receipts.",
"EveTui attaches terminal transcript or cell-grid capture artifacts to conformance output."
]
}

View file

@ -48,7 +48,12 @@ try {
--expect-split-target-status EveElectron:incubating `
--expect-split-target-proof "EveElectron:EveElectron split handoff is machine-readable" `
--expect-split-target-blocker "EveElectron:runtime:electron-shell:status:pending" `
--expect-split-target-blocker "EveElectron:Electron shell runtime body exists outside Aetheria product code"
--expect-split-target-blocker "EveElectron:Electron shell runtime body exists outside Aetheria product code" `
--expect-split-target EveTui `
--expect-split-target-status EveTui:incubating `
--expect-split-target-proof "EveTui:EveTui split handoff is machine-readable" `
--expect-split-target-blocker "EveTui:runtime:tui:status:pending" `
--expect-split-target-blocker "EveTui:TUI runtime body exists outside provider product code"
if ($LASTEXITCODE -ne 0) {
throw "Split target conformance consumer smoke failed with exit code $LASTEXITCODE"
}

View file

@ -607,6 +607,34 @@
"Electron emits gamecult.eve.command.v1 through provider command boundaries.",
"Electron capture artifacts are attached to conformance output."
]
},
{
"id": "EveTui",
"ownerRepo": "EveTui",
"repoRole": "runtime-target",
"status": "pending",
"runtimes": ["tui"],
"requiredRuntimeStatuses": ["active"],
"requiredFeatures": ["providerAdvertisements", "embeddedDocuments", "commandTransport"],
"requiredPlugins": [],
"proofs": [
{
"description": "EveTui split handoff is machine-readable.",
"status": "passed",
"evidencePaths": [
"runtimes/incubating/eve-tui/evetui-split-handoff.json",
"docs/eve-migration-roadmap.md",
"docs/parity-testing-harness.md"
]
}
],
"pendingProofs": [
"TUI runtime body exists outside provider product code.",
"TUI consumes provider advertisements without provider source-layout knowledge.",
"TUI claims provider-advertised tui world-surface lowering with real transcript evidence.",
"TUI emits gamecult.eve.command.v1 through provider command boundaries.",
"TUI terminal transcript or cell-grid captures are attached to conformance output."
]
}
],
"runtimes": [
@ -645,6 +673,41 @@
"note": "Electron capture is a split blocker until EveElectron owns a provider-agnostic shell."
}
},
{
"id": "tui",
"title": "Compact TUI",
"kind": "pending",
"ownerRepo": "EveTui",
"repoRole": "runtime-target",
"splitTarget": "EveTui",
"graduationTrigger": "Split when TUI has a provider-agnostic terminal/grid lowerer, provider advertisement consumption, command transport, terminal capability manifest, and transcript/cell-grid capture evidence.",
"splitHandoffPath": "runtimes/incubating/eve-tui/evetui-split-handoff.json",
"requiredFixtures": ["embedded-surface", "aetheria-world"],
"pluginFixtures": [],
"supportedFeatures": [],
"supportedPlugins": [],
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "TUI has no generic runtime body yet; Sai projection must be a declared lossy terminal projection once EveTui exists."
},
{
"pluginId": "norn.graph",
"reason": "TUI has no generic runtime body yet; Norn graph projection needs explicit text/grid fallback semantics once EveTui exists."
},
{
"pluginId": "tex.math",
"reason": "TUI has no generic runtime body yet; TeX projection needs explicit text/grid fallback semantics once EveTui exists."
}
],
"expectedPaths": [
"runtimes/incubating/eve-tui/evetui-split-handoff.json"
],
"capture": {
"status": "missing",
"note": "TUI transcript or cell-grid capture is a split blocker until EveTui owns a provider-agnostic lowerer."
}
},
{
"id": "web",
"title": "Web reference",