Add generic runtime capture controls

This commit is contained in:
Meta Vens 2026-07-09 17:00:58 +01:00
commit 7c7cfcde8e
25 changed files with 486 additions and 52 deletions

View file

@ -4,7 +4,11 @@ param(
[string] $SurfacePath = "web\fixtures\aetheria-world-surface.json",
[string] $OutputPath = "artifacts\eveelectron-capture\latest\electron-shell-projection.json",
[string] $RequestOutputPath = "artifacts\eveelectron-capture\latest\capture-request.json",
[string] $Stamp = "latest"
[string] $Stamp = "latest",
[string] $ExpectedProviderId = "aetheria",
[string] $ExpectedSurfaceId = "aetheria.daemon.game",
[string] $ExpectedCommandBoundary = "aetheria.daemon.commands",
[string] $ExpectedReceiptSchema = "aetheria.eve_command_acceptance_status.v1"
)
$ErrorActionPreference = "Stop"
@ -55,10 +59,10 @@ $projection = Get-Content -LiteralPath $absoluteOutputPath -Raw | ConvertFrom-Js
foreach ($expectation in @(
@{ field = "schema"; value = "gamecult.eve.electron_shell_projection.v1" },
@{ field = "runtimeId"; value = "electron-shell" },
@{ field = "providerId"; value = "aetheria" },
@{ field = "surfaceId"; value = "aetheria.daemon.game" },
@{ field = "commandBoundary"; value = "aetheria.daemon.commands" },
@{ field = "receiptSchema"; value = "aetheria.eve_command_acceptance_status.v1" },
@{ field = "providerId"; value = $ExpectedProviderId },
@{ field = "surfaceId"; value = $ExpectedSurfaceId },
@{ field = "commandBoundary"; value = $ExpectedCommandBoundary },
@{ field = "receiptSchema"; value = $ExpectedReceiptSchema },
@{ field = "artifactKind"; value = "json-projection" },
@{ field = "captureKind"; value = "electron-shell-projection-json" }
)) {

View file

@ -4,7 +4,11 @@ param(
[string] $SurfacePath = "web\fixtures\aetheria-world-surface.json",
[string] $OutputPath = "artifacts\evetui-capture\latest\tui-grid.json",
[string] $RequestOutputPath = "artifacts\evetui-capture\latest\capture-request.json",
[string] $Stamp = "latest"
[string] $Stamp = "latest",
[string] $ExpectedProviderId = "aetheria",
[string] $ExpectedSurfaceId = "aetheria.daemon.game",
[string] $ExpectedCommandBoundary = "aetheria.daemon.commands",
[string] $ExpectedReceiptSchema = "aetheria.eve_command_acceptance_status.v1"
)
$ErrorActionPreference = "Stop"
@ -55,10 +59,10 @@ $grid = Get-Content -LiteralPath $absoluteOutputPath -Raw | ConvertFrom-Json
foreach ($expectation in @(
@{ field = "schema"; value = "gamecult.eve.tui_grid.v1" },
@{ field = "runtimeId"; value = "tui" },
@{ field = "providerId"; value = "aetheria" },
@{ field = "surfaceId"; value = "aetheria.daemon.game" },
@{ field = "commandBoundary"; value = "aetheria.daemon.commands" },
@{ field = "receiptSchema"; value = "aetheria.eve_command_acceptance_status.v1" },
@{ field = "providerId"; value = $ExpectedProviderId },
@{ field = "surfaceId"; value = $ExpectedSurfaceId },
@{ field = "commandBoundary"; value = $ExpectedCommandBoundary },
@{ field = "receiptSchema"; value = $ExpectedReceiptSchema },
@{ field = "artifactKind"; value = "json-grid" },
@{ field = "captureKind"; value = "terminal-cell-grid" }
)) {

View file

@ -4,7 +4,11 @@ param(
[string] $SurfacePath = "web\fixtures\aetheria-world-surface.json",
[string] $OutputPath = "artifacts\eveunity-scene-capture\latest\unity-scene-projection.json",
[string] $RequestOutputPath = "artifacts\eveunity-scene-capture\latest\capture-request.json",
[string] $Stamp = "latest"
[string] $Stamp = "latest",
[string] $ExpectedProviderId = "aetheria",
[string] $ExpectedSurfaceId = "aetheria.daemon.game",
[string] $ExpectedCommandBoundary = "aetheria.daemon.commands",
[string] $ExpectedReceiptSchema = "aetheria.eve_command_acceptance_status.v1"
)
$ErrorActionPreference = "Stop"
@ -55,10 +59,10 @@ $projection = Get-Content -LiteralPath $absoluteOutputPath -Raw | ConvertFrom-Js
foreach ($expectation in @(
@{ field = "schema"; value = "gamecult.eve.unity_scene_projection.v1" },
@{ field = "runtimeId"; value = "unity-scene" },
@{ field = "providerId"; value = "aetheria" },
@{ field = "surfaceId"; value = "aetheria.daemon.game" },
@{ field = "commandBoundary"; value = "aetheria.daemon.commands" },
@{ field = "receiptSchema"; value = "aetheria.eve_command_acceptance_status.v1" },
@{ field = "providerId"; value = $ExpectedProviderId },
@{ field = "surfaceId"; value = $ExpectedSurfaceId },
@{ field = "commandBoundary"; value = $ExpectedCommandBoundary },
@{ field = "receiptSchema"; value = $ExpectedReceiptSchema },
@{ field = "artifactKind"; value = "json-projection" },
@{ field = "captureKind"; value = "unity-scene-projection-json" }
)) {

View file

@ -4,7 +4,11 @@ param(
[string] $SurfacePath = "web\fixtures\aetheria-world-surface.json",
[string] $OutputPath = "artifacts\eveunity-uitoolkit-capture\latest\unity-uitoolkit-projection.json",
[string] $RequestOutputPath = "artifacts\eveunity-uitoolkit-capture\latest\capture-request.json",
[string] $Stamp = "latest"
[string] $Stamp = "latest",
[string] $ExpectedProviderId = "aetheria",
[string] $ExpectedSurfaceId = "aetheria.daemon.game",
[string] $ExpectedCommandBoundary = "aetheria.daemon.commands",
[string] $ExpectedReceiptSchema = "aetheria.eve_command_acceptance_status.v1"
)
$ErrorActionPreference = "Stop"
@ -55,10 +59,10 @@ $projection = Get-Content -LiteralPath $absoluteOutputPath -Raw | ConvertFrom-Js
foreach ($expectation in @(
@{ field = "schema"; value = "gamecult.eve.unity_uitoolkit_projection.v1" },
@{ field = "runtimeId"; value = "unity-uitoolkit" },
@{ field = "providerId"; value = "aetheria" },
@{ field = "surfaceId"; value = "aetheria.daemon.game" },
@{ field = "commandBoundary"; value = "aetheria.daemon.commands" },
@{ field = "receiptSchema"; value = "aetheria.eve_command_acceptance_status.v1" },
@{ field = "providerId"; value = $ExpectedProviderId },
@{ field = "surfaceId"; value = $ExpectedSurfaceId },
@{ field = "commandBoundary"; value = $ExpectedCommandBoundary },
@{ field = "receiptSchema"; value = $ExpectedReceiptSchema },
@{ field = "artifactKind"; value = "json-projection" },
@{ field = "captureKind"; value = "unity-uitoolkit-projection-json" }
)) {

View file

@ -27,7 +27,43 @@ try {
-Port 8894 `
-SkipBuild
& (Join-Path $PSScriptRoot "run-eveunity-uitoolkit-capture-smoke.ps1")
& (Join-Path $PSScriptRoot "run-eveunity-uitoolkit-capture-smoke.ps1") `
-AdvertisementPath "web\fixtures\eve-world-smoke.provider-advertisement.json" `
-SurfacePath "web\fixtures\eve-world-smoke-surface.json" `
-OutputPath "artifacts\eveunity-uitoolkit-capture\latest\eve-world-smoke-unity-uitoolkit-projection.json" `
-RequestOutputPath "artifacts\eveunity-uitoolkit-capture\latest\eve-world-smoke-capture-request.json" `
-ExpectedProviderId "eve.world-smoke" `
-ExpectedSurfaceId "eve.world-smoke.surface" `
-ExpectedCommandBoundary "eve.world-smoke.commands" `
-ExpectedReceiptSchema "eve.world_smoke.command_receipt.v1"
& (Join-Path $PSScriptRoot "run-eveunity-scene-capture-smoke.ps1") `
-AdvertisementPath "web\fixtures\eve-world-smoke.provider-advertisement.json" `
-SurfacePath "web\fixtures\eve-world-smoke-surface.json" `
-OutputPath "artifacts\eveunity-scene-capture\latest\eve-world-smoke-unity-scene-projection.json" `
-RequestOutputPath "artifacts\eveunity-scene-capture\latest\eve-world-smoke-capture-request.json" `
-ExpectedProviderId "eve.world-smoke" `
-ExpectedSurfaceId "eve.world-smoke.surface" `
-ExpectedCommandBoundary "eve.world-smoke.commands" `
-ExpectedReceiptSchema "eve.world_smoke.command_receipt.v1"
& (Join-Path $PSScriptRoot "run-eveelectron-capture-smoke.ps1") `
-AdvertisementPath "web\fixtures\eve-world-smoke.provider-advertisement.json" `
-SurfacePath "web\fixtures\eve-world-smoke-surface.json" `
-OutputPath "artifacts\eveelectron-capture\latest\eve-world-smoke-electron-shell-projection.json" `
-RequestOutputPath "artifacts\eveelectron-capture\latest\eve-world-smoke-capture-request.json" `
-ExpectedProviderId "eve.world-smoke" `
-ExpectedSurfaceId "eve.world-smoke.surface" `
-ExpectedCommandBoundary "eve.world-smoke.commands" `
-ExpectedReceiptSchema "eve.world_smoke.command_receipt.v1"
& (Join-Path $PSScriptRoot "run-evetui-capture-smoke.ps1")
& (Join-Path $PSScriptRoot "run-evetui-capture-smoke.ps1") `
-AdvertisementPath "web\fixtures\eve-world-smoke.provider-advertisement.json" `
-SurfacePath "web\fixtures\eve-world-smoke-surface.json" `
-OutputPath "artifacts\evetui-capture\latest\eve-world-smoke-tui-grid.json" `
-RequestOutputPath "artifacts\evetui-capture\latest\eve-world-smoke-capture-request.json" `
-ExpectedProviderId "eve.world-smoke" `
-ExpectedSurfaceId "eve.world-smoke.surface" `
-ExpectedCommandBoundary "eve.world-smoke.commands" `
-ExpectedReceiptSchema "eve.world_smoke.command_receipt.v1"
node .\tools\parity\run-parity.mjs
& (Join-Path $PSScriptRoot "run-eveconformance-handoff-smoke.ps1")
& (Join-Path $PSScriptRoot "run-plugin-handoff-smoke.ps1")

View file

@ -145,12 +145,16 @@ node $consumerScript $consumerExport `
--expect-runtime-capture-status android-flutter:adb-png `
--expect-runtime-capture-status unity-uitoolkit:json-projection `
--expect-runtime-capture-artifact unity-uitoolkit:json-projection:gamecult.eve.unity_uitoolkit_projection.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact unity-uitoolkit:json-projection:gamecult.eve.unity_uitoolkit_projection.v1:eve.world-smoke:eve.world-smoke.surface `
--expect-runtime-capture-status unity-scene:json-projection `
--expect-runtime-capture-artifact unity-scene:json-projection:gamecult.eve.unity_scene_projection.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact unity-scene:json-projection:gamecult.eve.unity_scene_projection.v1:eve.world-smoke:eve.world-smoke.surface `
--expect-runtime-capture-status electron-shell:json-projection `
--expect-runtime-capture-artifact electron-shell:json-projection:gamecult.eve.electron_shell_projection.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact electron-shell:json-projection:gamecult.eve.electron_shell_projection.v1:eve.world-smoke:eve.world-smoke.surface `
--expect-runtime-capture-status tui:json-grid `
--expect-runtime-capture-artifact tui:json-grid:gamecult.eve.tui_grid.v1:aetheria:aetheria.daemon.game `
--expect-runtime-capture-artifact tui:json-grid:gamecult.eve.tui_grid.v1:eve.world-smoke:eve.world-smoke.surface `
--expect-runtime-capture-status direct2d:missing `
--expect-runtime-capture-probe unity-uitoolkit:semantic-artifact-present-capture-pending:png:EveUnity `
--expect-runtime-capture-probe unity-scene:semantic-artifact-present-capture-pending:png:EveUnity `
@ -209,6 +213,8 @@ node $consumerScript $consumerExport `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.conformanceAttachment:runtime.captureArtifacts[]" `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.requiredProvider:aetheria" `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.requiredSurface:aetheria.daemon.game" `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.0.providerId:eve.world-smoke" `
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
--expect-runtime-lifecycle-status unity-scene:release:pending-unity-scene-package `
--expect-runtime-lifecycle-status unity-scene:test:provider-shell-contract-skeleton `
--expect-runtime-lifecycle-status unity-scene:capture:pending-unity-scene-capture `
@ -233,6 +239,8 @@ node $consumerScript $consumerExport `
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.requestBuilder:tools/eveunity/eveunity-capture-contract.mjs" `
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.advertisementPath:web/fixtures/aetheria.provider-advertisement.json" `
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.requiredSurface:aetheria.daemon.game" `
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.additionalProviderSurfaces.0.providerId:eve.world-smoke" `
--expect-runtime-lifecycle-field "unity-scene:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
--expect-runtime-lifecycle-status electron-shell:release:pending-electron-package `
--expect-runtime-lifecycle-status electron-shell:test:provider-shell-contract-skeleton `
--expect-runtime-lifecycle-status electron-shell:capture:pending-electron-window-capture `
@ -252,6 +260,8 @@ node $consumerScript $consumerExport `
--expect-runtime-lifecycle-field "electron-shell:capture:captureContract.requestBuilder:tools/eveelectron/eveelectron-capture-contract.mjs" `
--expect-runtime-lifecycle-field "electron-shell:capture:captureContract.advertisementPath:web/fixtures/aetheria.provider-advertisement.json" `
--expect-runtime-lifecycle-field "electron-shell:capture:captureContract.requiredSurface:aetheria.daemon.game" `
--expect-runtime-lifecycle-field "electron-shell:capture:captureContract.additionalProviderSurfaces.0.providerId:eve.world-smoke" `
--expect-runtime-lifecycle-field "electron-shell:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
--expect-runtime-lifecycle-status tui:release:pending-tui-package `
--expect-runtime-lifecycle-status tui:test:provider-shell-contract-skeleton `
--expect-runtime-lifecycle-status tui:capture:cell-grid-json-capture `
@ -272,7 +282,9 @@ node $consumerScript $consumerExport `
--expect-runtime-lifecycle-field "tui:capture:captureContract.requestSchema:gamecult.eve.runtime_capture_request.v1" `
--expect-runtime-lifecycle-field "tui:capture:captureContract.requestBuilder:tools/evetui/evetui-capture-contract.mjs" `
--expect-runtime-lifecycle-field "tui:capture:captureContract.advertisementPath:web/fixtures/aetheria.provider-advertisement.json" `
--expect-runtime-lifecycle-field "tui:capture:captureContract.requiredSurface:aetheria.daemon.game"
--expect-runtime-lifecycle-field "tui:capture:captureContract.requiredSurface:aetheria.daemon.game" `
--expect-runtime-lifecycle-field "tui:capture:captureContract.additionalProviderSurfaces.0.providerId:eve.world-smoke" `
--expect-runtime-lifecycle-field "tui:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface"
if ($LASTEXITCODE -ne 0) {
throw "Runtime owner conformance consumer smoke failed with exit code $LASTEXITCODE"