161 lines
6.4 KiB
JSON
161 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"
|
|
],
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|