This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
EveElectron/eve-runtime-capability.json
2026-07-10 13:55:06 +01:00

162 lines
6.4 KiB
JSON

{
"schema": "gamecult.eve.runtime_capability.v1",
"runtimeId": "electron-shell",
"title": "Electron shell",
"owner": "EveElectron",
"incubation": {
"ownerRepo": "EveElectron",
"currentHostRepo": "EveElectron",
"splitTarget": "EveElectron",
"graduationTrigger": "Graduated: the runtime body and package are owned here."
},
"supportedFeatures": [
"providerAdvertisements",
"commandTransport",
"surfaceTreeProjection",
"embeddedDocuments",
"pluginProjection",
"securePreloadBridge",
"windowLifecycle",
"liveProviderHost",
"providerAssets"
],
"supportedPlugins": [
{
"pluginId": "sai.vn",
"capabilities": ["vn.stage", "story.choose", "story.continue", "story.jump"],
"projectionAdapter": "EveElectronShell.buildPluginProjection"
},
{
"pluginId": "norn.graph",
"capabilities": ["embed.norn"],
"projectionAdapter": "EveElectronShell.buildPluginProjection"
},
{
"pluginId": "tex.math",
"capabilities": ["embed.tex", "tex.inline", "tex.block"],
"projectionAdapter": "EveElectronShell.buildPluginProjection"
}
],
"unsupportedPlugins": [],
"worldSurfaceLowering": [
{
"targetId": "electron-shell",
"surfaceKinds": ["interactive-world", "interactive-world-editor"],
"projectionKinds": ["provider-authored-world-surface", "provider-authored-world-editor-surface"],
"supportLevel": "provider-shell-surface-tree-command-surface",
"ownership": "runtime-lowers-provider-world-surface-without-owning-world-state",
"evidencePaths": [
"src/eve-electron-shell.mjs",
"src/window-host.mjs",
"src/eve-provider-preload.cjs",
"src/eve-provider-preload-entry.cjs",
"src/eve-electron-renderer.mjs",
"src/live-provider-host.mjs",
"test/shell.test.mjs",
"test/window-host.test.mjs",
"test/preload.test.cjs",
"test/renderer.test.mjs",
"test/live-provider-host.test.mjs"
]
}
],
"commandTransport": {
"schema": "gamecult.eve.command_invocation.v1",
"status": "active",
"emitter": "EveElectronShell.createCommandIntent",
"clientId": "electron-shell",
"authority": "Electron emits command intents through provider-advertised boundaries; providers accept, deny, and publish receipts."
},
"lifecycle": {
"release": {
"ownerRepo": "EveElectron",
"status": "owner-npm-package",
"releaseContract": {
"ownerRepo": "EveElectron",
"packageName": "@gamecult/eve-electron",
"packageRoot": ".",
"versionSource": "package.json",
"tagPattern": "eveelectron-v{version}",
"artifactKind": "npm-package",
"requestSchema": "gamecult.eve.runtime_release_request.v1",
"requestBuilder": "npm pack",
"artifactPattern": "gamecult-eve-electron-{version}.tgz",
"publishProof": "npm pack is produced from the EveElectron owner repository."
},
"evidencePaths": ["../EveElectron/package.json", "../EveElectron/package-lock.json", "../EveElectron/src/index.mjs", "../EveElectron/src/index.d.ts"],
"pendingProofs": []
},
"test": {
"ownerRepo": "EveElectron",
"status": "owner-package-tests-and-aetheria-live-smoke",
"testContract": {
"ownerRepo": "EveElectron",
"runnerKind": "node-and-provider-live-smoke",
"runnerScript": "npm test",
"consumerProject": "E:\\Projects\\Aetheria",
"packageName": "@gamecult/eve-electron",
"testAssembly": "test/*.test.*",
"testPlatform": "Node contract tests plus Electron",
"resultsArtifact": "Aetheria.Rts.Web Stage 7C smoke result",
"logArtifact": "Aetheria.Rts.Web Stage 7C log",
"manifestMutation": "Aetheria consumes the package through a file dependency; provider state remains Aetheria-owned."
},
"evidencePaths": ["../EveElectron/test/shell.test.mjs", "../EveElectron/test/window-host.test.mjs", "../EveElectron/test/preload.test.cjs"],
"pendingProofs": []
},
"capture": {
"ownerRepo": "EveElectron",
"status": "owner-window-captures",
"captureContract": {
"ownerRepo": "EveElectron",
"runtimeId": "electron-shell",
"targetId": "electron-shell",
"requestSchema": "gamecult.eve.runtime_capture_request.v1",
"requestBuilder": "scripts/capture-conformance.ps1",
"advertisementPath": "provider-supplied",
"captureKind": "electron-window-png",
"artifactKind": "png",
"artifactPattern": "artifacts/capture/{providerId}/{surfaceId}.png",
"conformanceAttachment": "runtime.captureArtifacts[]",
"requiredProvider": "aetheria",
"requiredSurface": "aetheria.daemon.game",
"additionalProviderSurfaces": [
{ "providerId": "eve.world-smoke", "surfaceId": "eve.world-smoke.surface", "purpose": "Non-product control." }
],
"authority": "Capture observes Electron projection only; provider state and receipts remain provider-owned.",
"publishProof": "Owner-repo Electron PNGs attach to Eve conformance."
},
"evidencePaths": [
"../EveElectron/scripts/capture-conformance.ps1",
"../EveElectron/capture/main.mjs",
"../EveElectron/artifacts/capture/generic-world/window.png",
"../EveElectron/artifacts/capture/aetheria-world/window.png"
],
"pendingProofs": []
}
},
"capture": {
"status": "owner-window-png",
"note": "EveElectron produces native offscreen-painted window PNGs and runtime witnesses for a generic provider and Aetheria.",
"artifacts": [
{
"kind": "png",
"schema": "image/png",
"path": "../EveElectron/artifacts/capture/generic-world/window.png",
"providerId": "eve.world-smoke",
"surfaceId": "eve.world-smoke.surface",
"sourceSurfacePath": "../Eve/web/fixtures/eve-world-smoke-surface.json",
"requestPath": "../EveElectron/artifacts/capture/generic-world/runtime-witness.json"
},
{
"kind": "png",
"schema": "image/png",
"path": "../EveElectron/artifacts/capture/aetheria-world/window.png",
"providerId": "aetheria",
"surfaceId": "aetheria.daemon.game",
"sourceSurfacePath": "../Aetheria/conformance/eve/aetheria-world-surface.json",
"requestPath": "../EveElectron/artifacts/capture/aetheria-world/runtime-witness.json"
}
]
}
}