@volter/game-editor 0.5.67 → 0.5.69

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 (568) hide show
  1. package/BUNDLED_NOTICES +10954 -5077
  2. package/LICENSE +1 -1
  3. package/LICENSE-BLENDER +2 -2
  4. package/NOTICE +2 -2
  5. package/additions/canvas/package.json +8 -0
  6. package/additions/canvas/src/canvas-mount.ts +46 -0
  7. package/additions/canvas/src/scene2d.tsx +18 -0
  8. package/catalog/entries/bake.json +1 -1
  9. package/catalog/entries/blender.json +3 -3
  10. package/catalog/entries/music.json +6 -6
  11. package/catalog/project-source/LICENSE +1 -1
  12. package/catalog/project-source/src/contributions/bake.kind.ts +2 -2
  13. package/catalog/project-source/src/contributions/builder-document.tsx +1 -1
  14. package/catalog/project-source/src/contributions/builder-ui.tsx +3 -3
  15. package/catalog/project-source/src/contributions/module-source.ts +4 -4
  16. package/catalog/project-source/src/lib/music/music-player.ts +18 -12
  17. package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +59 -59
  18. package/catalog/project-source/src/lib/static-batch/Frozen.tsx +1 -1
  19. package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +1 -1
  20. package/catalog/project-source/src/tools/bake-preview.tool.ts +9 -9
  21. package/dist/.vite/manifest.json +4106 -3965
  22. package/dist/assets/{AssetBudgetPanel-x_FNJbfZ.js → AssetBudgetPanel-BMR3AQhc.js} +10 -10
  23. package/dist/assets/AudioViewer-DESxi7pU.js +1 -0
  24. package/dist/assets/CanvasBoardDocument-Q_nrYFlB.js +1 -0
  25. package/dist/assets/CanvasSceneViewport-WZMoKy_F.js +1 -0
  26. package/dist/assets/ColorInput-C2EK-OnD.js +1 -0
  27. package/dist/assets/{EntityModelDocument-CzUHsH9E.js → EntityModelDocument-B_4ENTCq.js} +1 -1
  28. package/dist/assets/{EnvironmentAssetDocument-ByEB7_4A.js → EnvironmentAssetDocument-BZBp6OFJ.js} +1 -1
  29. package/dist/assets/{GameplaySessionTimeline-dhG-oiqd.js → GameplaySessionTimeline-1ivaucpv.js} +1 -1
  30. package/dist/assets/ImageViewer-D16OExYu.js +1 -0
  31. package/dist/assets/{InspectorCanvasPreview-CEr_Kxna.js → InspectorCanvasPreview-BrFjhoiD.js} +1 -1
  32. package/dist/assets/InspectorObjectPreview-CY5xVsPR.js +1 -0
  33. package/dist/assets/JsonAssetDocument-CvjTlcdr.js +2 -0
  34. package/dist/assets/{LiveModuleDocument-DL8QHSlk.js → LiveModuleDocument-ne1o9giX.js} +1 -1
  35. package/dist/assets/{LutAssetDocument-BImiug2M.js → LutAssetDocument-Cp0v-O7q.js} +1 -1
  36. package/dist/assets/ModelAssetDocument-Ceu7OIN9.js +1 -0
  37. package/dist/assets/{NonThreeAuthoringBootstrap-B40qmGGS.js → NonThreeAuthoringBootstrap-DiElZf-e.js} +1 -1
  38. package/dist/assets/Object3DDocumentToolbar-BLNamqii.js +1 -0
  39. package/dist/assets/Object3DDocumentViewport-D6QoHfa_.js +2 -0
  40. package/dist/assets/{Object3DPreview-ClYDoH2L.js → Object3DPreview-ZVokr044.js} +1 -1
  41. package/dist/assets/OnlineAssetDetail-Dnckd7zB.js +1 -0
  42. package/dist/assets/PlayBar-DsMitSgy.js +1 -0
  43. package/dist/assets/{QuarksAssetDocument-B-VOj-n4.js → QuarksAssetDocument-B5J8uHFM.js} +1 -1
  44. package/dist/assets/ReactCanvasControls-CmfvxJYY.js +1 -0
  45. package/dist/assets/RootSelectionOverlay-BWsNiSuM.js +1 -0
  46. package/dist/assets/{ShaderAssetDocument-Kn8IvRGV.js → ShaderAssetDocument-CT7XzsZq.js} +5 -5
  47. package/dist/assets/ShadowEditor-YO5KEfnz.js +1 -0
  48. package/dist/assets/{SourceAssetViewer-CLQ95VSD.js → SourceAssetViewer-FSLup2km.js} +1 -1
  49. package/dist/assets/StageHost-DYfGYwvq.js +2 -0
  50. package/dist/assets/{StoryPreviewMount-D2lg37et.js → StoryPreviewMount-BhvT5QlB.js} +1 -1
  51. package/dist/assets/ThreeBoardDocument-B-z2nwnH.js +2 -0
  52. package/dist/assets/{ThreeIsolationSceneContent-DbYIylZQ.js → ThreeIsolationSceneContent-B5pU4Y6k.js} +1 -1
  53. package/dist/assets/{ToolObject3DPreview-WEi6C9uU.js → ToolObject3DPreview-VtraiQ4Q.js} +1 -1
  54. package/dist/assets/Toolbar-M62Gob9T.js +1 -0
  55. package/dist/assets/{TransientHint-BpDLhRLd.js → TransientHint-Cc40mHWE.js} +1 -1
  56. package/dist/assets/VideoViewer-BxcUwXQm.js +1 -0
  57. package/dist/assets/ViewportShadingMenu-BoMPnTVh.js +1 -0
  58. package/dist/assets/active-ingest-0QjJWb7i.js +3 -0
  59. package/dist/assets/{animation-clock-Bm80XdqP.js → animation-clock-BXEwUJtz.js} +1 -1
  60. package/dist/assets/animation-mixers.service-C-Ko4KzM.js +1 -0
  61. package/dist/assets/animation-timeline.utility-Bl15-rYb.js +1 -0
  62. package/dist/assets/{asset-budget-asset.menu-CEgP0Kiw.js → asset-budget-asset.menu-BUa3g0Wy.js} +1 -1
  63. package/dist/assets/{asset-budget.action-D4R1c3wi.js → asset-budget.action-Dl5eVPIo.js} +1 -1
  64. package/dist/assets/{asset-budget.document-Syzjn1U1.js → asset-budget.document-DJylQ-0h.js} +1 -1
  65. package/dist/assets/{asset-budget.menu-BbRiqXeM.js → asset-budget.menu-BJtvNMLj.js} +1 -1
  66. package/dist/assets/asset-editor-persistence-BIbf5u0Q.js +1 -0
  67. package/dist/assets/asset-loaders-DoNflsHL.js +2 -0
  68. package/dist/assets/{asset-preview-B1tDziF1.js → asset-preview-DxlSdRZn.js} +1 -1
  69. package/dist/assets/{audio-unlock.service-ucMfCVBw.js → audio-unlock.service-CTaiyXF9.js} +1 -1
  70. package/dist/assets/audio.utility-CEmNc68t.js +1 -0
  71. package/dist/assets/autoplay.service-BZLSUyL8.js +1 -0
  72. package/dist/assets/{babylon-authoring-adapter-C8mFMXSr.js → babylon-authoring-adapter-BZvV2bz_.js} +1 -1
  73. package/dist/assets/binding-resolver-DGbk9_XR.js +2 -0
  74. package/dist/assets/blender-emscripten-engine-B7lfg-RX.js +2 -0
  75. package/dist/assets/{blender-node-editor.document-C1YmwWls.js → blender-node-editor.document-wXJobGNH.js} +1 -1
  76. package/dist/assets/{blender-properties-tab-B8lyjgj3.js → blender-properties-tab-7GFf80ev.js} +1 -1
  77. package/dist/assets/{blender-runtime-host-CyQlImSR.js → blender-runtime-host-CILxrx5T.js} +2 -2
  78. package/dist/assets/{blender-runtime-skin-BK7ShZ6z.js → blender-runtime-skin-Cd5lQYsC.js} +7 -7
  79. package/dist/assets/{blender-runtime.document-B0nVQs0P.js → blender-runtime.document-C0r_R49S.js} +7 -7
  80. package/dist/assets/{blender-timeline.document-CMcdE2CK.js → blender-timeline.document-BaISZMBc.js} +1 -1
  81. package/dist/assets/{blender-uv-editor.document-CjqNo4sZ.js → blender-uv-editor.document-CT_fsyyA.js} +1 -1
  82. package/dist/assets/blender-version.status-DzEx7u7k.js +1 -0
  83. package/dist/assets/blender-wali-engine-DOiQCBXH.js +2 -0
  84. package/dist/assets/{blender.command-C6NmRBo5.js → blender.command-DdiKd8mZ.js} +1 -1
  85. package/dist/assets/blender.keymap-BmOBRY7p.js +1 -0
  86. package/dist/assets/blender.status-BMETIbb2.js +1 -0
  87. package/dist/assets/board-guides-CjHQ9Ynm.js +1 -0
  88. package/dist/assets/body-marks-C1LxJtQb.js +1 -0
  89. package/dist/assets/bridge.command-DXUeavn5.js +3 -0
  90. package/dist/assets/{browserAll-lF_dLQVz.js → browserAll-Dg46xT22.js} +1 -1
  91. package/dist/assets/build-player.document-BHwVV3K0.js +1 -0
  92. package/dist/assets/build-profiles.document-HkpS-Kxa.js +2 -0
  93. package/dist/assets/build-progress.status-u1J0Rm1D.js +1 -0
  94. package/dist/assets/build-session-BLboUUbw.js +9 -0
  95. package/dist/assets/{build.action-DRX2IcYt.js → build.action-C00DL83N.js} +1 -1
  96. package/dist/assets/{build.command-BGvLaLG0.js → build.command-Cjk_NY75.js} +1 -1
  97. package/dist/assets/build.header-BWNmNWFT.js +1 -0
  98. package/dist/assets/{build.menu-UenrjPWS.js → build.menu-BBYtqCIq.js} +1 -1
  99. package/dist/assets/{build.service-BIUoTY6l.js → build.service-DOU15tKN.js} +1 -1
  100. package/dist/assets/{camera-DrvaM47S.js → camera-7DGyYW7Y.js} +1 -1
  101. package/dist/assets/{camera-runtime.inspector-CjJALNO8.js → camera-runtime.inspector-n-jiOR-3.js} +1 -1
  102. package/dist/assets/canvas-design-mount-CSRHU-ag.js +6 -0
  103. package/dist/assets/canvas-entry-runtime-BST8yRuK.js +2 -0
  104. package/dist/assets/{canvas-preview-frames-C0QTagA3.js → canvas-preview-frames-Cja32aW2.js} +1 -1
  105. package/dist/assets/{canvas-story-capture.service-Dgjr-rT1.js → canvas-story-capture.service-D5R5HJ8n.js} +2 -2
  106. package/dist/assets/capability-coverage-ByWftxk4.js +7 -0
  107. package/dist/assets/{collaboration-presence-BVIQuN1l.js → collaboration-presence-D6MC9xJN.js} +1 -1
  108. package/dist/assets/{collider-C7SbIYKY.js → collider-B78EcUc9.js} +1 -1
  109. package/dist/assets/{component-board.service-BEsFAw4_.js → component-board.service-BaQI5Oas.js} +2 -2
  110. package/dist/assets/component-board.service-CkjrsD8x.js +2 -0
  111. package/dist/assets/{component-board.service-CWFaGMCO.js → component-board.service-Dvjz_g-x.js} +2 -2
  112. package/dist/assets/component-contracts.service-C3-AXQp7.js +1 -0
  113. package/dist/assets/component-instance-root-DLI40MiB.js +1 -0
  114. package/dist/assets/{component-verbs.command-oNtGgzQL.js → component-verbs.command-Brr_WcaR.js} +1 -1
  115. package/dist/assets/component-verbs.service-DC2sC3j3.js +1 -0
  116. package/dist/assets/{config-_wCzzlM_.js → config-BI_7osdR.js} +3 -3
  117. package/dist/assets/{configurations-BXU4GGbV.js → configurations-XP9YLkrt.js} +1 -1
  118. package/dist/assets/connection.status-BhRwcFx0.js +1 -0
  119. package/dist/assets/{constraint-5KLYpGm7.js → constraint-Bp1l8hY-.js} +1 -1
  120. package/dist/assets/constraints.inspector-Dm1cycK3.js +1 -0
  121. package/dist/assets/{content-bounds-BeuIXKYu.js → content-bounds-DROIchTa.js} +1 -1
  122. package/dist/assets/{contract-system-adapters-Bic_7sev.js → contract-system-adapters-Cn7OW_ay.js} +1 -1
  123. package/dist/assets/coverage.service-l42ty7lr.js +3 -0
  124. package/dist/assets/create-runtime-B_uTwsmi.js +3 -0
  125. package/dist/assets/curve-THOUsg-j.js +1 -0
  126. package/dist/assets/{data-asset-DfQ2Pjse.js → data-asset-DAANayR6.js} +1 -1
  127. package/dist/assets/data-check-core-CHqar_E8.js +1 -0
  128. package/dist/assets/data-ref-CN34UeVw.js +1 -0
  129. package/dist/assets/debug-bridge-BD1XVAIB.js +1 -0
  130. package/dist/assets/debug-registry-ggQWxtu-.js +1 -0
  131. package/dist/assets/{deferred-ingest-play-BdR4qGk6.js → deferred-ingest-play-B2JUlwlT.js} +2 -2
  132. package/dist/assets/{design-time-canvas-mount-DPQeHSN2.js → design-time-canvas-mount-as9cN9I6.js} +2 -2
  133. package/dist/assets/design-time-layers-BRseeSmV.js +1 -0
  134. package/dist/assets/{design-time-mount.service-Ks-5Wkcs.js → design-time-mount.service-BTVu3yKo.js} +2 -2
  135. package/dist/assets/{design-time-mount.service-Ca-DZGFV.js → design-time-mount.service-DKvc7lVK.js} +2 -2
  136. package/dist/assets/design-time-react-mount-C7rB56QD.js +1 -0
  137. package/dist/assets/{document-preview-three-DThkjI1S.js → document-preview-three-CxmRhCcV.js} +1 -1
  138. package/dist/assets/{dom-authoring-adapter-BrLU8IJ_.js → dom-authoring-adapter-L8OzXfmE.js} +1 -1
  139. package/dist/assets/{draco3d-B2cwv46o.js → draco3d-BjNuXv66.js} +1 -1
  140. package/dist/assets/{edit-mode-audio.service-D4ITNbsm.js → edit-mode-audio.service-BwI5u845.js} +1 -1
  141. package/dist/assets/edit-mode-authoring-D5f7aHHl.js +1 -0
  142. package/dist/assets/{edit-mode-networking.service-BNv-FTRh.js → edit-mode-networking.service-DqP_4lbI.js} +1 -1
  143. package/dist/assets/editor-api-BM7H_F4G.js +1 -0
  144. package/dist/assets/{editor-layers-BDJnAAzj.js → editor-layers-D-CTUqco.js} +1 -1
  145. package/dist/assets/editor-presentation-activity-CqJH4G9t.js +1 -0
  146. package/dist/assets/{editor-shell-store-ChLcVeNB.js → editor-shell-store-DHVWS8cE.js} +1 -1
  147. package/dist/assets/{entity-object-JmYMfLsx.js → entity-object-MKYemTFM.js} +1 -1
  148. package/dist/assets/{extend-Cc-nEa_A.js → extend-BrgqZiMY.js} +1 -1
  149. package/dist/assets/fork-menu-DE2MK3Nq.js +1 -0
  150. package/dist/assets/{frame-debugger-store-DaCbAYSW.js → frame-debugger-store-BXoLKTdZ.js} +1 -1
  151. package/dist/assets/game-audio-BeCyd0Ha.js +1 -0
  152. package/dist/assets/{game-contract-seams-BnPFGLll.js → game-contract-seams-tyKDsfaP.js} +1 -1
  153. package/dist/assets/{game-css-scope-transform-D_p7cVgW.js → game-css-scope-transform-DcjrwtVc.js} +2 -2
  154. package/dist/assets/game-document.service-CTb2itHQ.js +1 -0
  155. package/dist/assets/game-eval.command-CpDKXOQU.js +2 -0
  156. package/dist/assets/game-module-access-BTInp2NG.js +1 -0
  157. package/dist/assets/game-network-DW5ARz4R.js +22 -0
  158. package/dist/assets/{gameplay-export-BzYzLZPi.js → gameplay-export-cHk3v9y-.js} +1 -1
  159. package/dist/assets/gameplay-replay-HRenPTtU.js +1 -0
  160. package/dist/assets/gameplay.command-DcY2lKKX.js +1 -0
  161. package/dist/assets/generation-CdOATubd.css +1 -0
  162. package/dist/assets/{generation-jobs-BZhOMrp-.js → generation-jobs-CJBehuUp.js} +1 -1
  163. package/dist/assets/generation.service-BMOc-C9i.js +1 -0
  164. package/dist/assets/{generations-DVDht_31.js → generations-ssgVOe_6.js} +1 -1
  165. package/dist/assets/generations.status-B_SmPReI.js +1 -0
  166. package/dist/assets/hierarchy-marks-BuCO8Ke-.js +1 -0
  167. package/dist/assets/hierarchy-marks-CsTaTkc7.js +1 -0
  168. package/dist/assets/hosted-asset-materialization-CiXZI85V.js +2 -0
  169. package/dist/assets/{ibl-override-material-CiKkaOTW.js → ibl-override-material-CMo_a49U.js} +1 -1
  170. package/dist/assets/index-B0S4fQQV.js +1 -0
  171. package/dist/assets/{index-C3Pw-9So.js → index-B9bd4k-t.js} +1 -1
  172. package/dist/assets/index-BMxv2MNV.js +1 -0
  173. package/dist/assets/{index-DUZeuA7g.js → index-Bm4_DmRO.js} +1 -1
  174. package/dist/assets/{index-cNc-iFbq.js → index-BvBlIRwM.js} +1 -1
  175. package/dist/assets/{index-Ck3JFh48.js → index-BweKDdi_.js} +1 -1
  176. package/dist/assets/{index-BRJMIUK0.js → index-C5ZAyrKq.js} +346 -345
  177. package/dist/assets/index-CPiRKiDC.css +1 -0
  178. package/dist/assets/index-CfpGZrbC.js +1 -0
  179. package/dist/assets/index-Czvj6whv.js +1 -0
  180. package/dist/assets/{index-SS9EugVg.js → index-DgPDGGSV.js} +2 -2
  181. package/dist/assets/{inference-diagnostics-xecGdohW.js → inference-diagnostics-DLt9ql9I.js} +1 -1
  182. package/dist/assets/{ingest-boot-viewport-DAt8WFSy.js → ingest-boot-viewport-BXVXjYpG.js} +1 -1
  183. package/dist/assets/ingest-siblings-DWJ7OGB_.js +1 -0
  184. package/dist/assets/ingest-source-persistence-6ShMoSCa.js +1 -0
  185. package/dist/assets/ingest.service-BBbX8ibg.js +1 -0
  186. package/dist/assets/{inspect-Dr4qvDpJ.js → inspect-Cz3Zyx_1.js} +1 -1
  187. package/dist/assets/inspection-D8fZOHCM.js +1 -0
  188. package/dist/assets/instances.command-BrdlngrL.js +1 -0
  189. package/dist/assets/{json-history-resource-DwS10tqD.js → json-history-resource-Uqrihfc8.js} +1 -1
  190. package/dist/assets/layered-pick-CAVQMPI7.js +1 -0
  191. package/dist/assets/{light-DcFqVCmv.js → light-CqzsCWeJ.js} +1 -1
  192. package/dist/assets/{live-project-verbs-C3LzprCe.js → live-project-verbs-CdFmLYOo.js} +1 -1
  193. package/dist/assets/{machine.document-BzZxubYQ.js → machine.document-DRIFOVaa.js} +1 -1
  194. package/dist/assets/{machines.finder-BR02bfVG.js → machines.finder-DPCT6few.js} +1 -1
  195. package/dist/assets/material-BVApn1V_.js +1 -0
  196. package/dist/assets/{material-factory-COz7qZhC.js → material-factory-B_75xxFD.js} +1 -1
  197. package/dist/assets/{mesh-DcmO-mWI.js → mesh-DdA3mExo.js} +1 -1
  198. package/dist/assets/model-asset-sections-D1uxOu2v.css +1 -0
  199. package/dist/assets/model-asset-sections.service-CJnSIckZ.js +1 -0
  200. package/dist/assets/{model-inspection-CXHxrafK.js → model-inspection-DvspbmJl.js} +1 -1
  201. package/dist/assets/{model-thumbnail-BEKPWg4l.js → model-thumbnail-BmQs-h6t.js} +1 -1
  202. package/dist/assets/{models.finder-c1I0tp2M.js → models.finder-Qv_Hsccy.js} +1 -1
  203. package/dist/assets/module-mode-MJ4Gbsry.js +2 -0
  204. package/dist/assets/mount-canvas-ingest-root-BxtM8OaB.js +2 -0
  205. package/dist/assets/mount-dom-ingest-root-pGatqO46.js +2 -0
  206. package/dist/assets/mount-ingest-root-C7jb-mCl.js +2 -0
  207. package/dist/assets/mount-manifest-BfoHBuzn.js +1 -0
  208. package/dist/assets/mount-readiness-DyAd17pe.js +4 -0
  209. package/dist/assets/mount-three-ingest-root-Boa5mcaF.js +1 -0
  210. package/dist/assets/{mounted-authoring-Clftxx0x.js → mounted-authoring-DxMISwvR.js} +1 -1
  211. package/dist/assets/{mounted-story-viewport-source-B4-eAYGI.js → mounted-story-viewport-source-DfnLxI1f.js} +1 -1
  212. package/dist/assets/{native-debug-module-2_HVupdg.js → native-debug-module-BlrALjM3.js} +1 -1
  213. package/dist/assets/{navigation-CH3-zr1n.js → navigation-CqG5o5AR.js} +1 -1
  214. package/dist/assets/{navmesh.menu-Dfi-Pk-8.js → navmesh.menu-D4TdVDhe.js} +1 -1
  215. package/dist/assets/{navmesh.service-Cz7QFY-M.js → navmesh.service-DWKT5ruQ.js} +1 -1
  216. package/dist/assets/network-observer.service-ZRAquNq4.js +1 -0
  217. package/dist/assets/network.utility-DjeOEvAY.js +1 -0
  218. package/dist/assets/object-marks-BnvSuCTt.js +1 -0
  219. package/dist/assets/{object3d-authoring-subject-BDrxd1GA.js → object3d-authoring-subject-XccsO0xG.js} +1 -1
  220. package/dist/assets/{object3d-document-session-registry-DJDEDM0p.js → object3d-document-session-registry-CMRJdFp6.js} +2 -2
  221. package/dist/assets/{oid-transform-D5Kxt6ij.js → oid-transform-DaA6yW6o.js} +1 -1
  222. package/dist/assets/{particles-vRp0Lf3o.js → particles-DsQRcDBY.js} +1 -1
  223. package/dist/assets/{performance-profiler-OwnXQX0M.js → performance-profiler-CMbwGBuk.js} +1 -1
  224. package/dist/assets/pixi-authoring-adapter-BoBt8bB5.js +1 -0
  225. package/dist/assets/pixi-live-write-target-CYZgvC6U.js +1 -0
  226. package/dist/assets/play.command-D9JGJP-e.js +2 -0
  227. package/dist/assets/pose-guard-CLabLSzf.js +1 -0
  228. package/dist/assets/presentation-COhHQdmR.js +1 -0
  229. package/dist/assets/{product-CxmUIxmr.js → product-CaRGoiIH.js} +1 -1
  230. package/dist/assets/{profiler.action-Dzy9DuAc.js → profiler.action-Cz7HYWjh.js} +1 -1
  231. package/dist/assets/{profiler.menu-jLDO3U6N.js → profiler.menu-D5aR_FBy.js} +1 -1
  232. package/dist/assets/profiler.utility-KwxlIPKb.js +1 -0
  233. package/dist/assets/{project-authoring-session-C3eusefK.js → project-authoring-session-DKXHVwxO.js} +2 -2
  234. package/dist/assets/project-provenance-BGnJXJwa.js +1 -0
  235. package/dist/assets/{properties-bone-constraints.inspector-B_PbSMV7.js → properties-bone-constraints.inspector-Bo-sU8eR.js} +1 -1
  236. package/dist/assets/{properties-bone.inspector-CMDEQuBd.js → properties-bone.inspector-BQiWplQv.js} +1 -1
  237. package/dist/assets/{properties-collection.inspector-D7Ay8yRj.js → properties-collection.inspector-C5BnR-GE.js} +1 -1
  238. package/dist/assets/{properties-constraints.inspector-DS1fZgXK.js → properties-constraints.inspector-CyheU12R.js} +1 -1
  239. package/dist/assets/{properties-data.inspector-k2pGN2Mp.js → properties-data.inspector-CkycARja.js} +1 -1
  240. package/dist/assets/{properties-material.inspector-Bb3yAGUx.js → properties-material.inspector-Bl_PUmY-.js} +1 -1
  241. package/dist/assets/{properties-modifiers.inspector-BcJfe-Wy.js → properties-modifiers.inspector-j7SnOxQq.js} +1 -1
  242. package/dist/assets/{properties-object.inspector-CUSfXJuq.js → properties-object.inspector-DcR3MGLK.js} +1 -1
  243. package/dist/assets/{properties-output.inspector-BTVW2kn1.js → properties-output.inspector-BLjw6K4b.js} +1 -1
  244. package/dist/assets/{properties-particles.inspector-Cw0fxx3B.js → properties-particles.inspector-BUIm2-Jf.js} +1 -1
  245. package/dist/assets/{properties-physics.inspector-C-0bD2bu.js → properties-physics.inspector-DNvRcxb6.js} +1 -1
  246. package/dist/assets/{properties-render.inspector-C8D5UpjX.js → properties-render.inspector-8FMZ-qoZ.js} +1 -1
  247. package/dist/assets/{properties-scene.inspector-HjK6QHGg.js → properties-scene.inspector-Dx7_z75k.js} +1 -1
  248. package/dist/assets/{properties-texture.inspector-CckZgUaI.js → properties-texture.inspector-WT15951-.js} +1 -1
  249. package/dist/assets/{properties-view-layer.inspector-C1ajtVSk.js → properties-view-layer.inspector-P7VNTdqr.js} +1 -1
  250. package/dist/assets/{properties-world.inspector-BiT_EdT-.js → properties-world.inspector-B3t1q8TF.js} +1 -1
  251. package/dist/assets/r3f-design-session-lsbFnoWH.js +2 -0
  252. package/dist/assets/{r3f-physics-binding-DzrbpqjM.js → r3f-physics-binding-Cx8yhuwt.js} +1 -1
  253. package/dist/assets/{r3f-source-authoring-adapter-DbbeRcvt.js → r3f-source-authoring-adapter-jH3G0TeH.js} +2 -2
  254. package/dist/assets/react-canvas-navigation-B_gOe3CI.js +1 -0
  255. package/dist/assets/react-inspector.service-CZf1vfdX.js +1 -0
  256. package/dist/assets/react-story-board-CCm2Opwn.js +1 -0
  257. package/dist/assets/{react-three-rapier.esm-U8J7g6tH.js → react-three-rapier.esm-CHXGG51p.js} +1 -1
  258. package/dist/assets/react-world-authoring-adapter-CnzxMtYz.js +1 -0
  259. package/dist/assets/{realm-services-CnY105XU.js → realm-services-Do9J6nsb.js} +1 -1
  260. package/dist/assets/reflection-probe-capture.inspector-BAjjIybz.js +1 -0
  261. package/dist/assets/{reflection-probe-BHNGwVyz.js → reflection-probe-sIto9mh0.js} +1 -1
  262. package/dist/assets/registry-Xnduk02T.js +1 -0
  263. package/dist/assets/{relative-import-specifier-BFKIWEWs.js → relative-import-specifier-CPFTrxi4.js} +1 -1
  264. package/dist/assets/{render-env-BkKZ4uMA.js → render-env-YJlI8K0i.js} +1 -1
  265. package/dist/assets/{render-features-rxbawsRb.js → render-features-DMSV2qKJ.js} +1 -1
  266. package/dist/assets/{render-settings-DS5leCed.js → render-settings-CRyDhHyz.js} +1 -1
  267. package/dist/assets/{resolve-three-CVnMRHxw.js → resolve-three-D27rMc37.js} +19 -19
  268. package/dist/assets/root-seam-contract-gjWUd5uu.js +1 -0
  269. package/dist/assets/run-selection-B0jOdyYt.js +2 -0
  270. package/dist/assets/scene-capture-Di9cM1p4.js +1 -0
  271. package/dist/assets/scene-document.service-XxGs4HHE.js +2 -0
  272. package/dist/assets/{scene-framing-BQt72ZCw.js → scene-framing-DkZKDwH3.js} +1 -1
  273. package/dist/assets/{scene-index--lRWLEmW.js → scene-index-DHeKmalD.js} +1 -1
  274. package/dist/assets/{scene-query-s1y04OVB.js → scene-query-ByZtXA2m.js} +1 -1
  275. package/dist/assets/seeded-random-BJthDRMu.js +1 -0
  276. package/dist/assets/{session-CTXsU1lK.js → session-x8E_NJk2.js} +34 -34
  277. package/dist/assets/{setup-renderer-Cwkl1Ar6.js → setup-renderer-F9mG7t6r.js} +1 -1
  278. package/dist/assets/{source-object3d-authoring-adapter-DF679Ncb.js → source-object3d-authoring-adapter-CvmFpSUj.js} +1 -1
  279. package/dist/assets/{source-persistence-backend-CwLYVPXj.js → source-persistence-backend-au3WtEn6.js} +1 -1
  280. package/dist/assets/{spark-renderer-lifecycle-DfYpvEJa.js → spark-renderer-lifecycle-B6Axb6jm.js} +1 -1
  281. package/dist/assets/{stage-keyboard-B8BEW592.js → stage-keyboard-BQkndG_D.js} +1 -1
  282. package/dist/assets/stage-overlay-set-g6eWhuRv.js +1 -0
  283. package/dist/assets/stage-presence-markers-0CDfO5f4.js +1 -0
  284. package/dist/assets/stage-transform-tools-BzPl7OIo.js +1 -0
  285. package/dist/assets/standard-viewport-dressing-BW-dM_1h.js +24 -0
  286. package/dist/assets/{state-watch.action-DnR5Zjr-.js → state-watch.action-Z1nQ5awu.js} +1 -1
  287. package/dist/assets/{state-watch.menu-wYLCLsAw.js → state-watch.menu-CQHGUF3W.js} +1 -1
  288. package/dist/assets/state-watch.utility-DCIg2i79.js +1 -0
  289. package/dist/assets/{story-capture-BmnwHGDV.js → story-capture-BIrjDKeY.js} +1 -1
  290. package/dist/assets/story-documents-BvG2xeaR.js +3 -0
  291. package/dist/assets/{story-documents.service-B6v7Z-WE.js → story-documents.service-DOSEa3ja.js} +1 -1
  292. package/dist/assets/{story-documents.service-yagl1wGp.js → story-documents.service-y1m7XGMJ.js} +1 -1
  293. package/dist/assets/{story-media-presence-BqRMu572.js → story-media-presence-HLV-KaMj.js} +1 -1
  294. package/dist/assets/{story-pixi-preview-Da6afqLg.js → story-pixi-preview-CMhho2gG.js} +1 -1
  295. package/dist/assets/{story-presentation-DMSYRWaz.js → story-presentation-CYhVv8Ku.js} +1 -1
  296. package/dist/assets/story-three-preview-CgcLF5lE.js +2 -0
  297. package/dist/assets/{structural-ids-Br2zjINh.js → structural-ids-BOo2BRoY.js} +1 -1
  298. package/dist/assets/studio-environment-R9qXUUcC.js +2 -0
  299. package/dist/assets/{surface-state-1lTOi8FD.js → surface-state-D8Qnowo6.js} +1 -1
  300. package/dist/assets/{syntactic-prop-specs-eiQXwMIc.js → syntactic-prop-specs-8gkBuc5j.js} +1 -1
  301. package/dist/assets/team-playtest.service-BBMZ2iyk.js +1 -0
  302. package/dist/assets/{three-TCuY32m_.js → three-DiL6vMXq.js} +1 -1
  303. package/dist/assets/three-authoring-adapter-CkLR2zGf.js +1 -0
  304. package/dist/assets/three-authoring.service-CovhlCGx.js +2 -0
  305. package/dist/assets/{three-ingest-runtime-B7rtg3QE.js → three-ingest-runtime-CwTqAHgX.js} +1 -1
  306. package/dist/assets/{three-integration-BdN5Nhsg.js → three-integration-DXOFI88n.js} +2 -2
  307. package/dist/assets/three-integration.service-rCAqpqSp.js +1 -0
  308. package/dist/assets/three-projection-core-B7Lf8tOp.js +1 -0
  309. package/dist/assets/{three-state-DwFE3ay2.js → three-state-BCACvUtm.js} +1 -1
  310. package/dist/assets/{three-story-capture.service-CvpV3v5a.js → three-story-capture.service-rTFKNtHA.js} +2 -2
  311. package/dist/assets/{three-story-model-C2r2BuiA.js → three-story-model-BjKr7OMn.js} +1 -1
  312. package/dist/assets/three-viewport-presentation-CBzvc2v2.js +141 -0
  313. package/dist/assets/tools-DfctM216.js +1 -0
  314. package/dist/assets/transform-mode-request-DlEApNrA.js +1 -0
  315. package/dist/assets/transport-strip-xCg94CuI.js +1 -0
  316. package/dist/assets/transport.header-BRtdky0x.js +1 -0
  317. package/dist/assets/{trigger-volume-DP0G1VBe.js → trigger-volume-BLkHmfm9.js} +1 -1
  318. package/dist/assets/tuples-BDz3wbQL.js +1 -0
  319. package/dist/assets/ui-board-document-DvbK_HVN.js +2 -0
  320. package/dist/assets/{user-data-Bpj7diUS.js → user-data-C84W0V47.js} +1 -1
  321. package/dist/assets/user-data-CODoGZqA.js +1 -0
  322. package/dist/assets/{utility-view-state-CAfbFbKQ.js → utility-view-state-CDRxZSo-.js} +1 -1
  323. package/dist/assets/viewport-door-BARIpMu-.js +1 -0
  324. package/dist/assets/{viewport-root-presentation-vgxsTyj4.js → viewport-root-presentation-hRLF0BeO.js} +1 -1
  325. package/dist/assets/{viewport-surface-status-cwCiBGa7.js → viewport-surface-status-TUfhXKR9.js} +1 -1
  326. package/dist/assets/{webworkerAll-Cm3gTjWi.js → webworkerAll-PJtcQ1FD.js} +1 -1
  327. package/dist/assets/worker-BtXrsgFy.js +2 -0
  328. package/dist/assets/workspace-arrangement-DqG5sUns.js +1 -0
  329. package/dist/assets/world-documents-D69XaqUX.js +1 -0
  330. package/dist/assets/world-root-stage-binding-BgZWZEuD.js +1 -0
  331. package/dist/assets/{xstate-animation-binding-BGLxcZT_.js → xstate-animation-binding-CIyLzGHs.js} +1 -1
  332. package/dist/assets/{xstate-animation-meta-D_T441Ru.js → xstate-animation-meta-CbYWup3R.js} +1 -1
  333. package/dist/volter-shared-react.json +10 -0
  334. package/dist/volter-shared-three.json +3 -0
  335. package/dist-node/cli.js +253 -210
  336. package/dist-node/create.js +103 -82
  337. package/package.json +23 -20
  338. package/src/contributions.d.ts +1 -1
  339. package/src/index.ts +10 -10
  340. package/starter/cube.py +1 -1
  341. package/template/.agents/references/project-manual.md +17 -17
  342. package/template/.agents/skills/editor/SKILL.md +6 -6
  343. package/template/.agents/skills/editor/agents/openai.yaml +3 -3
  344. package/template/.agents/skills/editor/references/editor-control.md +62 -62
  345. package/template/{.claude/skills/vgai-3d-models → .agents/skills/volter-3d-models}/SKILL.md +3 -3
  346. package/template/{.github/skills/vgai-ingest-existing-game → .agents/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  347. package/template/.agents/skills/{vgai-music → volter-music}/SKILL.md +35 -11
  348. package/template/{.claude/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/SKILL.md +9 -9
  349. package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  350. package/template/{.github/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
  351. package/template/.claude/skills/editor/SKILL.md +6 -6
  352. package/template/.claude/skills/editor/agents/openai.yaml +3 -3
  353. package/template/.claude/skills/editor/references/editor-control.md +62 -62
  354. package/template/{.agents/skills/vgai-3d-models → .claude/skills/volter-3d-models}/SKILL.md +3 -3
  355. package/template/{.agents/skills/vgai-ingest-existing-game → .claude/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  356. package/template/{.github/skills/vgai-threejs-authoring → .claude/skills/volter-threejs-authoring}/SKILL.md +9 -9
  357. package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  358. package/template/.claude/skills/{vgai-threejs-authoring → volter-threejs-authoring}/references/helper-catalog.md +1 -1
  359. package/template/.github/copilot-instructions.md +1 -1
  360. package/template/.github/skills/editor/SKILL.md +6 -6
  361. package/template/.github/skills/editor/agents/openai.yaml +3 -3
  362. package/template/.github/skills/editor/references/editor-control.md +62 -62
  363. package/template/.github/skills/{vgai-3d-models → volter-3d-models}/SKILL.md +3 -3
  364. package/template/{.claude/skills/vgai-ingest-existing-game → .github/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  365. package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/SKILL.md +9 -9
  366. package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  367. package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
  368. package/template/.mcp.json +3 -3
  369. package/template/AGENTS.md +24 -23
  370. package/template/DEVLOG.md +1 -1
  371. package/template/IDIOMS.md +3 -3
  372. package/template/LICENSE +3 -3
  373. package/template/README.md +12 -12
  374. package/template/check-idioms.ts +51 -51
  375. package/template/manifest-entry-modules-plugin.ts +17 -4
  376. package/template/package.json +12 -12
  377. package/template/server/loopback.ts +1 -1
  378. package/template/server/main.ts +4 -4
  379. package/template/server/rooms/arena-room.ts +8 -8
  380. package/template/server/rooms/game-room.ts +8 -8
  381. package/template/server/rooms.ts +2 -2
  382. package/template/src/bot/QaTester.tsx +1 -1
  383. package/template/src/bot/bot-station.ts +2 -2
  384. package/template/src/bot/tester-station.ts +1 -1
  385. package/template/src/contributions/README.md +1 -1
  386. package/template/src/contributions/analytics.analytics.tsx +1 -1
  387. package/template/src/contributions/data.document.tsx +2 -2
  388. package/template/src/contributions/pages.finder.ts +1 -1
  389. package/template/src/contributions/tester.inspector.tsx +2 -2
  390. package/template/src/contributions/use-game-modules.ts +1 -1
  391. package/template/src/input.ts +2 -2
  392. package/template/src/lib/reflections/volume-reflection-material.ts +59 -59
  393. package/template/src/lib/static-batch/Frozen.tsx +1 -1
  394. package/template/src/lib/static-batch/mutation-watch.ts +1 -1
  395. package/template/src/main.ts +58 -6
  396. package/template/src/manifest-entry-modules.d.ts +12 -1
  397. package/template/src/prefabs/HeroBox.stories.tsx +1 -1
  398. package/template/src/world.tsx +1 -1
  399. package/template/tsconfig.json +1 -1
  400. package/template/validate-manifest.ts +3 -3
  401. package/template/vite.config.ts +11 -11
  402. package/template/{vgai.adapter.ts → volter.adapter.ts} +1 -1
  403. package/template/{vgai.project.json → volter.project.json} +2 -2
  404. package/template-dotfiles/gitignore +27 -27
  405. package/workbench/src/media/game-cover.css +11 -11
  406. package/workbench/src/product.contribution.ts +28 -28
  407. package/workbench/src/{vgaiGameSkew.ts → volterGameSkew.ts} +16 -16
  408. package/dist/assets/AudioViewer-BDPqHDfU.js +0 -1
  409. package/dist/assets/CanvasBoardDocument-mxL0oJ3N.js +0 -1
  410. package/dist/assets/CanvasSceneViewport-C_mapCwC.js +0 -1
  411. package/dist/assets/ColorInput-QUPS1pEB.js +0 -1
  412. package/dist/assets/ImageViewer-tlVvkdM4.js +0 -1
  413. package/dist/assets/InspectorObjectPreview-W-y079DS.js +0 -1
  414. package/dist/assets/JsonAssetDocument-CPmcWFPW.js +0 -2
  415. package/dist/assets/ModelAssetDocument-De1HKuxG.js +0 -1
  416. package/dist/assets/Object3DDocumentToolbar-Cks81kCS.js +0 -1
  417. package/dist/assets/Object3DDocumentViewport-DCwiSY3O.js +0 -2
  418. package/dist/assets/OnlineAssetDetail-CNuwSQRQ.js +0 -1
  419. package/dist/assets/PlayBar-bT8Xdrap.js +0 -1
  420. package/dist/assets/ReactCanvasControls-CnJrPj-B.js +0 -1
  421. package/dist/assets/RootSelectionOverlay-CpaGluQu.js +0 -1
  422. package/dist/assets/ShadowEditor-CVtMlALn.js +0 -1
  423. package/dist/assets/StageHost-B89HKcvd.js +0 -2
  424. package/dist/assets/ThreeBoardDocument-BAgHrbtu.js +0 -2
  425. package/dist/assets/Toolbar-DkTHnQto.js +0 -1
  426. package/dist/assets/VideoViewer-DMV8lf4P.js +0 -1
  427. package/dist/assets/ViewportShadingMenu-CXPi6fl8.js +0 -1
  428. package/dist/assets/active-ingest-DA426a81.js +0 -3
  429. package/dist/assets/adapter-runtime-bindings-4cmsRvRh.js +0 -2
  430. package/dist/assets/animation-mixers.service-DK64IuYq.js +0 -1
  431. package/dist/assets/animation-timeline.utility-D-g0zrOl.js +0 -1
  432. package/dist/assets/asset-editor-persistence-BGWIqZdk.js +0 -1
  433. package/dist/assets/asset-loaders-C0KQI5eY.js +0 -2
  434. package/dist/assets/audio.utility-BmE9WMUg.js +0 -1
  435. package/dist/assets/autoplay.service-CjPnv3QW.js +0 -1
  436. package/dist/assets/binding-resolver-dE0GnZT5.js +0 -2
  437. package/dist/assets/blender-emscripten-engine-BeWFjMn-.js +0 -2
  438. package/dist/assets/blender-version.status-OsFoc9SA.js +0 -1
  439. package/dist/assets/blender-wali-engine-da698rDf.js +0 -2
  440. package/dist/assets/blender.keymap-_rF_vRX8.js +0 -1
  441. package/dist/assets/blender.status-ujwGU6dU.js +0 -1
  442. package/dist/assets/board-guides-BEKPgD9M.js +0 -1
  443. package/dist/assets/body-marks-RKb_LTwL.js +0 -1
  444. package/dist/assets/bridge.command-BF00Iefm.js +0 -3
  445. package/dist/assets/build-profiles.document-CqNrDdh9.js +0 -2
  446. package/dist/assets/build-progress.status-Bo1ZgJcb.js +0 -1
  447. package/dist/assets/build-session-GZcSAfPN.js +0 -9
  448. package/dist/assets/build.header-Bt1kwHWl.js +0 -1
  449. package/dist/assets/canvas-design-mount-BbLW_Nci.js +0 -6
  450. package/dist/assets/canvas-entry-runtime-UNYuSfG0.js +0 -2
  451. package/dist/assets/capability-coverage-DZ-onC5j.js +0 -7
  452. package/dist/assets/component-board.service-q_TM9BCw.js +0 -2
  453. package/dist/assets/component-contracts.service-CPbfXE1h.js +0 -1
  454. package/dist/assets/component-instance-root-B0C5oNEm.js +0 -1
  455. package/dist/assets/component-verbs.service-CnA11bJq.js +0 -1
  456. package/dist/assets/connection.status-Yvt0bX0r.js +0 -1
  457. package/dist/assets/constraints.inspector-4r8jWq5a.js +0 -1
  458. package/dist/assets/coverage.service-DcpEoBuf.js +0 -3
  459. package/dist/assets/create-runtime-DBfUy0SO.js +0 -3
  460. package/dist/assets/curve-DVd18iAX.js +0 -1
  461. package/dist/assets/data-check-core-CQEjuFyt.js +0 -1
  462. package/dist/assets/data-ref-CWnkj-HX.js +0 -1
  463. package/dist/assets/debug-bridge-D3_-EgRE.js +0 -1
  464. package/dist/assets/debug-registry-P0_YQGWd.js +0 -1
  465. package/dist/assets/design-time-layers-ChswRUJt.js +0 -1
  466. package/dist/assets/design-time-react-mount-C85KfXOd.js +0 -1
  467. package/dist/assets/edit-mode-authoring-DeCxPcHM.js +0 -1
  468. package/dist/assets/editor-api-BFTIRlWa.js +0 -1
  469. package/dist/assets/editor-presentation-activity-C7SNSmTd.js +0 -1
  470. package/dist/assets/entry-adjudication-Dc18TIqT.js +0 -1
  471. package/dist/assets/fork-menu-DpKqRhF5.js +0 -1
  472. package/dist/assets/game-audio-CaGKzia4.js +0 -1
  473. package/dist/assets/game-document.service-Chmt4065.js +0 -1
  474. package/dist/assets/game-eval.command-DRSvOJ_1.js +0 -2
  475. package/dist/assets/game-module-access-o3iXZpCA.js +0 -1
  476. package/dist/assets/game-network-Ct2FQYmu.js +0 -1
  477. package/dist/assets/gameplay-replay-BwdxV4oF.js +0 -1
  478. package/dist/assets/gameplay.command-Boqv1hnc.js +0 -1
  479. package/dist/assets/generation-DhwCUHPf.css +0 -1
  480. package/dist/assets/generation.service-o9aXlsx4.js +0 -1
  481. package/dist/assets/generations.status-BvzgHlyk.js +0 -1
  482. package/dist/assets/hierarchy-marks-BLPfSIym.js +0 -1
  483. package/dist/assets/hierarchy-marks-Cc_3lxw6.js +0 -1
  484. package/dist/assets/hosted-asset-materialization-BpbnhJac.js +0 -2
  485. package/dist/assets/index-0Lm0Nf1M.css +0 -1
  486. package/dist/assets/index-BHoAKyAC.js +0 -1
  487. package/dist/assets/index-BeK4RPgj.js +0 -1
  488. package/dist/assets/index-C1c3eOmm.js +0 -1
  489. package/dist/assets/index.module-Ycad3DJq.js +0 -1
  490. package/dist/assets/ingest-siblings-BtiEXLnh.js +0 -1
  491. package/dist/assets/ingest-source-persistence-Dmdo-UBp.js +0 -1
  492. package/dist/assets/ingest.service-vbCucMz7.js +0 -1
  493. package/dist/assets/inspection-CObLhnrs.js +0 -1
  494. package/dist/assets/instances.command-BwayrqNm.js +0 -1
  495. package/dist/assets/layered-pick-kiQf53t5.js +0 -1
  496. package/dist/assets/material-B_V78pTt.js +0 -1
  497. package/dist/assets/model-asset-sections-CFvvihfx.css +0 -1
  498. package/dist/assets/model-asset-sections.service-CqSclZGY.js +0 -1
  499. package/dist/assets/module-mode-BH2R93XP.js +0 -2
  500. package/dist/assets/mount-canvas-ingest-root-D1z9i5B3.js +0 -2
  501. package/dist/assets/mount-dom-ingest-root-BAmmNxlm.js +0 -2
  502. package/dist/assets/mount-ingest-root-DYR0TMIt.js +0 -2
  503. package/dist/assets/mount-manifest-DdkFYdVA.js +0 -1
  504. package/dist/assets/mount-readiness-Ds0HvvLH.js +0 -4
  505. package/dist/assets/mount-three-ingest-root-DVbACDUy.js +0 -1
  506. package/dist/assets/network-observer.service-Ce83TdsU.js +0 -1
  507. package/dist/assets/network.utility-DFDul2Xb.js +0 -1
  508. package/dist/assets/object-marks-DwvIEBOK.js +0 -1
  509. package/dist/assets/pixi-authoring-adapter-BChknIdC.js +0 -1
  510. package/dist/assets/pixi-live-write-target-BjDsBQbp.js +0 -1
  511. package/dist/assets/play-mode-DICV4cKP.js +0 -22
  512. package/dist/assets/play.command-NHyi5rzF.js +0 -2
  513. package/dist/assets/pose-guard-DILO6gGq.js +0 -1
  514. package/dist/assets/presentation-BeNFBfKg.js +0 -1
  515. package/dist/assets/profiler.utility-Do2Bw7MY.js +0 -1
  516. package/dist/assets/project-provenance-4ldz-EOG.js +0 -1
  517. package/dist/assets/r3f-design-session-B5GsZI5M.js +0 -2
  518. package/dist/assets/react-canvas-navigation-Cp3cOHJa.js +0 -1
  519. package/dist/assets/react-inspector.service-Bm0OnanU.js +0 -1
  520. package/dist/assets/react-story-board-GaXqr03H.js +0 -1
  521. package/dist/assets/react-world-authoring-adapter-DOjv2pYm.js +0 -1
  522. package/dist/assets/reflection-probe-capture.inspector-DqSW9p1v.js +0 -1
  523. package/dist/assets/registry-CaCdF63N.js +0 -1
  524. package/dist/assets/root-seam-contract-CxLZaRio.js +0 -1
  525. package/dist/assets/run-selection-DzEkGesJ.js +0 -2
  526. package/dist/assets/scene-capture-0a-bTjT8.js +0 -1
  527. package/dist/assets/scene-document.service-CeDwVA7t.js +0 -2
  528. package/dist/assets/seeded-random-BgCwIAAU.js +0 -1
  529. package/dist/assets/stage-overlay-set-BGE03mqb.js +0 -1
  530. package/dist/assets/stage-presence-markers-DIP7YMcO.js +0 -1
  531. package/dist/assets/stage-transform-tools-BQB7EY4l.js +0 -1
  532. package/dist/assets/standard-viewport-dressing-BCA51Tum.js +0 -24
  533. package/dist/assets/state-watch.utility-CFG1Tu1m.js +0 -1
  534. package/dist/assets/story-documents-BTo90DiA.js +0 -3
  535. package/dist/assets/story-three-preview-R1JvrggS.js +0 -2
  536. package/dist/assets/studio-environment-DRxxq_QX.js +0 -2
  537. package/dist/assets/team-playtest.service-hLfjgScx.js +0 -1
  538. package/dist/assets/three-authoring-adapter-htbnVej2.js +0 -1
  539. package/dist/assets/three-authoring.service-BIQAtVdX.js +0 -2
  540. package/dist/assets/three-integration.service-CS8Nvbd2.js +0 -1
  541. package/dist/assets/three-projection-core-CG01r5Ta.js +0 -1
  542. package/dist/assets/three-viewport-presentation-B0z_cECu.js +0 -141
  543. package/dist/assets/tools-B_NJsk05.js +0 -1
  544. package/dist/assets/transform-mode-request-DzD9aUNA.js +0 -1
  545. package/dist/assets/transport-strip-CUjNltnb.js +0 -1
  546. package/dist/assets/transport.header-Bb4FpQ8J.js +0 -1
  547. package/dist/assets/tuples-DfWSY2tr.js +0 -1
  548. package/dist/assets/ui-board-document-CCiiXjX9.js +0 -2
  549. package/dist/assets/user-data-dHvLdpwM.js +0 -1
  550. package/dist/assets/viewport-door-Bj_ZIP85.js +0 -1
  551. package/dist/assets/worker-CC9Ug5Ei.js +0 -2
  552. package/dist/assets/workspace-arrangement-BdAlBwvd.js +0 -1
  553. package/dist/assets/world-documents-DBybpBq8.js +0 -1
  554. package/dist/assets/world-root-stage-binding-ZVYIgr74.js +0 -1
  555. package/dist/vgai-shared-react.json +0 -10
  556. package/dist/vgai-shared-three.json +0 -3
  557. package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  558. package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  559. package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  560. /package/dist/assets/{vgai-shared-fontawesome-CU65D4Ij.js → volter-shared-fontawesome-CU65D4Ij.js} +0 -0
  561. /package/dist/assets/{vgai-shared-jsx-dev-runtime-DFDKL7fx.js → volter-shared-jsx-dev-runtime-DFDKL7fx.js} +0 -0
  562. /package/dist/assets/{vgai-shared-jsx-runtime-DIqBpTut.js → volter-shared-jsx-runtime-DIqBpTut.js} +0 -0
  563. /package/dist/assets/{vgai-shared-react-BT7rMc2H.js → volter-shared-react-BT7rMc2H.js} +0 -0
  564. /package/dist/assets/{vgai-shared-react-dom-DFajMqMT.js → volter-shared-react-dom-DFajMqMT.js} +0 -0
  565. /package/dist/assets/{vgai-shared-react-dom-client-S0ozfl6_.js → volter-shared-react-dom-client-S0ozfl6_.js} +0 -0
  566. /package/dist/assets/{vgai-shared-three-DH4yxKwt.js → volter-shared-three-DH4yxKwt.js} +0 -0
  567. /package/template/{.vgai → .volter}/assets.json +0 -0
  568. /package/template/{.vgai → .volter}/provenance.json +0 -0
@@ -11,7 +11,7 @@ Legend: **ERROR** fails every run; **WARN** prints but fails only with
11
11
 
12
12
  - The source is the document. Three roots are ordinary R3F TSX, Canvas roots
13
13
  are ordinary Pixi/React source, and DOM roots are ordinary React. The world
14
- node is the entity; no mirror ECS, registration layer, or vgai runtime API
14
+ node is the entity; no mirror ECS, registration layer, or volter runtime API
15
15
  belongs in gameplay components. **LOOK**
16
16
  - A DOM HUD is a manifest `dom` root and reads the project's own React
17
17
  context/store. A timer repeatedly copying game state into React state is a
@@ -60,7 +60,7 @@ Legend: **ERROR** fails every run; **WARN** prints but fails only with
60
60
  behavior being judged. The tester's repertoire grows in the slice that adds
61
61
  each mechanic. **LOOK**
62
62
  - `src/tools/` is literal contribution TSX. The unfinished Tester/Data/Analytics stubs
63
- emit `VGAI_STUB_UNIMPLEMENTED`; replacing or honestly deleting the relevant
63
+ emit `VOLTER_STUB_UNIMPLEMENTED`; replacing or honestly deleting the relevant
64
64
  stub is required before completion. **ERROR E6**
65
65
  - Tester holds live QA state, controller ownership, goals/mind, setup cheats,
66
66
  and judgment readings. Analytics holds historical session data. Data holds
@@ -76,7 +76,7 @@ Legend: **ERROR** fails every run; **WARN** prints but fails only with
76
76
  - Playtesting is interactive: arrange, direct the tester, advance sim time,
77
77
  observe, read the log, redirect. No committed route, test file, test-runner
78
78
  dependency, or test script belongs in a game project. **ERROR E12**
79
- - Do not boot a private Playwright harness, reach through `window.__vgai`, or
79
+ - Do not boot a private Playwright harness, reach through `window.__volter`, or
80
80
  add `?bot=` boot plumbing. Use the editor-owned session and the game's
81
81
  running modules. **ERROR E1–E4**
82
82
  - Gameplay source must not accumulate for many commits before the first Play
package/template/LICENSE CHANGED
@@ -2,13 +2,13 @@ MIT License
2
2
 
3
3
  Copyright (c) 2026 Volter AI, Inc.
4
4
 
5
- This MIT license covers the vgai game-project template (this directory) — the
5
+ This MIT license covers the Volter game-project template (this directory) — the
6
6
  starter code scaffolded into your project. It is intentionally permissive so that
7
- the game you build with vgai, and anything you generate from this template, is
7
+ the game you build with Volter, and anything you generate from this template, is
8
8
  YOURS, free of any obligations to us. You may relicense your generated game
9
9
  under any terms you choose.
10
10
 
11
- (The vgai engine and tooling — everything outside this directory — are licensed
11
+ (The Volter engine and tooling — everything outside this directory — are licensed
12
12
  per component: Apache-2.0 core, AGPL-3.0 editor. See the repository LICENSE.md.)
13
13
 
14
14
  Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,6 +1,6 @@
1
- # VGAI game project
1
+ # VOLTER game project
2
2
 
3
- This is a standalone game project created by VGAI. Describe the game you want
3
+ This is a standalone game project created by VOLTER. Describe the game you want
4
4
  to a coding agent, or open the shared visual editor directly:
5
5
 
6
6
  ```bash
@@ -18,7 +18,7 @@ npm run dev # open/reuse this project's editor
18
18
  npm run check-idioms # project architecture and completion diagnostics
19
19
  npm run typecheck # game, editor contributions, Node config, and server
20
20
  npm run validate # project files and React design states
21
- npm run validate-manifest # vgai.project.json
21
+ npm run validate-manifest # volter.project.json
22
22
  npm run build # production game bundle
23
23
  ```
24
24
 
@@ -26,7 +26,7 @@ The `studio` addition (`game-editor create <name> --with studio`, or `--template
26
26
  brings three development contributions; no other preset does. The files are:
27
27
  `src/contributions/tester.inspector.tsx`, `src/contributions/data.document.tsx` and
28
28
  `src/contributions/analytics.analytics.tsx`. They emit
29
- `VGAI_STUB_UNIMPLEMENTED`, so the editor console and `check-idioms` remain red
29
+ `VOLTER_STUB_UNIMPLEMENTED`, so the editor console and `check-idioms` remain red
30
30
  until the game supplies its own Tester, Data and Analytics surfaces (or deletes
31
31
  Data because it genuinely has no authored content tables). Analytics must provide
32
32
  game-specific analysis. The editor already provides session selection, playback
@@ -50,23 +50,23 @@ example must not silently erase the architecture it demonstrates.
50
50
  Drive/read the running game through its own exported modules:
51
51
 
52
52
  ```bash
53
- npm run vgai -- eval 'return game.run(async ({ modules }) => { const bot = await modules("src/bot/tester-station.ts"); return bot.describeTester(); })'
53
+ npm run volter -- eval 'return game.run(async ({ modules }) => { const bot = await modules("src/bot/tester-station.ts"); return bot.describeTester(); })'
54
54
  ```
55
55
 
56
56
  Record through the same eval door while Play is running:
57
57
 
58
58
  ```bash
59
- npm run vgai -- eval 'return editor.recording.start({ fps: 30 })'
59
+ npm run volter -- eval 'return editor.recording.start({ fps: 30 })'
60
60
  # direct the resident tester and advance simulation time
61
- npm run vgai -- eval 'return editor.recording.stop()'
61
+ npm run volter -- eval 'return editor.recording.stop()'
62
62
  ```
63
63
 
64
- Recordings are standard WebM files under `.vgai/recordings/`. Inspect and trim
64
+ Recordings are standard WebM files under `.volter/recordings/`. Inspect and trim
65
65
  them with ordinary `ffmpeg`/`ffprobe`; promote only reviewed evidence into
66
66
  `media/`. Structured Gameplay Session logs live under `logs/play-*.jsonl` and
67
67
  remain the durable Analytics source after Stop or reload.
68
68
 
69
- The project manifest is `vgai.project.json`. `ROADMAP.md` owns major feature
69
+ The project manifest is `volter.project.json`. `ROADMAP.md` owns major feature
70
70
  arcs; `DEVLOG.md` is the development journal. Coding agents begin with
71
71
  `AGENTS.md`, which routes task-specific details to `.agents/` skills and the
72
72
  project manual.
@@ -76,8 +76,8 @@ Editor runtime image for its engine version (`~/.volter/images/`), which
76
76
  carries every package the template and the catalog's capabilities use; the
77
77
  game is its own code. `package.json` still declares what the game uses, so
78
78
  replacing the link with `npm install` gives a standalone installation.
79
- `npm run vgai -- status` reports the product serving the active session.
79
+ `npm run volter -- status` reports the product serving the active session.
80
80
 
81
- Learn and manual: https://vgai-learn.pages.dev
81
+ Learn and manual: https://volter-learn.pages.dev
82
82
 
83
- Hosted editor: https://vgai-editor.pages.dev
83
+ Hosted editor: https://volter-editor.pages.dev
@@ -21,7 +21,7 @@ import { fileURLToPath } from 'node:url';
21
21
  // ERROR (exit 1 always) — unambiguous drift, one canonical fix each:
22
22
  // E1. `playwright`/`@playwright/test` imported anywhere in the project —
23
23
  // the resident tester (directed through its running game module via
24
- // `vgai eval`) is the ONE bot harness, and a
24
+ // `volter-game-editor eval`) is the ONE bot harness, and a
25
25
  // hand-rolled browser boot is banned.
26
26
  // VALUE imports only: a type-only import (`import type {Page}`, or
27
27
  // an inline `{ type Page }` with no value specifier) binds nothing
@@ -30,18 +30,18 @@ import { fileURLToPath } from 'node:url';
30
30
  // step normally needs, so the direct import is usually avoidable
31
31
  // anyway.
32
32
  // E2. package.json scripts invoking `playwright` directly.
33
- // E3. `window.__vgai` accessed in src/** (the bot/CLI consumer
33
+ // E3. `window.__volter` accessed in src/** (the bot/CLI consumer
34
34
  // surface, not the authoring surface — export the state from a module).
35
35
  // E4. `?bot=`-style query-param bot plumbing in src/** — the project's
36
36
  // resident tester owns bot entry.
37
37
  // E5. raw `Math.random()`/`Date.now()`/`performance.now()` in
38
38
  // src/scripts/** gameplay code — ONLY when this project's OWN
39
- // vgai.project.json declares `determinism.seededRandom: true`; silent
39
+ // volter.project.json declares `determinism.seededRandom: true`; silent
40
40
  // when undeclared (D15, T-D15.3's third enforcer leg — the other
41
41
  // two, the engine-src permanent scan and the examples/ burn-down
42
42
  // scan, live in the engine repo's own test suite; see
43
43
  // packages/engine/test/gameplay-rng-ban.test.ts).
44
- // E6. `VGAI_STUB_UNIMPLEMENTED` remains in src/tools/** or src/contributions/** — this
44
+ // E6. `VOLTER_STUB_UNIMPLEMENTED` remains in src/tools/** or src/contributions/** — this
45
45
  // is the starter's explicit unfinished-work sentinel, so a completion
46
46
  // check containing it cannot be green. Replace the Tester/Data/Analytics stub
47
47
  // whole in the game's vocabulary; a game with no content tables may
@@ -105,7 +105,7 @@ import { fileURLToPath } from 'node:url';
105
105
  // E9 is the one rule that does NOT answer its question from the file tree
106
106
  // alone: the R3F00x codes come from the editor's own source analyzer
107
107
  // (`ui-source/r3f-project-contracts.ts`), the same pass validate-on-save and
108
- // `vgai status` report from. It is loaded OFFLINE — the analyzer is a pure
108
+ // `volter-game-editor status` report from. It is loaded OFFLINE — the analyzer is a pure
109
109
  // `(code, file) => diagnostics` function over `typescript`, with no dev
110
110
  // server, browser or editor session anywhere in it — through this project's
111
111
  // own `@editor/*` tsconfig mapping, so check-idioms never requires a running
@@ -117,7 +117,7 @@ import { fileURLToPath } from 'node:url';
117
117
  // incomplete). This is intentionally a dumb line/regex scanner, not an AST
118
118
  // pass — it comment-strips PURE comment lines (lines whose trimmed text
119
119
  // starts with `//`, `/*`, `*`, or is exactly `*/`) before matching rule
120
- // patterns, so doc-comment prose that merely MENTIONS e.g. `window.__vgai`
120
+ // patterns, so doc-comment prose that merely MENTIONS e.g. `window.__volter`
121
121
  // doesn't trip a finding, but it does not understand string literals,
122
122
  // template strings, or multi-statement lines. False positives are expected
123
123
  // occasionally; suppress them with a reason rather than fighting the regex.
@@ -147,7 +147,7 @@ if (!existsSync(rootDir)) {
147
147
 
148
148
  // This script's own resolved path — excluded from every scan so its rule
149
149
  // regexes (which literally contain the strings they look for, e.g.
150
- // 'colyseus.js', 'window.__vgai', '@playwright/test') never self-flag.
150
+ // 'colyseus.js', 'window.__volter', '@playwright/test') never self-flag.
151
151
  const SELF_PATH = resolve(fileURLToPath(import.meta.url));
152
152
 
153
153
  // ---------------------------------------------------------------------------
@@ -166,7 +166,7 @@ const SKIP_DIRS = new Set([
166
166
  '.github',
167
167
  'dist',
168
168
  'build',
169
- '.vgai',
169
+ '.volter',
170
170
  'coverage',
171
171
  '.turbo',
172
172
  ]);
@@ -347,7 +347,7 @@ function checkPlaywrightImports(): void {
347
347
  'error',
348
348
  'bot-canonical',
349
349
  `"${pkg}" imported — the resident tester, directed through the running game's own module, is the ONE bot harness; hand-rolled Playwright boots are banned.`,
350
- "Drive the game through the live session (vgai eval + the running tester module), or take the Playwright types from '@volter/game-live' as a type-only import.",
350
+ "Drive the game through the live session (volter-game-editor eval + the running tester module), or take the Playwright types from '@volter/game-live' as a type-only import.",
351
351
  );
352
352
  }
353
353
  }
@@ -380,7 +380,7 @@ function checkPackageJsonScripts(): void {
380
380
  'error',
381
381
  'bot-canonical',
382
382
  `script "${name}" invokes playwright directly ("${cmd}") — this project has no Playwright lane to own a browser binary or config.`,
383
- `Delete the "${name}" script — playtesting is the live session (vgai eval + the running tester module), not a script.`,
383
+ `Delete the "${name}" script — playtesting is the live session (volter-game-editor eval + the running tester module), not a script.`,
384
384
  );
385
385
  }
386
386
  }
@@ -393,7 +393,7 @@ function checkPackageJsonScripts(): void {
393
393
  * file enters an endless cycle of rewriting assertions and actions (owner
394
394
  * ruling, 2026-08-21 — measured live: three assertion renegotiations in
395
395
  * twenty minutes on one balance suite). The playtest loop is INTERACTIVE:
396
- * `vgai eval` + cheats set the situation, bot policy runs behavior, event
396
+ * `volter-game-editor eval` + cheats set the situation, bot policy runs behavior, event
397
397
  * logs are read on an interval, and the run is redirected live until the
398
398
  * operator is satisfied. The play log (logs/play-*.jsonl) is the receipt. This
399
399
  * rule keeps the furniture out so the cheapest path stays the sanctioned
@@ -403,7 +403,7 @@ function checkNoTestFurniture(): void {
403
403
  'Delete it and playtest LIVE: eval + cheats set the situation, bot goals run behavior, the ' +
404
404
  'event log is read on an interval, the run is redirected until satisfied; the play log ' +
405
405
  '(logs/play-*.jsonl) is the receipt.';
406
- const SKIP_DIRS = new Set(['node_modules', '.git', 'dist', '.vgai', 'logs', 'media', 'public']);
406
+ const SKIP_DIRS = new Set(['node_modules', '.git', 'dist', '.volter', 'logs', 'media', 'public']);
407
407
  const testFile = /\.(test|spec)\.[cm]?[jt]sx?$/;
408
408
  const walk = (dir: string): void => {
409
409
  for (const entry of readdirSync(dir)) {
@@ -477,31 +477,31 @@ function checkNoTestFurniture(): void {
477
477
  }
478
478
 
479
479
  // ---------------------------------------------------------------------------
480
- // E3 — window.__vgai accessed in src/**
480
+ // E3 — window.__volter accessed in src/**
481
481
  // ---------------------------------------------------------------------------
482
482
 
483
- function checkWindowVgai(): void {
484
- // Two-part, same-line heuristic rather than a single `window\.__vgai`
483
+ function checkWindowVolter(): void {
484
+ // Two-part, same-line heuristic rather than a single `window\.__volter`
485
485
  // regex: this codebase's OWN canonical way to reach the bridge (see
486
486
  // @volter/game-live's game-client/client.ts) is a cast in between —
487
- // `(window as unknown as { __vgai?: ... }).__vgai` — so `window` and
488
- // `.__vgai` are literal-adjacent only coincidentally. Flag any line that
489
- // mentions the `window` token AND a bare `.__vgai`/`['__vgai']` property
487
+ // `(window as unknown as { __volter?: ... }).__volter` — so `window` and
488
+ // `.__volter` are literal-adjacent only coincidentally. Flag any line that
489
+ // mentions the `window` token AND a bare `.__volter`/`['__volter']` property
490
490
  // access. The negative lookahead on the dotted form keeps this off
491
- // `__vgaiScene`/`__vgaiCamera`/`__vgaiRender`/`__vgaiBatch` etc. — those
492
- // are different, unrelated dev-only globals, not the frozen `window.__vgai`
491
+ // `__volterScene`/`__volterCamera`/`__volterRender`/`__volterBatch` etc. — those
492
+ // are different, unrelated dev-only globals, not the frozen `window.__volter`
493
493
  // debug-bridge shape (D18). A file-scoped `window` ALIAS on its own line
494
- // (`const w = window as …; w['__vgai']`) is a known miss — this is a
494
+ // (`const w = window as …; w['__volter']`) is a known miss — this is a
495
495
  // line-scan, not an AST pass.
496
496
  const windowRe = /\bwindow\b/;
497
- const vgaiAccessRe = /\.__vgai(?![A-Za-z0-9_])|\[\s*['"]__vgai['"]\s*\]/g;
497
+ const volterAccessRe = /\.__volter(?![A-Za-z0-9_])|\[\s*['"]__volter['"]\s*\]/g;
498
498
  for (const file of srcFiles) {
499
499
  const { rawLines, blanked } = readFileText(file);
500
500
  const blankedLines = blanked.split('\n');
501
501
  blankedLines.forEach((line, i) => {
502
502
  if (!windowRe.test(line)) return;
503
- vgaiAccessRe.lastIndex = 0;
504
- if (!vgaiAccessRe.test(line)) return;
503
+ volterAccessRe.lastIndex = 0;
504
+ if (!volterAccessRe.test(line)) return;
505
505
  addFinding(
506
506
  file,
507
507
  rawLines,
@@ -509,7 +509,7 @@ function checkWindowVgai(): void {
509
509
  'E3',
510
510
  'error',
511
511
  'bot-canonical',
512
- 'window.__vgai accessed directly in src/** — this is the bot/CLI consumer surface, not the authoring surface.',
512
+ 'window.__volter accessed directly in src/** — this is the bot/CLI consumer surface, not the authoring surface.',
513
513
  'Read and drive the game through its own exported modules instead (game.run(({ modules }) => …)).',
514
514
  );
515
515
  });
@@ -550,7 +550,7 @@ function checkBotParam(): void {
550
550
  * reads as "none" — validating its shape is validate-manifest.ts's job. */
551
551
  function manifestDomRootEntries(): Set<string> {
552
552
  const entries = new Set<string>();
553
- const manifestPath = join(rootDir, 'vgai.project.json');
553
+ const manifestPath = join(rootDir, 'volter.project.json');
554
554
  if (!existsSync(manifestPath)) return entries;
555
555
  try {
556
556
  const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8')) as {
@@ -710,9 +710,9 @@ function checkTriggerNameIdentity(): void {
710
710
  // ---------------------------------------------------------------------------
711
711
  // git-history plumbing shared by slice-proxy rules (W9)
712
712
  // ---------------------------------------------------------------------------
713
- // The vgai CLI mirrors this exact measurement (source path, gameplay
714
- // pathspecs, threshold, silent-on-unaskable) as `vgai status`'s ambient
715
- // bot-drift line — engine repo, packages/vgai-cli/src/instrumentation-signal.ts.
713
+ // The volter CLI mirrors this exact measurement (source path, gameplay
714
+ // pathspecs, threshold, silent-on-unaskable) as `volter-game-editor status`'s ambient
715
+ // bot-drift line — engine repo, packages/volter-cli/src/instrumentation-signal.ts.
716
716
  // If you change any of the three constants below, change them there too, or
717
717
  // the ambient signal and this rule will disagree about whether a bot drifted.
718
718
 
@@ -848,7 +848,7 @@ function hasPlayEvidence(): boolean {
848
848
  }
849
849
 
850
850
  /** The scaffolder's own record of where this project came from
851
- * (packages/create-vgai-project/src/baseline.ts). W9's history ANCHOR.
851
+ * (packages/create-volter-project/src/baseline.ts). W9's history ANCHOR.
852
852
  *
853
853
  * W7 anchors its window on a file's last commit; W9 does the same, and this
854
854
  * is the file that means "this project began here". Anchoring matters: an
@@ -859,7 +859,7 @@ function hasPlayEvidence(): boolean {
859
859
  * maintenance history, and a rule that shouts at our own reference material
860
860
  * on every run is noise, not a tripwire. A project with no committed
861
861
  * baseline cannot be asked when it started, so W9 stays silent there. */
862
- const SCAFFOLD_BASELINE_SOURCE = '.vgai/scaffold-baseline.json';
862
+ const SCAFFOLD_BASELINE_SOURCE = '.volter/scaffold-baseline.json';
863
863
 
864
864
  /** Gameplay commits since the scaffold anchor, at or above which a project
865
865
  * that has never been played is reported.
@@ -900,23 +900,23 @@ function checkPlayedBeforeAuthoring(): void {
900
900
  'typecheck and unit tests cannot see: a blank canvas, an invisible mesh, a camera inside ' +
901
901
  'the geometry.',
902
902
  'Author in playable slices (AGENTS.md) — enter Play before writing the next slice: run ' +
903
- '`npm run vgai -- play`, look at the game, playtest live, then continue; reading the ' +
903
+ '`npm run volter -- play`, look at the game, playtest live, then continue; reading the ' +
904
904
  'code again does not count.',
905
905
  );
906
906
  }
907
907
 
908
908
  // ---------------------------------------------------------------------------
909
909
  // E5 — raw Math.random()/Date.now()/performance.now() in src/scripts/**,
910
- // only when THIS project's own vgai.project.json declares
910
+ // only when THIS project's own volter.project.json declares
911
911
  // determinism.seededRandom (D15, T-D15.3's third enforcer leg).
912
912
  // ---------------------------------------------------------------------------
913
913
 
914
- /** Reads rootDir/vgai.project.json and reports whether it declares
914
+ /** Reads rootDir/volter.project.json and reports whether it declares
915
915
  * `determinism.seededRandom: true`. Missing/malformed manifests read as
916
916
  * "not declared" (silent) — validating the manifest's own shape is
917
917
  * validate-manifest.ts's job, not this scanner's. */
918
918
  function projectDeclaresSeededRandom(): boolean {
919
- const manifestPath = join(rootDir, 'vgai.project.json');
919
+ const manifestPath = join(rootDir, 'volter.project.json');
920
920
  if (!existsSync(manifestPath)) return false;
921
921
  try {
922
922
  const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8')) as {
@@ -943,7 +943,7 @@ function checkDeterminismRng(): void {
943
943
  'E5',
944
944
  'error',
945
945
  'gameplay-rng-ctx-random',
946
- `raw "${m[1]}(" in src/scripts/** — this project's vgai.project.json declares ` +
946
+ `raw "${m[1]}(" in src/scripts/** — this project's volter.project.json declares ` +
947
947
  'determinism.seededRandom, so ALL gameplay RNG/wall-clock reads must flow through ' +
948
948
  'ctx.random, not raw Math.random()/Date.now()/performance.now().',
949
949
  'Use ctx.random() (or ctx.random.stream(name) for an independent named stream) instead.',
@@ -957,7 +957,7 @@ function checkDeterminismRng(): void {
957
957
  // ---------------------------------------------------------------------------
958
958
 
959
959
  function checkUnconfiguredProjectTools(): void {
960
- const sentinel = /\bVGAI_STUB_UNIMPLEMENTED\b/g;
960
+ const sentinel = /\bVOLTER_STUB_UNIMPLEMENTED\b/g;
961
961
  const toolFiles = srcFiles.filter((file) => /^(src\/tools|src\/contributions)\//.test(relPath(file)));
962
962
  for (const file of toolFiles) {
963
963
  const { rawLines, blanked } = readFileText(file);
@@ -969,7 +969,7 @@ function checkUnconfiguredProjectTools(): void {
969
969
  'E6',
970
970
  'error',
971
971
  'studio-surfaces-complete',
972
- 'VGAI_STUB_UNIMPLEMENTED remains in an editor contribution — this is an explicit starter obligation, not a usable game-specific surface.',
972
+ 'VOLTER_STUB_UNIMPLEMENTED remains in an editor contribution — this is an explicit starter obligation, not a usable game-specific surface.',
973
973
  "Rewrite the stub whole in this game's vocabulary and remove its warning. If this is the Data stub and the game genuinely has no authored content tables, delete the file.",
974
974
  );
975
975
  }
@@ -1087,7 +1087,7 @@ function loadR3fAnalyzer(): R3fAnalyzer | null {
1087
1087
  */
1088
1088
  interface RegionSurfaces {
1089
1089
  surfaces: ReadonlyMap<string, string>;
1090
- /** This project's `vgai.adapter.ts` declares a `regions` binding the static
1090
+ /** This project's `volter.adapter.ts` declares a `regions` binding the static
1091
1091
  * reader could not evaluate, so its `include` globs were not consulted.
1092
1092
  * Carried rather than dropped: the editor's own loader EVALUATES that module
1093
1093
  * and would honor those globs, so silence here means the two readers
@@ -1121,7 +1121,7 @@ function loadRegionSurfaces(): RegionSurfaces | null {
1121
1121
  m: string,
1122
1122
  a: string,
1123
1123
  ) => { regions: unknown[]; unreadable: boolean }
1124
- )(read('vgai.project.json'), read('vgai.adapter.ts'));
1124
+ )(read('volter.project.json'), read('volter.adapter.ts'));
1125
1125
  const sources = srcFiles.map((file) => ({
1126
1126
  path: relPath(file),
1127
1127
  source: readFileSync(file, 'utf-8'),
@@ -1141,31 +1141,31 @@ function loadRegionSurfaces(): RegionSurfaces | null {
1141
1141
  function checkAuthoringWarnings(): void {
1142
1142
  const analyze = loadR3fAnalyzer();
1143
1143
  if (!analyze) {
1144
- // Silent for a folder that is not a vgai project at all — this scanner
1144
+ // Silent for a folder that is not a volter-game-editor project at all — this scanner
1145
1145
  // is pointed at scratch directories by its own tests and by curious
1146
1146
  // agents, and a rule about a missing tsconfig mapping is a rule about a
1147
1147
  // project. Inside a real project the mapping is scaffolded, so its
1148
1148
  // absence is worth saying out loud rather than passing quietly.
1149
- if (!existsSync(join(rootDir, 'vgai.project.json'))) return;
1149
+ if (!existsSync(join(rootDir, 'volter.project.json'))) return;
1150
1150
  addProjectFinding(
1151
1151
  'E9',
1152
1152
  'warn',
1153
1153
  'authoring-warnings-zero',
1154
1154
  'the R3F authoring analyzer could not be loaded, so authoring warnings were NOT checked — this run says nothing about them. It resolves through this project\'s tsconfig.json "@editor/*" path mapping.',
1155
- 'Restore the "@editor/*" mapping in tsconfig.json (it points at the engine checkout, or at node_modules/@volter/editor-core/src) and re-run. `npm run vgai -- status` reports the same counts from the live editor meanwhile.',
1155
+ 'Restore the "@editor/*" mapping in tsconfig.json (it points at the engine checkout, or at node_modules/@volter/editor-core/src) and re-run. `npm run volter -- status` reports the same counts from the live editor meanwhile.',
1156
1156
  );
1157
1157
  return;
1158
1158
  }
1159
1159
 
1160
1160
  const resolved = loadRegionSurfaces();
1161
1161
  if (!resolved) {
1162
- if (!existsSync(join(rootDir, 'vgai.project.json'))) return;
1162
+ if (!existsSync(join(rootDir, 'volter.project.json'))) return;
1163
1163
  addProjectFinding(
1164
1164
  'E9',
1165
1165
  'warn',
1166
1166
  'authoring-warnings-zero',
1167
1167
  "the region resolver could not be loaded, so no file could be attributed to this project's `three` region and authoring warnings were NOT checked — this run says nothing about them.",
1168
- 'Restore the "@editor/*" mapping in tsconfig.json (it points at the engine checkout, or at node_modules/@volter/editor-core/src) and re-run. `npm run vgai -- status` reports the same counts from the live editor meanwhile.',
1168
+ 'Restore the "@editor/*" mapping in tsconfig.json (it points at the engine checkout, or at node_modules/@volter/editor-core/src) and re-run. `npm run volter -- status` reports the same counts from the live editor meanwhile.',
1169
1169
  );
1170
1170
  return;
1171
1171
  }
@@ -1175,7 +1175,7 @@ function checkAuthoringWarnings(): void {
1175
1175
  'E9',
1176
1176
  'warn',
1177
1177
  'authoring-warnings-zero',
1178
- "vgai.adapter.ts declares a `regions` binding that cannot be read statically, so its `include` globs were NOT consulted — any file those globs place is missing from this run, while the editor's own loader still honors them.",
1178
+ "volter.adapter.ts declares a `regions` binding that cannot be read statically, so its `include` globs were NOT consulted — any file those globs place is missing from this run, while the editor's own loader still honors them.",
1179
1179
  'Write the regions as an array of object literals passed directly to defineAdapter({…}), with literal `id` and `include` values (not a hoisted const, not a spread).',
1180
1180
  );
1181
1181
  }
@@ -1349,7 +1349,7 @@ function checkPrefabStories(): void {
1349
1349
  // ---------------------------------------------------------------------------
1350
1350
 
1351
1351
  function manifestHasThreeRoot(): boolean {
1352
- const manifestPath = join(rootDir, 'vgai.project.json');
1352
+ const manifestPath = join(rootDir, 'volter.project.json');
1353
1353
  if (!existsSync(manifestPath)) return false;
1354
1354
  try {
1355
1355
  const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8')) as {
@@ -1448,7 +1448,7 @@ function checkSceneFolderContract(): void {
1448
1448
  checkPlaywrightImports();
1449
1449
  checkPackageJsonScripts();
1450
1450
  checkNoTestFurniture();
1451
- checkWindowVgai();
1451
+ checkWindowVolter();
1452
1452
  checkBotParam();
1453
1453
  checkPollingPump();
1454
1454
  checkColyseusStaticImport();
@@ -1470,7 +1470,7 @@ const warnFindings = findings.filter((f) => f.severity === 'warn');
1470
1470
  *
1471
1471
  * Measured failure: a blind probe ran `typecheck` seven times and this scanner
1472
1472
  * once, at minute 19, which turned every open finding into an end-of-build
1473
- * scramble. `vgai status` — the command an agent polls constantly — reads this
1473
+ * scramble. `volter-game-editor status` — the command an agent polls constantly — reads this
1474
1474
  * file and surfaces the open ERROR findings as an advisory count, so they are
1475
1475
  * visible from the first status call while THIS script stays the gate.
1476
1476
  *
@@ -1479,9 +1479,9 @@ const warnFindings = findings.filter((f) => f.severity === 'warn');
1479
1479
  */
1480
1480
  function writeFindingsRecord(): void {
1481
1481
  try {
1482
- mkdirSync(join(rootDir, '.vgai'), { recursive: true });
1482
+ mkdirSync(join(rootDir, '.volter'), { recursive: true });
1483
1483
  writeFileSync(
1484
- join(rootDir, '.vgai', 'check-idioms.json'),
1484
+ join(rootDir, '.volter', 'check-idioms.json'),
1485
1485
  `${JSON.stringify(
1486
1486
  {
1487
1487
  at: new Date().toISOString(),
@@ -1,6 +1,6 @@
1
1
  import type { Plugin } from 'vite';
2
2
 
3
- const MANIFEST_ENTRIES_ID = 'virtual:vgai-manifest-entries';
3
+ const MANIFEST_ENTRIES_ID = 'virtual:volter-manifest-entries';
4
4
  const RESOLVED_MANIFEST_ENTRIES_ID = `\0${MANIFEST_ENTRIES_ID}`;
5
5
 
6
6
  function collectManifestEntries(manifest: unknown): string[] {
@@ -20,7 +20,7 @@ function collectManifestEntries(manifest: unknown): string[] {
20
20
 
21
21
  for (const entry of entries) {
22
22
  if (entry.startsWith('/') || entry.includes('\\') || entry.split('/').includes('..')) {
23
- throw new Error(`vgai.project.json world entry must be project-relative: ${entry}`);
23
+ throw new Error(`volter.project.json world entry must be project-relative: ${entry}`);
24
24
  }
25
25
  }
26
26
 
@@ -31,18 +31,31 @@ function collectManifestEntries(manifest: unknown): string[] {
31
31
  * Render imports for the manifest's exact `roots[].entry` declarations.
32
32
  * The manifest—not a filename convention—is the only discovery source.
33
33
  */
34
+ function declaresCanvasRoot(manifest: unknown): boolean {
35
+ const roots = manifest && typeof manifest === 'object' ? (manifest as { roots?: unknown }).roots : undefined;
36
+ return (
37
+ Array.isArray(roots) &&
38
+ roots.some((root) => root && typeof root === 'object' && (root as { adapter?: unknown }).adapter === 'canvas')
39
+ );
40
+ }
41
+
34
42
  export function renderManifestEntryModule(manifest: unknown): string {
35
43
  const entries = collectManifestEntries(manifest);
36
44
  const imports = entries.map(
37
45
  (entry, index) => `import * as entry${index} from ${JSON.stringify(`/${entry}`)};`,
38
46
  );
39
47
  const members = entries.map((entry, index) => `${JSON.stringify(entry)}: entry${index}`);
40
- return `${imports.join('\n')}\nexport const manifestEntryModules = {${members.join(',')}};\n`;
48
+ // Pixi rides only with a declared `canvas` root: its mount (and the two packages it imports)
49
+ // is `src/canvas-mount.ts`, which only such a project carries.
50
+ const canvas = declaresCanvasRoot(manifest)
51
+ ? `export { mountCanvasRoot } from "/src/canvas-mount.ts";`
52
+ : 'export const mountCanvasRoot = undefined;';
53
+ return `${imports.join('\n')}\nexport const manifestEntryModules = {${members.join(',')}};\n${canvas}\n`;
41
54
  }
42
55
 
43
56
  export function manifestEntryModulesPlugin(manifest: unknown): Plugin {
44
57
  return {
45
- name: 'vgai:manifest-entry-modules',
58
+ name: 'volter:manifest-entry-modules',
46
59
  resolveId(id) {
47
60
  return id === MANIFEST_ENTRIES_ID ? RESOLVED_MANIFEST_ENTRIES_ID : undefined;
48
61
  },
@@ -8,14 +8,14 @@
8
8
  "node": ">=22.0.0"
9
9
  },
10
10
  "scripts": {
11
- "vgai": "volter-game-editor",
11
+ "volter": "volter-game-editor",
12
12
  "dev": "volter-game-editor edit .",
13
13
  "dev:standalone": "vite",
14
14
  "build": "tsc && vite build",
15
15
  "preview": "vite preview",
16
16
  "postinstall": "node scripts/patch-drei-stats-gl.mjs",
17
17
  "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.tools.json && tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p server/tsconfig.json",
18
- "validate-manifest": "npx tsx validate-manifest.ts vgai.project.json",
18
+ "validate-manifest": "npx tsx validate-manifest.ts volter.project.json",
19
19
  "check-idioms": "npx tsx check-idioms.ts .",
20
20
  "server": "npx tsx --tsconfig server/tsconfig.json server/main.ts"
21
21
  },
@@ -24,9 +24,9 @@
24
24
  "@colyseus/sdk": "^0.17.34",
25
25
  "@react-three/drei": "^10.7.7",
26
26
  "@react-three/fiber": "^9.6.1",
27
- "@volter/editor-project": "^0.5.67",
28
- "@volter/game-runtime": "^0.5.67",
29
- "@volter/threejs-runtime": "^0.5.67",
27
+ "@volter/editor-project": "^0.5.69",
28
+ "@volter/game-runtime": "^0.5.69",
29
+ "@volter/threejs-runtime": "^0.5.69",
30
30
  "react": "~19.2.4",
31
31
  "react-dom": "~19.2.4",
32
32
  "three": "^0.180.0",
@@ -40,13 +40,13 @@
40
40
  "@types/react-dom": "^19.2.3",
41
41
  "@types/three": "^0.180.0",
42
42
  "@vitejs/plugin-react": "^5.1.4",
43
- "@volter/editor-core": "^0.5.67",
44
- "@volter/editor-game": "^0.5.67",
45
- "@volter/editor-live": "^0.5.67",
46
- "@volter/editor-sdk": "^0.5.67",
47
- "@volter/editor-threejs": "^0.5.67",
48
- "@volter/game-editor": "^0.5.67",
49
- "@volter/game-live": "^0.5.67",
43
+ "@volter/editor-core": "^0.5.69",
44
+ "@volter/editor-game": "^0.5.69",
45
+ "@volter/editor-live": "^0.5.69",
46
+ "@volter/editor-sdk": "^0.5.69",
47
+ "@volter/editor-threejs": "^0.5.69",
48
+ "@volter/game-editor": "^0.5.69",
49
+ "@volter/game-live": "^0.5.69",
50
50
  "colyseus": "^0.17.8",
51
51
  "storybook": "10.6.0",
52
52
  "tsx": "^4.23.0",
@@ -5,7 +5,7 @@
5
5
  * scaffolded project so a multiplayer game can prove itself headlessly:
6
6
  * a test under `tests/logic/` seats two peers and drives them. Driving a
7
7
  * second peer against the
8
- * RUNNING game is a different job, and its door is `vgai eval`.
8
+ * RUNNING game is a different job, and its door is `volter-game-editor eval`.
9
9
  *
10
10
  * Starts the REAL `startColyseus` bootstrap (`./colyseus-setup.js`) with the
11
11
  * shipped room registry (`./rooms.js` — `ArenaRoom` + `GameRoom`) on an
@@ -2,7 +2,7 @@
2
2
  * `npm run server` entry point — boots the Colyseus multiplayer server
3
3
  * (rooms.ts's registry, on ws://localhost:2567).
4
4
  *
5
- * The project runs it as its `server` configuration (`vgai.project.json`), and Play starts it
5
+ * The project runs it as its `server` configuration (`volter.project.json`), and Play starts it
6
6
  * through `play + server`, before the game's client half (`src/net/`) joins `game_room`. Both
7
7
  * arrive with the `server` addition; a project without it keeps these rooms and has neither.
8
8
  *
@@ -29,9 +29,9 @@
29
29
  import { startColyseus } from './colyseus-setup.js';
30
30
  import { rooms } from './rooms.js';
31
31
 
32
- // The editor's `server` configuration sets VGAI_ROOM_MONITOR so its Network inspector can read
32
+ // The editor's `server` configuration sets VOLTER_ROOM_MONITOR so its Network inspector can read
33
33
  // the server's side through Colyseus Monitor; a production start leaves it unset.
34
- const handle = await startColyseus({ rooms, monitor: process.env['VGAI_ROOM_MONITOR'] === '1' }).catch((err: NodeJS.ErrnoException) => {
34
+ const handle = await startColyseus({ rooms, monitor: process.env['VOLTER_ROOM_MONITOR'] === '1' }).catch((err: NodeJS.ErrnoException) => {
35
35
  // The refusal below already says everything a reader needs; a raw stack
36
36
  // around it would be noise.
37
37
  if (err?.code !== 'EADDRINUSE') throw err;
@@ -43,7 +43,7 @@ const handle = await startColyseus({ rooms, monitor: process.env['VGAI_ROOM_MONI
43
43
  console.error(
44
44
  'Colyseus: the server port is already in use — this server did not start.\n' +
45
45
  ' Another `npm run server` in a second terminal is the likely holder. Stop\n' +
46
- ' whatever holds the port and re-run (`vgai sessions` lists live editors).',
46
+ ' whatever holds the port and re-run (`volter-game-editor sessions` lists live editors).',
47
47
  );
48
48
  process.exit(1);
49
49
  });