@volter/editor-game 0.5.66 → 0.5.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/contributions/audio-unlock.service.ts +2 -2
  2. package/contributions/autoplay.service.ts +1 -1
  3. package/contributions/bridge.command.ts +3 -3
  4. package/contributions/canvas/component-board.service.ts +16 -0
  5. package/contributions/canvas/design-time-mount.service.ts +45 -0
  6. package/contributions/canvas-story-capture.service.ts +12 -0
  7. package/contributions/edit-mode-audio.service.ts +2 -2
  8. package/contributions/edit-mode-networking.service.ts +1 -1
  9. package/contributions/gameplay.command.ts +4 -4
  10. package/contributions/generation.service.ts +1 -1
  11. package/contributions/godot.style.ts +26 -6
  12. package/contributions/godot.view.ts +6 -0
  13. package/contributions/ingest.service.ts +2 -2
  14. package/contributions/instances.command.ts +1 -1
  15. package/contributions/navmesh.menu.ts +1 -1
  16. package/contributions/network-observer.service.ts +14 -0
  17. package/contributions/play.command.ts +10 -4
  18. package/contributions/react/component-board.service.ts +1 -1
  19. package/contributions/react/design-time-mount.service.ts +1 -1
  20. package/contributions/scene-document.service.ts +3 -3
  21. package/contributions/state-watch.menu.ts +1 -1
  22. package/contributions/state-watch.utility.tsx +1 -1
  23. package/contributions/team-playtest.service.ts +4 -4
  24. package/contributions/three/component-board.service.ts +1 -1
  25. package/contributions/three/component-verbs.command.ts +6 -6
  26. package/contributions/three/three-authoring.service.ts +8 -5
  27. package/contributions/three-story-capture.service.ts +12 -0
  28. package/contributions/unity.style.ts +17 -7
  29. package/contributions/unity.view.ts +6 -0
  30. package/contributions/unreal.style.ts +10 -2
  31. package/contributions/unreal.view.ts +5 -0
  32. package/package.json +20 -10
  33. package/src/asset-budget/AssetBudgetPanel.tsx +1 -1
  34. package/src/asset-budget/asset-budget-model.ts +1 -1
  35. package/src/audio/AudioDebuggerPanel.tsx +1 -1
  36. package/src/bridge/dispatch.ts +14 -14
  37. package/src/bridge/live-frames.ts +1 -1
  38. package/src/bridge/screenshot.ts +3 -3
  39. package/src/build/BuildProfilesPanel.tsx +3 -3
  40. package/src/canvas/canvas-board/CanvasBoardDocument.tsx +676 -0
  41. package/src/canvas/canvas-board/canvas-board-model.ts +407 -0
  42. package/src/canvas/canvas-board/canvas-component-board.ts +56 -0
  43. package/src/canvas/canvas-design-mount.ts +524 -0
  44. package/src/canvas/design-time-canvas-mount.ts +79 -0
  45. package/src/coverage/live-authoring-surface.ts +5 -5
  46. package/src/coverage/live-project-verbs.ts +1 -1
  47. package/src/coverage/native-system-coverage.ts +5 -5
  48. package/src/coverage/root-coverage.ts +1 -1
  49. package/src/coverage/session-coverage.ts +3 -3
  50. package/src/design-system-stories/ApplicationChrome.stories.tsx +5 -5
  51. package/src/design-system-stories/InspectorNarrowBodies.stories.tsx +7 -7
  52. package/src/edit-mode/edit-mode-audio.ts +4 -4
  53. package/src/edit-mode/edit-mode-networking.ts +2 -2
  54. package/src/game-document/GameCaptureFrameButton.tsx +1 -1
  55. package/src/game-document/GameDocument.tsx +2 -2
  56. package/src/game-document/GamePanel.tsx +4 -4
  57. package/src/game-document/InstanceInspectorPicker.tsx +2 -2
  58. package/src/game-document/crowd-debug.ts +1 -1
  59. package/src/game-document/device-preview.ts +10 -11
  60. package/src/game-document/physics-debug.ts +1 -1
  61. package/src/generation/GenerationActivity.tsx +3 -3
  62. package/src/generation/generation-documents.tsx +5 -5
  63. package/src/generation/generation-jobs.ts +1 -1
  64. package/src/host/adapter-runtime-bindings.ts +96 -5
  65. package/src/host/authoring/babylon-authoring-adapter.ts +6 -6
  66. package/src/host/authoring/gesture-persist.ts +1 -1
  67. package/src/host/authoring/ingest-data-writer.ts +1 -1
  68. package/src/host/authoring/ingest-source-persistence.ts +4 -4
  69. package/src/host/authoring/mounted-authoring.ts +4 -4
  70. package/src/host/authoring/phaser-live-authoring-adapter.ts +4 -4
  71. package/src/host/authoring/pixi-authoring-adapter.ts +40 -15
  72. package/src/host/authoring/pixi-creation-site-write-target.ts +2 -2
  73. package/src/host/authoring/pixi-live-write-target.ts +4 -4
  74. package/src/host/authoring/pixi-source-identity.ts +3 -3
  75. package/src/host/authoring/pixi-source-write-target.ts +1614 -0
  76. package/src/host/authoring/pixi-still-presentation.ts +1 -1
  77. package/src/host/authoring/pixi-structure-history.ts +2 -2
  78. package/src/host/authoring/pixi-transform-channels.ts +16 -14
  79. package/src/host/authoring/source-persistence-backend.ts +3 -3
  80. package/src/host/authoring/struct-write-pipe.ts +1 -1
  81. package/src/host/binding-resolver.ts +8 -9
  82. package/src/host/browser-transpile.ts +1 -1
  83. package/src/host/canvas-entry-runtime.ts +58 -47
  84. package/src/host/canvas-preview-frames.ts +482 -0
  85. package/src/host/components/CameraAuthoringOverlay.tsx +1 -1
  86. package/src/host/components/HeaderTelemetry.tsx +4 -4
  87. package/src/host/components/PixiIsolationSceneContent.tsx +10 -10
  88. package/src/host/components/ThreeIsolationSceneContent.tsx +3 -3
  89. package/src/host/components/frame-debugger-model.ts +2 -2
  90. package/src/host/components/header-telemetry-model.ts +2 -2
  91. package/src/host/components/scene-document.tsx +14 -14
  92. package/src/host/components/utility-view-state.ts +1 -1
  93. package/src/host/components/world-root-stage-binding.tsx +12 -12
  94. package/src/host/components/world-root-stage.ts +70 -49
  95. package/src/host/coverage/system-adapter-coverage.ts +3 -4
  96. package/src/host/design-system-stories/fixtures/editor-runtime.tsx +9 -11
  97. package/src/host/document-preview-three.ts +1 -1
  98. package/src/host/entry-adjudication.ts +6 -6
  99. package/src/host/game-css-scope-transform.ts +4 -0
  100. package/src/host/game-realm-page.ts +1 -1
  101. package/src/host/gameplay-export.ts +25 -14
  102. package/src/host/gameplay-recording.ts +5 -5
  103. package/src/host/gated-globals.ts +2 -2
  104. package/src/host/history/json-history-resource.ts +1 -1
  105. package/src/host/projection/pixi.ts +24 -2
  106. package/src/host/r3f-entry-runtime.ts +65 -34
  107. package/src/host/react-mount-runtime.ts +7 -48
  108. package/src/host/realm-services.ts +1 -1
  109. package/src/host/roots/canvas-root.tsx +361 -0
  110. package/src/host/roots/r3f-root.tsx +473 -0
  111. package/src/host/roots/react-root.ts +9 -43
  112. package/src/host/served-bundle-runtime-modules.ts +1 -19
  113. package/src/host/server-log-bridge.ts +2 -2
  114. package/src/host/stories/mounted-story-viewport-source.ts +1 -1
  115. package/src/host/stories/pixi-story-model.ts +30 -0
  116. package/src/host/stories/story-media-captures.ts +46 -0
  117. package/src/host/stories/story-media-presence.ts +3 -3
  118. package/src/host/stories/story-pixi-preview.ts +408 -0
  119. package/src/host/stories/story-three-preview.ts +806 -0
  120. package/src/host/stories/three-story-captures.ts +35 -0
  121. package/src/host/story-three-preview-runtime.ts +56 -0
  122. package/src/host/use-active-performance-source.ts +2 -2
  123. package/src/host/viewport-pose-memory.ts +1 -1
  124. package/src/host/viewport-root-presentation.ts +6 -5
  125. package/src/ingest/active-ingest.ts +1 -1
  126. package/src/ingest/authoring/ingest-dom-surface-authoring.ts +4 -4
  127. package/src/ingest/authoring/ingest-root-adapter.ts +8 -8
  128. package/src/ingest/deferred-ingest-play.ts +6 -6
  129. package/src/ingest/discovery-public-ingest.ts +2 -2
  130. package/src/ingest/ingest-boot-viewport.ts +2 -2
  131. package/src/ingest/ingest-canvas-scene-document.tsx +8 -8
  132. package/src/ingest/ingest-canvas-scene.ts +3 -3
  133. package/src/ingest/ingest-evidence-hook.ts +1 -1
  134. package/src/ingest/ingest-frame-snapshot.ts +1 -1
  135. package/src/ingest/ingest-play-control.ts +1 -1
  136. package/src/ingest/ingest-render-debug.ts +10 -10
  137. package/src/ingest/ingest-siblings.ts +13 -25
  138. package/src/ingest/module-mode.ts +14 -14
  139. package/src/ingest/mount-canvas-ingest-root.ts +21 -21
  140. package/src/ingest/mount-coverage.ts +2 -2
  141. package/src/ingest/mount-dom-ingest-root.ts +11 -11
  142. package/src/ingest/mount-ingest-root.ts +8 -8
  143. package/src/ingest/mount-three-ingest-root.ts +8 -8
  144. package/src/ingest/resolve-canvas.ts +1 -1
  145. package/src/ingest/served-html-boot.ts +1 -1
  146. package/src/ingest/surface-canvas.ts +1 -1
  147. package/src/ingest/unmount-ingest-root.ts +5 -5
  148. package/src/navmesh/navmesh-handler.ts +24 -16
  149. package/src/network/NetworkInspectorPanel.tsx +449 -14
  150. package/src/network/network-inspector-model.ts +14 -2
  151. package/src/play/play-log-events.ts +1 -1
  152. package/src/play/play-mode.ts +76 -133
  153. package/src/play/play-recording.ts +1 -1
  154. package/src/play/react-play-live-authoring.ts +3 -3
  155. package/src/play/run-selection.ts +93 -0
  156. package/src/play-bar/PlayBar.tsx +20 -39
  157. package/src/profiler/FrameDebuggerPanel.tsx +1 -1
  158. package/src/profiler/PerformancePanel.tsx +3 -3
  159. package/src/react/design-time-react-mount.ts +23 -65
  160. package/src/react/dom-authoring-adapter.ts +9 -9
  161. package/src/react/react-inspector-section.tsx +5 -5
  162. package/src/react/react-world-authoring-adapter.ts +11 -11
  163. package/src/react/story-documents/story-documents.tsx +9 -9
  164. package/src/react/ui-board-document.tsx +7 -7
  165. package/src/react/ui-component-board.ts +2 -2
  166. package/src/runtime/adapter/audio-meter.ts +21 -0
  167. package/src/runtime/adapter/first-party-audio-system.ts +230 -0
  168. package/src/runtime/adapter/ingest/contract-debug-adapter.ts +114 -0
  169. package/src/runtime/adapter/ingest/contract-system-adapters.ts +256 -0
  170. package/src/runtime/adapter/ingest/merge-debug-adapters.ts +197 -0
  171. package/src/runtime/adapter/ingest/observation-debug-adapter.ts +162 -0
  172. package/src/runtime/adapter/ingest/upstream-pin.ts +51 -0
  173. package/src/runtime/adapter/native-debug-module.ts +498 -0
  174. package/src/runtime/audio/bus-mixer.ts +161 -0
  175. package/src/runtime/audio/pose-guard.ts +80 -0
  176. package/src/runtime/core/frame-pacing.ts +126 -0
  177. package/src/runtime/core/game-loop.ts +225 -0
  178. package/src/runtime/core/game-scoped-slot.ts +28 -0
  179. package/src/runtime/core/seeded-random.ts +162 -0
  180. package/src/runtime/core/sim-clock.ts +391 -0
  181. package/src/runtime/core/system-runner.ts +269 -0
  182. package/src/runtime/core/types.ts +104 -0
  183. package/src/runtime/create-runtime.ts +1128 -0
  184. package/src/runtime/debug-bridge.ts +570 -0
  185. package/src/runtime/debug-registry.ts +899 -0
  186. package/src/runtime/dev/chrome-trace.ts +153 -0
  187. package/src/runtime/dev/instruments.ts +403 -0
  188. package/src/runtime/dev/logger.ts +119 -0
  189. package/src/runtime/dev/performance-profiler.ts +367 -0
  190. package/src/runtime/dev/register-render-vitals.ts +276 -0
  191. package/src/runtime/dev/render-census.ts +354 -0
  192. package/src/runtime/dev/render-debug-adapter.ts +218 -0
  193. package/src/runtime/dev/render-memory.ts +226 -0
  194. package/src/runtime/dev/render-vitals.ts +338 -0
  195. package/src/runtime/dev/static-batch-advisor.ts +188 -0
  196. package/src/runtime/dev/webgl-frame-capture.ts +366 -0
  197. package/src/runtime/dev/webgl-gpu-timer.ts +53 -0
  198. package/src/runtime/dev-build.ts +47 -0
  199. package/src/runtime/game.ts +1636 -0
  200. package/src/runtime/gameplay-rng-trap.ts +135 -0
  201. package/src/runtime/host-context.ts +64 -0
  202. package/src/runtime/input-router.ts +169 -0
  203. package/src/runtime/mount-manifest.ts +480 -0
  204. package/src/runtime/pixi/authoring.ts +706 -0
  205. package/src/runtime/pixi/ingest.ts +116 -0
  206. package/src/runtime/pixi/physics-registry.ts +49 -0
  207. package/src/runtime/pixi/render-pass-bracket.ts +117 -0
  208. package/src/runtime/pixi/scene-capture.ts +179 -0
  209. package/src/runtime/pixi/system-adapters.ts +69 -0
  210. package/src/runtime/playtest.ts +22 -0
  211. package/src/runtime/presentation.ts +141 -0
  212. package/src/runtime/render-control.ts +642 -0
  213. package/src/runtime/render-seed.ts +77 -0
  214. package/src/runtime/run-ticks-settled.ts +73 -0
  215. package/src/runtime/setup/setup-audio.ts +72 -0
  216. package/src/services/audio-pose-guard.ts +2 -2
  217. package/src/services/game-audio.ts +152 -0
  218. package/src/services/game-network.ts +657 -0
  219. package/src/services/game-physics.ts +334 -0
  220. package/src/state-watch/StateWatchPanel.tsx +1 -1
  221. package/src/three/authoring/camera-runtime-inspector-section.tsx +3 -2
  222. package/src/three/authoring/constraint-inspector-section.tsx +6 -5
  223. package/src/three/authoring/model-asset-inspector-section.tsx +7 -6
  224. package/src/three/authoring/oid-source-persistence.ts +7 -7
  225. package/src/three/authoring/r3f-design-session.ts +58 -54
  226. package/src/three/authoring/r3f-source-authoring-adapter.ts +95 -91
  227. package/src/three/authoring/reflection-probe-inspector-section.tsx +3 -2
  228. package/src/three/authoring/three-authoring-adapter.ts +29 -29
  229. package/src/three/component-verbs/extract-menu.ts +7 -6
  230. package/src/three/component-verbs/fork-menu.ts +7 -6
  231. package/src/three/component-verbs/internals-menu.ts +2 -2
  232. package/src/three/story-documents/three-story-documents.tsx +13 -13
  233. package/src/three/three-board/ThreeBoardDocument.tsx +13 -12
  234. package/src/three/three-board/board-scene.ts +6 -6
  235. package/src/three/three-board/three-component-board.ts +2 -2
  236. package/src/services/game-audio-unlock.ts +0 -48
@@ -15,6 +15,8 @@ export const view: ViewPreset = {
15
15
  id: 'unreal',
16
16
  title: 'Unreal',
17
17
  layer: {
18
+ // Unreal's level viewport: a 90° horizontal field of view, its viewport setting's default.
19
+ camera: { fov: { degrees: 90, axis: 'horizontal' } },
18
20
  all: {
19
21
  lighting: {
20
22
  source: 'preview',
@@ -53,6 +55,9 @@ export const view: ViewPreset = {
53
55
  },
54
56
  },
55
57
  overlays: {
58
+ // No zoom and pan buttons under the gizmo and no camera readout: the engine draws neither.
59
+ navigationControls: false,
60
+ cameraReadout: false,
56
61
  navigation: 'indicator',
57
62
  grid: {
58
63
  visible: false,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@volter/editor-game",
3
3
  "author": "Volter AI, Inc.",
4
4
  "license": "AGPL-3.0-only",
5
- "version": "0.5.66",
5
+ "version": "0.5.67",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -24,7 +24,11 @@
24
24
  "exports": {
25
25
  "./contributions/*": "./contributions/*",
26
26
  "./*": "./src/*",
27
- "./package.json": "./package.json"
27
+ "./package.json": "./package.json",
28
+ "./host/canvas-preview-frames": "./src/host/canvas-preview-frames.ts",
29
+ "./host/stories/pixi-story-model": "./src/host/stories/pixi-story-model.ts",
30
+ "./host/stories/story-pixi-preview": "./src/host/stories/story-pixi-preview.ts",
31
+ "./host/stories/story-media-captures": "./src/host/stories/story-media-captures.ts"
28
32
  },
29
33
  "vgai": {
30
34
  "contributions": [
@@ -33,6 +37,7 @@
33
37
  "./contributions/asset-budget.document.tsx",
34
38
  "./contributions/asset-budget.menu.ts",
35
39
  "./contributions/audio-unlock.service.ts",
40
+ "./contributions/network-observer.service.ts",
36
41
  "./contributions/audio.utility.tsx",
37
42
  "./contributions/autoplay.service.ts",
38
43
  "./contributions/bridge.command.ts",
@@ -74,6 +79,8 @@
74
79
  "./contributions/unity.view.ts",
75
80
  "./contributions/unreal.style.ts",
76
81
  "./contributions/unreal.view.ts",
82
+ "./contributions/canvas/component-board.service.ts",
83
+ "./contributions/canvas/design-time-mount.service.ts",
77
84
  "./contributions/react/component-board.service.ts",
78
85
  "./contributions/react/design-time-mount.service.ts",
79
86
  "./contributions/react/react-inspector.service.ts",
@@ -86,17 +93,19 @@
86
93
  "./contributions/three/model-asset-sections.service.ts",
87
94
  "./contributions/three/reflection-probe-capture.inspector.tsx",
88
95
  "./contributions/three/story-documents.service.ts",
89
- "./contributions/three/three-authoring.service.ts"
96
+ "./contributions/three/three-authoring.service.ts",
97
+ "./contributions/three-story-capture.service.ts",
98
+ "./contributions/canvas-story-capture.service.ts"
90
99
  ],
91
100
  "serving": "./dist-node/serving.mjs"
92
101
  },
93
102
  "dependencies": {
94
- "@volter/editor-core": "0.5.66",
95
- "@volter/editor-sdk": "0.5.66",
96
- "@volter/editor-project": "0.5.66",
97
- "@volter/editor-threejs": "0.5.66",
98
- "@volter/threejs-runtime": "0.5.66",
99
- "@volter/game-runtime": "0.5.66",
103
+ "@volter/editor-sdk": "0.5.67",
104
+ "@volter/editor-project": "0.5.67",
105
+ "@volter/editor-threejs": "0.5.67",
106
+ "@volter/threejs-runtime": "0.5.67",
107
+ "@volter/game-runtime": "0.5.67",
108
+ "@colyseus/msgpackr": "^1.11.3",
100
109
  "@colyseus/schema": "^4.0.14",
101
110
  "@colyseus/sdk": "^0.17.34",
102
111
  "@fortawesome/free-solid-svg-icons": "^7.2.0",
@@ -110,6 +119,7 @@
110
119
  "draco3d": "^1.5.7",
111
120
  "esbuild-wasm": "0.25.12",
112
121
  "fastnoise-lite": "^1.1.1",
122
+ "loglayer": "^9.1.0",
113
123
  "mediabunny": "1.56.2",
114
124
  "meshoptimizer": "^1.2.0",
115
125
  "three": "^0.180.0",
@@ -127,7 +137,7 @@
127
137
  "xstate": "^5.32.4",
128
138
  "zod": "^4.3.6",
129
139
  "@fortawesome/fontawesome-svg-core": "^7.2.0",
130
- "@volter/editor-react": "0.5.66"
140
+ "@volter/editor-react": "0.5.67"
131
141
  },
132
142
  "peerDependencies": {
133
143
  "@sparkjsdev/spark": "^2.1.0",
@@ -12,7 +12,7 @@
12
12
  * rendered with an explicit `≥`, inspection failures with their reason).
13
13
  */
14
14
 
15
- import { getStorageBackend } from '@volter/editor-core/storage/index';
15
+ import { getStorageBackend } from '@volter/editor-sdk/kit/storage/index';
16
16
  import { editorHost } from '@volter/editor-sdk/host';
17
17
  import {
18
18
  accent,
@@ -288,7 +288,7 @@ const MANIFEST_NAME = 'vgai.project.json';
288
288
  * The manifest is the ONLY JSON document that owns asset references. An
289
289
  * `.inputmap.json` was scanned as one too, and could not be. `collectStringPaths`
290
290
  * below yields string VALUES only (action names are record KEYS — never
291
- * candidates), and every string value `InputMapFileSchema` admits is a binding
291
+ * candidates), and every string value an input map carries is a binding
292
292
  * `type` literal, a `KeyboardEvent.code`, a `direction`/`valueType` enum, or an
293
293
  * injected/touch `sourceId`; button/axis indexes are numbers. None of them is a
294
294
  * path, so the only value that could ever have resolved to an asset was a
@@ -23,7 +23,7 @@
23
23
 
24
24
  import { editorHost } from '@volter/editor-sdk/host';
25
25
  import { Button, fontSizeVar, spaceVar, themeVars } from '@volter/editor-sdk/widgets';
26
- import { meterPercent } from '@volter/game-runtime/adapter/audio-meter';
26
+ import { meterPercent } from '../runtime/adapter/audio-meter';
27
27
  import type { AudioAdapter, AudioDebugEvent, AudioMeterFrame } from '@volter/editor-project/adapter';
28
28
  import { useEffect, useReducer, useRef, useState } from 'react';
29
29
  import {
@@ -13,15 +13,15 @@ import {
13
13
  getActiveSystems,
14
14
  InstanceResolutionError,
15
15
  systemsForInstance,
16
- } from '@volter/editor-core/authoring/active-systems';
17
- import { collectPlayRunPageErrors } from '@volter/editor-core/command-listener';
16
+ } from '@volter/editor-sdk/kit/authoring/active-systems';
17
+ import { collectPlayRunPageErrors } from '@volter/editor-sdk/kit/command-listener';
18
18
  import { gameContractEpoch } from '../host/coverage/game-contract-seam-evidence';
19
19
  import { recordLiveSeamEvidence } from '@volter/editor-sdk/kit/live-seam-evidence';
20
20
  import { systemAdapterEpoch } from '@volter/editor-sdk/kit/system-seam-evidence';
21
21
  import {
22
22
  HOLD_STARVED_NO_DRIVER_REASON,
23
23
  waitForHoldBudget,
24
- } from '@volter/game-runtime/runtime/debug-bridge';
24
+ } from '../runtime/debug-bridge';
25
25
  import type { SystemAdapters } from '@volter/editor-project/adapter';
26
26
  import { activeIngestContract } from '../ingest/ingest-play-control';
27
27
  import { getPlayRuntimeAccess } from '../play/play-mode';
@@ -39,7 +39,7 @@ import { getPlayRuntimeAccess } from '../play/play-mode';
39
39
  * game, so it never creates a play session at all, and what it publishes
40
40
  * through `setActiveSystems` is the debug adapter projected from its own
41
41
  * declared contract (`ingest-root-adapter.ts` →
42
- * `@volter/game-runtime/adapter/ingest/contract-debug-adapter`). The question asked here is
42
+ * `@volter/editor-game/runtime/adapter/ingest/contract-debug-adapter`). The question asked here is
43
43
  * only ever "has a live mount published a plane", never who mounted it.
44
44
  * `notPlayingResult()` stays the answer for the genuinely-no-world case. */
45
45
  export const hasLiveDebugPlane = (): boolean => getActiveSystems().debug != null;
@@ -48,7 +48,7 @@ export const hasLiveDebugPlane = (): boolean => getActiveSystems().debug != null
48
48
  * `Error` carrying a machine-readable `code` (and optional `data`), the same
49
49
  * shape `DebugError`/`InputActionError` already throw. Used by
50
50
  * `dispatchBridgeMethod` below for its OWN precondition failures (no debug
51
- * adapter installed, no InputManager wired) so they survive
51
+ * adapter installed, no input door wired) so they survive
52
52
  * `structuredErrorResult` exactly like an engine-thrown error would. */
53
53
  export function bridgeError(code: string, message: string, data?: Record<string, unknown>): Error {
54
54
  const err = new Error(message) as Error & { code: string; data?: unknown };
@@ -109,7 +109,7 @@ function recordContractSystemUse(member: string, value: unknown, name?: string):
109
109
 
110
110
  /**
111
111
  * #140 — the generic session-wire dispatch table: the SAME method-name
112
- * surface `window.__vgai` exposes (`@volter/game-runtime/runtime/debug-bridge`'s
112
+ * surface `window.__vgai` exposes (`@volter/editor-game/runtime/debug-bridge`'s
113
113
  * `VgaiDebugHandle` — `state`/`stateAll`/`providers`/`commands`/`events`/
114
114
  * `snapshot`/`invoke`/`runTicks`/`input.*`), built from the SAME
115
115
  * registry-backed accessors the sibling
@@ -337,8 +337,8 @@ export async function dispatchBridgeMethod(
337
337
  if (!inputTarget) {
338
338
  throw bridgeError(
339
339
  'DEBUG_INPUT_UNAVAILABLE',
340
- `session wire: ${method}() has no virtual-input target wired — no default three ` +
341
- "world has mounted yet, or this project's mount path never wired one",
340
+ `session wire: ${method}() has no virtual-input target wired — no root ` +
341
+ "entry exports `debug.input` (the game's own input door), or none has mounted yet",
342
342
  );
343
343
  }
344
344
  if (method === 'input.setVirtualAction') {
@@ -382,8 +382,8 @@ export async function dispatchBridgeMethod(
382
382
  if (!inputTarget) {
383
383
  throw bridgeError(
384
384
  'DEBUG_INPUT_UNAVAILABLE',
385
- 'session wire: input.scheduleActionAtTick() has no virtual-input target wired — no ' +
386
- "default three world has mounted yet, or this project's mount path never wired one",
385
+ 'session wire: input.scheduleActionAtTick() has no virtual-input target wired — no root ' +
386
+ "entry exports `debug.input` (the game's own input door), or none has mounted yet",
387
387
  );
388
388
  }
389
389
  return inputTarget.scheduleActionAtTick(tick, action, value);
@@ -405,8 +405,8 @@ export async function dispatchBridgeMethod(
405
405
  if (!inputTarget) {
406
406
  throw bridgeError(
407
407
  'DEBUG_INPUT_UNAVAILABLE',
408
- `session wire: ${method}() has no virtual-input target wired — no default three ` +
409
- "world has mounted yet, or this project's mount path never wired one",
408
+ `session wire: ${method}() has no virtual-input target wired — no root ` +
409
+ "entry exports `debug.input` (the game's own input door), or none has mounted yet",
410
410
  );
411
411
  }
412
412
  if (method === 'input.injectPointerDelta') {
@@ -430,8 +430,8 @@ export async function dispatchBridgeMethod(
430
430
  if (!inputTarget) {
431
431
  throw bridgeError(
432
432
  'DEBUG_INPUT_UNAVAILABLE',
433
- 'session wire: holdFor() has no virtual-input target wired — no default three ' +
434
- "world has mounted yet, or this project's mount path never wired one",
433
+ 'session wire: holdFor() has no virtual-input target wired — no root ' +
434
+ "entry exports `debug.input` (the game's own input door), or none has mounted yet",
435
435
  );
436
436
  }
437
437
  const action = callArgs[0] as string;
@@ -14,7 +14,7 @@ import { getPlayRuntimeAccess } from '../play/play-mode';
14
14
  export async function captureLiveCanvasFrame(
15
15
  canvas: HTMLCanvasElement,
16
16
  ): Promise<CanvasImageSource | null> {
17
- const { liveCanvasFrame } = await import('@volter/editor-core/live-canvas-frame');
17
+ const { liveCanvasFrame } = await import('@volter/editor-sdk/kit/live-canvas-frame');
18
18
  return liveCanvasFrame(canvas);
19
19
  }
20
20
 
@@ -12,7 +12,7 @@ import {
12
12
  CaptureLayerError,
13
13
  capturePlayComposite,
14
14
  sampleFlatness,
15
- } from '@volter/editor-core/composite-screenshot';
15
+ } from '@volter/editor-sdk/kit/composite-screenshot';
16
16
  import { editorConsole } from '@volter/editor-sdk/kit/editor-console';
17
17
  import { presentationSurface } from '@volter/editor-sdk/kit/presentation-surface';
18
18
  import type { EditorCommandMessage, EditorCommandResult } from '@volter/editor-sdk/commands';
@@ -51,7 +51,7 @@ import { captureLiveCanvasFrame } from './live-frames';
51
51
  *
52
52
  * BOTH legs read a canvas, and a canvas is only readable after its frame when
53
53
  * its WebGL context was created with `preserveDrawingBuffer: true`. Every
54
- * canvas the vgai RUNTIME mounts sets it (`@volter/game-runtime/runtime/create-runtime`,
54
+ * canvas the vgai RUNTIME mounts sets it (`@volter/editor-game/runtime/create-runtime`,
55
55
  * D5 §1/§4); a canvas an INGESTED game created is the game's own and usually
56
56
  * does not, which read as a silently BLACK screenshot over a perfectly
57
57
  * healthy running game. {@link liveCanvasFrame} is the answer for that
@@ -279,7 +279,7 @@ export async function handleBridgeScreenshot(
279
279
  // Same seam as the composite leg, for the same reason: a game's own canvas
280
280
  // is unreadable this late, so ask for a same-frame copy first and fall back
281
281
  // to reading the canvas itself.
282
- const frameModule = await import('@volter/editor-core/live-canvas-frame');
282
+ const frameModule = await import('@volter/editor-sdk/kit/live-canvas-frame');
283
283
  const readable =
284
284
  frameModule.readablePngSource(await frameModule.liveCanvasFrame(canvas)) ?? canvas;
285
285
  const dataUrl = readable.toDataURL('image/png');
@@ -8,9 +8,9 @@
8
8
  * build takes real seconds and a modal would block the viewport.
9
9
  */
10
10
 
11
- import { workspaceHistoryService } from '@volter/editor-core/components/workspace-history';
12
- import { getDownloadUrl, readProjectTextFile, saveFile } from '@volter/editor-core/editor-api';
13
- import { getProjectFileHistory } from '@volter/editor-core/history/project-file-history';
11
+ import { workspaceHistoryService } from '@volter/editor-sdk/kit/components/workspace-history';
12
+ import { getDownloadUrl, readProjectTextFile, saveFile } from '@volter/editor-sdk/kit/editor-api';
13
+ import { getProjectFileHistory } from '@volter/editor-sdk/kit/history/project-file-history';
14
14
  import { faGlobe } from '@fortawesome/free-solid-svg-icons';
15
15
  import type { BuildReport } from '@volter/editor-sdk/session/build-report';
16
16
  import {